The heart of the issue of electric automobiles has always been the energy storage cell or battery and it remains ever so today and into the future. Moving from the crude lead acid batteries, the limitation on electric cars has always been the weight and size of the battery necessary to power it to any specific distance.
We measure this using two metrics, energy density and power density.
Energy density is a measure of storage capacity – how much energy can be stored for a given weight/volume of battery cell. We usually state this in terms of Watt-hours per kilogram (Wh/kg). If it will store enough energy to produce 1 amp of current at 1 volt for one hour, a Watt-hour. English physicist James Prescott Joule (1818–1889) would consider 1 amp through 1 ohm to be 1 volt and if performed for 1 second, a Joule. So 3600 Joules per Watt-hour if it’s an English physicists car.
Power density is similarly the measure of how much POWER a cell can deliver instantaneously. Forget the hours. How many WATTS can be produced from a given weight (W/kg) or volume (W/ltr) of a cell. And as a practical matter we think of this as max current output.
A 100 amp-hour 12 volt lead acid battery can easily weight 35 kilograms. And so it’s energy density is 12×100/35 or 34Wh per kilogram. Our CALB LiFePo4 cells are more like 105 Wh/kg or over three times the energy density of the lead acid batteries. If you think of this another way, if you need 300 lbs of lead acid cells, you can replace them with 100 lbs of LiFePo4 cells. And because your car is 200 lbs lighter, it goes further on a charge.
The NCR18650GBA cells currently used in the latest Tesla are 3.7Ah x 3.75v in 48 grams. That’s about 265 Wh/kg. And so 252 lbs of CALB cells is the equivalent in energy density to 100 lbs of NCR18650GBA cells, used in the latest Tesla Model 100D.
So the cells Tesla uses are nearly eight times the energy density of lead acid cells (7.79). So 775 lbs replaced by 100 lbs. And that is the key to Tesla’s long range. You don’t QUITE get 7.75x because to package all those little camera batteries, it takes a lot of structure just in aluminium and plastic and copper and so forth surrounding the cells. But energy density is the name of the game. More stored energy in less weight and space.
But storing energy is not inherently a safe thing to do. And the more energy you pack into a smaller package, the more explosive it becomes. And in some cases, the less stable it becomes as well.
Our video this week garnered a good bit of attention as we talked about batteries in general, always a popular topic, and the Tesla battery pack specifically. I would say the two most intense areas of interest in EVdumb/land/world are the Tesla Motor/Inverter drive unit and the Tesla battery pack.
Tesla has simply engineered an electric car beyond any other. And so they have sold a relatively large number of them. And so the owners have of course wrecked a relatively large number of them. And so they are readily available for parts.
This gives rise to an interesting paradox. And after all Elon Musks posturing about being open and hoping to foster more electric vehicle development, the paradox hangs on the fact that they have in fact been very CLOSED about any details of basic CAN communication in their vehicles or how anything works.
The Volkswagen Beetle and Bus et al became very very popular in America and sold many millions of vehicles. It was actually not because they were ever very good cars. In fact, they were widely viewed as very BAD cars and of terrible manufacture. They rusted in front of you on the show room floor. But they were very simple and could be worked on by anyone without much in the way of special tools. A “tribe” emerged with “tribal knowledge” of the VW platform, third party parts flourished, making repair parts sinfully inexpensive.
Tesla is SO closed, you can’t actually repair one. The costs to resurrect a crashed Tesla Model S are just totally unapproachable. They have produced the world’s first “disposable” car and at a price well north of a hundred grand, no matter what Elon was quoted as saying.
If you do repair one mechanically, you will most likely find that it is impossible to clear the codes and electronically get it back in operation. And so the $100k Tesla, in some cases two months old and with 1000 miles on it, goes for a fraction of the price in the salvage auction because it is basically irreparable. So to speak.
But then we actually have hundreds of DIY guys actually buying expensive Tesla drive units and batteries, without a clue how to use them when they get them. Kind of hopefully buying them and then casting about to find who might have a solution to their actual use.
So as the garages slowly fill with useless drive units and batteries, the price of those batteries and drive units slowly falls and so the value of the salvaged cars. Inevitably this leads to all sorts of fallouts. One I expect soon is a greatly ENHANCED price of Tesla auto insurance. That is dramatically higher rates.
Electric cars already have the highest depreciation of any cars ever built. Fiat 500e’s are now readily available for $6000 on eBay in perfect working order. They are small, with a top range of 80 miles, but still very cute. They are suffering the same “off-lease” Tsunami as the Nissan Leaf, though they were never manufactured in nearly the number.
So I expect the next hammer to fall to be skyrocketing INSURANCE rates for electric cars that simply have little or no residual value in the salvage market. Disposable cars.
That’s kind of where we went with Television sets when they became non-repairable.
In any event, I find it surprising that after all this time so little has been done to make these devices more useful. What work has been done seems to be centered on profit motive and self aggrandizement and I’ve found it discouraging working with the few people in the space.
In any event, in this episode we did discuss the Tesla battery in particular. They are readily available as entire battery packs for less than $15,000. They consist of 16 22vdc “modules” that each go for about $1000-$1200 each. They provide a little over 5kWh of storage capacity and so the pricing is very attractive – about $200 per kWh.
The problem of course is that the Tesla battery pack is very high energy and in a very highly engineered system to allow their safe use. It doesn’t make a whole lot of sense re-engineering what has already been done. But no one has made much progress reverse engineering what is there.
There are two levels to play here. One is to treat it as a whole battery pack. The second is to deal with the individual modules.
As a pack, it’s a little unclear how you would wedge this monster into a car. It is 1150 lbs and larger than most of the cars we do. 250 lbs of the package is an armored tank like container for the modules. But as a solar energy storage device, it would be awesome just the way it is. I wouldn’t want one in my house, or near my house, without the ability to monitor pack voltages and temperatures and automatically take it offline if anything went amiss. Indeed a core eject system as featured on Star Trek’s USS Enterprise might be in order.
But in any event, we need to learn how to work the battery pack. It has an internal master BMS circuit board that in turn talks to each of the 16 module BMS circuit boards and can readily report all 96 individual cell voltages along with 32 temperatures – two for each module. Indeed, Arthur Hebert of Corvallis Oregon had worked out the CAN code for this data (0x62F) and based on his work we wrote a little open source Arduino program that works with our Tesla Can Monitor. You load the program on the device. It plugs right into the Tesla diagnostics connector under the console, and you can view every cell voltage and module temperature. We added some other codes showing battery pack total voltage and current. All these CAN codes originate IN the battery.
If you click on the photo of the device, it will take you to our web description that contains a link to the source code for this program. It is relatively trivial. Interestingly, Arthur Heber at one time worked for Cafe Electric, developer of the Zilla motor controller.
In any event, if we can decode messages from the battery IN the car why can’t we do so OUT of the car. It turns out we rather can. But without the car, we are struggling to get the battery to close its internal contactors and actually provide power. We can get it to come up and make the CAN messages.
The battery features two control connectors, X035 and X036, and one large high voltage connector.
The High Voltage connector is kind of interesting in that I have no idea where you would get one. We got ours off a wrecked Tesla of course. And it is kind of necessary. The battery pack has an unusual blade format for pack high and low. But note there is also a round hole in the middle of the connector. A metal pin inserts here to connect the pack to ground. A second smaller pin is above and left of this. This is a High Voltage Interlock (HVIL) and it is a key element to completing the high voltage interlock loop that runs through the inverter, both chargers, the high voltage junction box, and the DC-DC converter. Two wires in the battery pack apparently use this pin to make contact completing the loop. We know it won’t close the contactors without a complete HVIL loop and indeed the battery pack contains a circuit termed the HVIL Generation and Detection circuit
The two control connectors are of course how the car actually communicates with the battery pack. I’ve made a little simplified schematic diagram of the connections that is some improved over the one flashed on screen in the video.
What we have tried thus far has mostly failed. 12v for contactor power comes from a simple 10A fuse in the vehicle fuseblock. The 12v Drive power seems to be the activating or wake up signal although we can also get the BMS to wake up and start transmitting CAN simply by sending CAN data to it.
The problem is getting the contactors to close. There are several requirements. First, the battery is not going to close contactors until the vehicle is assembled. That means the lid on the High voltage junction box, all the HV cables connected to it, the charger in place with the lid on and an inverter plugged in. This is the HVIL loop. As I said, part of this loop (not shown) is actually in the high voltage connector and so it also needs to be plugged in.
After that, it gets a little fuzzy. The DC-DC ENABLE signal is a little fuzzy. I don’t know if the battery enables the DC-DC converter or if the DC-DC converter enables the battery. But on the schematic diagram for battery control, it shows a ground to the DC-DC converter and then this enable signal. I’m guessing we have to apply ground to this pin to signal the battery that a DC-DC converter is actually making 12v and we are not just using the 12v battery to power the contactors.
After that, we are probably dealing with precharge issues. The High Voltage connector is wired into the high voltage junction box and so is the inverter. Indeed they are tied directly together with no contactors or anything between them. So we do need to precharge the capacitors in the inverter before closing the contactors in the battery pack.
Now I would just do this with a timer. But overkill seems always appropriate at Tesla motors, flush with thousands of young engineers looking for something to do. I think the BMS is looking for a CAN signal from the inverter to indicate a voltage that is pretty close to pack voltage before closing the contactors. It could send voltage through the high voltage connector through a resistor to charge the caps at a low level. Then wait for the CAN message from the inverter to indicate a voltage pretty close.
I like message 0x126 for this work. Why? I’m not sure it does ANYTHING apparently but indicate battery pack voltage measured in the inverter. And it does so in a very cavalier manner. Most CAN messages indicate voltage in a two byte integer with the assumption that the voltage represents hundredths of a volt. Therefore, you see the number 37245 you would assume a voltage of 372.45vdc. But CAN message 0x126 looks for all the world like a 16-bit integer representing pack voltage x2. And so you see something like 744 representing 372 volts. Why such a lack of precision? And why have it at all? Bytes 3 and 4 similarly look like current, but again, an absolute unsigned value and a little vague.
So we may be able to get a little something going from a CAN 0x126 simply repeating back the voltage coming from the BMS in its message 0x102 broadcast. BUT, we’ve never seen any sign of the precharge voltage on the high voltage connector AT ALL. So something is missing here to start the whole process.
We tried playing back the startup CAN traffic from my Model S, but to no avail. Of course, we have a 14 module 60kWh pack on the floor, and a 16 module 85kWh pack in the car. So there may be a basic problem from the get go. I’ve ordered an 85kWh pack that should arrive this week. But so far we struggle.
Beyond entertaining me, the whole pack approach just isn’t going to work for most DIY EV builders. If they could cram that much battery into a car, they probably couldn’t do it that way. But many are buying modules and trying to use them in their builds at lower voltages.
I get it. They are cheaper. And of course they are good batteries, if you use them the way designed. Fortunately, the modules come with their own BMS board attached. Unfortunately, we don’t know how to talk to those either.
I have examined them briefly and I’ll attach photos of what I found.
The heart of the beast is a Texas Instruments bq76PL536AQ1 chip designed specifically for monitoring lithium cells – 3 to 6 cells per chip. One of the issues with BMS design is isolation. The TI chip is powered by the cells it measures, though it uses very little power. It will also measure two thermistor temperature sensors.
The chip communicates via the Serial Peripheral Interface bus (SPI) and it rather cunningly has THREE busses per chip. North, south, and host. Normally the NORTH bus is used to communicate with the chip ABOVE it in the pack while the SOUTH bus is connected to the chip BELOW it in the pack. THe HOST bus communicates with a microcontroller. The chips can be assigned addresses individually, and so a single host microcontroller would physically connect to a single BMS board and by directing a read command to a specific chip ID, read any voltage from any cell in the stack. Or temperature sensor.
That’s all pretty good, but not what Tesla did at all. Perhaps the noise on the SPI bus between modules was too high for all this to work. But it would be odd for Ti to have such a scheme if it wouldn’t work at all.
They use an 8501 multicontroller from Silabs called the 530A. So EACH module BMS board has its own host MCU.
This 8051 MCU is then isolated by an RF isolator – another SiLabs chip the Si8642 and this is routed to a connector J1.
And so it would appear that Tesla is using some kind of serial bus, USB, RS-232, or RS-485 to communicate with 16 BMS modules on a single serial bus that daisy chains all the BMS boards together. That goes through the MCU and then to the Ti BMS chip using SPI.
Since the 8051 is programmable, we don’t know WHAT Tesla is using to talk to them. But we DID trace out the basic SCLK, MOSI, MISO and CS lines from the TI bq76 chip and they also route to a series of lands that are unpopulated but marked J2. Since the TI chip addressing and requests are pretty well documented, it MAY be possible to rig up an Arduino to these pins and talk to the bq76 chip directly if we don’t wake up the 8051. It was probably a test connector.
Jarrod of Melbourne Australia hackaday project. Last updated April 17, 2016. That’s the ONLY reasonable work we’ve found on this at all and that essentially abandoned without conclusion. I scarce believe it. With 4.7 billion people on the Internet and 100,000 Tesla owners out there, surely EVTV and Jarrod of Melbourne can’t be the only savages on the buffalo hunt here.
EVTV has become a target rich environment at a point where the fearless leader can barely put in a 20 hour work week without a nap and a blanky. We could use any help offered.