DIY 6S to 12S BMS with CAN - DieBieMS


Up to January I’ll be getting a DieBieMS system ready for use in an electric boat (together with some fellow students and the help of @JTAG) and one for my skateboard. The BMS in the boat needs some proper documentation as it will be used by other people with varying knowledge of electrical systems. We might as well kill two birds with one stone and also help other users of the DieBieMS!

I’ll write a manual which is intended for novice and upwards builders. A starting DIYer without electrical engineering knowledge (but with some common sense) should be able to hook the BMS up with the manual without getting into too many details. Once that is finished it can be expanded with more advanced sections. Hopefully @JTAG could check whether the draft is correct so you can be sure you’re getting the right information once the first part is completed. I’ll also try my best to add the right references to schematics and photos and credits where due.

I don’t think this forum is the best place for a manual. Posts easily get lost in this thread and it takes a long time to find the information you’re looking for, if it even can be found at all. The DieBieMS Github might be more suitable.

If you have any feedback or questions, please let me know. I’ll be happy to answer :slight_smile:


This sounds like something I could definitely use! I’ll be getting my DieBieMS in a few weeks time and I have no background in electrical engineering so this could be a life saver!


I charged my cells and let them sit without anything connected for a while and unfortunately the slowly discharge themselves.

Good news: the BMS is not the problem
Bad news: I have to take apart my newly build battery pack and put new cells in

Can anyone give me advise on how to safely break up spotwelded connections so I can spotweld to the good cells again? Do I just pull the strips of and sand down the rest?


New cells that discharge themselves? Wow that is VERY scary… Where did you get them?

I don’t think I got bad cells. They arrived with 3,5V each and held that voltage till I built my pack a few weeks later.
I suspect that I did something wrong while building my pack. It’s my first battery after all.
I used the car battery + starter solenoid spotwelding technique.


What a sad day. :frowning_face:

But at least I could confirm that my welds were nice and strong. It took quite a bit of force to pull the nickel strip away from the contacts.


Aaaawh, poor battery :frowning: . Good look in repearing and making it that good looking again…

We have used nkon many times, we ordered 100s of cells and never had issues. I hope you discover why it happend.


I’m gonna let the cells sit like that till tomorrow and check the voltage again.
That way I’ll know if it’s the p-groups themselves or if the problem was my series connections.


I’m still waiting for DieBie to arrive, I would like to make button free board, so my idea is to make it only push to start…

Is there anything I should know that’s gonna bother me once I try to make it happen?

It will be used with flipsky dual 6 esc and metr



Well, you’d have no way to manually turn off your board.
The only thing turning off your board would be the timeout in the bms. If that doesn’t bother you I don’t see a problem.


I can recommend this pliers with the idea of taking apart you pack, you will destroy them, but you will have the pack done in no time, if you don’t have that one buy 2, it’s really handy tool to have.
Btw In Ali is quite cheap


Finally had time to do more work, now when I turn it on, I get ERROR PRECHARGE on the display. I’m looking through the code, but do you have any ideas as to what could cause it? Should I be able to connect over serial when it displays “bye”? That is the only time the serial port appears on my system.


In any state you will be able to connect and communicate with the BMS trough USB. Can you try the following:

  • Reflash the firmware to the latest (this resets the default config to something known).
  • Disconnect the load
  • Change the cell configuration to match your pack (wrong cellcount can lead to this precharge error because it is not expecting the minimal voltage withing a reasonable time), make sure to write and store the config.

And retry to enable. You can also do this by hitting reboot in the BMS tool.


I still cannot connect over serial. I have now built the firmware myself and manually changed the default config in the source, and flashed it. Now I get an empty battery image, and holding the power button does not turn it off. It does power off if I remove the the ground lead and leave the balance connector and positive cable connected.

Connecting and disconnecting load has no effect.

CAN forwarding does not work, giving the same error as serial.


I found my two offending cells.

as you can see, C6.2 and C4.1 are slowly dropping in voltage while the rest stays at the same level.

curren status of my pack (sad)

I’m not looking forward to removing the leftover pieces from spotwelding from the good cells.


Connecting to the serial port with an external USB-serial adapter gives a different error: “The firmware on the connected DieBieMS is too old. Please update it using a programmer.”. But since I just built from master that seems unlikely.


I’m no expert, but did you check if you can see the bms in your device manager when connected to your pc?
It should look something like this:

if not, download the driver from the silicon labs website, install it and try again.
I got the “The firmware on the connected DieBieMS is too old. Please update it using a programmer.” error on a windows 7 laptop. Manually downloading and installing the driver fixed it for me.


LOOK! That is progress!

That means that it can read the firmware version. It also means that it didn’t upgrade properly if you just did an upgrade. That could be because of a missing bootloader. Right after uploading the firmware it will jump to the bootloader and the LED should start blinking quickly. If the fast blink doesn’t happen the bootloader is missing or your are at an extremely old version of the BMS firmware and should do the jump manually (described a long while back)


Hmm, after flashing the boot loader again I get fast blinking followed by slow blinking, then off, so I am pretty sure it is flashing correctly. Both the latest firmware in the diebiems-tool repository and the firmware I built give the same error "The firmware on the connected DieBieMS is too old. Please update it using a programmer.” over the external USB-serial connection. I’m trying to manually send 0x02, 0x01, 0x00, 0x00, 0x00, 0x03 over the serial port (This is the version request packet?) to see what is actually being sent back.


After flashing the boot loader I get the following displayed on the screen (with quick flashing lights followed by the DieBieMS splash screen and then “bye”):

Bootloader V0.1