Loading 3D model… large boards can take a moment.
[!WARNING] Prototype hardware: charging works, validation is incomplete. A first hub was built and tested from commit
1645733. Charging, charge termination and running from the battery alone worked on it, and testing also found issues. The current design files fix them, but that revision has not been built yet, and not every feature has been bench-tested. Testing status lists each feature. You can build the tested prototype with its known issues, or the current design with its untested fixes. The commit history shows what changed.Before you connect a battery:
- Set the cell chemistry in the firmware first. The charger comes up for a 4.2 V cell by default. The firmware sets the charge limit from
cell_chemistry(LiFePO4 charges to 3.65 V), so set it to match your cell.- Fit a 10 kΩ NTC thermistor on the battery, or set
ts_ignore: true(turns temperature protection off). Otherwise the charger won't charge.- Set the charge current in the firmware to suit your pack, and never above 2000 mA. The hardware input-current limit only restricts it loosely, so the firmware ceiling is what holds it.
- Check polarity. The reverse-polarity protection was changed after the prototype and the new design is untested on hardware.
A wrongly configured charger can damage a lithium cell. Build one board and bring it up on USB power with no battery before ordering a batch.
Feedback is welcome, especially on the power path, the charger and fuel-gauge configuration, and anything in docs/hub/modules/ where the reasoning looks wrong.
An open-hardware solar and battery powered sensor system. SunSprout covers both halves of a deployment: the hub, a custom board that manages power and talks to the network, and the remote sensors that connect back to it over a long cable run.
The hub is the custom hardware in this project. The remote sensors are largely assembled from existing modules, and are documented here so that a whole system can be reproduced rather than inferred.
A compact power-management and connectivity board built around the . It takes power from USB-C, a small DC or solar source, or a lithium battery. It charges the battery, regulates a 3.3 V system rail, and exposes two independent I2C buses — one for its own power-management ICs, and one for sensors, buffered onto a differential pair so it can drive a long cable.
| Documentation site | johnneville.github.io/SunSprout — pinout, connectors, power behaviour |
| Build one | Order from JLCPCB and Getting started — fabrication settings, assembly checks, first flash |
| Design files | hardware/hub/ — KiCad 10 project, hand-routed |
| Why it is built this way | docs/hub/modules/ — per-IC design notes |
| Firmware | SunSprout-firmware — ESPHome configuration; docs/hub/firmware.md for the reasoning |
| Off-board parts you need | docs/hub/extra-components.md |
Every IC's datasheet-required external components are drawn directly into the schematic rather than treated as black-box breakout modules. The schematic and PCB are maintained by hand in KiCad; there is no generator producing them.
VBUS rail. The STEMMA QT ports, GPIO headers and thermistor inputs have none, by design:
they are for sensors inside the same enclosure. Reverse-polarity protection guards the
battery and solar inputs, each sized to that input's real voltage range; USB-C gets none,
being a keyed, spec-defined connector that cannot be connected backwards.A custom board, SunSproutSatellite (hardware/satellite/), is the
differential-I2C endpoint that sits at the plant end of the cable — it terminates the line,
converts back to standard I2C, and reads four capacitive soil-moisture probes plus one
1-Wire soil-temperature probe. It integrates what was previously an off-the-shelf SparkFun
QwiicBus EndPoint wired to a breadboarded ADS1115. See
docs/satellite/modules/ for the per-IC design notes, and
Use Cases for the deployed topology.
Status: schematic-capture spec only — the KiCad project is scaffolded but no board has been fabricated yet.
.
├── hardware/
│ ├── hub/ # the hub's KiCad project, libraries, and SPICE decks
│ └── satellite/ # the satellite's KiCad project and libraries
├── firmware/ # ESPHome configuration for the hub
├── docs/
│ ├── hub/
│ │ ├── modules/ # per-IC design notes: part choice, passive values, constraints
│ │ ├── firmware.md # why the firmware is configured the way it is
│ │ └── extra-components.md
│ └── satellite/
│ └── modules/ # per-IC design notes for the satellite board
├── tools/ # Dockerised KiCad CLI: validation, fab outputs, doc assets
└── website/ # Docusaurus documentation site
The prose documentation is split by audience:
SFET_PRESENT bit unlocks. The configuration itself is in SunSprout-firmware; the chip
drivers live in esphome-bq-drivers.Manufacturer datasheets are deliberately not redistributed here. Each design note names the exact part number, so you can get the datasheet from the manufacturer.
Docker is the only prerequisite. No local KiCad installation is required.
tools/run_kicad_validation.sh
tools/generate-docs-assets.sh
The first runs ERC and DRC. The second regenerates the board renders, schematic PDF, STEP
model, interactive BOM, and pinout diagram under website/static/. Re-run it after any
schematic or layout change, so that the published assets never go stale.
See hardware/hub/README.md for what you can do with the KiCad project without any extra setup, and which external libraries are optional.
Copyright John Neville 2026. This source describes Open Hardware and is licensed under the CERN-OHL-S v2.
You may redistribute and modify this source and make products using it under the terms of the CERN-OHL-S v2 (https://ohwr.org/cern_ohl_s_v2.txt).
This source is distributed WITHOUT ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY AND FITNESS FOR A PARTICULAR PURPOSE. Please see the CERN-OHL-S v2 for applicable conditions.
Source location: https://github.com/JohnNeville/SunSprout
See LICENSE for the full license text.
This design also vendors Espressif's official CC BY-SA 4.0 KiCad library for the ESP32-C5 module. See NOTICE.md for that credit and an acknowledgment of other technical references consulted during design.
No comments yet. Be the first to ask about this board.