New DIYish battery build

Not Pylon. SMA made the first version of the protocol as far as I know. And this isn’t even a dig at them specifically, we all know how sometimes something you threw together quickly (hence me saying slapdash… there is a time and place for slapdash) can outlive it’s original purpose significantly. This is one of them :slight_smile:

It wasn’t done badly because the people who made it were stupid. It was done badly, probably, because nobody expected it to proliferate as much as it did.

I mean, if it was designed “properly”, we’d have the capability to address individual batteries and inverters on a single can-bus, but as it is, it is essentially point to point.

Yeah, there is nothing more permanent than a short term solution.
I was asked to create a quality control capture and reporting platform for a packhouse that needed something asap to replace the spreadsheets that were giving them headaches.

I slapped something to together on AWS and decided to drop all the QC records as json in S3 because I could use S3 as a datasource in AWS Quicksight, great, works.

Then I discovered S3 has a limit on the number of objects you can have in a bucket…
The interim solution? Achieve some of the data then delete it.
I told myself I will come up with a more permanent solution at some point
clown-nose

Somehow we always circle back to this:

2 Likes

Man all you clever people makes me feel real stupid… can I create a section where these type of discussions can be hidden from normal people like me, it gives me a headache just trying to read this, let alone trying to understand it… :rofl: :joy: :innocent:

1 Like

I call it a quick solution, for now just because “now” is a relative concept to me.

Great work @justinschoeman , I like what you doing here. Whats going to happen to your old bank?

The old bank will still be used in parallel.

Part of this development is building support to aggregate information from multiple batteries, and send one set of information to the inverter which gives the total capacity/capability of the combined banks, as well as any charge restrictions required by a single bank.

If I get sufficiently bored, it may extend to a more-or-less universal battery translator, where it can communicate with virtually any collection of batteries, and spit out something that any inverter can understand.

I achieved two things last night:

  1. I discovered how device addressing works on the Daly BMS protocol, and
  2. I managed to emulate Eskom.

It seems that device addresses are not just addresses - they are priorities. So, if I use address 0x80 over Bluetooth with my new software, my existing translator running on address 0x40 does not get serviced.

So my existing translator decides the battery is fubar and sends an alarm to the inverter, which promptly shuts down, and creates a perfect Eskom simulation…

On the plus side, I have confirmed that BT comms are identical to RS485 and RS232 on the Daly BMS. Should have these last modules done shortly.

1 Like

like this? :wink:

Eskom_Operation

Apologies for the OT.

Or like this?

Selection_332

That one…

I hacked together some code to read my daly BMS from another project if you are maybe interested. If my phone connects via bluetooth I have noticed that my python code values are not coming through. Seem to recall that 0x40 is RS485 and 0x80 is bluetooth

Yep, thanks. Also already have code for reading it on Arduino.

As I have just discovered, the address is actually a priority - it responds to the highest priority request first. It seems to accept any ‘address’/priority from any channel.

So this battery doesn’t have built in balancing??
Do you have access to the terminals of the 4 banks of cells internally?

Each individual 12V battery has balancing for it’s own 4 cells.

I just need to balance the 4 packs in series.

Can I interest you in this? Battery Balancer - Victron Energy

Have not seen a Victron Battery Balancer having leads per cell.

Per 12v battery, YES!

My point: Fit for purpose.

What would be the fun in that. Much more fun to build something :stuck_out_tongue_winking_eye:.

Indeed but if there is already the ultimate killer app available then it changes the approach and response to the topic… :space_invader:

Took a long weekend off to hike Blouberg, but back at the grindstone…

Can now reliably read 5 bluetooth BMSs in parallel, stitch the 4 12V batteries into a 48V bank, and then derate the 2 48V banks (based on maximum and minimum cell voltages) and finally combine them into 1 big 48V bank.

Still lots of testing to do, but looking good so far (the batteries aren’t actually connected in parallel yet, which is why the strange values):

21:43:42.336 -> BANK PARRALEL RUN!
21:43:42.336 -> BANK PARRALEL RUN (NORMAL)
21:43:42.336 -> nomVoltage 51.20
21:43:42.336 -> nomAH 560.00
21:43:42.336 -> nomChargeCurrent 250.00
21:43:42.336 -> nomChargeVoltage 58.40
21:43:42.336 -> nomDischargeCurrent 300.00
21:43:42.336 -> chargeCurrent 250.00
21:43:42.336 -> chargeVoltage 58.40
21:43:42.336 -> dischargeCurrent 300.00
21:43:42.336 -> soh 100.00
21:43:42.336 -> soc 77.70
21:43:42.336 -> voltage 53.105
21:43:42.336 -> current 9.700
21:43:42.368 -> temperature 30.50
21:43:42.368 -> balancing 0
21:43:42.368 -> Cell 0 : 3.319V 30.50C
21:43:42.368 -> Cell 1 : 3.319V 30.50C
21:43:42.368 -> Cell 2 : 3.319V 30.50C
21:43:42.368 -> Cell 3 : 3.319V 30.50C
21:43:42.368 -> Cell 4 : 3.305V 30.50C min 3.305
21:43:42.368 -> Cell 5 : 3.319V 30.50C
21:43:42.368 -> Cell 6 : 3.319V 30.50C
21:43:42.368 -> Cell 7 : 3.319V 30.50C
21:43:42.368 -> Cell 8 : 3.319V 30.50C
21:43:42.368 -> Cell 9 : 3.319V 30.50C
21:43:42.368 -> Cell 10 : 3.319V 30.50C
21:43:42.368 -> Cell 11 : 3.319V 30.50C
21:43:42.368 -> Cell 12 : 3.334V 30.50C max 3.334
21:43:42.368 -> Cell 13 : 3.319V 30.50C
21:43:42.400 -> Cell 14 : 3.319V 30.50C
21:43:42.400 -> Cell 15 : 3.319V 30.50C

(The nominal values are the expected ones, while the others may be derated. For parallel banks, whenever any bank has an operational value different from the nominal value, it shifts to derate mode, where it only reports the lowest parameters - hopefully making it possible for individual batteries to properly derate when in a parallel bank.)

2 Likes