OpenEnergyMonitor Community

CAN bus controller version?

From the Announcements thread there is a new version of the controller being worked on that supports CAN bus. Was there any updates on when this one might be ready for other users to try out?

My system is Victron based and currently using an Orion Jr. BMS but will need a 2nd BMS for another battery bank. Since the Orion Jr. BMS can communicate with the Victron system over CAN bus to reduce current from charge controllers, cut off inverter, etc I was hoping that the new diyBMS would eventually be able to perform similar task over CAN bus as well.

Thanks for any updates on the new controller.

1 Like

Hi @dkb

At the moment I’ve not publically released the new controller design as I’m still testing its hardware components/parts.

The new code is public (although not usable on existing ESP8266 modules) and this is the state of progress…


ESP32 BOOT button for WIFI RESET - working

GPIO 0 pin connected to interrupt, hold BOOT button on ESP32 for more than 4 seconds to factory reset the WIFI settings stored in EEPROM. Once reset, the LED lights CYAN, at this point reset the controller to enter either the terminal based WIFI configuration (by pressing SPACE bar) or WIFI access point configuration (default). Connect to Wifi SSID DIY_BMS_CONTROLLER and IP address to ensure set up pages.

USB Debugging/Console - working

USB Serial is connected to second UART on ESP32 allowing full console access and debug serial port via USB cable.

WIFI configuration from terminal – working

TCA9534A – working

Controls RGB LED, TFT display LED and AVR ISP reset line

TCA6408AQPWRQ1 – working

Controls relay’s and external IO A/B/C/D/E

Relay 1 – working

Driven from pin 9/P4 of TCA6408AQPWRQ1, confirmed working.

Relay 2 – not tested

Driven from pin 10/P5 of TCA6408AQPWRQ1

Relay 3 (SSR)-- not tested

Driven from pin 11/P6 of TCA6408AQPWRQ1

TX1/RX1 --working

Uses GPIO2 for RX and 32 for TX. Works as per ESP8266 modules using hardware based UART.

I/O ports --working

Driven from pin 4/5/6/7/12 (P0/1/2/3/7) of TCA6408AQPWRQ1

External 5v power supply input

Confirmed working, 3.3v regulator working, reverse polarity protection working Over voltage zener diode (ZMM5V6) not working as expected, incorrectly positioned in circuit diagram (fixed, but not tested in new revision)


Confirmed working, driven from TCA9534A pins 4/5/6 (P0/P1/P2) BLUE, RED, GREEN.

TFT Screen

Confirmed working TFT screen via HSPI interface and LED backlight working driven from TCA9534A pin 7 (P3).

SD CARD – not tested

CANBUS – not tested

RS485 – not tested

ATTINY ISP Programming – not tested

SD Card on TFT display – not tested

TFT Touch

Confirmed working via HSPI


Experimental interface for 2nd module chain - not tested


This is an old conversation but I’m hopping that it can get me to the right place.

Is there a conversation in regards to the code development for CAN support? I’m in the process of developing my own flavor of what I need from the diyBMS controller but I would like to be as close as possible to any development in the master branch.