Sunray modding Spielwiese

Ich glaube.. das Problem besteht bei @W1976 nur, weil er den mower sehr langsam fahren lässt. Der LP filter sorgt dann dafür, das er der Meinung ist da geht nix durch. Ich hatte das Problem auch schon!
Von welchem LP Filter sprichst du? Normal fährt mein Ardumower mit 0.25m/s, eingentlich nicht so langsam.
 
Zuletzt bearbeitet:
Mit dem Master war unnötig... Das Problem sitzt meistens vorm Rechner. Mein platformio workspace war kaputt... Er hat immer einen anderen Ordner für Alfred kompiliert und geflasht... *omg*

@W1976, in der Motor.cpp werden diverse Sensor Werte über einen LP-filter geglättet. Letztes Jahr hatte ich damit auch Probleme. Ich denke im Prinzip ist bei dir nichts kaputt. Je nach Hardware könnte es sein, das deine Ströme und Spannungsmessungen einen Offset haben. Wie ist dein idle Strom in der App, und wie ist er wenn er ohne last mäht?

Wenn es natürlich neuerdings ständig passiert, aber er im Prinzip mäht hast du vllt. Einen wackler and den Steckverbindungen?
Du kannst in der modversion debug motor.cpp an machen, dort werden die Messungen ausgegeben. DEBUG_MOTORCONTROL true

Du kannst den Mäher auch aufgebockt und am Laptop/pc lassen.
 
Zuletzt bearbeitet:
Mit dem Master war unnötig... Das Problem sitzt meistens vorm Rechner. Mein platformio workspace war kaputt... Er hat immer einen anderen Ordner für Alfred kompiliert und geflasht... *omg*

@W1976, in der Motor.cpp werden diverse Sensor Werte über einen LP-filter geglättet. Letztes Jahr hatte ich damit auch Probleme. Ich denke im Prinzip ist bei dir nichts kaputt. Je nach Hardware könnte es sein, das deine Ströme und Spannungsmessungen einen Offset haben. Wie ist dein idle Strom in der App, und wie ist er wenn er ohne last mäht?

Wenn es natürlich neuerdings ständig passiert, aber er im Prinzip mäht hast du vllt. Einen wackler and den Steckverbindungen?
Du kannst in der modversion debug motor.cpp an machen, dort werden die Messungen ausgegeben. DEBUG_MOTORCONTROL true

Du kannst den Mäher auch aufgebockt und am Laptop/pc lassen.
Ich schaue morgen Abend nach den von dir erwähnten Werte. Wie meinst du das mit der modversion? Was ist das genau?
Wackelkontakt werde ich auch mal absuchen. Die Ströme werden doch von der aufgesteckten Platine gemessen an der die Motortreiber angeschlossen sind, oder?
 
Ich will mal ganz vorsichtig nachfragen, benutzt hier jemand die originale .325 ? Falscher thread wahrscheinlich, aber vllt stolpert ja wer drüber? Würde mich interessieren.

Ich habe jetzt den dritten merge gemacht .. läuft so weit.. aber wieder watchdog.. ist zum heulen.
 
Selbst nachdem der Mower durch watchdogreset neu gestartet hat, kann Cassandra immer noch keine Verbindung aufbauen. Erst stromlos bringt es kurzzeitig. Wie verhext. Dabei zählt das new Connection Objekt permanent hoch.
 
Ich will mal ganz vorsichtig nachfragen, benutzt hier jemand die originale .325 ? Falscher thread wahrscheinlich, aber vllt stolpert ja wer drüber? Würde mich interessieren.

Ich habe jetzt den dritten merge gemacht .. läuft so weit.. aber wieder watchdog.. ist zum heulen.
Also ich nutze die originale 325. Woran erkenne ich einen watchdog reset?
 
Der Mäher bleibt nach einiger Zeit mitten beim Mähen liegen, so ca. nach 1-2 h und resettet. @KadaverJoe, du verwendest ja leider keinen Ardumower, sondern bist mit linux unterwegs. Ich schätze ich muss einfach weiter debuggen, vllt finde ich es ja XD
 
