AzuritBER - Einrichtung und Betrieb

@lichte Bekomme eine Fehlermeldung beim Kompilieren vom MowerWebControl_AzuritBer.

C:\Users\sefan\Desktop\Arduino\MowerWebControl_AzuritBer-main\MowerWebControl_ESP8266\MowerWebControl_ESP8266.ino: In function 'bool handleFileRead(String)':
MowerWebControl_ESP8266:554:42: error: 'getContentType' is not a member of 'esp8266webserver'; did you mean 'mime::getContentType'?
554 | String contentType = esp8266webserver::getContentType(path);
| ^~~~~~~~~~~~~~
In file included from C:\Users\sefan\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.1\libraries\ESP8266WebServer\src/ESP8266WebServer.h:32,
from C:\Users\sefan\Desktop\Arduino\MowerWebControl_AzuritBer-main\MowerWebControl_ESP8266\MowerWebControl_ESP8266.ino:2:
C:\Users\sefan\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.1\libraries\ESP8266WebServer\src/detail/mimetable.h:49:8: note: 'mime::getContentType' declared here
49 | String getContentType(const String& path);
| ^~~~~~~~~~~~~~
Bibliothek ESP8266WiFi in Version 1.0 im Ordner: C:\Users\sefan\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.1\libraries\ESP8266WiFi wird verwendet
Bibliothek ESP8266WebServer in Version 1.0 im Ordner: C:\Users\sefan\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.1\libraries\ESP8266WebServer wird verwendet
Bibliothek Ticker in Version 1.0 im Ordner: C:\Users\sefan\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.1\libraries\Ticker wird verwendet
exit status 1
'getContentType' is not a member of 'esp8266webserver'; did you mean 'mime::getContentType'?
 
Zuletzt bearbeitet:
First test 3 or 4 hours with mow motor deactivate (Into setting mow : force mowing OFF to YES and save setting).
If it's OK maybe a ferrite on wire can help.
 
Test ist running!
During the last mowing sessions, the imu was deactivated after a while.

After 70 minutes of testing, everything runs normal.
No faults.
 
Dann werde ich mal einen Ferritkern am Mähmotor-kabel versuchen.
Das nächste Problem taucht auf, wenn ich das Ladegerät anschließe. Dann gibt's einen RTC-Data Fehler und der IMU fällt aus.
Kann hier ein Kondensator helfen? Wie groß sollte der sein?
 
Mow Motor noise kill the I2C line.
Automatic IMU deactivation is possible by this way: In the firmware i test the IMU reading duration and if it's too long i deactivate IMU and continue to mow in safe mode .

If you have other GY-521 maybe you can test it with a shorter cable or at other location in the chassis.

I also see this issue on my DENNA , but randomly and only each 10 mowing session.
 
Next test in the morning... Lane mowing. (Yesterday in random mode)
After few minutes of lane mowing the mower switched to random mode. No message why in the console.?!

Okay, i'll try to shorten the cable and find a better place for the IMU.

Ferrit is installed, testing in the next days.
 
Du kannst auch noch die Leistung/Drehzahl des Messers etwas reduzieren (200/255). Bei mir sind damit die Sörungen zurückgegangen (außerdem Ferritkern, 3cm IMU-Kabel)
 
Leistung des Motors habe ich bereits auf 180 gedrosselt, ich mähe ja regelmäßig 😁
3cm Kabel... Da muss ich ja nur 27cm abschneiden 😁
Ist alles in Arbeit!
 
@Fürst Ruprecht :
The mow motor PWM speed is automatically adjusted according the cutting sense and it's a good practice to use a low PWM like 180 as minSpeed and 255 at max speed the battery duration increase a lot using this feature.

