

Solax Pylontech
A minimalistic C library to parse text in microcontroller without memory allocation.
- Size
- 43.4 × 98 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 51
- Nets
- 70
- Pads
- 202
- Tracks, vias
- 619, 35
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 4 May 2022
- Updated
- 26 Sep 2026
Overview
Solax Pylontech is an open-source printed circuit board by 70p4z, from the 70p4z/tparse repository on GitHub. It is a 2-layer board of 43.4 × 98 mm with 51 parts on 70 nets, routed with 619 tracks and 35 vias.
It is built around the MCP2551-I/SN-HG, BAT60JFILM and RJ45. Its parts include 15 resistors, 8 capacitors, 8 connectors, 7 diodes and 3 ICs.
Main components
3README
README.mdTParse
A minimalistic C library to parse text in microcontroller without memory allocation.
Supports:
- Hex arrays
- Hex integer
- Decimal integer
- List of allowed keywords
- Raw text token fetch
IOBridge
A basic iobridge example project is provided, making extended use of the library. The project is splitted in:
- A iobridge application for NUCLEO-L476RG;
- A python (3) library to communicate with.
The iobridge goal is to offer an UART driven text interface to bridge to various protocols (raw GPIO, I2C bus, CAN bus, ISO7816-3 T=0). The project will be extended with ADC, OneWire and SPI.
Nucleo F767ZI solax pylontech
Sometimes it's harder than it looks to build a solar system with batteries from scratch. Especially if you build it from the electronic engineer point of view. Voltage are in range, and the datasheets seems like a match. BUT it turns out you're missing the whole point. Many players in the ecosystem are not willing for compatibility. And the war moves from electronic to communication protocol to make systems work.
I got into such a refreshing problem when I decided to go solar with a huge amount of auto consumption. I went for modular Pylontech H48050 (high voltage (HV)) based system (SC0500 + 8 H48050 in the end). And tried to connect it with a Solax X1 Hybrid G4.
The very point is that it won't work until you handle rewrite some part of the protocol on the fly.
The example for nucleo was mainly done to have the communication working, and various tries to allow for power optimisation, or workaround on problems (not respected zero injection).
Anyway, this project is only based on tparse for the ring buffer management (but it started with 2 iobridges until I found a board (f767zi) that handle 2 CAN bus to perform the man-in-the-middle).
The project further grown into a fully fledged reporting system to connect with home assistant (through a http sensor python script running on a raspberry pi zero w).
I'll try to add a design later on to design the daughter board on the nucleo for the various connections (mate box relay, CAN to the inverter, CAN to the battery, I2C for the reporting, serial for the pocket wifi link).
Long story short, the bugfix for the protocol is to only patch the CAN message 0x1877 byte 4 from whatever (IIRC it was 0x01) to 0x83 to make the inverter happily use the BMS (and stop complaining about invalid voltage).
Parts
51| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 100 | Resistor_SMD:R_0603_1608Metric | R5, R6, R7, R8 |
| 4 | 4k7 | Resistor_SMD:R_0603_1608Metric | R1, R2, R14, R15 |
| 4 | 560pF | Capacitor_SMD:C_0603_1608Metric | C3, C4, C5, C6 |
| 4 | Conn_01x05_Socket | Connector_JST:JST_XH_B5B-XH-A_1x05_P2.50mm_Vertical | J5, J6, J7, J8 |
| 4 | D_TVS | Diode_SMD:D_0603_1608Metric | D1, D2, D6, D7 |
| 3 | BAT60JFILM | Diode_SMD:D_SOD-323 | D3, D4, D5 |
| 3 | MountingHole | MountingHole:MountingHole_3mm | H1, H2, H3 |
| 3 | RJ45 | Connector_RJ:RJ45_Amphenol_54602-x08_Horizontal | JCANBMS1, JCANINV1, JUARTBMS1 |
| 2 | 100nF | Capacitor_SMD:C_0603_1608Metric | C1, C2 |
| 2 | 120 | Resistor_SMD:R_0603_1608Metric | R3, R4 |
| 2 | 5k1 | Resistor_SMD:R_0603_1608Metric | R12, R13 |
| 2 | MCP2551-I-SN | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U2, U3 |
| 2 | TestPoint | TestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mm | VCC_3V1, VCC_5V1 |
| 1 | 100K | Resistor_SMD:R_0603_1608Metric | R11 |
| 1 | 100uF | Capacitor_SMD:C_0805_2012Metric | C8 |
| 1 | 150uH SRR0603-151KL | Inductor_SMD:L_6.3x6.3_H3 | L1 |
| 1 | 300K | Resistor_SMD:R_0603_1608Metric | R10 |
| 1 | 47 | Resistor_SMD:R_0603_1608Metric | R9 |
| 1 | 47uF | Capacitor_SMD:C_0805_2012Metric | C7 |
| 1 | Conn_01x02_Socket | Connector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J4 |
| 1 | Conn_01x03_Socket | Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_Vertical | J3 |
| 1 | Conn_02x07_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x07_P2.54mm_Vertical | J2 |
| 1 | Conn_02x10_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x10_P2.54mm_Vertical | J1 |
| 1 | LT1107CS | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U1 |
| 1 | USB_C_Receptacle_USB2.0_16P | Connector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_Horizontal | JUARTINV1 |
Questions
How big is the Solax Pylontech PCB?
It measures 43.4 × 98 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Solax Pylontech use?
51 parts, built around the MCP2551-I/SN-HG, BAT60JFILM and RJ45. 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.
Where can I download the Solax Pylontech KiCad files?
From the 70p4z/tparse repository on GitHub, at the commit this page was made from: the board is example/nucleo-f767zi_solax-pylontech/pcb/Solax_Pylontech.kicad_pcb and its schematic example/nucleo-f767zi_solax-pylontech/pcb/Solax_Pylontech.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Solax Pylontech design in my own project?
Its repository states no licence, so its author keeps all rights: ask 70p4z before reusing the design.
Similar boards
- 2 layers55 × 36.5 mm

- 2 layers61 × 41.3 mm

- 2 layers100 × 80 mm

Canbus adapter
adeboni/laser-projector
This project is for a quadruple laser projection controller, aimed at supporting room-scale projections
78 partsGPL-3.0 - 2 layers100 × 100 mm

- 2 layers70.1 × 82.5 mm

- 2 layers

Navigatorschema
maddevsio/mad-navigator
Mad navigator is simple compass-like device shows direction to predefined geo point. This repository contains firmware source code and schematics for device.
107 parts14 - 6 layers29 × 33 mm

MINIREX G4
mathieupommery/MINIREX_G473
The following table demonstrates the estimated component costs based on Mouser volume pricing. The unit price of each component dynamically adapts to the total quantity required for the entire production batch (1, 100…
109 parts10 - 2 layers100 × 100 mm

Reflow
windsorschmidt/reflow
Hardware and firmware sources for a 2-channel reflow (toaster) oven controller. KiCad schematic & PCB.
95 parts4MIT