- Details
Bolt Batteries Update
I have a video I have mostly put together but have not posted, on an issue I found with the Chevy Bolt batteries. I found it when using the Analog Devices DC2260A demo BMS board to understand more about the Bolt batteries (see Blog Chevy Bolt Batteries). Once I understood how to connect the demo BMS to the battery modules I used it to test all 9 battery modules that I had purchased. All 90 cells in the batteries were nearly the same voltage, +/- 2.5mV, but I found one battery that seemed like one of the cells was not connected. The BMS demo software showed two issues. First one of the cells would read lower voltage, second, the adjacent cell would read a higher voltage than any of the other cells. This difference was highlighted when the discharge circuit was activated in the BMS. The lower voltage cell would read nearly zero volts and the adjacent cell would read 5.46V which is clearly not possible. I believed that is just an issue with the A/D converter circuit in the BMS Integrated Circuit on the demo board and it is not reading that voltage on the cell. Analog Devices tech support said it was due to the Transistor (MOSFET) in the balancing circuit turning on full because of an open circuit. After some investigation I discovered that two connections to the battery cells were open, i.e., disconnected. On the Chevy Bolt battery module all the cells are connected to the BMS connectors on the front of the battery by two narrow PCAs that run the length of each side of the battery module (see image below). I believe what has happened is that traces on the PCAs are broken somewhere causing the open circuits. It might be where the cell is soldered to the PCA (yellow arrow in image below) although there is no visible indication of an open circuit anywhere. I solved the measurement problem by soldering wires directly to the cell solder points and bringing the wires out to the DB25 connector. What is disturbing is that this particular battery was never installed in the car. I needed to have the front battery box in my car modified to fit the 9th battery module, so I had that battery on the bench, ever since the time I received it. It was essentially delivered with that open circuit. This was discovered in December of 2020, shortly after I had received the batteries and got the demo BMS connected to the batteries. Eight of the Chevy Bolt batteries have been in the car since then and been subjected to many charge/discharge cycles, while driving the car for the past 4 years. I had used the Chevy Bolt wiring harness to make connections to all the batteries (again see Blog Chevy Bolt Batteries) so that I could connect the demo BMS to every battery and measure the cells, one battery module at a time. That is why I decided to make my own BMS, so that a BMS circuit could be connected to each battery module all the time and allow constant monitoring.
Since I have been monitoring all the battery cells, I have found that 6 out of the 9 batteries received now have one or more cells that measure open, with the BMS. The other batteries developed the open cells sometime over the past 4 years, but I believe this highlights the defect that was in the LG Chem batteries that caused the battery fires seen in some of the early Chevy Bolt EVs. As a human reviewing these results, I could understand the problem with the batteries, that it is just a measurement problem caused by an open circuit. But the firmware in the Chevy Bolt BMS might not identify that problem, it there was no code to look for it. The way a BMS typically maintains battery cells is to move charge between the cells to balance the voltage. If the BMS did not know about the open cell voltage measurement, then it might move current out of the false high voltage cell and push it into the false zero voltage cell. Over several charge cycles this could develop into real problem where the false low voltage cell was getting overcharged and the false high voltage cell could be over discharged. Both of these scenarios could cause a battery fire because both cells would still be charged when the full pack was charged. The cell maintenance is very small amount of current but could eventually damage cells. If this was happening in over half of the battery modules in the Chevy Bolt is a wonder not more fires occurred. This is a manufacturing defect (broken PCA traces) but also a firmware issue in the BMS. The broken traces in themselves do not affect the performance of the battery module and would never lead to a fire. It is only the action of a BMS Firmware that was not programmed for this defect could cause that. LG Chem only admitted that a manufacturing defect caused the files, but said nothing about the BMS. The BMS being the cause is also the opinion of a number of automotive journalists.
The issue with the open cells measurements highlights why my BMS is a Battery Monitoring System and does no cell maintenance. Three years of testing the battery modules in the car show a very narrow cell voltage distribution without doing any cell maintenance. This is an indication of how well the cells in the battery module were manufactured. It is too bad the open circuit cell voltage measurement was not identified early in the Chevy Bolt EV development. The battery fires may never have happened and the Bolt EV would still be sold by Chevy after 2023.
Shown below is the rework to fix the BMS circuit. The second wire goes to the 4th cell. There is another wire on the opposite side that connects to cell 5. Usually two wires are required to fix a channel in the BMS circuit.
A video of the Chevy Bolt battery is coming soon.
Add a comment- Details
BMS Deployment Testing
Here is the test of the BMS system before it goes in my car. The BMS assembly is in a CINCH enclosure with the M12 circular connector cables. The image below shows the testing setup with a battery module on the bench. On the left side of the image, you can see one of the one-wire temperature sensors at the end of the cable. That will be soldered to the end of the cable when deployed in the car and attached the battery heatsink surface with some conductive tape. The connections for power and CAN BUS are on a barrier strip that is just off camera to the left. The image shows the BMS with another module I put together to receive the CAN BUS data from the BMS. When deployed in the car the CAN BUS data will be handled by the processor that controls the Instrument Cluster in the dashboard. For testing and the initial deployment, I will use the Data Receiver. It is a BMS PCB with just the CAN BUS circuitry and the Arduino Nano Every installed. It is also mounted in a CINCH enclosure and has the M12 connector for the CAN BUS connection and power. The Nano Every receives the CAN BUS data by SPI from the CAN BUS circuit and then sends the data out via the serial bus, on the USB connector. I wrote a program to read the serial data and interpret the CAN BUS data, which is all in HEX. A screen shot of the application is shown below the battery test image. The application converts the HEX string into decimal values and displays that with a “fuel gauge” graphic for each battery cell. The program can datalog the data to the hard drive. The cell voltage measurement is updated every 2 seconds. The LTC6811-2 BMS IC can be read faster than that but, there is overhead in converting the voltage values to decimal to display. The application also displays the temperature measured from the one-wire probe and the state of charge (SOC). This is the total voltage of all the battery cell voltages added together and is the voltage that is measured on the main battery terminals. The values show the battery in nearly fully charged.
Add a comment
- Details
BMS Battery Temperature Measurement
I thought I could use the four GPIO inputs on the LTC6811-2 for making temperature measurements on my battery modules. All four inputs reference the 3.3V source and the Analog Devices TMP37 work with 3.3V. However, I discovered that there is a mistake in the PCB layout that prevents me from doing that. For some reason all but the first two GPIO inputs are grounded. I reviewed the PCB layout and schematic and it appears that the changes I implemented in the schematic were not pushed to the PCB. See the image below. The schematic on the left shows all the pins on the output connector J3 are wired to the correct components and pins on the LTC6811-2. But that is not how the PCB layout looks, shown on the right. All the resistors and capacitors are there, just not the correct connections to the LTC6811-2. Unfortunately all the PCBs were fabricated with this error and all the PCAs have now been assembled.
This is a common problem I found with using the Altium CircuitMaker CAD program. Many aspects of the user interface of that program are very similar to Altium Designer, so it is easy for me to use because I was trained on Altium Designer, but because CircuitMaker is a freeware program it has a lot of bugs. Altium Designer is a $4235/year (or $355/month) program which I could only use when employed by my last job, where they had an Enterprise License. CircuitMaker is what Altium offers as a low cost solution to circuit and PCB design. I just wish they would charge something for it so it would have some technical support. With Altium Designer, tech support would usually reply within a day. Also, in Altium Designer there were many how-to demonstration videos on nearly any aspect of PCB layout and using Altium Designer. The only support for CircuitMaker is to post something in the CircuitMaker forum and then maybe a user will have a solution, but not likely. You can submit a bug report, but it does not mean the issue will be resolved. Most of the help can only be found by searching for it on the Allium site or YouTube. I also found that the layout problem is not the only issue. From a review of the documentation for the LTC6811-2 the VREF2 that is the 3.3V source can only source a few tenths of a milliamp so would it not work with multiple TMP37 sensors connected to the source. That is why in the design there are 10k resistors between the VREF2 and GPIO pins, they limit the 3.3V current. The circuit is actually designed for a NTC 10K thermistor. I tried to use that but with the GPIO pins shorted to ground it does not work to read a thermistor.
The solution I came up with is to use the analog inputs on the Arduino Nano Every, which is the controlling MCU for the BMS circuit. With the current BMS PCA design only the SPI and USB ports are used on the Nano. It has a full complement of analog, digital and PWM I/O. All the pins are available on the PCA because the Nano Every module is soldered directly to the BMS PCA and the module is on the bottom side of the PCA, so the pins protrude to the top side. Unfortunately to use the PCAs with this layout error, the traces from the pads for the the 5-pin sensor connector have to be cut to isolate them from the LTC6811-2 GPIO inputs or the ground connection. Since the connector that was chosen for the sensor connection has 5 pins I am going to just use two pins for analog input from two TMP37 sensors. One pin will be the +3.3V voltage source and one will be analog ground. This change will require three wires to be soldered to the pins on the Nano Every and to the 5-pin sensor connector pads. Using ribbon cable makes a cleaner look as shown in the image below. Once the boards are flux cleaned, I will probably put a dab of RTV silicon on the ribbon cable to stabilize it.
Add a comment
- Details
BMS Deployment
Now that I have most of the BMS PCAs completed it is time to plan for the deployment of the systems in my car. As I described below I plan top use a CINCH enclosure for the PCAs. The image below shows the enclosure with a prototype front panel. It was machined oversize to determine the best fit for the PCA in the enclosure and see how the 12mm circular connectors would fit. Now I have the measurements I can machine the front panel to fit the DB25 connector precisely. I will probably use some silicon sealer to seal the DB25 connector in the front panel to try and maintain the IP67 rating. Even though the BMS modules will be inside the car, the electronics can be affected by humidity. Originally I was planning to have two connectors with one an input and one an output and daisy-chain the BMS modules together. But I realized after I drew up the connection plan that it would mean the 12V power would be in series with each BMS. It would be better to have the 12V power connected in parallel. The CAN BUS can work either way, daisy-chained or terminated.
I decided to use only one 12mm 4-pin connector and have the CAN BUS be distributed to the BMS modules via the Interface Box, shown in the image below. The interface box will connect all the BMS systems together. The interface box will supply the +12V power and the CAN BUS communication and inside the box will essentially just be a busbar for the +12V and CAN BUS, no electronics required. Since I have 4 batteries under the rear seats and 4 batteries in the trunk there will be two interface boxes. The interface boxes will connect with one cable to my instrument cluster controller to read the CAN BUS. I will use the same 12mm circular connectors on the interface boxes. I ordered some 4-conductor shielded cable so now I just need to order all the 12mm connectors. After I realized that I was not going to use two connectors to connect the power and CAN BUS I was thinking it might be good to use the second connector to have a few temperature measurements of each battery. The LTC6811-2 that is the BMS integrated circuit in addition to all the battery cell inputs has 4 auxiliary inputs that could be wired to the second connector and the wires would go to a temperature sensor mounted on the battery. The code is already available in the program for the BMS to read the voltages on those auxilary inputs.
Quick Update on the Deployment: A thermistor is not going to work for temperature measurement because I do not have a Wheatstone bridge circuit to measure the thermistor resistance and hence the temperature accurately. That would require a respin of the PCB to include that circuitry. One solution for temperature measurement is to use the Analog Devices TMP37 analog temperature sensor.(Link) which is a one-wire sensor that just needs power and ground. Using this sensor I can get two temperature measurements per battery with the 4-wire cable I have. The sensor has a sensitivity of 20mV/C and a 500mV output at 25C, well within the range of the LTC6811-2.
Add a comment
- Details
BMS Bench Testing
As I complete the build of each BMS PCA I have been bench testing them. When I first got the Chevy Bolt batteries and purchased the BMS demo boards, I built a resister ladder board using barrier strips and through-hole resistors. The test method was detailed in the manual for the BMS demo and is shown in the first image below. But instead of connecting resistors directly to the DC2260A BMS demo I have 10 resistors wired in series on the barrier strip to mimic the battery cells and a power supply that supplies a voltage similar to the battery stack voltage. All the resistors are the same, so nearly the same voltage drop occurs at each resistor, when a voltage is applied to the series. For my resistor series a wire is connected to each resistor and then soldered to a DB25 connector. I made this system to learn how to use the DC2260A BMS demo boards and the software when I got them two years ago. The resistor ladder is much easier to use than a battery for testing BMS boards and safer. The resistors are basically a current limiter and the power supply used to power the resistor series is current limited, so if anything shorts out it should not be catastrophic like it would be using a battery with all the current capacity. I added another set of wires and DB25 connector in parallel to the first set of wires so I could measure my BMS board and the DC2260A demo board simultaneously to compare the voltages measured. The setup is shown below and a screen capture of the simultaneous testing. As described in the Blog below (BMS Update) I have found my demo boards have an average offset of 400 microvolts from the DC2260A BMS demo board. That offset has been the same for every board I have assembled and it is the same value as the noise measured on all of the readings of +/- 0.0002V. I don’t really care about that offset, however, because I am only going to use my BMS boards as a battery monitor. The voltage readings are very reproducible and that is all that matters. Once I finish building all the BMS boards I will need to flux clean them and then conformal coat the PCAs. I will need to retest everything after those operations. Then I will ready to deploy the system in my car.
Add a comment