Page 1 of 1

BMW i3 CSC variants and Lilygo T-CAN485

Posted: Sun Apr 26, 2026 12:41 pm
by HerbP
From my project thread: https://openinverter.org/forum/viewtopi ... 829#p90829

I bought qty 3 BMW i3 42kwh packs dated 2021. They were used on a transit bus project by a company (VMC) that went out of business. Near as I can tell, they used 4 of these packs on a single bus during development. I was having trouble talking to the CSC's using the BMW i3 protocol with SimpBMS code ported to a Lilygo T-CAN485. After a CAN capture with the SME connected, I discovered that these CSC's spoke a completely different protocol.

So now I have SimpBMS related code running on a Lilygo T-CAN485 ESP32 board that speaks all 3 variants (BMWi3, MiniE and BMWi3BUS).

I wondered if BMW modified the CSC firmware for this bus company so I borrowed a CSC from @Gregski which came from a much older 22kwh pack to compare. Much to my surprise, Greg's CSC spoke the same protocol. So then @Robertwa borrowed a CSC from a friend of his who also had a BMW i3 pack and he tried it with my code on a Lilygo T-CAN485. It also spoke the BMWi3BUS protocol.

I'm not really sure what's going on. If anyone know, I'm keen to hear about it.

Having said that, I now have all 8 modules connected and speaking. Code is here:

https://github.com/hpeyerl/bmw-i3-bms-tcan485.git

Edit: It's worth noting that this code supports all 3 known variants of BMW i3 CSC (BMWi3, MiniE, BIWi3BUS)

(I'm not convinced the temperature decoding is correct in the BMWi3BUS case. I'll be looking into that.)

Image