Skip to content
View in the app

A better way to browse. Learn more.

Power Forum - Renewable Energy Discussion

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Axpert Max II, 10kW

Featured Replies

18 hours ago, Coulomb said:

Thanks! Though as usual I'm confused about the firmware version numbering. There is already 56.04 for Axpert King rack mounted 3 kW firmware. Looks like 82.xx is for '28066 processors, and this 56.05 is for '2809 processors, all being Axpert Max II 10kW.

I wonder if 10 kW is the new 11 kW? In other words. perhaps they found that 11 kW was pushing the limits too hard, and they will all now be 10 kW.

Yikes. So that's hardly negligible.

I'm having a bit of patch fatigue (laziness?), and I have this theory that maybe we don't need all of Georg's patches, and maybe the current threshold to stop clamping is really all we need. So as a compromise, I've patched 56.05 with only one "stuck at 90 V" change, and only to MPPT1. That allows comparison with MPPT2, for those that have similar PV arrays connected to MPPT1 and MPPT2. Or you could disconnect the array from MPPT1 and connect it to MPPT2, and the weather hopefully changes little in the 5 minutes to make that change safely.

If I'm wrong, I'll do the full patch set. If I'm right, I'll just patch MPPT2 the same way. Either way, this will be a temporary patch.

Please test this patched firmware, and if possible, compare performance of MPPT1 and MPPT2 on a cloudy or otherwise poor PV day.

 

 

The minimum changes to get it work as ist should is:

 

1 . The 90v limit rise to 120v.

2. The subtraction value down to zero.( @Coulomb you know what i mean )

 

The other tweaks are just for smoothing the regulation.

 

  • Replies 236
  • Views 38.1k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • Try to ask for firmware your supplier, is it possible that you can succeed. I have done that several times but with no results unfortunatelly

  • I've just realised another possible reason for the jitter. In the previous patched version, when the MPPT reference voltage was set to max (450V), the direction was set to 0, meaning that we expect th

  • I think it has. I should be doing the resets after an adjustment cycle, when the accumulated power is set to zero, so the next cycle, you'll get a clean measurement of the difference between 175 V and

Posted Images

1 hour ago, Georg594 said:

 

The minimum changes to get it work as ist should is:

 

1 . The 90v limit rise to 120v.

2. The subtraction value down to zero.( @Coulomb you know what i mean )

 

The other tweaks are just for smoothing the regulation.

 

I'm still new to the forum here, but very impressed with how far the participants have "explored" with the firmware and hardware!

     Patch location 2: 0x3E3175: 5232 -> 5205 Cmp AL,#50 -> Cmp AL, #5

The change only affects the comparison value. Since I haven't read enough in the forum and don't know the code, I don't know what exactly the comparison does??

Without having deep insight (!!), I would recommend making the start value of the MPPT controller variable, so that one could adapt to Voc of the PV field. voltronicpower would of course be responsible for this.

Unfortunately, the MPPT control seems to be programmed somewhat "simply"! Actually, the "clamping" to 90V should not happen at all...


Greetings from Northern Germany
(I have some snow on the PV panels)

 

2 hours ago, Georg594 said:

The minimum changes to get it work as ist should is:

That sounds pretty authoritative, from someone who actually owns one of these inverters.

So I guess my minimalist patch is doomed to fail.

 

Since I haven't read enough in the forum and don't know the code, I don't know what exactly the comparison does??

Ok, we'll see how your assembly language skills go. One of the main functions involved is MPPTControl(); there is a cut and paste copy for MPPT2. Here is MPPTControl() for factory firmware version 56.05. About the last half of the function is a switch statement, implemented as a skip chain. You can largely ignore that.

Really quick instruction set overview: SP is the stack pointer, AL is ACCumulator low half (16 bits), DP is a data page register (stores the upper 16 bits of the 22-bit address of some variables), NEQ = NotEQual, HIS is HIgher or Same, add/mov/cmp/dec are hopefully obvious. Destination first, third operand  if present is a conditional move qualifier. bf = branch fast. The "b" in cmpb refers to the size of the immediate operand, not the size of the value being compared. Stack grows upwards (higher addresses).

The call to MPPTTrack() seems to figure out the maximum power point; the rest of this function seems to be about butchering that value.

