Instrument Cluster Update

I recently removed the instrument cluster in the car because the digital display in the center of the tachometer was not working.  Neither were the small instrument gauges, the SOC gauge and the Temperature gauge. Only the tachometer was working. I made a video over 9 years ago showing how I spoofed the instrument cluster to make all the gauges work.  Video here. In addition to getting the gauges working again I also wanted to replace the speedometer.  Last year I acquired several 120MPH speedometers on Ebay. The 80MPH speedometer that the car came with has always bothered me because the car is capable of moving much faster than 80MPH. The problem with the 120MPH speedometers were that they all had over 190k miles on the odometer. That could possibly be a problem when the car is inspected next time.  The state records the odometer reading - mostly for insurance purposes.  My 80MPH speedometer odometer only has 52K miles on it.  I found a vendor that could do two operations on the speedometer. One was to reset the odometer to the value shown on the 80MPH speedometer odometer.  The speedometer repair shop also calibrated the speedometer to work in my car. The 120MPH speedometers were used in European 320i BMWs that had a 4-speed manual transmission and a different rear-end gearing. Without modification the 120MH speedometer would ready about 15% faster.  To use the120MPH speedometer with my rear-end gearing and have the correct speed shown on the speedometer a different gear was installed in the speedometer. The last step was to check the calibration.

When I took the instrument cluster out of the dashboard I found several loose wires.  One was for the 7-segment digital display in the Tachometer. I have had problems with the 7-segment display getting easily damaged, but that was not the case with this display, I found another problem.  I put the instrument cluster on the bench and replicated the wiring harness inside the car.  I connected my LEVID (Legacy Electric Vehicle Instrument Driver) controller PCB and another GEVCU (Generalized Electric Vehicle Control Unit) PCB that I loaded with a test program. The test program replicated the CAN BUS messages in a continuous loop that come from the various components in the car like the Scott Drive controller and the current shunt.  Below is an image of the testbench layout.  The LEVID includes a Real Time Clock (RTC) and an isolation/driver circuit to output the serial data to the 7-segment display.  I found that the isolation IC was damaged and that was what prevented the 7-segment display from working.  I replace the IC and reset the RTC. The clock function now works on the 7-segment display as well as to display any of the instrument gauge data digitally.

 Cluster Testing

 

The image below shows the cluster being tested with the CAN BUS data.  All the instruments move and the 7-segment display shows the digital value of the tachometer.  The tachometer is also new. The design with multiple colors came on later models of the 320i.  That newer tachometer came with one of the instrument clusters I acquired that had a 120MPH speedometer.  Shown is one of those 120MPH speedometers with the high mileage.  When I sent the 120MPH speedometer to the shop for modifications I sent it in an instrument cluster that had a front plastic bezel that had no cracks or imperfections.  As part of their service the speedometer shop polished the plastic bezel on that instrument cluster.  The image below is my old instrument cluster that showed cracking on the bottom edge.

ShownCluster

 

Shown below is the updated instrument cluster installed in the dashboard of the car. The SOC and Temperature gauges as well as the 7-segment display are all working and responding to inputs from the car. You can see how clear the view of the instruments is with the polished front bezel. You can see the fuel gauge on the left has a battery icon.

Cluster in Dash

 

 

Add a comment

BMS Readout Deployment

I designed an updated version of the BMS PCB, one that has connections to handle all the modules that are part of this system. During the time I waiting for the PCB to be fabricated I realized that all the Adafruit modules could be connected with the Stemma QT/Qwiic connector system. These are a connector specifically for I2C communication.  Just 4 wires, ground, +5v, SDA and SCL and they come preassembled in all kinds of configurations (link). Using this system, I reduced the number of wire connections to the PCA that were required. I connected the two rotary encoders and the LCD with the Stemma QT cables. On the new PCA by using the Stemma QT connector system I only need one 4-wire connection to the PCA. The enclosure for the BMS Reader is the same Jameco enclosure I am using for some of the BMS modules (see the blog below BMS Ready for Deployment). I machined the Jameco enclosure to fit the LCD, 7-segment display and the rotary switches.  You can see the enclosure, PCA and all the connections inside the enclosure in the photos below.  I now have two rotary encoders because I found that was easier in code to have one to select the cells in the battery and one to select the battery module to read.  The enclosure has the same 12mm 4-pin connector that I have on all the BMS modules for power and CAN BUS. I also added a USB feedthrough because although, all the battery cell measurements will be saved on the MicroSD card, I will eventually want to get all the data into my computer.  With the USB feedthrough I can do that without taking the enclosure apart, which is what I would have to do if I wanted to read the MicroSD card.  It would have to be removed to be read by the computer.

 

 

BMS Reader inside

BMS Reader enclosure

 

Since the deployment of the BMS Reader there now has been 4 iterations of the BMS Reader redesign.

 

To see the latest in the BMS Reader click here.

 

 

Add a comment

BMS Readout Prototype

