Hello everyone,
Quick post to share some updates ^_^. I was out of action (caught a flu!) for a while but I'm better now and managed to complete the preliminary firmware for the GXB172. So far I'm happy to say everything is working pretty well! I'll get into this in a bit more detail later on but yes, I've reviewed Bistro and it should port over easily (with some changes specific to the GXB172, and likewise with Narsil), but I've also added a bunch of new features to the current firm as previously mentioned, such as accurate PID temperature control with a dedicated temperature IC (no fudging around with NTCs!), several fun optional modes like candle-flicker or strobes, and smooth brightness transitions which help reduce eye strain and ease mode transitions without blinding the user immediately!
Anyway I put some boards together and I'm happy to report that the only mistake I found was a single silkscreen error, but electrically it all turned out good! Here's how it looks like, top and bottom.
Above is it pictured sitting in a Convoy S2+ brass pill which is my candidate flashlight for this driver. Note the big pads for + and - to the LED, as well as programming header pads, E switch pad, two additional jumpers, and one more auxiliary pad which can be use to power an extra LED or something else (e.g. I used this for a debugging LED during firmware development!).
Above shows a side view of the driver. The big inductor can be easily swapped out for a smaller shorter (3mm tall) one if your host doesn't have space for a ~7mm tall inductor. Using a bigger inductor allows better performance though with a higher inductance (desirable) and lower DC resistor (desirable).
But does it work?
First I had to solder on a spring. It looks a little funny but it works just fine with an inverted spring and solder wick for bypassing.
To test the driver, I paired it together with a Nichia 144 90CRI LED. Now this is not the most efficient of LEDs in terms of being a lumen-monster! Djozz has tested this E1000 LED and it 'only' puts out ~2500 lumens at a 6A ~6.4V drive.
But I really wanted to make a high-CRI flashlight while still being very bright! Don't worry, I have a J4 XHP50 up next for a >4000 lumen light
... and it works exactly as expect with all the modes and functionality working!
I'll be testing this extensively in the field since I'm sure this preliminary firmware needs a bit more tweaking, but much more to come soon!
Because I've configured this light to be a 'shorty' build, having it run at 6A output would lead to a ridiculous ~3 to 4+ minutes of runtime (thermal throttling will kick in before that though), so I changed the modes for a more reasonable 4.2A LED output (measured and verified on the scope) for about 2250 lumens of beautiful CRI 90 Nichia light.
For those interested, here's the current version of the firmware, with one particular mode structure shown.
Obviously the number of modes, memory, special effects, battery cut-off, thermal regulation etc can all be adjusted to whatever you want!
So far it's not quite the same as can be done in some single-button programmable UIs, but I'm planning to iron out any kinks in the core functionality first before moving on to more firmware development. Hopefully when more people get to try out this driver, more talented firmware engineers here can help write better firmware ^_^.
Meanwhile I'll document my build of the flashlight above in another thread (there are a bunch of tricks to do to make the system work well, plus some cool new features!) so I can keep this thread more focused on the GXB172 driver proper.
See the thread here: https://budgetlightforum.com/t/-/50373 for more information on that build.
More to come and thanks again for reading!