Clean , finish is great , works ok .
The indicator leds died on mine too : After i inserted the batteries and moved to turbo , when it got a little hot , i switched the light off and saw the indicator leds dimming until they no longer work .
Not a problem , since i would change resistor on them anyway …
Really happy with the light , thanks once more Q8 team .
Late to the order game but thanks god my code still worked. So guys, I am looking forward to get your monster creation and a huge thank flies out to the entire team who were restless enough to make this happen. BLF roxx because of YOU!
Maybe really for Q8 this time, now with a dedicated layout, indicator, ramps customized for Q8 output, and TA modegroups laid onto the 2-channel ramps.
I'll probably make another thread for it, and there's the HD thread, but anyway, I left it at light-off during button press. Downside is no feedback from main beam on how long is long enough (but that's true using long press to reset the mode too, but I do that often). However, I added an indicator acknowledgement of the off, so if you are looking at the indicator, you still can tell. (indicator turns off on switch press, and turns back on once its locked off).
Still no switch lockout, still no menu control for the indicator (the second one is easy). It's a proto.
LOL, yeah, ok, but that's a lot to add to a two minute plan.
And of course I can make it more complicated (and use 0 bytes instead of 8)
This is gpl3 lol:
#define INDICATOR_PIN PB4 // in common layout
#define USE_INDICATOR // in feature configuration for this build
uint8_t t_PORTB=0;
uint8_t t_DDRB=0;
uint8_t t_DIDR0=0b00111111; // theoretcially saves power
#ifdef USE_INDICATOR
t_PORTB |= (1<<INDICATOR_PIN);
t_DDRB |= (1<<INDICATOR_PIN);
#endif
//... do other t_PORTB adjustments for PWM etc
PORTB = t_PORTB;
DDRB = t_DDRB;
DIDR0 = t_DIDR0;
Why do with two lines what you can do with at least 10?
Seriously though (a little), there are good reasons. The temp variable for example avoids multiple un-optimizable volatile writes to the IO registers. The final assembly code will have the constant calculations precomputed by the compiler leaving only the last lines (each an LDI and an OUT). The compiler isn't allowed to do that with direct PORTB writes. So, adding the extra bit sets for the indicator for example took no extra code space. That's especially nice with preproc customizable code where you can't pre-compute the bytes by hand either.
Totally agree - only way to do high amp lights is an e-switch. Why bother with special custom high amp mechanical switches when it's easier, better, more control with an e-switch?
I recognized the advantages of e-switches years ago, and so have the manufacturers.
Of course there's no reason a clicky-type switch can't be used as an e-switch, other than maybe finding a comfortable way to mount one that's substantial enough to have the right feel?
I had another thought with clicky ramping anyway though. Tap... ramps.. tap:stop. med tap ramps down. tap:stop. Clicky or not, it means you don't need to remember which way you were going, and you can always go up. Downside: slower reaction on the stop. But I have to check out what TK's been up to. Lot's of good variations and people like different things. For me, it's function over form always.
Well, like I posted, it worked for me but dunno if it would work for everyone - i thought it would though. The repaired light is still working fine.
We suspect the thru-holes. I'd do some continuity checks to see if the thru-holes are good, even so, might be intermittent, heat related issues - could drill out the thru holes and fill with solder. It's a pain for sure for such a little board. My reflowing might have just been a bandaid fix.