You'll have a hundred questions, don't be shy about asking.

[ Edit: Detailed disassembly redacted. I don't want to trigger any bad reactions from Voltronic engineers, should they come across these posts. ]

 

.

Edited by Coulomb
Redacted as noted.

33 minutes ago, Coulomb said:

Ok, we'll see how your assembly language skills go. One of the main functions involved is MPPTControl(); there is a cut and paste copy for MPPT2. Here is MPPTControl() for factory firmware version 56.05. About the last half of the function is a switch statement, implemented as a skip chain. You can largely ignore that.

Really quick instruction set overview: SP is the stack pointer, AL is ACCumulator low half (16 bits), DP is a data page register (stores the upper 16 bits of the 22-bit address of some variables), NEQ = NotEQual, HIS is HIgher or Same, add/mov/cmp/dec are hopefully obvious. Destination first, third operand  if present is a conditional move qualifier. bf = branch fast. The "b" in cmpb refers to the size of the immediate operand, not the size of the value being compared. Stack grows upwards (higher addresses).

The call to MPPTTrack() seems to figure out the maximum power point; the rest of this function seems to be about butchering that value.

You'll have a hundred questions, don't be shy about asking.

.text:003E3152                           .global _sMPPTControl
.text:003E3152           _sMPPTControl:  .asmfunc                ; CODE XREF: _sBusBatProtectTask+10D↑p
.text:003E3152
.text:003E3152           .asg -1, newCur1FwdConst
.text:003E3152           .asg -2, newVoltRef
.text:003E3152           .asg -3, boostCtrlSts
.text:003E3152
.text:003E3152 FE04                      addb    SP,#4
.text:003E3153 9641                      mov     *-SP[4+boostCtrlSts],AL
.text:003E3154 5202                      cmpb    AL,#2
.text:003E3155 56C0 0095                 bf      mcElseNotBoostStat2,NEQ
.text:003E3157           ;
.text:003E3157           ; Boost control status == 2: SCC active
.text:003E3157           ;
.text:003E3157 761F 0265                 movw    DP,#_s_uwMPPT1DelayCnt$18 ; 9940
.text:003E3159 0B07                      dec     @_s_uwMPPT1DelayCnt$18
.text:003E315A 56C0 0088                 bf      mcElseNotCnt0,NEQ
.text:003E315C           ;
.text:003E315C           ; Here every 50 calls: once per second
.text:003E315C           ;
.text:003E315C 56BF 3207                 movb    @_s_uwMPPT1DelayCnt$18,#50,UNC
.text:003E315E           ; Previous reference:
.text:003E315E 932B                      mov     AH,@_g_wSolarVoltRef
.text:003E315F 9A00                      movb    AL,#0
.text:003E3160 767E 32A0                 lcr     _swMPPTTrack
.text:003E3162 9642                      mov     *-SP[4+newVoltRef],AL
.text:003E3163           ;
.text:003E3163 761F 0266                 movw    DP,#_g_wR_Boost1_PWM ; 9980
.text:003E3165 9215                      mov     AL,@_g_wR_Boost1_PWM
.text:003E3166 5232                      cmpb    AL,#50
.text:003E3167 630B                      sb      $C$L171,GEQ
.text:003E3168           ;
.text:003E3168           ; Here if PWM presently < 50
.text:003E3168 761F 0264                 movw    DP,#_g_uwSolarVoltAvg ; 9900
.text:003E316A 922E                      mov     AL,@_g_uwSolarVoltAvg
.text:003E316B 761F 0265                 movw    DP,#_g_wSolarVoltRef ; 9940
.text:003E316D 9C32                      addb    AL,#50
.text:003E316E 542B                      cmp     AL,@_g_wSolarVoltRef
.text:003E316F 6703                      sb      $C$L171,HIS
.text:003E3170           ;
.text:003E3170           ; (Present PV voltage + 5.0V) <u newVoltRef
.text:003E3170           ; Just use a reference of 10.0 V!!
.text:003E3170           ;
.text:003E3170 9A64                      movb    AL,#100
.text:003E3171 7442                      sub     *-SP[4+newVoltRef],AL
.text:003E3172
.text:003E3172           $C$L171:                                ; CODE XREF: _sMPPTControl+15↑j
.text:003E3172                                                   ; _sMPPTControl+1Dj
.text:003E3172 761F 0265                 movw    DP,#_g_uwSolarCurr1Avg ; 9940
.text:003E3174 9235                      mov     AL,@_g_uwSolarCurr1Avg
.text:003E3175           ; Original firmware compared current with 0.50A
.text:003E3175           ; Georg594 changes this to 5, i.e. 0.05A !!
.text:003E3175 5232                      cmpb    AL,#50          ; Georg patched 50->5
.text:003E3176 671B                      sb      mcElseNotCurrLtH,HIS
.text:003E3177           ;
.text:003E3177           ; Present current is < 0.50A
.text:003E3177 761F 0266                 movw    DP,#_g_wR_Boost1_PWM ; 9980
.text:003E3179 1B15 0516                 cmp     @_g_wR_Boost1_PWM,#1302
.text:003E317B 630B                      sb      $C$L172,GEQ
.text:003E317C           ;
.text:003E317C           ; Present current is < 0.5A but PWM is <s 1302
.text:003E317C           ; Use the present solar voltage less 5.0V always!?
.text:003E317C
.text:003E317C           ; I suspect that this is a bug: solar PV can get stuck
.text:003E317C           ; with about 99V PV and just under 0.5A
.text:003E317C 761F 0264                 movw    DP,#_g_uwSolarVoltAvg ; 9900
.text:003E317E 922E                      mov     AL,@_g_uwSolarVoltAvg
.text:003E317F 9642                      mov     *-SP[4+newVoltRef],AL
.text:003E3180 9A32                      movb    AL,#50
.text:003E3181 7442                      sub     *-SP[4+newVoltRef],AL
.text:003E3182 761F 0266                 movw    DP,#_g_wBoostMPPTDirection ; 9980
.text:003E3184 2B38                      mov     @_g_wBoostMPPTDirection,#0
.text:003E3185 6F16                      sb      mcEndifsCurr,UNC
.text:003E3186           ; ---------------------------------------------------------------------------
.text:003E3186           ;
.text:003E3186           ; Present current is < 0.5A and PWM is already >= 1302
.text:003E3186
.text:003E3186           $C$L172:                                ; CODE XREF: _sMPPTControl+29↑j
.text:003E3186 9AC8                      movb    AL,#200
.text:003E3187 761F 0264                 movw    DP,#_g_uwSolarVoltAvg ; 9900
.text:003E3189 9442                      add     AL,*-SP[4+newVoltRef]
.text:003E318A 542E                      cmp     AL,@_g_uwSolarVoltAvg
.text:003E318B 6710                      sb      mcEndifsCurr,HIS
.text:003E318C           ;
.text:003E318C           ; Here if newRef+20 < presentV, i.e. rocketing down
.text:003E318C           ; Use presentV - 20.0V (limit ramping down to 20V/s
.text:003E318C 9BC8                      movb    AH,#200
.text:003E318D 922E                      mov     AL,@_g_uwSolarVoltAvg
.text:003E318E 9EA8                      sub     AL,@AH
.text:003E318F 9642                      mov     *-SP[4+newVoltRef],AL
.text:003E3190 6F0B                      sb      mcEndifsCurr,UNC
.text:003E3191           ; ---------------------------------------------------------------------------
.text:003E3191           ;
.text:003E3191           ; Current is > 0.50A
.text:003E3191
.text:003E3191           mcElseNotCurrLtH:                       ; CODE XREF: _sMPPTControl+24↑j
.text:003E3191 9AC8                      movb    AL,#200
.text:003E3192 761F 0264                 movw    DP,#_g_uwSolarVoltAvg ; 9900
.text:003E3194 9442                      add     AL,*-SP[4+newVoltRef]
.text:003E3195           ; AL has new ref PV voltage + 20.0V
.text:003E3195 542E                      cmp     AL,@_g_uwSolarVoltAvg
.text:003E3196           ; Branch if newRef+20 >= presentV
.text:003E3196 6705                      sb      mcEndifsCurr,HIS
.text:003E3197           ;
.text:003E3197           ; Here if newRef+20 < presentV, i.e. rocketing down
.text:003E3197           ; Use presentV - 20.0V (limit ramping down to 20V/s
.text:003E3197 9BC8                      movb    AH,#200
.text:003E3198 922E                      mov     AL,@_g_uwSolarVoltAvg
.text:003E3199 9EA8                      sub     AL,@AH
.text:003E319A 9642                      mov     *-SP[4+newVoltRef],AL
.text:003E319B
.text:003E319B           mcEndifsCurr:                           ; CODE XREF: _sMPPTControl+33↑j
.text:003E319B                                                   ; _sMPPTControl+39↑j ...
.text:003E319B 767E 4931                 lcr     _swGetEEPVMPPTHighLoss
.text:003E319D 5442                      cmp     AL,*-SP[4+newVoltRef]
.text:003E319E           ; Branch if high loss >= ret val
.text:003E319E           ; i.e. ret val <= high loss
.text:003E319E 6305                      sb      mcElseNotRetGtHighLoss,GEQ
.text:003E319F           ;
.text:003E319F           ; Here if higher than high loss
.text:003E319F           ; Use high loss
.text:003E319F 767E 4931                 lcr     _swGetEEPVMPPTHighLoss
.text:003E31A1 9642                      mov     *-SP[4+newVoltRef],AL
.text:003E31A2 6F08                      sb      mcEndifsLoss,UNC
.text:003E31A3           ; ---------------------------------------------------------------------------
.text:003E31A3
.text:003E31A3           mcElseNotRetGtHighLoss:                 ; CODE XREF: _sMPPTControl+4C↑j
.text:003E31A3 767E 493D                 lcr     _swGetEEPVMPPTLowLoss ; Patched was 90.0V now 200.0V
.text:003E31A5 5442                      cmp     AL,*-SP[4+newVoltRef]
.text:003E31A6 6504                      sb      mcEndifsLoss,LEQ
.text:003E31A7 767E 493D                 lcr     _swGetEEPVMPPTLowLoss ; Patched was 90.0V now 200.0V
.text:003E31A9 9642                      mov     *-SP[4+newVoltRef],AL
.text:003E31AA           ;
.text:003E31AA           ; Copy the calculated new reference to the actual reference
.text:003E31AA           ;
.text:003E31AA
.text:003E31AA           mcEndifsLoss:                           ; CODE XREF: _sMPPTControl+50↑j
.text:003E31AA                                                   ; _sMPPTControl+54↑j
.text:003E31AA 3B10                      dint
.text:003E31AB 9242                      mov     AL,*-SP[4+newVoltRef]
.text:003E31AC 761F 0265                 movw    DP,#_g_wSolarVoltRef ; 9940
.text:003E31AE           ; If boost control status is 2, this will be the basis for setting
.text:003E31AE           ;  the Boost1 PWM in BoostControl()
.text:003E31AE 962B                      mov     @_g_wSolarVoltRef,AL
.text:003E31AF 2910                      eint
.text:003E31B0           ;
.text:003E31B0           ; Set a new forward current constant, based on
.text:003E31B0           ; the present current
.text:003E31B0           ; There are more compares than in 45.07, and lower values for the ones
.text:003E31B0           ;  in common
.text:003E31B0 9235                      mov     AL,@_g_uwSolarCurr1Avg
.text:003E31B1           ; Patched 200->35 ?!
.text:003E31B1 52C8                      cmpb    AL,#200
.text:003E31B2 56B8 0D43                 movb    *-SP[4+newCur1FwdConst],#13,LO
.text:003E31B4 6825                      sb      $C$L177,LO
.text:003E31B5 1B35 012C                 cmp     @_g_uwSolarCurr1Avg,#300
.text:003E31B7 56B8 1543                 movb    *-SP[4+newCur1FwdConst],#21,LO
.text:003E31B9 6820                      sb      $C$L177,LO
.text:003E31BA 1B35 0190                 cmp     @_g_uwSolarCurr1Avg,#400
.text:003E31BC 56B8 1D43                 movb    *-SP[4+newCur1FwdConst],#29,LO
.text:003E31BE 681B                      sb      $C$L177,LO
.text:003E31BF 1B35 01F4                 cmp     @_g_uwSolarCurr1Avg,#500
.text:003E31C1 56B8 2543                 movb    *-SP[4+newCur1FwdConst],#37,LO
.text:003E31C3 6816                      sb      $C$L177,LO
.text:003E31C4 1B35 0258                 cmp     @_g_uwSolarCurr1Avg,#600
.text:003E31C6 56B8 2D43                 movb    *-SP[4+newCur1FwdConst],#45,LO
.text:003E31C8 6811                      sb      $C$L177,LO
.text:003E31C9 1B35 02BC                 cmp     @_g_uwSolarCurr1Avg,#700
.text:003E31CB 56B8 3543                 movb    *-SP[4+newCur1FwdConst],#53,LO
.text:003E31CD 680C                      sb      $C$L177,LO
.text:003E31CE 1B35 0320                 cmp     @_g_uwSolarCurr1Avg,#800
.text:003E31D0 56B8 3D43                 movb    *-SP[4+newCur1FwdConst],#61,LO
.text:003E31D2 6807                      sb      $C$L177,LO
.text:003E31D3 1B35 0384                 cmp     @_g_uwSolarCurr1Avg,#900
.text:003E31D5 56B8 4543                 movb    *-SP[4+newCur1FwdConst],#69,LO
.text:003E31D7 56B7 4D43                 movb    *-SP[4+newCur1FwdConst],#77,HIS
.text:003E31D9
.text:003E31D9           $C$L177:                                ; CODE XREF: _sMPPTControl+62↑j
.text:003E31D9                                                   ; _sMPPTControl+67↑j ...
.text:003E31D9 9243                      mov     AL,*-SP[4+newCur1FwdConst]
.text:003E31DA 761F 0264                 movw    DP,#_g_wKCurrent1Forward ; 9900
.text:003E31DC 541F                      cmp     AL,@_g_wKCurrent1Forward
.text:003E31DD EC1C                      sbf     mcExit,EQ
.text:003E31DE 3B10                      dint
.text:003E31DF 961F                      mov     @_g_wKCurrent1Forward,AL
.text:003E31E0 2910                      eint
.text:003E31E1 6F18                      sb      mcExit,UNC
.text:003E31E2           ; ---------------------------------------------------------------------------
.text:003E31E2           ;
.text:003E31E2           ; Here 49/50 calls
.text:003E31E2           ;
.text:003E31E2
.text:003E31E2           mcElseNotCnt0:                          ; CODE XREF: _sMPPTControl+8↑j
.text:003E31E2 761F 0264                 movw    DP,#_g_uwSolarPower1Avg ; 9900
.text:003E31E4 0E32                      movu    ACC,@_g_uwSolarPower1Avg
.text:003E31E5 761F 0267                 movw    DP,#_g_udwSolarPowerAcc ; 99C0
.text:003E31E7 5601 0008                 addl    @_g_udwSolarPowerAcc,ACC
.text:003E31E9 6F10                      sb      mcExit,UNC
.text:003E31EA           ; ---------------------------------------------------------------------------
.text:003E31EA           ;
.text:003E31EA           ; Boost control status is not 2.
.text:003E31EA           ; Defaults.
.text:003E31EA           ;
.text:003E31EA
.text:003E31EA           mcElseNotBoostStat2:                    ; CODE XREF: _sMPPTControl+3↑j
.text:003E31EA 761F 0265                 movw    DP,#_s_uwMPPT1DelayCnt$18 ; 9940
.text:003E31EC 56BF 3207                 movb    @_s_uwMPPT1DelayCnt$18,#50,UNC
.text:003E31EE 0200                      movb    ACC,#0
.text:003E31EF 761F 0267                 movw    DP,#_g_udwSolarPowerAcc ; 99C0
.text:003E31F1 1E08                      movl    @_g_udwSolarPowerAcc,ACC
.text:003E31F2 1E10                      movl    @_g_udwSolarPowerAccPre,ACC
.text:003E31F3 761F 0266                 movw    DP,#_g_wBoostMPPTSetp ; 9980
.text:003E31F5 56BF 0A3C                 movb    @_g_wBoostMPPTSetp,#10,UNC
.text:003E31F7 2B38                      mov     @_g_wBoostMPPTDirection,#0
.text:003E31F8 2B36                      mov     @_g_wBoostMPPTDirectionPre,#0
.text:003E31F9
.text:003E31F9           mcExit:                                 ; CODE XREF: _sMPPTControl+8B↑j
.text:003E31F9                                                   ; _sMPPTControl+8F↑j ...
.text:003E31F9 FE84                      subb    SP,#4
.text:003E31FA FF69                      spm     0
.text:003E31FB 0006                      lretr

[ Edit: I transferred a heap of comments over from a better-commented disassembly. ]

 

.

Short interim status: I have only flashed the update in my inverter 1. Inverter 2 has an identical PV field at PV1. Since I have restarted everything and it is shortly after noon, the MPPTs are not stuck. I have to watch it - it will be dark here in 4 hours. I don't see any difference yet...

image.png.dcddfcf1f1b3661a056d26ccb9c5afff.png

Next:I quickly skimmed the code. Of course, I only understand it partially - my wooden relays don't switch so quickly...
The patch makes sense. I think the value has to be only slightly larger than the measurement error. It could be that they set such a high value because they don't trust the current measurement.

48 minutes ago, Volker said:
I suspect that this is a bug: solar PV can get stuck
.text:003E317C           ; with about 99V PV and just under 0.5A

It works - great + thank you - I have no more words for my joy.
The difference here is Inverter 1 PV1 (new firmware) 163W to Inverter 3 PV1 (old) 39W.
Inverter 5 PV 1 also jams but around 99V - this often happened before, also with other PV arrays. Are you right: "I suspect that this is a bug"? image.png.327d454af34e8a840339c58d88e9402d.png

1 hour ago, Coulomb said:

So I guess my minimalist patch is doomed to fail.

It works to my satisfaction! No problems with the update and 3 to 4 times more watts in the moment.
Please also patch the MPPT for PV2. I am very grateful for your efforts - great.

4 hours ago, Georg594 said:

 

The minimum changes to get it work as ist should is:

 

1 . The 90v limit rise to 120v.

2. The subtraction value down to zero.( @Coulomb you know what i mean )

 

The other tweaks are just for smoothing the regulation.

 

Nice to find people here who know so much about these inverters. Many thanks, also to you.

003E3175           ; Original firmware compared current with 0.50A
003E3175           ; Georg594 changes this to 5, i.e. 0.05A !!
003E3175 5232                      cmpb    AL,#50          ; Georg patched 50->5

2 minutes ago, Volker said:

No problems with the update and 3 to 4 times more watts in the moment.

That's quite pleasing. Though this is the best case scenario for demonstrating the bug: in the first set of data, the PV current is 0.47 A, just under the 0.50 A threshold.

I wonder if 0.05 A might be a bit low, making it hard to get started sometimes. But that can wait for another day.

1 minute ago, Volker said:

Nice to find people here who know so much about these inverters.

Nice to find good testers too. 10 MPPTs available for testing! Obviously, some have no panels.

Test this 😀

minimum pv mppt voltage is 120V .

this firmware 56.05 is nearly the same like my 8KW tweaked.

so here comes your 5605 with the main tweaks of the 8 KW firmware i made.

named it to 5606 .

 

@Volker

German brother 😀,

this elemimated code sequence will do original a minimum shade managment.

OG-10 DPS Reflash_5606.zip

20 minutes ago, Coulomb said:

10 MPPTs

The following PV fields are connected (alignment approx.):

Inverter 1 PV1 10 modules, almost horizontal, only 7° WSW
Inverter 1 PV2 4 modules, 35° WSW

Inverter 3 PV1 10 modules, almost horizontal, WSW
Inverter 3 PV2 10 modules, 35° ONO

Inverter 4 PV1 7 modules, 35° WSW
Inverter 4 PV2 10 modules, 35° ONO

Inverter 5 PV1 8 modules, 40° S

So two times 10 modules can be compared. I mounted all modules flat on existing roofs.
The picture shows the 4 and 7 WSW modules (during installation):

image.thumb.png.44a7cf3384065f53880d458856baa59c.png

Now it is getting dark outside:

image.png.6f43e17ef1c49443947ef9d71450e59d.png

35 minutes ago, Georg594 said:

so here comes your 5605 with the main tweaks of the 8 KW firmware i made.

Heh! Competition amongst patchers! 🙂🪡

Maybe you could flash 56.06 into some, and 156.05 into some others. Preferable one each on comparable pairs, though it might also be nice to compare with the original as well. I think you have enough strings to do this!

Edited by Coulomb

37 minutes ago, Georg594 said:

Test this 😀

minimum pv mppt voltage is 120V .

this firmware 56.05 is nearly the same like my 8KW tweaked.

so here comes your 5605 with the main tweaks of the 8 KW firmware i made.

named it to 5606 .

 

@Volker

German brother 😀,

this elemimated code sequence will do original a minimum shade managment.

OG-10 DPS Reflash_5606.zip 1.42 MB · 2 downloads

Even though I haven't understood the code properly (yet), I think there is still room for optimisation. The problem is that we never know what (or even if) the programmer has thought about...

Since I haven't read all the posts about the changes, I'd like to know what exactly everything fon you changed. I am both a curious and a cautious person. I also have to decide which inverter to use for testing and then interpret the result...

Greetings from the north (now unfortunately a bit grey and dark)

7 minutes ago, Coulomb said:

Heh! Competition amongst patchers! 🙂🪡

Maybe you could flash 56.06 into some, and 156.05 into the other. Preferable one each on comparable pairs, though it might also be nice to compare with the original as well. I think you have enough strings to do this!

Exactly, that's what I intend to do. Been thinking about it....
Thanks to both of you.
I will report back.

11 minutes ago, Coulomb said:

Heh! Competition amongst patchers! 🙂🪡

Maybe you could flash 56.06 into some, and 156.05 into some others. Preferable one each on comparable pairs, though it might also be nice to compare with the original as well. I think you have enough strings to do this!

Which controller is now installed in the 10k version? I'm still a bit confused...

2 hours ago, Georg594 said:

Test this 😀

minimum pv mppt voltage is 120V .

this firmware 56.05 is nearly the same like my 8KW tweaked.

so here comes your 5605 with the main tweaks of the 8 KW firmware i made.

named it to 5606 .

 

@Volker

German brother 😀,

this elemimated code sequence will do original a minimum shade managment.

OG-10 DPS Reflash_5606.zip 1.42 MB · 2 downloads

Have set myself a test strategy now:
OG-10 DSP Reflash_156.05 patched in to Inverter 1 and 5
OG-10 DPS Reflash_5606 patched in to Inverter 4
Inverter 3 stays on the original version as comparison.
It will take some time to make statements. We know that the original version is not good.

If I could make a request to you both, a file in the directory with the info would already be good (so I could also keep track). That way it would be perfect: see txt-file

This would also support my learning process...

Best regards

 

dsp 256.05 patched.txt

11 hours ago, Volker said:

Which controller is now installed in the 10k version? I'm still a bit confused...

156.05 is the same as 256.05, just with MPPT2 patched as well. The only MPPT patch in my files are the current threshold 0.50 A → 0.05 A.

By contrast, Georg's 56.06 has the full suite of patches: 120 V MPPT minimum instead of 90 V, the subtract 0, and the forward constant changes, for both MPPT1 and MPPT2.

Edit: I assume that @Georg594's patches won't have the premature float bug fix, which will make another point of contrast.

Edited by Coulomb

10 hours ago, Volker said:

If I could make a request to you both, a file in the directory with the info would already be good (so I could also keep track).

I realised that I forgot to save the last change to my .txt file, so I've updated the zip file with the slightly bigger .txt file, and I renamed the ..hex (double dot) file to .hex (single dot). There isn't much in the .txt file, but that's because my minimalist patch doesn't have many changes in it.

The .txt file is really more for my benefit than most readers, but in your case, you can actually understand it (in conjunction with the disassembly I posted earlier).

On 2022/12/02 at 4:58 PM, Volker said:

strategy now:
OG-10 DSP Reflash_156.05 patched in to Inverter 1 and 5
OG-10 DPS Reflash_5606 patched in to Inverter 4
Inverter 3 stays on the original version as comparison.

New strategy (so I can compare the patch files):

OG-10 DSP Reflash_5606 patched in to Inverter 1 and 5
OG-10 DPS Reflash_156.05 patched in to Inverter 3
Inverter 4 stays on the original version as comparison.

compare the patchs, Georg594 and Coulomb: Inverter 1 PV1 and Inverter 3 PV1

compare Coulomb patch with the Original: Inverter 3 PV2 and Inverter 4 PV2

On 2022/12/02 at 2:50 PM, Georg594 said:

Test this 😀

minimum pv mppt voltage is 120V .

this firmware 56.05 is nearly the same like my 8KW tweaked.

so here comes your 5605 with the main tweaks of the 8 KW firmware i made.

named it to 5606 .

 

@Volker

German brother 😀,

this elemimated code sequence will do original a minimum shade managment.

OG-10 DPS Reflash_5606.zip 1.42 MB · 3 downloads

Unfortunately, I have to say that even before the test started, I can see that none of the firmware works optimally. After each update, I switched the system on again. Shortly after switching on, I always have the highest PV power. After some time, however, the PV power decreases again. If I now switch from grid to battery mode, it increases again and then drops again shortly afterwards (from battery to grid mode has no effect). I noticed this earlier. None of this happens when the sun is shining.
From this I can already conclude that no firmware finds the optimal MPPT operating point at low PV power.

If you look at the curves of the PV modules, it would be better to have a fixed adjustable voltage for each PV field than a bad MPPT algorithm...

Let's wait for the results in the next few days.

I over V.JPG

On 2022/12/03 at 3:02 AM, Coulomb said:

I realised that I forgot to save the last change to my .txt file, so I've updated the zip file with the slightly bigger .txt file, and I renamed the ..hex (double dot) file to .hex (single dot). There isn't much in the .txt file, but that's because my minimalist patch doesn't have many changes in it.

The .txt file is really more for my benefit than most readers, but in your case, you can actually understand it (in conjunction with the disassembly I posted earlier).

 

On 2022/12/02 at 2:50 PM, Georg594 said:

Test this 😀

minimum pv mppt voltage is 120V .

this firmware 56.05 is nearly the same like my 8KW tweaked.

so here comes your 5605 with the main tweaks of the 8 KW firmware i made.

named it to 5606 .

 

@Volker

German brother 😀,

this elemimated code sequence will do original a minimum shade managment.

OG-10 DPS Reflash_5606.zip 1.42 MB · 3 downloads

 

On 2022/12/02 at 3:17 PM, Coulomb said:

Done.

 

After two days there are results.  I will explain some of the circumstances of the PV system in advance and then interpret the diagrams only briefly. Please write what you think about the values?

Today, on 5 December, from about 9:00 to 10:00 a.m., I changed my router (copper to glass) and the PC also had to be restarted - please do not pay attention to this time.
The diagrams always show the two comparable PV fields. Bold is the power and thin is the voltage.

Please note: The sun is about 25° above the horizon at noon. But we have a completely grey sky, little light penetrates the thick cloud cover and today there is fog and later rain. There is only indirect light and no rapid changes due to clouds. Therefore, we should expect a steady rise and fall of the power curves.

The following can be compared:  
a) Georg594 patch with Coulomb path: PV1 I1 and PV1 I3 (green and brown)
b) Coulomb patch with the Original FW: PV2 I3 and PV2 I4 (brown and red)

The PV fields have the same structure, but due to the low position of the sun, there is still a considerable amount of shading caused by trees.

I can see this:

1. The "morning and evening hole" must not exist. But you can see them every day on every PV field! If the MPPT controller were to work correctly from zero point, the output would have to rise and fall again continuously in these weather conditions. Of course, it will also wriggle more at low power levels, and the controller cannot work optimally close to zero...

2. The "peaks" show that much more power would be possible if the algorithm did not hold the voltage!

3. georg's path (green) in diagram "2022-12-04 Inverter 1 and 3.PNG" also shows what would be possible if the MPPT controller could be freed from its "Voltage hanging".

Two grey tags are of course only a small sample. But I can see that the problems are in the algorithm.

The changes can give an improvement under certain conditions, but the PV voltage will also be limited to values that are definitely too small. I see no reason why the MPPT controller leave power unused. Only with more PV power, everything works. With less light, optimal use would be important for me. The developers have obviously only tested in sunlight...

I have only skimmed the code so far. Can you find out why the voltage is held?

Can you find this point in the programme and then change it?

Best regards to both of you
Volker

2022-12-04 Inverter 1 and 3.PNG

2022-12-04 Inverter 3 and 4.PNG

2022-12-04 Inverter 3 and 4 peak.PNG

2022-12-05 Inverter 1 and 3.PNG

2022-12-05 Inverter 3 and 4.PNG

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.