Sorry, was at work - home now. Reviewed and trying to recall (at my age, that can take a while...). This is what I did:
- Removed R4 - was connected to pin #7 and does nothing anyway (from TK's experimenting with detecting input from the main LED)
- Removed R10 - original hard wired resistor for the switch LED
- solder in a 10K resistor, tomb-stoned -- be sure there's no contact to the "+" pad
- solder a 30 AWG wire from pin#7 to the 10K
So, the end result, as shown, is I got a switch surface mount LED connected to MCU pin #7, with a 10K resistor in between, as shown:
Now Anduril has to be tweaked to support this hardware configuration. So this is the Anduril hwdef file I used, hwdef-EDC18.h:
#ifndef HWDEF_EDC18_H
#define HWDEF_EDC18_H
/* BLF/TLF EDC18 driver layout
*
* The Lumintop EDC18 is basically the same driver as used in the FW3A, but has the e-switch mounted on the driver PCB.
* For my custom EDC18, I removed the resistor off of PIN #7 for the "optic nerve" and wired a jumper to the switch LED
* resistor - using 10K for now, and had to tombstone the resistor to break the connection to Batt+. This will allow
* Anduril to control the switch LED from pin #7
* ----
* Reset -|1 8|- VCC
* eswitch -|2 7|- switch LED (0402 under the switch with 10K 0603 resistor, removed (20K 0402)
* FET -|3 6|- 7x7135
* GND -|4 5|- 1x7135
* ----
*/
#define PWM_CHANNELS 3
// ... the modded EDC18 has aux switch LED on pin 7
#ifndef AUXLED_PIN
#define AUXLED_PIN PB2 // pin 7
#endif
#ifndef SWITCH_PIN
#define SWITCH_PIN PB3 // pin 2
#define SWITCH_PCINT PCINT3 // pin 2 pin change interrupt
#endif
#ifndef PWM1_PIN
#define PWM1_PIN PB0 // pin 5, 1x7135 PWM
#define PWM1_LVL OCR0A // OCR0A is the output compare register for PB0
#endif
#ifndef PWM2_PIN
#define PWM2_PIN PB1 // pin 6, 7x7135 PWM
#define PWM2_LVL OCR0B // OCR0B is the output compare register for PB1
#endif
#ifndef PWM3_PIN
#define PWM3_PIN PB4 // pin 3, FET PWM
#define PWM3_LVL OCR1B // OCR1B is the output compare register for PB4
#endif
#define ADC_PRSCL 0x06 // clk/64
// average drop across diode on this hardware
#ifndef VOLTAGE_FUDGE_FACTOR
#define VOLTAGE_FUDGE_FACTOR 7 // add 0.25V
#endif
//#define TEMP_DIDR ADC4D
#define TEMP_CHANNEL 0b00001111
#define FAST 0xA3 // fast PWM both channels
#define PHASE 0xA1 // phase-correct PWM both channels
#define LAYOUT_DEFINED
#endif
This is the Anduril cfg file I used:
// EDC18 config options for Anduril
#include "hwdef-EDC18.h"
// the button lights up
#define USE_INDICATOR_LED
// the button is visible while main LEDs are on (2020-02-09 TE: enable this!!)
#define USE_INDICATOR_LED_WHILE_RAMPING
// enable blinking indicator LED while off
#define TICK_DURING_STANDBY
#define STANDBY_TICK_SPEED 3 // every 0.128 s
#define USE_FANCIER_BLINKING_INDICATOR
// off mode: low (1)
// lockout: blinking (3)
#define INDICATOR_LED_DEFAULT_MODE ((3<<2) + 1)
// ../../bin/level_calc.py 1 65 7135 1 0.8 150
// ... mixed with this:
// ../../../bin/level_calc.py 3 150 7135 1 0.33 150 7135 1 1 850 FET 1 10 1500
#define RAMP_LENGTH 150
#define PWM1_LEVELS 1,1,2,2,3,3,4,4,5,6,7,8,9,10,12,13,14,15,17,19,20,22,24,26,29,31,34,36,39,42,45,48,51,55,59,62,66,70,75,79,84,89,93,99,104,110,115,121,127,134,140,147,154,161,168,176,184,192,200,209,217,226,236,245,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0
#define PWM2_LEVELS 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,6,8,10,13,15,17,19,22,24,26,29,31,34,37,39,42,45,48,51,54,57,60,64,67,70,74,77,81,85,88,92,96,100,104,108,112,116,121,125,130,134,139,143,148,153,158,163,168,173,179,184,189,195,201,206,212,218,224,230,236,243,249,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0
#define PWM3_LEVELS 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,19,31,43,55,67,79,91,104,117,130,143,157,170,184,198,212,226,240,255
#define MAX_1x7135 65
#define MAX_Nx7135 130
#define HALFSPEED_LEVEL 14
#define QUARTERSPEED_LEVEL 5
//-----------------------------------------------------------------------------
// Thermal Settings
//-----------------------------------------------------------------------------
// optional, makes initial turbo step-down faster so first peak isn't as hot
// the D4 runs very very hot, so be extra careful
//#define THERM_HARD_TURBO_DROP
// stop panicking at about 3A or ~1100 lm, this light is a hotrod
#define THERM_FASTER_LEVEL MAX_Nx7135
// respond to thermal changes faster
#define THERMAL_WARNING_SECONDS 3
#define THERMAL_UPDATE_SPEED 1
#define THERM_PREDICTION_STRENGTH 4
//-----------------------------------------------------------------------------
// Set it much higher than the default of 70C
#define MAX_THERM_CEIL 80
I'll probably convert this over to work with Anduril 2. Also I got two more EDC18's to make this mod to.