question

calimero avatar image
calimero asked

How to set MPPT to Charge master? Set 0x200E to b0100001, charger uses internal charge profile.

How to set MPPT to Charge master? Set 0x200E to b0100001. Charger uses internal charge profile.

Ich bastle gerade an einem Programm zu Überschussverwertung an einer Inselanlage.

Hier mal die Eckdaten der Anlage:

2500 Watt PV.

Victron MPPT 100/50.

Batterie 600 Ah 24 Volt.

Inselwechselrichter 24 Volt 2500 Watt.


10 Watt Solarpanel kurzgeschlossen über einen INA226 zur Ermittlung der Stärke der Sonneneinstrahlung.

Diesen INA Wert verrechnen ich mit der aktuellen PV Leistung des MPPT und habe somit die Überschussleistung,

Ist Überschuss vorhanden regle ich über eine Phasenanschnittsteuerung eine 2000 Watt starke Elektroheizung in Stufen von 0 - 255 (später mal einen Warmwasserboiler). Dieser Regelkreis funktioniert soweit.


Als zusätzliche Sicherheit habe ich einen Lastabwurf bei Unterspannung programmiert.

So in der Art " wenn aktuelle Spannung um so viel Volt tiefer ist als Soll-Absorptionsspannung bzw. Soll-Floatspannung dann Lastabwurf".


Die Werte für Floatspannung bzw. Absorptionsspannung ermittle ich momentan etwas umständlich.

Ich mache wenn der Status des MPPT wechselt 2 Spannungsmessungen im Abstand von einer Minute. Danach ziehe die beiden Spannugswerte voneinander ab. Wenn die Differenz nicht größer ist als 0,03 Volt so ist das mein Sollwert für Absoprtion bzw. Float.


Laut Victron Whitpaper sendet ein MPPT wenn man ihn als als Charge Master konfiguriert das Register 0x2001.


"When a unit is set to charge instance master mode it will periodically send the registers 0x2001,

0x2007, 0x2008 and 0x200B using asynchronous hex-messages (:A)."


"0x2001 Charge voltage set-point (*2) 0.01 un16 V".

"Note 2: The charge voltage set-point can be read from the master unit and written to the slave units so

the group will behave as one unit. See network mode register 0x200E."


Das Register 0X2001 ist die Sollspannung des MPPT und genau diesen Wert bräuchte ich.

Dann kann ich nämlich die ganze umständlich Spannungsermittlung rauswerfen und die Temperaturkompensation wäre auch mit drin.


Über die Victron App kann ich den MPPT aber nicht in den Modus Charge Master setzen.

Also geht es nur über den Arduino.


Die Kommandozeile für setzen des Modus Charge Master müsste so lauten:


"Charge master Set 0x200E to b0100001, charger uses internal charge profile"


:8 0E20 00 und dann ??? "b0100001" ??? "checksum" ???


Genau dieses "b0100001" ist mein Problem.


Wie muss ich das schreiben damit der MPPT in den Modus Charge Master geht ?


Gruss Markus

MPPT Controllers
2 |3000

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

3 Answers
calimero avatar image
calimero answered ·
I am currently working on a program to utilize surplus on an island system.
Here are the key data of the system:
2500 watt PV.
Victron MPPT 100/50.
Battery 600 Ah 24 volts.
Stand-alone inverter 24 volts 2500 watts.
10 watt solar panel short-circuited via an INA226 to determine the strength of the solar radiation.
I offset this INA value with the current PV power of the MPPT and thus have the excess power,
If there is excess, I regulate a 2000 watt electric heater in stages from 0 - 255 (later a hot water boiler) via phase control. This control loop works so far.
As an additional security, I have programmed a load shedding in the event of undervoltage.
For example, "if the current voltage is so many volts lower than the target absorption voltage or the target float voltage then load shedding".
At the moment, I find the values for float voltage and absorption voltage somewhat cumbersome.
If the status of the MPPT changes, I take 2 voltage measurements every minute. Then subtract the two tension values from each other. If the difference is not greater than 0.03 volts, this is my target value for absorption or float.
According to Victron Whitpaper, if an MPPT is configured as a Charge Master, it sends the register 0x2001.
"When a unit is set to charge instance master mode it will periodically send the registers 0x2001,
0x2007, 0x2008 and 0x200B using asynchronous hex-messages (: A). "
"0x2001 Charge voltage set-point (* 2) 0.01 un16 V".
"Note 2: The charge voltage set-point can be read from the master unit and written to the slave units so
the group will behave as one unit. See network mode register 0x200E. "
The register 0X2001 is the nominal voltage of the MPPT and this is exactly what I need.
Then I can throw out the whole cumbersome voltage determination and the temperature compensation would also be included.
However, I cannot set the MPPT to Charge Master mode via the Victron app.
So it's only possible via the Arduino.
The command line for setting the Charge Master mode should be as follows:
"Charge master set 0x200E to b0100001, charger uses internal charge profile"
: 8 0E20 00 and then ??? "b0100001" ??? "checksum" ???
Exactly this "b0100001" is my problem.
How do I have to write this so that the MPPT goes into Charge Master mode?
Greetings Markus
2 |3000

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

calimero avatar image
calimero answered ·
1 comment
2 |3000

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

mvader (Victron Energy) avatar image mvader (Victron Energy) ♦♦ commented ·

Hi, I'm sorry but we can't support on this. We only offer support on complicated integrations like this when it is part of some enormous project involving 10.000s or 100.000s of solar chargers.

-1 Like -1 ·
calimero avatar image
calimero answered ·
HI @mvader (Victron Energy)






 Thanks for the answer. 
I don't need any support for the whole project. I can do that myself. I only need support when setting the register 0x200E so that the mppt is in Charge Master mode. In your whitepaper VE.direct protocol REV 16 on page 23 1.3 message examples you have given some examples of how the communication with the mppt should look like. is it possible to add an example to set register 0x200E? that's all i need Many Thanks. markus

mppt-hex-protocol.pdf (473.0 KiB)
2 |3000

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