December 2, 20223 yr 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.
December 2, 20223 yr 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)
December 2, 20223 yr 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.
December 2, 20223 yr 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 October 5, 20232 yr by Coulomb Redacted as noted.
December 2, 20223 yr 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+1D↑j .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...
December 2, 20223 yr 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.
December 2, 20223 yr 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"?
December 2, 20223 yr 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.
December 2, 20223 yr 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
December 2, 20223 yr 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.
December 2, 20223 yr 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
December 2, 20223 yr 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): Now it is getting dark outside:
December 2, 20223 yr 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 December 2, 20223 yr by Coulomb
December 2, 20223 yr 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)
December 2, 20223 yr 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.
December 2, 20223 yr 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...
December 2, 20223 yr 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
December 3, 20223 yr 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 December 3, 20223 yr by Coulomb
December 3, 20223 yr 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).
December 3, 20223 yr 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
December 3, 20223 yr 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.
December 5, 20223 yr 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
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.