TPL: A quick way to humble an engineer

About three months ago, I was lucky enough to low-ball a vendor on eBay for a Porsche Taycan battery module for use in an electric vehicle. I got this monster of a 24V LiFePo4 with 2.7 kWh of capacity for only $100! I got it for half off the original listing price because it was untested, and upon arrival, I gave it a few test loads, and everything in it seemed to be healthy and well.

Enough bragging, take a look at this connector:

This port is found on the backside of the battery module and it is used for communication between the charger, and the individual cells contained within. Now, we’ve all dealt with circuits that we prototype with Arduino, and any four pin connector like this one is usually one of a few digital protocols. Select your communication library of choice, and start transmitting, just like that. However, I stumbled across something very, very wrong with this port when I was trying to find the use of the pins.

A quick google search yielded no documentation on this port, so I had to get my multi-meter out and look for some useful information such as diode voltage drops, impedance, etc. What I was not expecting to measure, however, is a one ohm short between the top two pins, and the same short between the bottom two pins, with a suspiciously high inductance reading. After putting these results into google, I discovered the horrifying truth: this thing communicates with an AC signal through an isolation transformer!

Now, the scope of charging this battery is way out of my hands, and I need to buy some specific parts to communicate with the battery in a way we’re all familiar with. Specifically, I will need an Arduino to catch battery faults such as over-temperature, large cell voltage differential, etc. The Arduino will have to talk to an MC33664, which converts SPI into an AC voltage the port on the Porsche battery will consume, and then the battery will convert the AC on its side into SPI and then the onboard MC33771C will read and write back to its transformer, and then back through the port to my converter, and back to the Arduino.

Why even go through this headache? Well, you can certainly set a voltage on a power supply to something like 25.2V and the cells inside will charge, but this is potentially dangerous, because you don’t know how that charging is distributed inside the battery. This battery in particular sits at 24V, but that could be 6 cells at 4 volts in series, or a cell at 3 volts, one at 5, and the rest at 4, and that’s a fire hazard!

This is why I need the Arduino to communicate with the battery to balance the cells regularly. The control flow roughly looks like this: charge, then stop charging for a bit, tell the battery to balance, and once it is done balancing, charge some more, all while catching potential battery faults, and repeat. Pretty cool, right?

Previous
Previous

Sid’s Project: STM Camera!!

Next
Next

PCB Ordering Form