Wuben E7 custom driver swap

I recently bought a Wuben E7. I really like the hardware, but wasn’t a fan of the UI. Most annoyingly, and as noted in pretty much all reviews, there’s no way to turn it on to minimum brightness. So that seemed like enough of an excuse to do some modding.

I posted some teardown photos of the stock boards in this thread. There are two PCBs: a driver board and a charge board. I was originally just going to replace the driver but got carried away and did them both.

The new board uses an ATtiny1616 microcontroller and a TPS62867 buck driver. The design is based closely on @thefreeman’s HDR drivers.

(try to ignore the slightly melted USB port and the butchered solder pad in the corner)

The driver should be good for 6A, although the control circuit is only setup for about 5.5A at the moment, which is same as stock. More power wasn’t really the aim. At the other end of the scale, I’ve now got a nice 7mA moonlight mode.

Another minor upgrade is an RGB status LED, rather than the original blue/red one.

Back of driver board:

The HDR FET is a NTLJS3D0N02P8Z, which was a nice find - 2x2 package with a ~3.5mOhm Rds which is pretty constant across the 3-4V range.

Programming is via a custom pogo-pin adapter:

I’m currently running a simple custom firmware, but I’ve also got Anduril 2 running on it.

I’ll post some details of the charge board later. My main motivation for swapping that was to get rid of the 100µA standby current (roughly 7% battery capacity / month). It’s now < 1µA.

14 Thanks

Thats awesome! When you make custom PCBs, how many do you usally have manufactured at a time?

Thanks.

I usually get bare PCBs from JLCPCB at the minimum quantity of 5, and then do the assembly by hand, so so far there’s just one set of boards built.

1 Thank

O.K… So it have 2 sense resistors, right? And you calculated DAC values right? Cool.

Yes, that’s right. It’s currently got 5Ω for low range, and 10mΩ (resistor) + ~3.5mΩ (FET) for high range.

I have a Python script for generating a table of DAC level, HDR mode, and DAC Vref (for lower levels in each range, the firmware uses 0.55V DAC Vref rather than 2.5V for more granularity).

I’d be interested to know what functions people use for creating a linear perceived brightness ramp. I’m currently using a geometric progression (i.e. the ratio between successive steps in the ramp is constant), which seems to work well enough.

1 Thank

I ques logarithmic scaling is the best. Anduril have it

1 Thank

Thanks - have now discovered the Anduril level_calc.py script which has a few different curves. I’ll have a play.

1 Thank

I assume you’re using a hotplate for the first side, what method are you using for the second side?

Actually, it’s almost all done with hot air, except the LED and switch which are done last with a soldering iron. I also tend to do the inductor with an iron as they can be quite delicate.

I’ve tried with a hotplate, but I’m not using a stencil and solder paste, so i tend to end up with ICs floating on a ball of solder, and it’s hard to remove the PCB from the hotplate while also pressing down on the IC.

2 Thanks

Nice! Do you plan on selling these PCBs? Or design? I would probably buy this light if I knew I could turn it into an Anduril one…

1 Thank

I’m not planning to sell the PCBs, but I’m very happy to share the designs, and I’ve probably got enough parts to make a few one-offs.

Swapping PCBs is a bit awkward as the top PCB is held in place by 4 soldered pins so you need to carefully lever the board up while trying to keep them melted, and the bottom PCB is held in by a retaining ring that’s at the bottom of the battery compartment. I ended up 3D printing a tool to get it in and out.

1 Thank