I realized after I deployed the first four of the BMS modules on my batteries that the only way I could read and record the cell voltages was with a laptop computer, which was also how I could only measure the cell voltages with the Demo BMS that I started with (see Blog below Battery Maintenance System). Now because of the CAN BUS I can read and record all four batteries and eventually all nine with just one connection. However, using a computer is not always possible and also difficult to impossible to use while driving.  I decided to make a system that could readout and record all the battery cell voltages, that could be connected to the batteries and operated at any time, or provide measurement and storage while driving the car. The readout system would need a display, a storage system and a Real Time Clock (RTC) to provide a timestamp for the cell measurement.  All three of those functions are easily accomplished with small, easy to program modules.  A 4-digit, 7-segment LED display like I used for the instrument cluster could be used for the cell readout.  For cell voltage storage a MicroSD memory card can be used. I have built several other systems with MicroSD card memory modules and they are very easy to write and read from, usually with a SPI interface.  The RTC is a standard module that again I have used in many other projects.  The only other component required is some type of switch system to switch the measurements from cell to cell and battery modules.  I found by searching that a rotary encoder switch would be ideal for the switching system. A rotary encoder continuously provides a count of the switch position, no matter which direction is rotated.  Adafruit, an on-line electronic components vendor makes a small encoder with a I2C interface called the I2C Stemma QT Rotary Encoder (link).

Since I have all of these modules, I decided to build a prototype to develop the code for the system.  I will probably make a new PCB for this system because as you can see in the image below there are a lot of connections and wires that I had to add.  For the prototype, I used the current design of the BMS PCA, but built one that had only the CAN BUS circuitry, the DC input and filtering and the Arduino Nano Every installed. I made a daughter board out of perfboard to provide additional connections. The modules either communicate with I2C or SPI or Serial.  The Nano Every has connections for all of those communication methods.  But the BMS board only has connections to the SPI buss.  The 4-digit readout is perfect for displaying the cell voltage measurements as it will display to the millivolt, which is all that is needed to understand if cell voltages are changing. I have already determined the cell voltage is very repeatable and has a very small standard deviation well below one millivolt.  The problem with the 4-digit is that it can only display numbers well, not letters.  To get more information I decided to also add a 16 character by 2 lines LCD module. I did realize I could put the cell voltage measurement on the LCD and eliminate the 4-digit display.  But I have found these kinds of LCD displays are hard to view off axis and usually cannot be seen with polarized sunglasses. The viewing angle issue is highlighted in the picture below.  The 4-digit display is LED so it is viewable at any angle and with sunglasses.  I will only use the LCD to display which battery the system is connected to and some information about the MicroSD card, like the folder where the data is stored.  Below is an image of the BMS Readout system prototype.  To record the battery cell voltages while driving I can automate the switching instead of using the encoder switch to select the cell to measure and store.  The module labeled in the image below SD Card is actually a MicroSD card module that is another module offered by Adafruit (link).  What is great about all of the Adafruit modules is that they always have links to code examples to drive the modules. That really makes the code development much easier. They also often have YouTube videos demonstrating the modules. Those were handy to see how the rotary encoders work.

 BMS Readout Prototype5

 

To see the complete BMS Reader click here,

 

Add a comment

BMS Ready for Deployment

I now have four (4) BMS units built up and tested and ready for deployment   I machined the front panels for the CINCH enclosures to fit the DB25 and M12 round connectors.  Below is an image of the four units. I still need to make up more M12 cable sets, to connect all four units together in the car.  I have the shielded cable, just need to get more M12 connectors.  Just like any electronic component the connectors go out of stock at Digi key and then I have to find an alternative source.  I also have to make up DB25 cables to connect the BMS units to the batteries.  All batteries have the DB25 connector that was used to connect the DC2260A BMS demo board to measure the cell voltages, one battery at a time.  Now the cell voltages of at least the first four batteries can be monitored together, at the same time.  The BMS units will be mounted on the side of the battery box and none of the battery DB25 cables can reach that, so new cables need to be fabricated.  I think connecting to the existing DB25 cables would be better for testing than creating a cable that goes between the BMS and the BMS connections on each battery.

 

 Enclosures

 Below is how the connections are made inside the CINCH enclosure. Power and CANBUS and two temperature measurements.  Silicon coated ribbon wire was used to keep the wire management to a minimum. The wires that are soldered directly to the pins on the Nano Every are for the temperture measurement.  That was an ECO to fix a design problem with the BMS PCA.  The Blog covering that upgrade can be found here.

 

BMS Final Wiring

 

I have to use a different enclosure for the first BMS PCAs that I built up.  At that time, I was not sure the Arduino Nano Every processor board should be directly soldered to the BMS PCA.  The Nano is connected via SIP connectors on the bottom side of the PCA, so that it can be removed, if necessary. I have three PCAs that were assembled that way. That extra 3/8" of height means the PCA cannot fit in the CINCH enclosure. I will be using a plastic enclosure made by Jameco.  See the image below.  You can see the SIP connectors on the bottom side and see how much that offsets the Nano from the PCA. The PCA has standoffs in the corners to raise the board to the correct height for the DB25 connector.  You can see in the image how the front of the enclosure is machined to fit the DB25.  The side of enclosure, opposite the DB25 side will have the circular M12 connectors (not yet machined).  These BMS units will be connected to the batteries under the rear seat, so they will be inside the passenger compartment.  The Jameco enclosure does come with a gasket for the lid.  Not as moisture tight as the CINCH enclosure but should be good enough inside the car.

 

 Jameco enclosure

 

Click to see the development of a Reader for the BMS modules.

 

Add a comment

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.

 

Battery PCA4

 

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.

Rework

 

A video of the Chevy Bolt battery is coming soon.

 

To read more about the Analog Devices DC2260A demo BMS board Click Here

Add a comment