Wie es aussieht gibt es ein Speicherleck, selbst wenn der mower im idle am PC dranhängt. Ich habe eine längerer fahrt bis zum reset geloggt:

Code:
Info - LoopTime(ms) now=5 min=1 mean=3.01 max=11
0:4:53 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=171103 sp=2000004C bat=25.75,-0.005(1.55) chg=0.19,0(0.02) diff=-25.608 tg=-13.96,35.08 x=-13.33 y=35.22 delta=-2.92 tow=567508000 lon=12.30657277 lat=52.16900159 h=163.7 n=35.22 e=-13.32 d=9.14 sol=2 age=0.95
clearObstacles
dumpState:  X=-15.05 Y=34.69 delta=-2.77 mapCRC=1186566 mowPointsIdx=13 dockPointsIdx=1 freePointsIdx=1 wayMode=3 op=1 sensor=0 sonar.enabled=1 fixTimeout=120 absolutePosSource=0 lon=0.00 lat=0.00 pwmMow=185 finishAndRestart=0 motorMowForwardSet=1 dockAfterFinish=1
save state... ok
0:4:58 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=171103 sp=2000004C bat=25.78,-0.005(1.49) chg=0.17,0(0.02) diff=-25.607 tg=-17.62,33.66 x=-15.10 y=34.67 delta=-2.76 tow=567513000 lon=12.30654635 lat=52.16899518 h=163.7 n=34.67 e=-15.09 d=9.16 sol=2 age=0.29
Info - LoopTime(ms) now=3 min=1 mean=2.99 max=19
0:5:3 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=171103 sp=2000004C bat=25.79,-0.005(1.44) chg=0.18,0(0.02) diff=-25.622 tg=-17.62,33.66 x=-17.41 y=33.78 delta=-2.78 tow=567518000 lon=12.30651277 lat=52.16898884 h=163.6 n=33.81 e=-17.32 d=9.18 sol=2 age=0.99
clearObstacles
dumpState:  X=-18.87 Y=32.91 delta=-2.55 mapCRC=1186566 mowPointsIdx=14 dockPointsIdx=1 freePointsIdx=1 wayMode=3 op=1 sensor=0 sonar.enabled=1 fixTimeout=120 absolutePosSource=0 lon=0.00 lat=0.00 pwmMow=185 finishAndRestart=0 motorMowForwardSet=1 dockAfterFinish=1
save state... ok
0:5:8 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=171103 sp=2000004C bat=25.80,-0.005(1.43) chg=0.20,0(0.02) diff=-25.626 tg=-20.80,31.74 x=-18.92 y=32.88 delta=-2.55 tow=567523000 lon=12.30649041 lat=52.16897918 h=163.6 n=32.88 e=-18.93 d=9.22 sol=2 age=0.27
chassisTemp=29  cpuTemp=40
GPS time (UTC): dayOfWeek=sat  hour=13
AUTOSTOP: timetable is disabled
AUTOSTART: not defined DOCK_AUTO_START
Info - LoopTime(ms) now=3 min=1 mean=3.33 max=57
0:5:13 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=171103 sp=2000004C bat=25.78,-0.005(1.82) chg=0.18,0(0.02) diff=-25.617 tg=-20.80,31.74 x=-20.66 y=31.83 delta=-2.64 tow=567528000 lon=12.30646557 lat=52.16896964 h=163.7 n=31.83 e=-20.65 d=9.17 sol=2 age=2.35
clearObstacles
clearObstacles
clearObstacles
dumpState:  X=-21.71 Y=31.39 delta=-1.77 mapCRC=1186566 mowPointsIdx=17 dockPointsIdx=1 freePointsIdx=1 wayMode=3 op=1 sensor=0 sonar.enabled=1 fixTimeout=120 absolutePosSource=0 lon=0.00 lat=0.00 pwmMow=185 finishAndRestart=0 motorMowForwardSet=1 dockAfterFinish=1
save state... ok
0:5:18 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=171103 sp=200000A4 bat=25.77,-0.005(1.58) chg=0.20,0(0.03) diff=-25.610 tg=-21.21,29.67 x=-21.71 y=31.40 delta=-1.66 tow=567533000 lon=12.30644960 lat=52.16896639 h=163.6 n=31.40 e=-21.71 d=9.18 sol=2 age=0.58
Info - LoopTime(ms) now=3 min=1 mean=3.00 max=21
0:5:23 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=171103 sp=2000004C bat=25.77,-0.005(2.03) chg=0.16,0(0.02) diff=-25.607 tg=-21.21,29.67 x=-21.26 y=29.93 delta=-1.35 tow=567538000 lon=12.30645597 lat=52.16895356 h=163.6 n=30.02 e=-21.28 d=9.23 sol=2 age=0.55
clearObstacles
dumpState:  X=-20.52 Y=28.65 delta=-0.91 mapCRC=1186566 mowPointsIdx=18 dockPointsIdx=1 freePointsIdx=1 wayMode=3 op=1 sensor=0 sonar.enabled=1 fixTimeout=120 absolutePosSource=0 lon=0.00 lat=0.00 pwmMow=185 finishAndRestart=0 motorMowForwardSet=1 dockAfterFinish=1
save state... ok
0:5:28 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=171103 sp=200000A4 bat=25.75,-0.005(2.13) chg=0.15,0(0.02) diff=-25.602 tg=-18.79,26.26 x=-20.48 y=28.62 delta=-0.92 tow=567543000 lon=12.30646796 lat=52.16894079 h=163.5 n=28.63 e=-20.48 d=9.30 sol=2 age=0.59
Info - LoopTime(ms) now=5 min=1 mean=3.01 max=21
0:5:33 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=171103 sp=2000004C bat=25.74,-0.005(1.87) chg=0.17,0(0.03) diff=-25.573 tg=-18.79,26.26 x=-19.25 y=26.92 delta=-0.91 tow=567548000 lon=12.30648559 lat=52.16892482 h=163.4 n=26.93 e=-19.26 d=9.41 sol=2 age=0.54
clearObstacles
clearObstacles
dumpState:  X=-18.26 Y=25.34 delta=-1.04 mapCRC=1186566 mowPointsIdx=20 dockPointsIdx=1 freePointsIdx=1 wayMode=3 op=1 sensor=0 sonar.enabled=1 fixTimeout=120 absolutePosSource=0 lon=0.00 lat=0.00 pwmMow=185 finishAndRestart=0 motorMowForwardSet=1 dockAfterFinish=1
save state... ok
0:5:38 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=160579 sp=2000004C bat=25.72,-0.006(2.09) chg=0.16,0(0.02) diff=-25.570 tg=-17.20,23.51 x=-18.23 y=25.29 delta=-1.04 tow=567553000 lon=12.30650078 lat=52.16891203 h=163.5 n=25.30 e=-18.23 d=9.34 sol=2 age=0.50
sending encryptMode=0 encryptChallenge=0
absolutePosSource=0 lon=0.00000000 lat=0.00000000
clearObstacles
GPS time (UTC): dayOfWeek=sat  hour=13
AUTOSTOP: timetable is disabled
AUTOSTART: not defined DOCK_AUTO_START
dumpState:  X=-17.18 Y=23.49 delta=-1.08 mapCRC=1186566 mowPointsIdx=21 dockPointsIdx=1 freePointsIdx=1 wayMode=3 op=1 sensor=0 sonar.enabled=1 fixTimeout=120 absolutePosSource=0 lon=0.00 lat=0.00 pwmMow=185 finishAndRestart=0 motorMowForwardSet=1 dockAfterFinish=1
save state... ok
Info - LoopTime(ms) now=3 min=1 mean=3.15 max=22
0:5:43 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=160579 sp=2000004C bat=25.71,-0.006(1.47) chg=0.19,0(0.03) diff=-25.543 tg=-16.45,22.84 x=-17.17 y=23.47 delta=-1.07 tow=567558000 lon=12.30651603 lat=52.16889603 h=163.5 n=23.50 e=-17.19 d=9.34 sol=2 age=0.35
clearObstacles
clearObstacles
dumpState:  X=-16.06 Y=22.28 delta=-1.10 mapCRC=1186566 mowPointsIdx=23 dockPointsIdx=1 freePointsIdx=1 wayMode=3 op=1 sensor=0 sonar.enabled=1 fixTimeout=120 absolutePosSource=0 lon=0.00 lat=0.00 pwmMow=185 finishAndRestart=0 motorMowForwardSet=1 dockAfterFinish=1
save state... ok



