I wanted to try putting MELD into an 18650 light, so I looked around and found this: the Solarstorm SC02, which is a clone of the Olight S20. It's a pretty good buy at $15, better machining than I expected at that price. The firmware is awful, as is the norm, so I promptly gutted it:
I kept the original PCB and stripped off all components except the tantalum input capacitor. This build wouldn't make sense to use MELD hardware in since it will never run on a primary cell, and it should have a higher current on white than the 1.5A that MELD3 is capable of. This one would be run only on secondary cells so I used linear regulators controlled by a PIC16F1825 running the linear version of MELD 2.13 firmware.
The LED board was made using the two-layer method I came up with on my Blackshadow mod, so that the white XP-L gets better thermal performance.
I glued the PIC upside-down onto the stripped PCB and started wiring. The PIC needs 7 connections: 4 outputs, power, ground, and the switch input.
I then started stacking up the AMC7135 regulators. Here's the four that run the color components. They have a pair of wires that ground them together, and individual output wires that will run up to the LEDs.
After those 4 were wired to the PIC, I started on the 6 that will be paralleled to run the white emitter (at 2.1 amps). I made them in two groups of 3 to share the current load between two sets of wires, and to make them physically more flexible for when everything has to be fit into the pill.
Here are all the regulators wired up, insulated with kapton, and the wiring bundled into two groups to pass through the holes.
The driver fit fine, but I was just about at the limit of how much could be fit into the cavity. Here's the LED board going on, with thermal grease under it.
And here's the result of wiring in the individual LEDs.
To get the spacing just right, I cut the original plastic insulator so it had room for the extra LEDs, and then used it under the reflector.
MELDv3 boards came in! This version brings big improvements to the SEPIC converter on the white channel, mostly in the area of thermal performance. It also makes an electrical change that allows the SEPIC to run well at much lower battery levels if the light is running on primary cells.
The inductors are much bigger to better handle high current, so to avoid increasing the stack height I rearranged the daughter board so that they are both on the top side.
I did two projects right away with the new boards, one of which is to upgrade my new Fenix HL50 headlamp. I was very excited when this headlamp was released because single-CR123 headlamps are rare and I don't like any other battery setups, but of course the UI is terrible and needed an upgrade.
As soon as I got it, I opened it up to see how much room there was. The construction is pretty good. Here you can see the stock driver with a daughter board that sits vertically:
I was able to fit MELDv3 by removing the inductors and free wiring them up in the vertical space.
My standard MELD LED board with XB-H and XQ parts fit with one edge filed down. I also had to drill out the reflector slightly to get it around the LEDs. Here's the LED board installed and wired up:
And the finished result, the perfect headlamp:
And here's the second project with MELDv3, a Sunwayman C10R. I really like the construction on the C10R. It has a nice big reflector so I was able to fit an XP-size LED board in it with an XP-L as the white emitter. MELDv3 went in pretty easily by epoxying a momentary switch onto the main board:
Here it is with wires attached, going into the head of the light. Not shown here is a grounding ring needed to make contact with the body (this difficult grounding is my only complaint about the design of the C10R). Also shown is the MELD XP LED board with all LEDs installed and notches cut to fit the wires:
In continuing my trend of putting RGBWUV and my MELD UI in every light possible, I got a hold of the discontinued Nitecore EX11, which uses piston drive (which I love and have worked with before). I wanted to fit the full MELD2 driver into it, but there is just not enough room in the pill with the piston drive mechanism. I ended up designing a custom boardstack that gets rid of all the inductive converters and just uses AMC7135 regulators (1 per color channel, 3 for white). This means the light is restricted to rechargeable cells, unfortunately.
The daughter board actually came so close to the wall of the pill that I had to notch it out to pass wires through from the main board. The entire thing is run by the same PIC16F1825 as regular MELD boards, and it runs the same firmware (with a compile option for linear lights, which makes a few slight changes).
Here's the schematic for the main board:
And the daughter:
Four connections go between main and daughter board. The main board has the positive battery contact and the contact ring for the piston. Since my total available height was very small, I intentionally aligned the regulator on the bottom of the daughter to sit above the PIC, which is shorter than the regulators on the main board. This lets them stack together into a pretty short assembly:
Here's the pill completed, and an XML color wired up for electrical test:
The other challenge with this light is that the reflector opening wasn't big enough to fit a MELD LED board. I didn't want to ruin it by drilling it out, so I went back to a crazy technique I've used before of mounting the color LEDs around the reflector in individual holes. This process started with wiring them up in mid-air:
I then drilled four holes evenly spaced around the reflector, about midway up. Then to reduce the depth to get the LEDs farther out, I filed down around the holes until the wall was about a millimeter thick. I carefully arranged the LEDs and the wires to get the LEDs centered in the holes, and glued them down with thermal epoxy. This was a painstaking process because I had to hold the LEDs in place while the epoxy cured, and I had to do it four separate times so that the epoxy was facing up and wouldn't drip down.
Here's the result:
And the back of the driver:
It all turned out great, although the color beam patterns are terrible, as expected. The white beam is perfect, and isn't noticeably affected by the color emitters.
Now that my MELD drivers are up and running, I've decided it's unacceptable to have anything less than full functionality on every light, so I've been going through and modding everything to have RGBWUV. The Blackshadow Queen is one of my favorite hosts for its size/form factor and the reflector that throws better than anything else in my collection.
This mod uses MELD firmware so the UI matches my other lights, but because it runs on rechargeable cells only I used linear regulators instead of the full MELD driver. This also allows me to run much higher current on the white LED.
To fit all the LEDs in the reflector aperture, I have my MELD LED boards, including this XP variant. They are FR4 though, so it wasn't going to have good enough thermal conductivity for my main emitter. To solve this, I came up with this PCB sandwich arrangement.
The first step was to slice the PCB to make it thinner. The epoxy that holds the fiberglass layers together weakens when it's hot, so I set up the heat gun to get this bare PCB really hot and then sliced the top layer off with a blade.
Next I cut out the space for the white XP-sized part until it fit perfectly over an XP-L. After the hole was cut, I reflowed the red, green, blue, and UV emitters on to their pads.
I then reflowed an XP-L onto a star (this happened to be a weird star that included spots for other components, I only chose it because I wanted a thicker-than-standard star). The thin PCB holding the colors was then epoxied down around the XP-L using Arctic Silver. This picture is during the electrical test after epoxy.
On to the host: I disassembled everything, including punching the brass ring out and separating it from the stock driver.
I reuse the the daughter board that holds 6 AMC7135 regulators for my white LED. For connections and mechanics, I reuse the main PCB, but all the components need to be stripped off first. The only one I left was the tantalum input capacitor.
I wired up the LED board using 30AWG for colors and 24AWG for the white. All the solder connections need to be made as low-profile as possible, and then they are covered in kapton tape to prevent shorting against the reflector.
I then put the LED board into the head using thermal grease. There's enough trimmed off of the star to allow it to move around a bit to get perfect centering.
Here's what it looks like after the reflector and lens are assembled. It was a bit tough to center--I had to push on the back of the star through one of the wiring holes to hold it in place as I tightened down the reflector. After a few attempts I hit the center.
On to the driver. The board in the center of this picture is cut out of a PCB I salvaged from the scrap bin--the only thing it holds is the microcontroller (PIC16F1825) and a decoupling capacitor. The only reason I used it was to save me from making connections directly to the QFN-16 part. Ideally I'd use a SOIC part for this, but I didn't have any on hand at the time. The part on the right side is a 6-pin 50mil pitch female connector, which is used for programming and so is connected to the ICSP points on the microcontroller.
The stock daughter board holds 6 regulators and is used to drive the white LED. Branching off of that I have 4 more AMC7135s for each of the colors, wired independently. These are wired free-form, but they have their grounds soldered to a fairly thick ground wire which keeps them mechanically stable.
At this point I programmed the microcontroller so I could do full hardware tests as soon as the LEDs were wired. This required a simple harness to adapt the 1x5 0.1 header on the PICkit3 to the 2x3 0.05 header in the driver. The female connector is epoxied flush in a hole cut into the main PCB.
Here's a picture of all the electronics wired up, undergoing final electrical test. Before I stuffed everything into the cavity, I wrapped all the exposed parts in kapton tape to prevent shorts.
Here's what the head looks like after the board is pressed in. The programming connector came out pretty clean, and it does't interfere with the batteries since they only contact the outer ring.
Here's a final shot of all the emitters turned on at minimum. The UV isn't on; it appears green because of a neat refraction effect in the XP-L dome. This light runs the same firmware as my MELD2 drivers, but with a few options that optimize it for linear drivers. There's a full video and description of the user interface in my post about the most recent MELD firmware update
Here's a video demonstrating version 2.9 of my MELD flashlight software. A lot of improvements and features were added since the last video I put up. Below is a complete description of the UI and features.
·All modes:
oTurn
on and off by short click
oMode
memory in all cases (restore last mode after turning off and on)
oRamping
by holding switch while on
oRamping
reverses direction when initiated if it has been less than 3 seconds since the
last ramp
oSmart
momentary from off (short click latches on, long press is momentary)
oShortcut
to primary level from on by double click
§If
UV is enabled, a repeated double click will shortcut to UV. From UV, a double
click will go back to primary
§In
UV mode, press and hold will make the UV strobe while held. May help to make
fluorescing objects stand out
oShortcut
to max by click-press
§If
level is currently max, shortcut to min instead
§If
primary level is set to max, shortcut to min instead
§If
held down for an extended time after click press, only do momentary maximum
(restore previous brightness (or strobe/color mode) once switch is released)
§Available
from off as well (double click from off to latch on in max, click press from
off to go to max in momentary mode)
oIf
inactivity timer is enabled, jump to a low white level after 15 minutes of
inactivity
§Any
press while in the timeout state restores the previous state
§Works
from any mode (including colors and strobes) except the two red safety flashers,
the three color beacons, and any white strobes slower than 4Hz (since these
modes are likely to be used long-term without user interaction)
oState
of light is stored in EEPROM and restored upon power up, enabling use in lights
that have both a momentary switch and a power switch
·White mode:
oRamping
adjusts brightness on logarithmic profile
oIf
dim to red is enabled, minimum level is replaced by dim red
oRamping
pauses on min and max before reversing
·Strobe mode:
oAccessed
by triple click
oRamping
adjusts strobe speed continuously, ranging from 0.25-60Hz
oTriple
click while in strobe is a shortcut to stunner mode
·Color mode:
oAccessed
by click-click-press
oContinuous
color mix:
§Ramping
gradually fades between colors so that any color on the spectrum can be chosen
§Pauses
on solid red, green, and blue to help select them
oLow
red: low brightness solid red output. Only available if dim to red is disabled
oStunner:
randomized strobe that uses all colors
oAuto
fade: continuously fades through all possible color mixes
oFlasher:
triple-blink safety flasher using red
oFlasher
2: higher-visibility safety flasher pattern using red
oRed
flash, green flash, blue flash: simple 0.5Hz beacons in three colors
oPolice:
alternating blue and white to mimic police lights
oFire:
simulates flickering firelight by calculating randomized output levels for a
mix of red, green, and white
oAll
low: turns on all four colors at minimum brightness so the LED can be observed
directly
oLava
lamp: a smooth-fading randomized output mode that provides interesting
background lighting
oLightning:
simulates lightning strikes using a mix of blue and white, with randomized time
between strikes and randomized duration and brightness of strikes
·Flourish mode:
oA
special color mode not included in the normal set
oActivated
by entering the color command (click-click-press) while already in a color mode
oPerforms
a fun-looking sweep through colors that lasts about 2 seconds and returns to
standby
oLight
is stuck in this mode once activated, exited by double click or click-press
(shortcuts to white modes)
·Configuration menu:
oAccessed
by quadruple-click
oSet
up options for light behavior. Click to cycle to next option, hold switch until
green LED flashes to activate item
oIf
all items are cycled through, the menu exits and returns to normal without
taking any action
oItem
1: beacon
§Indicated
by single short red blink
§Enables
or disables the locator beacon (flashes red every 4 seconds while in standby to
help find the light in the dark)
oItem
2: tactical
§Indicated
by single long blink
§When
activated, puts light into a momentary-only mode using whatever output
(including strobes and color) was active before entering the config menu
§Can
only be disabled by power cycling the light
oItem
3: lockout
§Indicated
by quick fade from bright to dim
§When
activated, the next time the light is turned off, it will be locked out. The
light can then only be turned on by triple-clicking the switch.
§Used
to avoid accidental activation when the light is not in use but may have the
switch bumped inadvertently
oItem
4: auto dim
§Indicated
by white med > white low if currently disabled
§Indicated
by white low > white med if currently enabled (the light is showing what
will happen if the menu item is activated—getting dimmer if you are about to
turn on the feature, getting brighter if you are about to turn it off)
§If
enabled, the light will drop to a low white level after 15 minutes of
inactivity
oItem
5: set primary
§Indicated
by quick double blink on white (looks like the double click associated with the
primary level)
§When
activated, the primary level is changed to the brightness level that was active
before entering the config menu
§Primary
level is stored in EEPROM permanently until changed in config menu again
§Primary
can only be set to a white brightness, not color or strobe modes
oItem
6: loaner mode
§Indicated
by a high-med-high-med-high pattern
§When
activated, the light is locked in its current mode and brightness (including
colors and strobes), but smart momentary and latching on still function
§Simplifies
the UI to a single mode, useful for when the light needs to be lent to another
user who doesn’t need other modes and doesn’t know how to use them
§Disabled
by power cycling
oItem
7: dim to red
§Indicated
by a quick fading pattern from bright white down to low red
§Enables
or disables the dim to red feature
§If
dim to red is enabled, the low red color mode will be removed from the list
oItem
8: powerup
§Indicated
by a quick fading pattern from dim to bright white
§Enables
or disables the feature to restore last mode upon power up
§Should
be enabled in lights with both a momentary switch and a power switch, but may
be disabled in lights with momentary only if inadvertent power interruptions
are expected
oItem
9: set momentary max
§Indicated
by short blink then long blink on white (looks like the click-press associated
with maximum)
§When
activated, any use of momentary (holding switch from off) will output maximum
brightness instead of the last-used brightness or mode. Previous brightness or
mode is still remembered
oItem
10: burst mode
§Indicated
by high > medium-high > medium if currently disabled
§Indicated
by medium > medium-high > high if currently enabled (the light is showing
what will happen if the menu item is activated—getting dimmer if you are about
to turn on the feature, getting brighter if you are about to turn it off)
§If
activated, any time the light is turned on in white at a power level above 66%
current, the output will gradually reduce output until it reaches 66% over the
course of 10 seconds. This helps save power and is usually not noticeable to
the user.
§Does
not affect use in momentary mode, only when latched on
oItem
11: enable UV
§Indicated
by blue med > blue low if currently enabled
§Indicated
by blue low > blue med if currently disabled (the light is showing what will
happen if the menu item is activated—getting dimmer if you are about to turn
off the feature, getting brighter if you are about to turn it on)
§Simply
enables the UV mode. Included in the menu so that MELD can be used easily in
lights without UV hardware by disabling the feature
oItem
12: enable colors
§Indicated
by red > green > blue pattern
§Enables
or disables all color modes
§If
color modes are disabled, locator beacon and battery check mode will use only
the white output
oItem
13: high CRI
§Indicated
by turning on white, red, green, and blue together
§An
experimental operating mode that mixes in a small amount of red, green, and
blue into the normal white operating mode. May improve color rendering
§Only
works well in lights with excellent color mixing
·Battery check:
oAccessed
by click-click-click-press
oStays
active and continuously updates measurement as long as switch is held
oMeasures
battery voltage and reports it in blinks – blue blink for values and a long
green blink for the decimal place