loneoceans labs | GXB20 v1 LED Driver PCB

GXB20 v1.0 - 6V 3A Programmable LED Boost Driver

The GXB20 v1 LED Driver - click to enlarge for detail.


The GXB20 V1.0 is an experimental prototype, constant-current single-cell (e.g. 18650) Cree XHP50/70 Nichia 144 (6V 3A) Programmable Boost LED Driver. It was developed as an initial study to fill a gap in the hobby LED driver world for a high power programmable single-cell boost driver, and is currently undergoing continual development.

Iíve called this driver the GXB20. This is a no-frills true constant current driver which takes feedback from the drive current and regulates the output to match the desired current. I designed the driver to have a 20mm diameter to fit cheap 18650 LED flashlight hosts from Amazon/Ebay, with plans to develop a GXB17 when the design is more mature. The driver is fully programmable with an on-board ATtiny84A and includes other features such as temperature sensing and cut-off, LED brightness adjustment via constant-current limiting (no more PWM flickering!), battery voltage sensing, memory for various modes, and is designed to be able to supply the full 6 VDC 3A output with ~90+% efficiency via a boost circuit running off a single 3.7V lithium battery.

The driver has been verified to operate with good regulation up to 24W input, with an output of almost 3.3A and ~90% efficiency (even better efficiency approaching 95% at ~1.5A). Certainly changes can be made to increase output power at the expense of driver losses.

For most updated information on the status of this project, please see the related thread here: http://budgetlightforum.com/node/52517.


The GXB20 V1.0 is currently designed with the following features:


Latest revisions


PCB: Version 1.0, as of Mar 2017
Firmware: v0.9 as of Mar 2017


These boards are currently being offered as-is blank PCBs:


Note that the components on the board are small and you should be confident in being able to either solder it together with some sort of magnification equipment and small soldering irons, or using hot-air / reflow.  

Shipping is from the USA to anywhere around the world (not included but usually relatively cheap) starting at $1 for regular shipping and handling within the US. All prices are in USD. Note that this is an experimental project and currently under development in both PCB and Firmware.

Contact loneoceans [at] g mail [dot] com for enquiries.




Schematic for the GXB20 v1 is provided above for reference, and distributed under the MIT GNU General Public License.

Bill of Materials

These are the components for the GXB20 v1. I purchase my components from Digikey or Mouser: 

Designator Value Package Quantity Part Number
B1, B2 47uF 1210 Capacitor 2 GRM32ER61C476ME15L
B3 22uF 1210 Capacitor 1 GRM32NR61A226KE19L
C1, C2, C3, C4, C5 1uF 0402 Capacitor 5 GRT155R61E105KE01D
C10 33pF 0402 Capacitor 1 GRM1555C1H330GA01D
C6 47nF 0402 Capacitor 1 GCM155R71H473KE02D
C7, C8 100pF 0402 Capacitor 2 GRM1555C1H101GA01D
C9 680pF 0402 Capacitor 1 GRM1555C1H681GA01D
Ca, Cb, Cc, Cd, Cf 0.1uF 0402 Capacitor 5 GRM155R71H104ME14D
J1 AVR ISP Small PAD 2x3 50mil 1 20021111-00006T4LF
L1 1uH IHLP2525 1 IHLP2525CZER1R0M01
NT1 47kR ERT-J0EP473F 0402 Resistor 1 ERT-J0EP473F
R1 ERJ-B2CFR03V 0612 Resistor 1 ERJ-B2CFR03V
R10, R11 NO LOAD 0402 Resistor 2 NO LOAD
R2 261kR 0402 Resistor 1 ERJ-2RKF2613X
R3 115kR 0402 Resistor 1 ERJ-2RKF1153X
R4 41.2kR 0402 Resistor 1 ERJ-2RKF4122X
R5, R6, R7 47kR 0402 Resistor 3 ERJ-2RKF4702X
R8 1M 0402 Resistor 1 ERJ-2RKF1004X
R9 4.7kR 0402 Resistor 1 ERJ-2RKF4701X
U1 Regulator TPS61088 PVQFN20 1 TPS61088RHLR
U3 LDO Regulator SC70-5 1 TLV70028DCKR
U4 Op Amp DFN6 1 TSV991AIQ1T
U5 200kR Digital Pot TDFN8 3x3mm 1 MAX5424ETA+T

 Feel free to substitute any of these components for similar ones of your choice.

Operating Notes

This is the current operating functionality for firmware version v0.9:


Download the hex files here for programming:

Files are distributed under the MIT GNU General Public License. 



Programming of the GXB20 is done via the AVR ISP mk2.

Image result for avrisp2 
You can purchase this programmer from your favourite electronics store such as Digikey, Mouser or even eBay or Amazon.


Due to the small size of the GXB20, there is no space for the standard 0.1" 2x3 header. Instead, pads are placed allowing 2x3 50mil headers to either be soldered on board, or simply pressed-in-place during programming. To connect to the 0.1" header, I soldered a female 0.05" socket to a 0.1" male header. See the photos above for how I programmed the GXB20. Power should be applied via a DC Power supply or battery for programming.

0.05" Male header part: GRPB032VWVN-RC
0.1" Female socket part: 20021321-00006C4LF



For maximum compatibility (and to be as hobbyist-friendly as possible), I wrote the firmware in the Arduino IDE v1.8.0. This is a free download here: https://www.arduino.cc/en/main/software

Since the microcontroller is an ATtiny84A,  you will need ATtiny support in Arduino. After downloading Arduino, follow these instructions to install ATtiny support: http://highlowtech.org/?p=1695


When compiling, ensure that the board settings is set up as above.

Then ensure File>Preferences has "Verbose Output" checked. Next, click the 'tick' button to 'verify'. In the output below, the last 2 lines will display the file location for the .hex file.

Programming can then be done via Atmel Studio 7 using Tools>Device Programming, and the appropriate .hex file uploaded via the Memories Tab. Fuses can be left as factory default. 


List for Improvement:

Ideas for improving so far (will be continually updated):


For more enquires, please contact me at loneoceans [at] gmail [dot] com.

(c) Gao Guangyan 2017 - All Rights Reserved.
Back to loneoceans labs. (Updated Mar 2017)