
SunSproutSatellite
JohnNeville/SunSprout
An esp32-c5 powered board that adds dual source battery charging, fuel management, and differential i2c bus. This was largely developed to be a complement with my other soil sensor project.

An esp32-c5 powered board that adds dual source battery charging, fuel management, and differential i2c bus. This was largely developed to be a complement with my other soil sensor project.
SunSproutHub is an open-source printed circuit board by JohnNeville, from the JohnNeville/SunSprout repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 6-layer board of 56 × 85 mm with 142 parts on 98 nets, routed with 1,040 tracks and 185 vias.
It is built around the ESP32-C5-WROOM-1U-N8R8-V1.2, PCA9615DPZ and TPS631000DRL, with the BQ25798RQMR, BQ34Z100PWR-G1 and CL05B104KB54PNC among its other parts. Its parts include 40 capacitors, 30 resistors, 11 connectors, 7 transistors and 6 ICs. It belongs with the power boards and the ESP32 and RISC-V boards of this library.
The hub board's KiCad 10 project. Open SunSproutHub.kicad_pro.
For the design reasoning behind each IC and its passives, see docs/hub/modules/.
| Path | Contents |
|---|---|
SunSproutHub.kicad_sch | Root/hierarchical top sheet |
sheets/ | Hierarchical sub-sheets (charger, fuel gauge, regulator, user I2C) |
SunSproutHub.kicad_pcb | Board layout, hand-routed |
SunSproutHub.kicad_dru | Custom design rules |
../libraries/ | Project-specific and vendored symbol/footprint libraries (shared with Satellite) |
spice_models/ | ngspice decks used to verify the reverse-polarity FETs |
The revision is set by the REV_NUM text variable in SunSproutHub.kicad_pro, which the
silkscreen prints alongside the commit hash. Change the title block revision in the PCB to match.
| Change | Bump | Example |
|---|---|---|
| Fixes and part changes that keep the same ICs and board dimensions | Minor | 1.0 → 1.1 |
| A change that replaces the main ICs or changes the board dimensions | Major | 1.x → 2.0 |
All Rev 1.x boards share the same outline, mounting holes and connector positions, so the
documentation refers to them as Rev 1.x. Rev 1.0 is the first prototype, built from commit
1645733.
KiCad writes the full geometry of every symbol and footprint directly into the
.kicad_sch and .kicad_pcb files at placement time. The schematic and the board are
therefore self-contained. After cloning you can open both, run ERC and DRC, inspect every
part, and export gerbers and a pick-and-place file, with no libraries beyond the ones KiCad
ships with.
3D models are not external. The board file carries an embedded copy of every 3D model (KiCad's "Collect and Embed 3D Models"), so the board renders completely with nothing installed.
Footprints are mostly in-repo too. Three library entries still resolve outside it, and they are only consulted when you update a footprint from its library — not to open, review, render, or fabricate the board, because the geometry is already in the board file.
| Library | Resolves via | Parts |
|---|---|---|
Snapeda | KICAD_3RD_PARTY | J201, J202, U3, U8, U4, U5, U201, D5, U202, Q301-Q304 |
PCM_JLCPCB | PCM package (CDFER, MIT) | The 0402 capacitors |
PCM_SparkFun-Connector | PCM package | The test points |
PCM_Capacitor_SMD_AKL | PCM package | C17 only, which is DNP and not fitted |
If KiCad reports these as missing, the board is still correct. To silence the warnings,
install the matching PCM packages and point KICAD_3RD_PARTY at your own third-party library
directory, or remove the unused entries from fp-lib-table.
The USBC1 USB-C footprint and the CN5 screw terminal are project footprints, in
../libraries/footprints/project.pretty/. The Espressif module's footprint and 3D model are
vendored under ../libraries/vendor/.
Every library this design still depends on has stated terms: SnapEDA is CC BY-SA 4.0 with the Design Exception 1.0, CDFER's library is MIT, and Espressif's is CC BY-SA 4.0. All three are credited in NOTICE.md. Earlier revisions used EasyEDA/LCSC content, whose redistribution terms are not published; it has since been replaced throughout and no longer appears in the design or the embedded model set.
The board renders, schematic PDF, STEP model, interactive BOM, and pinout SVG under
website/static/ are all build artifacts of the files here. Regenerate them from the
repository root after any schematic or layout change:
tools/generate-docs-assets.shDocker is the only prerequisite. No local KiCad installation is required.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 12 | 100nF | PCM_JLCPCB:C_0402 | C16, C18, C28, C201, C202, C203, C303, C307, C313, C320, C401, C403 |
| 10 | 10uF | Capacitor_SMD:C_0603_1608Metric | C13, C27, C308, C309, C310, C311, C312, C314, C315, C319 |
| 5 | 10uF | Capacitor_SMD:C_0805_2012Metric | C301, C302, C304, C305, C306 |
| 5 | 1uF | Capacitor_SMD:C_0603_1608Metric | C1, C2, C19, C21, C402 |
| 5 | 4.7k | Resistor_SMD:R_0603_1608Metric | R20, R21, R201, R202, R301 |
| 5 | AO3400A | Snapeda:SOT95P280X125-3N | Q3, Q301, Q302, Q303, Q304 |
| 4 | 10k | Resistor_SMD:R_0603_1608Metric | R1, R2, R24, R401 |
| 4 | MountingHole_2.7mm_M2.5 | MountingHole_2.7mm_M2.5 | MH1, MH2, MH3, MH4 |
| 3 | Fid6, Fid6, Fid7 | ||
| 3 | 100R | Resistor_SMD:R_0603_1608Metric | R304, R402, R403 |
| 3 | 100k | Resistor_SMD:R_0603_1608Metric | R17, R19, R23 |
| 3 | 4.7uF | Capacitor_SMD:C_0805_2012Metric | C15, C26, C316 |
| 3 | 5.1k | Resistor_SMD:R_0603_1608Metric | R5, R6, R305 |
| 3 | Fiducial_1mm_Mask2mm | Fiducial:Fiducial_1mm_Mask2mm | Fid1, Fid8, Fid9 |
| 3 | GND | PCM_SparkFun-Connector:TestPoint-1.0mm | TP4, TP5, TP6 |
| 3 | SW_Push | Button_Switch_SMD:SW_SPST_TS-1088-xR020 | SW1, SW2, SW3 |
| 2 | 0R | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R9, R11 |
| 2 | 22 | Resistor_SMD:R_0603_1608Metric | R7, R8 |
| 2 | 47nF | Capacitor_SMD:C_0603_1608Metric | C317, C318 |
| 2 | 47uF | Capacitor_SMD:C_0805_2012Metric | C14, C25 |
| 2 | JST_PA_S02B-PASK-2 | project:JST_PA_S02B-PASK-2_1x02_P2.00mm_Horizontal | J302, J401 |
| 2 | Qwiic | Connector_JST:JST_SH_BM04B-SRSS-TB_1x04-1MP_P1.00mm_Vertical | J6, J203 |
| 2 | RJHSE5380 | Snapeda:AMPHENOL_RJHSE5380 | J201, J202 |
| 2 | ~ | Jumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mm | JP2, JP3 |
| 1 | 10mΩ | Resistor_SMD:R_1206_3216Metric | R404 |
| 1 | 110k | Resistor_SMD:R_0603_1608Metric | R302 |
| 1 | 130k | Resistor_SMD:R_0603_1608Metric | R303 |
| 1 | 1755736 | project:DB125-2.54-2P-GN-S | CN5 |
| 1 | 1uH | Inductor_SMD:L_Changjiang_FTC252012S | L2 |
| 1 | 2.2uH | Inductor_SMD:L_Changjiang_FTC404030S | L1 |
| 1 | 30k | Resistor_SMD:R_0603_1608Metric | R306 |
| 1 | 330Ω | Resistor_SMD:R_0603_1608Metric | R3 |
| 1 | 3V3_SYS | PCM_SparkFun-Connector:TestPoint-1.0mm | TP8 |
| 1 | 3V3_USER | PCM_SparkFun-Connector:TestPoint-1.0mm | TP7 |
| 1 | 510k | Resistor_SMD:R_0603_1608Metric | R15 |
| 1 | 680Ω | Resistor_SMD:R_0603_1608Metric | R10 |
| 1 | 91k | Resistor_SMD:R_0603_1608Metric | R16 |
| 1 | BATTERY | Connector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal | J4 |
| 1 | BOOT | PCM_SparkFun-Connector:TestPoint-1.0mm | TP18 |
| 1 | BQ25798RQMR | Snapeda:RQM0029A-MFG_ModifiedCornersAndCourtyard | U8 |
| 1 | BQ34Z100PWR-G1 | Snapeda:PW0014A_L | U3 |
| 1 | BZT52C12S | PCM_JLCPCB:D_SOD-323 | D2 |
| 1 | CHG | LED_SMD:LED_0603_1608Metric | LED2 |
| 1 | C_0805 | PCM_Capacitor_SMD_AKL:C_0805_2012Metric | C17 |
| 1 | Conn_01x03 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J2 |
| 1 | DMP3098L-7 | Package_TO_SOT_SMD:SOT-23 | Q2 |
| 1 | ESP32-C5-WROOM-1U | Espressif:ESP32-C5-WROOM-1U | U1 |
| 1 | FG_PWR | Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm_NumberLabels | JUMP_FG_PWR2 |
| 1 | FG_TS_NODE | PCM_SparkFun-Connector:TestPoint-1.0mm | TP11 |
| 1 | GPIO_HEADER_L | project:LeftSide_PinHeader_1x09_P2.54mm_Vertical | J7 |
| 1 | GPIO_HEADER_R | Connector_PinHeader_2.54mm:PinHeader_1x09_P2.54mm_Vertical | J8 |
| 1 | LOGO | project:Logo | G*** |
| 1 | MDD3415 | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | NetTie_VDC_VAC2_DET | NetTie:NetTie-2_SMD_Pad0.5mm | NT3 |
| 1 | NetTie_VUSB_VAC1_DET | NetTie:NetTie-2_SMD_Pad0.5mm | NT2 |
| 1 | PCA9615 | Snapeda:TSSOP10_SOT552-1_NXP-L | U201 |
| 1 | PESD5V0S1BA | Diode_SMD:D_SOD-523 | D3 |
| 1 | REGN_RAIL | PCM_SparkFun-Connector:TestPoint-1.0mm | TP13 |
| 1 | RESET | PCM_SparkFun-Connector:TestPoint-1.0mm | TP19 |
| 1 | SCL_INT | PCM_SparkFun-Connector:TestPoint-1.0mm | TP3 |
| 1 | SDA_INT | PCM_SparkFun-Connector:TestPoint-1.0mm | TP2 |
| 1 | STATUS | LED_SMD:LED_0603_1608Metric | LED1 |
| 1 | SYS_RAIL | PCM_SparkFun-Connector:TestPoint-1.0mm | TP12 |
| 1 | SolderJumper_3_Open | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm_NumberLabels | JUMP_CHGR_GND2 |
| 1 | TPS22918DBVR | Snapeda:SOT95P280X145-6N | U5 |
| 1 | TPS631000 | Snapeda:SOT50P160X60-8N | U4 |
| 1 | TS_NODE | PCM_SparkFun-Connector:TestPoint-1.0mm | TP10 |
| 1 | TYPE-C-31-M-12 | project:USB-C_TYPE-C-31-M-12 | USBC1 |
| 1 | U0RXD | PCM_SparkFun-Connector:TestPoint-1.0mm | TP16 |
| 1 | U0TXD | PCM_SparkFun-Connector:TestPoint-1.0mm | TP17 |
| 1 | USBLC6-4SC6-ES | project:USBLC6-4SC6-ES_WIthNetTie | D5 |
| 1 | USBLC6-4SC6-ES | project:SOT23-6L_STM_w_NetTies_1346ab | D201 |
| 1 | VBAT | PCM_SparkFun-Connector:TestPoint-1.0mm | TP14 |
| 1 | VBAT_PRO | PCM_SparkFun-Connector:TestPoint-1.0mm | TP15 |
| 1 | VBUS_INTERNAL | PCM_SparkFun-Connector:TestPoint-1.0mm | TP9 |
| 1 | VUSB | PCM_SparkFun-Connector:TestPoint-1.0mm | TP20 |

JohnNeville/SunSprout
An esp32-c5 powered board that adds dual source battery charging, fuel management, and differential i2c bus. This was largely developed to be a complement with my other soil sensor project.

noahhusby/LINC
The Laboratory Instrument Network Controller (LINC) is a modern network GPIB interface for test equipment



efogdev/nrf54l15-module
nRF54L15 module with full IO set and external DC-DC regulator for maximum efficiency


ICRS/101
The all-new open source Robotics 101 course from ICRS. It's specifically designed to be run in hackspaces, after school clubs and university societies.

AdvikChitre/MSL_Imperial_2023
Repository for Imperial College London Robocup MSL team 2023

It measures 56 × 85 mm and has 6 copper layers, 1.6 mm thick.
142 parts, built around the ESP32-C5-WROOM-1U-N8R8-V1.2, PCA9615DPZ, TPS631000DRL and BQ25798RQMR. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the JohnNeville/SunSprout repository on GitHub, at the commit this page was made from: the board is hardware/hub/SunSproutHub.kicad_pcb and its schematic hardware/hub/SunSproutHub.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the CERN-OHL-S-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).