I hope everyone has been doing well and keeping safe in this new year. Over the past few months, I’ve had some time to think about a better flashlight driver. I think this project has come far enough for me to share.
This new driver was born from the desire for a fairly high power, practical flashlight driver, and regulated at all levels. Some of you may be familiar with my previous GXB line of drivers which were powerful but impractical, as well as the more recent Lume1 driver. I wanted to take the power and boost topology from the GXB line, and combine it with the learnings from the Lume1 driver, to produce something better.
So I built a new single cell boost driver, the Lume X1.
First, I wanted to address the usage of ‘direct FET drive’ - while great for producing big lumen marketing numbers, is inherently unregulated, and in my opinion an unsafe and inconsistent implementation. Yet, I still wanted the driver to be powerful. After doing some practical usage analysis, I settled on a ~40W total input power operating target maximum, which really is the practical limit for most single-cell flashlights with today’s battery technology.
UDR - Ultra Dynamic Range
Next, I had some new ideas I wanted to incorporate, especially around ‘moon’ modes. For my previous driver, I heard lots of feedback that the moon modes were too bright. There are some flashlights which can run very low moon modes - Zebralight and Thrunite come to mind, but none of them offer a nice smooth ramp.. so I thought I'd try one better.
I’d like to introduce a new feature I managed to get working, which I’m calling (forgive me for the slightly cheesy name) UDR or Ultra-Dynamic-Range. Instead of the typical ~1 : 1000 brightness range in my GXB or lume1 driver, I’ve managed to improve the brightness dynamic range to ~1 : 10 million! This means if the maximum output current is set at 5A for example, the minimum possible will be 5/10million = 500nA.
UDR in action - I finally had an opportunity to purchase a Zebralight SC700d - it is often considered one of the best flashlights on the market for absolute quality, and one of the contenders for 'King of the Moon Mode', having exceptionally low moon modes. Here you can see the ZL SC700d on the left at its lowest mode and the Lume X1 at around ~10x its minimum brightness level (potential to go even lower) to show low dim it can drive the LED. This image was taken at ISO1600 f/4 1/10s.
In practice, 1 / 10 million of max brightness is useless and I can barely measure it (or see it at all), so most practical implementations will be closer to the order of 1 / 1 million for the lowest mode. This means if you want to run your LED at sub 1uA in complete darkness to admire the multi-die structure of your LED, you now can! (And of course, run it at several thousand lumens too). I don’t know how bright an actual firefly bug is, but I think I can finally drive an LED to be at least as dim as an actual firefly, or even a glow worm (not sure if glowworm-mode is a catchy name, though).
Some other niggles which I wasn’t happy with for my previous drivers have also been addressed. This includes significant reduction of the slight ‘flicker’ at low modes as well as the ‘turn-on-flash’, enabling high speed turn on and off for strobes, addition of reverse polarity protection, all while maintaining Anduril2 firmware compatibility, external temperature sensing, and aux LED capability. Having tested the design for a short while, so far they all look good to the eye (my eye at least!)
The Lume X1, like the Lume1, is an E-switch driver. This is the better topology for high power drivers, since clicky switches add significant contact resistance and power loss.
Finally, I also managed to reduce the BOM cost compared to my GXB drivers despite its additional capabilities. This should be beneficial if this driver ever makes it to some sort of a group buy or small batch production… though it’s not likely that it will ever become as cheap as say a AMC7135 or linear-type driver.
Preview of basic functions
Here's a preview of the Lume X1 - KR1 in action.
Just a quick preview with what I've got so far..
Lume X1 Driver Feature List
Here are some of the main features of the Lume X1, in no particular order:
- Input: 1S, Single Lithium Ion, ideally a quality 21700 cell for power handling capability.
- Output: Designed for 6V to 12V multi-die LEDs (e.g. XHP, 144AM, B35AM etc), UV, or up to 4 white LEDs in series.
- Uses the just-released Texas Instruments TPS61288, good for up to 18V output (hey I thought I’d mix things up since everyone is using the MP3431 and its variants these days!.. and it’s a touch more efficient too)
- Power: Configurable depending on voltage and driver config, nominal 40W max input.
- E.g. 5.5A @ 6V / 2.75A @ 12V as a conservative output
- Extremely efficient boost circuit (close to 95%) at moderate (5-20W) levels, depending on configuration
- Ultra Dynamic Range: Up to 1 : 10million. E.g. 5.5A max, 550nA min (though practically not visible, 10s of uA is more reasonable)
- Fully constant current regulated at all levels
- ToyKeeper’s Anduril2 Firmware with ATTINY1634 MCU
- All the good stuff that comes with it including temperature regulation, huge amount of fun and useful features, customizability, etc..
- Community Standard 4+2 pogo-flashing-pads
- Reverse Polarity Protection
- ESD Protection
- +-1C Temperature Sensor
- RGB Auxiliary LED Support
- Reduced BOM cost (if it ever gets into a larger production)
Note that the Lume X1 is a design topology, not a single driver. As a result, the Lume X1 can be adapted to fit most single-cell E-switch flashlights in different physical driver shapes.
For a first prototype build, I decided to adapt this design for the Noctigon KR1.
First Build: Lume X1 - KR1
My ideal everyday flashlight would be something like the Zebralight SC700d - it’s extremely compact (smaller than many 18650 lights even though it has a 21700 battery), extremely well built, has a high efficiency driver, and has an e-switch. As far as I know, there is no competition anywhere close to this flashlight, and certainly none running the wealth of features provided by the open-source Anduril.
I’m hoping that this Lume-X1 project will help in the step towards this direction.
To test out the Lume-X1, I looked for a candidate host which was
(2) 21700 battery since this is the future and can handle the high power levels better than most 18650 cells, and..
(3) has excellent build quality. Unfortunately I was unable to find any such host.
Instead, I made a compromise and purchased a Noctigon KR1. Of almost all the Chinese manufacturers, I think Hank’s products do stand out above the crowd in terms of their machining and finishing quality. I chose the KR1 first for its build quality, and second for its potential to house the Lume X1.
Now for the LED, the sensible choice would be an XHP70.2 - they come in high CRI values and are one of the most efficient emitters. However, I wanted to take this opportunity to try something different. I was initially considering the ridiculously large and beautiful (if a little dated) Cree MTG2, but I eventually settled on an intriguing LED - the GeTian FC-40.
Forum member rngwn went through some trouble to order some special CRI95 12V LEDs from GeTian (https://budgetlightforum.com/t/-/58177). I purchased some from rngwn for this project. Thanks also to Djozz for the detailed characterization of this emitter (https://budgetlightforum.com/t/-/58362). The 95CRI rating was intriguing.
The downside: this LED will not be a lumen monster (likely something around 2500 lumens after optics), though it makes up for it with its unusually high CRI. It is likely that I will build a few different builds using the Lume-X1 though, so a low CRI high-bin XHP70.2 would be the best for ultimate lumens (4000 regulated lumens sounds good to me).
I know what you’re thinking - the KR1 is a thrower! Indeed it is, and the deep aluminium reflector is unsuitable for my desired use case (general purpose lighting); and it is opaque as well, rendering the aux-LEDs useless. Fortunately, I was able to find a nice TIR optic to use with an interesting faceted surface - the Ledil Olga. I purchased a 30 degree and 40 degree FOV one for this project. The faceted surface should allow decent diffusion of the yellow-spill common in XHP70.2 or similar flip-chip LEDs, and yet still provide some visibility of the actual die itself (when used in UDR firefly mode), and allow the aux-led lights to shine through.
The only problem is that the TIR optic is almost exactly 2mm shorter than the aluminium reflector. So, I made a copper shim from a 2mm copper sheet to thicken the MCPCB, and reflow-soldered the copper MCPCB on to form a ‘thick’ MCPCB. Not an ideal situation but good enough.
While I was quite impressed with the build quality of the KR1, I have to say I was a little disappointed with a few design decisions. The KR1 is in fact, a fairly large flashlight - it’s significantly larger than the FW3A or Emisar D4. and even the Zebralight SC700d which uses a much larger 21700 battery. Personally, I would have preferred a KR1 design to use a 21700 with a side E-switch- the tail E-switch is more prone to accidental activation and adds significant radial bulk to the flashlight.
Some additional comments.. here is the original KR1 driver. Its elegance lies in its simplicity, though it does have its drawbacks. The driver has only a few components: a SOT23-5 voltage regulator, an ATTINY1634 for the MCU, a 10mR current sense resistor together with a SC70-5 op-amp for the feedback circuitry, some passive components acting as a LPF generating an analog voltage reference as the current setpoint for a FET acting as a linear element (i.e. resistor) for constant current control (up to 5A), and another FET for direct drive mode/turbo. This driver reminded me of the GXF22, a similar driver I developed for the Emisar flashlights a few years ago - https://budgetlightforum.com/t/-/57383.
The KR1 I managed to get (since they were almost all out of stock) used a red Osram CSLNM1.23. At moderate currents (1000mA), the LED has V_fwd of only 2.35V nominal; driving this with a 4V battery means 1.65W (41.25%) of the energy is going into the driver as heat!! Let's try to do a little better..
The KR1 presents some physical limitations... while it has a 3.0mm thick (measured) unibody shelf (which is great), the driver cavity only has about 2.6mm Z-height for driver component clearance!
This was a big problem for the driver, since the largest component on board is the boost inductor. Ideally I would choose this inductor to be as big as possible to reduce losses - the Coilcraft XAL7070 series is a great choice, for example, but it is 7mm tall. For this build, I chose a smaller inductor with about 3.0mm thickness (which is why I’m speccing this particular build to be slightly lower output power of 33W to keep within electrical limits). This inductor is still too tall. To fix this, I brought the KR1 to a milling bit and milled out a very shallow cavity where the inductor will be, taking away less than 1mm of material - this worked perfectly.
Above shows the milled-out driver bay, ready to accept the LumeX1-KR1.
Above, prepping all the components and getting ready to assemble the head of the flashlight. Not show here was the reflow stage to bond the copper shim to the copper MCPCB - this was done using solder paste and a reflow oven.
Above, the LED and tri-LED Aux board is in - I had to replace the M2 screws with some longer ones. Next step was installing the driver board - this was a little tricky, since it's actually quite challenging to get the wires cut and stripped to the right length, and to solder them in the deep cavity; certainly requires some experience.
Side note - yes I could have used the standard 4-pin RGB Aux LEDs, but I do like my cyan/magenta/warm-white combo, so I made a tri-LED one instead for now to allow the use of discrete LEDs.
Lume X1 - Results
If you've managed to read till now and not get too bored, congratulations! Let's see it in action.
Thankfully, the build went together as planned with no issues! For this particular build, I configured the Lume X1 to have a maximum output of 2.75A (12V, for 33W output, I cranked this a little lower because I couldn't fit a larger inductor in this particular build). The ultimate minimum lowest mode possible is 275nA, but configured to 1.1uA in this build. LED used is a special batch CRI95 GeTian FC-40 LED at 4000K, which has a 4S4P multi-die construction.
Aux-LEDs used are Pink, Warm White, and Cyan, instead of RGB respectively. Series resistors used (just for the record) were 10R, 1.8k and 7.5k respectively.
I'm currently working to make a quick video to show the Lume X1 in action; meanwhile, please enjoy these photos..
A gorgeous optic, I must say.
Another view of the Ledil Olga
Above, the aux-LEDs with the optic removed.
The aux LEDs do shine through the optic and it looks quite whimsical indeed (video coming soon).
I finally purchased a ZL SC700d which will serve as a good benchmark for all the flashlight prototypes I create.
Here's UDR in action - I think this is a pretty interesting image.
From the left to right is a stock FW3A with SST20 4000K LEDs and a cyan glow gasket, the LumeX1-KR1, and finally my copper FW3C with Nichia 219B 4500K LEDs and the Lume1 driver. However, what makes this photo interesting is... both the FW3A/Cs are on their lowest 'moon' modes!
Meanwhile, the LumeX1 is driving the GT FC-40 LED at.... 22uA, still possible to go 20x dimmer, though it's ridiculous at that point. I hope nobody will complain that their moon mode is not low enough!
And above is a much brighter low mode, compared with the Aux LEDs on my Lume1-FW3C, and a regular FW3A with glow gasket.
With the optic removed, you can now set your flashlight LED to be as dim as you'd like to admire the multi-die structure... mmm...
Finally, a comparison shot of three flashlights at their maximum brightness levels, all three powered by mostly full Samsung 30Q 18650 cells, with camera set at sunlight white balance.
Left - FW3A with I what I believe has Cree XP-L HI 3D (NW 5000K) 70CRI? on Turbo FET mode with default driver
Middle - KR1 with GT FC-40 Special Batch at 4000K 95CRI with Lume X1 at 2.75A output (about 33W)
Right - FW3C with Nichia 219B 4500k D220 CRI 9080 with Lume1 at Turbo FET mode
The XP-L HI looks a smidge brighter than the other two, which makes sense since it's a lower CRI and higher efficiency LED, but I was shocked at how green it was compared to the other two emitter. The legendary 219B on the right, clearly shows its legendary status - rosy and really beautiful. The middle shows the GT-FC40 and I have to say, it looks really good, and the Ledil optics work excellent as well. I'd describe the colour a creamy peachy tone, really nice and comfortable to look at. Also, the Lume X1 despite not having a 'direct direct FET mode', holds its own in terms of brightness as well, so I'm quite pleased with its performance.
Thanks to Hank and his team at Noctigon for producing this nice flashlight. I hope I did it justice with this build.
Overall, I think I’m quite happy with how this project turned out. That said, this driver is definitely not perfect and I already have some new ideas to try out.
I’m hoping in the future, that some manufacturer will be interested in this driver to develop a flashlight for it. My ideal build would look something like a compact 21700 flashlight (3A USB C charging optional), high quality machining and anodizing finish, with side E-switch, AUX LEDs, a nice TIR reflector, gorilla glass lens, and options for LEDs such as XHP70.2, XHP35, B35AM, or even this 95 CRI GT-FC40 LED. If people like the Lume X1, perhaps we could try to convince a manufacturer to pick it up for incorporating into a real flashlight.
This project would not be possible without the enthusiasm and support from all of you people here, as well as the feedback I’ve received from previous projects. Special shout-out to ToyKeeper for the large amount of work done on the Anduril firmware, as well as to various forum members who have helped in making unique LEDs like the FC50 and Nichia emitters available to all of us, and for members for conducting detailed characterization and tests.
As always, I’m happy to hear any thoughts, feedback, comments and suggestions. Meanwhile, stay healthy and wishing all an awesome 2021!