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.)