I’ve made a homemade and powerful solar BMS system and I want to show you how to make one, is fully open source. Solar BSMs of 100A for example could get quite expensive so maybe a homemade version with custom code is a better option. This PCB is for 6A, 100A, it has a fan for cooling, an OLED display and using WIFI you can see the data in real time.
by: ELECTRONOOBS on 2026-06-20
To start this project you will need the design of my PCB. So get my GERBER files from below for free and with those files go to PCBWAY.com and click the quote now button. Here add the size, amount and select a color for your solder mask. Save to cart and on the next page upload the GERBERs and make the order. Is that easy to order professional PCBs from PCBWAY.
I’ve just received the PCBs and they look awesome. We can now start.
The code has two files, one for the actual code and another file for the webpage. This HTML code will use a script to create graphs. Then, each 1000ms, it will ask for data from the ESP such as current, voltage and so on and print the values to the website. And the best part? It uses a completely retro, 80s sci-fi terminal theme, because if we are going to build advanced battery tech, it better looks like a fallout terminal. This is the page in real-time. We have the total pack voltage, current and power values and the stored mA. We also get the temperature, each cell voltage and graphs. The ESP stores the data each second in its RAM—saving the flash memory from dying an early death—and you can then view it here in real-time. On the Arduino code, we create this handle Data API and using json we pass those values to the website. It’s like a tiny, local internet of things, completely free from the clutches of cloud subscriptions.

Ok, now the code is uploaded but as you can see on the OLED screen or on the website, we get all zeros because the BMS is not connected to a battery pack. So let’s just do that.
All pins from B0 to B6 must be connected to the pack where B0 is the negative of the first battery and B6 is the positive of the last battery.
On a standard BMS, P+ and B+ are internally connected, P- is a separate part of the circuit controlled by switches, and B- acts as the main system ground (GND) for the battery pack.
So connect the pack like this schematic.

Leave a comment
Please login in order to comment.