stuartpittaway / diybms Goto Github PK
View Code? Open in Web Editor NEWDo it yourself battery management system for Lithium ion battery packs/cells
License: GNU General Public License v3.0
Do it yourself battery management system for Lithium ion battery packs/cells
License: GNU General Public License v3.0
I've put together version 1 of the PCB and it appears to work okay - but not as reliable as my breadboard version.
The i2c traffic works for several requests then appears to skip a few requests and then works again for a few more etc. The breadboard version is rock solid.
The ADUM1250 chip took a bit of a bashing when soldering, so this may be the weak point - although it does work intermittently.
Hi Stuart
I made a new PCB for you. You can have a look and if its ok, approve it.
This one is made with THT components, as many people don't have SMD in the drawer
Br Tim
Hello,It is possible to convert the source code for using a microcontroller Atmega328?Thanks very much.
Original design had R2 as 47 ohm
4.2V supply, 3.3V forward voltage (blue LED) and 20mA current gives 45ohm resistor - so the 47 is a logical choice.
Note that R2 also adds to the balance load on the cells in addition to the load resistor.
What do others think?
Hi, going through the README it is not obvious of the master branch is the smaller PCB variant. Since the smallpcb branch is several commits behind master, which is which?
Also, I heard that a contributor (Colin?) made several updates, are they incorporated here or his fork more up to date?
In short, there is no clear BOM and instructions. Or do I miss something?
The holes for the relay terminals are the same as an others. These terminals being 5.08mm generally have bigger pins. I had to grind the pins on my terminals to fit.
Hi,
I just started oldering my first PCB and I noticed that C6 and C1 are bigger than the footprint (I ordered a 1210 smt version as mentioned in the readme) so it's not easy to solder J1, C6 and C1 without having them touching each others.
Adam Welch also mentioned it in his video https://youtu.be/ETw4SNH7SXI
From I see there sould be enough room on the PCB to put C6 and C1 lower.
Hi Stuard
I have had a closer look at your diagram, and it seems to me that you have turned the ic2(ALUM1250) 180 degrees around. The datasheet says that the pins to the I2C BUS should be 8,7,6,5 But you have used 1,2,3,4..... what was the reason to do that ?
(http://www.analog.com/media/en/technical-documentation/data-sheets/ADUM1250_1251.pdf
.... page 11)
Br Tim
DIY BMS Stencil.zip
Stencil attached to screen the solder paste to your PCB.
From http://solder-stencil.me/
Using *.GM1 and *.GTS files
Using 0.25 mm layer height
Including a 1.2 mm stencil ledge for indexing
Hello
Which BOM? from README or from wiki?
Does it make difference from Colin Hickey?
Any chances to have a list from farnell? (All that have link i get it ;) the others i stay confuse ;) )
I'm new to this, more or less, so to not mistake better to ask ;)
Best regards
ArchGalileu
Current footprint on PCB is soic-8_3.9x4.9mm_pitch1.27mm
This should be a SOIC-8 WIDE
Hi, sorry if this question is not relevant, I'm just a beginner, why do you use a 3.3V buck/boost converter and not a 5V boost converter to power the ATTiny ?
While waiting for my diyBMS boards to arrive from China I checked to make sure the code compiled.
Under Linux I found Arduino-ESP8266-BMS-Controller.ino does not compile because line 39
#include "softap.h" has incorrect capitalization.
Line 4 in SoftAP.cpp has the same problem.
Looking forward to getting to grips with this project. I intend to try running it on an ESP32 if possible since I would like to incorporate the BMS function on the same controller as battery charge/discharge rate control, and need the extra pins of an ESP32.
Hi,
I would like to use an ESP32 instead of the ESP8266, did anyone try it already ? do you have some advice to help me to port the code for an ESP32 ?
As per this video by Adam
https://www.youtube.com/watch?v=TvLTTbvqvj4
The voltage divider resistors for the temp sensor are too low - change the 10K to 20K to suit temp down to 0 degrees C
Hi, I want to convert "ESP test" code to arduino uno code. I have removed some code lines specified for ESP8266, and I compiled with any problem for Arduino uno. Now, I have tested this code that i send "X" from serial interface. I see the message on I2C, but attiny85 did not response. I added scope screen and lines that i removed from code.
extern "C"
{
#include "user_interface.h"
}
os_timer_t myTimer;
// os_timer_setfn(&myTimer, timerCallback, NULL);
// os_timer_arm(&myTimer, 1000, true);
Hi,
I just made my first module board and I started experimenting with it.
I burnt the bootloader and uploaded the code with the Arduino IDE and then I was able to read the voltage of the battery via I2C with my esp32 (I'm still waiting for my ESP8266).
Then the next day, I wasn't able to read the voltage and I wasn't even able to upload any program to the ATTiny "Yikes! Invalid device signature".
I investigated what could be wrong, the reset pin is 2.1V, it should be enough. When I de-solder the ATTiny85 I'm able to burn the bootloader or upload programs so it seems like the problem is in the board.
When I power it, the green led blinks once then 2 seconds later the green led turns on and stays on.
I can't figure out what's wrong and the strange thing is that it was working very well yesterday.
I had boards fabricated and they have in the top left R7, R6, R5. But on the kicad file it has no R5, which version was this removed in, the board I have has V3.0 (Sep 2018) on it.
Hi!
Since in my packs built from used 18650 there is no use for small balancing currents as they are not all same capacity, I was wondering if you were thinking about using mosfet as dummy load or even a flyback converter for regenerative balancing?
Regards Žiga
Hi,
After I calibrate manually the temperature on the modul site, then the voltage goes to zero. Without calibration it shows much higher value, so I need to calibrate somehow.
I use the very latest version software both on my esp and on the v3.0 modules.
Thanks.
Change capacitors to 1206 SMD sizes instead of 1210 as these are easier to find/buy in 0.1 and 1uF sizes.
ADUM1251 footprint is SOIC-8-N which appears too wide but will just make electrical contact as it is (just!)
Hi have an idea and wanted to float it here as know there a few makers using this project who might be willing to test it out and don't have time nor facilities to test it myself right now.
So as you can see from the topic the idea is a Qi charger as far as my understanding goes Qi provides ~5W of DC/DC isloation. So the concept is rather than (or as well as) a DUMP resistor why not have a QI Charger and receiver to bypass power to the next pack. In its simplest form this could be:
PACK 1:
MOSFET -> 5V boost circuit to USB port-> Qi plate
_()()()()()()()()()()()()()()()()()()()()()()()()()()()()()() Isolation _
PACK2:
Qi Receiver -> TP4056 Battery -> Batteries
Am I onto something or is there something fundamental I'm missing with this concept. Know the losses would be high but a load resistor is 100% loss so figure even high losses could still be worthwhile.
Aware there are dedicated Isolated DC/DC convertors but most seem to be low power (<2W) and the ICs seem to be more expensive per W that QI.
For future designs change the label on the PCB
The term “Ground” on the cell module is not correct, it should be “Bat -”
hi
is there any plan making this to about 30A - 100A load? having 50-100p 18650 will not move an inch to balance
Hi Stuart
Thanks for this great project.....
Would it be possible for you to write some documentation.
How it shall work, incl. status of the green led blink ... what to do on the webpage, and the functions in here. (manual calibration aso... )
Thanks in advance
Tim
Hi,
I can't connect to the interface when I have no internet.
I see it tries to access https://stuartpittaway.github.io/diyBMS/loader.js
It can be a problem mostly when having a mobile system (or being somewhere with unreliable internet)
Is there a way to easily solve this ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.