diy solar

diy solar

Daly BMS Faulty - Depotted and diagnosed

Ok, some more progress.. designed a breakout PCB so I can easily disconnect/connect the BMS from my battery and wrote some code to dump out the ADC cell voltages, and had a few problems.

1. Was getting cells 1-6 just fine, but 7, 8 & 9 gave very odd values. This turned out to be an electrical fault as there was a very fine solder-bridge between two pins on the `SH367309`. It is very clear this fault was from factory for several reasons, 1) I have not had to solder on or near the chip at all; and 2) it's clear that it's not my solder as I am using leaded solder which has a sheen that lead-free solder simply doesn't have.

2. Cell 16 was also reporting strange values, but this was my own fault, I was out by one on the cell address register.

Finally getting sane values for all 16 cells (note, battery is under load and discharging at current)
All values are in mV, and 100ms apart (10Hz update rate)

```
3225 3223 3226 3221 3244 3227 3243 3225 3229 3227 3227 3227 3231 3228 3225 3224 = 51658
3223 3224 3225 3222 3243 3228 3243 3226 3228 3229 3225 3228 3229 3230 3223 3226 = 51659
3223 3224 3224 3224 3243 3230 3242 3227 3227 3230 3225 3229 3229 3230 3222 3226 = 51661
3225 3222 3225 3222 3244 3227 3243 3225 3229 3227 3227 3227 3231 3228 3224 3225 = 51658
3223 3225 3224 3224 3243 3228 3242 3226 3228 3229 3225 3228 3229 3230 3223 3226 = 51660
3224 3224 3224 3223 3243 3229 3242 3227 3227 3229 3225 3229 3229 3230 3222 3226 = 51659
3224 3221 3225 3220 3244 3226 3243 3224 3230 3228 3226 3227 3231 3229 3225 3225 = 51655
3222 3224 3222 3222 3242 3229 3241 3226 3227 3229 3225 3227 3228 3229 3222 3226 = 51648
3223 3223 3223 3222 3243 3228 3242 3225 3228 3229 3225 3228 3229 3230 3222 3226 = 51653
3225 3222 3225 3221 3244 3227 3243 3224 3229 3227 3227 3226 3231 3228 3224 3225 = 51653
3223 3225 3223 3224 3243 3229 3241 3227 3228 3229 3225 3229 3229 3230 3222 3226 = 51658
3224 3223 3225 3223 3244 3228 3242 3225 3229 3228 3225 3228 3229 3230 3222 3226 = 51657
3224 3222 3225 3221 3244 3227 3243 3225 3229 3228 3227 3227 3230 3228 3224 3225 = 51656
3223 3225 3223 3224 3242 3229 3241 3227 3227 3230 3225 3229 3228 3230 3222 3227 = 51659
3224 3224 3224 3223 3244 3228 3242 3225 3229 3228 3226 3227 3229 3230 3223 3225 = 51657
3224 3221 3225 3220 3243 3226 3242 3224 3228 3227 3226 3226 3229 3227 3224 3224 = 51645
3222 3224 3222 3223 3242 3229 3241 3226 3227 3230 3224 3228 3228 3229 3221 3226 = 51647
3224 3223 3224 3222 3244 3228 3242 3225 3229 3228 3226 3227 3230 3229 3224 3225 = 51657
```
 
Some more progress...

Last night I managed to figure out the last few issues that were preventing the device from connecting the battery. I can and have now set under and over voltage thresholds and the device is operating correctly.

Some more interesting things to experiment with though.

1) There is an extra pin on the connector for a 2nd NTC, this is actually wired up and functional so you could place two NTCs in the battery to give better protection (note that the factory firmware disables the extra NTC)

2) There is a third NTC header on the PCB which can also be configured for use. It seems like all the parts are populated for this header, I am yet to find out if it's functional though.

3) It is possible to configure the device for a string size from 5 to 16, the only hardware change that is needed is to connect the 17th positive wire to the last wire that is actually connected to the battery. This means a S16 BMS can be a S5-16 BMS with custom firmware. The inverse is likely not true though, ie, you can't create a S16 BMS from a < S16 BMS, because the additional parts on the PCB will likely be missing for those cells.
 
Amazing service from DALY on this honestly, they are providing me with the firmware and files to repair my device that normally one wouldn't be able to obtain. Here are the latest files for the GD32E230C8T

Boot version is: V3.01.1Z
Firmware version: BMS-GD230-309E31_230325_001T

See if you can get them to send you the source code for the firmware :). I know that sounds far fetched, but I have gotten manufactures to send firmware source.
 
great work.
Can you see if the CAN/RS485 socket is wired?

I would be interested to know if it is only switched off by FW.
 
Today I got the GD32E230C8T6 and successfully replaced the part, flashed it, and brought the BMS back from the dead. This allowed me to finally do some sniffing of the I2C bus and figure out what I was missing in my implementation.

So another discovery, GPIOB pin 9 is connected via a transistor and a mosfet to the `VPRO` pin on the `SH367309`. By configuring the pin as open drain and pulling it low, the `SH367309` exits programming mode (which disables access to the EEPROM for both read & write) and begins to operate.

I am now able to actually read the results now of the ADC for each cell's voltage, and I assume much more now also. Next thing I need to do is get a neat method of wiring this back up to the battery so that I can test it with some real data. I would like to get it to a point where I can feed the cell voltages into a InfluxDB and use Grafana to plot the cell voltages over time.
Also the biggest problem with ant bms 4s. The service center has already sent me the firmware. But of course thay didn’t send the bootloader. I'll try to flash the bootloader that you posted for the GD32... What program and programmer did you flash the GD32E230...? Is the St-link/v2 programmer and stm32 st-link utiliti program suitable for this?
 
Last edited:
Back
Top