Nach einiger Zeit bis zum reset siehts dann so aus, da war dann schluss:

Code:
save state... ok
Info - LoopTime(ms) now=3 min=1 mean=3.12 max=22
0:29:34 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=27375 sp=2000004C bat=25.75,-0.004(1.30) chg=0.23,0(0.07) diff=-25.480 tg=-2.74,23.31 x=-6.11 y=35.93 delta=-1.29 tow=568987800 lon=12.30667758 lat=52.16900801 h=163.7 n=36.00 e=-6.13 d=9.13 sol=2 age=0.55
0:29:39 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=27375 sp=200000A4 bat=25.75,-0.004(1.80) chg=0.25,0(0.08) diff=-25.503 tg=-2.74,23.31 x=-5.63 y=34.07 delta=-1.33 tow=568992800 lon=12.30668481 lat=52.16899196 h=163.6 n=34.14 e=-5.65 d=9.27 sol=2 age=0.19
GPS time (UTC): dayOfWeek=sat  hour=14
AUTOSTOP: timetable is disabled
AUTOSTART: not defined DOCK_AUTO_START
Info - LoopTime(ms) now=3 min=1 mean=3.02 max=8
0:29:44 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=27375 sp=200000A4 bat=25.75,-0.004(2.16) chg=0.25,0(0.08) diff=-25.509 tg=-2.74,23.31 x=-5.02 y=31.87 delta=-1.34 tow=568997800 lon=12.30669361 lat=52.16897284 h=163.5 n=31.94 e=-5.04 d=9.30 sol=2 age=0.49
0:29:49 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=27375 sp=2000004C bat=25.72,-0.004(2.06) chg=0.22,0(0.08) diff=-25.501 tg=-2.74,23.31 x=-4.41 y=29.62 delta=-1.29 tow=569002800 lon=12.30670237 lat=52.16895038 h=163.5 n=29.70 e=-4.43 d=9.36 sol=2 age=0.08
Info - LoopTime(ms) now=3 min=1 mean=2.99 max=11
0:29:54 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=27375 sp=2000004C bat=25.71,-0.005(1.85) chg=0.23,0(0.08) diff=-25.486 tg=-2.74,23.31 x=-3.81 y=27.25 delta=-1.32 tow=569007800 lon=12.30671116 lat=52.16893121 h=163.4 n=27.34 e=-3.83 d=9.38 sol=2 age=0.63
ERROR motor overload (average current too high) - duration=0  avg current amps (left,right,mow)=0.33,0.24,2.23
0:29:59 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=27375 sp=200000A4 bat=25.68,-0.005(1.97) chg=0.23,0(0.07) diff=-25.470 tg=-2.74,23.31 x=-3.27 y=25.34 delta=-1.30 tow=569012800 lon=12.30671922 lat=52.16891202 h=163.4 n=25.41 e=-3.29 d=9.42 sol=2 age=0.64
Info - LoopTime(ms) now=5 min=1 mean=3.00 max=11
0:30:4 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=27375 sp=2000004C bat=25.67,-0.005(1.94) chg=0.24,0(0.07) diff=-25.449 tg=-2.74,23.31 x=-2.79 y=23.38 delta=-1.26 tow=569017800 lon=12.30672643 lat=52.16889600 h=163.4 n=23.41 e=-2.80 d=9.41 sol=2 age=0.58
clearObstacles
clearObstacles
dumpState:  X=-2.98 Y=23.26 delta=2.27 mapCRC=1186566 mowPointsIdx=169 dockPointsIdx=1 freePointsIdx=1 wayMode=3 op=1 sensor=0 sonar.enabled=1 fixTimeout=120 absolutePosSource=0 lon=0.00 lat=0.00 pwmMow=185 finishAndRestart=0 motorMowForwardSet=1 dockAfterFinish=1
save state... ok
0:30:9 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=27375 sp=2000004C bat=25.72,-0.005(1.15) chg=0.28,0(0.08) diff=-25.451 tg=-6.45,36.28 x=-2.97 y=23.26 delta=1.90 tow=569022800 lon=12.30672396 lat=52.16889283 h=163.4 n=23.26 e=-2.97 d=9.39 sol=2 age=0.52
baums@ARDUMOWER-ZERO:~ $
 