@SefanH :
The Arduremote console need to be open to see the message (It's only real time data ,nothing is recorded) using a PI is the solution for this and web interface.
A motor powermax generate what you see mower stop the wire mowing.
Certainly try to increase a little drive motor power max or check the console during the wire mowing.

For IMU maybe you can test to connect the IMU at I2C6 connector (do not forget the jumper) No pullup resistor on PCB1.3 at this location.
 
@SefanH :
The Arduremote console need to be open to see the message (It's only real time data ,nothing is recorded) using a PI is the solution for this and web interface.
A motor powermax generate what you see mower stop the wire mowing.
Certainly try to increase a little drive motor power max or check the console during the wire mowing.

For IMU maybe you can test to connect the IMU at I2C6 connector (do not forget the jumper) No pullup resistor on PCB1.3 at this location.
The wire mowing ist ok, but in lane mowing mode, the mower switched after a few minutes into the random mode. I'll try to have a look at the console output.
 
Now the wires are as short as possible. The Ferrit ring ist mounted and the IMU has find a new place.
Now ist time for the Gym and then i'll test the rest!

Last night i played with the "Sense Factor" slider in the battery menue. Now incorrect values are displayed. What's wrong?

In this Screenshot, the battery hast 29,1V. The current ist much too high displayed.

Screenshot_2021-09-09-10-25-52-058_au.com.forward.pfodApp.jpg
 
Zuletzt bearbeitet:
OK it's a bug.
The factory setting is 1.11 , but when you change it using PFOD you can only move from 9 to 12.
So the value after change can be less than 9
I change this into Git .
You can do it on your side into Pfod.cpp line 884
change the limit of the slider to 1 and 2.
Code:
 sendSlider("j08", F("Sense factor"), robot->batSenseFactor, "", 0.01,2, 1);
If you use PCB1.4 i don't know if it's OK with 1 and 2 ,you need totest and tell me.

The 3 factors have a low filter in the code (only 5 percent of the last reading value is add to the last one), so you need to wait 1 minutes each time you change the setting to have a stable result.

Code:
    double accel = 0.05;

    if (abs(batVoltage - batvolt) > 8)   batVoltage = batvolt; else batVoltage = (1.0 - accel) * batVoltage + accel * batvolt;
    if (abs(chgVoltage - chgvolt) > 8)   chgVoltage = chgvolt; else chgVoltage = (1.0 - accel) * chgVoltage + accel * chgvolt;
    if (abs(chgCurrent - curramp) > 0.4) chgCurrent = curramp; else chgCurrent = (1.0 - accel) * chgCurrent + accel * curramp; //Deaktiviert für Ladestromsensor berechnung

For the battery charging (IF YOU USE A LI-ION CHARGER) it's better to set the setting : battery is fully charged if current is below to 0 and leave the LI-ION CHARGER manage all the process. It's also good to have a BMS on the battery pack.

For the mowing , the console can show you what's append.

I think the mow motor noise perturb the GY-521 .
Into Lane mowing the mower stop and test the drift for 1 minute or more and if it's not OK the mowing change to random.
See IMU WIKI for the different setting delay.

If the IMU reading duration is too long >50ms and < 3 second for example , IMU is deactivate and mowing continue in safe mode.
If the noise is too high IMU can freeze more than 3 second and in this case the watchdog fully restart the DUE and you can find your mower stopped in the area.
 
Wenn der Mäher sich festgefahren hat, und versucht sich selbst zu befreien, fährt er immer rückwärts und versucht sich zu drehen. Das funktioniert natürlich nicht, wenn sich das Hindernis hinter dem Mäher befindet.

Hier ist es ganz gut zu sehen:


Video


If the mower gets stuck and tries to free itself, it will always reverse and try to turn. Of course, this will not work if the obstacle is behind the mower.

It's pretty good to see in the video-link above.
 
Zuletzt bearbeitet:
It's a good thing that you put the video because it's never append to me with the wheel at the rear of the mower.
The issue is in the roll state (the high drive motor current) generate a stop and reverse but we are already in reverse state and after i thing a tilt is detected.

I check this in the firmware to see what i can do.
 
Hallo,
Ich habe auch immer mal wieder die imu störung. Ich benutze auch das standard chassis mit pcb 1.3 und azuritber allerdings als heckantriebler.
Kannst mul mal den ferritkern zeigen bzw. die Bezugsquelle nennen.
Anfangs hatte ich die Störung fast andauernd, nach kürzen der imu leitung nur noch alle paar Tage ist avber trotzdem nervig.
Gruss Michael
 
It's possible to change the motor PWM frequency to have less noise in the mow motor
It's is done into the DEV branch but you can do the change easily in the master branch

It's into pinman.cpp replace 3900 by 10000 for example.

It's very useful for perimeter coil noise but i don't know if it help for Gy-521.
Maybe you need to increase the motor speed with this new setting.

Did you try to connect GY-521 on the I2C line without pullup resistor ?

Code:
//#define PWM_FREQUENCY 3900
//#define TC_FREQUENCY 3900

#define PWM_FREQUENCY 10000
#define TC_FREQUENCY 10000
 
Oben