question

Mike Dorsett avatar image
Mike Dorsett asked

Bug in Smart Solar MPPT 100/50 firmware V1.57

I think there is a bug in the MPPT 100/50 firmware V1.57:-

(or it may be intended behavior - but if so it's different from other mppt's and unwanted)

When the Battery Max current register (0xEDF0) is updated, the charger turns OFF, then back into BULK, and takes 4 or 5 seconds to re-establish charging.

I'm using this register for controlling the charge current to a lithium battery pack - which means it is being updated every 1 - 2 seconds at times. This results in ZERO charge from the MPPT. I'm using this register for compatibility with older BlueSolar MPPT (also 100/50) The older unit does not exhibit this cyclic behavior, but just adjusts its current as expected. So too does a NEW 150/100 MPPT Smart Solar, with it's firmware updated to latest. There have been other reported threads about this particular MPPT, where it bricks itself if it looses communications.

I have also found this controller in a brick state, where it has PV input, is apparently in Bulk mode with Battery current set to 50A, yet producing nothing. Recovery from this is a reset to defaults, followed by resetting the battery set points.

@mvader (Victron Energy)

Please can this be looked at - I'm sure there is a bug. The cyclic behavior on reprogramming the current register is a definite pain - I've lost several days charging due to not noticing this, resulting in having to run the generator at the end of a perfect sunny day.

Thanks for your efforts.

Mike.

MPPT SmartSolar
4 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Mike Dorsett avatar image Mike Dorsett commented ·
Further:

If hex commands are continually sent, the TEXT protocol transmissions should not take place (according to the documentation, these should only resume after no trafic for about 1 second). This is not the case with V1.57 installed on a blue solar MPPT100/50: The text protocol is being sent despite continual hes messages (every 0.25 second) this is really messing up !!

0 Likes 0 ·
mvader (Victron Energy) avatar image mvader (Victron Energy) ♦♦ Mike Dorsett commented ·
Hi, pls check a more recent copy of the text protocol; we changed the behaviour.


Reason to do that is to be able to do HEX queries/commands, without stopping the Text protocol.


Wrt your other question, battery max charge current, we'll check and get back to you.

0 Likes 0 ·
henriv avatar image henriv commented ·

I was planning to also write to the register, to implement some kind of load current compensation. Then my suspision was confirmed in the reference document about these registers.

WARNING: stored in non-volatile memory. Continuous writing, for example from a control loop, will lead to early failure.


0 Likes 0 ·
Mike Dorsett avatar image Mike Dorsett henriv commented ·

The modified software is working fine - except for data corruption still caused by the text mode. ( PS I don't see the reason for the change in behaviour - if Hex protocol is being used, text mode is NOT needed - and causes problems)

I'm using the remote control registers 0x2002 (Battery sense voltage) and 0x2015 (charge current limit). Only have one 70A charger in the system now. I've also added in the internal temperature read in the data read loop, so the BMS can switch a cooling fan on and off - otherwise internal temp gets to 100C!!!.

0 Likes 0 ·
2 Answers
mvader (Victron Energy) avatar image
mvader (Victron Energy) answered ·

Hi Mike, we checked, and cannot reproduce it. It does what it should: current is reduced/increased without resetting the charge cycle.

Do you have VRM on this system?

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Mike Dorsett avatar image
Mike Dorsett answered ·

Hi @mvader, No VRM on this system but it is constant. Is the unit possibly faulty? (new unit bought to replace the original in an Easy Solar 24/1200/50, which suffered an accidental short on the PV input (why do you have to glue the lids on?).

Also updated the original unit after repair, to V1.59 - this one the ascii (text) mode will NOT keep quiet...

I can put this unit on VRM, BUT when I do this it goes into BMS mode, which uses a different register to control the charge current. Can you give me a good reason / let me know how long you would need the system on VRM for?

Is it possible to reload the firmware in the unit? This updated using Connect after installation a few months ago.

Routine that formats message:

def dec2hex_str(dd1):
hi_by = int(dd1/256)
lo_by = dd1-hi_by*256

I_str = ("{:02X}".format(lo_by))+("{:02X}".format(hi_by))
msg_set_Imax = "8F0ED00"+I_str
chk = 0x170 -lo_by-hi_by
chk = chk%256
st_ch =("{:02X}".format(chk))
msg_set_Imax += st_ch
b_msg_Imax = str.encode(":"+msg_set_Imax+chr(0x0a))
return(b_msg_Imax)


Routine that sends this to com port:

def write_VE(i,msg):
global com
print(330,i)
try:
com[i].flush()
except Exception as e:
print(334,e,com[i], i)
b = com[i].write(msg)
#print(256,msg, b)
time.sleep(0.15)
c2b = int(com[i].in_waiting)
#print(301,"in waiting",c2b)
return(c2b)

Code that calls the format and write function:

ve_str = dec2hex_str(int(I_set[i]))
a =write_VE(i,ve_str)


regards,

Mike.

3 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Mike Dorsett avatar image Mike Dorsett commented ·
Please can we also have a command to turn OFF both text and Async modes?
0 Likes 0 ·
mvader (Victron Energy) avatar image mvader (Victron Energy) ♦♦ Mike Dorsett commented ·

Hi Mike,

Reloading firmware won't change or fix anything.

The unit could be faulty, though I don't see how a hardware failure could lead to this.

What you could do is log in using Bluetooth, and see if an error is raised or something else that happens causing it to switch off. Or yourself log the state and the error codes. In our ESS systems, the max charge current is written to all the time and causes no issues.

Lets forget the VRM idea; since once connected to VRM you are no longer writing to it yourself; so that won't help.

And one more remark (IMPORTANT!!), this register you are writing to every few seconds, EDF0, is a setting. Writing to it every few seconds will lead to early failure of the MPPT, you are killing the flash memory. Instead, you need to use 0x2015, part of the remote control set of registers.

ps. having a command to turn text and async modes off: maybe some day; but not now.

0 Likes 0 ·
Mike Dorsett avatar image Mike Dorsett mvader (Victron Energy) ♦♦ commented ·
|Hi @mvader
Thanks for the reply: I did raise this question about re-writing 0xEDF0 a long time ago on this forum, but did not receive a reply.

I would have thought that in your ESS systems, you are also using 0x2015 not 0xEDF0 for this same reason.

I was examining the behavior of the unit with Victron connect on a mobile using Bluetooth. No error was observed, just the cyclic stop, bulk stop bulk sequence.

I've now managed to update the firmware in the old BlueSolar MPPT100/50 to V1.59 - this has added the 0x2015 register to the device. I'm also 80% through a re-write of the control code for the multiple VE-Direct devices (code will interface with MPPT's and a smart shunt) to use the HEX protocol and the 0x2015 register. Settings are updated ONCE every time the program starts - though I may change this to read the settings first and only update them if they need it.

I found the different reply lengths a real pain to deal with - especially the PID - a 16 bit value in the middle of a 32 bit field!!. Some replies also seem to contain hidden (non printable) characters after the check sum and before the \n (0x0a).

Also, the ASCI / Text mode does not seem to respect the hex protocol, and keeps interfering with the return codes (despite an 0.5 second cycle time) - this was also difficult to trap out.

A command to turn the text protocol OFF would be good, even if this resets at the next power up.

Anyway, this issue can be closed - due to the re-write the problem should disappear.



0 Likes 0 ·