Skip to the content
PCBKitNew board
2 layers43.4 × 98 mmSolax Pylontech, the printed circuit board in 3D

Solax Pylontech

70p4z/tparse6

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

3

README

README.md

TParse

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
QtyValueFootprintReferences
4100Resistor_SMD:R_0603_1608MetricR5, R6, R7, R8
44k7Resistor_SMD:R_0603_1608MetricR1, R2, R14, R15
4560pFCapacitor_SMD:C_0603_1608MetricC3, C4, C5, C6
4Conn_01x05_SocketConnector_JST:JST_XH_B5B-XH-A_1x05_P2.50mm_VerticalJ5, J6, J7, J8
4D_TVSDiode_SMD:D_0603_1608MetricD1, D2, D6, D7
3BAT60JFILMDiode_SMD:D_SOD-323D3, D4, D5
3MountingHoleMountingHole:MountingHole_3mmH1, H2, H3
3RJ45Connector_RJ:RJ45_Amphenol_54602-x08_HorizontalJCANBMS1, JCANINV1, JUARTBMS1
2100nFCapacitor_SMD:C_0603_1608MetricC1, C2
2120Resistor_SMD:R_0603_1608MetricR3, R4
25k1Resistor_SMD:R_0603_1608MetricR12, R13
2MCP2551-I-SNPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU2, U3
2TestPointTestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mmVCC_3V1, VCC_5V1
1100KResistor_SMD:R_0603_1608MetricR11
1100uFCapacitor_SMD:C_0805_2012MetricC8
1150uH SRR0603-151KLInductor_SMD:L_6.3x6.3_H3L1
1300KResistor_SMD:R_0603_1608MetricR10
147Resistor_SMD:R_0603_1608MetricR9
147uFCapacitor_SMD:C_0805_2012MetricC7
1Conn_01x02_SocketConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ4
1Conn_01x03_SocketConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ3
1Conn_02x07_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x07_P2.54mm_VerticalJ2
1Conn_02x10_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x10_P2.54mm_VerticalJ1
1LT1107CSPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU1
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJUARTINV1

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 layers61 × 41.3 mmDaqBoard, the printed circuit board in 3D

    DaqBoard

    uvmaero/AERO_Boards

    All the Boards We Make

    26 parts1
  • 2 layers100 × 80 mmCanbus adapter, the printed circuit board in 3D

    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 mmCanbus ui, the printed circuit board in 3D

    Canbus ui

    adeboni/math-camp-synth

    Burning Man Math Camp Synthesizers

    106 partsGPL-3.0
  • 2 layers70.1 × 82.5 mmNucleo can, the printed circuit board in 3D

    Nucleo can

    VHLZonnebootteam/Telemetrie

    41 parts
  • 2 layersNavigatorschema, the printed circuit board in 3D

    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 mmMINIREX G4, the printed circuit board in 3D

    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 mmReflow, the printed circuit board in 3D

    Reflow

    windsorschmidt/reflow

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

    95 parts4MIT