DIYBMS v4

The standard JLCPCB files that are in GITHUB remain, the project is still open source but I’m not going to publish the mouse bites GERBER files directly. People are obviously free to do this themselves and also use other PCB assembly services rather than JLC.

The shop gives lots of benefits - a stock of items, a complete kit (which avoids multiple postage costs) and also worldwide postage.

Yip I understand, and for most people this is 100% a plus, for a few of us like me who lives in SA converting the pound and shipping makes these unit more than twice the cost compared to doing it my self, that said more than 30 modules ata time I will not need and JLCPCB will work fine.

Thanks again for always making sure the project is taken care of.

If you are shipping outside the UK/Europe vat tax may not be needed, but you would have to check with the shop on that one.

Yes, VAT will be removed at checkout if the billing/shipping address is outside of the EU.

We’re excited to be stocking diyBMS boards in the OpenEnergyMonitor shop, it’s fantastic the work @stuart and other have done on diyBMS :+1:

We need to make a small markup on the boards to cover overheads of running the shop. However, I can guarantee that every cent made will be used to support continuing the OpenEnergyMonitor project. Finances are tight for everyone at the moment, but if you can afford to, please consider purchasing via OpenEnergyMonitor to support the project. Hopefully, we can reduce the cost if demand increases, and we can increase batch sizes and bulk purchasing.

2 Likes

I think it is a great move. I wonder if there might be a market for a bit more of the ‘kit’ required to build a Diy BMS.

I can see that it uploads fuses in terminal log:

avrdude: Device signature = 0x1e9315 (probably t841)
CMD: [50 00 00 00] [00 50 00 e2]
CMD: [50 00 00 00] [00 50 00 e2]
CMD: [50 00 00 00] [00 50 00 e2]
CMD: [58 08 00 00] [00 58 08 d6]
CMD: [58 08 00 00] [00 58 08 d6]
CMD: [58 08 00 00] [00 58 08 d6]
avrdude: safemode: hfuse reads as D6
CMD: [50 08 00 00] [00 50 08 f4]
CMD: [50 08 00 00] [00 50 08 f4]
CMD: [50 08 00 00] [00 50 08 f4]
avrdude: safemode: efuse reads as F4
avrdude: erasing chip
CMD: [ac 80 00 00] [00 ac 80 00]
avrdude: Using SCK period of 10 usec
CMD: [ac 53 00 00] [00 ac 53 00]
avrdude: reading input file "0b11100010"
avrdude: writing lfuse (1 bytes):

Writing | CMD: [50 00 00 00] [00 50 00 e2]
################################################## | 100% 0.00s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0b11100010:
avrdude: load data lfuse data from input file 0b11100010:
avrdude: input file 0b11100010 contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | CMD: [50 00 00 00] [00 50 00 e2]
################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: reading input file "0b11010110"
avrdude: writing hfuse (1 bytes):

Writing | CMD: [58 08 00 00] [00 58 08 d6]
################################################## | 100% 0.00s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0b11010110:
avrdude: load data hfuse data from input file 0b11010110:
avrdude: input file 0b11010110 contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | CMD: [58 08 00 00] [00 58 08 d6]
################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0b11110100"
avrdude: writing efuse (1 bytes):

Writing | CMD: [50 08 00 00] [00 50 08 f4]
################################################## | 100% 0.00s

avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0b11110100:
avrdude: load data efuse data from input file 0b11110100:
avrdude: input file 0b11110100 contains 1 bytes
avrdude: reading on-chip efuse data:

Reading | CMD: [50 08 00 00] [00 50 08 f4]
################################################## | 100% 0.00s

And when its reading the chip i see:
CMD: [58 08 00 00] [00 58 08 d6]
avrdude: safemode: hfuse reads as D6
CMD: [50 08 00 00] [00 50 08 f4]
CMD: [50 08 00 00] [00 50 08 f4]
CMD: [50 08 00 00] [00 50 08 f4]
avrdude: safemode: efuse reads as F4
avrdude: safemode: Fuses OK (E:F4, H:D6, L:E2)

Mybe its my chip device signature the problem?
avrdude: Device signature = 0x1e9315 (probably t841)

It’s coming, we will be stocking the diyBM controller boards when @stuart has stock.

1 Like

About to order from JLCPCB @stuart can you confirm which release from Github I should be using please ?

Great to be getting back into DIY electronics again, if only JLPCB had been around 7 years ago some of my project might have made if off the drawing board.

1 Like

Hi Glyn,

I just ordered 15 controller boards from JLPCB (bare boards) and don’t need all of them. Do you guys want some? I’m new to this community and trying to figure out how to use these to build my own power packs.

With 40 boards I’m seeing a lot of errors in the GUI,
Communication errors and banks disappearing / reappearing.
Would a more powerful controller help, or can I slow something down to fix it?

Also noticed the cell over/under voltages are 16 bit numbers, so only go up to ~64v.
(I think I can work around this by setting the pack as parallel, but then the voltage reading is wrong)

Hi Justin, are you using the latest code with the dark theme?

The BMS was designed for 48V, it should work at higher voltages but you start to drop out of safe working voltages for DIY building.

Changing the code to support higher limits for the 2 rules you mention would be easy enough but does then promote higher working voltages.

Stuart just follow the YouTube video, that’s still relevant and correct.

That all looks fine. The device signature is correct.

This sounds similar/same as the issue I’ve raised on the git hub site. I’m still trying to get to the bottom of it but haven’t had much time to investigate due to building my power shed.

Hi,

Might be interesting for this project.
I was looking for an active balance system and found this:

[Active Cell Balancer Project | Hackaday.io]

Any chance this can be implemented on this system?

Yes this running the July code with dark theme.
It looks like only bank 0 has been disappearing and reappearing.

I won’t be looking at active balancer for the current diyBMS - a second thread was created for people to talk about that - search for “actibms”

The code which does this is in PacketReceiveProcessor.cpp lines 59 to 62.

If the controller receives a message from the modules which was not processed (acted upon by one or more modules) then something is a miss - this is the “ignored” error count.

This can happen naturally when you move a module from one bank to another, but shouldn’t happen during normal operation.

The code assumes something went wrong and resets the whole statistics on that bank, which in turn forces the controller to query that bank again to find out what modules are responding. This is why the min/max values change, and if you happen to have this occur when the web site page is refreshing, the whole bank can disappear for a few seconds.

The real question here, is why did the modules ignore a request to do something from the controller?

Are the Bad packet counts here related?

Yes, they should all be zero!

It looks like you may have a problem with one of the first modules which then passes a bad request to the modules after it