I also made up my own BMS board that fits where the BMB is in the sheet (module) in the Roadster ESS. You can talk to it over isolated rs232 and it has an wifi module on it where it will connect to a access point. It has it's own basic web interface to monitor, charge, move power from one cell to another, get isolated power externally, and also discharge.
View attachment 91558
Somehow I missed this post! Very impressive. Looks much better than my crazy setup...
Your electronics-fu seems stronger than mine by a long shot. What method did you use for reading individual cell voltages? I couldn't think of a good way to do this with a single AVR chip with accuracy since the AVR references everything to ground when doing ADC measurements, and the reference voltage can't exceed VCC.
My current method is using a calibrated resistor network (using 4.096V reference voltages in place of cells for a software-based calibration session) to measure cell 1, cell1+2, and cell 1+2+3 and do the math to get the individual cell voltages, then isolating that chip from a master for digital comm (currently just to a USB232 adapter using a software UART).I decided on just three cells at a time since errors accumulate with each cell added with this method. No charge shuttling or anything, just bleed resistors behind some transistors so they feed off the right cell.
I've been able to get accuracy to ~ +/- 4mV reading cell voltages with my breadboard disaster of a prototype sub-BMB, as well as ~120mA balancing circuits for each cell.
I switched to the ATTiny24 since I'm an idiot and forgot I'd need pins to activate the balancing circuits.
This whole mess draws a few dozen mW, including the isolation IC, from the three cell group. An issue with this setup is the mA or so need to activate the transistor for the bleed resistor is spread across the three cells. So, I'll have to pulse the bleed resistors on the other 9 cell-sets in that group (in my setup that has 12 cells in series) with a calculated duty cycle to make sure that they stay in line. Definitely not the most efficient, but I think it will work for me.
I need to get the a master chip going so that I'm not doing floating point math on a 2KB MCU for debug purposes... lol.
Definitely open to improvement suggestions. (Buy a BMS is not a valid suggestion.
)