DIYBMS v4

small issues guys,
i built two esp32 controllers one is working (at least controller is working) and second have have following message on serial port


rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:10124
load:0x40080400,len:5828
entry 0x400806a8



                _          __
    _|  o      |_)  |\/|  (_
   (_|  |  \/  |_)  |  |  __)
           /
[I][main.cpp:3286] setup(): CONTROLLER - ver:46d43c12e943f1dd682da3364398cbdf0de                                                                                                                                                             782d3 compiled 2021-10-04T15:45:25.421Z
[I][main.cpp:3291] setup(): ESP32 Chip model = 1, Rev 1, Cores=2, Features=50
[I][HAL_ESP32.cpp:232] ConfigureI2C(): Configure I2C
[I][HAL_ESP32.cpp:291] ConfigureI2C(): Found TCA9534A
ESP_ERROR_CHECK_WITHOUT_ABORT failed: esp_err_t 0xffffffff (ESP_FAIL) at 0x40091                                                                                                                                                             2a7
file: "src/HAL_ESP32.cpp" line 60
func: esp_err_t HAL_ESP32::writeByte(i2c_port_t, uint8_t, uint8_t, uint8_t)
expression: i2c_master_cmd_begin(i2c_num, cmd, pdMS_TO_TICKS(100))
[E][HAL_ESP32.cpp:311] ConfigureI2C(): TCA6408 Error
[E][HAL_ESP32.h:181] Halt(): SYSTEM HALTED

[Edited for format - Moderator (RW)]

Its trying to talk on the i2c lines - probably a soldering issue near one of the TCA chips.

@stuart thank you, after replacing TCA6408APWR chip all ok, thank you. not time to build packs to test my setup

back again with more problem, bms start ok, nothing connected to bms, only bms connected to pc, i can not save any settings from web but on serial i have following error. can not anyone else had this issue in the past either :frowning: under rules i have Internal BMS error.
i m trying to enable avr programming mode but without any luck

[I][tft.cpp:388] tftwakeup_task(): Wake up screen
[I][Rules.cpp:142] SetError(): Set error 4
[I][Rules.cpp:142] SetError(): Set error 4
[I][Rules.cpp:142] SetError(): Set error 4
[I][Rules.cpp:142] SetError(): Set error 4
[I][Rules.cpp:142] SetError(): Set error 4
[I][Rules.cpp:142] SetError(): Set error 4
[I][Rules.cpp:142] SetError(): Set error 4


No, doesn’t help.
I can putty from my local windows to the remote cerboGX device
Then I make a socks tunnel to that cerbo in the putty settings.
After this I set the proxy on the browser of my local machine to the forwarded socks port.

Then I can surf all webpages all over the world including youtube and other content through this socks proxy running on the remote cerbo.
Also this lines I write here are tunneled through this socks proxy.

But when I enter the IP address of the DIYBMS only the blue ring is coming like shown above.

Ok, use Chrome browser and press F12.

Take a look at the network and console windows and see if there are errors.

once more thank you, only switch the browser and all working ok, i can save settings etc. but serial error is still there, i have no module connected

Oh man … reproduced it now 10 times.

with F12 closed not working.

F12 opened and Ctrl-F5 - voila working

closing F12 - not working

Doesn’t make sense to me. No errors in the Log Window

THX a lot

Is there a bug with more than 32 modules?
I have a 14s 3p pack, 42 modules all chained.

I set the bypass voltage to the voltage of my lowest cell, to get them all balanced.
But only the first 32 modules when into bypass.

G’Day Stuart,

Thank you for sharing all your work!

This is just a F.Y.I

The other day I cloned latest diyBMS-CurrentShunt github repo and set about creating an order with JLCPCB using the repo gerbers/bom/cpl files. After placing the order I received this response from JLCPCB:

So sorry about that the maximum plated holes we can make is 6.3mm, those big plated holes in your file are out of our capabilities, if proceed with this order ,the quality of those big plated holes will not be promised (e.g. defects may highly occur: un-plated holes, incomplete plating, hole with copper residues etc.). Can you accept that and no quality compliant about these issue? If yes, we can proceed with this order .

The longest plated holes we can make is 6mm, you can check it in Instructions for ordering.

Could you please kindly modify them as non-plated slots and re-order with corrected file ?

I’ve since cancelled my order and will fiddle with my version of the PCB to suit the shunt I intend to use so it is also acceptable to JLCPCB.

Cheers,

Peter

Which holes are they referring to? The slots in the middle are not plated.

None that’s been reported.

What version of code is on the modules?

Thanks for responding Stuart,

This is the image JLCPCB sent me explaining the issue:

Seems they think the slots are plated?

Just had a look at the properties for the ‘Murata 3020-01101-0’ footprint (‘3D Settings’ tab) in kicad and the way it renders sure does make it look like the slots are plated …even though they are not.

Both oval slots have a pad type of ‘NPTH, Mechanical’ which makes the hole look like it’s plated though of course they are ‘Non Plated Through Hole’ (NPTH).

If I change the slots to have a pad type of just ‘Through-hole’ they do look better but the measuring tool shows them as 7mm wide even though the hole size is 5mm. I think this is because of the footprint pad clearance setting …just haven’t been able to change that as yet …not even sure I should.

Regardless, the original order has been cancelled so I’ll figure something out eventually …I may just re-submit and try and get JLCPCB to understand the holes are only 5mm and not plated at all.

Edit: I have since re-submitted the original gerber (et al) files with a note advising the holes are NPTH. The order has since been approved and production is underway …guess I just got ‘lucky’ on the first attempt :wink:

Cheers,

Peter

i did not had any issues, placed the same order at JLCPCB a month ago

So i have the controller with esp32, been using for a test project with 7s20p packs. I notice there are 4 relays on the board, 2 are mechanical relays (been using them for turn on fan and battery disconnect when voltage drop too low) and there are relay 3 and 4. I wonder what can i use them with and what kind of relay are they, how they operate. Thanks Stuart, your project work excellent and i love them

Relays 3 and 4 are electronic relays. You can use them like other mechanical relays, however they only handle a much lower current (from memory 1amp) so check the data sheet for the details.

1 Like

If you’ve not seen it yet, I released a new video earlier this week introducing the Victron integration with diyBMS using the CAN interface.

Excuse the thumbnail picture :slight_smile:

3 Likes

Thanks @stuart for the firmware upgrade and bug fixes this week!
My controller has not rebooted since and time is displayed correctly after the “one day” mark too!
Now for me to get working on finishing my powerwall and cabinets

Very nice work! I appreciate it very much!

That’s great to hear. Have fun.

1 Like

Today my CERBO has arrived, I am eager to test it on the test bench, but wait for other Shunts from China to arrive (I hope it will not be long) because the one that is operative is already installed in the installation and I do not want to disassemble it for tests.