Es dauert periodisch ca. 6 minuten bis zu einem Speichersprung,solange bis der reset kommt :(
Der roboter ist am rechner und idled da umher.

0:17:59 ctlDur=0.02 op=Idle(initiatedByOperator 1) freem=120059 sp=200000A4 bat=26.08,-0.001(0.44) chg=0.12,0(0.01) diff=-25.957 tg=0.00,0.00 x=6.79 y=1.12 delta=1.25 tow=574859600 lon=12.30686638 lat=52.16869439 h=166.6 n=1.12 e=6.79 d=6.25 sol=1 age=1.65
Info - LoopTime(ms) now=2 min=2 mean=3.01 max=18
0:18:4 ctlDur=0.02 op=Idle(initiatedByOperator 1) freem=85355 sp=200000A4 bat=26.08,-0.001(0.42) chg=0.10,0(0.00) diff=-25.964 tg=0.00,0.00 x=6.76 y=1.13 delta=1.25 tow=574864600 lon=12.30686640
lat=52.16869441 h=166.6 n=1.13 e=6.76 d=6.24 sol=1 age=0.17

6 minuten später:

0:23:54 ctlDur=0.02 op=Idle(initiatedByOperator 1) freem=85355 sp=200000A4 bat=26.05,-0.001(0.44) chg=0.12,0(0.01) diff=-25.938 tg=0.00,0.00 x=6.42 y=1.17 delta=1.28 tow=575214800 lon=12.30686076 lat=52.16869444 h=166.1 n=1.17 e=6.42 d=6.73 sol=1 age=0.67
0:23:59 ctlDur=0.02 op=Idle(initiatedByOperator 1) freem=39067 sp=200000A4 bat=26.05,-0.001(0.44) chg=0.14,0(0.01) diff=-25.934 tg=0.00,0.00 x=6.43 y=1.17 delta=1.28 tow=575220000 lon=12.30686161 lat=52.16869437 h=166.1 n=1.17 e=6.43 d=6.72 sol=1 age=1.44
Info - LoopTime(ms) now=3 min=2 mean=3.00 max=19
0:24:4 ctlDur=0.02 op=Idle(initiatedByOperator 1) freem=39067 sp=2000004C bat=26.05,-0.001(0.43) chg=0.12,0(0.01) diff=-25.936 tg=0.00,0.00 x=6.44 y=1.17 delta=1.28 tow=575225000 lon=12.30686159
lat=52.16869439 h=166.1 n=1.17 e=6.44 d=6.71 sol=1 age=0.64


Der nächste sprung wird zum reset führen. Jap, ca. 6 minuten.
 
Ein ähnliches Thema hatten wir, ich glaube von 1.0.272 auf die nächste Version wurde es behoben, eventuell hast du bei der Modding FW das nicht sauber übernommen, ich muss mal suchen wo wir über das Thema diskutiert haben
 
ich denke, ich bin der sache auf der spur....


Code:
memory --------------> 62/256 kB <-------------- finish
memory CHECKPOINT 1 -> 62/256 kB
memory CHECKPOINT 2 -> 62/256 kB
memory CHECKPOINT 3 -> 62/256 kB
memory CHECKPOINT 4 -> 62/256 kB
memory CHECKPOINT 5 -> 62/256 kB
memory CHECKPOINT 6 -> 62/256 kB
memory CHECKPOINT 7 -> 62/256 kB
memory CHECKPOINT 8 -> 62/256 kB
memory CHECKPOINT 9 -> 62/256 kB
memory CHECKPOINT10 -> 62/256 kB
memory CHECKPOINT11 -> 69/256 kB
memory CHECKPOINT12 -> 69/256 kB
memory CHECKPOINT13 -> 69/256 kB
memory CHECKPOINT14 -> 69/256 kB
memory CHECKPOINT15 -> 69/256 kB
memory CHECKPOINT20 -> 69/256 kB
memory --------------> 69/256 kB <-------------- finish

Zwischen 10/11 kommt gps.run 😈
 
Ich habe den memoryleak in der ublox.cpp gefunden, die ublox etc ist unverändert, das habe ich extra noch überprüft. Der receiver funktioniert gerade nicht, heisst er bekommt keine korrektur weil
ich die firmware auf 1.52 geupdatet habe, die base ist noch auf 1.32. Denke das spielt aber keine Rolle, ausser das der Speicher jetzt etwas schneller überläuft.
Anscheinend wird der String einfach immer grösser..... das Parsing funktioniert nicht. Der String wird von crap nicht befreit. Keine Ahnung warum der nicht einfach resetted wird??

CONSOLE.print("memory CHECKPOINT 1 -> ");
CONSOLE.print(256 - (freeMemory()/1024));
CONSOLE.println("/256 kB");


if (debug) CONSOLE.print(b, HEX);
if (debug) CONSOLE.print(",");

if ( (this->state == GOT_NONE) || (this->state == GOT_SYNC1) ) {

char ch = char(b);
if (ch == '$') unparsedMessage = "";
CONSOLE.print("memory CHECKPOINT1+ -> ");
CONSOLE.print(256 - (freeMemory()/1024));
CONSOLE.println("/256 kB");
unparsedMessage += ch;
CONSOLE.print("memory CHECKPOINT2- -> ");
CONSOLE.print(256 - (freeMemory()/1024));
CONSOLE.println("/256 kB");
if ((ch == '\r') || (ch == '\n')) {
//CONSOLE.println(unparsedMessage);
if (unparsedMessage.startsWith("$GNGGA")) {
nmeaGGAMessage = unparsedMessage;
nmeaGGAMessage.trim();
}
unparsedMessage = "";
}
CONSOLE.print("memory CHECKPOINT 2 -> ");
CONSOLE.print(256 - (freeMemory()/1024));
CONSOLE.println("/256 kB");


Die log-ausgabe entsprechend:

memory CHECKPOINT 1 -> 49/256 kB
memory CHECKPOINT10 -> 49/256 kB
memory CHECKPOINT 1 -> 49/256 kB
memory CHECKPOINT11 -> 49/256 kB
memory CHECKPOINT 1 -> 49/256 kB
memory CHECKPOINT1+ -> 49/256 kB
memory CHECKPOINT2- -> 49/256 kB
memory CHECKPOINT 2 -> 49/256 kB
memory CHECKPOINT 3 -> 49/256 kB
memory CHECKPOINT 1 -> 49/256 kB
memory CHECKPOINT1+ -> 49/256 kB
memory CHECKPOINT2- -> 52/256 kB

memory CHECKPOINT 2 -> 52/256 kB
memory CHECKPOINT 4 -> 52/256 kB
memory CHECKPOINT 1 -> 52/256 kB
memory CHECKPOINT 5 -> 52/256 kB
memory CHECKPOINT 1 -> 52/256 kB
memory CHECKPOINT 6 -> 52/256 kB
memory CHECKPOINT 1 -> 52/256 kB


Hier die Stelle nochmal als Code:

Code:
if ( (this->state == GOT_NONE) || (this->state == GOT_SYNC1) ) {
   
    char ch = char(b);
    if (ch == '$') unparsedMessage = "";
    CONSOLE.print("memory CHECKPOINT1+ -> ");
    CONSOLE.print(256 - (freeMemory()/1024));
    CONSOLE.println("/256 kB");
    unparsedMessage += ch;
    CONSOLE.print("memory CHECKPOINT2- -> ");
    CONSOLE.print(256 - (freeMemory()/1024));
    CONSOLE.println("/256 kB");
    if ((ch == '\r') || (ch == '\n')) {
      //CONSOLE.println(unparsedMessage);
      if (unparsedMessage.startsWith("$GNGGA")) {
        nmeaGGAMessage = unparsedMessage;
        nmeaGGAMessage.trim();
      }
      unparsedMessage = "";
    }
  CONSOLE.print("memory CHECKPOINT 2 -> ");
  CONSOLE.print(256 - (freeMemory()/1024));
  CONSOLE.println("/256 kB");
  }
 
Zuletzt bearbeitet:
Ich habe folgendes gemacht, weil ungeparsde messages eh für die tonne sind (hoffe ich) ... oder die werden getrimmt und dann doch verwendet.. keine Ahnung.

Hab jetz das eingefügt und ab start des mowers bleibt die speichernutzung bei 37kB, vorher hat es sofort angefangen um ein paar Kb zu steigen und später mit der zeit immer größere sprünge bis 40kB zu machen:

Code:
if ( (this->state == GOT_NONE) || (this->state == GOT_SYNC1) ) {
  
    char ch = char(b);
    if (ch == '$') unparsedMessage = "";
    CONSOLE.print("memory CHECKPOINT1+ -> ");
    CONSOLE.print(256 - (freeMemory()/1024));
    CONSOLE.println("/256 kB");
    unparsedMessage += ch;
    CONSOLE.print("memory CHECKPOINT2- -> ");
    CONSOLE.print(256 - (freeMemory()/1024));
    CONSOLE.println("/256 kB");
    if ((ch == '\r') || (ch == '\n')) {
      //CONSOLE.println(unparsedMessage);
      if (unparsedMessage.startsWith("$GNGGA")) {
        nmeaGGAMessage = unparsedMessage;
        nmeaGGAMessage.trim();
      }
      unparsedMessage = "";
    } else {
      unparsedMessage = "";
    }
  CONSOLE.print("memory CHECKPOINT 2 -> ");
  CONSOLE.print(256 - (freeMemory()/1024));
  CONSOLE.println("/256 kB");
  }
 
Soooo, ich hab zum testen wieder die 1.30 auf den receiver gespielt und die obige Änderungen in der ublox.cpp. Hab jetzt wieder Korrektursignal und bisher stabilen Speicher :)
Morgen werd ich n Update machen, schöne Pfingsten!
 
Die .325 hat aktuell noch ein paar Bugs, aber läuft erstmal sehr gut :) KadaverJoe ist am testen für Alfred und anscheinend demnächst für seinen Alfred Husqvarna umbau (owlKit).
Sieht jedenfalls schonmal sehr gut mit der Ardumowerhardware aus!

Wer Interesse am mittesten hat, es gibt ein zweites repo im github von mir: SunrayMod.
In dem Test release sollte man aber noch den consolen Output für die ungeparsde Message in der ublox.cpp und den Header-include von reset.h löschen, dieser include war nur wegen der Erkennung des Speicherlecks notwendig.

Cheers :)
 
Soooo, ich hab zum testen wieder die 1.30 auf den receiver gespielt und die obige Änderungen in der ublox.cpp. Hab jetzt wieder Korrektursignal und bisher stabilen Speicher :)
Morgen werd ich n Update machen, schöne Pfingsten!
Welche Version hattest du vorher auf dem Receiver installiert gehabt?
 
Die Version spielt keine Rolle, die Base war nicht geupdated, also unterschiedliche version: Base: 1.30 Rover 1.52 --> geht nich, jedenfalls bei mir.
Vorher Base: 1.30 Rover 1.30, jetzt auch wieder base und rover 1.30

Achso, ohne jemanden gegen den kopf treten zu wollen: Die englischen erklärungen in der modsection: einfach mal kopieren und einen prompt bei chatgpt anfragen zu übersetzen!
 
Zuletzt bearbeitet:
Oben