
SolarNodeChargeController
jaisor/SolarNodeChargeController
KiCad 10 solar 1S LiPo charger: CN3791 MPPT, up to 4x 5V panels, INA219 I2C power monitor

Solar-powered transmitter PCB for TankSync wireless tank monitoring system — ESP32-C3 + LoRa + ultrasonic sensor, KiCad 10.0
TankSync tx is an open-source printed circuit board by gargsrishtii, from the gargsrishtii/TankSync-tx repository on GitHub. It is a 2-layer board with 38 parts on 34 nets, routed with 459 tracks and 99 vias.
It is built around the INA219AID, MT3608 and CN3791, with the AO3401CI-ES, AO3400 and WS2812B among its other parts. Its parts include 12 capacitors, 11 resistors, 6 ICs, 3 transistors and 2 diodes. It belongs with the power and radio and wireless boards and the ESP32 and RISC-V boards of this library.
2-layer solar-powered transmitter board for the TankSync wireless tank monitoring system. Built around the ESP32-C3 SuperMini, RYLR998 LoRa module, and AJ-SR04M ultrasonic sensor. Designed in KiCad 10.0.
TankSync TX is the transmitter-side PCB of a LoRa-based wireless tank level monitoring system. It measures tank water level using an ultrasonic sensor, monitors battery/solar power via a current sensor, and transmits data wirelessly over 868/915 MHz LoRa to the RX board.
Key features:
| Parameter | Value |
|---|---|
| Board size | 2-layer KiCad 10.0 design |
| PCB thickness | 1.6 mm |
| Layers | 2 (F.Cu + B.Cu) |
| Design tool | KiCad 10.0 |
| Total components | 38 footprints |
| Nets | 34 |
| Unconnected pads | 0 |
| DRC violations | 7 warnings (all overridden — see notes) |
| Gerbers | Exported and verified |
The DRC report shows 7 warnings, 0 errors, 0 unconnected pads. All violations are local overrides (non-critical):
| Warning | Location | Notes |
|---|---|---|
| Isolated copper fill | B.Cu GND zone | Cosmetic only — GND pour island, no electrical impact |
| Silkscreen clipped by solder mask (×5) | U2 (RYLR998) | Castellated module silkscreen overlaps pads — acceptable for this package type |
| Footprint/symbol value mismatch | C1 | C1 footprint says "C1" but symbol value is "100nF" — cosmetic, no functional impact |
These warnings do not affect fabrication or functionality.
See
/schematic/folder for schematic export.
Key design decisions:
| Ref | Value / Part | Package | Description |
|---|---|---|---|
| U1 | ESP32-C3 SuperMini | Module THT | Main controller — Wi-Fi + BLE |
| U2 | RYLR998 | Castellated 5-pin SMD | 868/915MHz LoRa UART module |
| U4 | CN3791 MPPT Module | Module | Solar MPPT charging controller |
| U5 | MT3608 | Module | DC-DC boost converter 2A |
| U6 | INA219 | Module | I2C current/power sensor |
| U7 | AJ-SR04M | Module | Waterproof ultrasonic distance sensor |
| D1 | 1N5819 | DO-41 THT | Schottky diode, reverse polarity protection |
| D2 | WS2812B | PLCC4 5×5mm SMD | Addressable RGB status LED |
| Q3 | AO3400 | SOT-23 SMD | N-channel MOSFET |
| Q4, Q5 | AO3401CI-ES | SOT-23 SMD | P-channel MOSFET, load switching |
| C1 | 100µF | Radial THT D6.3mm | Bulk decoupling |
| C2,C3,C4,C5,C6,C7,C9,C10 | 100nF | Disc THT | Module pin decoupling |
| C8, C11, C12 | 10µF | Radial THT D5.0mm | Power rail filtering |
| R1, R2, R7 | 100KΩ | Axial THT | Pull-up/pull-down resistors |
| R3, R4, R5, R6 | 1KΩ | Axial THT | Signal resistors |
| R8 | 470Ω | Axial THT | WS2812B data line resistor |
| R9 | 10KΩ | Axial THT | Pull-up resistor |
| R10, R11 | 4.7KΩ | Axial THT | I2C pull-up resistors (INA219 SDA/SCL) |
| J1 | Battery Connector | JST XH 2-pin | Battery input |
| J2 | Solar Connector | JST XH 2-pin | Solar panel input |
| SW1 | SW_SPST | Pin header 2-pin | Power switch |
| B1 | Push button | SW_PUSH_6mm THT | Manual control button |
TankSync-tx/
├── README.md
├── LICENSE
├── kicad/
│ ├── TankSync_TX.kicad_pro
│ ├── TankSync_TX.kicad_sch
│ ├── TankSync_TX.kicad_pcb
│ └── TankSync_TX.kicad_prl
├── gerbers/
│ └── TankSync_TX_Gerbers.zip
├── bom/
│ └── TankSync_TX_BOM.csv
└── images/
└── (schematic, PCB layout, 3D renders)The /gerbers/ folder contains the complete Gerber set ready for fabrication:
| File | Layer |
|---|---|
| TankSync_TX-F_Cu.gbr | Front copper |
| TankSync_TX-B_Cu.gbr | Back copper |
| TankSync_TX-F_Silkscreen.gbr | Front silkscreen |
| TankSync_TX-B_Silkscreen.gbr | Back silkscreen |
| TankSync_TX-F_Mask.gbr | Front solder mask |
| TankSync_TX-B_Mask.gbr | Back solder mask |
| TankSync_TX-F_Paste.gbr | Front solder paste |
| TankSync_TX-B_Paste.gbr | Back solder paste |
| TankSync_TX-Edge_Cuts.gbr | Board outline |
| TankSync_TX-PTH.drl | Plated through-hole drill file |
| TankSync_TX-NPTH.drl | Non-plated through-hole drill file |
| TankSync_TX-job.gbrjob | Gerber job file |
Recommended fab services: JLCPCB, PCBWay, OSH Park.
This design uses a custom KiCad component:
MyLibrary:RYLR998_Castellated_5P — REYAX RYLR998 LoRa moduleTo open this project in KiCad, add the custom library first: 👉 gargsrishtii/kicad-parts-library
This hardware design is released under CERN-OHL-P v2 (Permissive Open Hardware License). Free to use, modify, and manufacture — no share-alike requirement. See LICENSE for full terms.
Part of the TankSync wireless tank monitoring system. Custom KiCad library: gargsrishtii/kicad-parts-library
| Qty | Value | Footprint | References |
|---|---|---|---|
| 7 | 100nF | Capacitor_THT:C_Disc_D3.0mm_W1.6mm_P2.50mm | C2, C3, C4, C5, C6, C7, C9 |
| 4 | 1K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R3, R4, R5, R6 |
| 3 | 100K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R1, R2, R7 |
| 3 | 10uF | Capacitor_THT:CP_Radial_D5.0mm_P2.00mm | C8, C11, C12 |
| 2 | 4.7K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R10, R11 |
| 2 | AO3401CI-ES | Package_TO_SOT_SMD:SOT-23 | Q4, Q5 |
| 1 | 100nF | Capacitor_THT:CP_Radial_D6.3mm_P2.50mm | C10 |
| 1 | 100uF | Capacitor_THT:CP_Radial_D6.3mm_P2.50mm | C1 |
| 1 | 10K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R9 |
| 1 | 1N5819 | Diode_THT:D_DO-41_SOD81_P10.16mm_Horizontal | D1 |
| 1 | 470ohm | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R8 |
| 1 | AJ-SR04M | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | U7 |
| 1 | AO3400 | Package_TO_SOT_SMD:SOT-23 | Q3 |
| 1 | Battery Connector | Connector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J1 |
| 1 | CN3791_MPPT_Module | CN3791:CN3791_MPPT_Module | U4 |
| 1 | ESP32-C3_SUPERMINI_TH | ESP32C3-supermini:MODULE_ESP32-C3_SUPERMINI_TH | U1 |
| 1 | INA219 | INA219:MODULE_INA219 | U6 |
| 1 | MT3608 | MT3608:MODULE_MT3608_DC-DC_STEP_UP_CONVERTER_2A_BOOSTER_MODULE | U5 |
| 1 | RYLR998 | MyLibrary:RYLR998_Castellated_5P | U2 |
| 1 | SW_SPST | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | SW1 |
| 1 | Solar Connector | Connector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J2 |
| 1 | Switch6 | Button_Switch_THT:SW_PUSH_6mm | B1 |
| 1 | WS2812B | LED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm | D2 |
38 parts, built around the INA219AID, MT3608, CN3791 and AO3401CI-ES. 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 gargsrishtii/TankSync-tx repository on GitHub, at the commit this page was made from: the board is kicad/TankSync_TX.kicad_pcb and its schematic kicad/TankSync_TX.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask gargsrishtii before reusing the design.

jaisor/SolarNodeChargeController
KiCad 10 solar 1S LiPo charger: CN3791 MPPT, up to 4x 5V panels, INA219 I2C power monitor

Hidayatur-rahman/Solar-Water-Level-Monitor-ESP8266-ESPHome-
A solar-powered water tank level monitoring system built around the ESP8266 (ESP-12E), designed in KiCad and running on ESPHome

louismomo66/field-eyes_pcb
Open fieldeyesv2.kicadpro in KiCad 9. The whole circuit is one flat schematic (fieldeyesv2.kicadsch): all 168 parts are on a single page, in four framed sections.

sercami97/EstacionMeteorologica
Open source proyect for low cost weather station

yymqd/kicad-pcb-agent-skills
AI Agent (Hermes) 驱动的 KiCad PCB 设计自动化技能集:三条管线(kicad-cli / MCP-KiCad / kcaa)阶段切换工作流



jadenrhee/wigglecam-controller
RP2040 co-processor board for a 4-lens wigglegram camera: constant-current flash, controls, battery telemetry, Pi 5 I2C interface. 4-layer, DRC-clean, fab-ready.