edakit documentation

Adafruit Micro-Lipo Charger with USB Type C Jack

Why: the first charger among edakit's test circuits – no reference circuit has one (power is three AA cells beside USB), and no other open design charges a cell. It puts a linear Li-ion charger with its behaviour model on a published board: the current R_PROG programs, held against the MCP73831's 500 mA and the cell's 1C (LIM.i/charge, LIM.backfeed into the cell), the charger's heat at a low cell (LIM.t), a second charge current set by a solder jumper, a LiPo pack whose JST plug can come reversed (PATH.reverse on a battery holder), two status LEDs on a tri-state output – the domain power with a real charger, and HINT.lithium and HINT.charge_termination on a part makers use. Makers build and copy it everywhere: the MCP73831 with a PROG resistor, two LEDs and a JST PH socket is the charger of most hobby LiPo projects – Adafruit's Micro-Lipo boards, the same circuit on Feathers and countless clones –, so a false alarm here would meet many.

Adafruit Industries (Limor Fried/Ladyada; the schematic's AUTHOR attribute K. Townsend), Adafruit-MicroLipo-PCB, https://github.com/adafruit/Adafruit-MicroLipo-PCB at commit d8ab4b0 (d8ab4b0f00c69a9f337a8d697bd15e0b9bae2e25, 2022-11-10), the Eagle schematic Adafruit USB C microlipo charger.sch (Eagle 9.5.0 XML, last changed in commit b06c550 of 2019-11-05) – the board Adafruit sells as product 4410, "Adafruit Micro-Lipo Charger for LiPoly Batt with USB Type C Jack" (https://www.adafruit.com/product/4410) –, read on 2026-11-03 from a read-only clone. The netlist was resolved from the schematic's XML (parts, nets, each device's pin-to-pad connects) by a script outside this repository and checked against the board file Adafruit USB C microlipo charger.brd of the same commit: all 44 pads of the 15 connected parts are on the same signals there. The product page was read the same day for what the schematic does not say (the jumper's purpose, the cells it is meant for). · SVG

Micro-Lipo USB-C adafruit-microlipo-usb-c · board main graph v1.0 (2026-11-03) · 281 x 244 mm drawn by edakit schematic draw – change the graph, not this drawing CN2 S2B-PH-SM4-TB(LF)(SN) JST_2PIN in the schematic: pin 1 GND, pin 2 VBAT; the package's two solder tabs NC1, NC2 are on no net. Typed battery_holder so that a cell state of sim.json sits on it. X2 TYPE-C-31-M-13C USB_C in the schematic (CUI CUSB31-CFM2AX-01-X, pads A1B12, B1A12, A4B9, B4A9 paired): SBU1 and SBU2 open; the shell's four legs M1–M4 have no pin in the symbol and no net on the board – open as published. U1 Li-ion/LiPo charger 4.2 V IREG = 1000 V / RPROG: R3 10 kΩ alone 100 mA, R3 with R4 through SJ1 1.80 kΩ – 555 mA (DS20001984H 5.1.2). JP4 PZ254V-11-05P HEADER-1X5 in the schematic, a row of 70-mil pads (0.1" breakout pads); a 1 × 5 header stands in, not fitted. D- D- D- D+ D+ D+ CC2 CC1 STAT LED_RED LED_GREEN PROG PROG_500 VBAT 5V 5V 5V 5V 5V VBAT 5V VBAT 5V + CN2 GND A1 VBUS A4 CC1 A5 D+ A6 D- A7 SBU1 A8 VBUS A9 GND A12 GND B1 VBUS B4 CC2 B5 D+ B6 D- B7 SBU2 B8 VBUS B9 GND B12 X2 TYPE-C-31-M-13C R5 5.1k R6 5.1k STAT 1 VSS 2 VBAT 3 PROG 5 VDD 4 U1 MCP73831T-2ACI/OT R1 470 LED1 NCD0805R1 R2 470 LED2 KT-0805G C2 10uF C1 10uF R3 10k 1 2 SJ1 SOLDERJUMPER_ARROW_NOPASTE R4 2.2k 1 2 3 4 5 JP4 PZ254V-11-05P
StageCodeWhereJudgedWhy
checkDOCS.fileedakit.tomlcriterionThe transcription has no requirements file: what the published design must do stands in its own documents, not in edakit's form. edakit requires the file before a release (handbook 3.6); it is no point of the design.
checkLIM.i/chargeU1realWith SJ1 closed, R3 (10 kΩ) and R4 (2.2 kΩ) in parallel are 1.80 kΩ: 1000 V / 1.80 kΩ = 555 mA, above the MCP73831's 500 mA and below its PROG window of 2 … 67 kΩ (DS20001984H p. 4) – and above 1C of the 500 mAh cell the product page names for this mode. 2.5 kΩ, as the micro-USB Micro-Lipo of the same repository has, would give 500 mA; the schematic's own table says 2.0K = 500mA.
checkPATH.reverseU1.3realA pack whose JST plug is wired the other way round puts −4.2 V straight on the charger's VBAT (and C2): nothing on the board blocks it. Adafruit says so itself – 'For use with Adafruit LiPoly/LiIon batteries only! Other batteries may have different voltage, chemistry, polarity or pinout' – and the plug's polarity differs between makers.
checkPARTS.fact/reachC15850lacksA board that is sold names the SVHCs above 0.1 % (REACH Art. 33); the transcription took no supplier REACH statement for this part.
checkPARTS.fact/reachC2297lacksA board that is sold names the SVHCs above 0.1 % (REACH Art. 33); the transcription took no supplier REACH statement for this part.
checkPARTS.fact/reachC23179lacksA board that is sold names the SVHCs above 0.1 % (REACH Art. 33); the transcription took no supplier REACH statement for this part.
checkPARTS.fact/reachC23186lacksA board that is sold names the SVHCs above 0.1 % (REACH Art. 33); the transcription took no supplier REACH statement for this part.
checkPARTS.fact/reachC25804lacksA board that is sold names the SVHCs above 0.1 % (REACH Art. 33); the transcription took no supplier REACH statement for this part.
checkPARTS.fact/reachC2848620lacksA board that is sold names the SVHCs above 0.1 % (REACH Art. 33); the transcription took no supplier REACH statement for this part.
checkPARTS.fact/reachC295747lacksA board that is sold names the SVHCs above 0.1 % (REACH Art. 33); the transcription took no supplier REACH statement for this part.
checkPARTS.fact/reachC4190lacksA board that is sold names the SVHCs above 0.1 % (REACH Art. 33); the transcription took no supplier REACH statement for this part.
checkPARTS.fact/reachC424093lacksA board that is sold names the SVHCs above 0.1 % (REACH Art. 33); the transcription took no supplier REACH statement for this part.
checkPARTS.fact/reachC492404lacksA board that is sold names the SVHCs above 0.1 % (REACH Art. 33); the transcription took no supplier REACH statement for this part.
checkPARTS.fact/reachC84256lacksA board that is sold names the SVHCs above 0.1 % (REACH Art. 33); the transcription took no supplier REACH statement for this part.
simLIM.iU1realThe 500 mA mode charges with 555 mA in the model, above the MCP73831's 500 mA (LIM.i/charge, a warning) – the static finding seen in the operating point.
simLIM.backfeedCN2real555 mA into Adafruit's 500 mAh cell: above its quick-charge maximum of 1C (PKCELL 503035 specification, 500 mA), the cell the product page names as the smallest for this mode.
simLIM.iX2realIn the 500 mA mode the board draws 556–558 mA; with 5.1 kΩ Rd it asks a USB-C source for Default USB Power, 500 mA from a USB 2.0 port. Default power from a USB 3.x port (900 mA) carries it.
simLIM.tU1realIn the 500 mA mode the SOT-23-5 dissipates 0.57 W from a cell at 3.7 V and 1.1 W from one at 3.0 V: 157–278 °C at 230 K/W. The MCP73831 then regulates its temperature and cuts the current (DS20001984H 6.1.1.3: 1.54 W worst case) – the 500 mA the jumper promises are not reached from a low cell; edakit's model has no thermal regulation and shows the dissipation.

edakit's false alarms on this design, fixed

  • STAT not driven by the charger model: it floated, and the two LEDs carried the chain 5V – LED1 – R1 – R2 – LED2 – GND, the red one too dim while charging and the green one lit (SIM.state on LED1, LED2). The model now holds STAT low while it charges and high once the current falls below i_term_ratio of the set current: 4.3–7.5 mA through LED1 while charging, 4.2 mA through LED2 with the cell full (TD-133).
  • SJ1, two pads of the board's copper bridged with solder, asked for a supplier, a REACH statement and an EasyEDA device (PARTS.supplier, PARTS.fact/reach, PARTS.verified/device): the parts entry says own.what "copper" now – nothing bought, nothing to state (TD-127).
  • A charger's status LEDs, each behind its series resistor on the tri-state STAT, taken for a floating net (LVL.undefined/open_drain on STAT) – an LED cathode straight on an output counted as its load, one behind a resistor did not.
  • R4 behind the solder jumper SJ1 – the 500 mA mode – counted by neither LIM.i/charge nor the simulation's charger model, which read only resistors straight from PROG to ground: the check now holds the position that programs the most, the model the contacts a load closes.
  • A reversed cell carried by JP4 from its VBAT pad to 5V, and by the USB-C receptacle on to CC1 and CC2 – catalog/paths.toml let a connector pass a reversed source from every pin to every pin (PATH.reverse on U1.4, LED1.2, R5.2, R6.2): a connector now takes it on the contact it sits on and hands nothing on (TD-124).