BMS Readout Redesign

As I was testing the BMS Reader by simulating nine BMS units I discovered a problem.  At the 8th BMS reading, the last few cells would read wrong and then after two of the 9th BMS readings the program would crash. The BMS Reader requires a large program because of all the external components (Rotary encoders, SD card, LCD and 7-segment) and it exceeds a limit.  For a reason too extensive to explain here, if the compiled program size exceeds 70% of the processor memory then program execution can fail. This is a problem with all Arduino processors. There is no way to add memory to the processor.  The only solution is to get another processor.  Arduino does make other processors with much more memory and much faster, such as the Arduino Nano ESP32 pictured below.  The ESP32 has the u-blox® NORA-W106, a dual-core Xtensa® 32-bit LX7 microprocessor running up to 240MHz and 384KB of processor RAM, almost 10 times more memory than the Nano Every.  The problem with all the fast processors like the Xtensa is that they are not compatible with 5V, usually they run at 3.3V or 1.8V.  The ESP32 runs at 3.3V. That is an issue with components that are designed for 5V, which all the components in the reader are. Most 5V components will work with 3.3v data communication input but to communicate back to the Nano ESP32 a logic-level shifter circuit is required. That circuit does just as it sounds, it pulls the 5V down to 3.3V and it pulls the 3.3V up to 5V. The circuit can be very simple, a single N-MOSFET transistor with two resistors is all the is needed for one channel.  But my reader design uses all 8 channels of data communication shown in the lower images. I found an 8-channel logic-level shifter surface-mount integrated circuit (link) that would occupy less space than the 8 transistors.  But either option requires a new PCB design and fabrication.  A new PCB will take about a week to be fabricated.

One other feature of the Nano ESP32 is that it has support for the 2.4 GHz Wi-Fi® band as well as Bluetooth® 5 which means there can be other ways to get the BMS data out of the reader. Another great feature of this processor is that it also has a CAN-BUS controller.  That means I could eliminate the MPC2515 CAN-BUS controller from my design. It would simplify the PCB design, but that would also mean a new PCB design and a significant code change would be required.  I only made a new PCB design with the logic-level shifter IC.  Once I have that PCB and verify its functionality I will explore that option of creating a new PCB using the CAN-BUS on the ESP32.

 

ESP32a

 

ESP32 COM2 518 x 963

The Nano ESP32 is nearly identical pinout and connection as the Nano Every.  There just is no 5V pin.  The VBUS pin can output 5V but only when the USB is plugged in.

 

To see the latest in the BMS Reader redesigns click here