Everybody knows about the SkyRay King (SRK) flashlight/snowflake (no two are alike or made by the same company or have the same driver). 3 XML light smaller than a beer can, 4x18650 battery pack, ton ’o lumens in the palm of your hand for way less bucks than a tank of gas.
Nice light, but kind of a sucky driver. Or drivers. Crappy PWM, only two modes, iffy drive current, large parasitic drain, etc. Well, I had enough of mine, so I decided to build my own driver… I’m currently testing the firmware with a 24 x 380 mAh AMC7135 chips on an XML2/T6/3C SRK.
8 AMC7135 regulator chips per LED - regulated 3.05 amps per LED. One could stack more…
ATTINY85 CPU (8K of flash memory, no running out of code space anytime soon)
Thermal monitoring (sensor is on the CPU chip)
Battery monitoring.
VERY low parasitic drain (a 24 AMC board measured less than 10 microamps)
15 kHz PWM
Handy pry hole for removing the press-fit driver.
Been going ape with the firmware (very much a work in progress):
PWM modes: moon, 3.125, 6.25, 12.5, 25, 33, 50, 100%
Ramping (2 second and 4 second)
Slow strobe (10 Hz)
Fast strobe (16 Hz)
Random strobe (8-20 Hz random pulses)
Morse code (i.e. SOS)
Beacon (biips every second)
Alpine distress beacon
Status (blinks battery voltage and temperature)
If the light is on:
Advances to next mode by short button press.
Goes to previous mode by medium button press.
Shuts off by long button press (or clicking to the OFF mode).
If the light is off:
Hidden mode activated by turning it on with long button press (over 1 sec)
Medium button press turns on last mode used then resets pointer number to the start (i.e. short cycle memory) so the next click starts at the beginning of the mode list.
Short button press turns on in the last mode used (i.e. mode memory) and the next click advances to the next mode.
The driver mode list is programmable. If you hold the button down when you apply power, the mode list is returned to the standard values, the light flashes three times. If you then turn off the power the light is in its factory state. Or, you can select a desired mode and hold the button down until it flashes three times. Repeat for each desired mode (the first mode you store is the “hidden” mode. When you have all your desired modes saved, turn off power to the light and then turn it on again.
Monitors the battery voltage. When it gets low, the light blinks twice and light level is cut in half… the battery voltage should then rise for a while. This repeats until it can’t go any lower. I am seeing a 0.01 volt accuracy.
Monitors the temperature in the driver compartment. The light blinks four times and the light level gradually reduces if it passes a set threshold, comes back to normal level if the temperature drops. If it passes a shutoff value, the light shuts off. I am seeing around a 1-2 degree C accuracy. I now need to find out how the driver CPU temperature corresponds to the case temperature to better set the thresholds.
Edit: updated user interface/features description.
Edit 2: Updated picture, mode info, and temperature protection description.
I got in a workable board and built it up. Measured full up 9 amp board parasitic drain at less than 10 microamps. In my 3 x XML2/T6/3C on copper sinkpad SRK measured:
Moon: 0.25 lumens (might be around 1 lumen with plain XML’s)
Other modes: 50, 210, 550, 770, 1200, 2600 lumens (with SRK driver it was 1800 lumens)