<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://wiki.ardumower.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bernard</id>
		<title>www.wiki.ardumower.de - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.ardumower.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bernard"/>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Spezial:Beitr%C3%A4ge/Bernard"/>
		<updated>2026-10-13T07:15:00Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Firmware_(English)&amp;diff=10538</id>
		<title>AzuritBer Pi Firmware (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Firmware_(English)&amp;diff=10538"/>
				<updated>2023-05-18T10:09:27Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Raspberry Pi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi =&lt;br /&gt;
&lt;br /&gt;
A Raspberry Pi is connected over : Due Native USB to arduino DUE or on USB port to AGCM4/Teensy&lt;br /&gt;
&lt;br /&gt;
It is used to control Mower over WIFI from everywhere using PC,Tablet,Smartphone etc.....&lt;br /&gt;
&lt;br /&gt;
All movement and message are saved on SDcard for each mowing run and you can check later exactly what append (Bump,Sonar,Perimeter trig etc....)&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
===What you need===&lt;br /&gt;
&lt;br /&gt;
1 Raspberry PI 3B+ or PI4 (The Pizero W can work but very slowly and it's not the goal).[[Datei:pi3_board.jpg|100px]]&lt;br /&gt;
&lt;br /&gt;
1 DC/DC voltage regulator to power the PI.Minumum 5A version from marotronics[[Datei:DC DC 5A.jpg|100px]] https://www.marotronics.de/5A-DC-DC-step-down-module-XL4015-with-heat-sink-eg-for-Arduino&lt;br /&gt;
&lt;br /&gt;
Connect P17 to input of the DC/DC voltage regulator and connect a micro usb cable to output [[File:warning.png]]'''(ADJUST the output voltage to 5V before plug the PI)'''&lt;br /&gt;
&lt;br /&gt;
1 USB mouse,keyboard for setting.You can simply use a standard one for the setting and disconnect it after But it's also possible to use a small one like that to drive the mower remotely in manual mode.[[Datei:small_keyboard1.jpg|100px]]&lt;br /&gt;
&lt;br /&gt;
1 SD Card 32 GB class 10[[Datei:Sd card.jpg|30px]]&lt;br /&gt;
&lt;br /&gt;
1 PowerBank or DC/DC voltage regulator connected to PCB1.3 or power supply for the raspberry pi minimum 3A&lt;br /&gt;
&lt;br /&gt;
1 HDMI cable to see the PI desktop on your TV  or HDMI Screen.&lt;br /&gt;
&lt;br /&gt;
1 TV or monitor with HDMI input to easily see the raspberry IP adress on the first boot.&lt;br /&gt;
&lt;br /&gt;
===Fast setup for Advanced user===&lt;br /&gt;
&lt;br /&gt;
If you already know how raspberry PI work with desktop ,You can read setup process locate into github under Txt File Setup_raspberry.rtf&lt;br /&gt;
&lt;br /&gt;
Here the full setup process:&lt;br /&gt;
&lt;br /&gt;
VNC is installed and you have copied all Piardumower data into Documents folder.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install idle3&lt;br /&gt;
 sudo pip3 install paho-mqtt&lt;br /&gt;
 sudo apt-get install kst&lt;br /&gt;
 sudo apt-get install dos2unix&lt;br /&gt;
&lt;br /&gt;
Download and Install Arduino IDE and add Due board if you want to flash Due over WIFI&lt;br /&gt;
&lt;br /&gt;
 cd ~/Documents&lt;br /&gt;
 sudo chown -R pi:pi PiArdumower&lt;br /&gt;
 sudo chmod -R 755 PiArdumower&lt;br /&gt;
 cd PiArdumower&lt;br /&gt;
 mv mower.sh /home/pi/Desktop&lt;br /&gt;
&lt;br /&gt;
 cd ~/Documents/PiArdumower&lt;br /&gt;
 dos2unix streamVideo320.py&lt;br /&gt;
 dos2unix streamVideo640.py&lt;br /&gt;
 dos2unix DueFlash.py&lt;br /&gt;
 dos2unix PowerOff.py&lt;br /&gt;
 dos2unix Restart.py&lt;br /&gt;
 dos2unix testnet1.py&lt;br /&gt;
 cd ~/Desktop&lt;br /&gt;
 dos2unix mower.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you never work with Raspberry simply follow the full WIKI and check all screen copy.&lt;br /&gt;
&lt;br /&gt;
===Build the SD Card===&lt;br /&gt;
&lt;br /&gt;
You need to first write the raspbian OS on the SD Card .&lt;br /&gt;
&lt;br /&gt;
It's easy using the main raspberry.org site.&lt;br /&gt;
&lt;br /&gt;
You can connect you Micro SD CARD to your laptop or PC using correct adaptor &lt;br /&gt;
&lt;br /&gt;
No need to format at the point but '''All Data present on it will be destroyed.'''&lt;br /&gt;
&lt;br /&gt;
Connect to : https://www.raspberrypi.org/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Buster001.png|400px]] and select the Download page&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster002.png|400px]] Select Raspberry Pi Imager for Windows&lt;br /&gt;
----&lt;br /&gt;
Wait until the download is finish and launch the downloaded prog.&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster003.png|400px]] Select Choose OS&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster004.png|400px]] Use the recommended one with Desktop&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster005.png|400px]] Select Choose SD CARD&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster006.png|400px]] Select your SD CARD Be careful to select the correct one.&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster007.png|400px]] Select Write and wait until down (can take 15 to 60 Min according your internet speed).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remove the SD CARD for your PC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PI Initial boot with Desktop===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect everything on the PI ; Here the Ethernet cable is used but it's also possible to use WIFI&lt;br /&gt;
&lt;br /&gt;
USB Dongle for mouse.&lt;br /&gt;
&lt;br /&gt;
HDMI cable from PI to TV or monitor. (Without TV or monitor is also possible : Search on Google and Youtube)&lt;br /&gt;
&lt;br /&gt;
Ethernet cable if possible or WIFI (On first boot the PI need a good connection to the net for last update)&lt;br /&gt;
&lt;br /&gt;
Power (5V if you use DC/DC voltage regulator) on Micro USB&lt;br /&gt;
&lt;br /&gt;
[[Datei:Connecting.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On first start you can see expand sd card,reboot and welcome message with the IP Address for Ethernet&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Select your language and location.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_02.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change password and remember it (we need it later to connect to PI over wifi)  For easy wiki : '''Pass001''' but use another one&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Setup screen, simply click next&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On the WIFI connecting page select the WIFI network that you want to use for all the setting duration (You can change it later for an outdoor one)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Enter your wifi password and follow the next update step (can take again 10 to 30 minutes)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_5.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
REBOOT.&lt;br /&gt;
&lt;br /&gt;
We need to activate VNC serveur to whare the desktop with your PC.&lt;br /&gt;
&lt;br /&gt;
Using Start icon : Go to Préférence and Configuration du Raspberry&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_10.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In the Tab Interfaces Activate SSH and VNC&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_11.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now on the upper right corner of the desktop a new icon show that VNC Serveur is running .&lt;br /&gt;
&lt;br /&gt;
Move your mouse on the Ethernet or Wifi icon to see the IP adress of the ethernet and WIFI one.&lt;br /&gt;
&lt;br /&gt;
The WIFI one is the most important (Here '''10.0.0.29''')&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_12.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Disconnect the ethernet cable and Reboot (Not Shutdown) All Using Start icon and Log Out.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_1201.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===First Remote PC connection over Wifi===&lt;br /&gt;
'''PI SIDE'''&lt;br /&gt;
&lt;br /&gt;
Pi is running and you can see the desktop &lt;br /&gt;
&lt;br /&gt;
'''PC SIDE or Tablet / Phone'''&lt;br /&gt;
&lt;br /&gt;
 Remember that we set the Password to Pass001 and ip adress of the PI WIFI is 10.0.0.29&lt;br /&gt;
 NOW WE WORK ON PC OR TABLET&lt;br /&gt;
&lt;br /&gt;
You have many possiblity (SSH viewer, MobaXterm, Remote Desktop etc...) , In this case I use free real VNC Viewer (Not VNC Serveur) to connect to the PI over your network.&lt;br /&gt;
&lt;br /&gt;
Go to https://www.realvnc.com/fr/connect/download/viewer/&lt;br /&gt;
&lt;br /&gt;
And select the correct donwload according your platform.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Instal the software and start it (VNC Viewer). In your case the tab is empty (No RL1000,Denna etc....)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_21.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On upper left choose File / New Connection&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_22.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Into VNC Serveur : enter the IP of the raspberry  (ethernet or WIFI adress) and give a name to the connection.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_23.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
It's possible that a new security box is shown on the screen Select Continue&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_24.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
You can see the new Connection named Ardumower Double click on it.&lt;br /&gt;
&lt;br /&gt;
UserName is pi and password is Pass001 or the one you choose on first start part.Check remember password&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_25.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
The Clone of the Pi desktop is now on your PC and you can do everything exactly like if you use localy the raspberry ,But from your Sofa&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_26.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Pi Software part===&lt;br /&gt;
&lt;br /&gt;
 NOW WE WORK ON THE PI ''USING VNC VIEWER'' ALL COMMAND NEED TO RESPECT THE CASE&lt;br /&gt;
 DO NOT DISCONNECT THE SCREEN TO HAVE A CORRECT RESOLUTION (1024*768)&lt;br /&gt;
&lt;br /&gt;
You need to send some command to the PI Terminal to install some software.&lt;br /&gt;
&lt;br /&gt;
To see the terminal click on the &amp;gt;_ icon in the taskbar&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_10.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Copy and past all the following command in the terminal after the $ for the rest of this wiki part&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
This download can take a lot of time , so be patient and answer Yes to upgrade&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Python3 Idle====&lt;br /&gt;
&lt;br /&gt;
Piardu.py use Python3 , so we need to install the idle to have access to it and edit if needed (answer Yes for installing)&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install idle3&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
At the end of the Python idle installation you need to have a new icon into Start / Programing menu.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Pygame====&lt;br /&gt;
&lt;br /&gt;
It's possible to drive the mower in Manual mode with PS4 joystick but need pygame software (Maybe already include but it's better to do it)&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install python3-pygame&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Paho Mqtt====&lt;br /&gt;
&lt;br /&gt;
It's possible to controle mower over mqtt and use Home Automation but need python3 paho software part.&lt;br /&gt;
&lt;br /&gt;
 sudo pip3 install paho-mqtt&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Here a fast description of TOPIC&lt;br /&gt;
&lt;br /&gt;
What you can send to mower&lt;br /&gt;
&lt;br /&gt;
Topic Denna/COMMAND&lt;br /&gt;
&lt;br /&gt;
 payload : STOP to stop&lt;br /&gt;
 payload : MOWPATTERN ;1 or 2 or3 according mowpattern&lt;br /&gt;
 payload : START to start with the last mowpattern&lt;br /&gt;
 payload : PAUSE;2 to stop auto start by timer for the next 2 hours&lt;br /&gt;
 payload : HOME to go station&lt;br /&gt;
 payload : STARTTIMER;1;1;0;25;2;50 it's to start from station &lt;br /&gt;
           STARTTIMER;MowPattern;LaneNr;rollDir;WhereStart;areToGo;LaneLenght&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What you receive from mower&lt;br /&gt;
&lt;br /&gt;
Send only when value change&lt;br /&gt;
&lt;br /&gt;
 Topic Denna/STATUS&lt;br /&gt;
 payload the mower status see robot.py list for possible value&lt;br /&gt;
 Topic Denna/STATE&lt;br /&gt;
 payload the mower state see robot.py list for possible value&lt;br /&gt;
 Topic Denna/Battery&lt;br /&gt;
 payload the bat voltage&lt;br /&gt;
 Topic Denna/Temp&lt;br /&gt;
 payload the mower temp&lt;br /&gt;
 Topic Denna/Battery&lt;br /&gt;
 payload the bat voltage&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Send at fixed frequency see config.py (one per second for example)&lt;br /&gt;
&lt;br /&gt;
 Topic Denna/Idle&lt;br /&gt;
 payload the loop per second of due&lt;br /&gt;
&lt;br /&gt;
====KST Plot====&lt;br /&gt;
&lt;br /&gt;
Piardu use software named KST to plot all the data &lt;br /&gt;
&lt;br /&gt;
Seach KST Plot on Google for more info . Again copy and past this into the Pi terminal:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install kst&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_80.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====DosToUnix====&lt;br /&gt;
&lt;br /&gt;
Some file need to be in unix format ,so a conversion is needed using DosToUnix&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install dos2unix&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_65.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Arduino IDE====&lt;br /&gt;
&lt;br /&gt;
It's possible to update the due firmware from Piardu over WIFI but need the ARDUINO IDE in the raspberry.&lt;br /&gt;
&lt;br /&gt;
The process is describe perfectly in this video&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=ySyBNdndB58&lt;br /&gt;
&lt;br /&gt;
You need to download file directly inside the raspberry.&lt;br /&gt;
&lt;br /&gt;
So use the PI Internet browser named CHROMIUM.It's the world Icon on windows top left &lt;br /&gt;
&lt;br /&gt;
Here screenshot of the 07/11/2020 download page for '''Arduino 1.8.13''' version : Choose Linux ARM 32 bits&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_100.png|400px]] [[Datei:pi_soft_101.png|400px]] [[Datei:pi_soft_102.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Go to file manager home / pi / Downloads and right click to the downloaded file ,select extract here (WAIT before you see something appear)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_110.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Now open again the terminal windows (&amp;gt;_ icon on upper left) and copy these command (it can take time)&lt;br /&gt;
&lt;br /&gt;
Warning : folder arduino-1.8-13 can change over time for example arduino-1.8-15 , so use the correct name according your download in the next command.&lt;br /&gt;
&lt;br /&gt;
 cd Downloads/arduino-1.8.13&lt;br /&gt;
&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_115.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not take care about the error message.&lt;br /&gt;
&lt;br /&gt;
You can see now the arduino icon into start / programming, start the prog to be sure everything is OK.&lt;br /&gt;
 &lt;br /&gt;
[[Datei:pi_soft_120.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Add the ARDUINO DUE in the board list&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_125.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Search for DUE : and select arduino SAM Boards&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_130.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Again it can take time,so Wait until process finish.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Normaly arduino ide is not use and only a command line is used to update Due firmware but to be sure the folder name stay always the same  : Go to file Preferences and deactivate the Search for update.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_135.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===PiArdu Software===&lt;br /&gt;
&lt;br /&gt;
You need to copy all the Github file locate into Piardumower folder inside the Raspberry PI home/pi/Documents folder.&lt;br /&gt;
&lt;br /&gt;
Using VNC Viewer :&lt;br /&gt;
&lt;br /&gt;
First initiate the correct location for file transfert &lt;br /&gt;
&lt;br /&gt;
Click VNC Serveur icon on desktop upper right near Bluetooth icon&lt;br /&gt;
&lt;br /&gt;
Click Menu icon on VNC CONNECT upper right page&lt;br /&gt;
&lt;br /&gt;
Select File Transfert in the menu list&lt;br /&gt;
&lt;br /&gt;
In bottom right of the next page select other folder and choose home/pi/Documents.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_205.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Now download all the file:&lt;br /&gt;
Move your mouse in upper middle of the desktop to see the VNC transfert icon and select it Click on send file&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_200.png|400px]] [[Datei:pi_soft_208.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Navigate into your PC to find the github master downloaded file and select piardumower and validate using the '''FULL FOLDER''' in bottom right&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_210.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
If everything is OK you can see now the entire folder correctly locate in home/pi/Documents&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_215.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Set permission to everyone for all the piardumower file &lt;br /&gt;
&lt;br /&gt;
Open a terminal (&amp;gt;_ icon ondesktop) and send the  5 command  &lt;br /&gt;
&lt;br /&gt;
 cd Documents&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R pi:pi PiArdumower&lt;br /&gt;
&lt;br /&gt;
 sudo chmod -R 755 PiArdumower&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_220.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add start Piardu.py to desktop using a shell command:&lt;br /&gt;
&lt;br /&gt;
 cd PiArdumower&lt;br /&gt;
&lt;br /&gt;
 mv mower.sh /home/pi/Desktop&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_221.png|400px]]&lt;br /&gt;
&lt;br /&gt;
A new file is now present on desktop Mower.sh and can be use to start the Piardu.py&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change into config.py for the first start of Piardu (Deactivate momentary the DUE serial link to avoid error)&lt;br /&gt;
&lt;br /&gt;
Start / Programming / Python3 IDLE   &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_230.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
And into Python Shell select File Open home/pi/Documents/Piardumower/config.py&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_235.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now change DueconnectedOnPi from True to False &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_240.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Save and close the config.py file but keep the shell open&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now from Python Shell select File Open home/pi/Documents/Piardumower/PiArdu.py and click on Run / Run Module or hit F5&lt;br /&gt;
&lt;br /&gt;
Piardu need to start without error into Shell windows (No red Line)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_250.png|400px]]&lt;br /&gt;
&lt;br /&gt;
And you can navigate inside all the menu with a fast response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To work correctly some file  need to be converted into Unix format:&lt;br /&gt;
&lt;br /&gt;
Open the terminal and copy these command &lt;br /&gt;
&lt;br /&gt;
 cd Documents/PiArdumower&lt;br /&gt;
&lt;br /&gt;
 dos2unix streamVideo320.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix streamVideo640.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix DueFlash.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix PowerOff.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix Restart.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix testnet1.py&lt;br /&gt;
&lt;br /&gt;
 cd ~/Desktop&lt;br /&gt;
&lt;br /&gt;
 dos2unix mower.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_75.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Automatic start on Power up:&lt;br /&gt;
&lt;br /&gt;
In terminal use text editor named nano to start mower.sh each time the Pi is power up&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/xdg/lxsession/LXDE-pi/autostart&lt;br /&gt;
&lt;br /&gt;
and at the end of the file add the line below ,'''Be careful mouse don't work inside the editor,so paste the line at the correct location , error in this file can corrupt the PI starting process'''&lt;br /&gt;
&lt;br /&gt;
 @bash /home/pi/Desktop/mower.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_237.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Use Ctrl X to exit and save the change in autostart.&lt;br /&gt;
&lt;br /&gt;
Reboot the PI ,Normally Piardu automatically start with some error if DUE is not plug in PCB1.3 or without error if PCB1.3 is used.&lt;br /&gt;
&lt;br /&gt;
If you can't see the bottom red line with date time : check if you have activate raspberryPi to YES using Arduremote / Setting /raspberry&lt;br /&gt;
&lt;br /&gt;
Go to Piardu auto page and click on OFF to reset all eventual error.&lt;br /&gt;
&lt;br /&gt;
===DUE Connection===&lt;br /&gt;
&lt;br /&gt;
If you can't remove Arduino DUE from PCB1.3 : you need to power the raspberry with the DC/DC voltage regulator under the same battery, or with standard PI power supply.&lt;br /&gt;
&lt;br /&gt;
With DC/DC regulator [[File:warning.png]]'''FIRST ADJUST THE DC/DC TO 5V OUTPUT''' or you are going to destroy the raspberry&lt;br /&gt;
&lt;br /&gt;
From PCB1.3 24V P17 --&amp;gt;IN DC/DC OUT--&amp;gt; 5V micro USB Raspberry PI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also connect Arduino Due without the PCB1.3 to PI using USB Cable '''Never use a charging cable only DATA cable''' (DUE is powered by the raspberry ,so it's very easy)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_300.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Change again into config.py to activate the DUE serial link.&lt;br /&gt;
&lt;br /&gt;
Start / Programming / Python3 IDLE   &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_230.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
And into Python Shell select File Open home/pi/Documents/Piardumower/config.py&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_235.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change DueconnectonPi from False to True&lt;br /&gt;
&lt;br /&gt;
Also set UseDebugConsole to True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_241.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Save and close the config.py file but keep the shell open&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now from Python Shell select File Open home/pi/Documents/Piardumower/PiArdu.py and click on Run / Run Module or hit F5&lt;br /&gt;
&lt;br /&gt;
Piardu need to start and you can navigate inside all the menu very slowly if there are no firmware in the arduino DUE so wait &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_250.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==== FLASH DUE ====&lt;br /&gt;
You can upload the DUE firmware using your PC or directly from Piardu .&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''If Raspberry is powered using PCB1.3 JUMPER JP8 NEED TO BE IN ALWAYS ON POSITION'''&lt;br /&gt;
if you forget to change JP8 position. During the DUE flash, PCB can power off raspberry . In this case you need to upload again the sketch from your PC using DUE programming port&lt;br /&gt;
&lt;br /&gt;
On PiArdu click Back icon and Setting icon&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_305.png|400px]]&lt;br /&gt;
&lt;br /&gt;
On setting main tab use Update the DUE Firmware button and click on Start Flash. Never use &amp;quot;(&amp;quot; or &amp;quot;)&amp;quot; in the mane of file or the flash crash. &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_310.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Wait until DUE FLASHER window is closed&lt;br /&gt;
&lt;br /&gt;
You can use your own file . Arduino IDE generate one file each time you compile your project (see the last line in debug view of arduino compiler. Simply copy the file in the raspberry into firmware folder be careful to avoid &amp;quot;(&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== CHECK COMMUNICATION ====&lt;br /&gt;
&lt;br /&gt;
Firmware locate on GITHUB is build to work with or without raspberry.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you test without PCB1.3 and don't have access to ARDUREMOTE you need to manualy set RaspberrypiUse to true.&lt;br /&gt;
See into mower.cpp line 242:&lt;br /&gt;
&lt;br /&gt;
 RaspberryPIUse = false; // a raspberryPi is connected to USBNative port&lt;br /&gt;
&lt;br /&gt;
change with:&lt;br /&gt;
&lt;br /&gt;
 RaspberryPIUse = true; // a raspberryPi is connected to USBNative port&lt;br /&gt;
&lt;br /&gt;
Compile and upload again code into DUE.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you have access to ARDUREMOTE simply go into arduremote / Setting / Raspberry to activate the communication.&lt;br /&gt;
&lt;br /&gt;
When everything is OK, the RED Status line is present in AUTO page of Piardu and change every second.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Try to click Back icon and Setting icon and click on Reboot All &lt;br /&gt;
&lt;br /&gt;
Raspberry and DUE need to reboot if communication,permission and unix format are OK &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Optional Screen===&lt;br /&gt;
&lt;br /&gt;
For really easy working it's better to use a tactile screen ,directly connected on the Raspberry.&lt;br /&gt;
&lt;br /&gt;
Piardu is write to use a 800*480 5 inch screen using HDMI connection.Avoid SPI screen because the processor can't manage everything faster.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 2.png|400px]]  [[Datei:pi screen 1.png|400px]]  [[Datei:Pi4 screen 1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Be carreful when you order : HDMI adaptor is not the same for PI4 (Right Picture) and PI3B+ (center and left Picture)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To setup the tactile and screen :&lt;br /&gt;
&lt;br /&gt;
Go to terminal :copy and paste these command&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/waveshare/LCD-show.git&lt;br /&gt;
&lt;br /&gt;
 cd LCD-show/&lt;br /&gt;
&lt;br /&gt;
 sudo ./LCD5-show&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Wait and after reboot ,Resolution is automaticaly reset to screen one and tactile is working to control PiArdu.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To have PiArdu on total full Screen Right Click in the TaskBar near VNC SERVEUR to open a menu list and select 'Parameter tab de bord' (See picture from translation)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
On the new windows select tab Advance and check Minimise (Again See picture from translation)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 5.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Optional Camera===&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 1.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simply connect the camera to PI CSI port&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 3.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using Start icon : Go to Préférence and Configuration du Raspberry&lt;br /&gt;
&lt;br /&gt;
In the new windows go into tab Interfaces&lt;br /&gt;
&lt;br /&gt;
Check to Enable the Camera&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Move windows or Hit Tabulation 10 times if you can't see Validate Button and press Enter (Reboot)&lt;br /&gt;
&lt;br /&gt;
==== Expérimental AI Vision with Tensorflow ====&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=e6udelf2v50&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EVERYTHING IS HERE EXPERIMENTAL AND CAN'T REPLACE BUMPER OR SONAR.&lt;br /&gt;
&lt;br /&gt;
Main part of detection code came from here and other site on web:&lt;br /&gt;
&lt;br /&gt;
https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10&lt;br /&gt;
&lt;br /&gt;
Only OK with Raspberry 4 at 2 frames per second without google coral accelerator,Note than a Fan is mandatory on the Pi because CPU can heat a lot.&lt;br /&gt;
&lt;br /&gt;
Fast main setup description.&lt;br /&gt;
&lt;br /&gt;
If they are not present copy folder from Github to PiArdumower folder using VNC Viewer:&lt;br /&gt;
 core&lt;br /&gt;
 data&lt;br /&gt;
 protos&lt;br /&gt;
 ssdlite_mobilenet_v2_coco_2018_05_09&lt;br /&gt;
 utils&lt;br /&gt;
 vision&lt;br /&gt;
 &lt;br /&gt;
Now in a new terminal :&lt;br /&gt;
 &lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
Install OPENCV&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3-opencv&lt;br /&gt;
&lt;br /&gt;
Install Tensorflow&lt;br /&gt;
&lt;br /&gt;
 pip3 install tensorflow&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install libatlas-base-dev&lt;br /&gt;
&lt;br /&gt;
 sudo pip3 install pillow lxml jupyter matplotlib cython&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install python3-pil python3-pil.imagetk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using python idle edit ''config.py'' and set Use Vision to true&lt;br /&gt;
&lt;br /&gt;
visionDetectMinScore is used to create a first sort on what we want to explore in the screen.Each time something with score &amp;gt; 78 for example is detected a copy of Live Video is saved on SD Card and soft check if the object detected match with the setting and if we need to stop and reverse or continue to mow.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 05.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Using python idle open and start ''PiArdu519.py'' or later&lt;br /&gt;
&lt;br /&gt;
Into setting you can see the tab Vision open it to set the threshold of what you want to avoid.&lt;br /&gt;
&lt;br /&gt;
For each object you can set a minimum detection score and a minimum area (How many percent of the full image)&lt;br /&gt;
&lt;br /&gt;
According the tensorflow model you need to set the correct object ID (name is according but you can change it)&lt;br /&gt;
Here the .txt file list: &lt;br /&gt;
&lt;br /&gt;
For example on COCO model the chair have ID 62 and we want to stop and reverse if detection score is &amp;gt; 75 and area &amp;gt; 12 % of the screen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 08.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Video menu, click on Start Vision and wait at least 40 seconds for tensorflow to load the model.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 12.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
A new windows named 'Live Video' appear.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 13.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now you can reduce Live Video windows and start to mow until something is detected&lt;br /&gt;
&lt;br /&gt;
The big red box is replace with the last detection and a file is create into vision folder  &lt;br /&gt;
 &lt;br /&gt;
[[Datei:Piardu video 15.png|400px]] [[Datei:Piardu video 30.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Console you can see the result of detection.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Each time person or Dog etc.. is detected mower stop and reverse , a picture is take and store in the vision / date time folder&lt;br /&gt;
&lt;br /&gt;
AGAIN IT'S EXPERIMENTAL AND ONLY FOR FUN so check in the python shell that no error occur and test to see if the detection is reliable !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Backup SD CARD===&lt;br /&gt;
After this very long setup it's time to create a backup of your SD Card into your PC.&lt;br /&gt;
&lt;br /&gt;
Power OFF your raspberry using the correct command and move the SD CARD from the raspberry to your PC. Close windows message for format suggestion.&lt;br /&gt;
&lt;br /&gt;
Using Win32DiskImager a free software you can create image file of your SD Card and save it into your PC.So it's easy to rebuild your card later if you damage it or if you want to build other one using the read and write button.&lt;br /&gt;
&lt;br /&gt;
Image file size is the same as your SD CARD ,so need space on your PC&lt;br /&gt;
&lt;br /&gt;
It's here https://win32diskimager.org/&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager001.png|400px]] &lt;br /&gt;
&lt;br /&gt;
Download the soft and start it.Your SDCARD is normaly detected  and you only need to select a backup folder and give a name to the file ,add .img at the end of your backup file &lt;br /&gt;
&lt;br /&gt;
TO BACKUP&lt;br /&gt;
&lt;br /&gt;
Click on read button to copy your sdcard to your PC.&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager020.png|400px]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TO RESTORE &lt;br /&gt;
&lt;br /&gt;
Insert a new SDCARD with minimum same size ,select your backup file and click on write button to create the new SDCARD&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager030.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Piardu Main Configuration==&lt;br /&gt;
&lt;br /&gt;
 Inside folder : home/pi/Documents/Piardumower you can edit the config.py file to manage different option :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu config 1.png|600px]] [[Datei:Piardu config 2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
''PCB part:''&lt;br /&gt;
&lt;br /&gt;
'''Due ConnectedOnPi'''&lt;br /&gt;
True for normal use , False to test Raspberry without PCB1.3 and DUE&lt;br /&gt;
&lt;br /&gt;
''GPS part:''&lt;br /&gt;
&lt;br /&gt;
Warning : GPS is not use by software,it's only a tracker version, All data are recorded and saved inside Piardumower/Gpsdata&lt;br /&gt;
&lt;br /&gt;
'''GpsConnectedOnPi''' &lt;br /&gt;
True or False : Old config with GPS directly connected on Raspberry Pi Serial GPIO.&lt;br /&gt;
&lt;br /&gt;
'''GpsIsM6n'''&lt;br /&gt;
True or False : Set to false is you use M8N module because NMEA sentence are not the same&lt;br /&gt;
&lt;br /&gt;
''Arduino Nano part.''&lt;br /&gt;
&lt;br /&gt;
'''NanoConnectedOnPi'''&lt;br /&gt;
&lt;br /&gt;
It's possible to connect Arduino Nano on Pi USB to receive data and react according, It was build to test some laser beam VL53L0X sensor and rain sensor but without success&lt;br /&gt;
&lt;br /&gt;
''Battery part:''&lt;br /&gt;
&lt;br /&gt;
'''AutoRecordBatCharging'''&lt;br /&gt;
&lt;br /&gt;
When charging start it's possible to record each minute voltage and battery sense to check later how everything work and adjust the max charging duration if necessary.&lt;br /&gt;
&lt;br /&gt;
''Debug part:''&lt;br /&gt;
&lt;br /&gt;
'''UseDebugConsole'''&lt;br /&gt;
&lt;br /&gt;
If True ,you can see more message in the console page including all NMEA sentence received and send by Raspberry.&lt;br /&gt;
&lt;br /&gt;
''Sender part:''&lt;br /&gt;
&lt;br /&gt;
'''Sender1AdressIP''' '''Sender2AdressIP''' '''Sender3AdressIP'''&lt;br /&gt;
&lt;br /&gt;
If you use the RFID option with multiple area it's the IP adress that Piardu use to communicate with other sender over WIFI.&lt;br /&gt;
&lt;br /&gt;
''Camera part:''&lt;br /&gt;
&lt;br /&gt;
'''myCamAngle'''&lt;br /&gt;
&lt;br /&gt;
If camera in mount in particular orientation it's possible to adjust screen render here.&lt;br /&gt;
&lt;br /&gt;
'''streamVideoOnPower'''&lt;br /&gt;
&lt;br /&gt;
if set to True the video stream automatically start when pi is power up&lt;br /&gt;
&lt;br /&gt;
==Piardu Power ON / OFF video==&lt;br /&gt;
&lt;br /&gt;
Result after everything correctly set :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power ON&lt;br /&gt;
&lt;br /&gt;
 https://youtu.be/Qhv8r2bD_Bk&lt;br /&gt;
&lt;br /&gt;
Power OFF&lt;br /&gt;
&lt;br /&gt;
 https://youtu.be/4YJQ-zyLq-Q&lt;br /&gt;
&lt;br /&gt;
==Piardu MENU Description==&lt;br /&gt;
&lt;br /&gt;
Full description is here:&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Explain_(English)&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_Firmware_(English)&amp;diff=10403</id>
		<title>AzuritBer Firmware (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_Firmware_(English)&amp;diff=10403"/>
				<updated>2022-07-10T14:59:15Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* IMU Main Setting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=GITHUB Location=&lt;br /&gt;
&lt;br /&gt;
It's here:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Boilevin/AzuritBer GITHUB REPOSITORY]&lt;br /&gt;
&lt;br /&gt;
Process is the same as AZURIT :&lt;br /&gt;
&lt;br /&gt;
You need to upload all file to your PC and open ardumower.ino into arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Upload the code inside your DUE :&lt;br /&gt;
&lt;br /&gt;
On first start it's possible that EEPROM is empty (PCB Beep and start with ERROR) so you need to reset error counter and save setting.&lt;br /&gt;
&lt;br /&gt;
=Test requirements=&lt;br /&gt;
[[File:warning.png]]Security note: For security reasons, always remove mower blades in your first tests!&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]Important: For your first wheel motor tests, jack your robot so that the tires can run freely without ground contact!&lt;br /&gt;
&lt;br /&gt;
Prerequise to follow this WIKI: '''BT Module connected on PCB1.3 (ESP32 is also possible) and Pfod or Arduremote running into Android phone'''&lt;br /&gt;
&lt;br /&gt;
=What is AzuritBer and Why=&lt;br /&gt;
&lt;br /&gt;
AzuritBer was build for DENNA,ROBOMOW and PARANELLO platform and use Odometry or IMU to control the state change. &lt;br /&gt;
It can only run on DUE and Odometry is mandatory (minimum 400 ticks per rev).But it's possible to adjust setting to work on other platform.&lt;br /&gt;
 &lt;br /&gt;
This version always use odometry into all movement (reverse,roll etc...) .The result is a more smooth movement without pause between all the différents state and the possibility to mow by lane for big area and faster mowing&lt;br /&gt;
&lt;br /&gt;
Here video of the random mowing behaviour on 2 platform:&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/Abt5pcWz2H0&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/T5mH4yMyWus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 Usefull option are Raspberry PI and RFID module.&lt;br /&gt;
&lt;br /&gt;
At the beginning of the dev i need many debug message to perfectly adjust the firmware, so i add a raspberry and record all the mowing duration in a Console.&lt;br /&gt;
Actually PI is optional, but help a lot to find trouble in the behaviour and to communicate (With your PC,or home automation)&lt;br /&gt;
Other option is the RFID tag reader&lt;br /&gt;
&lt;br /&gt;
=Possible Option=&lt;br /&gt;
== WIFI ESP32 Sender ==&lt;br /&gt;
&lt;br /&gt;
Full description of the new  sender is here:&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=WIFI_Perimeter_Sender(English)&lt;br /&gt;
&lt;br /&gt;
[[Datei:wifi-sender1.png|400px]]  [[Datei:wifi-sender2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
if you have only one mowing area , you can use sender from shop : sender start when mower leave station and stop when mower is back or after a 5 hours timeout.&lt;br /&gt;
&lt;br /&gt;
But if you want to use RFID and multiple mowing area, Firmware need to control sender over WIFI and you need the new sender based on ESP32&lt;br /&gt;
&lt;br /&gt;
== WIFI and MQTT ==&lt;br /&gt;
&lt;br /&gt;
Full description is here :&lt;br /&gt;
&lt;br /&gt;
 [[AzuritBer_ESP32_option_(English)]]&lt;br /&gt;
&lt;br /&gt;
== RFID READER ==&lt;br /&gt;
&lt;br /&gt;
Full description is here :&lt;br /&gt;
&lt;br /&gt;
 [[AzuritBer_RFID_option_(English)]]&lt;br /&gt;
&lt;br /&gt;
== Raspberry PI==&lt;br /&gt;
Full description is here : &lt;br /&gt;
 &lt;br /&gt;
 [[AzuritBer_Pi_Firmware_(English)]]&lt;br /&gt;
&lt;br /&gt;
You can connect a Raspberry Pi to arduino DUE USB native port&lt;br /&gt;
&lt;br /&gt;
Optional 5 inch tactile screen can easily control all the mower and show many info on last mowing run.&lt;br /&gt;
&lt;br /&gt;
It's possible to access to mower from your Wifi and set everything from your Sofa (Including firmware upgrade)&lt;br /&gt;
&lt;br /&gt;
Home Automation can control the mower using MQTT message and start mowing according your automation.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|150px]] Bluetooth or WIFI (need esp01 connected on PCB1.3) control using arduremote &lt;br /&gt;
&lt;br /&gt;
[[Datei:Tactile screen .jpg|400px]] Manual control using tactile screen&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_auto.png|400px]] WIFI control using VNC Viewer (https://www.realvnc.com/fr/connect/download/viewer/) from your sofa&lt;br /&gt;
&lt;br /&gt;
[[Datei:home_assistant.png|400px]] WIFI control using mqtt and compatible software (here Home Assistant https://www.home-assistant.io/)&lt;br /&gt;
&lt;br /&gt;
=Standard Setup=&lt;br /&gt;
&lt;br /&gt;
Hardware is standard one : the PCB1.3 or 1.4 and simple BT module HC05&lt;br /&gt;
&lt;br /&gt;
The mower can run in full automatic mode inside a perimeter wire.&lt;br /&gt;
&lt;br /&gt;
Software add the ByLane and Wire mowing .&lt;br /&gt;
&lt;br /&gt;
Start using timer at different location on the perimeter wire with 3 possible mowing behaviour: Mow wire,Random Mode or By Lane Mode&lt;br /&gt;
&lt;br /&gt;
You can Acces to mower using Arduremote or Pfod over Bluetooth.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Install Firmware in DUE==&lt;br /&gt;
&lt;br /&gt;
In Github repo the MASTER version is the GY-521 version and the latest one.&lt;br /&gt;
&lt;br /&gt;
According your IMU module select the correct firmware from Github (GY-88,GY-87 and MPU-9250 are possible) by switching the branch.&lt;br /&gt;
&lt;br /&gt;
Note that the MPU-9250 is not always working perfectly (Noise on DC Motor freeze I2C line),On some 9250 chips you can see randomly I2C RTC error .So it's better to use GY-88 or GY-521 (More noise tolerant ??)&lt;br /&gt;
&lt;br /&gt;
If you see some freeze : first test for 2 or 3 hours with mow motor deactivate to be sure the motor noise is not too important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Github_link.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
After unzip the github repository ,open the ardumower folder and the ardumower.ino. Before uploading the sketch ,verify that into mower.h the line :&lt;br /&gt;
&lt;br /&gt;
 *          #define Console Serial&lt;br /&gt;
 *          //#define Console SerialUSB&lt;br /&gt;
&lt;br /&gt;
are set like that : uncomment #define Console Serial to receive Console message inside your PC arduino ide console and comment #define Console SerialUSB&lt;br /&gt;
&lt;br /&gt;
Upload sketch inside DUE using programming port.&lt;br /&gt;
&lt;br /&gt;
==Arduremote or PFOD APP==&lt;br /&gt;
&lt;br /&gt;
To control mower with a phone or tablet you need to use a software named ARDUREMOTE.&lt;br /&gt;
&lt;br /&gt;
You can easily install it using the Play Store from your phone&lt;br /&gt;
&lt;br /&gt;
==Main==&lt;br /&gt;
&lt;br /&gt;
If BT or WIFI connection is OK you can see main menu from Arduremote :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_main.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Command==&lt;br /&gt;
&lt;br /&gt;
===Arduremote===&lt;br /&gt;
Command menu is the mostly used menu to start and stop the mowing cycle manually.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''OFF''' is used to stop immediately the mower.&lt;br /&gt;
&lt;br /&gt;
'''Start Now''' start the mowing cycle according pattern selection.&lt;br /&gt;
&lt;br /&gt;
'''Actual Status state and mowing''' are only readable value and change when mower run.&lt;br /&gt;
&lt;br /&gt;
'''Pattern is''' is used to select what you want the mower cycle do:&lt;br /&gt;
&lt;br /&gt;
Possible value are :&lt;br /&gt;
&lt;br /&gt;
LANE -&amp;gt; mower mow in parallel lane according lane setting&lt;br /&gt;
&lt;br /&gt;
RANDOM -&amp;gt; mower change to a new random direction each time the wire is detected or bumper is hit or motor sense is too high.&lt;br /&gt;
&lt;br /&gt;
WIRE -&amp;gt; mower track the wire and mow the border of the area until find the station.&lt;br /&gt;
&lt;br /&gt;
'''GO TO STATION''' is used to send mower to charging station without mowing.&lt;br /&gt;
&lt;br /&gt;
'''POWER OFF PCB''' Power off all the mower.&lt;br /&gt;
&lt;br /&gt;
'''USER SWITCH''' are optional setting.&lt;br /&gt;
&lt;br /&gt;
=== Button connected on P20 ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:P20_Button.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
The Button connected on P20 is an easy mower command and work like that:&lt;br /&gt;
&lt;br /&gt;
If mower is in '''OFF state''':&lt;br /&gt;
&lt;br /&gt;
Push less than 1 sec = start mow in LANE&lt;br /&gt;
&lt;br /&gt;
Push it 2 seconds = start mow in RANDOM&lt;br /&gt;
&lt;br /&gt;
Push it more then 3 Seconds = GO TO STATION&lt;br /&gt;
&lt;br /&gt;
If mower is '''running''':&lt;br /&gt;
&lt;br /&gt;
Push it to stop immediately&lt;br /&gt;
&lt;br /&gt;
==Console==&lt;br /&gt;
&lt;br /&gt;
When you use the soft Without Raspberry PI Option, if you don't understand some behaviour ,it's possible to use console.&lt;br /&gt;
&lt;br /&gt;
Console show all the message you need for understanding why mower stop or reverse or roll etc....&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_console.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
Here the setting page.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting 1.jpg|200px]]  [[Datei:ArduRemote Setting 3.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Only For the first start, or with a new RTC eeprom :If you have error, you need to go into arduremote COMMAND and click on OFF to stop beep and in main menu ERROR COUNTER reset all error,next into setting, do a ''save setting''.&lt;br /&gt;
&lt;br /&gt;
Power OFF the PCB , do not forget also to disconnected the USB PC cable to be sure all restart correctly.&lt;br /&gt;
&lt;br /&gt;
Restart with PC connected on Due programming Port and the Ide console speed is set at 115200 bps .&lt;br /&gt;
&lt;br /&gt;
ARDUINO IDE CONSOLE SHOW (it's example using MPU9250 imu) :&lt;br /&gt;
&lt;br /&gt;
[[Datei:normal_start.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to YES'''&lt;br /&gt;
&lt;br /&gt;
===ODOMETRY Setting===&lt;br /&gt;
3 Values are require and need to be set in this order:&lt;br /&gt;
&lt;br /&gt;
'''Value 1'''&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Odometry.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
You need to set the correct ticks per one full revolution and check the result&lt;br /&gt;
&lt;br /&gt;
Go To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_Test_odo.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Use 1 turn Wheel FWD&lt;br /&gt;
&lt;br /&gt;
The wheel need to accelerate ,roll , brake and stop after exactly one revolution.&lt;br /&gt;
&lt;br /&gt;
Sample video : https://youtu.be/BV7MgO6jfwA&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW:&lt;br /&gt;
&lt;br /&gt;
[[Datei:wheel_1_rev.png]]&lt;br /&gt;
&lt;br /&gt;
Repeat the test with 5 turn Wheel FWD to be sure.&lt;br /&gt;
&lt;br /&gt;
'''Value 2'''&lt;br /&gt;
 &lt;br /&gt;
Back To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
Now you need to set the correct Ticks per cm according the diameter of the wheel.&lt;br /&gt;
&lt;br /&gt;
you can find the value by this formula: Ticks per one full revolution / (PI*diameter of the wheel) &lt;br /&gt;
&lt;br /&gt;
In this example the DENNA platform (diameter wheel is near 23 cm) : 720/(3.1415*23)=9.9&lt;br /&gt;
&lt;br /&gt;
So perimeter of the wheel is 3.1415*23 = 72.25 cm&lt;br /&gt;
&lt;br /&gt;
Ticks/cm = 720/72.25 = 9.96 ticks/cm&lt;br /&gt;
&lt;br /&gt;
Back To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
Now use the ''3 meters Forward'' command to see if the value is OK.&lt;br /&gt;
&lt;br /&gt;
Here the video : https://youtu.be/v-yzRV4FEWA&lt;br /&gt;
&lt;br /&gt;
The mower need to run forward for 3 meters .Adjust the value again if result is not 3 meters +/-10 cm&lt;br /&gt;
&lt;br /&gt;
'''Value 3'''&lt;br /&gt;
 &lt;br /&gt;
Back To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
Now you need to set the correct Wheel Base in cm .&lt;br /&gt;
&lt;br /&gt;
It's the distance between the 2 wheels. It is use to compute correctly all the mower roll movement.&lt;br /&gt;
&lt;br /&gt;
Back To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
Now use the Rotate 180 Deg and Rotate 360 Deg to verify the setting.Adjust the value again if result is not at +/- 5 Deg.&lt;br /&gt;
&lt;br /&gt;
Here the sample video : https://youtu.be/9uUA2qCqlrA&lt;br /&gt;
&lt;br /&gt;
Mower need to rotate according your choice.Change the Wheel Base in cm until you find 180 and 360 degrees&lt;br /&gt;
&lt;br /&gt;
===MOTOR Setting===&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Motor''&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_Setting_motor_01.jpg|200px]]  [[Datei:Arduremote_Setting_motor_2.jpg|200px]]  [[Datei:Arduremote_Setting_motor_30.jpg|200px]]  [[Datei:Arduremote_Setting_motor_4.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
First set the POWER MAX to 100 to be sure the motor don't stop.&lt;br /&gt;
&lt;br /&gt;
Set PWM max speed for example to 150 (Put mower on the mowing area in flat location and with 4 meters free forward) click '''''Calib Ticks/Second'''''  to approach the correct RPM value from PWM one ,mower need to move  and compute and save the new RPM value.&lt;br /&gt;
&lt;br /&gt;
You can now repeat this step until find the correct value fo rPWM and RPM.&lt;br /&gt;
&lt;br /&gt;
Each time you change PWM max value you need too calibrate again the ticks per second (Not needed for RPM)&lt;br /&gt;
&lt;br /&gt;
RPM is use into manual mode and auto forward mode, so to check a new value simply go to ''Main Menu / Manual '' and drive forward.&lt;br /&gt;
&lt;br /&gt;
PWM is use into automatic mode on all small movement (Rev,Roll,accel etc..) and need to be enough for the mower to move smoothly.&lt;br /&gt;
&lt;br /&gt;
If the wheel don't roll smoothly in manual forward ,maybe you need to adjust the RPM_P RPM_I and RPM_D&lt;br /&gt;
&lt;br /&gt;
See PID Control : [https://wiki.ardumower.de/index.php?title=PID_control]&lt;br /&gt;
&lt;br /&gt;
Always start with RPM_D=0 and move the 2 sliders RPM_P and RPM_I. RPM_P increase the changing speed and RPM_I smooth the speed when near the RPM max speed.&lt;br /&gt;
&lt;br /&gt;
You need to find a correct Manual / forward drive before continue with the ''Power max'' setting.&lt;br /&gt;
&lt;br /&gt;
'''Remember that at 80% of the power max the mower react like if a bumper is pressed.'''&lt;br /&gt;
&lt;br /&gt;
When PWM is OK you can adjust the power max value  ,simply deactivate bumper and In ''Manual / Forward'' stop the mower with your foot, normally the mower stop before the wheel slip. State change to OFF and into console you can see the according message.&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW with max power=12:&lt;br /&gt;
&lt;br /&gt;
[[Datei:motor_power.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do not forget to reactivate the Bumper.&lt;br /&gt;
&lt;br /&gt;
''Slope Adjust Speed'' Set to YES if you have slope on your mowing area it's help to have same Motor speed in Uphill and Downhill.&lt;br /&gt;
&lt;br /&gt;
''Actual Slope Coeff'' if Slope Adjust Speed is YES this real time value can change from 0.8 to 1.2 according Downhill and Uphill (Normaly near 1.00 on flat location)&lt;br /&gt;
&lt;br /&gt;
''Power ignore time'' On motor start the sense can have a peak. During this delay the sense is not read.&lt;br /&gt;
&lt;br /&gt;
''Roll Degrees max'' Into random mowing and after the mower find the wire and reverse it roll randomly with this maximum value.&lt;br /&gt;
&lt;br /&gt;
''Roll Degrees min'' Into random mowing and after the mower find the wire and reverse it roll randomly with this minimum value.&lt;br /&gt;
&lt;br /&gt;
''Rev Distance / Perimeter'' is the distance that mower drive after cross the perimeter wire to return inside mowing area (Always &amp;gt; Stop Distance / Perimeter).&lt;br /&gt;
&lt;br /&gt;
''Stop Distance / Perimeter'' is the distance that mower drive after cross the perimeter wire before stop.&lt;br /&gt;
&lt;br /&gt;
''MotorSenseScaleLeft'' and right are here to help to have a real Power, but the main is that at 80% of Power max : mower stop and reverse.&lt;br /&gt;
&lt;br /&gt;
''Swap Left Direction'' and right need to stay to NO and it's better to directly invert the motor wire + and -&lt;br /&gt;
&lt;br /&gt;
''PWM Right Forward Offset'' if the right and left motor don't rotate exactly at the same speed , You can use this setting to adjust and repeat the test ODO 1 rev forward until the 2 wheel stop at the same time.&lt;br /&gt;
&lt;br /&gt;
''PWM Right Reverse Offset'' Same setting but when mower reverse.&lt;br /&gt;
&lt;br /&gt;
'''''Speed ODO Minimum''''' Important setting : it's the minimum PWM that the firmware send to motor to have a movement.If too low the mower make pause between movement, if too high the movement are not perfectly smooth.&lt;br /&gt;
&lt;br /&gt;
''Speed ODO Maximum'' help on very small movement (less the 1/4 rev wheel)&lt;br /&gt;
&lt;br /&gt;
'''''Calib Ticks/Second''''' You need to do this once. The mower run forward for 1 or 2 wheel rev and compute the ticks / second. It is used on each movement to know the duration of the state according to the distance you want to drive.&lt;br /&gt;
&lt;br /&gt;
===MOW setting ===&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to NO or the blade never run and BE CARREFULL THE BLADE RUN'''&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Mow''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_mow_1.jpg|200px]]  [[Datei:ArduRemote_Setting_mow_2.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Mow motor can run at different speed according the high of grass.It's directly link to motor sense.&lt;br /&gt;
So you need to correctly set the max power of mow motor to have everything working correctly.&lt;br /&gt;
&lt;br /&gt;
Remember that at 80% of max power, mower start to mow in spiral mode, and at 100% of max power during 1 sec the motor is stop for more than 1 minute and restart automatically after, at a very high power the error hardware driver motor can also occur and you need a full power off to restart the mow motor &lt;br /&gt;
&lt;br /&gt;
To adjust everything try to find a location with medium high grass and low grass:&lt;br /&gt;
&lt;br /&gt;
Set the Power max to a small value (15 Watts for example)&lt;br /&gt;
 &lt;br /&gt;
Set the PWM Max speed to 255&lt;br /&gt;
&lt;br /&gt;
Set the PWM Min speed to 150&lt;br /&gt;
&lt;br /&gt;
Start to mow in auto mode in the low grass (The mow motor need to start at PWM=255 and reduce slowly during the next 10 seconds),now send the mower in high grass ,normally motor speed increase and spiral mowing start.&lt;br /&gt;
&lt;br /&gt;
If the spiral mowing start on low grass increase the Power max setting.&lt;br /&gt;
&lt;br /&gt;
Like for drive motor you can use calibrate mowsense to have a realistic sense,but the main is that mow spiral start on high grass and mow motor stop on overload in VERY HIGH GRASS.&lt;br /&gt;
&lt;br /&gt;
PWM coeff and actual PWM are actual (read only) value of the motor modulation.&lt;br /&gt;
&lt;br /&gt;
Mow Pattern Max Duration is used to change from Random mowing mode to Bylane mowing mode and avoid track on the mowing area.(The mower switch the 2 mode every 18 minutes in this case)&lt;br /&gt;
&lt;br /&gt;
===STATION setting===&lt;br /&gt;
&lt;br /&gt;
[[File:ArduRemote_setting_station.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''Station is blocking one , so the mower need to reverse to leave it.'''&lt;br /&gt;
&lt;br /&gt;
In schedule mode or start from station, mower use (IN THIS ORDER) reverse distance, Roll Angle and accel Distance after Roll to leave the station and start to find again perimeter wire to locate the mowing entry location according the timer setting, or track 1 meter if manual start from station.&lt;br /&gt;
&lt;br /&gt;
On Go Home mode mower track the wire and find the station (A voltage is detected on charging pin, or Bumper is pressed) it stop immediately and slowly go forward for the Station check Distance to be sure the contact is OK.&lt;br /&gt;
&lt;br /&gt;
If you use Right Sonar, the docking speed is reduce according to % of MaxSpeed each time something is detected while tracking the wire.&lt;br /&gt;
&lt;br /&gt;
On full schedule mode it's better to activate the Reboot after charging, by this way all variable are restore and everything work for week or month without any intervention.&lt;br /&gt;
&lt;br /&gt;
===PERIMETER setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Perimeter_1.jpg|200px]] [[Datei:ArduRemote_Setting_Perimeter_2.jpg|200px]] [[Datei:ArduRemote_Setting_Perimeter_03.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Main value is Mag and is negative when mower is inside area (near -2000 if mower inside and upper the wire).  In this case(139) the mower is outside at 3 meters of the wire.&lt;br /&gt;
&lt;br /&gt;
'''Mini Smag:'''&lt;br /&gt;
&lt;br /&gt;
Under this value the firmware estimate that the sender is OFF, so it's error.  To find the correct value simply put the mower in the area and unplug the sender (Read the Smag and add 20 or 30 , use slider to adjust MiniSmag)&lt;br /&gt;
&lt;br /&gt;
Check by start mowing and unplug the sender: Mower need to stop rapidly and go to error.&lt;br /&gt;
&lt;br /&gt;
'''Timeout(s) if outside :'''&lt;br /&gt;
&lt;br /&gt;
'''Big AREA Smag Center'''&lt;br /&gt;
&lt;br /&gt;
Help mower to not generate In/OUT transition in the middle of big area.  To find correct value ,simply put the mower in the middle area as far as possible from the wire and use Smag value.&lt;br /&gt;
&lt;br /&gt;
'''Tracking Max Speed PWM''' &lt;br /&gt;
&lt;br /&gt;
it's the tracking speed (lower value help to have a smooth tracking on curve)&lt;br /&gt;
&lt;br /&gt;
'''Circle Arc Distance...'''&lt;br /&gt;
&lt;br /&gt;
If mower find obstacle while tracking : it reverse,Roll 45 Deg and make a circle to find again the wire.&lt;br /&gt;
&lt;br /&gt;
'''Perimeter MAG MAX VALUE'''&lt;br /&gt;
&lt;br /&gt;
Put mower directly upper the wire and use here the maximum Mag value.&lt;br /&gt;
&lt;br /&gt;
'''Transition Timeout'''&lt;br /&gt;
&lt;br /&gt;
When tracking,Mower need to change from inside to outside using the PID, but if it fail after this transition time one wheel is stop to find again the wire.&lt;br /&gt;
If too important the mower can  fail tracking on 90 deg angle .&lt;br /&gt;
&lt;br /&gt;
'''Track Error Timeout'''&lt;br /&gt;
&lt;br /&gt;
If mower can't find In/OUt transition during this delay it's error.&lt;br /&gt;
&lt;br /&gt;
'''Track PID'''&lt;br /&gt;
&lt;br /&gt;
The Pid is use to smooth the tracking and need to be adjust according your platform (Distance between wheel and receiver coil,motor react speed etc..)&lt;br /&gt;
&lt;br /&gt;
'''Coil Polarity'''&lt;br /&gt;
&lt;br /&gt;
Do not change ,It's better to invert the wire at sender output.&lt;br /&gt;
&lt;br /&gt;
'''Read the 2 coils'''&lt;br /&gt;
&lt;br /&gt;
Only for dev test : Do not change&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Block inner wheel'''&lt;br /&gt;
&lt;br /&gt;
If YES the 2 wheels always roll forward , if NO one wheel can reverse to find again wire on big angle for example.&lt;br /&gt;
&lt;br /&gt;
'''Reduce Speed Near Wire'''&lt;br /&gt;
&lt;br /&gt;
If YES mower reduce the forward speed when near perimeter&lt;br /&gt;
&lt;br /&gt;
'''Actual Speed Coeff'''&lt;br /&gt;
&lt;br /&gt;
It's the real time value of speed ratio when mower approach the wire&lt;br /&gt;
&lt;br /&gt;
===IMU Wiring and Setting===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====MPU-9250 IMU WIRING TO PCB1.3====&lt;br /&gt;
'''MPU-9250 or 55 is not really stable''' (can work many hours or fail after some minutes without any particular reason) ,so it's better to use GY-88 / GY-521 + GY-273 more stable module&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:MPU-9250.jpg|400px]] &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Optional : It's possible to shunt the onboard DC/DC converter (NEVER PUT 5V on VCC with this option)&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-20.jpg|400px]] &lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
If you have some I2C error it's also possible to connect IMU on other location like I2C5 and JC5 to 3.3V to have a different pullup resistor.&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-40.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-88 IMU WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  G_ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-88.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-521 ACCEL/GYRO WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
 IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-521.jpg|400px]] [[Datei:GY-521-1.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
GY-521 don't have compass ,so you need to deactivate Compass into arduremote/setting/IMU or add a GY-273 module&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
====GY-273 COMPASS WIRING TO PCB1.3====&lt;br /&gt;
On the net you can find different module with fake chips like this one (Note HMC5883L on PCB but it's a QMC5883L),so you need to set the correct compass name into mower.cpp if it don't work with standard setting.&lt;br /&gt;
&lt;br /&gt;
 IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Gy-273-1.jpg|400px]] [[Datei:Gy-273-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C4 port and do not forget JC4 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:Gy-273-3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
GY-273 is a compass that you use with GY-521 you need to activate Compass into arduremote/setting/IMU.'''And do not forget to calibrate it'''.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-87 WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC_IN &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-87.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On GY-87 you can't change I2C adress and it's the same as RTC so you can't connect it on normal I2C port.&lt;br /&gt;
'''Connect module on I2C1 I2C_DUE'''&lt;br /&gt;
&lt;br /&gt;
[[Datei:GY-87-1.jpg|400px]] [[Datei:GY-87-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Select the correct firmware into Github&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===IMU Main Setting===&lt;br /&gt;
&lt;br /&gt;
MPU9255/9255-&amp;gt; [[Datei:ArduRemote_Setting_Imu_1.jpg|200px]]  [[Datei:ArduRemote_Setting_Imu_2.jpg|200px]]  or GY88/GY87-&amp;gt;[[Datei:ArduRemote_GY88.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
More info on IMU ,But no sensor fusion and not the same calibration process : [[Azurit_Firmware_(English)#IMU]]&lt;br /&gt;
&lt;br /&gt;
Here the video of IMU running to keep the heading : https://youtu.be/gxCrIb5geJM&lt;br /&gt;
&lt;br /&gt;
Imu (except GY-521) is composed by 2 parts : Compass and Gyro/Accel.&lt;br /&gt;
&lt;br /&gt;
Compass use magnetic earth field and is disturb by all motor and electronics in the mower, so it's very difficult to have correct value (for example a change of 10 deg is possible if you move the mower for only 1 deg). But it's reliable (If indicate 25 Deg and roll for 360 deg or wait 10 minutes it's always 25 Deg)&lt;br /&gt;
&lt;br /&gt;
Gyro/Accel is very accurate (+/- 1 or 2 deg) but can drift over time, (If indicate 25Deg and you wait 5 minute it can be 30Deg, but when you rotate slowly the mower you can see that everything is OK from 0 to 179 and from -179 to 0 Deg)&lt;br /&gt;
&lt;br /&gt;
The firmware can use or not the compass (Simply test and use the best according the location of the IMU in your platform)&lt;br /&gt;
&lt;br /&gt;
If GY-88/GY-87/GY-521 IMU are used ,you need to calibrate GYRO/ACCEL on the initial installation: Simply Go To ''Setting /  IMU'', press the ACCEL/GYRO initial calibration and wait 1 or 2 minutes without moving the mower (Arduremote lost connection during the process and it's normal if arduino ide is connected you can see the process in the console).&lt;br /&gt;
&lt;br /&gt;
For MPU/9255 or 9250 this process is automatically done on each start of the mower,so you can't see the button in arduremote .&lt;br /&gt;
&lt;br /&gt;
'''IMU Use'''&lt;br /&gt;
&lt;br /&gt;
Use or not the IMU (By lane require IMU to work correctly).&lt;br /&gt;
&lt;br /&gt;
'''Compass Use'''&lt;br /&gt;
if you use  GY-521 alone, you need to deactivate compass.Or if your IMU is locate near electronics or motor you can't calibrate it correctly ,so it's better to deactivate compass : Bylane mowing can result on drifting in parallel lane without compass but not always an issue in normal mowing condition.&lt;br /&gt;
&lt;br /&gt;
Compass don't add a very important behaviour, so it's better to not use it or be sure that the Compass yaw result is not perturb by motor magnetic fields.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Stop Mow Motor During Calib'''&lt;br /&gt;
&lt;br /&gt;
It's possible to stop the mow motor to avoid compass noise but not really useful.&lt;br /&gt;
&lt;br /&gt;
'''P I D '''&lt;br /&gt;
&lt;br /&gt;
Like for the motor the PID need to be adjust if the mower don't drive smoothly in straight lane, Try to change the mower heading with your foot and normally the mower retrieve rapidly the precedent heading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calibration Max Duration '''&lt;br /&gt;
&lt;br /&gt;
When mower stop to adjust the Compass value to GYRO/ACCEL , the drift is check,If the drift is always present ,Mower continue to mow after this delay,but only in random mode.&lt;br /&gt;
&lt;br /&gt;
'''Delay between 2 calib'''&lt;br /&gt;
&lt;br /&gt;
Each time this delay is trig ,Mower stop , roll to find the compass actual heading and stop again to check if the drift is small,If it's OK heading is automatically adjust to continue to mow in always the same direction from north for example.If compass is not activate ,only drift is check.&lt;br /&gt;
&lt;br /&gt;
'''Drift Maxi in Deg per Second''&lt;br /&gt;
&lt;br /&gt;
When mower stop to calibrate ,This value is used to restart or wait again until drift stop.&lt;br /&gt;
&lt;br /&gt;
'''Speed to find ComYaw'''&lt;br /&gt;
&lt;br /&gt;
At the begin of calibration, mower roll and read compass,but it's possible to reduce Roll speed to find easily a new value.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====SETTING Without Compass====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to YES'''&lt;br /&gt;
&lt;br /&gt;
Set Compass Use to NO and leave all setting to default.In this case, Heading 0 is the start position of the mower&lt;br /&gt;
&lt;br /&gt;
To check if it's OK:&lt;br /&gt;
&lt;br /&gt;
Go To : ''Main Menu / Test IMU''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_test_imu.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Maybe you need to reduce the motor PWM max speed if the test fail sometime (The mower need to roll slowly)&lt;br /&gt;
&lt;br /&gt;
Start to mow in random mode and change the mower heading with your foot (If IMU is OK The mower need to always keep the heading)&lt;br /&gt;
&lt;br /&gt;
Without Compass you can see that the Bylane mowing is not perfectly parallel over time&lt;br /&gt;
&lt;br /&gt;
Only the GYRO Yaw is updated in arduremote setting.&lt;br /&gt;
&lt;br /&gt;
On Normal mowing mode you can see the mower stop every 'Delay between 2 calib' seconds and wait until the GYRO/ACCEL drift is inferior to 'Drift Maxi in Deg per second' value.If this process fail, mower continue to mow in random mode.&lt;br /&gt;
&lt;br /&gt;
====SETTING With Compass====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Set Compass Use to YES and leave all setting to default.  &lt;br /&gt;
&lt;br /&gt;
You need To DO the Compass calibration each time you change IMU location in the mower or add metal/Magnet near IMU&lt;br /&gt;
&lt;br /&gt;
Start and stop the compass calibration  : click one time to start and move the entire mower around all axes until no new data coming in the Console click again to stop and save the new calibration data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:compass_calib.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on the setting Imu arduremote page you can see the GYRO Yaw and Compass YAW value according to magnetic earth field.It's normal to don't have the 2 same values after 10 or 30 seconds or after roll the mower.And you can discover the main difference between GYRO/ACCEL and COMPASS.&lt;br /&gt;
&lt;br /&gt;
Heading 0 is normally North if no metal or magnet near compass.&lt;br /&gt;
&lt;br /&gt;
On Normal mowing mode you can see the mower stop every 'Delay between 2 calib' seconds , Roll until the compass find the lane heading and wait until the GYRO/ACCEL drift is inferior to 'Drift Maxi in Deg per second' value.If this process fail, mower continue to mow in random mode.&lt;br /&gt;
&lt;br /&gt;
===TIMER setting===&lt;br /&gt;
[[Datei:ArduRemote_Timer_0.jpg|200px]]  [[Datei:ArduRemote_Timer_1.jpg|200px]]  [[Datei:ArduRemote_Timer_2.jpg|200px]]  [[Datei:ArduRemote_Timer_3.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
The Timer is used to mow in full automatic mode for month or week.Timer can be trigger only if the mower is not into charge state.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]When you use the Go To Station from Arduremote the mower return to charging station and stop to check the Timer for the next 1 or 2 hours.&lt;br /&gt;
To do test and reuse timer ,you need to send OFF from arduremote when mower is in the station and wait 1 minute to see the mower start again from station using timer setting.&lt;br /&gt;
&lt;br /&gt;
On the first page the Use NO at the top deactivate all timer and leave mower in station.  Set it to yes and set up one of the 5 timer to make it work.&lt;br /&gt;
&lt;br /&gt;
Always Avoid that one timer stop later than other start or the opposite,or you can see strange behaviour.&lt;br /&gt;
&lt;br /&gt;
Start dist/Station is the distance the mower track the perimeter wire before start to mow.&lt;br /&gt;
&lt;br /&gt;
Use Beacon is here to use with RFID fast start process.&lt;br /&gt;
&lt;br /&gt;
Start Pattern can be Wire(Mower start from station ,mow the entire wire and back in station for the next hour) , LANE (it's parallel lane mowing mode) or Random.&lt;br /&gt;
&lt;br /&gt;
Start Area is used to select the correct mowing area, the Start dist/Station begin at the entry point of the new area.(ONLY POSSIBLE With RFID Option)&lt;br /&gt;
&lt;br /&gt;
Start Lane NR can be 1 2 or 3 like you define in the By Lane setting.&lt;br /&gt;
&lt;br /&gt;
Start Roll Dir is the roll direction Left or Right when the By Lane is in used.&lt;br /&gt;
&lt;br /&gt;
Start Max Lane Length is the distance max that mower drive on By Lane Mowing mode.&lt;br /&gt;
&lt;br /&gt;
Set to current time help to fill the start and stop sliders.&lt;br /&gt;
&lt;br /&gt;
===BYLANE setting===&lt;br /&gt;
[[Datei:mow_lane_result.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
To have acces to all setting the Dev mode need to be activate:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DevToYes.png|210px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Byllane_1.jpg|210px]]  [[Datei:ArduRemote_Setting_Byllane_2.jpg|210px]]  [[Datei:ArduRemote_Setting_Byllane_3.jpg|210px|]]&lt;br /&gt;
&lt;br /&gt;
Using IMU and ODOMETRY  mower can mow in parallel lane faster than random mode, but you need to correctly setup IMU to have good and fast result.&lt;br /&gt;
&lt;br /&gt;
3 mains Lane are set ,Factory are 45, 90 and 135 degrees (Avoid value near 0).&lt;br /&gt;
For each Lane 2 opposites reverse heading are possible according the ROLL dir at the end of the initial lane.&lt;br /&gt;
So you need to adjust 9 angles, 3 for each lane.&lt;br /&gt;
&lt;br /&gt;
'''Change Lane in use''' Click to use the next lane&lt;br /&gt;
&lt;br /&gt;
'''Change next Roll Direction''' Click and mower change the next roll dir when reach the perimetr wire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''THIS Menu is Dynamic so Setting are made in live mode''' : Start to mow and see the menu changing (from Fixed Yaw to Yaw opposite right or left) each time mower stop and reverse,For first test : leave the Fixed Yaw to factory and adjust the left and right Yaw Opposite according the mower real time behaviour.&lt;br /&gt;
&lt;br /&gt;
For example if for the lane 1 you set a fixed yaw to 45 deg, you can set Yaw opposite 1 Roll Left to -135 or -134 . In this case the mower mow perfect parallel lane (reverse heading is exactly the opposite of fixed one)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bylane 2.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other example if for the lane 1 you set a fixed yaw to 45 deg, you can set Yaw opposite 1 Roll Right to -120 , the mower mow in a kind of Zig Zag and go fast from one side of area to the other.&lt;br /&gt;
&lt;br /&gt;
When mower is lock by a curve in wire perimeter (Red Circle in Picture) the Lane NR is automatically change and the IMU calibration start again to adjust Compass and GYRO, by this way it's possible to always mow on same heading in the garden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bylane 1.png|640px]]&lt;br /&gt;
&lt;br /&gt;
'''Dist Between lane''' It's the distance between 2 parallel lane according the weight of your mower.&lt;br /&gt;
&lt;br /&gt;
'''Lane Max length''' It help to reduce the error on IMU heading (Set length &amp;lt; 10 meters if you really want that mower mow perfectly parallel or set to max with a small difference in the 2 opposite YAW if you want to have a fast mowing mode,in this case it's not perfectly parallel but mow really faster)&lt;br /&gt;
&lt;br /&gt;
===BATTERY setting===&lt;br /&gt;
[[Datei:ArduRemote_Setting_Battery_1.jpg|200px]]  [[Datei:ArduRemote_Setting_Battery_2.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Use the Monitor option to auto stop the PCB and protect Battery.'''BETTER to leave it always YES'''.     And always YES if there is no BMS into your battery pack.&lt;br /&gt;
&lt;br /&gt;
'''Charge Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from charging station voltage.&lt;br /&gt;
&lt;br /&gt;
'''Battery Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from battery voltage.&lt;br /&gt;
&lt;br /&gt;
'''Sense Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from sense charging.&lt;br /&gt;
&lt;br /&gt;
'''Go Home if Volt below''' &lt;br /&gt;
&lt;br /&gt;
In mowing mode the mower automatically return to station when battery voltage is below this value.&lt;br /&gt;
&lt;br /&gt;
'''Switch off after minutes''' &lt;br /&gt;
&lt;br /&gt;
When mower is OFF or in ERROR state, PCB automatically shutdown after this delay ('''REQUIRE JP8 in AUTO MODE''')&lt;br /&gt;
&lt;br /&gt;
'''Switch off if Volt below''' &lt;br /&gt;
&lt;br /&gt;
PCB automatically shutdown if battery voltage is too low  ('''REQUIRE JP8 in AUTO MODE''')&lt;br /&gt;
&lt;br /&gt;
'''Start charge if Voltage below''' &lt;br /&gt;
&lt;br /&gt;
When mower reach the charging station, the charging start and you can see the 2 values (Charge and sense just upper this line).Be careful when testing ,if the battery is not really empty the charge don't start each time, it's a electronic result (you can see the battery voltage increase very fast), but in normal working mode, all work perfectly.&lt;br /&gt;
&lt;br /&gt;
'''Stop charge if Sense below''' &lt;br /&gt;
&lt;br /&gt;
You can set here the minimum Sense that the battery drain at the end of the charging process.If too low the charging process is automatically stop after 5 hours and a message is send on the Console.&lt;br /&gt;
&lt;br /&gt;
===SONAR setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Sonar.jpg|200px]]  [[Datei:JSN_SR04T.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Firmware is tested for this type of Sonar : JSN-SR04T &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sonar can be used like a bumper : When trigge, mower speed is reduce and mower stop after the detection distance without hitting obstacle. &lt;br /&gt;
&lt;br /&gt;
Or Sonar can simply reduce motor speed for the next 3 seconds.&lt;br /&gt;
&lt;br /&gt;
Into mower.cpp you can simply change this line to true to change behaviour&lt;br /&gt;
&lt;br /&gt;
  sonarLikeBumper            =false;      //ultrasonic reduce speed vs bumper like&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sonar brake below'''&lt;br /&gt;
&lt;br /&gt;
Only this distance is scan by the sonar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sonar To Front Dist'''&lt;br /&gt;
&lt;br /&gt;
Distance between front of mower and sonar location, useful to never touch obstacle.&lt;br /&gt;
&lt;br /&gt;
===RAIN TEMP setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Rain.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''Rain Use''' &lt;br /&gt;
&lt;br /&gt;
set to YES if you want that Mower go to station when rain sensor is trig&lt;br /&gt;
&lt;br /&gt;
'''DHT22Use''' &lt;br /&gt;
&lt;br /&gt;
set to YES if you have connected a DHT22 sensor on PCB1.3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Maximum Temperature''' &lt;br /&gt;
&lt;br /&gt;
When DHT22 temp is upper this value the mower goes into ERROR and the PCB is totally power OFF.&lt;br /&gt;
To be tested ,maybe bug here.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OLED Screen setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:OLED_PCB1.3_wiring.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In AZURITBER Ver &amp;gt;= 1.6 It's possible to connect small OLED screen on the PCB1.3 I2C1 port&lt;br /&gt;
&lt;br /&gt;
Resolution is fixed to 128 * 64 pixel and can use 1.3 or 0.96 pouce  screen&lt;br /&gt;
&lt;br /&gt;
The oled need to be I2C U8G2 compatible, so SSD1306 or SH1106 I2C model :&lt;br /&gt;
&lt;br /&gt;
https://www.marotronics.de/Ecran-OLED-096-bleu-jaune-I2C-SPI-128x64-SSD1106-pour-Arduino-Raspberry-Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You need to Enable it into mower.h line 128&lt;br /&gt;
&lt;br /&gt;
 #define Enable_Screen true&lt;br /&gt;
 *      //#define Enable_Screen false&lt;br /&gt;
&lt;br /&gt;
And select the correct model into screen.cpp . Factory setting are for 1.3 Pouce model from Ebay.&lt;br /&gt;
 &lt;br /&gt;
 U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);&lt;br /&gt;
 U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);&lt;br /&gt;
&lt;br /&gt;
According the status of the mower Oled show different screen :&lt;br /&gt;
&lt;br /&gt;
In OFF mode :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_OFF.png|200px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While mower running :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_mow.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When Charging :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_charge.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When into station waiting for next timer start :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_station.png|200px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&amp;diff=10361</id>
		<title>AzuritBer ESP32 option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&amp;diff=10361"/>
				<updated>2022-05-01T07:46:54Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Firmware Upload */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
&lt;br /&gt;
This option require that you have WIFI on your mowing area using for example a outdoor WIFI repeater on your roof.&lt;br /&gt;
&lt;br /&gt;
Bluetooth is limited to only 10/20 meter in free view, but with this option you can use PFOD APP over WIFI inside your house and control mower at long distance.&lt;br /&gt;
You can also control the mower using Home Automation from your browser, but need a Mosquito broker running on a machine in your lan.&lt;br /&gt;
&lt;br /&gt;
Hardware is the PCB1.3 / 1.4 and the standard HC05 BT module is replace by an ESP32 one .&lt;br /&gt;
&lt;br /&gt;
A special firmware is upload inside ESP32 to manage WIFI connection to PFODAPP and the MQTT protocol if you want to use with home automation.&lt;br /&gt;
&lt;br /&gt;
Wiring diagram:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ESP32_PCB_wiring.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Firmware Upload==&lt;br /&gt;
&lt;br /&gt;
Code is locate into github: https://github.com/Boilevin/AzuritBer/tree/master/ESP32_RFID_mqtt&lt;br /&gt;
&lt;br /&gt;
Into config.h you have to adjust some line.Everything is explain in the code ,so simply read and adjust according your config.&lt;br /&gt;
&lt;br /&gt;
Do not forget to set this line to false if RFID PCB is not connected: &lt;br /&gt;
&lt;br /&gt;
 #define rfid_board_IsPluged false //Set to true or false according your hardware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:esp32_config.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
To upload code into ESP32, You can use Arduino IDE , It's easy and exactly same process that for Arduino DUE or Mega ,but need to select the correct board.&lt;br /&gt;
&lt;br /&gt;
Add the ESP32 board to your arduino IDE:&lt;br /&gt;
for more info see : https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/#:~:text=%20To%20install%20the%20ESP32%20board%20in%20your,button%20for%20the%20%E2%80%9C%20ESP32%20by...%20More%20&lt;br /&gt;
&lt;br /&gt;
Open your Arduino Ide 1.8 or later&lt;br /&gt;
&lt;br /&gt;
Select ESP32 DEV Module and correct COM port ( Image 1 and 2 )&lt;br /&gt;
&lt;br /&gt;
 '''do not forget to change the partition scheme (See Image 3 )''' &lt;br /&gt;
&lt;br /&gt;
App is too big for standard ide setting.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ide-setting-30.png|400px]] &lt;br /&gt;
[[Datei:ide-setting-35.png|400px]]&lt;br /&gt;
[[Datei:Esp32 huge app.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When you upload code : At the end of compilation when you see &amp;quot;connecting .....&amp;quot; --&amp;gt; push the BOOT button locate on ESP32 DEV KIT for 5 sec until uploading begin.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ide-setting-40.png|400px]]&lt;br /&gt;
[[Datei:esp32 boot.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==PFOD ARDUREMOTE CONNECTION==&lt;br /&gt;
&lt;br /&gt;
ARDUREMOTE actually support only Bluetooth connection , so use BT to connect to mower.&lt;br /&gt;
&lt;br /&gt;
First you need to connect your Phone or tablet to correct WIFI point.If mower can't find your home wifi on startup it change to AP mode , so you can see in your WIFI list a new apparel named ROBOMOWER ,Try to connect to it without password, else if you use the station mode ,simply connect your phone to your router .&lt;br /&gt;
&lt;br /&gt;
[[Datei:WIFI_AP.jpg|200px]] Mower is the ACCES POINT ,No connection with your home network. Mower IP address is  192.168.4.1&lt;br /&gt;
&lt;br /&gt;
[[Datei:WIFI_STA.jpg|200px]] Mower is connected to your home network. Mower IP address is the one you set in config.h&lt;br /&gt;
&lt;br /&gt;
In Pfod app you need to set the correct IP and Port according the value you have in ESP32 firmware config.h.&lt;br /&gt;
&lt;br /&gt;
Start Pfod and simply follow these picture:&lt;br /&gt;
&lt;br /&gt;
[[Datei:pfodwifi01.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:pfodwifi02.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:pfodwifi03.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:pfodwifi04.jpg|200px]] &lt;br /&gt;
&lt;br /&gt;
Pfod App name is what you want.In this picture IP adress: 192.168.4.1 is the mower ACCES POINT one.&lt;br /&gt;
&lt;br /&gt;
After saving and go back ,Simply select the Pfod App name in Pfodapp connect menu.&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&amp;diff=10360</id>
		<title>AzuritBer ESP32 option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&amp;diff=10360"/>
				<updated>2022-05-01T07:46:14Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Firmware Upload */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
&lt;br /&gt;
This option require that you have WIFI on your mowing area using for example a outdoor WIFI repeater on your roof.&lt;br /&gt;
&lt;br /&gt;
Bluetooth is limited to only 10/20 meter in free view, but with this option you can use PFOD APP over WIFI inside your house and control mower at long distance.&lt;br /&gt;
You can also control the mower using Home Automation from your browser, but need a Mosquito broker running on a machine in your lan.&lt;br /&gt;
&lt;br /&gt;
Hardware is the PCB1.3 / 1.4 and the standard HC05 BT module is replace by an ESP32 one .&lt;br /&gt;
&lt;br /&gt;
A special firmware is upload inside ESP32 to manage WIFI connection to PFODAPP and the MQTT protocol if you want to use with home automation.&lt;br /&gt;
&lt;br /&gt;
Wiring diagram:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ESP32_PCB_wiring.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Firmware Upload==&lt;br /&gt;
&lt;br /&gt;
Code is locate into github: https://github.com/Boilevin/AzuritBer/tree/master/ESP32_RFID_mqtt&lt;br /&gt;
&lt;br /&gt;
Into config.h you have to adjust some line.Everything is explain in the code ,so simply read and adjust according your config.&lt;br /&gt;
&lt;br /&gt;
Do not forget to set this line to false if RFID PCB is not connected: &lt;br /&gt;
&lt;br /&gt;
 #define rfid_board_IsPluged false //Set to true or false according your hardware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:esp32_config.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
To upload code into ESP32, You can use Arduino IDE , It's easy and exactly same process that for Arduino DUE or Mega ,but need to select the correct board.&lt;br /&gt;
&lt;br /&gt;
Add the ESP32 board to your arduino IDE:&lt;br /&gt;
for more info see : https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/#:~:text=%20To%20install%20the%20ESP32%20board%20in%20your,button%20for%20the%20%E2%80%9C%20ESP32%20by...%20More%20&lt;br /&gt;
&lt;br /&gt;
Open your Arduino Ide 1.8 or later&lt;br /&gt;
&lt;br /&gt;
Select ESP32 DEV Module and correct COM port&lt;br /&gt;
&lt;br /&gt;
 '''do not forget to change the partition scheme (See Image 3 )''' &lt;br /&gt;
&lt;br /&gt;
App is too big for standard ide setting.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ide-setting-30.png|400px]] &lt;br /&gt;
[[Datei:ide-setting-35.png|400px]]&lt;br /&gt;
[[Datei:Esp32 huge app.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When you upload code : At the end of compilation when you see &amp;quot;connecting .....&amp;quot; --&amp;gt; push the BOOT button locate on ESP32 DEV KIT for 5 sec until uploading begin.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ide-setting-40.png|400px]]&lt;br /&gt;
[[Datei:esp32 boot.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==PFOD ARDUREMOTE CONNECTION==&lt;br /&gt;
&lt;br /&gt;
ARDUREMOTE actually support only Bluetooth connection , so use BT to connect to mower.&lt;br /&gt;
&lt;br /&gt;
First you need to connect your Phone or tablet to correct WIFI point.If mower can't find your home wifi on startup it change to AP mode , so you can see in your WIFI list a new apparel named ROBOMOWER ,Try to connect to it without password, else if you use the station mode ,simply connect your phone to your router .&lt;br /&gt;
&lt;br /&gt;
[[Datei:WIFI_AP.jpg|200px]] Mower is the ACCES POINT ,No connection with your home network. Mower IP address is  192.168.4.1&lt;br /&gt;
&lt;br /&gt;
[[Datei:WIFI_STA.jpg|200px]] Mower is connected to your home network. Mower IP address is the one you set in config.h&lt;br /&gt;
&lt;br /&gt;
In Pfod app you need to set the correct IP and Port according the value you have in ESP32 firmware config.h.&lt;br /&gt;
&lt;br /&gt;
Start Pfod and simply follow these picture:&lt;br /&gt;
&lt;br /&gt;
[[Datei:pfodwifi01.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:pfodwifi02.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:pfodwifi03.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:pfodwifi04.jpg|200px]] &lt;br /&gt;
&lt;br /&gt;
Pfod App name is what you want.In this picture IP adress: 192.168.4.1 is the mower ACCES POINT one.&lt;br /&gt;
&lt;br /&gt;
After saving and go back ,Simply select the Pfod App name in Pfodapp connect menu.&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&amp;diff=10359</id>
		<title>AzuritBer ESP32 option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&amp;diff=10359"/>
				<updated>2022-05-01T07:45:27Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Firmware Upload */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
&lt;br /&gt;
This option require that you have WIFI on your mowing area using for example a outdoor WIFI repeater on your roof.&lt;br /&gt;
&lt;br /&gt;
Bluetooth is limited to only 10/20 meter in free view, but with this option you can use PFOD APP over WIFI inside your house and control mower at long distance.&lt;br /&gt;
You can also control the mower using Home Automation from your browser, but need a Mosquito broker running on a machine in your lan.&lt;br /&gt;
&lt;br /&gt;
Hardware is the PCB1.3 / 1.4 and the standard HC05 BT module is replace by an ESP32 one .&lt;br /&gt;
&lt;br /&gt;
A special firmware is upload inside ESP32 to manage WIFI connection to PFODAPP and the MQTT protocol if you want to use with home automation.&lt;br /&gt;
&lt;br /&gt;
Wiring diagram:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ESP32_PCB_wiring.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Firmware Upload==&lt;br /&gt;
&lt;br /&gt;
Code is locate into github: https://github.com/Boilevin/AzuritBer/tree/master/ESP32_RFID_mqtt&lt;br /&gt;
&lt;br /&gt;
Into config.h you have to adjust some line.Everything is explain in the code ,so simply read and adjust according your config.&lt;br /&gt;
&lt;br /&gt;
Do not forget to set this line to false if RFID PCB is not connected: &lt;br /&gt;
&lt;br /&gt;
 #define rfid_board_IsPluged false //Set to true or false according your hardware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:esp32_config.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
To upload code into ESP32, You can use Arduino IDE , It's easy and exactly same process that for Arduino DUE or Mega ,but need to select the correct board.&lt;br /&gt;
&lt;br /&gt;
Add the ESP32 board to your arduino IDE:&lt;br /&gt;
for more info see : https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/#:~:text=%20To%20install%20the%20ESP32%20board%20in%20your,button%20for%20the%20%E2%80%9C%20ESP32%20by...%20More%20&lt;br /&gt;
&lt;br /&gt;
Open your Arduino Ide 1.8 or later&lt;br /&gt;
&lt;br /&gt;
Select ESP32 DEV Module and correct COM port, '''do not forget to change the partition scheme (See Image 3 ''' , app is too big for standard ide setting.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ide-setting-30.png|400px]] &lt;br /&gt;
[[Datei:ide-setting-35.png|400px]]&lt;br /&gt;
[[Datei:Esp32 huge app.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When you upload code : At the end of compilation when you see &amp;quot;connecting .....&amp;quot; --&amp;gt; push the BOOT button locate on ESP32 DEV KIT for 5 sec until uploading begin.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ide-setting-40.png|400px]]&lt;br /&gt;
[[Datei:esp32 boot.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==PFOD ARDUREMOTE CONNECTION==&lt;br /&gt;
&lt;br /&gt;
ARDUREMOTE actually support only Bluetooth connection , so use BT to connect to mower.&lt;br /&gt;
&lt;br /&gt;
First you need to connect your Phone or tablet to correct WIFI point.If mower can't find your home wifi on startup it change to AP mode , so you can see in your WIFI list a new apparel named ROBOMOWER ,Try to connect to it without password, else if you use the station mode ,simply connect your phone to your router .&lt;br /&gt;
&lt;br /&gt;
[[Datei:WIFI_AP.jpg|200px]] Mower is the ACCES POINT ,No connection with your home network. Mower IP address is  192.168.4.1&lt;br /&gt;
&lt;br /&gt;
[[Datei:WIFI_STA.jpg|200px]] Mower is connected to your home network. Mower IP address is the one you set in config.h&lt;br /&gt;
&lt;br /&gt;
In Pfod app you need to set the correct IP and Port according the value you have in ESP32 firmware config.h.&lt;br /&gt;
&lt;br /&gt;
Start Pfod and simply follow these picture:&lt;br /&gt;
&lt;br /&gt;
[[Datei:pfodwifi01.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:pfodwifi02.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:pfodwifi03.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:pfodwifi04.jpg|200px]] &lt;br /&gt;
&lt;br /&gt;
Pfod App name is what you want.In this picture IP adress: 192.168.4.1 is the mower ACCES POINT one.&lt;br /&gt;
&lt;br /&gt;
After saving and go back ,Simply select the Pfod App name in Pfodapp connect menu.&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_Firmware_(English)&amp;diff=10357</id>
		<title>AzuritBer Firmware (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_Firmware_(English)&amp;diff=10357"/>
				<updated>2022-03-27T08:16:02Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* ODOMETRY Setting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=GITHUB Location=&lt;br /&gt;
&lt;br /&gt;
It's here:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Boilevin/AzuritBer GITHUB REPOSITORY]&lt;br /&gt;
&lt;br /&gt;
Process is the same as AZURIT :&lt;br /&gt;
&lt;br /&gt;
You need to upload all file to your PC and open ardumower.ino into arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Upload the code inside your DUE :&lt;br /&gt;
&lt;br /&gt;
On first start it's possible that EEPROM is empty (PCB Beep and start with ERROR) so you need to reset error counter and save setting.&lt;br /&gt;
&lt;br /&gt;
=Test requirements=&lt;br /&gt;
[[File:warning.png]]Security note: For security reasons, always remove mower blades in your first tests!&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]Important: For your first wheel motor tests, jack your robot so that the tires can run freely without ground contact!&lt;br /&gt;
&lt;br /&gt;
Prerequise to follow this WIKI: '''BT Module connected on PCB1.3 (ESP32 is also possible) and Pfod or Arduremote running into Android phone'''&lt;br /&gt;
&lt;br /&gt;
=What is AzuritBer and Why=&lt;br /&gt;
&lt;br /&gt;
AzuritBer was build for DENNA,ROBOMOW and PARANELLO platform and use Odometry or IMU to control the state change. &lt;br /&gt;
It can only run on DUE and Odometry is mandatory (minimum 400 ticks per rev).But it's possible to adjust setting to work on other platform.&lt;br /&gt;
 &lt;br /&gt;
This version always use odometry into all movement (reverse,roll etc...) .The result is a more smooth movement without pause between all the différents state and the possibility to mow by lane for big area and faster mowing&lt;br /&gt;
&lt;br /&gt;
Here video of the random mowing behaviour on 2 platform:&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/Abt5pcWz2H0&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/T5mH4yMyWus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 Usefull option are Raspberry PI and RFID module.&lt;br /&gt;
&lt;br /&gt;
At the beginning of the dev i need many debug message to perfectly adjust the firmware, so i add a raspberry and record all the mowing duration in a Console.&lt;br /&gt;
Actually PI is optional, but help a lot to find trouble in the behaviour and to communicate (With your PC,or home automation)&lt;br /&gt;
Other option is the RFID tag reader&lt;br /&gt;
&lt;br /&gt;
=Possible Option=&lt;br /&gt;
== WIFI ESP32 Sender ==&lt;br /&gt;
&lt;br /&gt;
Full description of the new  sender is here:&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=WIFI_Perimeter_Sender(English)&lt;br /&gt;
&lt;br /&gt;
[[Datei:wifi-sender1.png|400px]]  [[Datei:wifi-sender2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
if you have only one mowing area , you can use sender from shop : sender start when mower leave station and stop when mower is back or after a 5 hours timeout.&lt;br /&gt;
&lt;br /&gt;
But if you want to use RFID and multiple mowing area, Firmware need to control sender over WIFI and you need the new sender based on ESP32&lt;br /&gt;
&lt;br /&gt;
== WIFI and MQTT ==&lt;br /&gt;
&lt;br /&gt;
Full description is here :&lt;br /&gt;
&lt;br /&gt;
 [[AzuritBer_ESP32_option_(English)]]&lt;br /&gt;
&lt;br /&gt;
== RFID READER ==&lt;br /&gt;
&lt;br /&gt;
Full description is here :&lt;br /&gt;
&lt;br /&gt;
 [[AzuritBer_RFID_option_(English)]]&lt;br /&gt;
&lt;br /&gt;
== Raspberry PI==&lt;br /&gt;
Full description is here : &lt;br /&gt;
 &lt;br /&gt;
 [[AzuritBer_Pi_Firmware_(English)]]&lt;br /&gt;
&lt;br /&gt;
You can connect a Raspberry Pi to arduino DUE USB native port&lt;br /&gt;
&lt;br /&gt;
Optional 5 inch tactile screen can easily control all the mower and show many info on last mowing run.&lt;br /&gt;
&lt;br /&gt;
It's possible to access to mower from your Wifi and set everything from your Sofa (Including firmware upgrade)&lt;br /&gt;
&lt;br /&gt;
Home Automation can control the mower using MQTT message and start mowing according your automation.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|150px]] Bluetooth or WIFI (need esp01 connected on PCB1.3) control using arduremote &lt;br /&gt;
&lt;br /&gt;
[[Datei:Tactile screen .jpg|400px]] Manual control using tactile screen&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_auto.png|400px]] WIFI control using VNC Viewer (https://www.realvnc.com/fr/connect/download/viewer/) from your sofa&lt;br /&gt;
&lt;br /&gt;
[[Datei:home_assistant.png|400px]] WIFI control using mqtt and compatible software (here Home Assistant https://www.home-assistant.io/)&lt;br /&gt;
&lt;br /&gt;
=Standard Setup=&lt;br /&gt;
&lt;br /&gt;
Hardware is standard one : the PCB1.3 or 1.4 and simple BT module HC05&lt;br /&gt;
&lt;br /&gt;
The mower can run in full automatic mode inside a perimeter wire.&lt;br /&gt;
&lt;br /&gt;
Software add the ByLane and Wire mowing .&lt;br /&gt;
&lt;br /&gt;
Start using timer at different location on the perimeter wire with 3 possible mowing behaviour: Mow wire,Random Mode or By Lane Mode&lt;br /&gt;
&lt;br /&gt;
You can Acces to mower using Arduremote or Pfod over Bluetooth.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Install Firmware in DUE==&lt;br /&gt;
&lt;br /&gt;
In Github repo the MASTER version is the GY-521 version and the latest one.&lt;br /&gt;
&lt;br /&gt;
According your IMU module select the correct firmware from Github (GY-88,GY-87 and MPU-9250 are possible) by switching the branch.&lt;br /&gt;
&lt;br /&gt;
Note that the MPU-9250 is not always working perfectly (Noise on DC Motor freeze I2C line),On some 9250 chips you can see randomly I2C RTC error .So it's better to use GY-88 or GY-521 (More noise tolerant ??)&lt;br /&gt;
&lt;br /&gt;
If you see some freeze : first test for 2 or 3 hours with mow motor deactivate to be sure the motor noise is not too important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Github_link.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
After unzip the github repository ,open the ardumower folder and the ardumower.ino. Before uploading the sketch ,verify that into mower.h the line :&lt;br /&gt;
&lt;br /&gt;
 *          #define Console Serial&lt;br /&gt;
 *          //#define Console SerialUSB&lt;br /&gt;
&lt;br /&gt;
are set like that : uncomment #define Console Serial to receive Console message inside your PC arduino ide console and comment #define Console SerialUSB&lt;br /&gt;
&lt;br /&gt;
Upload sketch inside DUE using programming port.&lt;br /&gt;
&lt;br /&gt;
==Arduremote or PFOD APP==&lt;br /&gt;
&lt;br /&gt;
To control mower with a phone or tablet you need to use a software named ARDUREMOTE.&lt;br /&gt;
&lt;br /&gt;
You can easily install it using the Play Store from your phone&lt;br /&gt;
&lt;br /&gt;
==Main==&lt;br /&gt;
&lt;br /&gt;
If BT or WIFI connection is OK you can see main menu from Arduremote :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_main.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Command==&lt;br /&gt;
&lt;br /&gt;
===Arduremote===&lt;br /&gt;
Command menu is the mostly used menu to start and stop the mowing cycle manually.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''OFF''' is used to stop immediately the mower.&lt;br /&gt;
&lt;br /&gt;
'''Start Now''' start the mowing cycle according pattern selection.&lt;br /&gt;
&lt;br /&gt;
'''Actual Status state and mowing''' are only readable value and change when mower run.&lt;br /&gt;
&lt;br /&gt;
'''Pattern is''' is used to select what you want the mower cycle do:&lt;br /&gt;
&lt;br /&gt;
Possible value are :&lt;br /&gt;
&lt;br /&gt;
LANE -&amp;gt; mower mow in parallel lane according lane setting&lt;br /&gt;
&lt;br /&gt;
RANDOM -&amp;gt; mower change to a new random direction each time the wire is detected or bumper is hit or motor sense is too high.&lt;br /&gt;
&lt;br /&gt;
WIRE -&amp;gt; mower track the wire and mow the border of the area until find the station.&lt;br /&gt;
&lt;br /&gt;
'''GO TO STATION''' is used to send mower to charging station without mowing.&lt;br /&gt;
&lt;br /&gt;
'''POWER OFF PCB''' Power off all the mower.&lt;br /&gt;
&lt;br /&gt;
'''USER SWITCH''' are optional setting.&lt;br /&gt;
&lt;br /&gt;
=== Button connected on P20 ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:P20_Button.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
The Button connected on P20 is an easy mower command and work like that:&lt;br /&gt;
&lt;br /&gt;
If mower is in '''OFF state''':&lt;br /&gt;
&lt;br /&gt;
Push less than 1 sec = start mow in LANE&lt;br /&gt;
&lt;br /&gt;
Push it 2 seconds = start mow in RANDOM&lt;br /&gt;
&lt;br /&gt;
Push it more then 3 Seconds = GO TO STATION&lt;br /&gt;
&lt;br /&gt;
If mower is '''running''':&lt;br /&gt;
&lt;br /&gt;
Push it to stop immediately&lt;br /&gt;
&lt;br /&gt;
==Console==&lt;br /&gt;
&lt;br /&gt;
When you use the soft Without Raspberry PI Option, if you don't understand some behaviour ,it's possible to use console.&lt;br /&gt;
&lt;br /&gt;
Console show all the message you need for understanding why mower stop or reverse or roll etc....&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_console.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
Here the setting page.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting 1.jpg|200px]]  [[Datei:ArduRemote Setting 3.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Only For the first start, or with a new RTC eeprom :If you have error, you need to go into arduremote COMMAND and click on OFF to stop beep and in main menu ERROR COUNTER reset all error,next into setting, do a ''save setting''.&lt;br /&gt;
&lt;br /&gt;
Power OFF the PCB , do not forget also to disconnected the USB PC cable to be sure all restart correctly.&lt;br /&gt;
&lt;br /&gt;
Restart with PC connected on Due programming Port and the Ide console speed is set at 115200 bps .&lt;br /&gt;
&lt;br /&gt;
ARDUINO IDE CONSOLE SHOW (it's example using MPU9250 imu) :&lt;br /&gt;
&lt;br /&gt;
[[Datei:normal_start.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to YES'''&lt;br /&gt;
&lt;br /&gt;
===ODOMETRY Setting===&lt;br /&gt;
3 Values are require and need to be set in this order:&lt;br /&gt;
&lt;br /&gt;
'''Value 1'''&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Odometry.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
You need to set the correct ticks per one full revolution and check the result&lt;br /&gt;
&lt;br /&gt;
Go To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_Test_odo.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Use 1 turn Wheel FWD&lt;br /&gt;
&lt;br /&gt;
The wheel need to accelerate ,roll , brake and stop after exactly one revolution.&lt;br /&gt;
&lt;br /&gt;
Sample video : https://youtu.be/BV7MgO6jfwA&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW:&lt;br /&gt;
&lt;br /&gt;
[[Datei:wheel_1_rev.png]]&lt;br /&gt;
&lt;br /&gt;
Repeat the test with 5 turn Wheel FWD to be sure.&lt;br /&gt;
&lt;br /&gt;
'''Value 2'''&lt;br /&gt;
 &lt;br /&gt;
Back To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
Now you need to set the correct Ticks per cm according the diameter of the wheel.&lt;br /&gt;
&lt;br /&gt;
you can find the value by this formula: Ticks per one full revolution / (PI*diameter of the wheel) &lt;br /&gt;
&lt;br /&gt;
In this example the DENNA platform (diameter wheel is near 23 cm) : 720/(3.1415*23)=9.9&lt;br /&gt;
&lt;br /&gt;
So perimeter of the wheel is 3.1415*23 = 72.25 cm&lt;br /&gt;
&lt;br /&gt;
Ticks/cm = 720/72.25 = 9.96 ticks/cm&lt;br /&gt;
&lt;br /&gt;
Back To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
Now use the ''3 meters Forward'' command to see if the value is OK.&lt;br /&gt;
&lt;br /&gt;
Here the video : https://youtu.be/v-yzRV4FEWA&lt;br /&gt;
&lt;br /&gt;
The mower need to run forward for 3 meters .Adjust the value again if result is not 3 meters +/-10 cm&lt;br /&gt;
&lt;br /&gt;
'''Value 3'''&lt;br /&gt;
 &lt;br /&gt;
Back To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
Now you need to set the correct Wheel Base in cm .&lt;br /&gt;
&lt;br /&gt;
It's the distance between the 2 wheels. It is use to compute correctly all the mower roll movement.&lt;br /&gt;
&lt;br /&gt;
Back To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
Now use the Rotate 180 Deg and Rotate 360 Deg to verify the setting.Adjust the value again if result is not at +/- 5 Deg.&lt;br /&gt;
&lt;br /&gt;
Here the sample video : https://youtu.be/9uUA2qCqlrA&lt;br /&gt;
&lt;br /&gt;
Mower need to rotate according your choice.Change the Wheel Base in cm until you find 180 and 360 degrees&lt;br /&gt;
&lt;br /&gt;
===MOTOR Setting===&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Motor''&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_Setting_motor_01.jpg|200px]]  [[Datei:Arduremote_Setting_motor_2.jpg|200px]]  [[Datei:Arduremote_Setting_motor_30.jpg|200px]]  [[Datei:Arduremote_Setting_motor_4.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
First set the POWER MAX to 100 to be sure the motor don't stop.&lt;br /&gt;
&lt;br /&gt;
Set PWM max speed for example to 150 (Put mower on the mowing area in flat location and with 4 meters free forward) click '''''Calib Ticks/Second'''''  to approach the correct RPM value from PWM one ,mower need to move  and compute and save the new RPM value.&lt;br /&gt;
&lt;br /&gt;
You can now repeat this step until find the correct value fo rPWM and RPM.&lt;br /&gt;
&lt;br /&gt;
Each time you change PWM max value you need too calibrate again the ticks per second (Not needed for RPM)&lt;br /&gt;
&lt;br /&gt;
RPM is use into manual mode and auto forward mode, so to check a new value simply go to ''Main Menu / Manual '' and drive forward.&lt;br /&gt;
&lt;br /&gt;
PWM is use into automatic mode on all small movement (Rev,Roll,accel etc..) and need to be enough for the mower to move smoothly.&lt;br /&gt;
&lt;br /&gt;
If the wheel don't roll smoothly in manual forward ,maybe you need to adjust the RPM_P RPM_I and RPM_D&lt;br /&gt;
&lt;br /&gt;
See PID Control : [https://wiki.ardumower.de/index.php?title=PID_control]&lt;br /&gt;
&lt;br /&gt;
Always start with RPM_D=0 and move the 2 sliders RPM_P and RPM_I. RPM_P increase the changing speed and RPM_I smooth the speed when near the RPM max speed.&lt;br /&gt;
&lt;br /&gt;
You need to find a correct Manual / forward drive before continue with the ''Power max'' setting.&lt;br /&gt;
&lt;br /&gt;
'''Remember that at 80% of the power max the mower react like if a bumper is pressed.'''&lt;br /&gt;
&lt;br /&gt;
When PWM is OK you can adjust the power max value  ,simply deactivate bumper and In ''Manual / Forward'' stop the mower with your foot, normally the mower stop before the wheel slip. State change to OFF and into console you can see the according message.&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW with max power=12:&lt;br /&gt;
&lt;br /&gt;
[[Datei:motor_power.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do not forget to reactivate the Bumper.&lt;br /&gt;
&lt;br /&gt;
''Slope Adjust Speed'' Set to YES if you have slope on your mowing area it's help to have same Motor speed in Uphill and Downhill.&lt;br /&gt;
&lt;br /&gt;
''Actual Slope Coeff'' if Slope Adjust Speed is YES this real time value can change from 0.8 to 1.2 according Downhill and Uphill (Normaly near 1.00 on flat location)&lt;br /&gt;
&lt;br /&gt;
''Power ignore time'' On motor start the sense can have a peak. During this delay the sense is not read.&lt;br /&gt;
&lt;br /&gt;
''Roll Degrees max'' Into random mowing and after the mower find the wire and reverse it roll randomly with this maximum value.&lt;br /&gt;
&lt;br /&gt;
''Roll Degrees min'' Into random mowing and after the mower find the wire and reverse it roll randomly with this minimum value.&lt;br /&gt;
&lt;br /&gt;
''Rev Distance / Perimeter'' is the distance that mower drive after cross the perimeter wire to return inside mowing area (Always &amp;gt; Stop Distance / Perimeter).&lt;br /&gt;
&lt;br /&gt;
''Stop Distance / Perimeter'' is the distance that mower drive after cross the perimeter wire before stop.&lt;br /&gt;
&lt;br /&gt;
''MotorSenseScaleLeft'' and right are here to help to have a real Power, but the main is that at 80% of Power max : mower stop and reverse.&lt;br /&gt;
&lt;br /&gt;
''Swap Left Direction'' and right need to stay to NO and it's better to directly invert the motor wire + and -&lt;br /&gt;
&lt;br /&gt;
''PWM Right Forward Offset'' if the right and left motor don't rotate exactly at the same speed , You can use this setting to adjust and repeat the test ODO 1 rev forward until the 2 wheel stop at the same time.&lt;br /&gt;
&lt;br /&gt;
''PWM Right Reverse Offset'' Same setting but when mower reverse.&lt;br /&gt;
&lt;br /&gt;
'''''Speed ODO Minimum''''' Important setting : it's the minimum PWM that the firmware send to motor to have a movement.If too low the mower make pause between movement, if too high the movement are not perfectly smooth.&lt;br /&gt;
&lt;br /&gt;
''Speed ODO Maximum'' help on very small movement (less the 1/4 rev wheel)&lt;br /&gt;
&lt;br /&gt;
'''''Calib Ticks/Second''''' You need to do this once. The mower run forward for 1 or 2 wheel rev and compute the ticks / second. It is used on each movement to know the duration of the state according to the distance you want to drive.&lt;br /&gt;
&lt;br /&gt;
===MOW setting ===&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to NO or the blade never run and BE CARREFULL THE BLADE RUN'''&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Mow''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_mow_1.jpg|200px]]  [[Datei:ArduRemote_Setting_mow_2.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Mow motor can run at different speed according the high of grass.It's directly link to motor sense.&lt;br /&gt;
So you need to correctly set the max power of mow motor to have everything working correctly.&lt;br /&gt;
&lt;br /&gt;
Remember that at 80% of max power, mower start to mow in spiral mode, and at 100% of max power during 1 sec the motor is stop for more than 1 minute and restart automatically after, at a very high power the error hardware driver motor can also occur and you need a full power off to restart the mow motor &lt;br /&gt;
&lt;br /&gt;
To adjust everything try to find a location with medium high grass and low grass:&lt;br /&gt;
&lt;br /&gt;
Set the Power max to a small value (15 Watts for example)&lt;br /&gt;
 &lt;br /&gt;
Set the PWM Max speed to 255&lt;br /&gt;
&lt;br /&gt;
Set the PWM Min speed to 150&lt;br /&gt;
&lt;br /&gt;
Start to mow in auto mode in the low grass (The mow motor need to start at PWM=255 and reduce slowly during the next 10 seconds),now send the mower in high grass ,normally motor speed increase and spiral mowing start.&lt;br /&gt;
&lt;br /&gt;
If the spiral mowing start on low grass increase the Power max setting.&lt;br /&gt;
&lt;br /&gt;
Like for drive motor you can use calibrate mowsense to have a realistic sense,but the main is that mow spiral start on high grass and mow motor stop on overload in VERY HIGH GRASS.&lt;br /&gt;
&lt;br /&gt;
PWM coeff and actual PWM are actual (read only) value of the motor modulation.&lt;br /&gt;
&lt;br /&gt;
Mow Pattern Max Duration is used to change from Random mowing mode to Bylane mowing mode and avoid track on the mowing area.(The mower switch the 2 mode every 18 minutes in this case)&lt;br /&gt;
&lt;br /&gt;
===STATION setting===&lt;br /&gt;
&lt;br /&gt;
[[File:ArduRemote_setting_station.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''Station is blocking one , so the mower need to reverse to leave it.'''&lt;br /&gt;
&lt;br /&gt;
In schedule mode or start from station, mower use (IN THIS ORDER) reverse distance, Roll Angle and accel Distance after Roll to leave the station and start to find again perimeter wire to locate the mowing entry location according the timer setting, or track 1 meter if manual start from station.&lt;br /&gt;
&lt;br /&gt;
On Go Home mode mower track the wire and find the station (A voltage is detected on charging pin, or Bumper is pressed) it stop immediately and slowly go forward for the Station check Distance to be sure the contact is OK.&lt;br /&gt;
&lt;br /&gt;
If you use Right Sonar, the docking speed is reduce according to % of MaxSpeed each time something is detected while tracking the wire.&lt;br /&gt;
&lt;br /&gt;
On full schedule mode it's better to activate the Reboot after charging, by this way all variable are restore and everything work for week or month without any intervention.&lt;br /&gt;
&lt;br /&gt;
===PERIMETER setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Perimeter_1.jpg|200px]] [[Datei:ArduRemote_Setting_Perimeter_2.jpg|200px]] [[Datei:ArduRemote_Setting_Perimeter_03.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Main value is Mag and is negative when mower is inside area (near -2000 if mower inside and upper the wire).  In this case(139) the mower is outside at 3 meters of the wire.&lt;br /&gt;
&lt;br /&gt;
'''Mini Smag:'''&lt;br /&gt;
&lt;br /&gt;
Under this value the firmware estimate that the sender is OFF, so it's error.  To find the correct value simply put the mower in the area and unplug the sender (Read the Smag and add 20 or 30 , use slider to adjust MiniSmag)&lt;br /&gt;
&lt;br /&gt;
Check by start mowing and unplug the sender: Mower need to stop rapidly and go to error.&lt;br /&gt;
&lt;br /&gt;
'''Timeout(s) if outside :'''&lt;br /&gt;
&lt;br /&gt;
'''Big AREA Smag Center'''&lt;br /&gt;
&lt;br /&gt;
Help mower to not generate In/OUT transition in the middle of big area.  To find correct value ,simply put the mower in the middle area as far as possible from the wire and use Smag value.&lt;br /&gt;
&lt;br /&gt;
'''Tracking Max Speed PWM''' &lt;br /&gt;
&lt;br /&gt;
it's the tracking speed (lower value help to have a smooth tracking on curve)&lt;br /&gt;
&lt;br /&gt;
'''Circle Arc Distance...'''&lt;br /&gt;
&lt;br /&gt;
If mower find obstacle while tracking : it reverse,Roll 45 Deg and make a circle to find again the wire.&lt;br /&gt;
&lt;br /&gt;
'''Perimeter MAG MAX VALUE'''&lt;br /&gt;
&lt;br /&gt;
Put mower directly upper the wire and use here the maximum Mag value.&lt;br /&gt;
&lt;br /&gt;
'''Transition Timeout'''&lt;br /&gt;
&lt;br /&gt;
When tracking,Mower need to change from inside to outside using the PID, but if it fail after this transition time one wheel is stop to find again the wire.&lt;br /&gt;
If too important the mower can  fail tracking on 90 deg angle .&lt;br /&gt;
&lt;br /&gt;
'''Track Error Timeout'''&lt;br /&gt;
&lt;br /&gt;
If mower can't find In/OUt transition during this delay it's error.&lt;br /&gt;
&lt;br /&gt;
'''Track PID'''&lt;br /&gt;
&lt;br /&gt;
The Pid is use to smooth the tracking and need to be adjust according your platform (Distance between wheel and receiver coil,motor react speed etc..)&lt;br /&gt;
&lt;br /&gt;
'''Coil Polarity'''&lt;br /&gt;
&lt;br /&gt;
Do not change ,It's better to invert the wire at sender output.&lt;br /&gt;
&lt;br /&gt;
'''Read the 2 coils'''&lt;br /&gt;
&lt;br /&gt;
Only for dev test : Do not change&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Block inner wheel'''&lt;br /&gt;
&lt;br /&gt;
If YES the 2 wheels always roll forward , if NO one wheel can reverse to find again wire on big angle for example.&lt;br /&gt;
&lt;br /&gt;
'''Reduce Speed Near Wire'''&lt;br /&gt;
&lt;br /&gt;
If YES mower reduce the forward speed when near perimeter&lt;br /&gt;
&lt;br /&gt;
'''Actual Speed Coeff'''&lt;br /&gt;
&lt;br /&gt;
It's the real time value of speed ratio when mower approach the wire&lt;br /&gt;
&lt;br /&gt;
===IMU Wiring and Setting===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====MPU-9250 IMU WIRING TO PCB1.3====&lt;br /&gt;
'''MPU-9250 or 55 is not really stable''' (can work many hours or fail after some minutes without any particular reason) ,so it's better to use GY-88 / GY-521 + GY-273 more stable module&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:MPU-9250.jpg|400px]] &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Optional : It's possible to shunt the onboard DC/DC converter (NEVER PUT 5V on VCC with this option)&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-20.jpg|400px]] &lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
If you have some I2C error it's also possible to connect IMU on other location like I2C5 and JC5 to 3.3V to have a different pullup resistor.&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-40.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-88 IMU WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  G_ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-88.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-521 ACCEL/GYRO WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
 IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-521.jpg|400px]] [[Datei:GY-521-1.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
GY-521 don't have compass ,so you need to deactivate Compass into arduremote/setting/IMU or add a GY-273 module&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
====GY-273 COMPASS WIRING TO PCB1.3====&lt;br /&gt;
On the net you can find different module with fake chips like this one (Note HMC5883L on PCB but it's a QMC5883L),so you need to set the correct compass name into mower.cpp if it don't work with standard setting.&lt;br /&gt;
&lt;br /&gt;
 IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Gy-273-1.jpg|400px]] [[Datei:Gy-273-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C4 port and do not forget JC4 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:Gy-273-3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
GY-273 is a compass that you use with GY-521 you need to activate Compass into arduremote/setting/IMU.'''And do not forget to calibrate it'''.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-87 WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC_IN &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-87.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On GY-87 you can't change I2C adress and it's the same as RTC so you can't connect it on normal I2C port.&lt;br /&gt;
'''Connect module on I2C1 I2C_DUE'''&lt;br /&gt;
&lt;br /&gt;
[[Datei:GY-87-1.jpg|400px]] [[Datei:GY-87-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Select the correct firmware into Github&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===IMU Main Setting===&lt;br /&gt;
&lt;br /&gt;
MPU9255/9255-&amp;gt; [[Datei:ArduRemote_Setting_Imu_1.jpg|200px]]  [[Datei:ArduRemote_Setting_Imu_2.jpg|200px]]  or GY88/GY87-&amp;gt;[[Datei:ArduRemote_GY88.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
More info on IMU ,But no sensor fusion and not the same calibration process : [[Azurit_Firmware_(English)#IMU]]&lt;br /&gt;
&lt;br /&gt;
Here the video of IMU running to keep the heading : https://youtu.be/gxCrIb5geJM&lt;br /&gt;
&lt;br /&gt;
Imu (except GY-521) is composed by 2 parts : Compass and Gyro/Accel.&lt;br /&gt;
&lt;br /&gt;
Compass use magnetic earth field and is disturb by all motor and electronics in the mower, so it's very difficult to have correct value (for example a change of 10 deg is possible if you move the mower for only 1 deg). But it's reliable (If indicate 25 Deg and roll for 360 deg or wait 10 minutes it's always 25 Deg)&lt;br /&gt;
&lt;br /&gt;
Gyro/Accel is very accurate (+/- 1 or 2 deg) but can drift over time, (If indicate 25Deg and you wait 5 minute it can be 30Deg, but when you rotate slowly the mower you can see that everything is OK from 0 to 179 and from -179 to 0 Deg)&lt;br /&gt;
&lt;br /&gt;
The firmware can use or not the compass (Simply test and use the best according the location of the IMU in your platform)&lt;br /&gt;
&lt;br /&gt;
If GY-88/GY-87/GY-521 IMU are used ,you need to calibrate GYRO/ACCEL on the initial installation: Simply Go To ''Setting /  IMU'', press the ACCEL/GYRO initial calibration and wait 1 or 2 minutes without moving the mower (Arduremote lost connection during the process and it's normal if arduino ide is connected you can see the process in the console).&lt;br /&gt;
&lt;br /&gt;
For MPU/9255 or 9250 this process is automatically done on each start of the mower,so you can't see the button in arduremote .&lt;br /&gt;
&lt;br /&gt;
'''IMU Use'''&lt;br /&gt;
&lt;br /&gt;
Use or not the IMU (By lane require IMU to work correctly).&lt;br /&gt;
&lt;br /&gt;
'''Compass Use'''&lt;br /&gt;
if you use  GY-521 alone, you need to deactivate compass.Or if your IMU is locate near electronics or motor you can't calibrate it correctly ,so it's better to deactivate compass : Bylane mowing can result on drifting in parallel lane without compass but not always an issue in normal mowing condition.&lt;br /&gt;
&lt;br /&gt;
'''Stop Mow Motor During Calib'''&lt;br /&gt;
&lt;br /&gt;
It's possible to stop the mow motor to avoid compass noise but not really useful.&lt;br /&gt;
&lt;br /&gt;
'''P I D '''&lt;br /&gt;
&lt;br /&gt;
Like for the motor the PID need to be adjust if the mower don't drive smoothly in straight lane, Try to change the mower heading with your foot and normally the mower retrieve rapidly the precedent heading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calibration Max Duration '''&lt;br /&gt;
&lt;br /&gt;
When mower stop to adjust the Compass value to GYRO/ACCEL , the drift is check,If the drift is always present ,Mower continue to mow after this delay,but only in random mode.&lt;br /&gt;
&lt;br /&gt;
'''Delay between 2 calib'''&lt;br /&gt;
&lt;br /&gt;
Each time this delay is trig ,Mower stop , roll to find the compass actual heading and stop again to check if the drift is small,If it's OK heading is automatically adjust to continue to mow in always the same direction from north for example.If compass is not activate ,only drift is check.&lt;br /&gt;
&lt;br /&gt;
'''Drift Maxi in Deg per Second''&lt;br /&gt;
&lt;br /&gt;
When mower stop to calibrate ,This value is used to restart or wait again until drift stop.&lt;br /&gt;
&lt;br /&gt;
'''Speed to find ComYaw'''&lt;br /&gt;
&lt;br /&gt;
At the begin of calibration, mower roll and read compass,but it's possible to reduce Roll speed to find easily a new value.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====SETTING Without Compass====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to YES'''&lt;br /&gt;
&lt;br /&gt;
Set Compass Use to NO and leave all setting to default.In this case, Heading 0 is the start position of the mower&lt;br /&gt;
&lt;br /&gt;
To check if it's OK:&lt;br /&gt;
&lt;br /&gt;
Go To : ''Main Menu / Test IMU''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_test_imu.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Maybe you need to reduce the motor PWM max speed if the test fail sometime (The mower need to roll slowly)&lt;br /&gt;
&lt;br /&gt;
Start to mow in random mode and change the mower heading with your foot (If IMU is OK The mower need to always keep the heading)&lt;br /&gt;
&lt;br /&gt;
Without Compass you can see that the Bylane mowing is not perfectly parallel over time&lt;br /&gt;
&lt;br /&gt;
Only the GYRO Yaw is updated in arduremote setting.&lt;br /&gt;
&lt;br /&gt;
On Normal mowing mode you can see the mower stop every 'Delay between 2 calib' seconds and wait until the GYRO/ACCEL drift is inferior to 'Drift Maxi in Deg per second' value.If this process fail, mower continue to mow in random mode.&lt;br /&gt;
&lt;br /&gt;
====SETTING With Compass====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Set Compass Use to YES and leave all setting to default.  &lt;br /&gt;
&lt;br /&gt;
You need To DO the Compass calibration each time you change IMU location in the mower or add metal/Magnet near IMU&lt;br /&gt;
&lt;br /&gt;
Start and stop the compass calibration  : click one time to start and move the entire mower around all axes until no new data coming in the Console click again to stop and save the new calibration data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:compass_calib.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on the setting Imu arduremote page you can see the GYRO Yaw and Compass YAW value according to magnetic earth field.It's normal to don't have the 2 same values after 10 or 30 seconds or after roll the mower.And you can discover the main difference between GYRO/ACCEL and COMPASS.&lt;br /&gt;
&lt;br /&gt;
Heading 0 is normally North if no metal or magnet near compass.&lt;br /&gt;
&lt;br /&gt;
On Normal mowing mode you can see the mower stop every 'Delay between 2 calib' seconds , Roll until the compass find the lane heading and wait until the GYRO/ACCEL drift is inferior to 'Drift Maxi in Deg per second' value.If this process fail, mower continue to mow in random mode.&lt;br /&gt;
&lt;br /&gt;
===TIMER setting===&lt;br /&gt;
[[Datei:ArduRemote_Timer_0.jpg|200px]]  [[Datei:ArduRemote_Timer_1.jpg|200px]]  [[Datei:ArduRemote_Timer_2.jpg|200px]]  [[Datei:ArduRemote_Timer_3.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
The Timer is used to mow in full automatic mode for month or week.Timer can be trigger only if the mower is not into charge state.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]When you use the Go To Station from Arduremote the mower return to charging station and stop to check the Timer for the next 1 or 2 hours.&lt;br /&gt;
To do test and reuse timer ,you need to send OFF from arduremote when mower is in the station and wait 1 minute to see the mower start again from station using timer setting.&lt;br /&gt;
&lt;br /&gt;
On the first page the Use NO at the top deactivate all timer and leave mower in station.  Set it to yes and set up one of the 5 timer to make it work.&lt;br /&gt;
&lt;br /&gt;
Always Avoid that one timer stop later than other start or the opposite,or you can see strange behaviour.&lt;br /&gt;
&lt;br /&gt;
Start dist/Station is the distance the mower track the perimeter wire before start to mow.&lt;br /&gt;
&lt;br /&gt;
Use Beacon is here to use with RFID fast start process.&lt;br /&gt;
&lt;br /&gt;
Start Pattern can be Wire(Mower start from station ,mow the entire wire and back in station for the next hour) , LANE (it's parallel lane mowing mode) or Random.&lt;br /&gt;
&lt;br /&gt;
Start Area is used to select the correct mowing area, the Start dist/Station begin at the entry point of the new area.(ONLY POSSIBLE With RFID Option)&lt;br /&gt;
&lt;br /&gt;
Start Lane NR can be 1 2 or 3 like you define in the By Lane setting.&lt;br /&gt;
&lt;br /&gt;
Start Roll Dir is the roll direction Left or Right when the By Lane is in used.&lt;br /&gt;
&lt;br /&gt;
Start Max Lane Length is the distance max that mower drive on By Lane Mowing mode.&lt;br /&gt;
&lt;br /&gt;
Set to current time help to fill the start and stop sliders.&lt;br /&gt;
&lt;br /&gt;
===BYLANE setting===&lt;br /&gt;
[[Datei:mow_lane_result.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
To have acces to all setting the Dev mode need to be activate:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DevToYes.png|210px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Byllane_1.jpg|210px]]  [[Datei:ArduRemote_Setting_Byllane_2.jpg|210px]]  [[Datei:ArduRemote_Setting_Byllane_3.jpg|210px|]]&lt;br /&gt;
&lt;br /&gt;
Using IMU and ODOMETRY  mower can mow in parallel lane faster than random mode, but you need to correctly setup IMU to have good and fast result.&lt;br /&gt;
&lt;br /&gt;
3 mains Lane are set ,Factory are 45, 90 and 135 degrees (Avoid value near 0).&lt;br /&gt;
For each Lane 2 opposites reverse heading are possible according the ROLL dir at the end of the initial lane.&lt;br /&gt;
So you need to adjust 9 angles, 3 for each lane.&lt;br /&gt;
&lt;br /&gt;
'''Change Lane in use''' Click to use the next lane&lt;br /&gt;
&lt;br /&gt;
'''Change next Roll Direction''' Click and mower change the next roll dir when reach the perimetr wire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''THIS Menu is Dynamic so Setting are made in live mode''' : Start to mow and see the menu changing (from Fixed Yaw to Yaw opposite right or left) each time mower stop and reverse,For first test : leave the Fixed Yaw to factory and adjust the left and right Yaw Opposite according the mower real time behaviour.&lt;br /&gt;
&lt;br /&gt;
For example if for the lane 1 you set a fixed yaw to 45 deg, you can set Yaw opposite 1 Roll Left to -135 or -134 . In this case the mower mow perfect parallel lane (reverse heading is exactly the opposite of fixed one)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bylane 2.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other example if for the lane 1 you set a fixed yaw to 45 deg, you can set Yaw opposite 1 Roll Right to -120 , the mower mow in a kind of Zig Zag and go fast from one side of area to the other.&lt;br /&gt;
&lt;br /&gt;
When mower is lock by a curve in wire perimeter (Red Circle in Picture) the Lane NR is automatically change and the IMU calibration start again to adjust Compass and GYRO, by this way it's possible to always mow on same heading in the garden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bylane 1.png|640px]]&lt;br /&gt;
&lt;br /&gt;
'''Dist Between lane''' It's the distance between 2 parallel lane according the weight of your mower.&lt;br /&gt;
&lt;br /&gt;
'''Lane Max length''' It help to reduce the error on IMU heading (Set length &amp;lt; 10 meters if you really want that mower mow perfectly parallel or set to max with a small difference in the 2 opposite YAW if you want to have a fast mowing mode,in this case it's not perfectly parallel but mow really faster)&lt;br /&gt;
&lt;br /&gt;
===BATTERY setting===&lt;br /&gt;
[[Datei:ArduRemote_Setting_Battery_1.jpg|200px]]  [[Datei:ArduRemote_Setting_Battery_2.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Use the Monitor option to auto stop the PCB and protect Battery.'''BETTER to leave it always YES'''.     And always YES if there is no BMS into your battery pack.&lt;br /&gt;
&lt;br /&gt;
'''Charge Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from charging station voltage.&lt;br /&gt;
&lt;br /&gt;
'''Battery Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from battery voltage.&lt;br /&gt;
&lt;br /&gt;
'''Sense Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from sense charging.&lt;br /&gt;
&lt;br /&gt;
'''Go Home if Volt below''' &lt;br /&gt;
&lt;br /&gt;
In mowing mode the mower automatically return to station when battery voltage is below this value.&lt;br /&gt;
&lt;br /&gt;
'''Switch off after minutes''' &lt;br /&gt;
&lt;br /&gt;
When mower is OFF or in ERROR state, PCB automatically shutdown after this delay ('''REQUIRE JP8 in AUTO MODE''')&lt;br /&gt;
&lt;br /&gt;
'''Switch off if Volt below''' &lt;br /&gt;
&lt;br /&gt;
PCB automatically shutdown if battery voltage is too low  ('''REQUIRE JP8 in AUTO MODE''')&lt;br /&gt;
&lt;br /&gt;
'''Start charge if Voltage below''' &lt;br /&gt;
&lt;br /&gt;
When mower reach the charging station, the charging start and you can see the 2 values (Charge and sense just upper this line).Be careful when testing ,if the battery is not really empty the charge don't start each time, it's a electronic result (you can see the battery voltage increase very fast), but in normal working mode, all work perfectly.&lt;br /&gt;
&lt;br /&gt;
'''Stop charge if Sense below''' &lt;br /&gt;
&lt;br /&gt;
You can set here the minimum Sense that the battery drain at the end of the charging process.If too low the charging process is automatically stop after 5 hours and a message is send on the Console.&lt;br /&gt;
&lt;br /&gt;
===SONAR setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Sonar.jpg|200px]]  [[Datei:JSN_SR04T.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Firmware is tested for this type of Sonar : JSN-SR04T &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sonar can be used like a bumper : When trigge, mower speed is reduce and mower stop after the detection distance without hitting obstacle. &lt;br /&gt;
&lt;br /&gt;
Or Sonar can simply reduce motor speed for the next 3 seconds.&lt;br /&gt;
&lt;br /&gt;
Into mower.cpp you can simply change this line to true to change behaviour&lt;br /&gt;
&lt;br /&gt;
  sonarLikeBumper            =false;      //ultrasonic reduce speed vs bumper like&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sonar brake below'''&lt;br /&gt;
&lt;br /&gt;
Only this distance is scan by the sonar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sonar To Front Dist'''&lt;br /&gt;
&lt;br /&gt;
Distance between front of mower and sonar location, useful to never touch obstacle.&lt;br /&gt;
&lt;br /&gt;
===RAIN TEMP setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Rain.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''Rain Use''' &lt;br /&gt;
&lt;br /&gt;
set to YES if you want that Mower go to station when rain sensor is trig&lt;br /&gt;
&lt;br /&gt;
'''DHT22Use''' &lt;br /&gt;
&lt;br /&gt;
set to YES if you have connected a DHT22 sensor on PCB1.3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Maximum Temperature''' &lt;br /&gt;
&lt;br /&gt;
When DHT22 temp is upper this value the mower goes into ERROR and the PCB is totally power OFF.&lt;br /&gt;
To be tested ,maybe bug here.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OLED Screen setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:OLED_PCB1.3_wiring.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In AZURITBER Ver &amp;gt;= 1.6 It's possible to connect small OLED screen on the PCB1.3 I2C1 port&lt;br /&gt;
&lt;br /&gt;
Resolution is fixed to 128 * 64 pixel and can use 1.3 or 0.96 pouce  screen&lt;br /&gt;
&lt;br /&gt;
The oled need to be I2C U8G2 compatible, so SSD1306 or SH1106 I2C model :&lt;br /&gt;
&lt;br /&gt;
https://www.marotronics.de/Ecran-OLED-096-bleu-jaune-I2C-SPI-128x64-SSD1106-pour-Arduino-Raspberry-Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You need to Enable it into mower.h line 128&lt;br /&gt;
&lt;br /&gt;
 #define Enable_Screen true&lt;br /&gt;
 *      //#define Enable_Screen false&lt;br /&gt;
&lt;br /&gt;
And select the correct model into screen.cpp . Factory setting are for 1.3 Pouce model from Ebay.&lt;br /&gt;
 &lt;br /&gt;
 U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);&lt;br /&gt;
 U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);&lt;br /&gt;
&lt;br /&gt;
According the status of the mower Oled show different screen :&lt;br /&gt;
&lt;br /&gt;
In OFF mode :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_OFF.png|200px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While mower running :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_mow.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When Charging :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_charge.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When into station waiting for next timer start :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_station.png|200px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Firmware_(English)&amp;diff=10339</id>
		<title>AzuritBer Pi Firmware (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Firmware_(English)&amp;diff=10339"/>
				<updated>2022-02-05T10:28:54Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Piardu MENU Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi =&lt;br /&gt;
&lt;br /&gt;
A Raspberry Pi is connected over Due Native USB to the arduino&lt;br /&gt;
&lt;br /&gt;
It is used to control Mower over WIFI from everywhere using PC,Tablet,Smartphone etc.....&lt;br /&gt;
&lt;br /&gt;
All movement and message are saved on SDcard for each mowing run and you can check later exactly what append (Bump,Sonar,Perimeter trig etc....)&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
===What you need===&lt;br /&gt;
&lt;br /&gt;
1 Raspberry PI 3B+ or PI4 (The Pizero W can work but very slowly and it's not the goal).[[Datei:pi3_board.jpg|100px]]&lt;br /&gt;
&lt;br /&gt;
1 DC/DC voltage regulator to power the PI.Minumum 5A version from marotronics[[Datei:DC DC 5A.jpg|100px]] https://www.marotronics.de/5A-DC-DC-step-down-module-XL4015-with-heat-sink-eg-for-Arduino&lt;br /&gt;
&lt;br /&gt;
Connect P17 to input of the DC/DC voltage regulator and connect a micro usb cable to output [[File:warning.png]]'''(ADJUST the output voltage to 5V before plug the PI)'''&lt;br /&gt;
&lt;br /&gt;
1 USB mouse,keyboard for setting.You can simply use a standard one for the setting and disconnect it after But it's also possible to use a small one like that to drive the mower remotely in manual mode.[[Datei:small_keyboard1.jpg|100px]]&lt;br /&gt;
&lt;br /&gt;
1 SD Card 32 GB class 10[[Datei:Sd card.jpg|30px]]&lt;br /&gt;
&lt;br /&gt;
1 PowerBank or DC/DC voltage regulator connected to PCB1.3 or power supply for the raspberry pi minimum 3A&lt;br /&gt;
&lt;br /&gt;
1 HDMI cable to see the PI desktop on your TV  or HDMI Screen.&lt;br /&gt;
&lt;br /&gt;
1 TV or monitor with HDMI input to easily see the raspberry IP adress on the first boot.&lt;br /&gt;
&lt;br /&gt;
===Fast setup for Advanced user===&lt;br /&gt;
&lt;br /&gt;
If you already know how raspberry PI work with desktop ,You can read setup process locate into github under Txt File Setup_raspberry.rtf&lt;br /&gt;
&lt;br /&gt;
Here the full setup process:&lt;br /&gt;
&lt;br /&gt;
VNC is installed and you have copied all Piardumower data into Documents folder.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install idle3&lt;br /&gt;
 sudo pip3 install paho-mqtt&lt;br /&gt;
 sudo apt-get install kst&lt;br /&gt;
 sudo apt-get install dos2unix&lt;br /&gt;
&lt;br /&gt;
Download and Install Arduino IDE and add Due board if you want to flash Due over WIFI&lt;br /&gt;
&lt;br /&gt;
 cd ~/Documents&lt;br /&gt;
 sudo chown -R pi:pi PiArdumower&lt;br /&gt;
 sudo chmod -R 755 PiArdumower&lt;br /&gt;
 cd PiArdumower&lt;br /&gt;
 mv mower.sh /home/pi/Desktop&lt;br /&gt;
&lt;br /&gt;
 cd ~/Documents/PiArdumower&lt;br /&gt;
 dos2unix streamVideo320.py&lt;br /&gt;
 dos2unix streamVideo640.py&lt;br /&gt;
 dos2unix DueFlash.py&lt;br /&gt;
 dos2unix PowerOff.py&lt;br /&gt;
 dos2unix Restart.py&lt;br /&gt;
 dos2unix testnet1.py&lt;br /&gt;
 cd ~/Desktop&lt;br /&gt;
 dos2unix mower.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you never work with Raspberry simply follow the full WIKI and check all screen copy.&lt;br /&gt;
&lt;br /&gt;
===Build the SD Card===&lt;br /&gt;
&lt;br /&gt;
You need to first write the raspbian OS on the SD Card .&lt;br /&gt;
&lt;br /&gt;
It's easy using the main raspberry.org site.&lt;br /&gt;
&lt;br /&gt;
You can connect you Micro SD CARD to your laptop or PC using correct adaptor &lt;br /&gt;
&lt;br /&gt;
No need to format at the point but '''All Data present on it will be destroyed.'''&lt;br /&gt;
&lt;br /&gt;
Connect to : https://www.raspberrypi.org/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Buster001.png|400px]] and select the Download page&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster002.png|400px]] Select Raspberry Pi Imager for Windows&lt;br /&gt;
----&lt;br /&gt;
Wait until the download is finish and launch the downloaded prog.&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster003.png|400px]] Select Choose OS&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster004.png|400px]] Use the recommended one with Desktop&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster005.png|400px]] Select Choose SD CARD&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster006.png|400px]] Select your SD CARD Be careful to select the correct one.&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster007.png|400px]] Select Write and wait until down (can take 15 to 60 Min according your internet speed).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remove the SD CARD for your PC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PI Initial boot with Desktop===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect everything on the PI ; Here the Ethernet cable is used but it's also possible to use WIFI&lt;br /&gt;
&lt;br /&gt;
USB Dongle for mouse.&lt;br /&gt;
&lt;br /&gt;
HDMI cable from PI to TV or monitor. (Without TV or monitor is also possible : Search on Google and Youtube)&lt;br /&gt;
&lt;br /&gt;
Ethernet cable if possible or WIFI (On first boot the PI need a good connection to the net for last update)&lt;br /&gt;
&lt;br /&gt;
Power (5V if you use DC/DC voltage regulator) on Micro USB&lt;br /&gt;
&lt;br /&gt;
[[Datei:Connecting.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On first start you can see expand sd card,reboot and welcome message with the IP Address for Ethernet&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Select your language and location.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_02.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change password and remember it (we need it later to connect to PI over wifi)  For easy wiki : '''Pass001''' but use another one&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Setup screen, simply click next&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On the WIFI connecting page select the WIFI network that you want to use for all the setting duration (You can change it later for an outdoor one)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Enter your wifi password and follow the next update step (can take again 10 to 30 minutes)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_5.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
REBOOT.&lt;br /&gt;
&lt;br /&gt;
We need to activate VNC serveur to whare the desktop with your PC.&lt;br /&gt;
&lt;br /&gt;
Using Start icon : Go to Préférence and Configuration du Raspberry&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_10.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In the Tab Interfaces Activate SSH and VNC&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_11.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now on the upper right corner of the desktop a new icon show that VNC Serveur is running .&lt;br /&gt;
&lt;br /&gt;
Move your mouse on the Ethernet or Wifi icon to see the IP adress of the ethernet and WIFI one.&lt;br /&gt;
&lt;br /&gt;
The WIFI one is the most important (Here '''10.0.0.29''')&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_12.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Disconnect the ethernet cable and Reboot (Not Shutdown) All Using Start icon and Log Out.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_1201.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===First Remote PC connection over Wifi===&lt;br /&gt;
'''PI SIDE'''&lt;br /&gt;
&lt;br /&gt;
Pi is running and you can see the desktop &lt;br /&gt;
&lt;br /&gt;
'''PC SIDE or Tablet / Phone'''&lt;br /&gt;
&lt;br /&gt;
 Remember that we set the Password to Pass001 and ip adress of the PI WIFI is 10.0.0.29&lt;br /&gt;
 NOW WE WORK ON PC OR TABLET&lt;br /&gt;
&lt;br /&gt;
You have many possiblity (SSH viewer, MobaXterm, Remote Desktop etc...) , In this case I use free real VNC Viewer (Not VNC Serveur) to connect to the PI over your network.&lt;br /&gt;
&lt;br /&gt;
Go to https://www.realvnc.com/fr/connect/download/viewer/&lt;br /&gt;
&lt;br /&gt;
And select the correct donwload according your platform.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Instal the software and start it (VNC Viewer). In your case the tab is empty (No RL1000,Denna etc....)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_21.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On upper left choose File / New Connection&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_22.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Into VNC Serveur : enter the IP of the raspberry  (ethernet or WIFI adress) and give a name to the connection.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_23.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
It's possible that a new security box is shown on the screen Select Continue&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_24.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
You can see the new Connection named Ardumower Double click on it.&lt;br /&gt;
&lt;br /&gt;
UserName is pi and password is Pass001 or the one you choose on first start part.Check remember password&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_25.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
The Clone of the Pi desktop is now on your PC and you can do everything exactly like if you use localy the raspberry ,But from your Sofa&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_26.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Pi Software part===&lt;br /&gt;
&lt;br /&gt;
 NOW WE WORK ON THE PI ''USING VNC VIEWER'' ALL COMMAND NEED TO RESPECT THE CASE&lt;br /&gt;
 DO NOT DISCONNECT THE SCREEN TO HAVE A CORRECT RESOLUTION (1024*768)&lt;br /&gt;
&lt;br /&gt;
You need to send some command to the PI Terminal to install some software.&lt;br /&gt;
&lt;br /&gt;
To see the terminal click on the &amp;gt;_ icon in the taskbar&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_10.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Copy and past all the following command in the terminal after the $ for the rest of this wiki part&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
This download can take a lot of time , so be patient and answer Yes to upgrade&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Python3 Idle====&lt;br /&gt;
&lt;br /&gt;
Piardu.py use Python3 , so we need to install the idle to have access to it and edit if needed (answer Yes for installing)&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install idle3&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
At the end of the Python idle installation you need to have a new icon into Start / Programing menu.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Pygame====&lt;br /&gt;
&lt;br /&gt;
It's possible to drive the mower in Manual mode with PS4 joystick but need pygame software (Maybe already include but it's better to do it)&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install python3-pygame&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Paho Mqtt====&lt;br /&gt;
&lt;br /&gt;
It's possible to controle mower over mqtt and use Home Automation but need python3 paho software part.&lt;br /&gt;
&lt;br /&gt;
 sudo pip3 install paho-mqtt&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Here a fast description of TOPIC&lt;br /&gt;
&lt;br /&gt;
What you can send to mower&lt;br /&gt;
&lt;br /&gt;
Topic Denna/COMMAND&lt;br /&gt;
&lt;br /&gt;
 payload : STOP to stop&lt;br /&gt;
 payload : MOWPATTERN ;1 or 2 or3 according mowpattern&lt;br /&gt;
 payload : START to start with the last mowpattern&lt;br /&gt;
 payload : PAUSE;2 to stop auto start by timer for the next 2 hours&lt;br /&gt;
 payload : HOME to go station&lt;br /&gt;
 payload : STARTTIMER;1;1;0;25;2;50 it's to start from station &lt;br /&gt;
           STARTTIMER;MowPattern;LaneNr;rollDir;WhereStart;areToGo;LaneLenght&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What you receive from mower&lt;br /&gt;
&lt;br /&gt;
Send only when value change&lt;br /&gt;
&lt;br /&gt;
 Topic Denna/STATUS&lt;br /&gt;
 payload the mower status see robot.py list for possible value&lt;br /&gt;
 Topic Denna/STATE&lt;br /&gt;
 payload the mower state see robot.py list for possible value&lt;br /&gt;
 Topic Denna/Battery&lt;br /&gt;
 payload the bat voltage&lt;br /&gt;
 Topic Denna/Temp&lt;br /&gt;
 payload the mower temp&lt;br /&gt;
 Topic Denna/Battery&lt;br /&gt;
 payload the bat voltage&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Send at fixed frequency see config.py (one per second for example)&lt;br /&gt;
&lt;br /&gt;
 Topic Denna/Idle&lt;br /&gt;
 payload the loop per second of due&lt;br /&gt;
&lt;br /&gt;
====KST Plot====&lt;br /&gt;
&lt;br /&gt;
Piardu use software named KST to plot all the data &lt;br /&gt;
&lt;br /&gt;
Seach KST Plot on Google for more info . Again copy and past this into the Pi terminal:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install kst&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_80.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====DosToUnix====&lt;br /&gt;
&lt;br /&gt;
Some file need to be in unix format ,so a conversion is needed using DosToUnix&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install dos2unix&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_65.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Arduino IDE====&lt;br /&gt;
&lt;br /&gt;
It's possible to update the due firmware from Piardu over WIFI but need the ARDUINO IDE in the raspberry.&lt;br /&gt;
&lt;br /&gt;
The process is describe perfectly in this video&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=ySyBNdndB58&lt;br /&gt;
&lt;br /&gt;
You need to download file directly inside the raspberry.&lt;br /&gt;
&lt;br /&gt;
So use the PI Internet browser named CHROMIUM.It's the world Icon on windows top left &lt;br /&gt;
&lt;br /&gt;
Here screenshot of the 07/11/2020 download page for '''Arduino 1.8.13''' version : Choose Linux ARM 32 bits&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_100.png|400px]] [[Datei:pi_soft_101.png|400px]] [[Datei:pi_soft_102.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Go to file manager home / pi / Downloads and right click to the downloaded file ,select extract here (WAIT before you see something appear)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_110.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Now open again the terminal windows (&amp;gt;_ icon on upper left) and copy these command (it can take time)&lt;br /&gt;
&lt;br /&gt;
Warning : folder arduino-1.8-13 can change over time for example arduino-1.8-15 , so use the correct name according your download in the next command.&lt;br /&gt;
&lt;br /&gt;
 cd Downloads/arduino-1.8.13&lt;br /&gt;
&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_115.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not take care about the error message.&lt;br /&gt;
&lt;br /&gt;
You can see now the arduino icon into start / programming, start the prog to be sure everything is OK.&lt;br /&gt;
 &lt;br /&gt;
[[Datei:pi_soft_120.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Add the ARDUINO DUE in the board list&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_125.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Search for DUE : and select arduino SAM Boards&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_130.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Again it can take time,so Wait until process finish.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Normaly arduino ide is not use and only a command line is used to update Due firmware but to be sure the folder name stay always the same  : Go to file Preferences and deactivate the Search for update.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_135.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===PiArdu Software===&lt;br /&gt;
&lt;br /&gt;
You need to copy all the Github file locate into Piardumower folder inside the Raspberry PI home/pi/Documents folder.&lt;br /&gt;
&lt;br /&gt;
Using VNC Viewer :&lt;br /&gt;
&lt;br /&gt;
First initiate the correct location for file transfert &lt;br /&gt;
&lt;br /&gt;
Click VNC Serveur icon on desktop upper right near Bluetooth icon&lt;br /&gt;
&lt;br /&gt;
Click Menu icon on VNC CONNECT upper right page&lt;br /&gt;
&lt;br /&gt;
Select File Transfert in the menu list&lt;br /&gt;
&lt;br /&gt;
In bottom right of the next page select other folder and choose home/pi/Documents.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_205.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Now download all the file:&lt;br /&gt;
Move your mouse in upper middle of the desktop to see the VNC transfert icon and select it Click on send file&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_200.png|400px]] [[Datei:pi_soft_208.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Navigate into your PC to find the github master downloaded file and select piardumower and validate using the '''FULL FOLDER''' in bottom right&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_210.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
If everything is OK you can see now the entire folder correctly locate in home/pi/Documents&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_215.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Set permission to everyone for all the piardumower file &lt;br /&gt;
&lt;br /&gt;
Open a terminal (&amp;gt;_ icon ondesktop) and send the  5 command  &lt;br /&gt;
&lt;br /&gt;
 cd Documents&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R pi:pi PiArdumower&lt;br /&gt;
&lt;br /&gt;
 sudo chmod -R 755 PiArdumower&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_220.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add start Piardu.py to desktop using a shell command:&lt;br /&gt;
&lt;br /&gt;
 cd PiArdumower&lt;br /&gt;
&lt;br /&gt;
 mv mower.sh /home/pi/Desktop&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_221.png|400px]]&lt;br /&gt;
&lt;br /&gt;
A new file is now present on desktop Mower.sh and can be use to start the Piardu.py&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change into config.py for the first start of Piardu (Deactivate momentary the DUE serial link to avoid error)&lt;br /&gt;
&lt;br /&gt;
Start / Programming / Python3 IDLE   &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_230.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
And into Python Shell select File Open home/pi/Documents/Piardumower/config.py&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_235.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now change DueconnectedOnPi from True to False &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_240.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Save and close the config.py file but keep the shell open&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now from Python Shell select File Open home/pi/Documents/Piardumower/PiArdu.py and click on Run / Run Module or hit F5&lt;br /&gt;
&lt;br /&gt;
Piardu need to start without error into Shell windows (No red Line)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_250.png|400px]]&lt;br /&gt;
&lt;br /&gt;
And you can navigate inside all the menu with a fast response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To work correctly some file  need to be converted into Unix format:&lt;br /&gt;
&lt;br /&gt;
Open the terminal and copy these command &lt;br /&gt;
&lt;br /&gt;
 cd Documents/PiArdumower&lt;br /&gt;
&lt;br /&gt;
 dos2unix streamVideo320.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix streamVideo640.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix DueFlash.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix PowerOff.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix Restart.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix testnet1.py&lt;br /&gt;
&lt;br /&gt;
 cd ~/Desktop&lt;br /&gt;
&lt;br /&gt;
 dos2unix mower.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_75.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Automatic start on Power up:&lt;br /&gt;
&lt;br /&gt;
In terminal use text editor named nano to start mower.sh each time the Pi is power up&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/xdg/lxsession/LXDE-pi/autostart&lt;br /&gt;
&lt;br /&gt;
and at the end of the file add the line below ,'''Be careful mouse don't work inside the editor,so paste the line at the correct location , error in this file can corrupt the PI starting process'''&lt;br /&gt;
&lt;br /&gt;
 @bash /home/pi/Desktop/mower.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_237.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Use Ctrl X to exit and save the change in autostart.&lt;br /&gt;
&lt;br /&gt;
Reboot the PI ,Normally Piardu automatically start with some error if DUE is not plug in PCB1.3 or without error if PCB1.3 is used.&lt;br /&gt;
&lt;br /&gt;
If you can't see the bottom red line with date time : check if you have activate raspberryPi to YES using Arduremote / Setting /raspberry&lt;br /&gt;
&lt;br /&gt;
Go to Piardu auto page and click on OFF to reset all eventual error.&lt;br /&gt;
&lt;br /&gt;
===DUE Connection===&lt;br /&gt;
&lt;br /&gt;
If you can't remove Arduino DUE from PCB1.3 : you need to power the raspberry with the DC/DC voltage regulator under the same battery, or with standard PI power supply.&lt;br /&gt;
&lt;br /&gt;
With DC/DC regulator [[File:warning.png]]'''FIRST ADJUST THE DC/DC TO 5V OUTPUT''' or you are going to destroy the raspberry&lt;br /&gt;
&lt;br /&gt;
From PCB1.3 24V P17 --&amp;gt;IN DC/DC OUT--&amp;gt; 5V micro USB Raspberry PI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also connect Arduino Due without the PCB1.3 to PI using USB Cable '''Never use a charging cable only DATA cable''' (DUE is powered by the raspberry ,so it's very easy)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_300.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Change again into config.py to activate the DUE serial link.&lt;br /&gt;
&lt;br /&gt;
Start / Programming / Python3 IDLE   &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_230.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
And into Python Shell select File Open home/pi/Documents/Piardumower/config.py&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_235.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change DueconnectonPi from False to True&lt;br /&gt;
&lt;br /&gt;
Also set UseDebugConsole to True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_241.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Save and close the config.py file but keep the shell open&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now from Python Shell select File Open home/pi/Documents/Piardumower/PiArdu.py and click on Run / Run Module or hit F5&lt;br /&gt;
&lt;br /&gt;
Piardu need to start and you can navigate inside all the menu very slowly if there are no firmware in the arduino DUE so wait &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_250.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==== FLASH DUE ====&lt;br /&gt;
You can upload the DUE firmware using your PC or directly from Piardu .&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''If Raspberry is powered using PCB1.3 JUMPER JP8 NEED TO BE IN ALWAYS ON POSITION'''&lt;br /&gt;
if you forget to change JP8 position. During the DUE flash, PCB can power off raspberry . In this case you need to upload again the sketch from your PC using DUE programming port&lt;br /&gt;
&lt;br /&gt;
On PiArdu click Back icon and Setting icon&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_305.png|400px]]&lt;br /&gt;
&lt;br /&gt;
On setting main tab use Update the DUE Firmware button and click on Start Flash. Never use &amp;quot;(&amp;quot; or &amp;quot;)&amp;quot; in the mane of file or the flash crash. &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_310.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Wait until DUE FLASHER window is closed&lt;br /&gt;
&lt;br /&gt;
You can use your own file . Arduino IDE generate one file each time you compile your project (see the last line in debug view of arduino compiler. Simply copy the file in the raspberry into firmware folder be careful to avoid &amp;quot;(&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== CHECK COMMUNICATION ====&lt;br /&gt;
&lt;br /&gt;
Firmware locate on GITHUB is build to work with or without raspberry.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you test without PCB1.3 and don't have access to ARDUREMOTE you need to manualy set RaspberrypiUse to true.&lt;br /&gt;
See into mower.cpp line 242:&lt;br /&gt;
&lt;br /&gt;
 RaspberryPIUse = false; // a raspberryPi is connected to USBNative port&lt;br /&gt;
&lt;br /&gt;
change with:&lt;br /&gt;
&lt;br /&gt;
 RaspberryPIUse = true; // a raspberryPi is connected to USBNative port&lt;br /&gt;
&lt;br /&gt;
Compile and upload again code into DUE.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you have access to ARDUREMOTE simply go into arduremote / Setting / Raspberry to activate the communication.&lt;br /&gt;
&lt;br /&gt;
When everything is OK, the RED Status line is present in AUTO page of Piardu and change every second.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Try to click Back icon and Setting icon and click on Reboot All &lt;br /&gt;
&lt;br /&gt;
Raspberry and DUE need to reboot if communication,permission and unix format are OK &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Optional Screen===&lt;br /&gt;
&lt;br /&gt;
For really easy working it's better to use a tactile screen ,directly connected on the Raspberry.&lt;br /&gt;
&lt;br /&gt;
Piardu is write to use a 800*480 5 inch screen using HDMI connection.Avoid SPI screen because the processor can't manage everything faster.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 2.png|400px]]  [[Datei:pi screen 1.png|400px]]  [[Datei:Pi4 screen 1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Be carreful when you order : HDMI adaptor is not the same for PI4 (Right Picture) and PI3B+ (center and left Picture)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To setup the tactile and screen :&lt;br /&gt;
&lt;br /&gt;
Go to terminal :copy and paste these command&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/waveshare/LCD-show.git&lt;br /&gt;
&lt;br /&gt;
 cd LCD-show/&lt;br /&gt;
&lt;br /&gt;
 sudo ./LCD5-show&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Wait and after reboot ,Resolution is automaticaly reset to screen one and tactile is working to control PiArdu.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To have PiArdu on total full Screen Right Click in the TaskBar near VNC SERVEUR to open a menu list and select 'Parameter tab de bord' (See picture from translation)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
On the new windows select tab Advance and check Minimise (Again See picture from translation)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 5.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Optional Camera===&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 1.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simply connect the camera to PI CSI port&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 3.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using Start icon : Go to Préférence and Configuration du Raspberry&lt;br /&gt;
&lt;br /&gt;
In the new windows go into tab Interfaces&lt;br /&gt;
&lt;br /&gt;
Check to Enable the Camera&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Move windows or Hit Tabulation 10 times if you can't see Validate Button and press Enter (Reboot)&lt;br /&gt;
&lt;br /&gt;
==== Expérimental AI Vision with Tensorflow ====&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=e6udelf2v50&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EVERYTHING IS HERE EXPERIMENTAL AND CAN'T REPLACE BUMPER OR SONAR.&lt;br /&gt;
&lt;br /&gt;
Main part of detection code came from here and other site on web:&lt;br /&gt;
&lt;br /&gt;
https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10&lt;br /&gt;
&lt;br /&gt;
Only OK with Raspberry 4 at 2 frames per second without google coral accelerator,Note than a Fan is mandatory on the Pi because CPU can heat a lot.&lt;br /&gt;
&lt;br /&gt;
Fast main setup description.&lt;br /&gt;
&lt;br /&gt;
If they are not present copy folder from Github to PiArdumower folder using VNC Viewer:&lt;br /&gt;
 core&lt;br /&gt;
 data&lt;br /&gt;
 protos&lt;br /&gt;
 ssdlite_mobilenet_v2_coco_2018_05_09&lt;br /&gt;
 utils&lt;br /&gt;
 vision&lt;br /&gt;
 &lt;br /&gt;
Now in a new terminal :&lt;br /&gt;
 &lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
Install OPENCV&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3-opencv&lt;br /&gt;
&lt;br /&gt;
Install Tensorflow&lt;br /&gt;
&lt;br /&gt;
 pip3 install tensorflow&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install libatlas-base-dev&lt;br /&gt;
&lt;br /&gt;
 sudo pip3 install pillow lxml jupyter matplotlib cython&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install python3-pil python3-pil.imagetk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using python idle edit ''config.py'' and set Use Vision to true&lt;br /&gt;
&lt;br /&gt;
visionDetectMinScore is used to create a first sort on what we want to explore in the screen.Each time something with score &amp;gt; 78 for example is detected a copy of Live Video is saved on SD Card and soft check if the object detected match with the setting and if we need to stop and reverse or continue to mow.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 05.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Using python idle open and start ''PiArdu519.py'' or later&lt;br /&gt;
&lt;br /&gt;
Into setting you can see the tab Vision open it to set the threshold of what you want to avoid.&lt;br /&gt;
&lt;br /&gt;
For each object you can set a minimum detection score and a minimum area (How many percent of the full image)&lt;br /&gt;
&lt;br /&gt;
According the tensorflow model you need to set the correct object ID (name is according but you can change it)&lt;br /&gt;
Here the .txt file list: &lt;br /&gt;
&lt;br /&gt;
For example on COCO model the chair have ID 62 and we want to stop and reverse if detection score is &amp;gt; 75 and area &amp;gt; 12 % of the screen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 08.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Video menu, click on Start Vision and wait at least 40 seconds for tensorflow to load the model.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 12.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
A new windows named 'Live Video' appear.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 13.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now you can reduce Live Video windows and start to mow until something is detected&lt;br /&gt;
&lt;br /&gt;
The big red box is replace with the last detection and a file is create into vision folder  &lt;br /&gt;
 &lt;br /&gt;
[[Datei:Piardu video 15.png|400px]] [[Datei:Piardu video 30.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Console you can see the result of detection.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Each time person or Dog etc.. is detected mower stop and reverse , a picture is take and store in the vision / date time folder&lt;br /&gt;
&lt;br /&gt;
AGAIN IT'S EXPERIMENTAL AND ONLY FOR FUN so check in the python shell that no error occur and test to see if the detection is reliable !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Backup SD CARD===&lt;br /&gt;
After this very long setup it's time to create a backup of your SD Card into your PC.&lt;br /&gt;
&lt;br /&gt;
Power OFF your raspberry using the correct command and move the SD CARD from the raspberry to your PC. Close windows message for format suggestion.&lt;br /&gt;
&lt;br /&gt;
Using Win32DiskImager a free software you can create image file of your SD Card and save it into your PC.So it's easy to rebuild your card later if you damage it or if you want to build other one using the read and write button.&lt;br /&gt;
&lt;br /&gt;
Image file size is the same as your SD CARD ,so need space on your PC&lt;br /&gt;
&lt;br /&gt;
It's here https://win32diskimager.org/&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager001.png|400px]] &lt;br /&gt;
&lt;br /&gt;
Download the soft and start it.Your SDCARD is normaly detected  and you only need to select a backup folder and give a name to the file ,add .img at the end of your backup file &lt;br /&gt;
&lt;br /&gt;
TO BACKUP&lt;br /&gt;
&lt;br /&gt;
Click on read button to copy your sdcard to your PC.&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager020.png|400px]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TO RESTORE &lt;br /&gt;
&lt;br /&gt;
Insert a new SDCARD with minimum same size ,select your backup file and click on write button to create the new SDCARD&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager030.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Piardu Main Configuration==&lt;br /&gt;
&lt;br /&gt;
 Inside folder : home/pi/Documents/Piardumower you can edit the config.py file to manage different option :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu config 1.png|600px]] [[Datei:Piardu config 2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
''PCB part:''&lt;br /&gt;
&lt;br /&gt;
'''Due ConnectedOnPi'''&lt;br /&gt;
True for normal use , False to test Raspberry without PCB1.3 and DUE&lt;br /&gt;
&lt;br /&gt;
''GPS part:''&lt;br /&gt;
&lt;br /&gt;
Warning : GPS is not use by software,it's only a tracker version, All data are recorded and saved inside Piardumower/Gpsdata&lt;br /&gt;
&lt;br /&gt;
'''GpsConnectedOnPi''' &lt;br /&gt;
True or False : Old config with GPS directly connected on Raspberry Pi Serial GPIO.&lt;br /&gt;
&lt;br /&gt;
'''GpsIsM6n'''&lt;br /&gt;
True or False : Set to false is you use M8N module because NMEA sentence are not the same&lt;br /&gt;
&lt;br /&gt;
''Arduino Nano part.''&lt;br /&gt;
&lt;br /&gt;
'''NanoConnectedOnPi'''&lt;br /&gt;
&lt;br /&gt;
It's possible to connect Arduino Nano on Pi USB to receive data and react according, It was build to test some laser beam VL53L0X sensor and rain sensor but without success&lt;br /&gt;
&lt;br /&gt;
''Battery part:''&lt;br /&gt;
&lt;br /&gt;
'''AutoRecordBatCharging'''&lt;br /&gt;
&lt;br /&gt;
When charging start it's possible to record each minute voltage and battery sense to check later how everything work and adjust the max charging duration if necessary.&lt;br /&gt;
&lt;br /&gt;
''Debug part:''&lt;br /&gt;
&lt;br /&gt;
'''UseDebugConsole'''&lt;br /&gt;
&lt;br /&gt;
If True ,you can see more message in the console page including all NMEA sentence received and send by Raspberry.&lt;br /&gt;
&lt;br /&gt;
''Sender part:''&lt;br /&gt;
&lt;br /&gt;
'''Sender1AdressIP''' '''Sender2AdressIP''' '''Sender3AdressIP'''&lt;br /&gt;
&lt;br /&gt;
If you use the RFID option with multiple area it's the IP adress that Piardu use to communicate with other sender over WIFI.&lt;br /&gt;
&lt;br /&gt;
''Camera part:''&lt;br /&gt;
&lt;br /&gt;
'''myCamAngle'''&lt;br /&gt;
&lt;br /&gt;
If camera in mount in particular orientation it's possible to adjust screen render here.&lt;br /&gt;
&lt;br /&gt;
'''streamVideoOnPower'''&lt;br /&gt;
&lt;br /&gt;
if set to True the video stream automatically start when pi is power up&lt;br /&gt;
&lt;br /&gt;
==Piardu Power ON / OFF video==&lt;br /&gt;
&lt;br /&gt;
Result after everything correctly set :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power ON&lt;br /&gt;
&lt;br /&gt;
 https://youtu.be/Qhv8r2bD_Bk&lt;br /&gt;
&lt;br /&gt;
Power OFF&lt;br /&gt;
&lt;br /&gt;
 https://youtu.be/4YJQ-zyLq-Q&lt;br /&gt;
&lt;br /&gt;
==Piardu MENU Description==&lt;br /&gt;
&lt;br /&gt;
Full description is here:&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Explain_(English)&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Firmware_(English)&amp;diff=10338</id>
		<title>AzuritBer Pi Firmware (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Firmware_(English)&amp;diff=10338"/>
				<updated>2022-02-05T10:28:37Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Piardu MENU Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi =&lt;br /&gt;
&lt;br /&gt;
A Raspberry Pi is connected over Due Native USB to the arduino&lt;br /&gt;
&lt;br /&gt;
It is used to control Mower over WIFI from everywhere using PC,Tablet,Smartphone etc.....&lt;br /&gt;
&lt;br /&gt;
All movement and message are saved on SDcard for each mowing run and you can check later exactly what append (Bump,Sonar,Perimeter trig etc....)&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
===What you need===&lt;br /&gt;
&lt;br /&gt;
1 Raspberry PI 3B+ or PI4 (The Pizero W can work but very slowly and it's not the goal).[[Datei:pi3_board.jpg|100px]]&lt;br /&gt;
&lt;br /&gt;
1 DC/DC voltage regulator to power the PI.Minumum 5A version from marotronics[[Datei:DC DC 5A.jpg|100px]] https://www.marotronics.de/5A-DC-DC-step-down-module-XL4015-with-heat-sink-eg-for-Arduino&lt;br /&gt;
&lt;br /&gt;
Connect P17 to input of the DC/DC voltage regulator and connect a micro usb cable to output [[File:warning.png]]'''(ADJUST the output voltage to 5V before plug the PI)'''&lt;br /&gt;
&lt;br /&gt;
1 USB mouse,keyboard for setting.You can simply use a standard one for the setting and disconnect it after But it's also possible to use a small one like that to drive the mower remotely in manual mode.[[Datei:small_keyboard1.jpg|100px]]&lt;br /&gt;
&lt;br /&gt;
1 SD Card 32 GB class 10[[Datei:Sd card.jpg|30px]]&lt;br /&gt;
&lt;br /&gt;
1 PowerBank or DC/DC voltage regulator connected to PCB1.3 or power supply for the raspberry pi minimum 3A&lt;br /&gt;
&lt;br /&gt;
1 HDMI cable to see the PI desktop on your TV  or HDMI Screen.&lt;br /&gt;
&lt;br /&gt;
1 TV or monitor with HDMI input to easily see the raspberry IP adress on the first boot.&lt;br /&gt;
&lt;br /&gt;
===Fast setup for Advanced user===&lt;br /&gt;
&lt;br /&gt;
If you already know how raspberry PI work with desktop ,You can read setup process locate into github under Txt File Setup_raspberry.rtf&lt;br /&gt;
&lt;br /&gt;
Here the full setup process:&lt;br /&gt;
&lt;br /&gt;
VNC is installed and you have copied all Piardumower data into Documents folder.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install idle3&lt;br /&gt;
 sudo pip3 install paho-mqtt&lt;br /&gt;
 sudo apt-get install kst&lt;br /&gt;
 sudo apt-get install dos2unix&lt;br /&gt;
&lt;br /&gt;
Download and Install Arduino IDE and add Due board if you want to flash Due over WIFI&lt;br /&gt;
&lt;br /&gt;
 cd ~/Documents&lt;br /&gt;
 sudo chown -R pi:pi PiArdumower&lt;br /&gt;
 sudo chmod -R 755 PiArdumower&lt;br /&gt;
 cd PiArdumower&lt;br /&gt;
 mv mower.sh /home/pi/Desktop&lt;br /&gt;
&lt;br /&gt;
 cd ~/Documents/PiArdumower&lt;br /&gt;
 dos2unix streamVideo320.py&lt;br /&gt;
 dos2unix streamVideo640.py&lt;br /&gt;
 dos2unix DueFlash.py&lt;br /&gt;
 dos2unix PowerOff.py&lt;br /&gt;
 dos2unix Restart.py&lt;br /&gt;
 dos2unix testnet1.py&lt;br /&gt;
 cd ~/Desktop&lt;br /&gt;
 dos2unix mower.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you never work with Raspberry simply follow the full WIKI and check all screen copy.&lt;br /&gt;
&lt;br /&gt;
===Build the SD Card===&lt;br /&gt;
&lt;br /&gt;
You need to first write the raspbian OS on the SD Card .&lt;br /&gt;
&lt;br /&gt;
It's easy using the main raspberry.org site.&lt;br /&gt;
&lt;br /&gt;
You can connect you Micro SD CARD to your laptop or PC using correct adaptor &lt;br /&gt;
&lt;br /&gt;
No need to format at the point but '''All Data present on it will be destroyed.'''&lt;br /&gt;
&lt;br /&gt;
Connect to : https://www.raspberrypi.org/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Buster001.png|400px]] and select the Download page&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster002.png|400px]] Select Raspberry Pi Imager for Windows&lt;br /&gt;
----&lt;br /&gt;
Wait until the download is finish and launch the downloaded prog.&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster003.png|400px]] Select Choose OS&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster004.png|400px]] Use the recommended one with Desktop&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster005.png|400px]] Select Choose SD CARD&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster006.png|400px]] Select your SD CARD Be careful to select the correct one.&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster007.png|400px]] Select Write and wait until down (can take 15 to 60 Min according your internet speed).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remove the SD CARD for your PC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PI Initial boot with Desktop===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect everything on the PI ; Here the Ethernet cable is used but it's also possible to use WIFI&lt;br /&gt;
&lt;br /&gt;
USB Dongle for mouse.&lt;br /&gt;
&lt;br /&gt;
HDMI cable from PI to TV or monitor. (Without TV or monitor is also possible : Search on Google and Youtube)&lt;br /&gt;
&lt;br /&gt;
Ethernet cable if possible or WIFI (On first boot the PI need a good connection to the net for last update)&lt;br /&gt;
&lt;br /&gt;
Power (5V if you use DC/DC voltage regulator) on Micro USB&lt;br /&gt;
&lt;br /&gt;
[[Datei:Connecting.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On first start you can see expand sd card,reboot and welcome message with the IP Address for Ethernet&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Select your language and location.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_02.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change password and remember it (we need it later to connect to PI over wifi)  For easy wiki : '''Pass001''' but use another one&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Setup screen, simply click next&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On the WIFI connecting page select the WIFI network that you want to use for all the setting duration (You can change it later for an outdoor one)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Enter your wifi password and follow the next update step (can take again 10 to 30 minutes)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_5.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
REBOOT.&lt;br /&gt;
&lt;br /&gt;
We need to activate VNC serveur to whare the desktop with your PC.&lt;br /&gt;
&lt;br /&gt;
Using Start icon : Go to Préférence and Configuration du Raspberry&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_10.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In the Tab Interfaces Activate SSH and VNC&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_11.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now on the upper right corner of the desktop a new icon show that VNC Serveur is running .&lt;br /&gt;
&lt;br /&gt;
Move your mouse on the Ethernet or Wifi icon to see the IP adress of the ethernet and WIFI one.&lt;br /&gt;
&lt;br /&gt;
The WIFI one is the most important (Here '''10.0.0.29''')&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_12.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Disconnect the ethernet cable and Reboot (Not Shutdown) All Using Start icon and Log Out.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_1201.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===First Remote PC connection over Wifi===&lt;br /&gt;
'''PI SIDE'''&lt;br /&gt;
&lt;br /&gt;
Pi is running and you can see the desktop &lt;br /&gt;
&lt;br /&gt;
'''PC SIDE or Tablet / Phone'''&lt;br /&gt;
&lt;br /&gt;
 Remember that we set the Password to Pass001 and ip adress of the PI WIFI is 10.0.0.29&lt;br /&gt;
 NOW WE WORK ON PC OR TABLET&lt;br /&gt;
&lt;br /&gt;
You have many possiblity (SSH viewer, MobaXterm, Remote Desktop etc...) , In this case I use free real VNC Viewer (Not VNC Serveur) to connect to the PI over your network.&lt;br /&gt;
&lt;br /&gt;
Go to https://www.realvnc.com/fr/connect/download/viewer/&lt;br /&gt;
&lt;br /&gt;
And select the correct donwload according your platform.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Instal the software and start it (VNC Viewer). In your case the tab is empty (No RL1000,Denna etc....)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_21.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On upper left choose File / New Connection&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_22.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Into VNC Serveur : enter the IP of the raspberry  (ethernet or WIFI adress) and give a name to the connection.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_23.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
It's possible that a new security box is shown on the screen Select Continue&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_24.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
You can see the new Connection named Ardumower Double click on it.&lt;br /&gt;
&lt;br /&gt;
UserName is pi and password is Pass001 or the one you choose on first start part.Check remember password&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_25.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
The Clone of the Pi desktop is now on your PC and you can do everything exactly like if you use localy the raspberry ,But from your Sofa&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_26.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Pi Software part===&lt;br /&gt;
&lt;br /&gt;
 NOW WE WORK ON THE PI ''USING VNC VIEWER'' ALL COMMAND NEED TO RESPECT THE CASE&lt;br /&gt;
 DO NOT DISCONNECT THE SCREEN TO HAVE A CORRECT RESOLUTION (1024*768)&lt;br /&gt;
&lt;br /&gt;
You need to send some command to the PI Terminal to install some software.&lt;br /&gt;
&lt;br /&gt;
To see the terminal click on the &amp;gt;_ icon in the taskbar&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_10.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Copy and past all the following command in the terminal after the $ for the rest of this wiki part&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
This download can take a lot of time , so be patient and answer Yes to upgrade&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Python3 Idle====&lt;br /&gt;
&lt;br /&gt;
Piardu.py use Python3 , so we need to install the idle to have access to it and edit if needed (answer Yes for installing)&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install idle3&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
At the end of the Python idle installation you need to have a new icon into Start / Programing menu.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Pygame====&lt;br /&gt;
&lt;br /&gt;
It's possible to drive the mower in Manual mode with PS4 joystick but need pygame software (Maybe already include but it's better to do it)&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install python3-pygame&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Paho Mqtt====&lt;br /&gt;
&lt;br /&gt;
It's possible to controle mower over mqtt and use Home Automation but need python3 paho software part.&lt;br /&gt;
&lt;br /&gt;
 sudo pip3 install paho-mqtt&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Here a fast description of TOPIC&lt;br /&gt;
&lt;br /&gt;
What you can send to mower&lt;br /&gt;
&lt;br /&gt;
Topic Denna/COMMAND&lt;br /&gt;
&lt;br /&gt;
 payload : STOP to stop&lt;br /&gt;
 payload : MOWPATTERN ;1 or 2 or3 according mowpattern&lt;br /&gt;
 payload : START to start with the last mowpattern&lt;br /&gt;
 payload : PAUSE;2 to stop auto start by timer for the next 2 hours&lt;br /&gt;
 payload : HOME to go station&lt;br /&gt;
 payload : STARTTIMER;1;1;0;25;2;50 it's to start from station &lt;br /&gt;
           STARTTIMER;MowPattern;LaneNr;rollDir;WhereStart;areToGo;LaneLenght&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What you receive from mower&lt;br /&gt;
&lt;br /&gt;
Send only when value change&lt;br /&gt;
&lt;br /&gt;
 Topic Denna/STATUS&lt;br /&gt;
 payload the mower status see robot.py list for possible value&lt;br /&gt;
 Topic Denna/STATE&lt;br /&gt;
 payload the mower state see robot.py list for possible value&lt;br /&gt;
 Topic Denna/Battery&lt;br /&gt;
 payload the bat voltage&lt;br /&gt;
 Topic Denna/Temp&lt;br /&gt;
 payload the mower temp&lt;br /&gt;
 Topic Denna/Battery&lt;br /&gt;
 payload the bat voltage&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Send at fixed frequency see config.py (one per second for example)&lt;br /&gt;
&lt;br /&gt;
 Topic Denna/Idle&lt;br /&gt;
 payload the loop per second of due&lt;br /&gt;
&lt;br /&gt;
====KST Plot====&lt;br /&gt;
&lt;br /&gt;
Piardu use software named KST to plot all the data &lt;br /&gt;
&lt;br /&gt;
Seach KST Plot on Google for more info . Again copy and past this into the Pi terminal:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install kst&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_80.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====DosToUnix====&lt;br /&gt;
&lt;br /&gt;
Some file need to be in unix format ,so a conversion is needed using DosToUnix&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install dos2unix&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_65.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Arduino IDE====&lt;br /&gt;
&lt;br /&gt;
It's possible to update the due firmware from Piardu over WIFI but need the ARDUINO IDE in the raspberry.&lt;br /&gt;
&lt;br /&gt;
The process is describe perfectly in this video&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=ySyBNdndB58&lt;br /&gt;
&lt;br /&gt;
You need to download file directly inside the raspberry.&lt;br /&gt;
&lt;br /&gt;
So use the PI Internet browser named CHROMIUM.It's the world Icon on windows top left &lt;br /&gt;
&lt;br /&gt;
Here screenshot of the 07/11/2020 download page for '''Arduino 1.8.13''' version : Choose Linux ARM 32 bits&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_100.png|400px]] [[Datei:pi_soft_101.png|400px]] [[Datei:pi_soft_102.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Go to file manager home / pi / Downloads and right click to the downloaded file ,select extract here (WAIT before you see something appear)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_110.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Now open again the terminal windows (&amp;gt;_ icon on upper left) and copy these command (it can take time)&lt;br /&gt;
&lt;br /&gt;
Warning : folder arduino-1.8-13 can change over time for example arduino-1.8-15 , so use the correct name according your download in the next command.&lt;br /&gt;
&lt;br /&gt;
 cd Downloads/arduino-1.8.13&lt;br /&gt;
&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_115.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not take care about the error message.&lt;br /&gt;
&lt;br /&gt;
You can see now the arduino icon into start / programming, start the prog to be sure everything is OK.&lt;br /&gt;
 &lt;br /&gt;
[[Datei:pi_soft_120.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Add the ARDUINO DUE in the board list&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_125.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Search for DUE : and select arduino SAM Boards&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_130.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Again it can take time,so Wait until process finish.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Normaly arduino ide is not use and only a command line is used to update Due firmware but to be sure the folder name stay always the same  : Go to file Preferences and deactivate the Search for update.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_135.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===PiArdu Software===&lt;br /&gt;
&lt;br /&gt;
You need to copy all the Github file locate into Piardumower folder inside the Raspberry PI home/pi/Documents folder.&lt;br /&gt;
&lt;br /&gt;
Using VNC Viewer :&lt;br /&gt;
&lt;br /&gt;
First initiate the correct location for file transfert &lt;br /&gt;
&lt;br /&gt;
Click VNC Serveur icon on desktop upper right near Bluetooth icon&lt;br /&gt;
&lt;br /&gt;
Click Menu icon on VNC CONNECT upper right page&lt;br /&gt;
&lt;br /&gt;
Select File Transfert in the menu list&lt;br /&gt;
&lt;br /&gt;
In bottom right of the next page select other folder and choose home/pi/Documents.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_205.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Now download all the file:&lt;br /&gt;
Move your mouse in upper middle of the desktop to see the VNC transfert icon and select it Click on send file&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_200.png|400px]] [[Datei:pi_soft_208.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Navigate into your PC to find the github master downloaded file and select piardumower and validate using the '''FULL FOLDER''' in bottom right&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_210.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
If everything is OK you can see now the entire folder correctly locate in home/pi/Documents&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_215.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Set permission to everyone for all the piardumower file &lt;br /&gt;
&lt;br /&gt;
Open a terminal (&amp;gt;_ icon ondesktop) and send the  5 command  &lt;br /&gt;
&lt;br /&gt;
 cd Documents&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R pi:pi PiArdumower&lt;br /&gt;
&lt;br /&gt;
 sudo chmod -R 755 PiArdumower&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_220.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add start Piardu.py to desktop using a shell command:&lt;br /&gt;
&lt;br /&gt;
 cd PiArdumower&lt;br /&gt;
&lt;br /&gt;
 mv mower.sh /home/pi/Desktop&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_221.png|400px]]&lt;br /&gt;
&lt;br /&gt;
A new file is now present on desktop Mower.sh and can be use to start the Piardu.py&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change into config.py for the first start of Piardu (Deactivate momentary the DUE serial link to avoid error)&lt;br /&gt;
&lt;br /&gt;
Start / Programming / Python3 IDLE   &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_230.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
And into Python Shell select File Open home/pi/Documents/Piardumower/config.py&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_235.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now change DueconnectedOnPi from True to False &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_240.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Save and close the config.py file but keep the shell open&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now from Python Shell select File Open home/pi/Documents/Piardumower/PiArdu.py and click on Run / Run Module or hit F5&lt;br /&gt;
&lt;br /&gt;
Piardu need to start without error into Shell windows (No red Line)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_250.png|400px]]&lt;br /&gt;
&lt;br /&gt;
And you can navigate inside all the menu with a fast response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To work correctly some file  need to be converted into Unix format:&lt;br /&gt;
&lt;br /&gt;
Open the terminal and copy these command &lt;br /&gt;
&lt;br /&gt;
 cd Documents/PiArdumower&lt;br /&gt;
&lt;br /&gt;
 dos2unix streamVideo320.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix streamVideo640.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix DueFlash.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix PowerOff.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix Restart.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix testnet1.py&lt;br /&gt;
&lt;br /&gt;
 cd ~/Desktop&lt;br /&gt;
&lt;br /&gt;
 dos2unix mower.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_75.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Automatic start on Power up:&lt;br /&gt;
&lt;br /&gt;
In terminal use text editor named nano to start mower.sh each time the Pi is power up&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/xdg/lxsession/LXDE-pi/autostart&lt;br /&gt;
&lt;br /&gt;
and at the end of the file add the line below ,'''Be careful mouse don't work inside the editor,so paste the line at the correct location , error in this file can corrupt the PI starting process'''&lt;br /&gt;
&lt;br /&gt;
 @bash /home/pi/Desktop/mower.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_237.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Use Ctrl X to exit and save the change in autostart.&lt;br /&gt;
&lt;br /&gt;
Reboot the PI ,Normally Piardu automatically start with some error if DUE is not plug in PCB1.3 or without error if PCB1.3 is used.&lt;br /&gt;
&lt;br /&gt;
If you can't see the bottom red line with date time : check if you have activate raspberryPi to YES using Arduremote / Setting /raspberry&lt;br /&gt;
&lt;br /&gt;
Go to Piardu auto page and click on OFF to reset all eventual error.&lt;br /&gt;
&lt;br /&gt;
===DUE Connection===&lt;br /&gt;
&lt;br /&gt;
If you can't remove Arduino DUE from PCB1.3 : you need to power the raspberry with the DC/DC voltage regulator under the same battery, or with standard PI power supply.&lt;br /&gt;
&lt;br /&gt;
With DC/DC regulator [[File:warning.png]]'''FIRST ADJUST THE DC/DC TO 5V OUTPUT''' or you are going to destroy the raspberry&lt;br /&gt;
&lt;br /&gt;
From PCB1.3 24V P17 --&amp;gt;IN DC/DC OUT--&amp;gt; 5V micro USB Raspberry PI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also connect Arduino Due without the PCB1.3 to PI using USB Cable '''Never use a charging cable only DATA cable''' (DUE is powered by the raspberry ,so it's very easy)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_300.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Change again into config.py to activate the DUE serial link.&lt;br /&gt;
&lt;br /&gt;
Start / Programming / Python3 IDLE   &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_230.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
And into Python Shell select File Open home/pi/Documents/Piardumower/config.py&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_235.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change DueconnectonPi from False to True&lt;br /&gt;
&lt;br /&gt;
Also set UseDebugConsole to True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_241.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Save and close the config.py file but keep the shell open&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now from Python Shell select File Open home/pi/Documents/Piardumower/PiArdu.py and click on Run / Run Module or hit F5&lt;br /&gt;
&lt;br /&gt;
Piardu need to start and you can navigate inside all the menu very slowly if there are no firmware in the arduino DUE so wait &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_250.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==== FLASH DUE ====&lt;br /&gt;
You can upload the DUE firmware using your PC or directly from Piardu .&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''If Raspberry is powered using PCB1.3 JUMPER JP8 NEED TO BE IN ALWAYS ON POSITION'''&lt;br /&gt;
if you forget to change JP8 position. During the DUE flash, PCB can power off raspberry . In this case you need to upload again the sketch from your PC using DUE programming port&lt;br /&gt;
&lt;br /&gt;
On PiArdu click Back icon and Setting icon&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_305.png|400px]]&lt;br /&gt;
&lt;br /&gt;
On setting main tab use Update the DUE Firmware button and click on Start Flash. Never use &amp;quot;(&amp;quot; or &amp;quot;)&amp;quot; in the mane of file or the flash crash. &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_310.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Wait until DUE FLASHER window is closed&lt;br /&gt;
&lt;br /&gt;
You can use your own file . Arduino IDE generate one file each time you compile your project (see the last line in debug view of arduino compiler. Simply copy the file in the raspberry into firmware folder be careful to avoid &amp;quot;(&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== CHECK COMMUNICATION ====&lt;br /&gt;
&lt;br /&gt;
Firmware locate on GITHUB is build to work with or without raspberry.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you test without PCB1.3 and don't have access to ARDUREMOTE you need to manualy set RaspberrypiUse to true.&lt;br /&gt;
See into mower.cpp line 242:&lt;br /&gt;
&lt;br /&gt;
 RaspberryPIUse = false; // a raspberryPi is connected to USBNative port&lt;br /&gt;
&lt;br /&gt;
change with:&lt;br /&gt;
&lt;br /&gt;
 RaspberryPIUse = true; // a raspberryPi is connected to USBNative port&lt;br /&gt;
&lt;br /&gt;
Compile and upload again code into DUE.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you have access to ARDUREMOTE simply go into arduremote / Setting / Raspberry to activate the communication.&lt;br /&gt;
&lt;br /&gt;
When everything is OK, the RED Status line is present in AUTO page of Piardu and change every second.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Try to click Back icon and Setting icon and click on Reboot All &lt;br /&gt;
&lt;br /&gt;
Raspberry and DUE need to reboot if communication,permission and unix format are OK &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Optional Screen===&lt;br /&gt;
&lt;br /&gt;
For really easy working it's better to use a tactile screen ,directly connected on the Raspberry.&lt;br /&gt;
&lt;br /&gt;
Piardu is write to use a 800*480 5 inch screen using HDMI connection.Avoid SPI screen because the processor can't manage everything faster.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 2.png|400px]]  [[Datei:pi screen 1.png|400px]]  [[Datei:Pi4 screen 1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Be carreful when you order : HDMI adaptor is not the same for PI4 (Right Picture) and PI3B+ (center and left Picture)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To setup the tactile and screen :&lt;br /&gt;
&lt;br /&gt;
Go to terminal :copy and paste these command&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/waveshare/LCD-show.git&lt;br /&gt;
&lt;br /&gt;
 cd LCD-show/&lt;br /&gt;
&lt;br /&gt;
 sudo ./LCD5-show&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Wait and after reboot ,Resolution is automaticaly reset to screen one and tactile is working to control PiArdu.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To have PiArdu on total full Screen Right Click in the TaskBar near VNC SERVEUR to open a menu list and select 'Parameter tab de bord' (See picture from translation)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
On the new windows select tab Advance and check Minimise (Again See picture from translation)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 5.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Optional Camera===&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 1.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simply connect the camera to PI CSI port&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 3.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using Start icon : Go to Préférence and Configuration du Raspberry&lt;br /&gt;
&lt;br /&gt;
In the new windows go into tab Interfaces&lt;br /&gt;
&lt;br /&gt;
Check to Enable the Camera&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Move windows or Hit Tabulation 10 times if you can't see Validate Button and press Enter (Reboot)&lt;br /&gt;
&lt;br /&gt;
==== Expérimental AI Vision with Tensorflow ====&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=e6udelf2v50&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EVERYTHING IS HERE EXPERIMENTAL AND CAN'T REPLACE BUMPER OR SONAR.&lt;br /&gt;
&lt;br /&gt;
Main part of detection code came from here and other site on web:&lt;br /&gt;
&lt;br /&gt;
https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10&lt;br /&gt;
&lt;br /&gt;
Only OK with Raspberry 4 at 2 frames per second without google coral accelerator,Note than a Fan is mandatory on the Pi because CPU can heat a lot.&lt;br /&gt;
&lt;br /&gt;
Fast main setup description.&lt;br /&gt;
&lt;br /&gt;
If they are not present copy folder from Github to PiArdumower folder using VNC Viewer:&lt;br /&gt;
 core&lt;br /&gt;
 data&lt;br /&gt;
 protos&lt;br /&gt;
 ssdlite_mobilenet_v2_coco_2018_05_09&lt;br /&gt;
 utils&lt;br /&gt;
 vision&lt;br /&gt;
 &lt;br /&gt;
Now in a new terminal :&lt;br /&gt;
 &lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
Install OPENCV&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3-opencv&lt;br /&gt;
&lt;br /&gt;
Install Tensorflow&lt;br /&gt;
&lt;br /&gt;
 pip3 install tensorflow&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install libatlas-base-dev&lt;br /&gt;
&lt;br /&gt;
 sudo pip3 install pillow lxml jupyter matplotlib cython&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install python3-pil python3-pil.imagetk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using python idle edit ''config.py'' and set Use Vision to true&lt;br /&gt;
&lt;br /&gt;
visionDetectMinScore is used to create a first sort on what we want to explore in the screen.Each time something with score &amp;gt; 78 for example is detected a copy of Live Video is saved on SD Card and soft check if the object detected match with the setting and if we need to stop and reverse or continue to mow.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 05.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Using python idle open and start ''PiArdu519.py'' or later&lt;br /&gt;
&lt;br /&gt;
Into setting you can see the tab Vision open it to set the threshold of what you want to avoid.&lt;br /&gt;
&lt;br /&gt;
For each object you can set a minimum detection score and a minimum area (How many percent of the full image)&lt;br /&gt;
&lt;br /&gt;
According the tensorflow model you need to set the correct object ID (name is according but you can change it)&lt;br /&gt;
Here the .txt file list: &lt;br /&gt;
&lt;br /&gt;
For example on COCO model the chair have ID 62 and we want to stop and reverse if detection score is &amp;gt; 75 and area &amp;gt; 12 % of the screen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 08.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Video menu, click on Start Vision and wait at least 40 seconds for tensorflow to load the model.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 12.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
A new windows named 'Live Video' appear.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 13.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now you can reduce Live Video windows and start to mow until something is detected&lt;br /&gt;
&lt;br /&gt;
The big red box is replace with the last detection and a file is create into vision folder  &lt;br /&gt;
 &lt;br /&gt;
[[Datei:Piardu video 15.png|400px]] [[Datei:Piardu video 30.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Console you can see the result of detection.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Each time person or Dog etc.. is detected mower stop and reverse , a picture is take and store in the vision / date time folder&lt;br /&gt;
&lt;br /&gt;
AGAIN IT'S EXPERIMENTAL AND ONLY FOR FUN so check in the python shell that no error occur and test to see if the detection is reliable !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Backup SD CARD===&lt;br /&gt;
After this very long setup it's time to create a backup of your SD Card into your PC.&lt;br /&gt;
&lt;br /&gt;
Power OFF your raspberry using the correct command and move the SD CARD from the raspberry to your PC. Close windows message for format suggestion.&lt;br /&gt;
&lt;br /&gt;
Using Win32DiskImager a free software you can create image file of your SD Card and save it into your PC.So it's easy to rebuild your card later if you damage it or if you want to build other one using the read and write button.&lt;br /&gt;
&lt;br /&gt;
Image file size is the same as your SD CARD ,so need space on your PC&lt;br /&gt;
&lt;br /&gt;
It's here https://win32diskimager.org/&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager001.png|400px]] &lt;br /&gt;
&lt;br /&gt;
Download the soft and start it.Your SDCARD is normaly detected  and you only need to select a backup folder and give a name to the file ,add .img at the end of your backup file &lt;br /&gt;
&lt;br /&gt;
TO BACKUP&lt;br /&gt;
&lt;br /&gt;
Click on read button to copy your sdcard to your PC.&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager020.png|400px]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TO RESTORE &lt;br /&gt;
&lt;br /&gt;
Insert a new SDCARD with minimum same size ,select your backup file and click on write button to create the new SDCARD&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager030.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Piardu Main Configuration==&lt;br /&gt;
&lt;br /&gt;
 Inside folder : home/pi/Documents/Piardumower you can edit the config.py file to manage different option :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu config 1.png|600px]] [[Datei:Piardu config 2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
''PCB part:''&lt;br /&gt;
&lt;br /&gt;
'''Due ConnectedOnPi'''&lt;br /&gt;
True for normal use , False to test Raspberry without PCB1.3 and DUE&lt;br /&gt;
&lt;br /&gt;
''GPS part:''&lt;br /&gt;
&lt;br /&gt;
Warning : GPS is not use by software,it's only a tracker version, All data are recorded and saved inside Piardumower/Gpsdata&lt;br /&gt;
&lt;br /&gt;
'''GpsConnectedOnPi''' &lt;br /&gt;
True or False : Old config with GPS directly connected on Raspberry Pi Serial GPIO.&lt;br /&gt;
&lt;br /&gt;
'''GpsIsM6n'''&lt;br /&gt;
True or False : Set to false is you use M8N module because NMEA sentence are not the same&lt;br /&gt;
&lt;br /&gt;
''Arduino Nano part.''&lt;br /&gt;
&lt;br /&gt;
'''NanoConnectedOnPi'''&lt;br /&gt;
&lt;br /&gt;
It's possible to connect Arduino Nano on Pi USB to receive data and react according, It was build to test some laser beam VL53L0X sensor and rain sensor but without success&lt;br /&gt;
&lt;br /&gt;
''Battery part:''&lt;br /&gt;
&lt;br /&gt;
'''AutoRecordBatCharging'''&lt;br /&gt;
&lt;br /&gt;
When charging start it's possible to record each minute voltage and battery sense to check later how everything work and adjust the max charging duration if necessary.&lt;br /&gt;
&lt;br /&gt;
''Debug part:''&lt;br /&gt;
&lt;br /&gt;
'''UseDebugConsole'''&lt;br /&gt;
&lt;br /&gt;
If True ,you can see more message in the console page including all NMEA sentence received and send by Raspberry.&lt;br /&gt;
&lt;br /&gt;
''Sender part:''&lt;br /&gt;
&lt;br /&gt;
'''Sender1AdressIP''' '''Sender2AdressIP''' '''Sender3AdressIP'''&lt;br /&gt;
&lt;br /&gt;
If you use the RFID option with multiple area it's the IP adress that Piardu use to communicate with other sender over WIFI.&lt;br /&gt;
&lt;br /&gt;
''Camera part:''&lt;br /&gt;
&lt;br /&gt;
'''myCamAngle'''&lt;br /&gt;
&lt;br /&gt;
If camera in mount in particular orientation it's possible to adjust screen render here.&lt;br /&gt;
&lt;br /&gt;
'''streamVideoOnPower'''&lt;br /&gt;
&lt;br /&gt;
if set to True the video stream automatically start when pi is power up&lt;br /&gt;
&lt;br /&gt;
==Piardu Power ON / OFF video==&lt;br /&gt;
&lt;br /&gt;
Result after everything correctly set :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power ON&lt;br /&gt;
&lt;br /&gt;
 https://youtu.be/Qhv8r2bD_Bk&lt;br /&gt;
&lt;br /&gt;
Power OFF&lt;br /&gt;
&lt;br /&gt;
 https://youtu.be/4YJQ-zyLq-Q&lt;br /&gt;
&lt;br /&gt;
==Piardu MENU Description==&lt;br /&gt;
It's here : &lt;br /&gt;
 [[https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Explain_(English)]]&lt;br /&gt;
&lt;br /&gt;
Full description is here:&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Explain_(English)&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Firmware_(English)&amp;diff=10337</id>
		<title>AzuritBer Pi Firmware (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Firmware_(English)&amp;diff=10337"/>
				<updated>2022-02-05T10:26:58Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Piardu Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi =&lt;br /&gt;
&lt;br /&gt;
A Raspberry Pi is connected over Due Native USB to the arduino&lt;br /&gt;
&lt;br /&gt;
It is used to control Mower over WIFI from everywhere using PC,Tablet,Smartphone etc.....&lt;br /&gt;
&lt;br /&gt;
All movement and message are saved on SDcard for each mowing run and you can check later exactly what append (Bump,Sonar,Perimeter trig etc....)&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
===What you need===&lt;br /&gt;
&lt;br /&gt;
1 Raspberry PI 3B+ or PI4 (The Pizero W can work but very slowly and it's not the goal).[[Datei:pi3_board.jpg|100px]]&lt;br /&gt;
&lt;br /&gt;
1 DC/DC voltage regulator to power the PI.Minumum 5A version from marotronics[[Datei:DC DC 5A.jpg|100px]] https://www.marotronics.de/5A-DC-DC-step-down-module-XL4015-with-heat-sink-eg-for-Arduino&lt;br /&gt;
&lt;br /&gt;
Connect P17 to input of the DC/DC voltage regulator and connect a micro usb cable to output [[File:warning.png]]'''(ADJUST the output voltage to 5V before plug the PI)'''&lt;br /&gt;
&lt;br /&gt;
1 USB mouse,keyboard for setting.You can simply use a standard one for the setting and disconnect it after But it's also possible to use a small one like that to drive the mower remotely in manual mode.[[Datei:small_keyboard1.jpg|100px]]&lt;br /&gt;
&lt;br /&gt;
1 SD Card 32 GB class 10[[Datei:Sd card.jpg|30px]]&lt;br /&gt;
&lt;br /&gt;
1 PowerBank or DC/DC voltage regulator connected to PCB1.3 or power supply for the raspberry pi minimum 3A&lt;br /&gt;
&lt;br /&gt;
1 HDMI cable to see the PI desktop on your TV  or HDMI Screen.&lt;br /&gt;
&lt;br /&gt;
1 TV or monitor with HDMI input to easily see the raspberry IP adress on the first boot.&lt;br /&gt;
&lt;br /&gt;
===Fast setup for Advanced user===&lt;br /&gt;
&lt;br /&gt;
If you already know how raspberry PI work with desktop ,You can read setup process locate into github under Txt File Setup_raspberry.rtf&lt;br /&gt;
&lt;br /&gt;
Here the full setup process:&lt;br /&gt;
&lt;br /&gt;
VNC is installed and you have copied all Piardumower data into Documents folder.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install idle3&lt;br /&gt;
 sudo pip3 install paho-mqtt&lt;br /&gt;
 sudo apt-get install kst&lt;br /&gt;
 sudo apt-get install dos2unix&lt;br /&gt;
&lt;br /&gt;
Download and Install Arduino IDE and add Due board if you want to flash Due over WIFI&lt;br /&gt;
&lt;br /&gt;
 cd ~/Documents&lt;br /&gt;
 sudo chown -R pi:pi PiArdumower&lt;br /&gt;
 sudo chmod -R 755 PiArdumower&lt;br /&gt;
 cd PiArdumower&lt;br /&gt;
 mv mower.sh /home/pi/Desktop&lt;br /&gt;
&lt;br /&gt;
 cd ~/Documents/PiArdumower&lt;br /&gt;
 dos2unix streamVideo320.py&lt;br /&gt;
 dos2unix streamVideo640.py&lt;br /&gt;
 dos2unix DueFlash.py&lt;br /&gt;
 dos2unix PowerOff.py&lt;br /&gt;
 dos2unix Restart.py&lt;br /&gt;
 dos2unix testnet1.py&lt;br /&gt;
 cd ~/Desktop&lt;br /&gt;
 dos2unix mower.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you never work with Raspberry simply follow the full WIKI and check all screen copy.&lt;br /&gt;
&lt;br /&gt;
===Build the SD Card===&lt;br /&gt;
&lt;br /&gt;
You need to first write the raspbian OS on the SD Card .&lt;br /&gt;
&lt;br /&gt;
It's easy using the main raspberry.org site.&lt;br /&gt;
&lt;br /&gt;
You can connect you Micro SD CARD to your laptop or PC using correct adaptor &lt;br /&gt;
&lt;br /&gt;
No need to format at the point but '''All Data present on it will be destroyed.'''&lt;br /&gt;
&lt;br /&gt;
Connect to : https://www.raspberrypi.org/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Buster001.png|400px]] and select the Download page&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster002.png|400px]] Select Raspberry Pi Imager for Windows&lt;br /&gt;
----&lt;br /&gt;
Wait until the download is finish and launch the downloaded prog.&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster003.png|400px]] Select Choose OS&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster004.png|400px]] Use the recommended one with Desktop&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster005.png|400px]] Select Choose SD CARD&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster006.png|400px]] Select your SD CARD Be careful to select the correct one.&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster007.png|400px]] Select Write and wait until down (can take 15 to 60 Min according your internet speed).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remove the SD CARD for your PC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PI Initial boot with Desktop===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect everything on the PI ; Here the Ethernet cable is used but it's also possible to use WIFI&lt;br /&gt;
&lt;br /&gt;
USB Dongle for mouse.&lt;br /&gt;
&lt;br /&gt;
HDMI cable from PI to TV or monitor. (Without TV or monitor is also possible : Search on Google and Youtube)&lt;br /&gt;
&lt;br /&gt;
Ethernet cable if possible or WIFI (On first boot the PI need a good connection to the net for last update)&lt;br /&gt;
&lt;br /&gt;
Power (5V if you use DC/DC voltage regulator) on Micro USB&lt;br /&gt;
&lt;br /&gt;
[[Datei:Connecting.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On first start you can see expand sd card,reboot and welcome message with the IP Address for Ethernet&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Select your language and location.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_02.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change password and remember it (we need it later to connect to PI over wifi)  For easy wiki : '''Pass001''' but use another one&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Setup screen, simply click next&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On the WIFI connecting page select the WIFI network that you want to use for all the setting duration (You can change it later for an outdoor one)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Enter your wifi password and follow the next update step (can take again 10 to 30 minutes)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_5.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
REBOOT.&lt;br /&gt;
&lt;br /&gt;
We need to activate VNC serveur to whare the desktop with your PC.&lt;br /&gt;
&lt;br /&gt;
Using Start icon : Go to Préférence and Configuration du Raspberry&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_10.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In the Tab Interfaces Activate SSH and VNC&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_11.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now on the upper right corner of the desktop a new icon show that VNC Serveur is running .&lt;br /&gt;
&lt;br /&gt;
Move your mouse on the Ethernet or Wifi icon to see the IP adress of the ethernet and WIFI one.&lt;br /&gt;
&lt;br /&gt;
The WIFI one is the most important (Here '''10.0.0.29''')&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_12.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Disconnect the ethernet cable and Reboot (Not Shutdown) All Using Start icon and Log Out.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_1201.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===First Remote PC connection over Wifi===&lt;br /&gt;
'''PI SIDE'''&lt;br /&gt;
&lt;br /&gt;
Pi is running and you can see the desktop &lt;br /&gt;
&lt;br /&gt;
'''PC SIDE or Tablet / Phone'''&lt;br /&gt;
&lt;br /&gt;
 Remember that we set the Password to Pass001 and ip adress of the PI WIFI is 10.0.0.29&lt;br /&gt;
 NOW WE WORK ON PC OR TABLET&lt;br /&gt;
&lt;br /&gt;
You have many possiblity (SSH viewer, MobaXterm, Remote Desktop etc...) , In this case I use free real VNC Viewer (Not VNC Serveur) to connect to the PI over your network.&lt;br /&gt;
&lt;br /&gt;
Go to https://www.realvnc.com/fr/connect/download/viewer/&lt;br /&gt;
&lt;br /&gt;
And select the correct donwload according your platform.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Instal the software and start it (VNC Viewer). In your case the tab is empty (No RL1000,Denna etc....)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_21.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On upper left choose File / New Connection&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_22.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Into VNC Serveur : enter the IP of the raspberry  (ethernet or WIFI adress) and give a name to the connection.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_23.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
It's possible that a new security box is shown on the screen Select Continue&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_24.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
You can see the new Connection named Ardumower Double click on it.&lt;br /&gt;
&lt;br /&gt;
UserName is pi and password is Pass001 or the one you choose on first start part.Check remember password&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_25.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
The Clone of the Pi desktop is now on your PC and you can do everything exactly like if you use localy the raspberry ,But from your Sofa&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_26.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Pi Software part===&lt;br /&gt;
&lt;br /&gt;
 NOW WE WORK ON THE PI ''USING VNC VIEWER'' ALL COMMAND NEED TO RESPECT THE CASE&lt;br /&gt;
 DO NOT DISCONNECT THE SCREEN TO HAVE A CORRECT RESOLUTION (1024*768)&lt;br /&gt;
&lt;br /&gt;
You need to send some command to the PI Terminal to install some software.&lt;br /&gt;
&lt;br /&gt;
To see the terminal click on the &amp;gt;_ icon in the taskbar&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_10.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Copy and past all the following command in the terminal after the $ for the rest of this wiki part&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
This download can take a lot of time , so be patient and answer Yes to upgrade&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Python3 Idle====&lt;br /&gt;
&lt;br /&gt;
Piardu.py use Python3 , so we need to install the idle to have access to it and edit if needed (answer Yes for installing)&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install idle3&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
At the end of the Python idle installation you need to have a new icon into Start / Programing menu.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Pygame====&lt;br /&gt;
&lt;br /&gt;
It's possible to drive the mower in Manual mode with PS4 joystick but need pygame software (Maybe already include but it's better to do it)&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install python3-pygame&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Paho Mqtt====&lt;br /&gt;
&lt;br /&gt;
It's possible to controle mower over mqtt and use Home Automation but need python3 paho software part.&lt;br /&gt;
&lt;br /&gt;
 sudo pip3 install paho-mqtt&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Here a fast description of TOPIC&lt;br /&gt;
&lt;br /&gt;
What you can send to mower&lt;br /&gt;
&lt;br /&gt;
Topic Denna/COMMAND&lt;br /&gt;
&lt;br /&gt;
 payload : STOP to stop&lt;br /&gt;
 payload : MOWPATTERN ;1 or 2 or3 according mowpattern&lt;br /&gt;
 payload : START to start with the last mowpattern&lt;br /&gt;
 payload : PAUSE;2 to stop auto start by timer for the next 2 hours&lt;br /&gt;
 payload : HOME to go station&lt;br /&gt;
 payload : STARTTIMER;1;1;0;25;2;50 it's to start from station &lt;br /&gt;
           STARTTIMER;MowPattern;LaneNr;rollDir;WhereStart;areToGo;LaneLenght&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What you receive from mower&lt;br /&gt;
&lt;br /&gt;
Send only when value change&lt;br /&gt;
&lt;br /&gt;
 Topic Denna/STATUS&lt;br /&gt;
 payload the mower status see robot.py list for possible value&lt;br /&gt;
 Topic Denna/STATE&lt;br /&gt;
 payload the mower state see robot.py list for possible value&lt;br /&gt;
 Topic Denna/Battery&lt;br /&gt;
 payload the bat voltage&lt;br /&gt;
 Topic Denna/Temp&lt;br /&gt;
 payload the mower temp&lt;br /&gt;
 Topic Denna/Battery&lt;br /&gt;
 payload the bat voltage&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Send at fixed frequency see config.py (one per second for example)&lt;br /&gt;
&lt;br /&gt;
 Topic Denna/Idle&lt;br /&gt;
 payload the loop per second of due&lt;br /&gt;
&lt;br /&gt;
====KST Plot====&lt;br /&gt;
&lt;br /&gt;
Piardu use software named KST to plot all the data &lt;br /&gt;
&lt;br /&gt;
Seach KST Plot on Google for more info . Again copy and past this into the Pi terminal:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install kst&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_80.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====DosToUnix====&lt;br /&gt;
&lt;br /&gt;
Some file need to be in unix format ,so a conversion is needed using DosToUnix&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install dos2unix&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_65.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Arduino IDE====&lt;br /&gt;
&lt;br /&gt;
It's possible to update the due firmware from Piardu over WIFI but need the ARDUINO IDE in the raspberry.&lt;br /&gt;
&lt;br /&gt;
The process is describe perfectly in this video&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=ySyBNdndB58&lt;br /&gt;
&lt;br /&gt;
You need to download file directly inside the raspberry.&lt;br /&gt;
&lt;br /&gt;
So use the PI Internet browser named CHROMIUM.It's the world Icon on windows top left &lt;br /&gt;
&lt;br /&gt;
Here screenshot of the 07/11/2020 download page for '''Arduino 1.8.13''' version : Choose Linux ARM 32 bits&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_100.png|400px]] [[Datei:pi_soft_101.png|400px]] [[Datei:pi_soft_102.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Go to file manager home / pi / Downloads and right click to the downloaded file ,select extract here (WAIT before you see something appear)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_110.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Now open again the terminal windows (&amp;gt;_ icon on upper left) and copy these command (it can take time)&lt;br /&gt;
&lt;br /&gt;
Warning : folder arduino-1.8-13 can change over time for example arduino-1.8-15 , so use the correct name according your download in the next command.&lt;br /&gt;
&lt;br /&gt;
 cd Downloads/arduino-1.8.13&lt;br /&gt;
&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_115.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not take care about the error message.&lt;br /&gt;
&lt;br /&gt;
You can see now the arduino icon into start / programming, start the prog to be sure everything is OK.&lt;br /&gt;
 &lt;br /&gt;
[[Datei:pi_soft_120.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Add the ARDUINO DUE in the board list&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_125.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Search for DUE : and select arduino SAM Boards&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_130.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Again it can take time,so Wait until process finish.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Normaly arduino ide is not use and only a command line is used to update Due firmware but to be sure the folder name stay always the same  : Go to file Preferences and deactivate the Search for update.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_135.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===PiArdu Software===&lt;br /&gt;
&lt;br /&gt;
You need to copy all the Github file locate into Piardumower folder inside the Raspberry PI home/pi/Documents folder.&lt;br /&gt;
&lt;br /&gt;
Using VNC Viewer :&lt;br /&gt;
&lt;br /&gt;
First initiate the correct location for file transfert &lt;br /&gt;
&lt;br /&gt;
Click VNC Serveur icon on desktop upper right near Bluetooth icon&lt;br /&gt;
&lt;br /&gt;
Click Menu icon on VNC CONNECT upper right page&lt;br /&gt;
&lt;br /&gt;
Select File Transfert in the menu list&lt;br /&gt;
&lt;br /&gt;
In bottom right of the next page select other folder and choose home/pi/Documents.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_205.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Now download all the file:&lt;br /&gt;
Move your mouse in upper middle of the desktop to see the VNC transfert icon and select it Click on send file&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_200.png|400px]] [[Datei:pi_soft_208.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Navigate into your PC to find the github master downloaded file and select piardumower and validate using the '''FULL FOLDER''' in bottom right&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_210.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
If everything is OK you can see now the entire folder correctly locate in home/pi/Documents&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_215.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Set permission to everyone for all the piardumower file &lt;br /&gt;
&lt;br /&gt;
Open a terminal (&amp;gt;_ icon ondesktop) and send the  5 command  &lt;br /&gt;
&lt;br /&gt;
 cd Documents&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R pi:pi PiArdumower&lt;br /&gt;
&lt;br /&gt;
 sudo chmod -R 755 PiArdumower&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_220.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add start Piardu.py to desktop using a shell command:&lt;br /&gt;
&lt;br /&gt;
 cd PiArdumower&lt;br /&gt;
&lt;br /&gt;
 mv mower.sh /home/pi/Desktop&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_221.png|400px]]&lt;br /&gt;
&lt;br /&gt;
A new file is now present on desktop Mower.sh and can be use to start the Piardu.py&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change into config.py for the first start of Piardu (Deactivate momentary the DUE serial link to avoid error)&lt;br /&gt;
&lt;br /&gt;
Start / Programming / Python3 IDLE   &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_230.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
And into Python Shell select File Open home/pi/Documents/Piardumower/config.py&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_235.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now change DueconnectedOnPi from True to False &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_240.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Save and close the config.py file but keep the shell open&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now from Python Shell select File Open home/pi/Documents/Piardumower/PiArdu.py and click on Run / Run Module or hit F5&lt;br /&gt;
&lt;br /&gt;
Piardu need to start without error into Shell windows (No red Line)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_250.png|400px]]&lt;br /&gt;
&lt;br /&gt;
And you can navigate inside all the menu with a fast response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To work correctly some file  need to be converted into Unix format:&lt;br /&gt;
&lt;br /&gt;
Open the terminal and copy these command &lt;br /&gt;
&lt;br /&gt;
 cd Documents/PiArdumower&lt;br /&gt;
&lt;br /&gt;
 dos2unix streamVideo320.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix streamVideo640.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix DueFlash.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix PowerOff.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix Restart.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix testnet1.py&lt;br /&gt;
&lt;br /&gt;
 cd ~/Desktop&lt;br /&gt;
&lt;br /&gt;
 dos2unix mower.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_75.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Automatic start on Power up:&lt;br /&gt;
&lt;br /&gt;
In terminal use text editor named nano to start mower.sh each time the Pi is power up&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/xdg/lxsession/LXDE-pi/autostart&lt;br /&gt;
&lt;br /&gt;
and at the end of the file add the line below ,'''Be careful mouse don't work inside the editor,so paste the line at the correct location , error in this file can corrupt the PI starting process'''&lt;br /&gt;
&lt;br /&gt;
 @bash /home/pi/Desktop/mower.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_237.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Use Ctrl X to exit and save the change in autostart.&lt;br /&gt;
&lt;br /&gt;
Reboot the PI ,Normally Piardu automatically start with some error if DUE is not plug in PCB1.3 or without error if PCB1.3 is used.&lt;br /&gt;
&lt;br /&gt;
If you can't see the bottom red line with date time : check if you have activate raspberryPi to YES using Arduremote / Setting /raspberry&lt;br /&gt;
&lt;br /&gt;
Go to Piardu auto page and click on OFF to reset all eventual error.&lt;br /&gt;
&lt;br /&gt;
===DUE Connection===&lt;br /&gt;
&lt;br /&gt;
If you can't remove Arduino DUE from PCB1.3 : you need to power the raspberry with the DC/DC voltage regulator under the same battery, or with standard PI power supply.&lt;br /&gt;
&lt;br /&gt;
With DC/DC regulator [[File:warning.png]]'''FIRST ADJUST THE DC/DC TO 5V OUTPUT''' or you are going to destroy the raspberry&lt;br /&gt;
&lt;br /&gt;
From PCB1.3 24V P17 --&amp;gt;IN DC/DC OUT--&amp;gt; 5V micro USB Raspberry PI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also connect Arduino Due without the PCB1.3 to PI using USB Cable '''Never use a charging cable only DATA cable''' (DUE is powered by the raspberry ,so it's very easy)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_300.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Change again into config.py to activate the DUE serial link.&lt;br /&gt;
&lt;br /&gt;
Start / Programming / Python3 IDLE   &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_230.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
And into Python Shell select File Open home/pi/Documents/Piardumower/config.py&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_235.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change DueconnectonPi from False to True&lt;br /&gt;
&lt;br /&gt;
Also set UseDebugConsole to True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_241.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Save and close the config.py file but keep the shell open&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now from Python Shell select File Open home/pi/Documents/Piardumower/PiArdu.py and click on Run / Run Module or hit F5&lt;br /&gt;
&lt;br /&gt;
Piardu need to start and you can navigate inside all the menu very slowly if there are no firmware in the arduino DUE so wait &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_250.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==== FLASH DUE ====&lt;br /&gt;
You can upload the DUE firmware using your PC or directly from Piardu .&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''If Raspberry is powered using PCB1.3 JUMPER JP8 NEED TO BE IN ALWAYS ON POSITION'''&lt;br /&gt;
if you forget to change JP8 position. During the DUE flash, PCB can power off raspberry . In this case you need to upload again the sketch from your PC using DUE programming port&lt;br /&gt;
&lt;br /&gt;
On PiArdu click Back icon and Setting icon&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_305.png|400px]]&lt;br /&gt;
&lt;br /&gt;
On setting main tab use Update the DUE Firmware button and click on Start Flash. Never use &amp;quot;(&amp;quot; or &amp;quot;)&amp;quot; in the mane of file or the flash crash. &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_310.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Wait until DUE FLASHER window is closed&lt;br /&gt;
&lt;br /&gt;
You can use your own file . Arduino IDE generate one file each time you compile your project (see the last line in debug view of arduino compiler. Simply copy the file in the raspberry into firmware folder be careful to avoid &amp;quot;(&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== CHECK COMMUNICATION ====&lt;br /&gt;
&lt;br /&gt;
Firmware locate on GITHUB is build to work with or without raspberry.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you test without PCB1.3 and don't have access to ARDUREMOTE you need to manualy set RaspberrypiUse to true.&lt;br /&gt;
See into mower.cpp line 242:&lt;br /&gt;
&lt;br /&gt;
 RaspberryPIUse = false; // a raspberryPi is connected to USBNative port&lt;br /&gt;
&lt;br /&gt;
change with:&lt;br /&gt;
&lt;br /&gt;
 RaspberryPIUse = true; // a raspberryPi is connected to USBNative port&lt;br /&gt;
&lt;br /&gt;
Compile and upload again code into DUE.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you have access to ARDUREMOTE simply go into arduremote / Setting / Raspberry to activate the communication.&lt;br /&gt;
&lt;br /&gt;
When everything is OK, the RED Status line is present in AUTO page of Piardu and change every second.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Try to click Back icon and Setting icon and click on Reboot All &lt;br /&gt;
&lt;br /&gt;
Raspberry and DUE need to reboot if communication,permission and unix format are OK &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Optional Screen===&lt;br /&gt;
&lt;br /&gt;
For really easy working it's better to use a tactile screen ,directly connected on the Raspberry.&lt;br /&gt;
&lt;br /&gt;
Piardu is write to use a 800*480 5 inch screen using HDMI connection.Avoid SPI screen because the processor can't manage everything faster.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 2.png|400px]]  [[Datei:pi screen 1.png|400px]]  [[Datei:Pi4 screen 1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Be carreful when you order : HDMI adaptor is not the same for PI4 (Right Picture) and PI3B+ (center and left Picture)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To setup the tactile and screen :&lt;br /&gt;
&lt;br /&gt;
Go to terminal :copy and paste these command&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/waveshare/LCD-show.git&lt;br /&gt;
&lt;br /&gt;
 cd LCD-show/&lt;br /&gt;
&lt;br /&gt;
 sudo ./LCD5-show&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Wait and after reboot ,Resolution is automaticaly reset to screen one and tactile is working to control PiArdu.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To have PiArdu on total full Screen Right Click in the TaskBar near VNC SERVEUR to open a menu list and select 'Parameter tab de bord' (See picture from translation)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
On the new windows select tab Advance and check Minimise (Again See picture from translation)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 5.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Optional Camera===&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 1.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simply connect the camera to PI CSI port&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 3.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using Start icon : Go to Préférence and Configuration du Raspberry&lt;br /&gt;
&lt;br /&gt;
In the new windows go into tab Interfaces&lt;br /&gt;
&lt;br /&gt;
Check to Enable the Camera&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Move windows or Hit Tabulation 10 times if you can't see Validate Button and press Enter (Reboot)&lt;br /&gt;
&lt;br /&gt;
==== Expérimental AI Vision with Tensorflow ====&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=e6udelf2v50&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EVERYTHING IS HERE EXPERIMENTAL AND CAN'T REPLACE BUMPER OR SONAR.&lt;br /&gt;
&lt;br /&gt;
Main part of detection code came from here and other site on web:&lt;br /&gt;
&lt;br /&gt;
https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10&lt;br /&gt;
&lt;br /&gt;
Only OK with Raspberry 4 at 2 frames per second without google coral accelerator,Note than a Fan is mandatory on the Pi because CPU can heat a lot.&lt;br /&gt;
&lt;br /&gt;
Fast main setup description.&lt;br /&gt;
&lt;br /&gt;
If they are not present copy folder from Github to PiArdumower folder using VNC Viewer:&lt;br /&gt;
 core&lt;br /&gt;
 data&lt;br /&gt;
 protos&lt;br /&gt;
 ssdlite_mobilenet_v2_coco_2018_05_09&lt;br /&gt;
 utils&lt;br /&gt;
 vision&lt;br /&gt;
 &lt;br /&gt;
Now in a new terminal :&lt;br /&gt;
 &lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
Install OPENCV&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3-opencv&lt;br /&gt;
&lt;br /&gt;
Install Tensorflow&lt;br /&gt;
&lt;br /&gt;
 pip3 install tensorflow&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install libatlas-base-dev&lt;br /&gt;
&lt;br /&gt;
 sudo pip3 install pillow lxml jupyter matplotlib cython&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install python3-pil python3-pil.imagetk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using python idle edit ''config.py'' and set Use Vision to true&lt;br /&gt;
&lt;br /&gt;
visionDetectMinScore is used to create a first sort on what we want to explore in the screen.Each time something with score &amp;gt; 78 for example is detected a copy of Live Video is saved on SD Card and soft check if the object detected match with the setting and if we need to stop and reverse or continue to mow.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 05.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Using python idle open and start ''PiArdu519.py'' or later&lt;br /&gt;
&lt;br /&gt;
Into setting you can see the tab Vision open it to set the threshold of what you want to avoid.&lt;br /&gt;
&lt;br /&gt;
For each object you can set a minimum detection score and a minimum area (How many percent of the full image)&lt;br /&gt;
&lt;br /&gt;
According the tensorflow model you need to set the correct object ID (name is according but you can change it)&lt;br /&gt;
Here the .txt file list: &lt;br /&gt;
&lt;br /&gt;
For example on COCO model the chair have ID 62 and we want to stop and reverse if detection score is &amp;gt; 75 and area &amp;gt; 12 % of the screen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 08.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Video menu, click on Start Vision and wait at least 40 seconds for tensorflow to load the model.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 12.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
A new windows named 'Live Video' appear.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 13.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now you can reduce Live Video windows and start to mow until something is detected&lt;br /&gt;
&lt;br /&gt;
The big red box is replace with the last detection and a file is create into vision folder  &lt;br /&gt;
 &lt;br /&gt;
[[Datei:Piardu video 15.png|400px]] [[Datei:Piardu video 30.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Console you can see the result of detection.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Each time person or Dog etc.. is detected mower stop and reverse , a picture is take and store in the vision / date time folder&lt;br /&gt;
&lt;br /&gt;
AGAIN IT'S EXPERIMENTAL AND ONLY FOR FUN so check in the python shell that no error occur and test to see if the detection is reliable !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Backup SD CARD===&lt;br /&gt;
After this very long setup it's time to create a backup of your SD Card into your PC.&lt;br /&gt;
&lt;br /&gt;
Power OFF your raspberry using the correct command and move the SD CARD from the raspberry to your PC. Close windows message for format suggestion.&lt;br /&gt;
&lt;br /&gt;
Using Win32DiskImager a free software you can create image file of your SD Card and save it into your PC.So it's easy to rebuild your card later if you damage it or if you want to build other one using the read and write button.&lt;br /&gt;
&lt;br /&gt;
Image file size is the same as your SD CARD ,so need space on your PC&lt;br /&gt;
&lt;br /&gt;
It's here https://win32diskimager.org/&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager001.png|400px]] &lt;br /&gt;
&lt;br /&gt;
Download the soft and start it.Your SDCARD is normaly detected  and you only need to select a backup folder and give a name to the file ,add .img at the end of your backup file &lt;br /&gt;
&lt;br /&gt;
TO BACKUP&lt;br /&gt;
&lt;br /&gt;
Click on read button to copy your sdcard to your PC.&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager020.png|400px]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TO RESTORE &lt;br /&gt;
&lt;br /&gt;
Insert a new SDCARD with minimum same size ,select your backup file and click on write button to create the new SDCARD&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager030.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Piardu Main Configuration==&lt;br /&gt;
&lt;br /&gt;
 Inside folder : home/pi/Documents/Piardumower you can edit the config.py file to manage different option :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu config 1.png|600px]] [[Datei:Piardu config 2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
''PCB part:''&lt;br /&gt;
&lt;br /&gt;
'''Due ConnectedOnPi'''&lt;br /&gt;
True for normal use , False to test Raspberry without PCB1.3 and DUE&lt;br /&gt;
&lt;br /&gt;
''GPS part:''&lt;br /&gt;
&lt;br /&gt;
Warning : GPS is not use by software,it's only a tracker version, All data are recorded and saved inside Piardumower/Gpsdata&lt;br /&gt;
&lt;br /&gt;
'''GpsConnectedOnPi''' &lt;br /&gt;
True or False : Old config with GPS directly connected on Raspberry Pi Serial GPIO.&lt;br /&gt;
&lt;br /&gt;
'''GpsIsM6n'''&lt;br /&gt;
True or False : Set to false is you use M8N module because NMEA sentence are not the same&lt;br /&gt;
&lt;br /&gt;
''Arduino Nano part.''&lt;br /&gt;
&lt;br /&gt;
'''NanoConnectedOnPi'''&lt;br /&gt;
&lt;br /&gt;
It's possible to connect Arduino Nano on Pi USB to receive data and react according, It was build to test some laser beam VL53L0X sensor and rain sensor but without success&lt;br /&gt;
&lt;br /&gt;
''Battery part:''&lt;br /&gt;
&lt;br /&gt;
'''AutoRecordBatCharging'''&lt;br /&gt;
&lt;br /&gt;
When charging start it's possible to record each minute voltage and battery sense to check later how everything work and adjust the max charging duration if necessary.&lt;br /&gt;
&lt;br /&gt;
''Debug part:''&lt;br /&gt;
&lt;br /&gt;
'''UseDebugConsole'''&lt;br /&gt;
&lt;br /&gt;
If True ,you can see more message in the console page including all NMEA sentence received and send by Raspberry.&lt;br /&gt;
&lt;br /&gt;
''Sender part:''&lt;br /&gt;
&lt;br /&gt;
'''Sender1AdressIP''' '''Sender2AdressIP''' '''Sender3AdressIP'''&lt;br /&gt;
&lt;br /&gt;
If you use the RFID option with multiple area it's the IP adress that Piardu use to communicate with other sender over WIFI.&lt;br /&gt;
&lt;br /&gt;
''Camera part:''&lt;br /&gt;
&lt;br /&gt;
'''myCamAngle'''&lt;br /&gt;
&lt;br /&gt;
If camera in mount in particular orientation it's possible to adjust screen render here.&lt;br /&gt;
&lt;br /&gt;
'''streamVideoOnPower'''&lt;br /&gt;
&lt;br /&gt;
if set to True the video stream automatically start when pi is power up&lt;br /&gt;
&lt;br /&gt;
==Piardu Power ON / OFF video==&lt;br /&gt;
&lt;br /&gt;
Result after everything correctly set :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power ON&lt;br /&gt;
&lt;br /&gt;
 https://youtu.be/Qhv8r2bD_Bk&lt;br /&gt;
&lt;br /&gt;
Power OFF&lt;br /&gt;
&lt;br /&gt;
 https://youtu.be/4YJQ-zyLq-Q&lt;br /&gt;
&lt;br /&gt;
==Piardu MENU Description==&lt;br /&gt;
It's here : &lt;br /&gt;
 [[https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Explain_(English)]]&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Firmware_(English)&amp;diff=10336</id>
		<title>AzuritBer Pi Firmware (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Firmware_(English)&amp;diff=10336"/>
				<updated>2022-02-05T10:25:28Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Piardu Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi =&lt;br /&gt;
&lt;br /&gt;
A Raspberry Pi is connected over Due Native USB to the arduino&lt;br /&gt;
&lt;br /&gt;
It is used to control Mower over WIFI from everywhere using PC,Tablet,Smartphone etc.....&lt;br /&gt;
&lt;br /&gt;
All movement and message are saved on SDcard for each mowing run and you can check later exactly what append (Bump,Sonar,Perimeter trig etc....)&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
===What you need===&lt;br /&gt;
&lt;br /&gt;
1 Raspberry PI 3B+ or PI4 (The Pizero W can work but very slowly and it's not the goal).[[Datei:pi3_board.jpg|100px]]&lt;br /&gt;
&lt;br /&gt;
1 DC/DC voltage regulator to power the PI.Minumum 5A version from marotronics[[Datei:DC DC 5A.jpg|100px]] https://www.marotronics.de/5A-DC-DC-step-down-module-XL4015-with-heat-sink-eg-for-Arduino&lt;br /&gt;
&lt;br /&gt;
Connect P17 to input of the DC/DC voltage regulator and connect a micro usb cable to output [[File:warning.png]]'''(ADJUST the output voltage to 5V before plug the PI)'''&lt;br /&gt;
&lt;br /&gt;
1 USB mouse,keyboard for setting.You can simply use a standard one for the setting and disconnect it after But it's also possible to use a small one like that to drive the mower remotely in manual mode.[[Datei:small_keyboard1.jpg|100px]]&lt;br /&gt;
&lt;br /&gt;
1 SD Card 32 GB class 10[[Datei:Sd card.jpg|30px]]&lt;br /&gt;
&lt;br /&gt;
1 PowerBank or DC/DC voltage regulator connected to PCB1.3 or power supply for the raspberry pi minimum 3A&lt;br /&gt;
&lt;br /&gt;
1 HDMI cable to see the PI desktop on your TV  or HDMI Screen.&lt;br /&gt;
&lt;br /&gt;
1 TV or monitor with HDMI input to easily see the raspberry IP adress on the first boot.&lt;br /&gt;
&lt;br /&gt;
===Fast setup for Advanced user===&lt;br /&gt;
&lt;br /&gt;
If you already know how raspberry PI work with desktop ,You can read setup process locate into github under Txt File Setup_raspberry.rtf&lt;br /&gt;
&lt;br /&gt;
Here the full setup process:&lt;br /&gt;
&lt;br /&gt;
VNC is installed and you have copied all Piardumower data into Documents folder.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install idle3&lt;br /&gt;
 sudo pip3 install paho-mqtt&lt;br /&gt;
 sudo apt-get install kst&lt;br /&gt;
 sudo apt-get install dos2unix&lt;br /&gt;
&lt;br /&gt;
Download and Install Arduino IDE and add Due board if you want to flash Due over WIFI&lt;br /&gt;
&lt;br /&gt;
 cd ~/Documents&lt;br /&gt;
 sudo chown -R pi:pi PiArdumower&lt;br /&gt;
 sudo chmod -R 755 PiArdumower&lt;br /&gt;
 cd PiArdumower&lt;br /&gt;
 mv mower.sh /home/pi/Desktop&lt;br /&gt;
&lt;br /&gt;
 cd ~/Documents/PiArdumower&lt;br /&gt;
 dos2unix streamVideo320.py&lt;br /&gt;
 dos2unix streamVideo640.py&lt;br /&gt;
 dos2unix DueFlash.py&lt;br /&gt;
 dos2unix PowerOff.py&lt;br /&gt;
 dos2unix Restart.py&lt;br /&gt;
 dos2unix testnet1.py&lt;br /&gt;
 cd ~/Desktop&lt;br /&gt;
 dos2unix mower.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you never work with Raspberry simply follow the full WIKI and check all screen copy.&lt;br /&gt;
&lt;br /&gt;
===Build the SD Card===&lt;br /&gt;
&lt;br /&gt;
You need to first write the raspbian OS on the SD Card .&lt;br /&gt;
&lt;br /&gt;
It's easy using the main raspberry.org site.&lt;br /&gt;
&lt;br /&gt;
You can connect you Micro SD CARD to your laptop or PC using correct adaptor &lt;br /&gt;
&lt;br /&gt;
No need to format at the point but '''All Data present on it will be destroyed.'''&lt;br /&gt;
&lt;br /&gt;
Connect to : https://www.raspberrypi.org/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Buster001.png|400px]] and select the Download page&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster002.png|400px]] Select Raspberry Pi Imager for Windows&lt;br /&gt;
----&lt;br /&gt;
Wait until the download is finish and launch the downloaded prog.&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster003.png|400px]] Select Choose OS&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster004.png|400px]] Use the recommended one with Desktop&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster005.png|400px]] Select Choose SD CARD&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster006.png|400px]] Select your SD CARD Be careful to select the correct one.&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster007.png|400px]] Select Write and wait until down (can take 15 to 60 Min according your internet speed).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remove the SD CARD for your PC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PI Initial boot with Desktop===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect everything on the PI ; Here the Ethernet cable is used but it's also possible to use WIFI&lt;br /&gt;
&lt;br /&gt;
USB Dongle for mouse.&lt;br /&gt;
&lt;br /&gt;
HDMI cable from PI to TV or monitor. (Without TV or monitor is also possible : Search on Google and Youtube)&lt;br /&gt;
&lt;br /&gt;
Ethernet cable if possible or WIFI (On first boot the PI need a good connection to the net for last update)&lt;br /&gt;
&lt;br /&gt;
Power (5V if you use DC/DC voltage regulator) on Micro USB&lt;br /&gt;
&lt;br /&gt;
[[Datei:Connecting.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On first start you can see expand sd card,reboot and welcome message with the IP Address for Ethernet&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Select your language and location.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_02.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change password and remember it (we need it later to connect to PI over wifi)  For easy wiki : '''Pass001''' but use another one&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Setup screen, simply click next&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On the WIFI connecting page select the WIFI network that you want to use for all the setting duration (You can change it later for an outdoor one)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Enter your wifi password and follow the next update step (can take again 10 to 30 minutes)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_5.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
REBOOT.&lt;br /&gt;
&lt;br /&gt;
We need to activate VNC serveur to whare the desktop with your PC.&lt;br /&gt;
&lt;br /&gt;
Using Start icon : Go to Préférence and Configuration du Raspberry&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_10.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In the Tab Interfaces Activate SSH and VNC&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_11.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now on the upper right corner of the desktop a new icon show that VNC Serveur is running .&lt;br /&gt;
&lt;br /&gt;
Move your mouse on the Ethernet or Wifi icon to see the IP adress of the ethernet and WIFI one.&lt;br /&gt;
&lt;br /&gt;
The WIFI one is the most important (Here '''10.0.0.29''')&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_12.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Disconnect the ethernet cable and Reboot (Not Shutdown) All Using Start icon and Log Out.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_1201.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===First Remote PC connection over Wifi===&lt;br /&gt;
'''PI SIDE'''&lt;br /&gt;
&lt;br /&gt;
Pi is running and you can see the desktop &lt;br /&gt;
&lt;br /&gt;
'''PC SIDE or Tablet / Phone'''&lt;br /&gt;
&lt;br /&gt;
 Remember that we set the Password to Pass001 and ip adress of the PI WIFI is 10.0.0.29&lt;br /&gt;
 NOW WE WORK ON PC OR TABLET&lt;br /&gt;
&lt;br /&gt;
You have many possiblity (SSH viewer, MobaXterm, Remote Desktop etc...) , In this case I use free real VNC Viewer (Not VNC Serveur) to connect to the PI over your network.&lt;br /&gt;
&lt;br /&gt;
Go to https://www.realvnc.com/fr/connect/download/viewer/&lt;br /&gt;
&lt;br /&gt;
And select the correct donwload according your platform.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Instal the software and start it (VNC Viewer). In your case the tab is empty (No RL1000,Denna etc....)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_21.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On upper left choose File / New Connection&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_22.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Into VNC Serveur : enter the IP of the raspberry  (ethernet or WIFI adress) and give a name to the connection.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_23.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
It's possible that a new security box is shown on the screen Select Continue&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_24.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
You can see the new Connection named Ardumower Double click on it.&lt;br /&gt;
&lt;br /&gt;
UserName is pi and password is Pass001 or the one you choose on first start part.Check remember password&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_25.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
The Clone of the Pi desktop is now on your PC and you can do everything exactly like if you use localy the raspberry ,But from your Sofa&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_26.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Pi Software part===&lt;br /&gt;
&lt;br /&gt;
 NOW WE WORK ON THE PI ''USING VNC VIEWER'' ALL COMMAND NEED TO RESPECT THE CASE&lt;br /&gt;
 DO NOT DISCONNECT THE SCREEN TO HAVE A CORRECT RESOLUTION (1024*768)&lt;br /&gt;
&lt;br /&gt;
You need to send some command to the PI Terminal to install some software.&lt;br /&gt;
&lt;br /&gt;
To see the terminal click on the &amp;gt;_ icon in the taskbar&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_10.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Copy and past all the following command in the terminal after the $ for the rest of this wiki part&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
This download can take a lot of time , so be patient and answer Yes to upgrade&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Python3 Idle====&lt;br /&gt;
&lt;br /&gt;
Piardu.py use Python3 , so we need to install the idle to have access to it and edit if needed (answer Yes for installing)&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install idle3&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
At the end of the Python idle installation you need to have a new icon into Start / Programing menu.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Pygame====&lt;br /&gt;
&lt;br /&gt;
It's possible to drive the mower in Manual mode with PS4 joystick but need pygame software (Maybe already include but it's better to do it)&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install python3-pygame&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Paho Mqtt====&lt;br /&gt;
&lt;br /&gt;
It's possible to controle mower over mqtt and use Home Automation but need python3 paho software part.&lt;br /&gt;
&lt;br /&gt;
 sudo pip3 install paho-mqtt&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Here a fast description of TOPIC&lt;br /&gt;
&lt;br /&gt;
What you can send to mower&lt;br /&gt;
&lt;br /&gt;
Topic Denna/COMMAND&lt;br /&gt;
&lt;br /&gt;
 payload : STOP to stop&lt;br /&gt;
 payload : MOWPATTERN ;1 or 2 or3 according mowpattern&lt;br /&gt;
 payload : START to start with the last mowpattern&lt;br /&gt;
 payload : PAUSE;2 to stop auto start by timer for the next 2 hours&lt;br /&gt;
 payload : HOME to go station&lt;br /&gt;
 payload : STARTTIMER;1;1;0;25;2;50 it's to start from station &lt;br /&gt;
           STARTTIMER;MowPattern;LaneNr;rollDir;WhereStart;areToGo;LaneLenght&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What you receive from mower&lt;br /&gt;
&lt;br /&gt;
Send only when value change&lt;br /&gt;
&lt;br /&gt;
 Topic Denna/STATUS&lt;br /&gt;
 payload the mower status see robot.py list for possible value&lt;br /&gt;
 Topic Denna/STATE&lt;br /&gt;
 payload the mower state see robot.py list for possible value&lt;br /&gt;
 Topic Denna/Battery&lt;br /&gt;
 payload the bat voltage&lt;br /&gt;
 Topic Denna/Temp&lt;br /&gt;
 payload the mower temp&lt;br /&gt;
 Topic Denna/Battery&lt;br /&gt;
 payload the bat voltage&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Send at fixed frequency see config.py (one per second for example)&lt;br /&gt;
&lt;br /&gt;
 Topic Denna/Idle&lt;br /&gt;
 payload the loop per second of due&lt;br /&gt;
&lt;br /&gt;
====KST Plot====&lt;br /&gt;
&lt;br /&gt;
Piardu use software named KST to plot all the data &lt;br /&gt;
&lt;br /&gt;
Seach KST Plot on Google for more info . Again copy and past this into the Pi terminal:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install kst&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_80.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====DosToUnix====&lt;br /&gt;
&lt;br /&gt;
Some file need to be in unix format ,so a conversion is needed using DosToUnix&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install dos2unix&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_65.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Arduino IDE====&lt;br /&gt;
&lt;br /&gt;
It's possible to update the due firmware from Piardu over WIFI but need the ARDUINO IDE in the raspberry.&lt;br /&gt;
&lt;br /&gt;
The process is describe perfectly in this video&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=ySyBNdndB58&lt;br /&gt;
&lt;br /&gt;
You need to download file directly inside the raspberry.&lt;br /&gt;
&lt;br /&gt;
So use the PI Internet browser named CHROMIUM.It's the world Icon on windows top left &lt;br /&gt;
&lt;br /&gt;
Here screenshot of the 07/11/2020 download page for '''Arduino 1.8.13''' version : Choose Linux ARM 32 bits&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_100.png|400px]] [[Datei:pi_soft_101.png|400px]] [[Datei:pi_soft_102.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Go to file manager home / pi / Downloads and right click to the downloaded file ,select extract here (WAIT before you see something appear)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_110.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Now open again the terminal windows (&amp;gt;_ icon on upper left) and copy these command (it can take time)&lt;br /&gt;
&lt;br /&gt;
Warning : folder arduino-1.8-13 can change over time for example arduino-1.8-15 , so use the correct name according your download in the next command.&lt;br /&gt;
&lt;br /&gt;
 cd Downloads/arduino-1.8.13&lt;br /&gt;
&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_115.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not take care about the error message.&lt;br /&gt;
&lt;br /&gt;
You can see now the arduino icon into start / programming, start the prog to be sure everything is OK.&lt;br /&gt;
 &lt;br /&gt;
[[Datei:pi_soft_120.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Add the ARDUINO DUE in the board list&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_125.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Search for DUE : and select arduino SAM Boards&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_130.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Again it can take time,so Wait until process finish.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Normaly arduino ide is not use and only a command line is used to update Due firmware but to be sure the folder name stay always the same  : Go to file Preferences and deactivate the Search for update.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_135.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===PiArdu Software===&lt;br /&gt;
&lt;br /&gt;
You need to copy all the Github file locate into Piardumower folder inside the Raspberry PI home/pi/Documents folder.&lt;br /&gt;
&lt;br /&gt;
Using VNC Viewer :&lt;br /&gt;
&lt;br /&gt;
First initiate the correct location for file transfert &lt;br /&gt;
&lt;br /&gt;
Click VNC Serveur icon on desktop upper right near Bluetooth icon&lt;br /&gt;
&lt;br /&gt;
Click Menu icon on VNC CONNECT upper right page&lt;br /&gt;
&lt;br /&gt;
Select File Transfert in the menu list&lt;br /&gt;
&lt;br /&gt;
In bottom right of the next page select other folder and choose home/pi/Documents.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_205.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Now download all the file:&lt;br /&gt;
Move your mouse in upper middle of the desktop to see the VNC transfert icon and select it Click on send file&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_200.png|400px]] [[Datei:pi_soft_208.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Navigate into your PC to find the github master downloaded file and select piardumower and validate using the '''FULL FOLDER''' in bottom right&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_210.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
If everything is OK you can see now the entire folder correctly locate in home/pi/Documents&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_215.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Set permission to everyone for all the piardumower file &lt;br /&gt;
&lt;br /&gt;
Open a terminal (&amp;gt;_ icon ondesktop) and send the  5 command  &lt;br /&gt;
&lt;br /&gt;
 cd Documents&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R pi:pi PiArdumower&lt;br /&gt;
&lt;br /&gt;
 sudo chmod -R 755 PiArdumower&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_220.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add start Piardu.py to desktop using a shell command:&lt;br /&gt;
&lt;br /&gt;
 cd PiArdumower&lt;br /&gt;
&lt;br /&gt;
 mv mower.sh /home/pi/Desktop&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_221.png|400px]]&lt;br /&gt;
&lt;br /&gt;
A new file is now present on desktop Mower.sh and can be use to start the Piardu.py&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change into config.py for the first start of Piardu (Deactivate momentary the DUE serial link to avoid error)&lt;br /&gt;
&lt;br /&gt;
Start / Programming / Python3 IDLE   &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_230.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
And into Python Shell select File Open home/pi/Documents/Piardumower/config.py&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_235.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now change DueconnectedOnPi from True to False &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_240.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Save and close the config.py file but keep the shell open&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now from Python Shell select File Open home/pi/Documents/Piardumower/PiArdu.py and click on Run / Run Module or hit F5&lt;br /&gt;
&lt;br /&gt;
Piardu need to start without error into Shell windows (No red Line)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_250.png|400px]]&lt;br /&gt;
&lt;br /&gt;
And you can navigate inside all the menu with a fast response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To work correctly some file  need to be converted into Unix format:&lt;br /&gt;
&lt;br /&gt;
Open the terminal and copy these command &lt;br /&gt;
&lt;br /&gt;
 cd Documents/PiArdumower&lt;br /&gt;
&lt;br /&gt;
 dos2unix streamVideo320.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix streamVideo640.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix DueFlash.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix PowerOff.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix Restart.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix testnet1.py&lt;br /&gt;
&lt;br /&gt;
 cd ~/Desktop&lt;br /&gt;
&lt;br /&gt;
 dos2unix mower.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_75.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Automatic start on Power up:&lt;br /&gt;
&lt;br /&gt;
In terminal use text editor named nano to start mower.sh each time the Pi is power up&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/xdg/lxsession/LXDE-pi/autostart&lt;br /&gt;
&lt;br /&gt;
and at the end of the file add the line below ,'''Be careful mouse don't work inside the editor,so paste the line at the correct location , error in this file can corrupt the PI starting process'''&lt;br /&gt;
&lt;br /&gt;
 @bash /home/pi/Desktop/mower.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_237.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Use Ctrl X to exit and save the change in autostart.&lt;br /&gt;
&lt;br /&gt;
Reboot the PI ,Normally Piardu automatically start with some error if DUE is not plug in PCB1.3 or without error if PCB1.3 is used.&lt;br /&gt;
&lt;br /&gt;
If you can't see the bottom red line with date time : check if you have activate raspberryPi to YES using Arduremote / Setting /raspberry&lt;br /&gt;
&lt;br /&gt;
Go to Piardu auto page and click on OFF to reset all eventual error.&lt;br /&gt;
&lt;br /&gt;
===DUE Connection===&lt;br /&gt;
&lt;br /&gt;
If you can't remove Arduino DUE from PCB1.3 : you need to power the raspberry with the DC/DC voltage regulator under the same battery, or with standard PI power supply.&lt;br /&gt;
&lt;br /&gt;
With DC/DC regulator [[File:warning.png]]'''FIRST ADJUST THE DC/DC TO 5V OUTPUT''' or you are going to destroy the raspberry&lt;br /&gt;
&lt;br /&gt;
From PCB1.3 24V P17 --&amp;gt;IN DC/DC OUT--&amp;gt; 5V micro USB Raspberry PI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also connect Arduino Due without the PCB1.3 to PI using USB Cable '''Never use a charging cable only DATA cable''' (DUE is powered by the raspberry ,so it's very easy)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_300.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Change again into config.py to activate the DUE serial link.&lt;br /&gt;
&lt;br /&gt;
Start / Programming / Python3 IDLE   &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_230.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
And into Python Shell select File Open home/pi/Documents/Piardumower/config.py&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_235.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change DueconnectonPi from False to True&lt;br /&gt;
&lt;br /&gt;
Also set UseDebugConsole to True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_241.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Save and close the config.py file but keep the shell open&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now from Python Shell select File Open home/pi/Documents/Piardumower/PiArdu.py and click on Run / Run Module or hit F5&lt;br /&gt;
&lt;br /&gt;
Piardu need to start and you can navigate inside all the menu very slowly if there are no firmware in the arduino DUE so wait &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_250.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==== FLASH DUE ====&lt;br /&gt;
You can upload the DUE firmware using your PC or directly from Piardu .&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''If Raspberry is powered using PCB1.3 JUMPER JP8 NEED TO BE IN ALWAYS ON POSITION'''&lt;br /&gt;
if you forget to change JP8 position. During the DUE flash, PCB can power off raspberry . In this case you need to upload again the sketch from your PC using DUE programming port&lt;br /&gt;
&lt;br /&gt;
On PiArdu click Back icon and Setting icon&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_305.png|400px]]&lt;br /&gt;
&lt;br /&gt;
On setting main tab use Update the DUE Firmware button and click on Start Flash. Never use &amp;quot;(&amp;quot; or &amp;quot;)&amp;quot; in the mane of file or the flash crash. &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_310.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Wait until DUE FLASHER window is closed&lt;br /&gt;
&lt;br /&gt;
You can use your own file . Arduino IDE generate one file each time you compile your project (see the last line in debug view of arduino compiler. Simply copy the file in the raspberry into firmware folder be careful to avoid &amp;quot;(&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== CHECK COMMUNICATION ====&lt;br /&gt;
&lt;br /&gt;
Firmware locate on GITHUB is build to work with or without raspberry.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you test without PCB1.3 and don't have access to ARDUREMOTE you need to manualy set RaspberrypiUse to true.&lt;br /&gt;
See into mower.cpp line 242:&lt;br /&gt;
&lt;br /&gt;
 RaspberryPIUse = false; // a raspberryPi is connected to USBNative port&lt;br /&gt;
&lt;br /&gt;
change with:&lt;br /&gt;
&lt;br /&gt;
 RaspberryPIUse = true; // a raspberryPi is connected to USBNative port&lt;br /&gt;
&lt;br /&gt;
Compile and upload again code into DUE.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you have access to ARDUREMOTE simply go into arduremote / Setting / Raspberry to activate the communication.&lt;br /&gt;
&lt;br /&gt;
When everything is OK, the RED Status line is present in AUTO page of Piardu and change every second.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Try to click Back icon and Setting icon and click on Reboot All &lt;br /&gt;
&lt;br /&gt;
Raspberry and DUE need to reboot if communication,permission and unix format are OK &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Optional Screen===&lt;br /&gt;
&lt;br /&gt;
For really easy working it's better to use a tactile screen ,directly connected on the Raspberry.&lt;br /&gt;
&lt;br /&gt;
Piardu is write to use a 800*480 5 inch screen using HDMI connection.Avoid SPI screen because the processor can't manage everything faster.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 2.png|400px]]  [[Datei:pi screen 1.png|400px]]  [[Datei:Pi4 screen 1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Be carreful when you order : HDMI adaptor is not the same for PI4 (Right Picture) and PI3B+ (center and left Picture)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To setup the tactile and screen :&lt;br /&gt;
&lt;br /&gt;
Go to terminal :copy and paste these command&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/waveshare/LCD-show.git&lt;br /&gt;
&lt;br /&gt;
 cd LCD-show/&lt;br /&gt;
&lt;br /&gt;
 sudo ./LCD5-show&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Wait and after reboot ,Resolution is automaticaly reset to screen one and tactile is working to control PiArdu.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To have PiArdu on total full Screen Right Click in the TaskBar near VNC SERVEUR to open a menu list and select 'Parameter tab de bord' (See picture from translation)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
On the new windows select tab Advance and check Minimise (Again See picture from translation)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 5.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Optional Camera===&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 1.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simply connect the camera to PI CSI port&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 3.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using Start icon : Go to Préférence and Configuration du Raspberry&lt;br /&gt;
&lt;br /&gt;
In the new windows go into tab Interfaces&lt;br /&gt;
&lt;br /&gt;
Check to Enable the Camera&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Move windows or Hit Tabulation 10 times if you can't see Validate Button and press Enter (Reboot)&lt;br /&gt;
&lt;br /&gt;
==== Expérimental AI Vision with Tensorflow ====&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=e6udelf2v50&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EVERYTHING IS HERE EXPERIMENTAL AND CAN'T REPLACE BUMPER OR SONAR.&lt;br /&gt;
&lt;br /&gt;
Main part of detection code came from here and other site on web:&lt;br /&gt;
&lt;br /&gt;
https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10&lt;br /&gt;
&lt;br /&gt;
Only OK with Raspberry 4 at 2 frames per second without google coral accelerator,Note than a Fan is mandatory on the Pi because CPU can heat a lot.&lt;br /&gt;
&lt;br /&gt;
Fast main setup description.&lt;br /&gt;
&lt;br /&gt;
If they are not present copy folder from Github to PiArdumower folder using VNC Viewer:&lt;br /&gt;
 core&lt;br /&gt;
 data&lt;br /&gt;
 protos&lt;br /&gt;
 ssdlite_mobilenet_v2_coco_2018_05_09&lt;br /&gt;
 utils&lt;br /&gt;
 vision&lt;br /&gt;
 &lt;br /&gt;
Now in a new terminal :&lt;br /&gt;
 &lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
Install OPENCV&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3-opencv&lt;br /&gt;
&lt;br /&gt;
Install Tensorflow&lt;br /&gt;
&lt;br /&gt;
 pip3 install tensorflow&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install libatlas-base-dev&lt;br /&gt;
&lt;br /&gt;
 sudo pip3 install pillow lxml jupyter matplotlib cython&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install python3-pil python3-pil.imagetk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using python idle edit ''config.py'' and set Use Vision to true&lt;br /&gt;
&lt;br /&gt;
visionDetectMinScore is used to create a first sort on what we want to explore in the screen.Each time something with score &amp;gt; 78 for example is detected a copy of Live Video is saved on SD Card and soft check if the object detected match with the setting and if we need to stop and reverse or continue to mow.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 05.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Using python idle open and start ''PiArdu519.py'' or later&lt;br /&gt;
&lt;br /&gt;
Into setting you can see the tab Vision open it to set the threshold of what you want to avoid.&lt;br /&gt;
&lt;br /&gt;
For each object you can set a minimum detection score and a minimum area (How many percent of the full image)&lt;br /&gt;
&lt;br /&gt;
According the tensorflow model you need to set the correct object ID (name is according but you can change it)&lt;br /&gt;
Here the .txt file list: &lt;br /&gt;
&lt;br /&gt;
For example on COCO model the chair have ID 62 and we want to stop and reverse if detection score is &amp;gt; 75 and area &amp;gt; 12 % of the screen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 08.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Video menu, click on Start Vision and wait at least 40 seconds for tensorflow to load the model.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 12.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
A new windows named 'Live Video' appear.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 13.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now you can reduce Live Video windows and start to mow until something is detected&lt;br /&gt;
&lt;br /&gt;
The big red box is replace with the last detection and a file is create into vision folder  &lt;br /&gt;
 &lt;br /&gt;
[[Datei:Piardu video 15.png|400px]] [[Datei:Piardu video 30.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Console you can see the result of detection.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Each time person or Dog etc.. is detected mower stop and reverse , a picture is take and store in the vision / date time folder&lt;br /&gt;
&lt;br /&gt;
AGAIN IT'S EXPERIMENTAL AND ONLY FOR FUN so check in the python shell that no error occur and test to see if the detection is reliable !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Backup SD CARD===&lt;br /&gt;
After this very long setup it's time to create a backup of your SD Card into your PC.&lt;br /&gt;
&lt;br /&gt;
Power OFF your raspberry using the correct command and move the SD CARD from the raspberry to your PC. Close windows message for format suggestion.&lt;br /&gt;
&lt;br /&gt;
Using Win32DiskImager a free software you can create image file of your SD Card and save it into your PC.So it's easy to rebuild your card later if you damage it or if you want to build other one using the read and write button.&lt;br /&gt;
&lt;br /&gt;
Image file size is the same as your SD CARD ,so need space on your PC&lt;br /&gt;
&lt;br /&gt;
It's here https://win32diskimager.org/&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager001.png|400px]] &lt;br /&gt;
&lt;br /&gt;
Download the soft and start it.Your SDCARD is normaly detected  and you only need to select a backup folder and give a name to the file ,add .img at the end of your backup file &lt;br /&gt;
&lt;br /&gt;
TO BACKUP&lt;br /&gt;
&lt;br /&gt;
Click on read button to copy your sdcard to your PC.&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager020.png|400px]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TO RESTORE &lt;br /&gt;
&lt;br /&gt;
Insert a new SDCARD with minimum same size ,select your backup file and click on write button to create the new SDCARD&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager030.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Piardu Configuration==&lt;br /&gt;
&lt;br /&gt;
 Inside folder : home/pi/Documents/Piardumower you can edit the config.py file to manage different option :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu config 1.png|600px]] [[Datei:Piardu config 2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
''PCB part:''&lt;br /&gt;
&lt;br /&gt;
'''Due ConnectedOnPi'''&lt;br /&gt;
True for normal use , False to test Raspberry without PCB1.3 and DUE&lt;br /&gt;
&lt;br /&gt;
''GPS part:''&lt;br /&gt;
&lt;br /&gt;
Warning : GPS is not use by software,it's only a tracker version, All data are recorded and saved inside Piardumower/Gpsdata&lt;br /&gt;
&lt;br /&gt;
'''GpsConnectedOnPi''' &lt;br /&gt;
True or False : Old config with GPS directly connected on Raspberry Pi Serial GPIO.&lt;br /&gt;
&lt;br /&gt;
'''GpsIsM6n'''&lt;br /&gt;
True or False : Set to false is you use M8N module because NMEA sentence are not the same&lt;br /&gt;
&lt;br /&gt;
''Arduino Nano part.''&lt;br /&gt;
&lt;br /&gt;
'''NanoConnectedOnPi'''&lt;br /&gt;
&lt;br /&gt;
It's possible to connect Arduino Nano on Pi USB to receive data and react according, It was build to test some laser beam VL53L0X sensor and rain sensor but without success&lt;br /&gt;
&lt;br /&gt;
''Battery part:''&lt;br /&gt;
&lt;br /&gt;
'''AutoRecordBatCharging'''&lt;br /&gt;
&lt;br /&gt;
When charging start it's possible to record each minute voltage and battery sense to check later how everything work and adjust the max charging duration if necessary.&lt;br /&gt;
&lt;br /&gt;
''Debug part:''&lt;br /&gt;
&lt;br /&gt;
'''UseDebugConsole'''&lt;br /&gt;
&lt;br /&gt;
If True ,you can see more message in the console page including all NMEA sentence received and send by Raspberry.&lt;br /&gt;
&lt;br /&gt;
''Sender part:''&lt;br /&gt;
&lt;br /&gt;
'''Sender1AdressIP''' '''Sender2AdressIP''' '''Sender3AdressIP'''&lt;br /&gt;
&lt;br /&gt;
If you use the RFID option with multiple area it's the IP adress that Piardu use to communicate with other sender over WIFI.&lt;br /&gt;
&lt;br /&gt;
''Camera part:''&lt;br /&gt;
&lt;br /&gt;
'''myCamAngle'''&lt;br /&gt;
&lt;br /&gt;
If camera in mount in particular orientation it's possible to adjust screen render here.&lt;br /&gt;
&lt;br /&gt;
'''streamVideoOnPower'''&lt;br /&gt;
&lt;br /&gt;
if set to True the video stream automatically start when pi is power up&lt;br /&gt;
&lt;br /&gt;
==Piardu Power ON / OFF video==&lt;br /&gt;
&lt;br /&gt;
Result after everything correctly set :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power ON&lt;br /&gt;
&lt;br /&gt;
 https://youtu.be/Qhv8r2bD_Bk&lt;br /&gt;
&lt;br /&gt;
Power OFF&lt;br /&gt;
&lt;br /&gt;
 https://youtu.be/4YJQ-zyLq-Q&lt;br /&gt;
&lt;br /&gt;
==Piardu MENU Description==&lt;br /&gt;
It's here : &lt;br /&gt;
 [[https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Explain_(English)]]&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Firmware_(English)&amp;diff=10335</id>
		<title>AzuritBer Pi Firmware (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Firmware_(English)&amp;diff=10335"/>
				<updated>2022-02-05T10:25:08Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Piardu Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi =&lt;br /&gt;
&lt;br /&gt;
A Raspberry Pi is connected over Due Native USB to the arduino&lt;br /&gt;
&lt;br /&gt;
It is used to control Mower over WIFI from everywhere using PC,Tablet,Smartphone etc.....&lt;br /&gt;
&lt;br /&gt;
All movement and message are saved on SDcard for each mowing run and you can check later exactly what append (Bump,Sonar,Perimeter trig etc....)&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
===What you need===&lt;br /&gt;
&lt;br /&gt;
1 Raspberry PI 3B+ or PI4 (The Pizero W can work but very slowly and it's not the goal).[[Datei:pi3_board.jpg|100px]]&lt;br /&gt;
&lt;br /&gt;
1 DC/DC voltage regulator to power the PI.Minumum 5A version from marotronics[[Datei:DC DC 5A.jpg|100px]] https://www.marotronics.de/5A-DC-DC-step-down-module-XL4015-with-heat-sink-eg-for-Arduino&lt;br /&gt;
&lt;br /&gt;
Connect P17 to input of the DC/DC voltage regulator and connect a micro usb cable to output [[File:warning.png]]'''(ADJUST the output voltage to 5V before plug the PI)'''&lt;br /&gt;
&lt;br /&gt;
1 USB mouse,keyboard for setting.You can simply use a standard one for the setting and disconnect it after But it's also possible to use a small one like that to drive the mower remotely in manual mode.[[Datei:small_keyboard1.jpg|100px]]&lt;br /&gt;
&lt;br /&gt;
1 SD Card 32 GB class 10[[Datei:Sd card.jpg|30px]]&lt;br /&gt;
&lt;br /&gt;
1 PowerBank or DC/DC voltage regulator connected to PCB1.3 or power supply for the raspberry pi minimum 3A&lt;br /&gt;
&lt;br /&gt;
1 HDMI cable to see the PI desktop on your TV  or HDMI Screen.&lt;br /&gt;
&lt;br /&gt;
1 TV or monitor with HDMI input to easily see the raspberry IP adress on the first boot.&lt;br /&gt;
&lt;br /&gt;
===Fast setup for Advanced user===&lt;br /&gt;
&lt;br /&gt;
If you already know how raspberry PI work with desktop ,You can read setup process locate into github under Txt File Setup_raspberry.rtf&lt;br /&gt;
&lt;br /&gt;
Here the full setup process:&lt;br /&gt;
&lt;br /&gt;
VNC is installed and you have copied all Piardumower data into Documents folder.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install idle3&lt;br /&gt;
 sudo pip3 install paho-mqtt&lt;br /&gt;
 sudo apt-get install kst&lt;br /&gt;
 sudo apt-get install dos2unix&lt;br /&gt;
&lt;br /&gt;
Download and Install Arduino IDE and add Due board if you want to flash Due over WIFI&lt;br /&gt;
&lt;br /&gt;
 cd ~/Documents&lt;br /&gt;
 sudo chown -R pi:pi PiArdumower&lt;br /&gt;
 sudo chmod -R 755 PiArdumower&lt;br /&gt;
 cd PiArdumower&lt;br /&gt;
 mv mower.sh /home/pi/Desktop&lt;br /&gt;
&lt;br /&gt;
 cd ~/Documents/PiArdumower&lt;br /&gt;
 dos2unix streamVideo320.py&lt;br /&gt;
 dos2unix streamVideo640.py&lt;br /&gt;
 dos2unix DueFlash.py&lt;br /&gt;
 dos2unix PowerOff.py&lt;br /&gt;
 dos2unix Restart.py&lt;br /&gt;
 dos2unix testnet1.py&lt;br /&gt;
 cd ~/Desktop&lt;br /&gt;
 dos2unix mower.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you never work with Raspberry simply follow the full WIKI and check all screen copy.&lt;br /&gt;
&lt;br /&gt;
===Build the SD Card===&lt;br /&gt;
&lt;br /&gt;
You need to first write the raspbian OS on the SD Card .&lt;br /&gt;
&lt;br /&gt;
It's easy using the main raspberry.org site.&lt;br /&gt;
&lt;br /&gt;
You can connect you Micro SD CARD to your laptop or PC using correct adaptor &lt;br /&gt;
&lt;br /&gt;
No need to format at the point but '''All Data present on it will be destroyed.'''&lt;br /&gt;
&lt;br /&gt;
Connect to : https://www.raspberrypi.org/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Buster001.png|400px]] and select the Download page&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster002.png|400px]] Select Raspberry Pi Imager for Windows&lt;br /&gt;
----&lt;br /&gt;
Wait until the download is finish and launch the downloaded prog.&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster003.png|400px]] Select Choose OS&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster004.png|400px]] Use the recommended one with Desktop&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster005.png|400px]] Select Choose SD CARD&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster006.png|400px]] Select your SD CARD Be careful to select the correct one.&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster007.png|400px]] Select Write and wait until down (can take 15 to 60 Min according your internet speed).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remove the SD CARD for your PC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PI Initial boot with Desktop===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect everything on the PI ; Here the Ethernet cable is used but it's also possible to use WIFI&lt;br /&gt;
&lt;br /&gt;
USB Dongle for mouse.&lt;br /&gt;
&lt;br /&gt;
HDMI cable from PI to TV or monitor. (Without TV or monitor is also possible : Search on Google and Youtube)&lt;br /&gt;
&lt;br /&gt;
Ethernet cable if possible or WIFI (On first boot the PI need a good connection to the net for last update)&lt;br /&gt;
&lt;br /&gt;
Power (5V if you use DC/DC voltage regulator) on Micro USB&lt;br /&gt;
&lt;br /&gt;
[[Datei:Connecting.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On first start you can see expand sd card,reboot and welcome message with the IP Address for Ethernet&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Select your language and location.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_02.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change password and remember it (we need it later to connect to PI over wifi)  For easy wiki : '''Pass001''' but use another one&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Setup screen, simply click next&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On the WIFI connecting page select the WIFI network that you want to use for all the setting duration (You can change it later for an outdoor one)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Enter your wifi password and follow the next update step (can take again 10 to 30 minutes)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_5.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
REBOOT.&lt;br /&gt;
&lt;br /&gt;
We need to activate VNC serveur to whare the desktop with your PC.&lt;br /&gt;
&lt;br /&gt;
Using Start icon : Go to Préférence and Configuration du Raspberry&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_10.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In the Tab Interfaces Activate SSH and VNC&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_11.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now on the upper right corner of the desktop a new icon show that VNC Serveur is running .&lt;br /&gt;
&lt;br /&gt;
Move your mouse on the Ethernet or Wifi icon to see the IP adress of the ethernet and WIFI one.&lt;br /&gt;
&lt;br /&gt;
The WIFI one is the most important (Here '''10.0.0.29''')&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_12.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Disconnect the ethernet cable and Reboot (Not Shutdown) All Using Start icon and Log Out.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_1201.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===First Remote PC connection over Wifi===&lt;br /&gt;
'''PI SIDE'''&lt;br /&gt;
&lt;br /&gt;
Pi is running and you can see the desktop &lt;br /&gt;
&lt;br /&gt;
'''PC SIDE or Tablet / Phone'''&lt;br /&gt;
&lt;br /&gt;
 Remember that we set the Password to Pass001 and ip adress of the PI WIFI is 10.0.0.29&lt;br /&gt;
 NOW WE WORK ON PC OR TABLET&lt;br /&gt;
&lt;br /&gt;
You have many possiblity (SSH viewer, MobaXterm, Remote Desktop etc...) , In this case I use free real VNC Viewer (Not VNC Serveur) to connect to the PI over your network.&lt;br /&gt;
&lt;br /&gt;
Go to https://www.realvnc.com/fr/connect/download/viewer/&lt;br /&gt;
&lt;br /&gt;
And select the correct donwload according your platform.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Instal the software and start it (VNC Viewer). In your case the tab is empty (No RL1000,Denna etc....)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_21.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On upper left choose File / New Connection&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_22.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Into VNC Serveur : enter the IP of the raspberry  (ethernet or WIFI adress) and give a name to the connection.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_23.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
It's possible that a new security box is shown on the screen Select Continue&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_24.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
You can see the new Connection named Ardumower Double click on it.&lt;br /&gt;
&lt;br /&gt;
UserName is pi and password is Pass001 or the one you choose on first start part.Check remember password&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_25.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
The Clone of the Pi desktop is now on your PC and you can do everything exactly like if you use localy the raspberry ,But from your Sofa&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_26.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Pi Software part===&lt;br /&gt;
&lt;br /&gt;
 NOW WE WORK ON THE PI ''USING VNC VIEWER'' ALL COMMAND NEED TO RESPECT THE CASE&lt;br /&gt;
 DO NOT DISCONNECT THE SCREEN TO HAVE A CORRECT RESOLUTION (1024*768)&lt;br /&gt;
&lt;br /&gt;
You need to send some command to the PI Terminal to install some software.&lt;br /&gt;
&lt;br /&gt;
To see the terminal click on the &amp;gt;_ icon in the taskbar&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_10.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Copy and past all the following command in the terminal after the $ for the rest of this wiki part&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
This download can take a lot of time , so be patient and answer Yes to upgrade&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Python3 Idle====&lt;br /&gt;
&lt;br /&gt;
Piardu.py use Python3 , so we need to install the idle to have access to it and edit if needed (answer Yes for installing)&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install idle3&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
At the end of the Python idle installation you need to have a new icon into Start / Programing menu.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Pygame====&lt;br /&gt;
&lt;br /&gt;
It's possible to drive the mower in Manual mode with PS4 joystick but need pygame software (Maybe already include but it's better to do it)&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install python3-pygame&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Paho Mqtt====&lt;br /&gt;
&lt;br /&gt;
It's possible to controle mower over mqtt and use Home Automation but need python3 paho software part.&lt;br /&gt;
&lt;br /&gt;
 sudo pip3 install paho-mqtt&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Here a fast description of TOPIC&lt;br /&gt;
&lt;br /&gt;
What you can send to mower&lt;br /&gt;
&lt;br /&gt;
Topic Denna/COMMAND&lt;br /&gt;
&lt;br /&gt;
 payload : STOP to stop&lt;br /&gt;
 payload : MOWPATTERN ;1 or 2 or3 according mowpattern&lt;br /&gt;
 payload : START to start with the last mowpattern&lt;br /&gt;
 payload : PAUSE;2 to stop auto start by timer for the next 2 hours&lt;br /&gt;
 payload : HOME to go station&lt;br /&gt;
 payload : STARTTIMER;1;1;0;25;2;50 it's to start from station &lt;br /&gt;
           STARTTIMER;MowPattern;LaneNr;rollDir;WhereStart;areToGo;LaneLenght&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What you receive from mower&lt;br /&gt;
&lt;br /&gt;
Send only when value change&lt;br /&gt;
&lt;br /&gt;
 Topic Denna/STATUS&lt;br /&gt;
 payload the mower status see robot.py list for possible value&lt;br /&gt;
 Topic Denna/STATE&lt;br /&gt;
 payload the mower state see robot.py list for possible value&lt;br /&gt;
 Topic Denna/Battery&lt;br /&gt;
 payload the bat voltage&lt;br /&gt;
 Topic Denna/Temp&lt;br /&gt;
 payload the mower temp&lt;br /&gt;
 Topic Denna/Battery&lt;br /&gt;
 payload the bat voltage&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Send at fixed frequency see config.py (one per second for example)&lt;br /&gt;
&lt;br /&gt;
 Topic Denna/Idle&lt;br /&gt;
 payload the loop per second of due&lt;br /&gt;
&lt;br /&gt;
====KST Plot====&lt;br /&gt;
&lt;br /&gt;
Piardu use software named KST to plot all the data &lt;br /&gt;
&lt;br /&gt;
Seach KST Plot on Google for more info . Again copy and past this into the Pi terminal:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install kst&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_80.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====DosToUnix====&lt;br /&gt;
&lt;br /&gt;
Some file need to be in unix format ,so a conversion is needed using DosToUnix&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install dos2unix&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_65.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Arduino IDE====&lt;br /&gt;
&lt;br /&gt;
It's possible to update the due firmware from Piardu over WIFI but need the ARDUINO IDE in the raspberry.&lt;br /&gt;
&lt;br /&gt;
The process is describe perfectly in this video&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=ySyBNdndB58&lt;br /&gt;
&lt;br /&gt;
You need to download file directly inside the raspberry.&lt;br /&gt;
&lt;br /&gt;
So use the PI Internet browser named CHROMIUM.It's the world Icon on windows top left &lt;br /&gt;
&lt;br /&gt;
Here screenshot of the 07/11/2020 download page for '''Arduino 1.8.13''' version : Choose Linux ARM 32 bits&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_100.png|400px]] [[Datei:pi_soft_101.png|400px]] [[Datei:pi_soft_102.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Go to file manager home / pi / Downloads and right click to the downloaded file ,select extract here (WAIT before you see something appear)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_110.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Now open again the terminal windows (&amp;gt;_ icon on upper left) and copy these command (it can take time)&lt;br /&gt;
&lt;br /&gt;
Warning : folder arduino-1.8-13 can change over time for example arduino-1.8-15 , so use the correct name according your download in the next command.&lt;br /&gt;
&lt;br /&gt;
 cd Downloads/arduino-1.8.13&lt;br /&gt;
&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_115.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not take care about the error message.&lt;br /&gt;
&lt;br /&gt;
You can see now the arduino icon into start / programming, start the prog to be sure everything is OK.&lt;br /&gt;
 &lt;br /&gt;
[[Datei:pi_soft_120.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Add the ARDUINO DUE in the board list&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_125.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Search for DUE : and select arduino SAM Boards&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_130.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Again it can take time,so Wait until process finish.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Normaly arduino ide is not use and only a command line is used to update Due firmware but to be sure the folder name stay always the same  : Go to file Preferences and deactivate the Search for update.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_135.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===PiArdu Software===&lt;br /&gt;
&lt;br /&gt;
You need to copy all the Github file locate into Piardumower folder inside the Raspberry PI home/pi/Documents folder.&lt;br /&gt;
&lt;br /&gt;
Using VNC Viewer :&lt;br /&gt;
&lt;br /&gt;
First initiate the correct location for file transfert &lt;br /&gt;
&lt;br /&gt;
Click VNC Serveur icon on desktop upper right near Bluetooth icon&lt;br /&gt;
&lt;br /&gt;
Click Menu icon on VNC CONNECT upper right page&lt;br /&gt;
&lt;br /&gt;
Select File Transfert in the menu list&lt;br /&gt;
&lt;br /&gt;
In bottom right of the next page select other folder and choose home/pi/Documents.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_205.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Now download all the file:&lt;br /&gt;
Move your mouse in upper middle of the desktop to see the VNC transfert icon and select it Click on send file&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_200.png|400px]] [[Datei:pi_soft_208.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Navigate into your PC to find the github master downloaded file and select piardumower and validate using the '''FULL FOLDER''' in bottom right&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_210.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
If everything is OK you can see now the entire folder correctly locate in home/pi/Documents&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_215.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Set permission to everyone for all the piardumower file &lt;br /&gt;
&lt;br /&gt;
Open a terminal (&amp;gt;_ icon ondesktop) and send the  5 command  &lt;br /&gt;
&lt;br /&gt;
 cd Documents&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R pi:pi PiArdumower&lt;br /&gt;
&lt;br /&gt;
 sudo chmod -R 755 PiArdumower&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_220.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add start Piardu.py to desktop using a shell command:&lt;br /&gt;
&lt;br /&gt;
 cd PiArdumower&lt;br /&gt;
&lt;br /&gt;
 mv mower.sh /home/pi/Desktop&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_221.png|400px]]&lt;br /&gt;
&lt;br /&gt;
A new file is now present on desktop Mower.sh and can be use to start the Piardu.py&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change into config.py for the first start of Piardu (Deactivate momentary the DUE serial link to avoid error)&lt;br /&gt;
&lt;br /&gt;
Start / Programming / Python3 IDLE   &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_230.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
And into Python Shell select File Open home/pi/Documents/Piardumower/config.py&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_235.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now change DueconnectedOnPi from True to False &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_240.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Save and close the config.py file but keep the shell open&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now from Python Shell select File Open home/pi/Documents/Piardumower/PiArdu.py and click on Run / Run Module or hit F5&lt;br /&gt;
&lt;br /&gt;
Piardu need to start without error into Shell windows (No red Line)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_250.png|400px]]&lt;br /&gt;
&lt;br /&gt;
And you can navigate inside all the menu with a fast response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To work correctly some file  need to be converted into Unix format:&lt;br /&gt;
&lt;br /&gt;
Open the terminal and copy these command &lt;br /&gt;
&lt;br /&gt;
 cd Documents/PiArdumower&lt;br /&gt;
&lt;br /&gt;
 dos2unix streamVideo320.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix streamVideo640.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix DueFlash.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix PowerOff.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix Restart.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix testnet1.py&lt;br /&gt;
&lt;br /&gt;
 cd ~/Desktop&lt;br /&gt;
&lt;br /&gt;
 dos2unix mower.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_75.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Automatic start on Power up:&lt;br /&gt;
&lt;br /&gt;
In terminal use text editor named nano to start mower.sh each time the Pi is power up&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/xdg/lxsession/LXDE-pi/autostart&lt;br /&gt;
&lt;br /&gt;
and at the end of the file add the line below ,'''Be careful mouse don't work inside the editor,so paste the line at the correct location , error in this file can corrupt the PI starting process'''&lt;br /&gt;
&lt;br /&gt;
 @bash /home/pi/Desktop/mower.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_237.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Use Ctrl X to exit and save the change in autostart.&lt;br /&gt;
&lt;br /&gt;
Reboot the PI ,Normally Piardu automatically start with some error if DUE is not plug in PCB1.3 or without error if PCB1.3 is used.&lt;br /&gt;
&lt;br /&gt;
If you can't see the bottom red line with date time : check if you have activate raspberryPi to YES using Arduremote / Setting /raspberry&lt;br /&gt;
&lt;br /&gt;
Go to Piardu auto page and click on OFF to reset all eventual error.&lt;br /&gt;
&lt;br /&gt;
===DUE Connection===&lt;br /&gt;
&lt;br /&gt;
If you can't remove Arduino DUE from PCB1.3 : you need to power the raspberry with the DC/DC voltage regulator under the same battery, or with standard PI power supply.&lt;br /&gt;
&lt;br /&gt;
With DC/DC regulator [[File:warning.png]]'''FIRST ADJUST THE DC/DC TO 5V OUTPUT''' or you are going to destroy the raspberry&lt;br /&gt;
&lt;br /&gt;
From PCB1.3 24V P17 --&amp;gt;IN DC/DC OUT--&amp;gt; 5V micro USB Raspberry PI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also connect Arduino Due without the PCB1.3 to PI using USB Cable '''Never use a charging cable only DATA cable''' (DUE is powered by the raspberry ,so it's very easy)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_300.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Change again into config.py to activate the DUE serial link.&lt;br /&gt;
&lt;br /&gt;
Start / Programming / Python3 IDLE   &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_230.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
And into Python Shell select File Open home/pi/Documents/Piardumower/config.py&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_235.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change DueconnectonPi from False to True&lt;br /&gt;
&lt;br /&gt;
Also set UseDebugConsole to True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_241.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Save and close the config.py file but keep the shell open&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now from Python Shell select File Open home/pi/Documents/Piardumower/PiArdu.py and click on Run / Run Module or hit F5&lt;br /&gt;
&lt;br /&gt;
Piardu need to start and you can navigate inside all the menu very slowly if there are no firmware in the arduino DUE so wait &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_250.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==== FLASH DUE ====&lt;br /&gt;
You can upload the DUE firmware using your PC or directly from Piardu .&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''If Raspberry is powered using PCB1.3 JUMPER JP8 NEED TO BE IN ALWAYS ON POSITION'''&lt;br /&gt;
if you forget to change JP8 position. During the DUE flash, PCB can power off raspberry . In this case you need to upload again the sketch from your PC using DUE programming port&lt;br /&gt;
&lt;br /&gt;
On PiArdu click Back icon and Setting icon&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_305.png|400px]]&lt;br /&gt;
&lt;br /&gt;
On setting main tab use Update the DUE Firmware button and click on Start Flash. Never use &amp;quot;(&amp;quot; or &amp;quot;)&amp;quot; in the mane of file or the flash crash. &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_310.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Wait until DUE FLASHER window is closed&lt;br /&gt;
&lt;br /&gt;
You can use your own file . Arduino IDE generate one file each time you compile your project (see the last line in debug view of arduino compiler. Simply copy the file in the raspberry into firmware folder be careful to avoid &amp;quot;(&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== CHECK COMMUNICATION ====&lt;br /&gt;
&lt;br /&gt;
Firmware locate on GITHUB is build to work with or without raspberry.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you test without PCB1.3 and don't have access to ARDUREMOTE you need to manualy set RaspberrypiUse to true.&lt;br /&gt;
See into mower.cpp line 242:&lt;br /&gt;
&lt;br /&gt;
 RaspberryPIUse = false; // a raspberryPi is connected to USBNative port&lt;br /&gt;
&lt;br /&gt;
change with:&lt;br /&gt;
&lt;br /&gt;
 RaspberryPIUse = true; // a raspberryPi is connected to USBNative port&lt;br /&gt;
&lt;br /&gt;
Compile and upload again code into DUE.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you have access to ARDUREMOTE simply go into arduremote / Setting / Raspberry to activate the communication.&lt;br /&gt;
&lt;br /&gt;
When everything is OK, the RED Status line is present in AUTO page of Piardu and change every second.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Try to click Back icon and Setting icon and click on Reboot All &lt;br /&gt;
&lt;br /&gt;
Raspberry and DUE need to reboot if communication,permission and unix format are OK &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Optional Screen===&lt;br /&gt;
&lt;br /&gt;
For really easy working it's better to use a tactile screen ,directly connected on the Raspberry.&lt;br /&gt;
&lt;br /&gt;
Piardu is write to use a 800*480 5 inch screen using HDMI connection.Avoid SPI screen because the processor can't manage everything faster.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 2.png|400px]]  [[Datei:pi screen 1.png|400px]]  [[Datei:Pi4 screen 1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Be carreful when you order : HDMI adaptor is not the same for PI4 (Right Picture) and PI3B+ (center and left Picture)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To setup the tactile and screen :&lt;br /&gt;
&lt;br /&gt;
Go to terminal :copy and paste these command&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/waveshare/LCD-show.git&lt;br /&gt;
&lt;br /&gt;
 cd LCD-show/&lt;br /&gt;
&lt;br /&gt;
 sudo ./LCD5-show&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Wait and after reboot ,Resolution is automaticaly reset to screen one and tactile is working to control PiArdu.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To have PiArdu on total full Screen Right Click in the TaskBar near VNC SERVEUR to open a menu list and select 'Parameter tab de bord' (See picture from translation)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
On the new windows select tab Advance and check Minimise (Again See picture from translation)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 5.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Optional Camera===&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 1.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simply connect the camera to PI CSI port&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 3.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using Start icon : Go to Préférence and Configuration du Raspberry&lt;br /&gt;
&lt;br /&gt;
In the new windows go into tab Interfaces&lt;br /&gt;
&lt;br /&gt;
Check to Enable the Camera&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Move windows or Hit Tabulation 10 times if you can't see Validate Button and press Enter (Reboot)&lt;br /&gt;
&lt;br /&gt;
==== Expérimental AI Vision with Tensorflow ====&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=e6udelf2v50&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EVERYTHING IS HERE EXPERIMENTAL AND CAN'T REPLACE BUMPER OR SONAR.&lt;br /&gt;
&lt;br /&gt;
Main part of detection code came from here and other site on web:&lt;br /&gt;
&lt;br /&gt;
https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10&lt;br /&gt;
&lt;br /&gt;
Only OK with Raspberry 4 at 2 frames per second without google coral accelerator,Note than a Fan is mandatory on the Pi because CPU can heat a lot.&lt;br /&gt;
&lt;br /&gt;
Fast main setup description.&lt;br /&gt;
&lt;br /&gt;
If they are not present copy folder from Github to PiArdumower folder using VNC Viewer:&lt;br /&gt;
 core&lt;br /&gt;
 data&lt;br /&gt;
 protos&lt;br /&gt;
 ssdlite_mobilenet_v2_coco_2018_05_09&lt;br /&gt;
 utils&lt;br /&gt;
 vision&lt;br /&gt;
 &lt;br /&gt;
Now in a new terminal :&lt;br /&gt;
 &lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
Install OPENCV&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3-opencv&lt;br /&gt;
&lt;br /&gt;
Install Tensorflow&lt;br /&gt;
&lt;br /&gt;
 pip3 install tensorflow&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install libatlas-base-dev&lt;br /&gt;
&lt;br /&gt;
 sudo pip3 install pillow lxml jupyter matplotlib cython&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install python3-pil python3-pil.imagetk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using python idle edit ''config.py'' and set Use Vision to true&lt;br /&gt;
&lt;br /&gt;
visionDetectMinScore is used to create a first sort on what we want to explore in the screen.Each time something with score &amp;gt; 78 for example is detected a copy of Live Video is saved on SD Card and soft check if the object detected match with the setting and if we need to stop and reverse or continue to mow.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 05.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Using python idle open and start ''PiArdu519.py'' or later&lt;br /&gt;
&lt;br /&gt;
Into setting you can see the tab Vision open it to set the threshold of what you want to avoid.&lt;br /&gt;
&lt;br /&gt;
For each object you can set a minimum detection score and a minimum area (How many percent of the full image)&lt;br /&gt;
&lt;br /&gt;
According the tensorflow model you need to set the correct object ID (name is according but you can change it)&lt;br /&gt;
Here the .txt file list: &lt;br /&gt;
&lt;br /&gt;
For example on COCO model the chair have ID 62 and we want to stop and reverse if detection score is &amp;gt; 75 and area &amp;gt; 12 % of the screen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 08.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Video menu, click on Start Vision and wait at least 40 seconds for tensorflow to load the model.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 12.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
A new windows named 'Live Video' appear.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 13.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now you can reduce Live Video windows and start to mow until something is detected&lt;br /&gt;
&lt;br /&gt;
The big red box is replace with the last detection and a file is create into vision folder  &lt;br /&gt;
 &lt;br /&gt;
[[Datei:Piardu video 15.png|400px]] [[Datei:Piardu video 30.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Console you can see the result of detection.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Each time person or Dog etc.. is detected mower stop and reverse , a picture is take and store in the vision / date time folder&lt;br /&gt;
&lt;br /&gt;
AGAIN IT'S EXPERIMENTAL AND ONLY FOR FUN so check in the python shell that no error occur and test to see if the detection is reliable !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Backup SD CARD===&lt;br /&gt;
After this very long setup it's time to create a backup of your SD Card into your PC.&lt;br /&gt;
&lt;br /&gt;
Power OFF your raspberry using the correct command and move the SD CARD from the raspberry to your PC. Close windows message for format suggestion.&lt;br /&gt;
&lt;br /&gt;
Using Win32DiskImager a free software you can create image file of your SD Card and save it into your PC.So it's easy to rebuild your card later if you damage it or if you want to build other one using the read and write button.&lt;br /&gt;
&lt;br /&gt;
Image file size is the same as your SD CARD ,so need space on your PC&lt;br /&gt;
&lt;br /&gt;
It's here https://win32diskimager.org/&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager001.png|400px]] &lt;br /&gt;
&lt;br /&gt;
Download the soft and start it.Your SDCARD is normaly detected  and you only need to select a backup folder and give a name to the file ,add .img at the end of your backup file &lt;br /&gt;
&lt;br /&gt;
TO BACKUP&lt;br /&gt;
&lt;br /&gt;
Click on read button to copy your sdcard to your PC.&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager020.png|400px]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TO RESTORE &lt;br /&gt;
&lt;br /&gt;
Insert a new SDCARD with minimum same size ,select your backup file and click on write button to create the new SDCARD&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager030.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Piardu Configuration==&lt;br /&gt;
&lt;br /&gt;
 Inside folder : home/pi/Documents/Piardumower you can edit the config.py file to manage different option :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu config 1.png|600px]] [[Datei:Piardu config 2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
''PCB part:''&lt;br /&gt;
&lt;br /&gt;
'''Due ConnectedOnPi'''&lt;br /&gt;
True for normal use , False to test Raspberry without PCB1.3 and DUE&lt;br /&gt;
&lt;br /&gt;
''GPS part:''&lt;br /&gt;
&lt;br /&gt;
Warning : GPS is not use by software,it's only a tracker version, All data are recorded and saved inside Piardumower/Gpsdata&lt;br /&gt;
&lt;br /&gt;
'''GpsConnectedOnPi''' &lt;br /&gt;
True or False : Old config with GPS directly connected on Raspberry Pi Serial GPIO.&lt;br /&gt;
&lt;br /&gt;
'''GpsIsM6n'''&lt;br /&gt;
True or False : Set to false is you use M8N module because NMEA sentence are not the same&lt;br /&gt;
&lt;br /&gt;
''Arduino Nano part.''&lt;br /&gt;
&lt;br /&gt;
'''NanoConnectedOnPi'''&lt;br /&gt;
&lt;br /&gt;
It's possible to connect Arduino Nano on Pi USB to receive data and react according, It was build to test some laser beam VL53L0X sensor and rain sensor but without success&lt;br /&gt;
&lt;br /&gt;
''Battery part:''&lt;br /&gt;
&lt;br /&gt;
'''AutoRecordBatCharging'''&lt;br /&gt;
&lt;br /&gt;
When charging start it's possible to record each minute voltage and battery sense to check later how everything work and adjust the max charging duration if necessary.&lt;br /&gt;
&lt;br /&gt;
''Debug part:''&lt;br /&gt;
&lt;br /&gt;
'''UseDebugConsole'''&lt;br /&gt;
&lt;br /&gt;
If True ,you can see more message in the console page including all NMEA sentence received and send by Raspberry.&lt;br /&gt;
&lt;br /&gt;
''Sender part:''&lt;br /&gt;
&lt;br /&gt;
'''Sender1AdressIP''' '''Sender2AdressIP''' '''Sender3AdressIP'''&lt;br /&gt;
&lt;br /&gt;
If you use the RFID option with multiple area it's the IP adress that Piardu use to communicate with other sender over WIFI.&lt;br /&gt;
&lt;br /&gt;
''Camera part:''&lt;br /&gt;
&lt;br /&gt;
'''myCamAngle'''&lt;br /&gt;
&lt;br /&gt;
If camera in mount in particular orientation it's possible to adjust screen render here.&lt;br /&gt;
&lt;br /&gt;
'''streamVideoOnPower'''&lt;br /&gt;
&lt;br /&gt;
if set to True the video stream automatically start when pi is power up&lt;br /&gt;
&lt;br /&gt;
==Piardu Power ON / OFF video==&lt;br /&gt;
&lt;br /&gt;
Result after everything correctly set :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power ON&lt;br /&gt;
&lt;br /&gt;
 https://youtu.be/Qhv8r2bD_Bk&lt;br /&gt;
&lt;br /&gt;
Power OFF&lt;br /&gt;
&lt;br /&gt;
 https://youtu.be/4YJQ-zyLq-Q&lt;br /&gt;
&lt;br /&gt;
==Piardu Description==&lt;br /&gt;
It's here : &lt;br /&gt;
 [[https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Explain_(English)]]&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_Firmware_(English)&amp;diff=10334</id>
		<title>AzuritBer Firmware (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_Firmware_(English)&amp;diff=10334"/>
				<updated>2022-02-05T10:23:25Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Level 3 Raspberry Pi + RFID */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=GITHUB Location=&lt;br /&gt;
&lt;br /&gt;
It's here:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Boilevin/AzuritBer GITHUB REPOSITORY]&lt;br /&gt;
&lt;br /&gt;
Process is the same as AZURIT :&lt;br /&gt;
&lt;br /&gt;
You need to upload all file to your PC and open ardumower.ino into arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Upload the code inside your DUE :&lt;br /&gt;
&lt;br /&gt;
On first start it's possible that EEPROM is empty (PCB Beep and start with ERROR) so you need to reset error counter and save setting.&lt;br /&gt;
&lt;br /&gt;
=Test requirements=&lt;br /&gt;
[[File:warning.png]]Security note: For security reasons, always remove mower blades in your first tests!&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]Important: For your first wheel motor tests, jack your robot so that the tires can run freely without ground contact!&lt;br /&gt;
&lt;br /&gt;
Prerequise to follow this WIKI: '''BT Module connected on PCB1.3 (ESP32 is also possible) and Pfod or Arduremote running into Android phone'''&lt;br /&gt;
&lt;br /&gt;
=What is AzuritBer and Why=&lt;br /&gt;
&lt;br /&gt;
AzuritBer was build for DENNA,ROBOMOW and PARANELLO platform and use Odometry or IMU to control the state change. &lt;br /&gt;
It can only run on DUE and Odometry is mandatory (minimum 400 ticks per rev).But it's possible to adjust setting to work on other platform.&lt;br /&gt;
 &lt;br /&gt;
This version always use odometry into all movement (reverse,roll etc...) .The result is a more smooth movement without pause between all the différents state and the possibility to mow by lane for big area and faster mowing&lt;br /&gt;
&lt;br /&gt;
Here video of the random mowing behaviour on 2 platform:&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/Abt5pcWz2H0&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/T5mH4yMyWus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 Usefull option are Raspberry PI and RFID module.&lt;br /&gt;
&lt;br /&gt;
At the beginning of the dev i need many debug message to perfectly adjust the firmware, so i add a raspberry and record all the mowing duration in a Console.&lt;br /&gt;
Actually PI is optional, but help a lot to find trouble in the behaviour and to communicate (With your PC,or home automation)&lt;br /&gt;
Other option is the RFID tag reader&lt;br /&gt;
&lt;br /&gt;
=Possible Option=&lt;br /&gt;
== WIFI ESP32 Sender ==&lt;br /&gt;
&lt;br /&gt;
Full description of the new  sender is here:&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=WIFI_Perimeter_Sender(English)&lt;br /&gt;
&lt;br /&gt;
[[Datei:wifi-sender1.png|400px]]  [[Datei:wifi-sender2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
if you have only one mowing area , you can use sender from shop : sender start when mower leave station and stop when mower is back or after a 5 hours timeout.&lt;br /&gt;
&lt;br /&gt;
But if you want to use RFID and multiple mowing area, Firmware need to control sender over WIFI and you need the new sender based on ESP32&lt;br /&gt;
&lt;br /&gt;
== WIFI and MQTT ==&lt;br /&gt;
&lt;br /&gt;
Full description is here :&lt;br /&gt;
&lt;br /&gt;
 [[AzuritBer_ESP32_option_(English)]]&lt;br /&gt;
&lt;br /&gt;
== RFID READER ==&lt;br /&gt;
&lt;br /&gt;
Full description is here :&lt;br /&gt;
&lt;br /&gt;
 [[AzuritBer_RFID_option_(English)]]&lt;br /&gt;
&lt;br /&gt;
== Raspberry PI==&lt;br /&gt;
Full description is here : &lt;br /&gt;
 &lt;br /&gt;
 [[AzuritBer_Pi_Firmware_(English)]]&lt;br /&gt;
&lt;br /&gt;
You can connect a Raspberry Pi to arduino DUE USB native port&lt;br /&gt;
&lt;br /&gt;
Optional 5 inch tactile screen can easily control all the mower and show many info on last mowing run.&lt;br /&gt;
&lt;br /&gt;
It's possible to access to mower from your Wifi and set everything from your Sofa (Including firmware upgrade)&lt;br /&gt;
&lt;br /&gt;
Home Automation can control the mower using MQTT message and start mowing according your automation.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|150px]] Bluetooth or WIFI (need esp01 connected on PCB1.3) control using arduremote &lt;br /&gt;
&lt;br /&gt;
[[Datei:Tactile screen .jpg|400px]] Manual control using tactile screen&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_auto.png|400px]] WIFI control using VNC Viewer (https://www.realvnc.com/fr/connect/download/viewer/) from your sofa&lt;br /&gt;
&lt;br /&gt;
[[Datei:home_assistant.png|400px]] WIFI control using mqtt and compatible software (here Home Assistant https://www.home-assistant.io/)&lt;br /&gt;
&lt;br /&gt;
=Standard Setup=&lt;br /&gt;
&lt;br /&gt;
Hardware is standard one : the PCB1.3 or 1.4 and simple BT module HC05&lt;br /&gt;
&lt;br /&gt;
The mower can run in full automatic mode inside a perimeter wire.&lt;br /&gt;
&lt;br /&gt;
Software add the ByLane and Wire mowing .&lt;br /&gt;
&lt;br /&gt;
Start using timer at different location on the perimeter wire with 3 possible mowing behaviour: Mow wire,Random Mode or By Lane Mode&lt;br /&gt;
&lt;br /&gt;
You can Acces to mower using Arduremote or Pfod over Bluetooth.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Install Firmware in DUE==&lt;br /&gt;
&lt;br /&gt;
In Github repo the MASTER version is the GY-521 version and the latest one.&lt;br /&gt;
&lt;br /&gt;
According your IMU module select the correct firmware from Github (GY-88,GY-87 and MPU-9250 are possible) by switching the branch.&lt;br /&gt;
&lt;br /&gt;
Note that the MPU-9250 is not always working perfectly (Noise on DC Motor freeze I2C line),On some 9250 chips you can see randomly I2C RTC error .So it's better to use GY-88 or GY-521 (More noise tolerant ??)&lt;br /&gt;
&lt;br /&gt;
If you see some freeze : first test for 2 or 3 hours with mow motor deactivate to be sure the motor noise is not too important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Github_link.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
After unzip the github repository ,open the ardumower folder and the ardumower.ino. Before uploading the sketch ,verify that into mower.h the line :&lt;br /&gt;
&lt;br /&gt;
 *          #define Console Serial&lt;br /&gt;
 *          //#define Console SerialUSB&lt;br /&gt;
&lt;br /&gt;
are set like that : uncomment #define Console Serial to receive Console message inside your PC arduino ide console and comment #define Console SerialUSB&lt;br /&gt;
&lt;br /&gt;
Upload sketch inside DUE using programming port.&lt;br /&gt;
&lt;br /&gt;
==Arduremote or PFOD APP==&lt;br /&gt;
&lt;br /&gt;
To control mower with a phone or tablet you need to use a software named ARDUREMOTE.&lt;br /&gt;
&lt;br /&gt;
You can easily install it using the Play Store from your phone&lt;br /&gt;
&lt;br /&gt;
==Main==&lt;br /&gt;
&lt;br /&gt;
If BT or WIFI connection is OK you can see main menu from Arduremote :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_main.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Command==&lt;br /&gt;
&lt;br /&gt;
===Arduremote===&lt;br /&gt;
Command menu is the mostly used menu to start and stop the mowing cycle manually.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''OFF''' is used to stop immediately the mower.&lt;br /&gt;
&lt;br /&gt;
'''Start Now''' start the mowing cycle according pattern selection.&lt;br /&gt;
&lt;br /&gt;
'''Actual Status state and mowing''' are only readable value and change when mower run.&lt;br /&gt;
&lt;br /&gt;
'''Pattern is''' is used to select what you want the mower cycle do:&lt;br /&gt;
&lt;br /&gt;
Possible value are :&lt;br /&gt;
&lt;br /&gt;
LANE -&amp;gt; mower mow in parallel lane according lane setting&lt;br /&gt;
&lt;br /&gt;
RANDOM -&amp;gt; mower change to a new random direction each time the wire is detected or bumper is hit or motor sense is too high.&lt;br /&gt;
&lt;br /&gt;
WIRE -&amp;gt; mower track the wire and mow the border of the area until find the station.&lt;br /&gt;
&lt;br /&gt;
'''GO TO STATION''' is used to send mower to charging station without mowing.&lt;br /&gt;
&lt;br /&gt;
'''POWER OFF PCB''' Power off all the mower.&lt;br /&gt;
&lt;br /&gt;
'''USER SWITCH''' are optional setting.&lt;br /&gt;
&lt;br /&gt;
=== Button connected on P20 ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:P20_Button.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
The Button connected on P20 is an easy mower command and work like that:&lt;br /&gt;
&lt;br /&gt;
If mower is in '''OFF state''':&lt;br /&gt;
&lt;br /&gt;
Push less than 1 sec = start mow in LANE&lt;br /&gt;
&lt;br /&gt;
Push it 2 seconds = start mow in RANDOM&lt;br /&gt;
&lt;br /&gt;
Push it more then 3 Seconds = GO TO STATION&lt;br /&gt;
&lt;br /&gt;
If mower is '''running''':&lt;br /&gt;
&lt;br /&gt;
Push it to stop immediately&lt;br /&gt;
&lt;br /&gt;
==Console==&lt;br /&gt;
&lt;br /&gt;
When you use the soft Without Raspberry PI Option, if you don't understand some behaviour ,it's possible to use console.&lt;br /&gt;
&lt;br /&gt;
Console show all the message you need for understanding why mower stop or reverse or roll etc....&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_console.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
Here the setting page.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting 1.jpg|200px]]  [[Datei:ArduRemote Setting 3.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Only For the first start, or with a new RTC eeprom :If you have error, you need to go into arduremote COMMAND and click on OFF to stop beep and in main menu ERROR COUNTER reset all error,next into setting, do a ''save setting''.&lt;br /&gt;
&lt;br /&gt;
Power OFF the PCB , do not forget also to disconnected the USB PC cable to be sure all restart correctly.&lt;br /&gt;
&lt;br /&gt;
Restart with PC connected on Due programming Port and the Ide console speed is set at 115200 bps .&lt;br /&gt;
&lt;br /&gt;
ARDUINO IDE CONSOLE SHOW (it's example using MPU9250 imu) :&lt;br /&gt;
&lt;br /&gt;
[[Datei:normal_start.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to YES'''&lt;br /&gt;
&lt;br /&gt;
===ODOMETRY Setting===&lt;br /&gt;
3 Values are require and need to be set in this order:&lt;br /&gt;
&lt;br /&gt;
'''Value 1'''&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Odometry.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
You need to set the correct ticks per one full revolution and check the result&lt;br /&gt;
&lt;br /&gt;
Go To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_Test_odo.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Use 1 turn Wheel FWD&lt;br /&gt;
&lt;br /&gt;
The wheel need to accelerate ,roll , brake and stop after exactly one revolution.&lt;br /&gt;
&lt;br /&gt;
Sample video : https://youtu.be/BV7MgO6jfwA&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW:&lt;br /&gt;
&lt;br /&gt;
[[Datei:wheel_1_rev.png]]&lt;br /&gt;
&lt;br /&gt;
Repeat the test with 5 turn Wheel FWD to be sure.&lt;br /&gt;
&lt;br /&gt;
'''Value 2'''&lt;br /&gt;
 &lt;br /&gt;
Back To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
Now you need to set the correct Ticks per cm according the diameter of the wheel.&lt;br /&gt;
&lt;br /&gt;
you can find the value by this formula: Ticks per one full revolution / PI*diameter of the wheel &lt;br /&gt;
&lt;br /&gt;
In this example the DENNA platform (diameter wheel is near 23 cm) : 720/3.1415*23=9.9&lt;br /&gt;
&lt;br /&gt;
Back To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
Now use the ''3 meters Forward'' command to see if the value is OK.&lt;br /&gt;
&lt;br /&gt;
Here the video : https://youtu.be/v-yzRV4FEWA&lt;br /&gt;
&lt;br /&gt;
The mower need to run forward for 3 meters .Adjust the value again if result is not 3 meters +/-10 cm&lt;br /&gt;
&lt;br /&gt;
'''Value 3'''&lt;br /&gt;
 &lt;br /&gt;
Back To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
Now you need to set the correct Wheel Base in cm .&lt;br /&gt;
&lt;br /&gt;
It's the distance between the 2 wheels. It is use to compute correctly all the mower roll movement.&lt;br /&gt;
&lt;br /&gt;
Back To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
Now use the Rotate 180 Deg and Rotate 360 Deg to verify the setting.Adjust the value again if result is not at +/- 5 Deg.&lt;br /&gt;
&lt;br /&gt;
Here the sample video : https://youtu.be/9uUA2qCqlrA&lt;br /&gt;
&lt;br /&gt;
Mower need to rotate according your choice.Change the Wheel Base in cm until you find 180 and 360 degrees&lt;br /&gt;
&lt;br /&gt;
===MOTOR Setting===&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Motor''&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_Setting_motor_01.jpg|200px]]  [[Datei:Arduremote_Setting_motor_2.jpg|200px]]  [[Datei:Arduremote_Setting_motor_30.jpg|200px]]  [[Datei:Arduremote_Setting_motor_4.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
First set the POWER MAX to 100 to be sure the motor don't stop.&lt;br /&gt;
&lt;br /&gt;
Set PWM max speed for example to 150 (Put mower on the mowing area in flat location and with 4 meters free forward) click '''''Calib Ticks/Second'''''  to approach the correct RPM value from PWM one ,mower need to move  and compute and save the new RPM value.&lt;br /&gt;
&lt;br /&gt;
You can now repeat this step until find the correct value fo rPWM and RPM.&lt;br /&gt;
&lt;br /&gt;
Each time you change PWM max value you need too calibrate again the ticks per second (Not needed for RPM)&lt;br /&gt;
&lt;br /&gt;
RPM is use into manual mode and auto forward mode, so to check a new value simply go to ''Main Menu / Manual '' and drive forward.&lt;br /&gt;
&lt;br /&gt;
PWM is use into automatic mode on all small movement (Rev,Roll,accel etc..) and need to be enough for the mower to move smoothly.&lt;br /&gt;
&lt;br /&gt;
If the wheel don't roll smoothly in manual forward ,maybe you need to adjust the RPM_P RPM_I and RPM_D&lt;br /&gt;
&lt;br /&gt;
See PID Control : [https://wiki.ardumower.de/index.php?title=PID_control]&lt;br /&gt;
&lt;br /&gt;
Always start with RPM_D=0 and move the 2 sliders RPM_P and RPM_I. RPM_P increase the changing speed and RPM_I smooth the speed when near the RPM max speed.&lt;br /&gt;
&lt;br /&gt;
You need to find a correct Manual / forward drive before continue with the ''Power max'' setting.&lt;br /&gt;
&lt;br /&gt;
'''Remember that at 80% of the power max the mower react like if a bumper is pressed.'''&lt;br /&gt;
&lt;br /&gt;
When PWM is OK you can adjust the power max value  ,simply deactivate bumper and In ''Manual / Forward'' stop the mower with your foot, normally the mower stop before the wheel slip. State change to OFF and into console you can see the according message.&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW with max power=12:&lt;br /&gt;
&lt;br /&gt;
[[Datei:motor_power.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do not forget to reactivate the Bumper.&lt;br /&gt;
&lt;br /&gt;
''Slope Adjust Speed'' Set to YES if you have slope on your mowing area it's help to have same Motor speed in Uphill and Downhill.&lt;br /&gt;
&lt;br /&gt;
''Actual Slope Coeff'' if Slope Adjust Speed is YES this real time value can change from 0.8 to 1.2 according Downhill and Uphill (Normaly near 1.00 on flat location)&lt;br /&gt;
&lt;br /&gt;
''Power ignore time'' On motor start the sense can have a peak. During this delay the sense is not read.&lt;br /&gt;
&lt;br /&gt;
''Roll Degrees max'' Into random mowing and after the mower find the wire and reverse it roll randomly with this maximum value.&lt;br /&gt;
&lt;br /&gt;
''Roll Degrees min'' Into random mowing and after the mower find the wire and reverse it roll randomly with this minimum value.&lt;br /&gt;
&lt;br /&gt;
''Rev Distance / Perimeter'' is the distance that mower drive after cross the perimeter wire to return inside mowing area (Always &amp;gt; Stop Distance / Perimeter).&lt;br /&gt;
&lt;br /&gt;
''Stop Distance / Perimeter'' is the distance that mower drive after cross the perimeter wire before stop.&lt;br /&gt;
&lt;br /&gt;
''MotorSenseScaleLeft'' and right are here to help to have a real Power, but the main is that at 80% of Power max : mower stop and reverse.&lt;br /&gt;
&lt;br /&gt;
''Swap Left Direction'' and right need to stay to NO and it's better to directly invert the motor wire + and -&lt;br /&gt;
&lt;br /&gt;
''PWM Right Forward Offset'' if the right and left motor don't rotate exactly at the same speed , You can use this setting to adjust and repeat the test ODO 1 rev forward until the 2 wheel stop at the same time.&lt;br /&gt;
&lt;br /&gt;
''PWM Right Reverse Offset'' Same setting but when mower reverse.&lt;br /&gt;
&lt;br /&gt;
'''''Speed ODO Minimum''''' Important setting : it's the minimum PWM that the firmware send to motor to have a movement.If too low the mower make pause between movement, if too high the movement are not perfectly smooth.&lt;br /&gt;
&lt;br /&gt;
''Speed ODO Maximum'' help on very small movement (less the 1/4 rev wheel)&lt;br /&gt;
&lt;br /&gt;
'''''Calib Ticks/Second''''' You need to do this once. The mower run forward for 1 or 2 wheel rev and compute the ticks / second. It is used on each movement to know the duration of the state according to the distance you want to drive.&lt;br /&gt;
&lt;br /&gt;
===MOW setting ===&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to NO or the blade never run and BE CARREFULL THE BLADE RUN'''&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Mow''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_mow_1.jpg|200px]]  [[Datei:ArduRemote_Setting_mow_2.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Mow motor can run at different speed according the high of grass.It's directly link to motor sense.&lt;br /&gt;
So you need to correctly set the max power of mow motor to have everything working correctly.&lt;br /&gt;
&lt;br /&gt;
Remember that at 80% of max power, mower start to mow in spiral mode, and at 100% of max power during 1 sec the motor is stop for more than 1 minute and restart automatically after, at a very high power the error hardware driver motor can also occur and you need a full power off to restart the mow motor &lt;br /&gt;
&lt;br /&gt;
To adjust everything try to find a location with medium high grass and low grass:&lt;br /&gt;
&lt;br /&gt;
Set the Power max to a small value (15 Watts for example)&lt;br /&gt;
 &lt;br /&gt;
Set the PWM Max speed to 255&lt;br /&gt;
&lt;br /&gt;
Set the PWM Min speed to 150&lt;br /&gt;
&lt;br /&gt;
Start to mow in auto mode in the low grass (The mow motor need to start at PWM=255 and reduce slowly during the next 10 seconds),now send the mower in high grass ,normally motor speed increase and spiral mowing start.&lt;br /&gt;
&lt;br /&gt;
If the spiral mowing start on low grass increase the Power max setting.&lt;br /&gt;
&lt;br /&gt;
Like for drive motor you can use calibrate mowsense to have a realistic sense,but the main is that mow spiral start on high grass and mow motor stop on overload in VERY HIGH GRASS.&lt;br /&gt;
&lt;br /&gt;
PWM coeff and actual PWM are actual (read only) value of the motor modulation.&lt;br /&gt;
&lt;br /&gt;
Mow Pattern Max Duration is used to change from Random mowing mode to Bylane mowing mode and avoid track on the mowing area.(The mower switch the 2 mode every 18 minutes in this case)&lt;br /&gt;
&lt;br /&gt;
===STATION setting===&lt;br /&gt;
&lt;br /&gt;
[[File:ArduRemote_setting_station.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''Station is blocking one , so the mower need to reverse to leave it.'''&lt;br /&gt;
&lt;br /&gt;
In schedule mode or start from station, mower use (IN THIS ORDER) reverse distance, Roll Angle and accel Distance after Roll to leave the station and start to find again perimeter wire to locate the mowing entry location according the timer setting, or track 1 meter if manual start from station.&lt;br /&gt;
&lt;br /&gt;
On Go Home mode mower track the wire and find the station (A voltage is detected on charging pin, or Bumper is pressed) it stop immediately and slowly go forward for the Station check Distance to be sure the contact is OK.&lt;br /&gt;
&lt;br /&gt;
If you use Right Sonar, the docking speed is reduce according to % of MaxSpeed each time something is detected while tracking the wire.&lt;br /&gt;
&lt;br /&gt;
On full schedule mode it's better to activate the Reboot after charging, by this way all variable are restore and everything work for week or month without any intervention.&lt;br /&gt;
&lt;br /&gt;
===PERIMETER setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Perimeter_1.jpg|200px]] [[Datei:ArduRemote_Setting_Perimeter_2.jpg|200px]] [[Datei:ArduRemote_Setting_Perimeter_03.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Main value is Mag and is negative when mower is inside area (near -2000 if mower inside and upper the wire).  In this case(139) the mower is outside at 3 meters of the wire.&lt;br /&gt;
&lt;br /&gt;
'''Mini Smag:'''&lt;br /&gt;
&lt;br /&gt;
Under this value the firmware estimate that the sender is OFF, so it's error.  To find the correct value simply put the mower in the area and unplug the sender (Read the Smag and add 20 or 30 , use slider to adjust MiniSmag)&lt;br /&gt;
&lt;br /&gt;
Check by start mowing and unplug the sender: Mower need to stop rapidly and go to error.&lt;br /&gt;
&lt;br /&gt;
'''Timeout(s) if outside :'''&lt;br /&gt;
&lt;br /&gt;
'''Big AREA Smag Center'''&lt;br /&gt;
&lt;br /&gt;
Help mower to not generate In/OUT transition in the middle of big area.  To find correct value ,simply put the mower in the middle area as far as possible from the wire and use Smag value.&lt;br /&gt;
&lt;br /&gt;
'''Tracking Max Speed PWM''' &lt;br /&gt;
&lt;br /&gt;
it's the tracking speed (lower value help to have a smooth tracking on curve)&lt;br /&gt;
&lt;br /&gt;
'''Circle Arc Distance...'''&lt;br /&gt;
&lt;br /&gt;
If mower find obstacle while tracking : it reverse,Roll 45 Deg and make a circle to find again the wire.&lt;br /&gt;
&lt;br /&gt;
'''Perimeter MAG MAX VALUE'''&lt;br /&gt;
&lt;br /&gt;
Put mower directly upper the wire and use here the maximum Mag value.&lt;br /&gt;
&lt;br /&gt;
'''Transition Timeout'''&lt;br /&gt;
&lt;br /&gt;
When tracking,Mower need to change from inside to outside using the PID, but if it fail after this transition time one wheel is stop to find again the wire.&lt;br /&gt;
If too important the mower can  fail tracking on 90 deg angle .&lt;br /&gt;
&lt;br /&gt;
'''Track Error Timeout'''&lt;br /&gt;
&lt;br /&gt;
If mower can't find In/OUt transition during this delay it's error.&lt;br /&gt;
&lt;br /&gt;
'''Track PID'''&lt;br /&gt;
&lt;br /&gt;
The Pid is use to smooth the tracking and need to be adjust according your platform (Distance between wheel and receiver coil,motor react speed etc..)&lt;br /&gt;
&lt;br /&gt;
'''Coil Polarity'''&lt;br /&gt;
&lt;br /&gt;
Do not change ,It's better to invert the wire at sender output.&lt;br /&gt;
&lt;br /&gt;
'''Read the 2 coils'''&lt;br /&gt;
&lt;br /&gt;
Only for dev test : Do not change&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Block inner wheel'''&lt;br /&gt;
&lt;br /&gt;
If YES the 2 wheels always roll forward , if NO one wheel can reverse to find again wire on big angle for example.&lt;br /&gt;
&lt;br /&gt;
'''Reduce Speed Near Wire'''&lt;br /&gt;
&lt;br /&gt;
If YES mower reduce the forward speed when near perimeter&lt;br /&gt;
&lt;br /&gt;
'''Actual Speed Coeff'''&lt;br /&gt;
&lt;br /&gt;
It's the real time value of speed ratio when mower approach the wire&lt;br /&gt;
&lt;br /&gt;
===IMU Wiring and Setting===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====MPU-9250 IMU WIRING TO PCB1.3====&lt;br /&gt;
'''MPU-9250 or 55 is not really stable''' (can work many hours or fail after some minutes without any particular reason) ,so it's better to use GY-88 / GY-521 + GY-273 more stable module&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:MPU-9250.jpg|400px]] &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Optional : It's possible to shunt the onboard DC/DC converter (NEVER PUT 5V on VCC with this option)&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-20.jpg|400px]] &lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
If you have some I2C error it's also possible to connect IMU on other location like I2C5 and JC5 to 3.3V to have a different pullup resistor.&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-40.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-88 IMU WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  G_ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-88.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-521 ACCEL/GYRO WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
 IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-521.jpg|400px]] [[Datei:GY-521-1.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
GY-521 don't have compass ,so you need to deactivate Compass into arduremote/setting/IMU or add a GY-273 module&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
====GY-273 COMPASS WIRING TO PCB1.3====&lt;br /&gt;
On the net you can find different module with fake chips like this one (Note HMC5883L on PCB but it's a QMC5883L),so you need to set the correct compass name into mower.cpp if it don't work with standard setting.&lt;br /&gt;
&lt;br /&gt;
 IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Gy-273-1.jpg|400px]] [[Datei:Gy-273-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C4 port and do not forget JC4 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:Gy-273-3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
GY-273 is a compass that you use with GY-521 you need to activate Compass into arduremote/setting/IMU.'''And do not forget to calibrate it'''.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-87 WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC_IN &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-87.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On GY-87 you can't change I2C adress and it's the same as RTC so you can't connect it on normal I2C port.&lt;br /&gt;
'''Connect module on I2C1 I2C_DUE'''&lt;br /&gt;
&lt;br /&gt;
[[Datei:GY-87-1.jpg|400px]] [[Datei:GY-87-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Select the correct firmware into Github&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===IMU Main Setting===&lt;br /&gt;
&lt;br /&gt;
MPU9255/9255-&amp;gt; [[Datei:ArduRemote_Setting_Imu_1.jpg|200px]]  [[Datei:ArduRemote_Setting_Imu_2.jpg|200px]]  or GY88/GY87-&amp;gt;[[Datei:ArduRemote_GY88.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
More info on IMU ,But no sensor fusion and not the same calibration process : [[Azurit_Firmware_(English)#IMU]]&lt;br /&gt;
&lt;br /&gt;
Here the video of IMU running to keep the heading : https://youtu.be/gxCrIb5geJM&lt;br /&gt;
&lt;br /&gt;
Imu (except GY-521) is composed by 2 parts : Compass and Gyro/Accel.&lt;br /&gt;
&lt;br /&gt;
Compass use magnetic earth field and is disturb by all motor and electronics in the mower, so it's very difficult to have correct value (for example a change of 10 deg is possible if you move the mower for only 1 deg). But it's reliable (If indicate 25 Deg and roll for 360 deg or wait 10 minutes it's always 25 Deg)&lt;br /&gt;
&lt;br /&gt;
Gyro/Accel is very accurate (+/- 1 or 2 deg) but can drift over time, (If indicate 25Deg and you wait 5 minute it can be 30Deg, but when you rotate slowly the mower you can see that everything is OK from 0 to 179 and from -179 to 0 Deg)&lt;br /&gt;
&lt;br /&gt;
The firmware can use or not the compass (Simply test and use the best according the location of the IMU in your platform)&lt;br /&gt;
&lt;br /&gt;
If GY-88/GY-87/GY-521 IMU are used ,you need to calibrate GYRO/ACCEL on the initial installation: Simply Go To ''Setting /  IMU'', press the ACCEL/GYRO initial calibration and wait 1 or 2 minutes without moving the mower (Arduremote lost connection during the process and it's normal if arduino ide is connected you can see the process in the console).&lt;br /&gt;
&lt;br /&gt;
For MPU/9255 or 9250 this process is automatically done on each start of the mower,so you can't see the button in arduremote .&lt;br /&gt;
&lt;br /&gt;
'''IMU Use'''&lt;br /&gt;
&lt;br /&gt;
Use or not the IMU (By lane require IMU to work correctly).&lt;br /&gt;
&lt;br /&gt;
'''Compass Use'''&lt;br /&gt;
if you use  GY-521 alone, you need to deactivate compass.Or if your IMU is locate near electronics or motor you can't calibrate it correctly ,so it's better to deactivate compass : Bylane mowing can result on drifting in parallel lane without compass but not always an issue in normal mowing condition.&lt;br /&gt;
&lt;br /&gt;
'''Stop Mow Motor During Calib'''&lt;br /&gt;
&lt;br /&gt;
It's possible to stop the mow motor to avoid compass noise but not really useful.&lt;br /&gt;
&lt;br /&gt;
'''P I D '''&lt;br /&gt;
&lt;br /&gt;
Like for the motor the PID need to be adjust if the mower don't drive smoothly in straight lane, Try to change the mower heading with your foot and normally the mower retrieve rapidly the precedent heading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calibration Max Duration '''&lt;br /&gt;
&lt;br /&gt;
When mower stop to adjust the Compass value to GYRO/ACCEL , the drift is check,If the drift is always present ,Mower continue to mow after this delay,but only in random mode.&lt;br /&gt;
&lt;br /&gt;
'''Delay between 2 calib'''&lt;br /&gt;
&lt;br /&gt;
Each time this delay is trig ,Mower stop , roll to find the compass actual heading and stop again to check if the drift is small,If it's OK heading is automatically adjust to continue to mow in always the same direction from north for example.If compass is not activate ,only drift is check.&lt;br /&gt;
&lt;br /&gt;
'''Drift Maxi in Deg per Second''&lt;br /&gt;
&lt;br /&gt;
When mower stop to calibrate ,This value is used to restart or wait again until drift stop.&lt;br /&gt;
&lt;br /&gt;
'''Speed to find ComYaw'''&lt;br /&gt;
&lt;br /&gt;
At the begin of calibration, mower roll and read compass,but it's possible to reduce Roll speed to find easily a new value.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====SETTING Without Compass====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to YES'''&lt;br /&gt;
&lt;br /&gt;
Set Compass Use to NO and leave all setting to default.In this case, Heading 0 is the start position of the mower&lt;br /&gt;
&lt;br /&gt;
To check if it's OK:&lt;br /&gt;
&lt;br /&gt;
Go To : ''Main Menu / Test IMU''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_test_imu.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Maybe you need to reduce the motor PWM max speed if the test fail sometime (The mower need to roll slowly)&lt;br /&gt;
&lt;br /&gt;
Start to mow in random mode and change the mower heading with your foot (If IMU is OK The mower need to always keep the heading)&lt;br /&gt;
&lt;br /&gt;
Without Compass you can see that the Bylane mowing is not perfectly parallel over time&lt;br /&gt;
&lt;br /&gt;
Only the GYRO Yaw is updated in arduremote setting.&lt;br /&gt;
&lt;br /&gt;
On Normal mowing mode you can see the mower stop every 'Delay between 2 calib' seconds and wait until the GYRO/ACCEL drift is inferior to 'Drift Maxi in Deg per second' value.If this process fail, mower continue to mow in random mode.&lt;br /&gt;
&lt;br /&gt;
====SETTING With Compass====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Set Compass Use to YES and leave all setting to default.  &lt;br /&gt;
&lt;br /&gt;
You need To DO the Compass calibration each time you change IMU location in the mower or add metal/Magnet near IMU&lt;br /&gt;
&lt;br /&gt;
Start and stop the compass calibration  : click one time to start and move the entire mower around all axes until no new data coming in the Console click again to stop and save the new calibration data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:compass_calib.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on the setting Imu arduremote page you can see the GYRO Yaw and Compass YAW value according to magnetic earth field.It's normal to don't have the 2 same values after 10 or 30 seconds or after roll the mower.And you can discover the main difference between GYRO/ACCEL and COMPASS.&lt;br /&gt;
&lt;br /&gt;
Heading 0 is normally North if no metal or magnet near compass.&lt;br /&gt;
&lt;br /&gt;
On Normal mowing mode you can see the mower stop every 'Delay between 2 calib' seconds , Roll until the compass find the lane heading and wait until the GYRO/ACCEL drift is inferior to 'Drift Maxi in Deg per second' value.If this process fail, mower continue to mow in random mode.&lt;br /&gt;
&lt;br /&gt;
===TIMER setting===&lt;br /&gt;
[[Datei:ArduRemote_Timer_0.jpg|200px]]  [[Datei:ArduRemote_Timer_1.jpg|200px]]  [[Datei:ArduRemote_Timer_2.jpg|200px]]  [[Datei:ArduRemote_Timer_3.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
The Timer is used to mow in full automatic mode for month or week.Timer can be trigger only if the mower is not into charge state.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]When you use the Go To Station from Arduremote the mower return to charging station and stop to check the Timer for the next 1 or 2 hours.&lt;br /&gt;
To do test and reuse timer ,you need to send OFF from arduremote when mower is in the station and wait 1 minute to see the mower start again from station using timer setting.&lt;br /&gt;
&lt;br /&gt;
On the first page the Use NO at the top deactivate all timer and leave mower in station.  Set it to yes and set up one of the 5 timer to make it work.&lt;br /&gt;
&lt;br /&gt;
Always Avoid that one timer stop later than other start or the opposite,or you can see strange behaviour.&lt;br /&gt;
&lt;br /&gt;
Start dist/Station is the distance the mower track the perimeter wire before start to mow.&lt;br /&gt;
&lt;br /&gt;
Use Beacon is here to use with RFID fast start process.&lt;br /&gt;
&lt;br /&gt;
Start Pattern can be Wire(Mower start from station ,mow the entire wire and back in station for the next hour) , LANE (it's parallel lane mowing mode) or Random.&lt;br /&gt;
&lt;br /&gt;
Start Area is used to select the correct mowing area, the Start dist/Station begin at the entry point of the new area.(ONLY POSSIBLE With RFID Option)&lt;br /&gt;
&lt;br /&gt;
Start Lane NR can be 1 2 or 3 like you define in the By Lane setting.&lt;br /&gt;
&lt;br /&gt;
Start Roll Dir is the roll direction Left or Right when the By Lane is in used.&lt;br /&gt;
&lt;br /&gt;
Start Max Lane Length is the distance max that mower drive on By Lane Mowing mode.&lt;br /&gt;
&lt;br /&gt;
Set to current time help to fill the start and stop sliders.&lt;br /&gt;
&lt;br /&gt;
===BYLANE setting===&lt;br /&gt;
[[Datei:mow_lane_result.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
To have acces to all setting the Dev mode need to be activate:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DevToYes.png|210px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Byllane_1.jpg|210px]]  [[Datei:ArduRemote_Setting_Byllane_2.jpg|210px]]  [[Datei:ArduRemote_Setting_Byllane_3.jpg|210px|]]&lt;br /&gt;
&lt;br /&gt;
Using IMU and ODOMETRY  mower can mow in parallel lane faster than random mode, but you need to correctly setup IMU to have good and fast result.&lt;br /&gt;
&lt;br /&gt;
3 mains Lane are set ,Factory are 45, 90 and 135 degrees (Avoid value near 0).&lt;br /&gt;
For each Lane 2 opposites reverse heading are possible according the ROLL dir at the end of the initial lane.&lt;br /&gt;
So you need to adjust 9 angles, 3 for each lane.&lt;br /&gt;
&lt;br /&gt;
'''Change Lane in use''' Click to use the next lane&lt;br /&gt;
&lt;br /&gt;
'''Change next Roll Direction''' Click and mower change the next roll dir when reach the perimetr wire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''THIS Menu is Dynamic so Setting are made in live mode''' : Start to mow and see the menu changing (from Fixed Yaw to Yaw opposite right or left) each time mower stop and reverse,For first test : leave the Fixed Yaw to factory and adjust the left and right Yaw Opposite according the mower real time behaviour.&lt;br /&gt;
&lt;br /&gt;
For example if for the lane 1 you set a fixed yaw to 45 deg, you can set Yaw opposite 1 Roll Left to -135 or -134 . In this case the mower mow perfect parallel lane (reverse heading is exactly the opposite of fixed one)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bylane 2.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other example if for the lane 1 you set a fixed yaw to 45 deg, you can set Yaw opposite 1 Roll Right to -120 , the mower mow in a kind of Zig Zag and go fast from one side of area to the other.&lt;br /&gt;
&lt;br /&gt;
When mower is lock by a curve in wire perimeter (Red Circle in Picture) the Lane NR is automatically change and the IMU calibration start again to adjust Compass and GYRO, by this way it's possible to always mow on same heading in the garden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bylane 1.png|640px]]&lt;br /&gt;
&lt;br /&gt;
'''Dist Between lane''' It's the distance between 2 parallel lane according the weight of your mower.&lt;br /&gt;
&lt;br /&gt;
'''Lane Max length''' It help to reduce the error on IMU heading (Set length &amp;lt; 10 meters if you really want that mower mow perfectly parallel or set to max with a small difference in the 2 opposite YAW if you want to have a fast mowing mode,in this case it's not perfectly parallel but mow really faster)&lt;br /&gt;
&lt;br /&gt;
===BATTERY setting===&lt;br /&gt;
[[Datei:ArduRemote_Setting_Battery_1.jpg|200px]]  [[Datei:ArduRemote_Setting_Battery_2.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Use the Monitor option to auto stop the PCB and protect Battery.'''BETTER to leave it always YES'''.     And always YES if there is no BMS into your battery pack.&lt;br /&gt;
&lt;br /&gt;
'''Charge Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from charging station voltage.&lt;br /&gt;
&lt;br /&gt;
'''Battery Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from battery voltage.&lt;br /&gt;
&lt;br /&gt;
'''Sense Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from sense charging.&lt;br /&gt;
&lt;br /&gt;
'''Go Home if Volt below''' &lt;br /&gt;
&lt;br /&gt;
In mowing mode the mower automatically return to station when battery voltage is below this value.&lt;br /&gt;
&lt;br /&gt;
'''Switch off after minutes''' &lt;br /&gt;
&lt;br /&gt;
When mower is OFF or in ERROR state, PCB automatically shutdown after this delay ('''REQUIRE JP8 in AUTO MODE''')&lt;br /&gt;
&lt;br /&gt;
'''Switch off if Volt below''' &lt;br /&gt;
&lt;br /&gt;
PCB automatically shutdown if battery voltage is too low  ('''REQUIRE JP8 in AUTO MODE''')&lt;br /&gt;
&lt;br /&gt;
'''Start charge if Voltage below''' &lt;br /&gt;
&lt;br /&gt;
When mower reach the charging station, the charging start and you can see the 2 values (Charge and sense just upper this line).Be careful when testing ,if the battery is not really empty the charge don't start each time, it's a electronic result (you can see the battery voltage increase very fast), but in normal working mode, all work perfectly.&lt;br /&gt;
&lt;br /&gt;
'''Stop charge if Sense below''' &lt;br /&gt;
&lt;br /&gt;
You can set here the minimum Sense that the battery drain at the end of the charging process.If too low the charging process is automatically stop after 5 hours and a message is send on the Console.&lt;br /&gt;
&lt;br /&gt;
===SONAR setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Sonar.jpg|200px]]  [[Datei:JSN_SR04T.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Firmware is tested for this type of Sonar : JSN-SR04T &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sonar can be used like a bumper : When trigge, mower speed is reduce and mower stop after the detection distance without hitting obstacle. &lt;br /&gt;
&lt;br /&gt;
Or Sonar can simply reduce motor speed for the next 3 seconds.&lt;br /&gt;
&lt;br /&gt;
Into mower.cpp you can simply change this line to true to change behaviour&lt;br /&gt;
&lt;br /&gt;
  sonarLikeBumper            =false;      //ultrasonic reduce speed vs bumper like&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sonar brake below'''&lt;br /&gt;
&lt;br /&gt;
Only this distance is scan by the sonar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sonar To Front Dist'''&lt;br /&gt;
&lt;br /&gt;
Distance between front of mower and sonar location, useful to never touch obstacle.&lt;br /&gt;
&lt;br /&gt;
===RAIN TEMP setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Rain.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''Rain Use''' &lt;br /&gt;
&lt;br /&gt;
set to YES if you want that Mower go to station when rain sensor is trig&lt;br /&gt;
&lt;br /&gt;
'''DHT22Use''' &lt;br /&gt;
&lt;br /&gt;
set to YES if you have connected a DHT22 sensor on PCB1.3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Maximum Temperature''' &lt;br /&gt;
&lt;br /&gt;
When DHT22 temp is upper this value the mower goes into ERROR and the PCB is totally power OFF.&lt;br /&gt;
To be tested ,maybe bug here.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OLED Screen setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:OLED_PCB1.3_wiring.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In AZURITBER Ver &amp;gt;= 1.6 It's possible to connect small OLED screen on the PCB1.3 I2C1 port&lt;br /&gt;
&lt;br /&gt;
Resolution is fixed to 128 * 64 pixel and can use 1.3 or 0.96 pouce  screen&lt;br /&gt;
&lt;br /&gt;
The oled need to be I2C U8G2 compatible, so SSD1306 or SH1106 I2C model :&lt;br /&gt;
&lt;br /&gt;
https://www.marotronics.de/Ecran-OLED-096-bleu-jaune-I2C-SPI-128x64-SSD1106-pour-Arduino-Raspberry-Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You need to Enable it into mower.h line 128&lt;br /&gt;
&lt;br /&gt;
 #define Enable_Screen true&lt;br /&gt;
 *      //#define Enable_Screen false&lt;br /&gt;
&lt;br /&gt;
And select the correct model into screen.cpp . Factory setting are for 1.3 Pouce model from Ebay.&lt;br /&gt;
 &lt;br /&gt;
 U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);&lt;br /&gt;
 U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);&lt;br /&gt;
&lt;br /&gt;
According the status of the mower Oled show different screen :&lt;br /&gt;
&lt;br /&gt;
In OFF mode :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_OFF.png|200px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While mower running :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_mow.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When Charging :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_charge.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When into station waiting for next timer start :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_station.png|200px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_Firmware_(English)&amp;diff=10333</id>
		<title>AzuritBer Firmware (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_Firmware_(English)&amp;diff=10333"/>
				<updated>2022-02-05T10:22:57Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Level 2 Raspberry Pi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=GITHUB Location=&lt;br /&gt;
&lt;br /&gt;
It's here:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Boilevin/AzuritBer GITHUB REPOSITORY]&lt;br /&gt;
&lt;br /&gt;
Process is the same as AZURIT :&lt;br /&gt;
&lt;br /&gt;
You need to upload all file to your PC and open ardumower.ino into arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Upload the code inside your DUE :&lt;br /&gt;
&lt;br /&gt;
On first start it's possible that EEPROM is empty (PCB Beep and start with ERROR) so you need to reset error counter and save setting.&lt;br /&gt;
&lt;br /&gt;
=Test requirements=&lt;br /&gt;
[[File:warning.png]]Security note: For security reasons, always remove mower blades in your first tests!&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]Important: For your first wheel motor tests, jack your robot so that the tires can run freely without ground contact!&lt;br /&gt;
&lt;br /&gt;
Prerequise to follow this WIKI: '''BT Module connected on PCB1.3 (ESP32 is also possible) and Pfod or Arduremote running into Android phone'''&lt;br /&gt;
&lt;br /&gt;
=What is AzuritBer and Why=&lt;br /&gt;
&lt;br /&gt;
AzuritBer was build for DENNA,ROBOMOW and PARANELLO platform and use Odometry or IMU to control the state change. &lt;br /&gt;
It can only run on DUE and Odometry is mandatory (minimum 400 ticks per rev).But it's possible to adjust setting to work on other platform.&lt;br /&gt;
 &lt;br /&gt;
This version always use odometry into all movement (reverse,roll etc...) .The result is a more smooth movement without pause between all the différents state and the possibility to mow by lane for big area and faster mowing&lt;br /&gt;
&lt;br /&gt;
Here video of the random mowing behaviour on 2 platform:&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/Abt5pcWz2H0&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/T5mH4yMyWus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 Usefull option are Raspberry PI and RFID module.&lt;br /&gt;
&lt;br /&gt;
At the beginning of the dev i need many debug message to perfectly adjust the firmware, so i add a raspberry and record all the mowing duration in a Console.&lt;br /&gt;
Actually PI is optional, but help a lot to find trouble in the behaviour and to communicate (With your PC,or home automation)&lt;br /&gt;
Other option is the RFID tag reader&lt;br /&gt;
&lt;br /&gt;
=Possible Option=&lt;br /&gt;
== WIFI ESP32 Sender ==&lt;br /&gt;
&lt;br /&gt;
Full description of the new  sender is here:&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=WIFI_Perimeter_Sender(English)&lt;br /&gt;
&lt;br /&gt;
[[Datei:wifi-sender1.png|400px]]  [[Datei:wifi-sender2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
if you have only one mowing area , you can use sender from shop : sender start when mower leave station and stop when mower is back or after a 5 hours timeout.&lt;br /&gt;
&lt;br /&gt;
But if you want to use RFID and multiple mowing area, Firmware need to control sender over WIFI and you need the new sender based on ESP32&lt;br /&gt;
&lt;br /&gt;
== WIFI and MQTT ==&lt;br /&gt;
&lt;br /&gt;
Full description is here :&lt;br /&gt;
&lt;br /&gt;
 [[AzuritBer_ESP32_option_(English)]]&lt;br /&gt;
&lt;br /&gt;
== RFID READER ==&lt;br /&gt;
&lt;br /&gt;
Full description is here :&lt;br /&gt;
&lt;br /&gt;
 [[AzuritBer_RFID_option_(English)]]&lt;br /&gt;
&lt;br /&gt;
== Raspberry PI==&lt;br /&gt;
Full description is here : &lt;br /&gt;
 &lt;br /&gt;
 [[AzuritBer_Pi_Firmware_(English)]]&lt;br /&gt;
&lt;br /&gt;
You can connect a Raspberry Pi to arduino DUE USB native port&lt;br /&gt;
&lt;br /&gt;
Optional 5 inch tactile screen can easily control all the mower and show many info on last mowing run.&lt;br /&gt;
&lt;br /&gt;
It's possible to access to mower from your Wifi and set everything from your Sofa (Including firmware upgrade)&lt;br /&gt;
&lt;br /&gt;
Home Automation can control the mower using MQTT message and start mowing according your automation.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|150px]] Bluetooth or WIFI (need esp01 connected on PCB1.3) control using arduremote &lt;br /&gt;
&lt;br /&gt;
[[Datei:Tactile screen .jpg|400px]] Manual control using tactile screen&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_auto.png|400px]] WIFI control using VNC Viewer (https://www.realvnc.com/fr/connect/download/viewer/) from your sofa&lt;br /&gt;
&lt;br /&gt;
[[Datei:home_assistant.png|400px]] WIFI control using mqtt and compatible software (here Home Assistant https://www.home-assistant.io/)&lt;br /&gt;
&lt;br /&gt;
=Standard Setup=&lt;br /&gt;
&lt;br /&gt;
Hardware is standard one : the PCB1.3 or 1.4 and simple BT module HC05&lt;br /&gt;
&lt;br /&gt;
The mower can run in full automatic mode inside a perimeter wire.&lt;br /&gt;
&lt;br /&gt;
Software add the ByLane and Wire mowing .&lt;br /&gt;
&lt;br /&gt;
Start using timer at different location on the perimeter wire with 3 possible mowing behaviour: Mow wire,Random Mode or By Lane Mode&lt;br /&gt;
&lt;br /&gt;
You can Acces to mower using Arduremote or Pfod over Bluetooth.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Install Firmware in DUE==&lt;br /&gt;
&lt;br /&gt;
In Github repo the MASTER version is the GY-521 version and the latest one.&lt;br /&gt;
&lt;br /&gt;
According your IMU module select the correct firmware from Github (GY-88,GY-87 and MPU-9250 are possible) by switching the branch.&lt;br /&gt;
&lt;br /&gt;
Note that the MPU-9250 is not always working perfectly (Noise on DC Motor freeze I2C line),On some 9250 chips you can see randomly I2C RTC error .So it's better to use GY-88 or GY-521 (More noise tolerant ??)&lt;br /&gt;
&lt;br /&gt;
If you see some freeze : first test for 2 or 3 hours with mow motor deactivate to be sure the motor noise is not too important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Github_link.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
After unzip the github repository ,open the ardumower folder and the ardumower.ino. Before uploading the sketch ,verify that into mower.h the line :&lt;br /&gt;
&lt;br /&gt;
 *          #define Console Serial&lt;br /&gt;
 *          //#define Console SerialUSB&lt;br /&gt;
&lt;br /&gt;
are set like that : uncomment #define Console Serial to receive Console message inside your PC arduino ide console and comment #define Console SerialUSB&lt;br /&gt;
&lt;br /&gt;
Upload sketch inside DUE using programming port.&lt;br /&gt;
&lt;br /&gt;
==Arduremote or PFOD APP==&lt;br /&gt;
&lt;br /&gt;
To control mower with a phone or tablet you need to use a software named ARDUREMOTE.&lt;br /&gt;
&lt;br /&gt;
You can easily install it using the Play Store from your phone&lt;br /&gt;
&lt;br /&gt;
==Main==&lt;br /&gt;
&lt;br /&gt;
If BT or WIFI connection is OK you can see main menu from Arduremote :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_main.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Command==&lt;br /&gt;
&lt;br /&gt;
===Arduremote===&lt;br /&gt;
Command menu is the mostly used menu to start and stop the mowing cycle manually.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''OFF''' is used to stop immediately the mower.&lt;br /&gt;
&lt;br /&gt;
'''Start Now''' start the mowing cycle according pattern selection.&lt;br /&gt;
&lt;br /&gt;
'''Actual Status state and mowing''' are only readable value and change when mower run.&lt;br /&gt;
&lt;br /&gt;
'''Pattern is''' is used to select what you want the mower cycle do:&lt;br /&gt;
&lt;br /&gt;
Possible value are :&lt;br /&gt;
&lt;br /&gt;
LANE -&amp;gt; mower mow in parallel lane according lane setting&lt;br /&gt;
&lt;br /&gt;
RANDOM -&amp;gt; mower change to a new random direction each time the wire is detected or bumper is hit or motor sense is too high.&lt;br /&gt;
&lt;br /&gt;
WIRE -&amp;gt; mower track the wire and mow the border of the area until find the station.&lt;br /&gt;
&lt;br /&gt;
'''GO TO STATION''' is used to send mower to charging station without mowing.&lt;br /&gt;
&lt;br /&gt;
'''POWER OFF PCB''' Power off all the mower.&lt;br /&gt;
&lt;br /&gt;
'''USER SWITCH''' are optional setting.&lt;br /&gt;
&lt;br /&gt;
=== Button connected on P20 ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:P20_Button.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
The Button connected on P20 is an easy mower command and work like that:&lt;br /&gt;
&lt;br /&gt;
If mower is in '''OFF state''':&lt;br /&gt;
&lt;br /&gt;
Push less than 1 sec = start mow in LANE&lt;br /&gt;
&lt;br /&gt;
Push it 2 seconds = start mow in RANDOM&lt;br /&gt;
&lt;br /&gt;
Push it more then 3 Seconds = GO TO STATION&lt;br /&gt;
&lt;br /&gt;
If mower is '''running''':&lt;br /&gt;
&lt;br /&gt;
Push it to stop immediately&lt;br /&gt;
&lt;br /&gt;
==Console==&lt;br /&gt;
&lt;br /&gt;
When you use the soft Without Raspberry PI Option, if you don't understand some behaviour ,it's possible to use console.&lt;br /&gt;
&lt;br /&gt;
Console show all the message you need for understanding why mower stop or reverse or roll etc....&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_console.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
Here the setting page.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting 1.jpg|200px]]  [[Datei:ArduRemote Setting 3.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Only For the first start, or with a new RTC eeprom :If you have error, you need to go into arduremote COMMAND and click on OFF to stop beep and in main menu ERROR COUNTER reset all error,next into setting, do a ''save setting''.&lt;br /&gt;
&lt;br /&gt;
Power OFF the PCB , do not forget also to disconnected the USB PC cable to be sure all restart correctly.&lt;br /&gt;
&lt;br /&gt;
Restart with PC connected on Due programming Port and the Ide console speed is set at 115200 bps .&lt;br /&gt;
&lt;br /&gt;
ARDUINO IDE CONSOLE SHOW (it's example using MPU9250 imu) :&lt;br /&gt;
&lt;br /&gt;
[[Datei:normal_start.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to YES'''&lt;br /&gt;
&lt;br /&gt;
===ODOMETRY Setting===&lt;br /&gt;
3 Values are require and need to be set in this order:&lt;br /&gt;
&lt;br /&gt;
'''Value 1'''&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Odometry.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
You need to set the correct ticks per one full revolution and check the result&lt;br /&gt;
&lt;br /&gt;
Go To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_Test_odo.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Use 1 turn Wheel FWD&lt;br /&gt;
&lt;br /&gt;
The wheel need to accelerate ,roll , brake and stop after exactly one revolution.&lt;br /&gt;
&lt;br /&gt;
Sample video : https://youtu.be/BV7MgO6jfwA&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW:&lt;br /&gt;
&lt;br /&gt;
[[Datei:wheel_1_rev.png]]&lt;br /&gt;
&lt;br /&gt;
Repeat the test with 5 turn Wheel FWD to be sure.&lt;br /&gt;
&lt;br /&gt;
'''Value 2'''&lt;br /&gt;
 &lt;br /&gt;
Back To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
Now you need to set the correct Ticks per cm according the diameter of the wheel.&lt;br /&gt;
&lt;br /&gt;
you can find the value by this formula: Ticks per one full revolution / PI*diameter of the wheel &lt;br /&gt;
&lt;br /&gt;
In this example the DENNA platform (diameter wheel is near 23 cm) : 720/3.1415*23=9.9&lt;br /&gt;
&lt;br /&gt;
Back To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
Now use the ''3 meters Forward'' command to see if the value is OK.&lt;br /&gt;
&lt;br /&gt;
Here the video : https://youtu.be/v-yzRV4FEWA&lt;br /&gt;
&lt;br /&gt;
The mower need to run forward for 3 meters .Adjust the value again if result is not 3 meters +/-10 cm&lt;br /&gt;
&lt;br /&gt;
'''Value 3'''&lt;br /&gt;
 &lt;br /&gt;
Back To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
Now you need to set the correct Wheel Base in cm .&lt;br /&gt;
&lt;br /&gt;
It's the distance between the 2 wheels. It is use to compute correctly all the mower roll movement.&lt;br /&gt;
&lt;br /&gt;
Back To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
Now use the Rotate 180 Deg and Rotate 360 Deg to verify the setting.Adjust the value again if result is not at +/- 5 Deg.&lt;br /&gt;
&lt;br /&gt;
Here the sample video : https://youtu.be/9uUA2qCqlrA&lt;br /&gt;
&lt;br /&gt;
Mower need to rotate according your choice.Change the Wheel Base in cm until you find 180 and 360 degrees&lt;br /&gt;
&lt;br /&gt;
===MOTOR Setting===&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Motor''&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_Setting_motor_01.jpg|200px]]  [[Datei:Arduremote_Setting_motor_2.jpg|200px]]  [[Datei:Arduremote_Setting_motor_30.jpg|200px]]  [[Datei:Arduremote_Setting_motor_4.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
First set the POWER MAX to 100 to be sure the motor don't stop.&lt;br /&gt;
&lt;br /&gt;
Set PWM max speed for example to 150 (Put mower on the mowing area in flat location and with 4 meters free forward) click '''''Calib Ticks/Second'''''  to approach the correct RPM value from PWM one ,mower need to move  and compute and save the new RPM value.&lt;br /&gt;
&lt;br /&gt;
You can now repeat this step until find the correct value fo rPWM and RPM.&lt;br /&gt;
&lt;br /&gt;
Each time you change PWM max value you need too calibrate again the ticks per second (Not needed for RPM)&lt;br /&gt;
&lt;br /&gt;
RPM is use into manual mode and auto forward mode, so to check a new value simply go to ''Main Menu / Manual '' and drive forward.&lt;br /&gt;
&lt;br /&gt;
PWM is use into automatic mode on all small movement (Rev,Roll,accel etc..) and need to be enough for the mower to move smoothly.&lt;br /&gt;
&lt;br /&gt;
If the wheel don't roll smoothly in manual forward ,maybe you need to adjust the RPM_P RPM_I and RPM_D&lt;br /&gt;
&lt;br /&gt;
See PID Control : [https://wiki.ardumower.de/index.php?title=PID_control]&lt;br /&gt;
&lt;br /&gt;
Always start with RPM_D=0 and move the 2 sliders RPM_P and RPM_I. RPM_P increase the changing speed and RPM_I smooth the speed when near the RPM max speed.&lt;br /&gt;
&lt;br /&gt;
You need to find a correct Manual / forward drive before continue with the ''Power max'' setting.&lt;br /&gt;
&lt;br /&gt;
'''Remember that at 80% of the power max the mower react like if a bumper is pressed.'''&lt;br /&gt;
&lt;br /&gt;
When PWM is OK you can adjust the power max value  ,simply deactivate bumper and In ''Manual / Forward'' stop the mower with your foot, normally the mower stop before the wheel slip. State change to OFF and into console you can see the according message.&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW with max power=12:&lt;br /&gt;
&lt;br /&gt;
[[Datei:motor_power.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do not forget to reactivate the Bumper.&lt;br /&gt;
&lt;br /&gt;
''Slope Adjust Speed'' Set to YES if you have slope on your mowing area it's help to have same Motor speed in Uphill and Downhill.&lt;br /&gt;
&lt;br /&gt;
''Actual Slope Coeff'' if Slope Adjust Speed is YES this real time value can change from 0.8 to 1.2 according Downhill and Uphill (Normaly near 1.00 on flat location)&lt;br /&gt;
&lt;br /&gt;
''Power ignore time'' On motor start the sense can have a peak. During this delay the sense is not read.&lt;br /&gt;
&lt;br /&gt;
''Roll Degrees max'' Into random mowing and after the mower find the wire and reverse it roll randomly with this maximum value.&lt;br /&gt;
&lt;br /&gt;
''Roll Degrees min'' Into random mowing and after the mower find the wire and reverse it roll randomly with this minimum value.&lt;br /&gt;
&lt;br /&gt;
''Rev Distance / Perimeter'' is the distance that mower drive after cross the perimeter wire to return inside mowing area (Always &amp;gt; Stop Distance / Perimeter).&lt;br /&gt;
&lt;br /&gt;
''Stop Distance / Perimeter'' is the distance that mower drive after cross the perimeter wire before stop.&lt;br /&gt;
&lt;br /&gt;
''MotorSenseScaleLeft'' and right are here to help to have a real Power, but the main is that at 80% of Power max : mower stop and reverse.&lt;br /&gt;
&lt;br /&gt;
''Swap Left Direction'' and right need to stay to NO and it's better to directly invert the motor wire + and -&lt;br /&gt;
&lt;br /&gt;
''PWM Right Forward Offset'' if the right and left motor don't rotate exactly at the same speed , You can use this setting to adjust and repeat the test ODO 1 rev forward until the 2 wheel stop at the same time.&lt;br /&gt;
&lt;br /&gt;
''PWM Right Reverse Offset'' Same setting but when mower reverse.&lt;br /&gt;
&lt;br /&gt;
'''''Speed ODO Minimum''''' Important setting : it's the minimum PWM that the firmware send to motor to have a movement.If too low the mower make pause between movement, if too high the movement are not perfectly smooth.&lt;br /&gt;
&lt;br /&gt;
''Speed ODO Maximum'' help on very small movement (less the 1/4 rev wheel)&lt;br /&gt;
&lt;br /&gt;
'''''Calib Ticks/Second''''' You need to do this once. The mower run forward for 1 or 2 wheel rev and compute the ticks / second. It is used on each movement to know the duration of the state according to the distance you want to drive.&lt;br /&gt;
&lt;br /&gt;
===MOW setting ===&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to NO or the blade never run and BE CARREFULL THE BLADE RUN'''&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Mow''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_mow_1.jpg|200px]]  [[Datei:ArduRemote_Setting_mow_2.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Mow motor can run at different speed according the high of grass.It's directly link to motor sense.&lt;br /&gt;
So you need to correctly set the max power of mow motor to have everything working correctly.&lt;br /&gt;
&lt;br /&gt;
Remember that at 80% of max power, mower start to mow in spiral mode, and at 100% of max power during 1 sec the motor is stop for more than 1 minute and restart automatically after, at a very high power the error hardware driver motor can also occur and you need a full power off to restart the mow motor &lt;br /&gt;
&lt;br /&gt;
To adjust everything try to find a location with medium high grass and low grass:&lt;br /&gt;
&lt;br /&gt;
Set the Power max to a small value (15 Watts for example)&lt;br /&gt;
 &lt;br /&gt;
Set the PWM Max speed to 255&lt;br /&gt;
&lt;br /&gt;
Set the PWM Min speed to 150&lt;br /&gt;
&lt;br /&gt;
Start to mow in auto mode in the low grass (The mow motor need to start at PWM=255 and reduce slowly during the next 10 seconds),now send the mower in high grass ,normally motor speed increase and spiral mowing start.&lt;br /&gt;
&lt;br /&gt;
If the spiral mowing start on low grass increase the Power max setting.&lt;br /&gt;
&lt;br /&gt;
Like for drive motor you can use calibrate mowsense to have a realistic sense,but the main is that mow spiral start on high grass and mow motor stop on overload in VERY HIGH GRASS.&lt;br /&gt;
&lt;br /&gt;
PWM coeff and actual PWM are actual (read only) value of the motor modulation.&lt;br /&gt;
&lt;br /&gt;
Mow Pattern Max Duration is used to change from Random mowing mode to Bylane mowing mode and avoid track on the mowing area.(The mower switch the 2 mode every 18 minutes in this case)&lt;br /&gt;
&lt;br /&gt;
===STATION setting===&lt;br /&gt;
&lt;br /&gt;
[[File:ArduRemote_setting_station.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''Station is blocking one , so the mower need to reverse to leave it.'''&lt;br /&gt;
&lt;br /&gt;
In schedule mode or start from station, mower use (IN THIS ORDER) reverse distance, Roll Angle and accel Distance after Roll to leave the station and start to find again perimeter wire to locate the mowing entry location according the timer setting, or track 1 meter if manual start from station.&lt;br /&gt;
&lt;br /&gt;
On Go Home mode mower track the wire and find the station (A voltage is detected on charging pin, or Bumper is pressed) it stop immediately and slowly go forward for the Station check Distance to be sure the contact is OK.&lt;br /&gt;
&lt;br /&gt;
If you use Right Sonar, the docking speed is reduce according to % of MaxSpeed each time something is detected while tracking the wire.&lt;br /&gt;
&lt;br /&gt;
On full schedule mode it's better to activate the Reboot after charging, by this way all variable are restore and everything work for week or month without any intervention.&lt;br /&gt;
&lt;br /&gt;
===PERIMETER setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Perimeter_1.jpg|200px]] [[Datei:ArduRemote_Setting_Perimeter_2.jpg|200px]] [[Datei:ArduRemote_Setting_Perimeter_03.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Main value is Mag and is negative when mower is inside area (near -2000 if mower inside and upper the wire).  In this case(139) the mower is outside at 3 meters of the wire.&lt;br /&gt;
&lt;br /&gt;
'''Mini Smag:'''&lt;br /&gt;
&lt;br /&gt;
Under this value the firmware estimate that the sender is OFF, so it's error.  To find the correct value simply put the mower in the area and unplug the sender (Read the Smag and add 20 or 30 , use slider to adjust MiniSmag)&lt;br /&gt;
&lt;br /&gt;
Check by start mowing and unplug the sender: Mower need to stop rapidly and go to error.&lt;br /&gt;
&lt;br /&gt;
'''Timeout(s) if outside :'''&lt;br /&gt;
&lt;br /&gt;
'''Big AREA Smag Center'''&lt;br /&gt;
&lt;br /&gt;
Help mower to not generate In/OUT transition in the middle of big area.  To find correct value ,simply put the mower in the middle area as far as possible from the wire and use Smag value.&lt;br /&gt;
&lt;br /&gt;
'''Tracking Max Speed PWM''' &lt;br /&gt;
&lt;br /&gt;
it's the tracking speed (lower value help to have a smooth tracking on curve)&lt;br /&gt;
&lt;br /&gt;
'''Circle Arc Distance...'''&lt;br /&gt;
&lt;br /&gt;
If mower find obstacle while tracking : it reverse,Roll 45 Deg and make a circle to find again the wire.&lt;br /&gt;
&lt;br /&gt;
'''Perimeter MAG MAX VALUE'''&lt;br /&gt;
&lt;br /&gt;
Put mower directly upper the wire and use here the maximum Mag value.&lt;br /&gt;
&lt;br /&gt;
'''Transition Timeout'''&lt;br /&gt;
&lt;br /&gt;
When tracking,Mower need to change from inside to outside using the PID, but if it fail after this transition time one wheel is stop to find again the wire.&lt;br /&gt;
If too important the mower can  fail tracking on 90 deg angle .&lt;br /&gt;
&lt;br /&gt;
'''Track Error Timeout'''&lt;br /&gt;
&lt;br /&gt;
If mower can't find In/OUt transition during this delay it's error.&lt;br /&gt;
&lt;br /&gt;
'''Track PID'''&lt;br /&gt;
&lt;br /&gt;
The Pid is use to smooth the tracking and need to be adjust according your platform (Distance between wheel and receiver coil,motor react speed etc..)&lt;br /&gt;
&lt;br /&gt;
'''Coil Polarity'''&lt;br /&gt;
&lt;br /&gt;
Do not change ,It's better to invert the wire at sender output.&lt;br /&gt;
&lt;br /&gt;
'''Read the 2 coils'''&lt;br /&gt;
&lt;br /&gt;
Only for dev test : Do not change&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Block inner wheel'''&lt;br /&gt;
&lt;br /&gt;
If YES the 2 wheels always roll forward , if NO one wheel can reverse to find again wire on big angle for example.&lt;br /&gt;
&lt;br /&gt;
'''Reduce Speed Near Wire'''&lt;br /&gt;
&lt;br /&gt;
If YES mower reduce the forward speed when near perimeter&lt;br /&gt;
&lt;br /&gt;
'''Actual Speed Coeff'''&lt;br /&gt;
&lt;br /&gt;
It's the real time value of speed ratio when mower approach the wire&lt;br /&gt;
&lt;br /&gt;
===IMU Wiring and Setting===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====MPU-9250 IMU WIRING TO PCB1.3====&lt;br /&gt;
'''MPU-9250 or 55 is not really stable''' (can work many hours or fail after some minutes without any particular reason) ,so it's better to use GY-88 / GY-521 + GY-273 more stable module&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:MPU-9250.jpg|400px]] &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Optional : It's possible to shunt the onboard DC/DC converter (NEVER PUT 5V on VCC with this option)&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-20.jpg|400px]] &lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
If you have some I2C error it's also possible to connect IMU on other location like I2C5 and JC5 to 3.3V to have a different pullup resistor.&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-40.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-88 IMU WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  G_ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-88.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-521 ACCEL/GYRO WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
 IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-521.jpg|400px]] [[Datei:GY-521-1.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
GY-521 don't have compass ,so you need to deactivate Compass into arduremote/setting/IMU or add a GY-273 module&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
====GY-273 COMPASS WIRING TO PCB1.3====&lt;br /&gt;
On the net you can find different module with fake chips like this one (Note HMC5883L on PCB but it's a QMC5883L),so you need to set the correct compass name into mower.cpp if it don't work with standard setting.&lt;br /&gt;
&lt;br /&gt;
 IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Gy-273-1.jpg|400px]] [[Datei:Gy-273-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C4 port and do not forget JC4 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:Gy-273-3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
GY-273 is a compass that you use with GY-521 you need to activate Compass into arduremote/setting/IMU.'''And do not forget to calibrate it'''.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-87 WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC_IN &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-87.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On GY-87 you can't change I2C adress and it's the same as RTC so you can't connect it on normal I2C port.&lt;br /&gt;
'''Connect module on I2C1 I2C_DUE'''&lt;br /&gt;
&lt;br /&gt;
[[Datei:GY-87-1.jpg|400px]] [[Datei:GY-87-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Select the correct firmware into Github&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===IMU Main Setting===&lt;br /&gt;
&lt;br /&gt;
MPU9255/9255-&amp;gt; [[Datei:ArduRemote_Setting_Imu_1.jpg|200px]]  [[Datei:ArduRemote_Setting_Imu_2.jpg|200px]]  or GY88/GY87-&amp;gt;[[Datei:ArduRemote_GY88.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
More info on IMU ,But no sensor fusion and not the same calibration process : [[Azurit_Firmware_(English)#IMU]]&lt;br /&gt;
&lt;br /&gt;
Here the video of IMU running to keep the heading : https://youtu.be/gxCrIb5geJM&lt;br /&gt;
&lt;br /&gt;
Imu (except GY-521) is composed by 2 parts : Compass and Gyro/Accel.&lt;br /&gt;
&lt;br /&gt;
Compass use magnetic earth field and is disturb by all motor and electronics in the mower, so it's very difficult to have correct value (for example a change of 10 deg is possible if you move the mower for only 1 deg). But it's reliable (If indicate 25 Deg and roll for 360 deg or wait 10 minutes it's always 25 Deg)&lt;br /&gt;
&lt;br /&gt;
Gyro/Accel is very accurate (+/- 1 or 2 deg) but can drift over time, (If indicate 25Deg and you wait 5 minute it can be 30Deg, but when you rotate slowly the mower you can see that everything is OK from 0 to 179 and from -179 to 0 Deg)&lt;br /&gt;
&lt;br /&gt;
The firmware can use or not the compass (Simply test and use the best according the location of the IMU in your platform)&lt;br /&gt;
&lt;br /&gt;
If GY-88/GY-87/GY-521 IMU are used ,you need to calibrate GYRO/ACCEL on the initial installation: Simply Go To ''Setting /  IMU'', press the ACCEL/GYRO initial calibration and wait 1 or 2 minutes without moving the mower (Arduremote lost connection during the process and it's normal if arduino ide is connected you can see the process in the console).&lt;br /&gt;
&lt;br /&gt;
For MPU/9255 or 9250 this process is automatically done on each start of the mower,so you can't see the button in arduremote .&lt;br /&gt;
&lt;br /&gt;
'''IMU Use'''&lt;br /&gt;
&lt;br /&gt;
Use or not the IMU (By lane require IMU to work correctly).&lt;br /&gt;
&lt;br /&gt;
'''Compass Use'''&lt;br /&gt;
if you use  GY-521 alone, you need to deactivate compass.Or if your IMU is locate near electronics or motor you can't calibrate it correctly ,so it's better to deactivate compass : Bylane mowing can result on drifting in parallel lane without compass but not always an issue in normal mowing condition.&lt;br /&gt;
&lt;br /&gt;
'''Stop Mow Motor During Calib'''&lt;br /&gt;
&lt;br /&gt;
It's possible to stop the mow motor to avoid compass noise but not really useful.&lt;br /&gt;
&lt;br /&gt;
'''P I D '''&lt;br /&gt;
&lt;br /&gt;
Like for the motor the PID need to be adjust if the mower don't drive smoothly in straight lane, Try to change the mower heading with your foot and normally the mower retrieve rapidly the precedent heading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calibration Max Duration '''&lt;br /&gt;
&lt;br /&gt;
When mower stop to adjust the Compass value to GYRO/ACCEL , the drift is check,If the drift is always present ,Mower continue to mow after this delay,but only in random mode.&lt;br /&gt;
&lt;br /&gt;
'''Delay between 2 calib'''&lt;br /&gt;
&lt;br /&gt;
Each time this delay is trig ,Mower stop , roll to find the compass actual heading and stop again to check if the drift is small,If it's OK heading is automatically adjust to continue to mow in always the same direction from north for example.If compass is not activate ,only drift is check.&lt;br /&gt;
&lt;br /&gt;
'''Drift Maxi in Deg per Second''&lt;br /&gt;
&lt;br /&gt;
When mower stop to calibrate ,This value is used to restart or wait again until drift stop.&lt;br /&gt;
&lt;br /&gt;
'''Speed to find ComYaw'''&lt;br /&gt;
&lt;br /&gt;
At the begin of calibration, mower roll and read compass,but it's possible to reduce Roll speed to find easily a new value.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====SETTING Without Compass====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to YES'''&lt;br /&gt;
&lt;br /&gt;
Set Compass Use to NO and leave all setting to default.In this case, Heading 0 is the start position of the mower&lt;br /&gt;
&lt;br /&gt;
To check if it's OK:&lt;br /&gt;
&lt;br /&gt;
Go To : ''Main Menu / Test IMU''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_test_imu.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Maybe you need to reduce the motor PWM max speed if the test fail sometime (The mower need to roll slowly)&lt;br /&gt;
&lt;br /&gt;
Start to mow in random mode and change the mower heading with your foot (If IMU is OK The mower need to always keep the heading)&lt;br /&gt;
&lt;br /&gt;
Without Compass you can see that the Bylane mowing is not perfectly parallel over time&lt;br /&gt;
&lt;br /&gt;
Only the GYRO Yaw is updated in arduremote setting.&lt;br /&gt;
&lt;br /&gt;
On Normal mowing mode you can see the mower stop every 'Delay between 2 calib' seconds and wait until the GYRO/ACCEL drift is inferior to 'Drift Maxi in Deg per second' value.If this process fail, mower continue to mow in random mode.&lt;br /&gt;
&lt;br /&gt;
====SETTING With Compass====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Set Compass Use to YES and leave all setting to default.  &lt;br /&gt;
&lt;br /&gt;
You need To DO the Compass calibration each time you change IMU location in the mower or add metal/Magnet near IMU&lt;br /&gt;
&lt;br /&gt;
Start and stop the compass calibration  : click one time to start and move the entire mower around all axes until no new data coming in the Console click again to stop and save the new calibration data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:compass_calib.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on the setting Imu arduremote page you can see the GYRO Yaw and Compass YAW value according to magnetic earth field.It's normal to don't have the 2 same values after 10 or 30 seconds or after roll the mower.And you can discover the main difference between GYRO/ACCEL and COMPASS.&lt;br /&gt;
&lt;br /&gt;
Heading 0 is normally North if no metal or magnet near compass.&lt;br /&gt;
&lt;br /&gt;
On Normal mowing mode you can see the mower stop every 'Delay between 2 calib' seconds , Roll until the compass find the lane heading and wait until the GYRO/ACCEL drift is inferior to 'Drift Maxi in Deg per second' value.If this process fail, mower continue to mow in random mode.&lt;br /&gt;
&lt;br /&gt;
===TIMER setting===&lt;br /&gt;
[[Datei:ArduRemote_Timer_0.jpg|200px]]  [[Datei:ArduRemote_Timer_1.jpg|200px]]  [[Datei:ArduRemote_Timer_2.jpg|200px]]  [[Datei:ArduRemote_Timer_3.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
The Timer is used to mow in full automatic mode for month or week.Timer can be trigger only if the mower is not into charge state.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]When you use the Go To Station from Arduremote the mower return to charging station and stop to check the Timer for the next 1 or 2 hours.&lt;br /&gt;
To do test and reuse timer ,you need to send OFF from arduremote when mower is in the station and wait 1 minute to see the mower start again from station using timer setting.&lt;br /&gt;
&lt;br /&gt;
On the first page the Use NO at the top deactivate all timer and leave mower in station.  Set it to yes and set up one of the 5 timer to make it work.&lt;br /&gt;
&lt;br /&gt;
Always Avoid that one timer stop later than other start or the opposite,or you can see strange behaviour.&lt;br /&gt;
&lt;br /&gt;
Start dist/Station is the distance the mower track the perimeter wire before start to mow.&lt;br /&gt;
&lt;br /&gt;
Use Beacon is here to use with RFID fast start process.&lt;br /&gt;
&lt;br /&gt;
Start Pattern can be Wire(Mower start from station ,mow the entire wire and back in station for the next hour) , LANE (it's parallel lane mowing mode) or Random.&lt;br /&gt;
&lt;br /&gt;
Start Area is used to select the correct mowing area, the Start dist/Station begin at the entry point of the new area.(ONLY POSSIBLE With RFID Option)&lt;br /&gt;
&lt;br /&gt;
Start Lane NR can be 1 2 or 3 like you define in the By Lane setting.&lt;br /&gt;
&lt;br /&gt;
Start Roll Dir is the roll direction Left or Right when the By Lane is in used.&lt;br /&gt;
&lt;br /&gt;
Start Max Lane Length is the distance max that mower drive on By Lane Mowing mode.&lt;br /&gt;
&lt;br /&gt;
Set to current time help to fill the start and stop sliders.&lt;br /&gt;
&lt;br /&gt;
===BYLANE setting===&lt;br /&gt;
[[Datei:mow_lane_result.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
To have acces to all setting the Dev mode need to be activate:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DevToYes.png|210px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Byllane_1.jpg|210px]]  [[Datei:ArduRemote_Setting_Byllane_2.jpg|210px]]  [[Datei:ArduRemote_Setting_Byllane_3.jpg|210px|]]&lt;br /&gt;
&lt;br /&gt;
Using IMU and ODOMETRY  mower can mow in parallel lane faster than random mode, but you need to correctly setup IMU to have good and fast result.&lt;br /&gt;
&lt;br /&gt;
3 mains Lane are set ,Factory are 45, 90 and 135 degrees (Avoid value near 0).&lt;br /&gt;
For each Lane 2 opposites reverse heading are possible according the ROLL dir at the end of the initial lane.&lt;br /&gt;
So you need to adjust 9 angles, 3 for each lane.&lt;br /&gt;
&lt;br /&gt;
'''Change Lane in use''' Click to use the next lane&lt;br /&gt;
&lt;br /&gt;
'''Change next Roll Direction''' Click and mower change the next roll dir when reach the perimetr wire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''THIS Menu is Dynamic so Setting are made in live mode''' : Start to mow and see the menu changing (from Fixed Yaw to Yaw opposite right or left) each time mower stop and reverse,For first test : leave the Fixed Yaw to factory and adjust the left and right Yaw Opposite according the mower real time behaviour.&lt;br /&gt;
&lt;br /&gt;
For example if for the lane 1 you set a fixed yaw to 45 deg, you can set Yaw opposite 1 Roll Left to -135 or -134 . In this case the mower mow perfect parallel lane (reverse heading is exactly the opposite of fixed one)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bylane 2.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other example if for the lane 1 you set a fixed yaw to 45 deg, you can set Yaw opposite 1 Roll Right to -120 , the mower mow in a kind of Zig Zag and go fast from one side of area to the other.&lt;br /&gt;
&lt;br /&gt;
When mower is lock by a curve in wire perimeter (Red Circle in Picture) the Lane NR is automatically change and the IMU calibration start again to adjust Compass and GYRO, by this way it's possible to always mow on same heading in the garden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bylane 1.png|640px]]&lt;br /&gt;
&lt;br /&gt;
'''Dist Between lane''' It's the distance between 2 parallel lane according the weight of your mower.&lt;br /&gt;
&lt;br /&gt;
'''Lane Max length''' It help to reduce the error on IMU heading (Set length &amp;lt; 10 meters if you really want that mower mow perfectly parallel or set to max with a small difference in the 2 opposite YAW if you want to have a fast mowing mode,in this case it's not perfectly parallel but mow really faster)&lt;br /&gt;
&lt;br /&gt;
===BATTERY setting===&lt;br /&gt;
[[Datei:ArduRemote_Setting_Battery_1.jpg|200px]]  [[Datei:ArduRemote_Setting_Battery_2.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Use the Monitor option to auto stop the PCB and protect Battery.'''BETTER to leave it always YES'''.     And always YES if there is no BMS into your battery pack.&lt;br /&gt;
&lt;br /&gt;
'''Charge Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from charging station voltage.&lt;br /&gt;
&lt;br /&gt;
'''Battery Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from battery voltage.&lt;br /&gt;
&lt;br /&gt;
'''Sense Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from sense charging.&lt;br /&gt;
&lt;br /&gt;
'''Go Home if Volt below''' &lt;br /&gt;
&lt;br /&gt;
In mowing mode the mower automatically return to station when battery voltage is below this value.&lt;br /&gt;
&lt;br /&gt;
'''Switch off after minutes''' &lt;br /&gt;
&lt;br /&gt;
When mower is OFF or in ERROR state, PCB automatically shutdown after this delay ('''REQUIRE JP8 in AUTO MODE''')&lt;br /&gt;
&lt;br /&gt;
'''Switch off if Volt below''' &lt;br /&gt;
&lt;br /&gt;
PCB automatically shutdown if battery voltage is too low  ('''REQUIRE JP8 in AUTO MODE''')&lt;br /&gt;
&lt;br /&gt;
'''Start charge if Voltage below''' &lt;br /&gt;
&lt;br /&gt;
When mower reach the charging station, the charging start and you can see the 2 values (Charge and sense just upper this line).Be careful when testing ,if the battery is not really empty the charge don't start each time, it's a electronic result (you can see the battery voltage increase very fast), but in normal working mode, all work perfectly.&lt;br /&gt;
&lt;br /&gt;
'''Stop charge if Sense below''' &lt;br /&gt;
&lt;br /&gt;
You can set here the minimum Sense that the battery drain at the end of the charging process.If too low the charging process is automatically stop after 5 hours and a message is send on the Console.&lt;br /&gt;
&lt;br /&gt;
===SONAR setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Sonar.jpg|200px]]  [[Datei:JSN_SR04T.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Firmware is tested for this type of Sonar : JSN-SR04T &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sonar can be used like a bumper : When trigge, mower speed is reduce and mower stop after the detection distance without hitting obstacle. &lt;br /&gt;
&lt;br /&gt;
Or Sonar can simply reduce motor speed for the next 3 seconds.&lt;br /&gt;
&lt;br /&gt;
Into mower.cpp you can simply change this line to true to change behaviour&lt;br /&gt;
&lt;br /&gt;
  sonarLikeBumper            =false;      //ultrasonic reduce speed vs bumper like&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sonar brake below'''&lt;br /&gt;
&lt;br /&gt;
Only this distance is scan by the sonar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sonar To Front Dist'''&lt;br /&gt;
&lt;br /&gt;
Distance between front of mower and sonar location, useful to never touch obstacle.&lt;br /&gt;
&lt;br /&gt;
===RAIN TEMP setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Rain.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''Rain Use''' &lt;br /&gt;
&lt;br /&gt;
set to YES if you want that Mower go to station when rain sensor is trig&lt;br /&gt;
&lt;br /&gt;
'''DHT22Use''' &lt;br /&gt;
&lt;br /&gt;
set to YES if you have connected a DHT22 sensor on PCB1.3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Maximum Temperature''' &lt;br /&gt;
&lt;br /&gt;
When DHT22 temp is upper this value the mower goes into ERROR and the PCB is totally power OFF.&lt;br /&gt;
To be tested ,maybe bug here.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OLED Screen setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:OLED_PCB1.3_wiring.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In AZURITBER Ver &amp;gt;= 1.6 It's possible to connect small OLED screen on the PCB1.3 I2C1 port&lt;br /&gt;
&lt;br /&gt;
Resolution is fixed to 128 * 64 pixel and can use 1.3 or 0.96 pouce  screen&lt;br /&gt;
&lt;br /&gt;
The oled need to be I2C U8G2 compatible, so SSD1306 or SH1106 I2C model :&lt;br /&gt;
&lt;br /&gt;
https://www.marotronics.de/Ecran-OLED-096-bleu-jaune-I2C-SPI-128x64-SSD1106-pour-Arduino-Raspberry-Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You need to Enable it into mower.h line 128&lt;br /&gt;
&lt;br /&gt;
 #define Enable_Screen true&lt;br /&gt;
 *      //#define Enable_Screen false&lt;br /&gt;
&lt;br /&gt;
And select the correct model into screen.cpp . Factory setting are for 1.3 Pouce model from Ebay.&lt;br /&gt;
 &lt;br /&gt;
 U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);&lt;br /&gt;
 U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);&lt;br /&gt;
&lt;br /&gt;
According the status of the mower Oled show different screen :&lt;br /&gt;
&lt;br /&gt;
In OFF mode :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_OFF.png|200px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While mower running :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_mow.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When Charging :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_charge.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When into station waiting for next timer start :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_station.png|200px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Level 3 Raspberry Pi + RFID =&lt;br /&gt;
&lt;br /&gt;
It's here : [[AzuritBer_Pi_Firmware_RFID(English)]]&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Firmware_(English)&amp;diff=10332</id>
		<title>AzuritBer Pi Firmware (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Firmware_(English)&amp;diff=10332"/>
				<updated>2022-02-05T10:22:13Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi =&lt;br /&gt;
&lt;br /&gt;
A Raspberry Pi is connected over Due Native USB to the arduino&lt;br /&gt;
&lt;br /&gt;
It is used to control Mower over WIFI from everywhere using PC,Tablet,Smartphone etc.....&lt;br /&gt;
&lt;br /&gt;
All movement and message are saved on SDcard for each mowing run and you can check later exactly what append (Bump,Sonar,Perimeter trig etc....)&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
===What you need===&lt;br /&gt;
&lt;br /&gt;
1 Raspberry PI 3B+ or PI4 (The Pizero W can work but very slowly and it's not the goal).[[Datei:pi3_board.jpg|100px]]&lt;br /&gt;
&lt;br /&gt;
1 DC/DC voltage regulator to power the PI.Minumum 5A version from marotronics[[Datei:DC DC 5A.jpg|100px]] https://www.marotronics.de/5A-DC-DC-step-down-module-XL4015-with-heat-sink-eg-for-Arduino&lt;br /&gt;
&lt;br /&gt;
Connect P17 to input of the DC/DC voltage regulator and connect a micro usb cable to output [[File:warning.png]]'''(ADJUST the output voltage to 5V before plug the PI)'''&lt;br /&gt;
&lt;br /&gt;
1 USB mouse,keyboard for setting.You can simply use a standard one for the setting and disconnect it after But it's also possible to use a small one like that to drive the mower remotely in manual mode.[[Datei:small_keyboard1.jpg|100px]]&lt;br /&gt;
&lt;br /&gt;
1 SD Card 32 GB class 10[[Datei:Sd card.jpg|30px]]&lt;br /&gt;
&lt;br /&gt;
1 PowerBank or DC/DC voltage regulator connected to PCB1.3 or power supply for the raspberry pi minimum 3A&lt;br /&gt;
&lt;br /&gt;
1 HDMI cable to see the PI desktop on your TV  or HDMI Screen.&lt;br /&gt;
&lt;br /&gt;
1 TV or monitor with HDMI input to easily see the raspberry IP adress on the first boot.&lt;br /&gt;
&lt;br /&gt;
===Fast setup for Advanced user===&lt;br /&gt;
&lt;br /&gt;
If you already know how raspberry PI work with desktop ,You can read setup process locate into github under Txt File Setup_raspberry.rtf&lt;br /&gt;
&lt;br /&gt;
Here the full setup process:&lt;br /&gt;
&lt;br /&gt;
VNC is installed and you have copied all Piardumower data into Documents folder.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install idle3&lt;br /&gt;
 sudo pip3 install paho-mqtt&lt;br /&gt;
 sudo apt-get install kst&lt;br /&gt;
 sudo apt-get install dos2unix&lt;br /&gt;
&lt;br /&gt;
Download and Install Arduino IDE and add Due board if you want to flash Due over WIFI&lt;br /&gt;
&lt;br /&gt;
 cd ~/Documents&lt;br /&gt;
 sudo chown -R pi:pi PiArdumower&lt;br /&gt;
 sudo chmod -R 755 PiArdumower&lt;br /&gt;
 cd PiArdumower&lt;br /&gt;
 mv mower.sh /home/pi/Desktop&lt;br /&gt;
&lt;br /&gt;
 cd ~/Documents/PiArdumower&lt;br /&gt;
 dos2unix streamVideo320.py&lt;br /&gt;
 dos2unix streamVideo640.py&lt;br /&gt;
 dos2unix DueFlash.py&lt;br /&gt;
 dos2unix PowerOff.py&lt;br /&gt;
 dos2unix Restart.py&lt;br /&gt;
 dos2unix testnet1.py&lt;br /&gt;
 cd ~/Desktop&lt;br /&gt;
 dos2unix mower.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you never work with Raspberry simply follow the full WIKI and check all screen copy.&lt;br /&gt;
&lt;br /&gt;
===Build the SD Card===&lt;br /&gt;
&lt;br /&gt;
You need to first write the raspbian OS on the SD Card .&lt;br /&gt;
&lt;br /&gt;
It's easy using the main raspberry.org site.&lt;br /&gt;
&lt;br /&gt;
You can connect you Micro SD CARD to your laptop or PC using correct adaptor &lt;br /&gt;
&lt;br /&gt;
No need to format at the point but '''All Data present on it will be destroyed.'''&lt;br /&gt;
&lt;br /&gt;
Connect to : https://www.raspberrypi.org/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Buster001.png|400px]] and select the Download page&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster002.png|400px]] Select Raspberry Pi Imager for Windows&lt;br /&gt;
----&lt;br /&gt;
Wait until the download is finish and launch the downloaded prog.&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster003.png|400px]] Select Choose OS&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster004.png|400px]] Use the recommended one with Desktop&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster005.png|400px]] Select Choose SD CARD&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster006.png|400px]] Select your SD CARD Be careful to select the correct one.&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Buster007.png|400px]] Select Write and wait until down (can take 15 to 60 Min according your internet speed).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remove the SD CARD for your PC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PI Initial boot with Desktop===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect everything on the PI ; Here the Ethernet cable is used but it's also possible to use WIFI&lt;br /&gt;
&lt;br /&gt;
USB Dongle for mouse.&lt;br /&gt;
&lt;br /&gt;
HDMI cable from PI to TV or monitor. (Without TV or monitor is also possible : Search on Google and Youtube)&lt;br /&gt;
&lt;br /&gt;
Ethernet cable if possible or WIFI (On first boot the PI need a good connection to the net for last update)&lt;br /&gt;
&lt;br /&gt;
Power (5V if you use DC/DC voltage regulator) on Micro USB&lt;br /&gt;
&lt;br /&gt;
[[Datei:Connecting.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On first start you can see expand sd card,reboot and welcome message with the IP Address for Ethernet&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Select your language and location.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_02.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change password and remember it (we need it later to connect to PI over wifi)  For easy wiki : '''Pass001''' but use another one&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Setup screen, simply click next&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On the WIFI connecting page select the WIFI network that you want to use for all the setting duration (You can change it later for an outdoor one)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Enter your wifi password and follow the next update step (can take again 10 to 30 minutes)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_5.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
REBOOT.&lt;br /&gt;
&lt;br /&gt;
We need to activate VNC serveur to whare the desktop with your PC.&lt;br /&gt;
&lt;br /&gt;
Using Start icon : Go to Préférence and Configuration du Raspberry&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_10.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In the Tab Interfaces Activate SSH and VNC&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_11.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now on the upper right corner of the desktop a new icon show that VNC Serveur is running .&lt;br /&gt;
&lt;br /&gt;
Move your mouse on the Ethernet or Wifi icon to see the IP adress of the ethernet and WIFI one.&lt;br /&gt;
&lt;br /&gt;
The WIFI one is the most important (Here '''10.0.0.29''')&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_12.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Disconnect the ethernet cable and Reboot (Not Shutdown) All Using Start icon and Log Out.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_1201.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===First Remote PC connection over Wifi===&lt;br /&gt;
'''PI SIDE'''&lt;br /&gt;
&lt;br /&gt;
Pi is running and you can see the desktop &lt;br /&gt;
&lt;br /&gt;
'''PC SIDE or Tablet / Phone'''&lt;br /&gt;
&lt;br /&gt;
 Remember that we set the Password to Pass001 and ip adress of the PI WIFI is 10.0.0.29&lt;br /&gt;
 NOW WE WORK ON PC OR TABLET&lt;br /&gt;
&lt;br /&gt;
You have many possiblity (SSH viewer, MobaXterm, Remote Desktop etc...) , In this case I use free real VNC Viewer (Not VNC Serveur) to connect to the PI over your network.&lt;br /&gt;
&lt;br /&gt;
Go to https://www.realvnc.com/fr/connect/download/viewer/&lt;br /&gt;
&lt;br /&gt;
And select the correct donwload according your platform.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Instal the software and start it (VNC Viewer). In your case the tab is empty (No RL1000,Denna etc....)&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_21.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On upper left choose File / New Connection&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_22.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Into VNC Serveur : enter the IP of the raspberry  (ethernet or WIFI adress) and give a name to the connection.&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_23.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
It's possible that a new security box is shown on the screen Select Continue&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_24.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
You can see the new Connection named Ardumower Double click on it.&lt;br /&gt;
&lt;br /&gt;
UserName is pi and password is Pass001 or the one you choose on first start part.Check remember password&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_25.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
The Clone of the Pi desktop is now on your PC and you can do everything exactly like if you use localy the raspberry ,But from your Sofa&lt;br /&gt;
&lt;br /&gt;
[[Datei:first_start_26.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Pi Software part===&lt;br /&gt;
&lt;br /&gt;
 NOW WE WORK ON THE PI ''USING VNC VIEWER'' ALL COMMAND NEED TO RESPECT THE CASE&lt;br /&gt;
 DO NOT DISCONNECT THE SCREEN TO HAVE A CORRECT RESOLUTION (1024*768)&lt;br /&gt;
&lt;br /&gt;
You need to send some command to the PI Terminal to install some software.&lt;br /&gt;
&lt;br /&gt;
To see the terminal click on the &amp;gt;_ icon in the taskbar&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_10.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Copy and past all the following command in the terminal after the $ for the rest of this wiki part&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
This download can take a lot of time , so be patient and answer Yes to upgrade&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Python3 Idle====&lt;br /&gt;
&lt;br /&gt;
Piardu.py use Python3 , so we need to install the idle to have access to it and edit if needed (answer Yes for installing)&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install idle3&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
At the end of the Python idle installation you need to have a new icon into Start / Programing menu.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Pygame====&lt;br /&gt;
&lt;br /&gt;
It's possible to drive the mower in Manual mode with PS4 joystick but need pygame software (Maybe already include but it's better to do it)&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install python3-pygame&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Paho Mqtt====&lt;br /&gt;
&lt;br /&gt;
It's possible to controle mower over mqtt and use Home Automation but need python3 paho software part.&lt;br /&gt;
&lt;br /&gt;
 sudo pip3 install paho-mqtt&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Here a fast description of TOPIC&lt;br /&gt;
&lt;br /&gt;
What you can send to mower&lt;br /&gt;
&lt;br /&gt;
Topic Denna/COMMAND&lt;br /&gt;
&lt;br /&gt;
 payload : STOP to stop&lt;br /&gt;
 payload : MOWPATTERN ;1 or 2 or3 according mowpattern&lt;br /&gt;
 payload : START to start with the last mowpattern&lt;br /&gt;
 payload : PAUSE;2 to stop auto start by timer for the next 2 hours&lt;br /&gt;
 payload : HOME to go station&lt;br /&gt;
 payload : STARTTIMER;1;1;0;25;2;50 it's to start from station &lt;br /&gt;
           STARTTIMER;MowPattern;LaneNr;rollDir;WhereStart;areToGo;LaneLenght&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What you receive from mower&lt;br /&gt;
&lt;br /&gt;
Send only when value change&lt;br /&gt;
&lt;br /&gt;
 Topic Denna/STATUS&lt;br /&gt;
 payload the mower status see robot.py list for possible value&lt;br /&gt;
 Topic Denna/STATE&lt;br /&gt;
 payload the mower state see robot.py list for possible value&lt;br /&gt;
 Topic Denna/Battery&lt;br /&gt;
 payload the bat voltage&lt;br /&gt;
 Topic Denna/Temp&lt;br /&gt;
 payload the mower temp&lt;br /&gt;
 Topic Denna/Battery&lt;br /&gt;
 payload the bat voltage&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Send at fixed frequency see config.py (one per second for example)&lt;br /&gt;
&lt;br /&gt;
 Topic Denna/Idle&lt;br /&gt;
 payload the loop per second of due&lt;br /&gt;
&lt;br /&gt;
====KST Plot====&lt;br /&gt;
&lt;br /&gt;
Piardu use software named KST to plot all the data &lt;br /&gt;
&lt;br /&gt;
Seach KST Plot on Google for more info . Again copy and past this into the Pi terminal:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install kst&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_80.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====DosToUnix====&lt;br /&gt;
&lt;br /&gt;
Some file need to be in unix format ,so a conversion is needed using DosToUnix&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install dos2unix&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_65.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Arduino IDE====&lt;br /&gt;
&lt;br /&gt;
It's possible to update the due firmware from Piardu over WIFI but need the ARDUINO IDE in the raspberry.&lt;br /&gt;
&lt;br /&gt;
The process is describe perfectly in this video&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=ySyBNdndB58&lt;br /&gt;
&lt;br /&gt;
You need to download file directly inside the raspberry.&lt;br /&gt;
&lt;br /&gt;
So use the PI Internet browser named CHROMIUM.It's the world Icon on windows top left &lt;br /&gt;
&lt;br /&gt;
Here screenshot of the 07/11/2020 download page for '''Arduino 1.8.13''' version : Choose Linux ARM 32 bits&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_100.png|400px]] [[Datei:pi_soft_101.png|400px]] [[Datei:pi_soft_102.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Go to file manager home / pi / Downloads and right click to the downloaded file ,select extract here (WAIT before you see something appear)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_110.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Now open again the terminal windows (&amp;gt;_ icon on upper left) and copy these command (it can take time)&lt;br /&gt;
&lt;br /&gt;
Warning : folder arduino-1.8-13 can change over time for example arduino-1.8-15 , so use the correct name according your download in the next command.&lt;br /&gt;
&lt;br /&gt;
 cd Downloads/arduino-1.8.13&lt;br /&gt;
&lt;br /&gt;
 sudo ./install.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_115.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not take care about the error message.&lt;br /&gt;
&lt;br /&gt;
You can see now the arduino icon into start / programming, start the prog to be sure everything is OK.&lt;br /&gt;
 &lt;br /&gt;
[[Datei:pi_soft_120.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Add the ARDUINO DUE in the board list&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_125.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Search for DUE : and select arduino SAM Boards&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_130.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Again it can take time,so Wait until process finish.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Normaly arduino ide is not use and only a command line is used to update Due firmware but to be sure the folder name stay always the same  : Go to file Preferences and deactivate the Search for update.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_135.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===PiArdu Software===&lt;br /&gt;
&lt;br /&gt;
You need to copy all the Github file locate into Piardumower folder inside the Raspberry PI home/pi/Documents folder.&lt;br /&gt;
&lt;br /&gt;
Using VNC Viewer :&lt;br /&gt;
&lt;br /&gt;
First initiate the correct location for file transfert &lt;br /&gt;
&lt;br /&gt;
Click VNC Serveur icon on desktop upper right near Bluetooth icon&lt;br /&gt;
&lt;br /&gt;
Click Menu icon on VNC CONNECT upper right page&lt;br /&gt;
&lt;br /&gt;
Select File Transfert in the menu list&lt;br /&gt;
&lt;br /&gt;
In bottom right of the next page select other folder and choose home/pi/Documents.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_205.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Now download all the file:&lt;br /&gt;
Move your mouse in upper middle of the desktop to see the VNC transfert icon and select it Click on send file&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_200.png|400px]] [[Datei:pi_soft_208.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Navigate into your PC to find the github master downloaded file and select piardumower and validate using the '''FULL FOLDER''' in bottom right&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_210.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
If everything is OK you can see now the entire folder correctly locate in home/pi/Documents&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_215.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Set permission to everyone for all the piardumower file &lt;br /&gt;
&lt;br /&gt;
Open a terminal (&amp;gt;_ icon ondesktop) and send the  5 command  &lt;br /&gt;
&lt;br /&gt;
 cd Documents&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R pi:pi PiArdumower&lt;br /&gt;
&lt;br /&gt;
 sudo chmod -R 755 PiArdumower&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_220.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add start Piardu.py to desktop using a shell command:&lt;br /&gt;
&lt;br /&gt;
 cd PiArdumower&lt;br /&gt;
&lt;br /&gt;
 mv mower.sh /home/pi/Desktop&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_221.png|400px]]&lt;br /&gt;
&lt;br /&gt;
A new file is now present on desktop Mower.sh and can be use to start the Piardu.py&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change into config.py for the first start of Piardu (Deactivate momentary the DUE serial link to avoid error)&lt;br /&gt;
&lt;br /&gt;
Start / Programming / Python3 IDLE   &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_230.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
And into Python Shell select File Open home/pi/Documents/Piardumower/config.py&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_235.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now change DueconnectedOnPi from True to False &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_240.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Save and close the config.py file but keep the shell open&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now from Python Shell select File Open home/pi/Documents/Piardumower/PiArdu.py and click on Run / Run Module or hit F5&lt;br /&gt;
&lt;br /&gt;
Piardu need to start without error into Shell windows (No red Line)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_250.png|400px]]&lt;br /&gt;
&lt;br /&gt;
And you can navigate inside all the menu with a fast response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To work correctly some file  need to be converted into Unix format:&lt;br /&gt;
&lt;br /&gt;
Open the terminal and copy these command &lt;br /&gt;
&lt;br /&gt;
 cd Documents/PiArdumower&lt;br /&gt;
&lt;br /&gt;
 dos2unix streamVideo320.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix streamVideo640.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix DueFlash.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix PowerOff.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix Restart.py&lt;br /&gt;
&lt;br /&gt;
 dos2unix testnet1.py&lt;br /&gt;
&lt;br /&gt;
 cd ~/Desktop&lt;br /&gt;
&lt;br /&gt;
 dos2unix mower.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_75.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Automatic start on Power up:&lt;br /&gt;
&lt;br /&gt;
In terminal use text editor named nano to start mower.sh each time the Pi is power up&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/xdg/lxsession/LXDE-pi/autostart&lt;br /&gt;
&lt;br /&gt;
and at the end of the file add the line below ,'''Be careful mouse don't work inside the editor,so paste the line at the correct location , error in this file can corrupt the PI starting process'''&lt;br /&gt;
&lt;br /&gt;
 @bash /home/pi/Desktop/mower.sh&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_237.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Use Ctrl X to exit and save the change in autostart.&lt;br /&gt;
&lt;br /&gt;
Reboot the PI ,Normally Piardu automatically start with some error if DUE is not plug in PCB1.3 or without error if PCB1.3 is used.&lt;br /&gt;
&lt;br /&gt;
If you can't see the bottom red line with date time : check if you have activate raspberryPi to YES using Arduremote / Setting /raspberry&lt;br /&gt;
&lt;br /&gt;
Go to Piardu auto page and click on OFF to reset all eventual error.&lt;br /&gt;
&lt;br /&gt;
===DUE Connection===&lt;br /&gt;
&lt;br /&gt;
If you can't remove Arduino DUE from PCB1.3 : you need to power the raspberry with the DC/DC voltage regulator under the same battery, or with standard PI power supply.&lt;br /&gt;
&lt;br /&gt;
With DC/DC regulator [[File:warning.png]]'''FIRST ADJUST THE DC/DC TO 5V OUTPUT''' or you are going to destroy the raspberry&lt;br /&gt;
&lt;br /&gt;
From PCB1.3 24V P17 --&amp;gt;IN DC/DC OUT--&amp;gt; 5V micro USB Raspberry PI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also connect Arduino Due without the PCB1.3 to PI using USB Cable '''Never use a charging cable only DATA cable''' (DUE is powered by the raspberry ,so it's very easy)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_300.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Change again into config.py to activate the DUE serial link.&lt;br /&gt;
&lt;br /&gt;
Start / Programming / Python3 IDLE   &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_230.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
And into Python Shell select File Open home/pi/Documents/Piardumower/config.py&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_235.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Change DueconnectonPi from False to True&lt;br /&gt;
&lt;br /&gt;
Also set UseDebugConsole to True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_241.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Save and close the config.py file but keep the shell open&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now from Python Shell select File Open home/pi/Documents/Piardumower/PiArdu.py and click on Run / Run Module or hit F5&lt;br /&gt;
&lt;br /&gt;
Piardu need to start and you can navigate inside all the menu very slowly if there are no firmware in the arduino DUE so wait &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_250.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==== FLASH DUE ====&lt;br /&gt;
You can upload the DUE firmware using your PC or directly from Piardu .&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''If Raspberry is powered using PCB1.3 JUMPER JP8 NEED TO BE IN ALWAYS ON POSITION'''&lt;br /&gt;
if you forget to change JP8 position. During the DUE flash, PCB can power off raspberry . In this case you need to upload again the sketch from your PC using DUE programming port&lt;br /&gt;
&lt;br /&gt;
On PiArdu click Back icon and Setting icon&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_305.png|400px]]&lt;br /&gt;
&lt;br /&gt;
On setting main tab use Update the DUE Firmware button and click on Start Flash. Never use &amp;quot;(&amp;quot; or &amp;quot;)&amp;quot; in the mane of file or the flash crash. &lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_soft_310.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Wait until DUE FLASHER window is closed&lt;br /&gt;
&lt;br /&gt;
You can use your own file . Arduino IDE generate one file each time you compile your project (see the last line in debug view of arduino compiler. Simply copy the file in the raspberry into firmware folder be careful to avoid &amp;quot;(&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== CHECK COMMUNICATION ====&lt;br /&gt;
&lt;br /&gt;
Firmware locate on GITHUB is build to work with or without raspberry.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you test without PCB1.3 and don't have access to ARDUREMOTE you need to manualy set RaspberrypiUse to true.&lt;br /&gt;
See into mower.cpp line 242:&lt;br /&gt;
&lt;br /&gt;
 RaspberryPIUse = false; // a raspberryPi is connected to USBNative port&lt;br /&gt;
&lt;br /&gt;
change with:&lt;br /&gt;
&lt;br /&gt;
 RaspberryPIUse = true; // a raspberryPi is connected to USBNative port&lt;br /&gt;
&lt;br /&gt;
Compile and upload again code into DUE.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you have access to ARDUREMOTE simply go into arduremote / Setting / Raspberry to activate the communication.&lt;br /&gt;
&lt;br /&gt;
When everything is OK, the RED Status line is present in AUTO page of Piardu and change every second.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Try to click Back icon and Setting icon and click on Reboot All &lt;br /&gt;
&lt;br /&gt;
Raspberry and DUE need to reboot if communication,permission and unix format are OK &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Optional Screen===&lt;br /&gt;
&lt;br /&gt;
For really easy working it's better to use a tactile screen ,directly connected on the Raspberry.&lt;br /&gt;
&lt;br /&gt;
Piardu is write to use a 800*480 5 inch screen using HDMI connection.Avoid SPI screen because the processor can't manage everything faster.&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 2.png|400px]]  [[Datei:pi screen 1.png|400px]]  [[Datei:Pi4 screen 1.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Be carreful when you order : HDMI adaptor is not the same for PI4 (Right Picture) and PI3B+ (center and left Picture)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To setup the tactile and screen :&lt;br /&gt;
&lt;br /&gt;
Go to terminal :copy and paste these command&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/waveshare/LCD-show.git&lt;br /&gt;
&lt;br /&gt;
 cd LCD-show/&lt;br /&gt;
&lt;br /&gt;
 sudo ./LCD5-show&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Wait and after reboot ,Resolution is automaticaly reset to screen one and tactile is working to control PiArdu.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To have PiArdu on total full Screen Right Click in the TaskBar near VNC SERVEUR to open a menu list and select 'Parameter tab de bord' (See picture from translation)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
On the new windows select tab Advance and check Minimise (Again See picture from translation)&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi screen 5.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Optional Camera===&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 1.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simply connect the camera to PI CSI port&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 3.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using Start icon : Go to Préférence and Configuration du Raspberry&lt;br /&gt;
&lt;br /&gt;
In the new windows go into tab Interfaces&lt;br /&gt;
&lt;br /&gt;
Check to Enable the Camera&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi camera 2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Move windows or Hit Tabulation 10 times if you can't see Validate Button and press Enter (Reboot)&lt;br /&gt;
&lt;br /&gt;
==== Expérimental AI Vision with Tensorflow ====&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=e6udelf2v50&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EVERYTHING IS HERE EXPERIMENTAL AND CAN'T REPLACE BUMPER OR SONAR.&lt;br /&gt;
&lt;br /&gt;
Main part of detection code came from here and other site on web:&lt;br /&gt;
&lt;br /&gt;
https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10&lt;br /&gt;
&lt;br /&gt;
Only OK with Raspberry 4 at 2 frames per second without google coral accelerator,Note than a Fan is mandatory on the Pi because CPU can heat a lot.&lt;br /&gt;
&lt;br /&gt;
Fast main setup description.&lt;br /&gt;
&lt;br /&gt;
If they are not present copy folder from Github to PiArdumower folder using VNC Viewer:&lt;br /&gt;
 core&lt;br /&gt;
 data&lt;br /&gt;
 protos&lt;br /&gt;
 ssdlite_mobilenet_v2_coco_2018_05_09&lt;br /&gt;
 utils&lt;br /&gt;
 vision&lt;br /&gt;
 &lt;br /&gt;
Now in a new terminal :&lt;br /&gt;
 &lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
Install OPENCV&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3-opencv&lt;br /&gt;
&lt;br /&gt;
Install Tensorflow&lt;br /&gt;
&lt;br /&gt;
 pip3 install tensorflow&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install libatlas-base-dev&lt;br /&gt;
&lt;br /&gt;
 sudo pip3 install pillow lxml jupyter matplotlib cython&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install python3-pil python3-pil.imagetk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using python idle edit ''config.py'' and set Use Vision to true&lt;br /&gt;
&lt;br /&gt;
visionDetectMinScore is used to create a first sort on what we want to explore in the screen.Each time something with score &amp;gt; 78 for example is detected a copy of Live Video is saved on SD Card and soft check if the object detected match with the setting and if we need to stop and reverse or continue to mow.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 05.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Using python idle open and start ''PiArdu519.py'' or later&lt;br /&gt;
&lt;br /&gt;
Into setting you can see the tab Vision open it to set the threshold of what you want to avoid.&lt;br /&gt;
&lt;br /&gt;
For each object you can set a minimum detection score and a minimum area (How many percent of the full image)&lt;br /&gt;
&lt;br /&gt;
According the tensorflow model you need to set the correct object ID (name is according but you can change it)&lt;br /&gt;
Here the .txt file list: &lt;br /&gt;
&lt;br /&gt;
For example on COCO model the chair have ID 62 and we want to stop and reverse if detection score is &amp;gt; 75 and area &amp;gt; 12 % of the screen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 08.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Video menu, click on Start Vision and wait at least 40 seconds for tensorflow to load the model.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 12.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
A new windows named 'Live Video' appear.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 13.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now you can reduce Live Video windows and start to mow until something is detected&lt;br /&gt;
&lt;br /&gt;
The big red box is replace with the last detection and a file is create into vision folder  &lt;br /&gt;
 &lt;br /&gt;
[[Datei:Piardu video 15.png|400px]] [[Datei:Piardu video 30.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In Console you can see the result of detection.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu video 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Each time person or Dog etc.. is detected mower stop and reverse , a picture is take and store in the vision / date time folder&lt;br /&gt;
&lt;br /&gt;
AGAIN IT'S EXPERIMENTAL AND ONLY FOR FUN so check in the python shell that no error occur and test to see if the detection is reliable !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Backup SD CARD===&lt;br /&gt;
After this very long setup it's time to create a backup of your SD Card into your PC.&lt;br /&gt;
&lt;br /&gt;
Power OFF your raspberry using the correct command and move the SD CARD from the raspberry to your PC. Close windows message for format suggestion.&lt;br /&gt;
&lt;br /&gt;
Using Win32DiskImager a free software you can create image file of your SD Card and save it into your PC.So it's easy to rebuild your card later if you damage it or if you want to build other one using the read and write button.&lt;br /&gt;
&lt;br /&gt;
Image file size is the same as your SD CARD ,so need space on your PC&lt;br /&gt;
&lt;br /&gt;
It's here https://win32diskimager.org/&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager001.png|400px]] &lt;br /&gt;
&lt;br /&gt;
Download the soft and start it.Your SDCARD is normaly detected  and you only need to select a backup folder and give a name to the file ,add .img at the end of your backup file &lt;br /&gt;
&lt;br /&gt;
TO BACKUP&lt;br /&gt;
&lt;br /&gt;
Click on read button to copy your sdcard to your PC.&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager020.png|400px]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TO RESTORE &lt;br /&gt;
&lt;br /&gt;
Insert a new SDCARD with minimum same size ,select your backup file and click on write button to create the new SDCARD&lt;br /&gt;
&lt;br /&gt;
[[Datei:diskimager030.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Piardu Configuration==&lt;br /&gt;
&lt;br /&gt;
 Inside folder : home/pi/Documents/Piardumower you can edit the config.py file to manage different option :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu config 1.png|600px]] [[Datei:Piardu config 2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
''PCB part:''&lt;br /&gt;
&lt;br /&gt;
'''Due ConnectedOnPi'''&lt;br /&gt;
True for normal use , False to test Raspberry without PCB1.3 and DUE&lt;br /&gt;
&lt;br /&gt;
''GPS part:''&lt;br /&gt;
&lt;br /&gt;
Warning : GPS is not use by software,it's only a tracker version, All data are recorded and saved inside Piardumower/Gpsdata&lt;br /&gt;
&lt;br /&gt;
'''GpsConnectedOnPi''' &lt;br /&gt;
True or False : Old config with GPS directly connected on Raspberry Pi Serial GPIO.&lt;br /&gt;
&lt;br /&gt;
'''GpsIsM6n'''&lt;br /&gt;
True or False : Set to false is you use M8N module because NMEA sentence are not the same&lt;br /&gt;
&lt;br /&gt;
''Arduino Nano part.''&lt;br /&gt;
&lt;br /&gt;
'''NanoConnectedOnPi'''&lt;br /&gt;
&lt;br /&gt;
It's possible to connect Arduino Nano on Pi USB to receive data and react according, It was build to test some laser beam VL53L0X sensor and rain sensor but without success&lt;br /&gt;
&lt;br /&gt;
''Battery part:''&lt;br /&gt;
&lt;br /&gt;
'''AutoRecordBatCharging'''&lt;br /&gt;
&lt;br /&gt;
When charging start it's possible to record each minute voltage and battery sense to check later how everything work and adjust the max charging duration if necessary.&lt;br /&gt;
&lt;br /&gt;
''Debug part:''&lt;br /&gt;
&lt;br /&gt;
'''UseDebugConsole'''&lt;br /&gt;
&lt;br /&gt;
If True ,you can see more message in the console page including all NMEA sentence received and send by Raspberry.&lt;br /&gt;
&lt;br /&gt;
''Sender part:''&lt;br /&gt;
&lt;br /&gt;
'''Sender1AdressIP''' '''Sender2AdressIP''' '''Sender3AdressIP'''&lt;br /&gt;
&lt;br /&gt;
If you use the RFID option with multiple area it's the IP adress that Piardu use to communicate with other sender over WIFI.&lt;br /&gt;
&lt;br /&gt;
''Camera part:''&lt;br /&gt;
&lt;br /&gt;
'''myCamAngle'''&lt;br /&gt;
&lt;br /&gt;
If camera in mount in particular orientation it's possible to adjust screen render here.&lt;br /&gt;
&lt;br /&gt;
'''streamVideoOnPower'''&lt;br /&gt;
&lt;br /&gt;
if set to True the video stream automatically start when pi is power up&lt;br /&gt;
&lt;br /&gt;
==Piardu Power ON / OFF video==&lt;br /&gt;
&lt;br /&gt;
Result after everything correctly set :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Power ON&lt;br /&gt;
&lt;br /&gt;
 https://youtu.be/Qhv8r2bD_Bk&lt;br /&gt;
&lt;br /&gt;
Power OFF&lt;br /&gt;
&lt;br /&gt;
 https://youtu.be/4YJQ-zyLq-Q&lt;br /&gt;
&lt;br /&gt;
==Piardu Description==&lt;br /&gt;
It's here : [[https://wiki.ardumower.de/index.php?title=AzuritBer_Pi_Explain_(English)]]&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_Firmware_(English)&amp;diff=10331</id>
		<title>AzuritBer Firmware (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_Firmware_(English)&amp;diff=10331"/>
				<updated>2022-02-05T10:21:49Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Raspberry PI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=GITHUB Location=&lt;br /&gt;
&lt;br /&gt;
It's here:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Boilevin/AzuritBer GITHUB REPOSITORY]&lt;br /&gt;
&lt;br /&gt;
Process is the same as AZURIT :&lt;br /&gt;
&lt;br /&gt;
You need to upload all file to your PC and open ardumower.ino into arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Upload the code inside your DUE :&lt;br /&gt;
&lt;br /&gt;
On first start it's possible that EEPROM is empty (PCB Beep and start with ERROR) so you need to reset error counter and save setting.&lt;br /&gt;
&lt;br /&gt;
=Test requirements=&lt;br /&gt;
[[File:warning.png]]Security note: For security reasons, always remove mower blades in your first tests!&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]Important: For your first wheel motor tests, jack your robot so that the tires can run freely without ground contact!&lt;br /&gt;
&lt;br /&gt;
Prerequise to follow this WIKI: '''BT Module connected on PCB1.3 (ESP32 is also possible) and Pfod or Arduremote running into Android phone'''&lt;br /&gt;
&lt;br /&gt;
=What is AzuritBer and Why=&lt;br /&gt;
&lt;br /&gt;
AzuritBer was build for DENNA,ROBOMOW and PARANELLO platform and use Odometry or IMU to control the state change. &lt;br /&gt;
It can only run on DUE and Odometry is mandatory (minimum 400 ticks per rev).But it's possible to adjust setting to work on other platform.&lt;br /&gt;
 &lt;br /&gt;
This version always use odometry into all movement (reverse,roll etc...) .The result is a more smooth movement without pause between all the différents state and the possibility to mow by lane for big area and faster mowing&lt;br /&gt;
&lt;br /&gt;
Here video of the random mowing behaviour on 2 platform:&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/Abt5pcWz2H0&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/T5mH4yMyWus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 Usefull option are Raspberry PI and RFID module.&lt;br /&gt;
&lt;br /&gt;
At the beginning of the dev i need many debug message to perfectly adjust the firmware, so i add a raspberry and record all the mowing duration in a Console.&lt;br /&gt;
Actually PI is optional, but help a lot to find trouble in the behaviour and to communicate (With your PC,or home automation)&lt;br /&gt;
Other option is the RFID tag reader&lt;br /&gt;
&lt;br /&gt;
=Possible Option=&lt;br /&gt;
== WIFI ESP32 Sender ==&lt;br /&gt;
&lt;br /&gt;
Full description of the new  sender is here:&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=WIFI_Perimeter_Sender(English)&lt;br /&gt;
&lt;br /&gt;
[[Datei:wifi-sender1.png|400px]]  [[Datei:wifi-sender2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
if you have only one mowing area , you can use sender from shop : sender start when mower leave station and stop when mower is back or after a 5 hours timeout.&lt;br /&gt;
&lt;br /&gt;
But if you want to use RFID and multiple mowing area, Firmware need to control sender over WIFI and you need the new sender based on ESP32&lt;br /&gt;
&lt;br /&gt;
== WIFI and MQTT ==&lt;br /&gt;
&lt;br /&gt;
Full description is here :&lt;br /&gt;
&lt;br /&gt;
 [[AzuritBer_ESP32_option_(English)]]&lt;br /&gt;
&lt;br /&gt;
== RFID READER ==&lt;br /&gt;
&lt;br /&gt;
Full description is here :&lt;br /&gt;
&lt;br /&gt;
 [[AzuritBer_RFID_option_(English)]]&lt;br /&gt;
&lt;br /&gt;
== Raspberry PI==&lt;br /&gt;
Full description is here : &lt;br /&gt;
 &lt;br /&gt;
 [[AzuritBer_Pi_Firmware_(English)]]&lt;br /&gt;
&lt;br /&gt;
You can connect a Raspberry Pi to arduino DUE USB native port&lt;br /&gt;
&lt;br /&gt;
Optional 5 inch tactile screen can easily control all the mower and show many info on last mowing run.&lt;br /&gt;
&lt;br /&gt;
It's possible to access to mower from your Wifi and set everything from your Sofa (Including firmware upgrade)&lt;br /&gt;
&lt;br /&gt;
Home Automation can control the mower using MQTT message and start mowing according your automation.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|150px]] Bluetooth or WIFI (need esp01 connected on PCB1.3) control using arduremote &lt;br /&gt;
&lt;br /&gt;
[[Datei:Tactile screen .jpg|400px]] Manual control using tactile screen&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_auto.png|400px]] WIFI control using VNC Viewer (https://www.realvnc.com/fr/connect/download/viewer/) from your sofa&lt;br /&gt;
&lt;br /&gt;
[[Datei:home_assistant.png|400px]] WIFI control using mqtt and compatible software (here Home Assistant https://www.home-assistant.io/)&lt;br /&gt;
&lt;br /&gt;
=Standard Setup=&lt;br /&gt;
&lt;br /&gt;
Hardware is standard one : the PCB1.3 or 1.4 and simple BT module HC05&lt;br /&gt;
&lt;br /&gt;
The mower can run in full automatic mode inside a perimeter wire.&lt;br /&gt;
&lt;br /&gt;
Software add the ByLane and Wire mowing .&lt;br /&gt;
&lt;br /&gt;
Start using timer at different location on the perimeter wire with 3 possible mowing behaviour: Mow wire,Random Mode or By Lane Mode&lt;br /&gt;
&lt;br /&gt;
You can Acces to mower using Arduremote or Pfod over Bluetooth.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Install Firmware in DUE==&lt;br /&gt;
&lt;br /&gt;
In Github repo the MASTER version is the GY-521 version and the latest one.&lt;br /&gt;
&lt;br /&gt;
According your IMU module select the correct firmware from Github (GY-88,GY-87 and MPU-9250 are possible) by switching the branch.&lt;br /&gt;
&lt;br /&gt;
Note that the MPU-9250 is not always working perfectly (Noise on DC Motor freeze I2C line),On some 9250 chips you can see randomly I2C RTC error .So it's better to use GY-88 or GY-521 (More noise tolerant ??)&lt;br /&gt;
&lt;br /&gt;
If you see some freeze : first test for 2 or 3 hours with mow motor deactivate to be sure the motor noise is not too important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Github_link.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
After unzip the github repository ,open the ardumower folder and the ardumower.ino. Before uploading the sketch ,verify that into mower.h the line :&lt;br /&gt;
&lt;br /&gt;
 *          #define Console Serial&lt;br /&gt;
 *          //#define Console SerialUSB&lt;br /&gt;
&lt;br /&gt;
are set like that : uncomment #define Console Serial to receive Console message inside your PC arduino ide console and comment #define Console SerialUSB&lt;br /&gt;
&lt;br /&gt;
Upload sketch inside DUE using programming port.&lt;br /&gt;
&lt;br /&gt;
==Arduremote or PFOD APP==&lt;br /&gt;
&lt;br /&gt;
To control mower with a phone or tablet you need to use a software named ARDUREMOTE.&lt;br /&gt;
&lt;br /&gt;
You can easily install it using the Play Store from your phone&lt;br /&gt;
&lt;br /&gt;
==Main==&lt;br /&gt;
&lt;br /&gt;
If BT or WIFI connection is OK you can see main menu from Arduremote :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_main.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Command==&lt;br /&gt;
&lt;br /&gt;
===Arduremote===&lt;br /&gt;
Command menu is the mostly used menu to start and stop the mowing cycle manually.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''OFF''' is used to stop immediately the mower.&lt;br /&gt;
&lt;br /&gt;
'''Start Now''' start the mowing cycle according pattern selection.&lt;br /&gt;
&lt;br /&gt;
'''Actual Status state and mowing''' are only readable value and change when mower run.&lt;br /&gt;
&lt;br /&gt;
'''Pattern is''' is used to select what you want the mower cycle do:&lt;br /&gt;
&lt;br /&gt;
Possible value are :&lt;br /&gt;
&lt;br /&gt;
LANE -&amp;gt; mower mow in parallel lane according lane setting&lt;br /&gt;
&lt;br /&gt;
RANDOM -&amp;gt; mower change to a new random direction each time the wire is detected or bumper is hit or motor sense is too high.&lt;br /&gt;
&lt;br /&gt;
WIRE -&amp;gt; mower track the wire and mow the border of the area until find the station.&lt;br /&gt;
&lt;br /&gt;
'''GO TO STATION''' is used to send mower to charging station without mowing.&lt;br /&gt;
&lt;br /&gt;
'''POWER OFF PCB''' Power off all the mower.&lt;br /&gt;
&lt;br /&gt;
'''USER SWITCH''' are optional setting.&lt;br /&gt;
&lt;br /&gt;
=== Button connected on P20 ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:P20_Button.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
The Button connected on P20 is an easy mower command and work like that:&lt;br /&gt;
&lt;br /&gt;
If mower is in '''OFF state''':&lt;br /&gt;
&lt;br /&gt;
Push less than 1 sec = start mow in LANE&lt;br /&gt;
&lt;br /&gt;
Push it 2 seconds = start mow in RANDOM&lt;br /&gt;
&lt;br /&gt;
Push it more then 3 Seconds = GO TO STATION&lt;br /&gt;
&lt;br /&gt;
If mower is '''running''':&lt;br /&gt;
&lt;br /&gt;
Push it to stop immediately&lt;br /&gt;
&lt;br /&gt;
==Console==&lt;br /&gt;
&lt;br /&gt;
When you use the soft Without Raspberry PI Option, if you don't understand some behaviour ,it's possible to use console.&lt;br /&gt;
&lt;br /&gt;
Console show all the message you need for understanding why mower stop or reverse or roll etc....&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_console.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
Here the setting page.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting 1.jpg|200px]]  [[Datei:ArduRemote Setting 3.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Only For the first start, or with a new RTC eeprom :If you have error, you need to go into arduremote COMMAND and click on OFF to stop beep and in main menu ERROR COUNTER reset all error,next into setting, do a ''save setting''.&lt;br /&gt;
&lt;br /&gt;
Power OFF the PCB , do not forget also to disconnected the USB PC cable to be sure all restart correctly.&lt;br /&gt;
&lt;br /&gt;
Restart with PC connected on Due programming Port and the Ide console speed is set at 115200 bps .&lt;br /&gt;
&lt;br /&gt;
ARDUINO IDE CONSOLE SHOW (it's example using MPU9250 imu) :&lt;br /&gt;
&lt;br /&gt;
[[Datei:normal_start.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to YES'''&lt;br /&gt;
&lt;br /&gt;
===ODOMETRY Setting===&lt;br /&gt;
3 Values are require and need to be set in this order:&lt;br /&gt;
&lt;br /&gt;
'''Value 1'''&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Odometry.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
You need to set the correct ticks per one full revolution and check the result&lt;br /&gt;
&lt;br /&gt;
Go To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_Test_odo.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Use 1 turn Wheel FWD&lt;br /&gt;
&lt;br /&gt;
The wheel need to accelerate ,roll , brake and stop after exactly one revolution.&lt;br /&gt;
&lt;br /&gt;
Sample video : https://youtu.be/BV7MgO6jfwA&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW:&lt;br /&gt;
&lt;br /&gt;
[[Datei:wheel_1_rev.png]]&lt;br /&gt;
&lt;br /&gt;
Repeat the test with 5 turn Wheel FWD to be sure.&lt;br /&gt;
&lt;br /&gt;
'''Value 2'''&lt;br /&gt;
 &lt;br /&gt;
Back To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
Now you need to set the correct Ticks per cm according the diameter of the wheel.&lt;br /&gt;
&lt;br /&gt;
you can find the value by this formula: Ticks per one full revolution / PI*diameter of the wheel &lt;br /&gt;
&lt;br /&gt;
In this example the DENNA platform (diameter wheel is near 23 cm) : 720/3.1415*23=9.9&lt;br /&gt;
&lt;br /&gt;
Back To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
Now use the ''3 meters Forward'' command to see if the value is OK.&lt;br /&gt;
&lt;br /&gt;
Here the video : https://youtu.be/v-yzRV4FEWA&lt;br /&gt;
&lt;br /&gt;
The mower need to run forward for 3 meters .Adjust the value again if result is not 3 meters +/-10 cm&lt;br /&gt;
&lt;br /&gt;
'''Value 3'''&lt;br /&gt;
 &lt;br /&gt;
Back To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
Now you need to set the correct Wheel Base in cm .&lt;br /&gt;
&lt;br /&gt;
It's the distance between the 2 wheels. It is use to compute correctly all the mower roll movement.&lt;br /&gt;
&lt;br /&gt;
Back To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
Now use the Rotate 180 Deg and Rotate 360 Deg to verify the setting.Adjust the value again if result is not at +/- 5 Deg.&lt;br /&gt;
&lt;br /&gt;
Here the sample video : https://youtu.be/9uUA2qCqlrA&lt;br /&gt;
&lt;br /&gt;
Mower need to rotate according your choice.Change the Wheel Base in cm until you find 180 and 360 degrees&lt;br /&gt;
&lt;br /&gt;
===MOTOR Setting===&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Motor''&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_Setting_motor_01.jpg|200px]]  [[Datei:Arduremote_Setting_motor_2.jpg|200px]]  [[Datei:Arduremote_Setting_motor_30.jpg|200px]]  [[Datei:Arduremote_Setting_motor_4.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
First set the POWER MAX to 100 to be sure the motor don't stop.&lt;br /&gt;
&lt;br /&gt;
Set PWM max speed for example to 150 (Put mower on the mowing area in flat location and with 4 meters free forward) click '''''Calib Ticks/Second'''''  to approach the correct RPM value from PWM one ,mower need to move  and compute and save the new RPM value.&lt;br /&gt;
&lt;br /&gt;
You can now repeat this step until find the correct value fo rPWM and RPM.&lt;br /&gt;
&lt;br /&gt;
Each time you change PWM max value you need too calibrate again the ticks per second (Not needed for RPM)&lt;br /&gt;
&lt;br /&gt;
RPM is use into manual mode and auto forward mode, so to check a new value simply go to ''Main Menu / Manual '' and drive forward.&lt;br /&gt;
&lt;br /&gt;
PWM is use into automatic mode on all small movement (Rev,Roll,accel etc..) and need to be enough for the mower to move smoothly.&lt;br /&gt;
&lt;br /&gt;
If the wheel don't roll smoothly in manual forward ,maybe you need to adjust the RPM_P RPM_I and RPM_D&lt;br /&gt;
&lt;br /&gt;
See PID Control : [https://wiki.ardumower.de/index.php?title=PID_control]&lt;br /&gt;
&lt;br /&gt;
Always start with RPM_D=0 and move the 2 sliders RPM_P and RPM_I. RPM_P increase the changing speed and RPM_I smooth the speed when near the RPM max speed.&lt;br /&gt;
&lt;br /&gt;
You need to find a correct Manual / forward drive before continue with the ''Power max'' setting.&lt;br /&gt;
&lt;br /&gt;
'''Remember that at 80% of the power max the mower react like if a bumper is pressed.'''&lt;br /&gt;
&lt;br /&gt;
When PWM is OK you can adjust the power max value  ,simply deactivate bumper and In ''Manual / Forward'' stop the mower with your foot, normally the mower stop before the wheel slip. State change to OFF and into console you can see the according message.&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW with max power=12:&lt;br /&gt;
&lt;br /&gt;
[[Datei:motor_power.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do not forget to reactivate the Bumper.&lt;br /&gt;
&lt;br /&gt;
''Slope Adjust Speed'' Set to YES if you have slope on your mowing area it's help to have same Motor speed in Uphill and Downhill.&lt;br /&gt;
&lt;br /&gt;
''Actual Slope Coeff'' if Slope Adjust Speed is YES this real time value can change from 0.8 to 1.2 according Downhill and Uphill (Normaly near 1.00 on flat location)&lt;br /&gt;
&lt;br /&gt;
''Power ignore time'' On motor start the sense can have a peak. During this delay the sense is not read.&lt;br /&gt;
&lt;br /&gt;
''Roll Degrees max'' Into random mowing and after the mower find the wire and reverse it roll randomly with this maximum value.&lt;br /&gt;
&lt;br /&gt;
''Roll Degrees min'' Into random mowing and after the mower find the wire and reverse it roll randomly with this minimum value.&lt;br /&gt;
&lt;br /&gt;
''Rev Distance / Perimeter'' is the distance that mower drive after cross the perimeter wire to return inside mowing area (Always &amp;gt; Stop Distance / Perimeter).&lt;br /&gt;
&lt;br /&gt;
''Stop Distance / Perimeter'' is the distance that mower drive after cross the perimeter wire before stop.&lt;br /&gt;
&lt;br /&gt;
''MotorSenseScaleLeft'' and right are here to help to have a real Power, but the main is that at 80% of Power max : mower stop and reverse.&lt;br /&gt;
&lt;br /&gt;
''Swap Left Direction'' and right need to stay to NO and it's better to directly invert the motor wire + and -&lt;br /&gt;
&lt;br /&gt;
''PWM Right Forward Offset'' if the right and left motor don't rotate exactly at the same speed , You can use this setting to adjust and repeat the test ODO 1 rev forward until the 2 wheel stop at the same time.&lt;br /&gt;
&lt;br /&gt;
''PWM Right Reverse Offset'' Same setting but when mower reverse.&lt;br /&gt;
&lt;br /&gt;
'''''Speed ODO Minimum''''' Important setting : it's the minimum PWM that the firmware send to motor to have a movement.If too low the mower make pause between movement, if too high the movement are not perfectly smooth.&lt;br /&gt;
&lt;br /&gt;
''Speed ODO Maximum'' help on very small movement (less the 1/4 rev wheel)&lt;br /&gt;
&lt;br /&gt;
'''''Calib Ticks/Second''''' You need to do this once. The mower run forward for 1 or 2 wheel rev and compute the ticks / second. It is used on each movement to know the duration of the state according to the distance you want to drive.&lt;br /&gt;
&lt;br /&gt;
===MOW setting ===&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to NO or the blade never run and BE CARREFULL THE BLADE RUN'''&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Mow''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_mow_1.jpg|200px]]  [[Datei:ArduRemote_Setting_mow_2.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Mow motor can run at different speed according the high of grass.It's directly link to motor sense.&lt;br /&gt;
So you need to correctly set the max power of mow motor to have everything working correctly.&lt;br /&gt;
&lt;br /&gt;
Remember that at 80% of max power, mower start to mow in spiral mode, and at 100% of max power during 1 sec the motor is stop for more than 1 minute and restart automatically after, at a very high power the error hardware driver motor can also occur and you need a full power off to restart the mow motor &lt;br /&gt;
&lt;br /&gt;
To adjust everything try to find a location with medium high grass and low grass:&lt;br /&gt;
&lt;br /&gt;
Set the Power max to a small value (15 Watts for example)&lt;br /&gt;
 &lt;br /&gt;
Set the PWM Max speed to 255&lt;br /&gt;
&lt;br /&gt;
Set the PWM Min speed to 150&lt;br /&gt;
&lt;br /&gt;
Start to mow in auto mode in the low grass (The mow motor need to start at PWM=255 and reduce slowly during the next 10 seconds),now send the mower in high grass ,normally motor speed increase and spiral mowing start.&lt;br /&gt;
&lt;br /&gt;
If the spiral mowing start on low grass increase the Power max setting.&lt;br /&gt;
&lt;br /&gt;
Like for drive motor you can use calibrate mowsense to have a realistic sense,but the main is that mow spiral start on high grass and mow motor stop on overload in VERY HIGH GRASS.&lt;br /&gt;
&lt;br /&gt;
PWM coeff and actual PWM are actual (read only) value of the motor modulation.&lt;br /&gt;
&lt;br /&gt;
Mow Pattern Max Duration is used to change from Random mowing mode to Bylane mowing mode and avoid track on the mowing area.(The mower switch the 2 mode every 18 minutes in this case)&lt;br /&gt;
&lt;br /&gt;
===STATION setting===&lt;br /&gt;
&lt;br /&gt;
[[File:ArduRemote_setting_station.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''Station is blocking one , so the mower need to reverse to leave it.'''&lt;br /&gt;
&lt;br /&gt;
In schedule mode or start from station, mower use (IN THIS ORDER) reverse distance, Roll Angle and accel Distance after Roll to leave the station and start to find again perimeter wire to locate the mowing entry location according the timer setting, or track 1 meter if manual start from station.&lt;br /&gt;
&lt;br /&gt;
On Go Home mode mower track the wire and find the station (A voltage is detected on charging pin, or Bumper is pressed) it stop immediately and slowly go forward for the Station check Distance to be sure the contact is OK.&lt;br /&gt;
&lt;br /&gt;
If you use Right Sonar, the docking speed is reduce according to % of MaxSpeed each time something is detected while tracking the wire.&lt;br /&gt;
&lt;br /&gt;
On full schedule mode it's better to activate the Reboot after charging, by this way all variable are restore and everything work for week or month without any intervention.&lt;br /&gt;
&lt;br /&gt;
===PERIMETER setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Perimeter_1.jpg|200px]] [[Datei:ArduRemote_Setting_Perimeter_2.jpg|200px]] [[Datei:ArduRemote_Setting_Perimeter_03.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Main value is Mag and is negative when mower is inside area (near -2000 if mower inside and upper the wire).  In this case(139) the mower is outside at 3 meters of the wire.&lt;br /&gt;
&lt;br /&gt;
'''Mini Smag:'''&lt;br /&gt;
&lt;br /&gt;
Under this value the firmware estimate that the sender is OFF, so it's error.  To find the correct value simply put the mower in the area and unplug the sender (Read the Smag and add 20 or 30 , use slider to adjust MiniSmag)&lt;br /&gt;
&lt;br /&gt;
Check by start mowing and unplug the sender: Mower need to stop rapidly and go to error.&lt;br /&gt;
&lt;br /&gt;
'''Timeout(s) if outside :'''&lt;br /&gt;
&lt;br /&gt;
'''Big AREA Smag Center'''&lt;br /&gt;
&lt;br /&gt;
Help mower to not generate In/OUT transition in the middle of big area.  To find correct value ,simply put the mower in the middle area as far as possible from the wire and use Smag value.&lt;br /&gt;
&lt;br /&gt;
'''Tracking Max Speed PWM''' &lt;br /&gt;
&lt;br /&gt;
it's the tracking speed (lower value help to have a smooth tracking on curve)&lt;br /&gt;
&lt;br /&gt;
'''Circle Arc Distance...'''&lt;br /&gt;
&lt;br /&gt;
If mower find obstacle while tracking : it reverse,Roll 45 Deg and make a circle to find again the wire.&lt;br /&gt;
&lt;br /&gt;
'''Perimeter MAG MAX VALUE'''&lt;br /&gt;
&lt;br /&gt;
Put mower directly upper the wire and use here the maximum Mag value.&lt;br /&gt;
&lt;br /&gt;
'''Transition Timeout'''&lt;br /&gt;
&lt;br /&gt;
When tracking,Mower need to change from inside to outside using the PID, but if it fail after this transition time one wheel is stop to find again the wire.&lt;br /&gt;
If too important the mower can  fail tracking on 90 deg angle .&lt;br /&gt;
&lt;br /&gt;
'''Track Error Timeout'''&lt;br /&gt;
&lt;br /&gt;
If mower can't find In/OUt transition during this delay it's error.&lt;br /&gt;
&lt;br /&gt;
'''Track PID'''&lt;br /&gt;
&lt;br /&gt;
The Pid is use to smooth the tracking and need to be adjust according your platform (Distance between wheel and receiver coil,motor react speed etc..)&lt;br /&gt;
&lt;br /&gt;
'''Coil Polarity'''&lt;br /&gt;
&lt;br /&gt;
Do not change ,It's better to invert the wire at sender output.&lt;br /&gt;
&lt;br /&gt;
'''Read the 2 coils'''&lt;br /&gt;
&lt;br /&gt;
Only for dev test : Do not change&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Block inner wheel'''&lt;br /&gt;
&lt;br /&gt;
If YES the 2 wheels always roll forward , if NO one wheel can reverse to find again wire on big angle for example.&lt;br /&gt;
&lt;br /&gt;
'''Reduce Speed Near Wire'''&lt;br /&gt;
&lt;br /&gt;
If YES mower reduce the forward speed when near perimeter&lt;br /&gt;
&lt;br /&gt;
'''Actual Speed Coeff'''&lt;br /&gt;
&lt;br /&gt;
It's the real time value of speed ratio when mower approach the wire&lt;br /&gt;
&lt;br /&gt;
===IMU Wiring and Setting===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====MPU-9250 IMU WIRING TO PCB1.3====&lt;br /&gt;
'''MPU-9250 or 55 is not really stable''' (can work many hours or fail after some minutes without any particular reason) ,so it's better to use GY-88 / GY-521 + GY-273 more stable module&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:MPU-9250.jpg|400px]] &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Optional : It's possible to shunt the onboard DC/DC converter (NEVER PUT 5V on VCC with this option)&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-20.jpg|400px]] &lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
If you have some I2C error it's also possible to connect IMU on other location like I2C5 and JC5 to 3.3V to have a different pullup resistor.&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-40.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-88 IMU WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  G_ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-88.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-521 ACCEL/GYRO WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
 IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-521.jpg|400px]] [[Datei:GY-521-1.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
GY-521 don't have compass ,so you need to deactivate Compass into arduremote/setting/IMU or add a GY-273 module&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
====GY-273 COMPASS WIRING TO PCB1.3====&lt;br /&gt;
On the net you can find different module with fake chips like this one (Note HMC5883L on PCB but it's a QMC5883L),so you need to set the correct compass name into mower.cpp if it don't work with standard setting.&lt;br /&gt;
&lt;br /&gt;
 IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Gy-273-1.jpg|400px]] [[Datei:Gy-273-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C4 port and do not forget JC4 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:Gy-273-3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
GY-273 is a compass that you use with GY-521 you need to activate Compass into arduremote/setting/IMU.'''And do not forget to calibrate it'''.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-87 WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC_IN &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-87.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On GY-87 you can't change I2C adress and it's the same as RTC so you can't connect it on normal I2C port.&lt;br /&gt;
'''Connect module on I2C1 I2C_DUE'''&lt;br /&gt;
&lt;br /&gt;
[[Datei:GY-87-1.jpg|400px]] [[Datei:GY-87-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Select the correct firmware into Github&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===IMU Main Setting===&lt;br /&gt;
&lt;br /&gt;
MPU9255/9255-&amp;gt; [[Datei:ArduRemote_Setting_Imu_1.jpg|200px]]  [[Datei:ArduRemote_Setting_Imu_2.jpg|200px]]  or GY88/GY87-&amp;gt;[[Datei:ArduRemote_GY88.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
More info on IMU ,But no sensor fusion and not the same calibration process : [[Azurit_Firmware_(English)#IMU]]&lt;br /&gt;
&lt;br /&gt;
Here the video of IMU running to keep the heading : https://youtu.be/gxCrIb5geJM&lt;br /&gt;
&lt;br /&gt;
Imu (except GY-521) is composed by 2 parts : Compass and Gyro/Accel.&lt;br /&gt;
&lt;br /&gt;
Compass use magnetic earth field and is disturb by all motor and electronics in the mower, so it's very difficult to have correct value (for example a change of 10 deg is possible if you move the mower for only 1 deg). But it's reliable (If indicate 25 Deg and roll for 360 deg or wait 10 minutes it's always 25 Deg)&lt;br /&gt;
&lt;br /&gt;
Gyro/Accel is very accurate (+/- 1 or 2 deg) but can drift over time, (If indicate 25Deg and you wait 5 minute it can be 30Deg, but when you rotate slowly the mower you can see that everything is OK from 0 to 179 and from -179 to 0 Deg)&lt;br /&gt;
&lt;br /&gt;
The firmware can use or not the compass (Simply test and use the best according the location of the IMU in your platform)&lt;br /&gt;
&lt;br /&gt;
If GY-88/GY-87/GY-521 IMU are used ,you need to calibrate GYRO/ACCEL on the initial installation: Simply Go To ''Setting /  IMU'', press the ACCEL/GYRO initial calibration and wait 1 or 2 minutes without moving the mower (Arduremote lost connection during the process and it's normal if arduino ide is connected you can see the process in the console).&lt;br /&gt;
&lt;br /&gt;
For MPU/9255 or 9250 this process is automatically done on each start of the mower,so you can't see the button in arduremote .&lt;br /&gt;
&lt;br /&gt;
'''IMU Use'''&lt;br /&gt;
&lt;br /&gt;
Use or not the IMU (By lane require IMU to work correctly).&lt;br /&gt;
&lt;br /&gt;
'''Compass Use'''&lt;br /&gt;
if you use  GY-521 alone, you need to deactivate compass.Or if your IMU is locate near electronics or motor you can't calibrate it correctly ,so it's better to deactivate compass : Bylane mowing can result on drifting in parallel lane without compass but not always an issue in normal mowing condition.&lt;br /&gt;
&lt;br /&gt;
'''Stop Mow Motor During Calib'''&lt;br /&gt;
&lt;br /&gt;
It's possible to stop the mow motor to avoid compass noise but not really useful.&lt;br /&gt;
&lt;br /&gt;
'''P I D '''&lt;br /&gt;
&lt;br /&gt;
Like for the motor the PID need to be adjust if the mower don't drive smoothly in straight lane, Try to change the mower heading with your foot and normally the mower retrieve rapidly the precedent heading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calibration Max Duration '''&lt;br /&gt;
&lt;br /&gt;
When mower stop to adjust the Compass value to GYRO/ACCEL , the drift is check,If the drift is always present ,Mower continue to mow after this delay,but only in random mode.&lt;br /&gt;
&lt;br /&gt;
'''Delay between 2 calib'''&lt;br /&gt;
&lt;br /&gt;
Each time this delay is trig ,Mower stop , roll to find the compass actual heading and stop again to check if the drift is small,If it's OK heading is automatically adjust to continue to mow in always the same direction from north for example.If compass is not activate ,only drift is check.&lt;br /&gt;
&lt;br /&gt;
'''Drift Maxi in Deg per Second''&lt;br /&gt;
&lt;br /&gt;
When mower stop to calibrate ,This value is used to restart or wait again until drift stop.&lt;br /&gt;
&lt;br /&gt;
'''Speed to find ComYaw'''&lt;br /&gt;
&lt;br /&gt;
At the begin of calibration, mower roll and read compass,but it's possible to reduce Roll speed to find easily a new value.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====SETTING Without Compass====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to YES'''&lt;br /&gt;
&lt;br /&gt;
Set Compass Use to NO and leave all setting to default.In this case, Heading 0 is the start position of the mower&lt;br /&gt;
&lt;br /&gt;
To check if it's OK:&lt;br /&gt;
&lt;br /&gt;
Go To : ''Main Menu / Test IMU''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_test_imu.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Maybe you need to reduce the motor PWM max speed if the test fail sometime (The mower need to roll slowly)&lt;br /&gt;
&lt;br /&gt;
Start to mow in random mode and change the mower heading with your foot (If IMU is OK The mower need to always keep the heading)&lt;br /&gt;
&lt;br /&gt;
Without Compass you can see that the Bylane mowing is not perfectly parallel over time&lt;br /&gt;
&lt;br /&gt;
Only the GYRO Yaw is updated in arduremote setting.&lt;br /&gt;
&lt;br /&gt;
On Normal mowing mode you can see the mower stop every 'Delay between 2 calib' seconds and wait until the GYRO/ACCEL drift is inferior to 'Drift Maxi in Deg per second' value.If this process fail, mower continue to mow in random mode.&lt;br /&gt;
&lt;br /&gt;
====SETTING With Compass====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Set Compass Use to YES and leave all setting to default.  &lt;br /&gt;
&lt;br /&gt;
You need To DO the Compass calibration each time you change IMU location in the mower or add metal/Magnet near IMU&lt;br /&gt;
&lt;br /&gt;
Start and stop the compass calibration  : click one time to start and move the entire mower around all axes until no new data coming in the Console click again to stop and save the new calibration data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:compass_calib.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on the setting Imu arduremote page you can see the GYRO Yaw and Compass YAW value according to magnetic earth field.It's normal to don't have the 2 same values after 10 or 30 seconds or after roll the mower.And you can discover the main difference between GYRO/ACCEL and COMPASS.&lt;br /&gt;
&lt;br /&gt;
Heading 0 is normally North if no metal or magnet near compass.&lt;br /&gt;
&lt;br /&gt;
On Normal mowing mode you can see the mower stop every 'Delay between 2 calib' seconds , Roll until the compass find the lane heading and wait until the GYRO/ACCEL drift is inferior to 'Drift Maxi in Deg per second' value.If this process fail, mower continue to mow in random mode.&lt;br /&gt;
&lt;br /&gt;
===TIMER setting===&lt;br /&gt;
[[Datei:ArduRemote_Timer_0.jpg|200px]]  [[Datei:ArduRemote_Timer_1.jpg|200px]]  [[Datei:ArduRemote_Timer_2.jpg|200px]]  [[Datei:ArduRemote_Timer_3.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
The Timer is used to mow in full automatic mode for month or week.Timer can be trigger only if the mower is not into charge state.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]When you use the Go To Station from Arduremote the mower return to charging station and stop to check the Timer for the next 1 or 2 hours.&lt;br /&gt;
To do test and reuse timer ,you need to send OFF from arduremote when mower is in the station and wait 1 minute to see the mower start again from station using timer setting.&lt;br /&gt;
&lt;br /&gt;
On the first page the Use NO at the top deactivate all timer and leave mower in station.  Set it to yes and set up one of the 5 timer to make it work.&lt;br /&gt;
&lt;br /&gt;
Always Avoid that one timer stop later than other start or the opposite,or you can see strange behaviour.&lt;br /&gt;
&lt;br /&gt;
Start dist/Station is the distance the mower track the perimeter wire before start to mow.&lt;br /&gt;
&lt;br /&gt;
Use Beacon is here to use with RFID fast start process.&lt;br /&gt;
&lt;br /&gt;
Start Pattern can be Wire(Mower start from station ,mow the entire wire and back in station for the next hour) , LANE (it's parallel lane mowing mode) or Random.&lt;br /&gt;
&lt;br /&gt;
Start Area is used to select the correct mowing area, the Start dist/Station begin at the entry point of the new area.(ONLY POSSIBLE With RFID Option)&lt;br /&gt;
&lt;br /&gt;
Start Lane NR can be 1 2 or 3 like you define in the By Lane setting.&lt;br /&gt;
&lt;br /&gt;
Start Roll Dir is the roll direction Left or Right when the By Lane is in used.&lt;br /&gt;
&lt;br /&gt;
Start Max Lane Length is the distance max that mower drive on By Lane Mowing mode.&lt;br /&gt;
&lt;br /&gt;
Set to current time help to fill the start and stop sliders.&lt;br /&gt;
&lt;br /&gt;
===BYLANE setting===&lt;br /&gt;
[[Datei:mow_lane_result.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
To have acces to all setting the Dev mode need to be activate:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DevToYes.png|210px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Byllane_1.jpg|210px]]  [[Datei:ArduRemote_Setting_Byllane_2.jpg|210px]]  [[Datei:ArduRemote_Setting_Byllane_3.jpg|210px|]]&lt;br /&gt;
&lt;br /&gt;
Using IMU and ODOMETRY  mower can mow in parallel lane faster than random mode, but you need to correctly setup IMU to have good and fast result.&lt;br /&gt;
&lt;br /&gt;
3 mains Lane are set ,Factory are 45, 90 and 135 degrees (Avoid value near 0).&lt;br /&gt;
For each Lane 2 opposites reverse heading are possible according the ROLL dir at the end of the initial lane.&lt;br /&gt;
So you need to adjust 9 angles, 3 for each lane.&lt;br /&gt;
&lt;br /&gt;
'''Change Lane in use''' Click to use the next lane&lt;br /&gt;
&lt;br /&gt;
'''Change next Roll Direction''' Click and mower change the next roll dir when reach the perimetr wire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''THIS Menu is Dynamic so Setting are made in live mode''' : Start to mow and see the menu changing (from Fixed Yaw to Yaw opposite right or left) each time mower stop and reverse,For first test : leave the Fixed Yaw to factory and adjust the left and right Yaw Opposite according the mower real time behaviour.&lt;br /&gt;
&lt;br /&gt;
For example if for the lane 1 you set a fixed yaw to 45 deg, you can set Yaw opposite 1 Roll Left to -135 or -134 . In this case the mower mow perfect parallel lane (reverse heading is exactly the opposite of fixed one)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bylane 2.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other example if for the lane 1 you set a fixed yaw to 45 deg, you can set Yaw opposite 1 Roll Right to -120 , the mower mow in a kind of Zig Zag and go fast from one side of area to the other.&lt;br /&gt;
&lt;br /&gt;
When mower is lock by a curve in wire perimeter (Red Circle in Picture) the Lane NR is automatically change and the IMU calibration start again to adjust Compass and GYRO, by this way it's possible to always mow on same heading in the garden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bylane 1.png|640px]]&lt;br /&gt;
&lt;br /&gt;
'''Dist Between lane''' It's the distance between 2 parallel lane according the weight of your mower.&lt;br /&gt;
&lt;br /&gt;
'''Lane Max length''' It help to reduce the error on IMU heading (Set length &amp;lt; 10 meters if you really want that mower mow perfectly parallel or set to max with a small difference in the 2 opposite YAW if you want to have a fast mowing mode,in this case it's not perfectly parallel but mow really faster)&lt;br /&gt;
&lt;br /&gt;
===BATTERY setting===&lt;br /&gt;
[[Datei:ArduRemote_Setting_Battery_1.jpg|200px]]  [[Datei:ArduRemote_Setting_Battery_2.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Use the Monitor option to auto stop the PCB and protect Battery.'''BETTER to leave it always YES'''.     And always YES if there is no BMS into your battery pack.&lt;br /&gt;
&lt;br /&gt;
'''Charge Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from charging station voltage.&lt;br /&gt;
&lt;br /&gt;
'''Battery Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from battery voltage.&lt;br /&gt;
&lt;br /&gt;
'''Sense Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from sense charging.&lt;br /&gt;
&lt;br /&gt;
'''Go Home if Volt below''' &lt;br /&gt;
&lt;br /&gt;
In mowing mode the mower automatically return to station when battery voltage is below this value.&lt;br /&gt;
&lt;br /&gt;
'''Switch off after minutes''' &lt;br /&gt;
&lt;br /&gt;
When mower is OFF or in ERROR state, PCB automatically shutdown after this delay ('''REQUIRE JP8 in AUTO MODE''')&lt;br /&gt;
&lt;br /&gt;
'''Switch off if Volt below''' &lt;br /&gt;
&lt;br /&gt;
PCB automatically shutdown if battery voltage is too low  ('''REQUIRE JP8 in AUTO MODE''')&lt;br /&gt;
&lt;br /&gt;
'''Start charge if Voltage below''' &lt;br /&gt;
&lt;br /&gt;
When mower reach the charging station, the charging start and you can see the 2 values (Charge and sense just upper this line).Be careful when testing ,if the battery is not really empty the charge don't start each time, it's a electronic result (you can see the battery voltage increase very fast), but in normal working mode, all work perfectly.&lt;br /&gt;
&lt;br /&gt;
'''Stop charge if Sense below''' &lt;br /&gt;
&lt;br /&gt;
You can set here the minimum Sense that the battery drain at the end of the charging process.If too low the charging process is automatically stop after 5 hours and a message is send on the Console.&lt;br /&gt;
&lt;br /&gt;
===SONAR setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Sonar.jpg|200px]]  [[Datei:JSN_SR04T.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Firmware is tested for this type of Sonar : JSN-SR04T &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sonar can be used like a bumper : When trigge, mower speed is reduce and mower stop after the detection distance without hitting obstacle. &lt;br /&gt;
&lt;br /&gt;
Or Sonar can simply reduce motor speed for the next 3 seconds.&lt;br /&gt;
&lt;br /&gt;
Into mower.cpp you can simply change this line to true to change behaviour&lt;br /&gt;
&lt;br /&gt;
  sonarLikeBumper            =false;      //ultrasonic reduce speed vs bumper like&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sonar brake below'''&lt;br /&gt;
&lt;br /&gt;
Only this distance is scan by the sonar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sonar To Front Dist'''&lt;br /&gt;
&lt;br /&gt;
Distance between front of mower and sonar location, useful to never touch obstacle.&lt;br /&gt;
&lt;br /&gt;
===RAIN TEMP setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Rain.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''Rain Use''' &lt;br /&gt;
&lt;br /&gt;
set to YES if you want that Mower go to station when rain sensor is trig&lt;br /&gt;
&lt;br /&gt;
'''DHT22Use''' &lt;br /&gt;
&lt;br /&gt;
set to YES if you have connected a DHT22 sensor on PCB1.3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Maximum Temperature''' &lt;br /&gt;
&lt;br /&gt;
When DHT22 temp is upper this value the mower goes into ERROR and the PCB is totally power OFF.&lt;br /&gt;
To be tested ,maybe bug here.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OLED Screen setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:OLED_PCB1.3_wiring.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In AZURITBER Ver &amp;gt;= 1.6 It's possible to connect small OLED screen on the PCB1.3 I2C1 port&lt;br /&gt;
&lt;br /&gt;
Resolution is fixed to 128 * 64 pixel and can use 1.3 or 0.96 pouce  screen&lt;br /&gt;
&lt;br /&gt;
The oled need to be I2C U8G2 compatible, so SSD1306 or SH1106 I2C model :&lt;br /&gt;
&lt;br /&gt;
https://www.marotronics.de/Ecran-OLED-096-bleu-jaune-I2C-SPI-128x64-SSD1106-pour-Arduino-Raspberry-Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You need to Enable it into mower.h line 128&lt;br /&gt;
&lt;br /&gt;
 #define Enable_Screen true&lt;br /&gt;
 *      //#define Enable_Screen false&lt;br /&gt;
&lt;br /&gt;
And select the correct model into screen.cpp . Factory setting are for 1.3 Pouce model from Ebay.&lt;br /&gt;
 &lt;br /&gt;
 U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);&lt;br /&gt;
 U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);&lt;br /&gt;
&lt;br /&gt;
According the status of the mower Oled show different screen :&lt;br /&gt;
&lt;br /&gt;
In OFF mode :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_OFF.png|200px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While mower running :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_mow.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When Charging :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_charge.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When into station waiting for next timer start :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_station.png|200px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Level 2 Raspberry Pi =&lt;br /&gt;
&lt;br /&gt;
It's here : [[AzuritBer_Pi_Firmware_(English)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Level 3 Raspberry Pi + RFID =&lt;br /&gt;
&lt;br /&gt;
It's here : [[AzuritBer_Pi_Firmware_RFID(English)]]&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_Firmware_(English)&amp;diff=10330</id>
		<title>AzuritBer Firmware (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_Firmware_(English)&amp;diff=10330"/>
				<updated>2022-02-05T10:20:14Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Raspberry PI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=GITHUB Location=&lt;br /&gt;
&lt;br /&gt;
It's here:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Boilevin/AzuritBer GITHUB REPOSITORY]&lt;br /&gt;
&lt;br /&gt;
Process is the same as AZURIT :&lt;br /&gt;
&lt;br /&gt;
You need to upload all file to your PC and open ardumower.ino into arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Upload the code inside your DUE :&lt;br /&gt;
&lt;br /&gt;
On first start it's possible that EEPROM is empty (PCB Beep and start with ERROR) so you need to reset error counter and save setting.&lt;br /&gt;
&lt;br /&gt;
=Test requirements=&lt;br /&gt;
[[File:warning.png]]Security note: For security reasons, always remove mower blades in your first tests!&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]Important: For your first wheel motor tests, jack your robot so that the tires can run freely without ground contact!&lt;br /&gt;
&lt;br /&gt;
Prerequise to follow this WIKI: '''BT Module connected on PCB1.3 (ESP32 is also possible) and Pfod or Arduremote running into Android phone'''&lt;br /&gt;
&lt;br /&gt;
=What is AzuritBer and Why=&lt;br /&gt;
&lt;br /&gt;
AzuritBer was build for DENNA,ROBOMOW and PARANELLO platform and use Odometry or IMU to control the state change. &lt;br /&gt;
It can only run on DUE and Odometry is mandatory (minimum 400 ticks per rev).But it's possible to adjust setting to work on other platform.&lt;br /&gt;
 &lt;br /&gt;
This version always use odometry into all movement (reverse,roll etc...) .The result is a more smooth movement without pause between all the différents state and the possibility to mow by lane for big area and faster mowing&lt;br /&gt;
&lt;br /&gt;
Here video of the random mowing behaviour on 2 platform:&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/Abt5pcWz2H0&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/T5mH4yMyWus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 Usefull option are Raspberry PI and RFID module.&lt;br /&gt;
&lt;br /&gt;
At the beginning of the dev i need many debug message to perfectly adjust the firmware, so i add a raspberry and record all the mowing duration in a Console.&lt;br /&gt;
Actually PI is optional, but help a lot to find trouble in the behaviour and to communicate (With your PC,or home automation)&lt;br /&gt;
Other option is the RFID tag reader&lt;br /&gt;
&lt;br /&gt;
=Possible Option=&lt;br /&gt;
== WIFI ESP32 Sender ==&lt;br /&gt;
&lt;br /&gt;
Full description of the new  sender is here:&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=WIFI_Perimeter_Sender(English)&lt;br /&gt;
&lt;br /&gt;
[[Datei:wifi-sender1.png|400px]]  [[Datei:wifi-sender2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
if you have only one mowing area , you can use sender from shop : sender start when mower leave station and stop when mower is back or after a 5 hours timeout.&lt;br /&gt;
&lt;br /&gt;
But if you want to use RFID and multiple mowing area, Firmware need to control sender over WIFI and you need the new sender based on ESP32&lt;br /&gt;
&lt;br /&gt;
== WIFI and MQTT ==&lt;br /&gt;
&lt;br /&gt;
Full description is here :&lt;br /&gt;
&lt;br /&gt;
 [[AzuritBer_ESP32_option_(English)]]&lt;br /&gt;
&lt;br /&gt;
== RFID READER ==&lt;br /&gt;
&lt;br /&gt;
Full description is here :&lt;br /&gt;
&lt;br /&gt;
 [[AzuritBer_RFID_option_(English)]]&lt;br /&gt;
&lt;br /&gt;
== Raspberry PI==&lt;br /&gt;
You can connect a Raspberry Pi to arduino DUE USB native port&lt;br /&gt;
&lt;br /&gt;
Optional 5 inch tactile screen can easily control all the mower and show many info on last mowing run.&lt;br /&gt;
&lt;br /&gt;
It's possible to access to mower from your Wifi and set everything from your Sofa (Including firmware upgrade)&lt;br /&gt;
&lt;br /&gt;
Home Automation can control the mower using MQTT message and start mowing according your automation.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|150px]] Bluetooth or WIFI (need esp01 connected on PCB1.3) control using arduremote &lt;br /&gt;
&lt;br /&gt;
[[Datei:Tactile screen .jpg|400px]] Manual control using tactile screen&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_auto.png|400px]] WIFI control using VNC Viewer (https://www.realvnc.com/fr/connect/download/viewer/) from your sofa&lt;br /&gt;
&lt;br /&gt;
[[Datei:home_assistant.png|400px]] WIFI control using mqtt and compatible software (here Home Assistant https://www.home-assistant.io/)&lt;br /&gt;
&lt;br /&gt;
=Standard Setup=&lt;br /&gt;
&lt;br /&gt;
Hardware is standard one : the PCB1.3 or 1.4 and simple BT module HC05&lt;br /&gt;
&lt;br /&gt;
The mower can run in full automatic mode inside a perimeter wire.&lt;br /&gt;
&lt;br /&gt;
Software add the ByLane and Wire mowing .&lt;br /&gt;
&lt;br /&gt;
Start using timer at different location on the perimeter wire with 3 possible mowing behaviour: Mow wire,Random Mode or By Lane Mode&lt;br /&gt;
&lt;br /&gt;
You can Acces to mower using Arduremote or Pfod over Bluetooth.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Install Firmware in DUE==&lt;br /&gt;
&lt;br /&gt;
In Github repo the MASTER version is the GY-521 version and the latest one.&lt;br /&gt;
&lt;br /&gt;
According your IMU module select the correct firmware from Github (GY-88,GY-87 and MPU-9250 are possible) by switching the branch.&lt;br /&gt;
&lt;br /&gt;
Note that the MPU-9250 is not always working perfectly (Noise on DC Motor freeze I2C line),On some 9250 chips you can see randomly I2C RTC error .So it's better to use GY-88 or GY-521 (More noise tolerant ??)&lt;br /&gt;
&lt;br /&gt;
If you see some freeze : first test for 2 or 3 hours with mow motor deactivate to be sure the motor noise is not too important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Github_link.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
After unzip the github repository ,open the ardumower folder and the ardumower.ino. Before uploading the sketch ,verify that into mower.h the line :&lt;br /&gt;
&lt;br /&gt;
 *          #define Console Serial&lt;br /&gt;
 *          //#define Console SerialUSB&lt;br /&gt;
&lt;br /&gt;
are set like that : uncomment #define Console Serial to receive Console message inside your PC arduino ide console and comment #define Console SerialUSB&lt;br /&gt;
&lt;br /&gt;
Upload sketch inside DUE using programming port.&lt;br /&gt;
&lt;br /&gt;
==Arduremote or PFOD APP==&lt;br /&gt;
&lt;br /&gt;
To control mower with a phone or tablet you need to use a software named ARDUREMOTE.&lt;br /&gt;
&lt;br /&gt;
You can easily install it using the Play Store from your phone&lt;br /&gt;
&lt;br /&gt;
==Main==&lt;br /&gt;
&lt;br /&gt;
If BT or WIFI connection is OK you can see main menu from Arduremote :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_main.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Command==&lt;br /&gt;
&lt;br /&gt;
===Arduremote===&lt;br /&gt;
Command menu is the mostly used menu to start and stop the mowing cycle manually.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''OFF''' is used to stop immediately the mower.&lt;br /&gt;
&lt;br /&gt;
'''Start Now''' start the mowing cycle according pattern selection.&lt;br /&gt;
&lt;br /&gt;
'''Actual Status state and mowing''' are only readable value and change when mower run.&lt;br /&gt;
&lt;br /&gt;
'''Pattern is''' is used to select what you want the mower cycle do:&lt;br /&gt;
&lt;br /&gt;
Possible value are :&lt;br /&gt;
&lt;br /&gt;
LANE -&amp;gt; mower mow in parallel lane according lane setting&lt;br /&gt;
&lt;br /&gt;
RANDOM -&amp;gt; mower change to a new random direction each time the wire is detected or bumper is hit or motor sense is too high.&lt;br /&gt;
&lt;br /&gt;
WIRE -&amp;gt; mower track the wire and mow the border of the area until find the station.&lt;br /&gt;
&lt;br /&gt;
'''GO TO STATION''' is used to send mower to charging station without mowing.&lt;br /&gt;
&lt;br /&gt;
'''POWER OFF PCB''' Power off all the mower.&lt;br /&gt;
&lt;br /&gt;
'''USER SWITCH''' are optional setting.&lt;br /&gt;
&lt;br /&gt;
=== Button connected on P20 ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:P20_Button.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
The Button connected on P20 is an easy mower command and work like that:&lt;br /&gt;
&lt;br /&gt;
If mower is in '''OFF state''':&lt;br /&gt;
&lt;br /&gt;
Push less than 1 sec = start mow in LANE&lt;br /&gt;
&lt;br /&gt;
Push it 2 seconds = start mow in RANDOM&lt;br /&gt;
&lt;br /&gt;
Push it more then 3 Seconds = GO TO STATION&lt;br /&gt;
&lt;br /&gt;
If mower is '''running''':&lt;br /&gt;
&lt;br /&gt;
Push it to stop immediately&lt;br /&gt;
&lt;br /&gt;
==Console==&lt;br /&gt;
&lt;br /&gt;
When you use the soft Without Raspberry PI Option, if you don't understand some behaviour ,it's possible to use console.&lt;br /&gt;
&lt;br /&gt;
Console show all the message you need for understanding why mower stop or reverse or roll etc....&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_console.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
Here the setting page.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting 1.jpg|200px]]  [[Datei:ArduRemote Setting 3.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Only For the first start, or with a new RTC eeprom :If you have error, you need to go into arduremote COMMAND and click on OFF to stop beep and in main menu ERROR COUNTER reset all error,next into setting, do a ''save setting''.&lt;br /&gt;
&lt;br /&gt;
Power OFF the PCB , do not forget also to disconnected the USB PC cable to be sure all restart correctly.&lt;br /&gt;
&lt;br /&gt;
Restart with PC connected on Due programming Port and the Ide console speed is set at 115200 bps .&lt;br /&gt;
&lt;br /&gt;
ARDUINO IDE CONSOLE SHOW (it's example using MPU9250 imu) :&lt;br /&gt;
&lt;br /&gt;
[[Datei:normal_start.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to YES'''&lt;br /&gt;
&lt;br /&gt;
===ODOMETRY Setting===&lt;br /&gt;
3 Values are require and need to be set in this order:&lt;br /&gt;
&lt;br /&gt;
'''Value 1'''&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Odometry.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
You need to set the correct ticks per one full revolution and check the result&lt;br /&gt;
&lt;br /&gt;
Go To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_Test_odo.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Use 1 turn Wheel FWD&lt;br /&gt;
&lt;br /&gt;
The wheel need to accelerate ,roll , brake and stop after exactly one revolution.&lt;br /&gt;
&lt;br /&gt;
Sample video : https://youtu.be/BV7MgO6jfwA&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW:&lt;br /&gt;
&lt;br /&gt;
[[Datei:wheel_1_rev.png]]&lt;br /&gt;
&lt;br /&gt;
Repeat the test with 5 turn Wheel FWD to be sure.&lt;br /&gt;
&lt;br /&gt;
'''Value 2'''&lt;br /&gt;
 &lt;br /&gt;
Back To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
Now you need to set the correct Ticks per cm according the diameter of the wheel.&lt;br /&gt;
&lt;br /&gt;
you can find the value by this formula: Ticks per one full revolution / PI*diameter of the wheel &lt;br /&gt;
&lt;br /&gt;
In this example the DENNA platform (diameter wheel is near 23 cm) : 720/3.1415*23=9.9&lt;br /&gt;
&lt;br /&gt;
Back To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
Now use the ''3 meters Forward'' command to see if the value is OK.&lt;br /&gt;
&lt;br /&gt;
Here the video : https://youtu.be/v-yzRV4FEWA&lt;br /&gt;
&lt;br /&gt;
The mower need to run forward for 3 meters .Adjust the value again if result is not 3 meters +/-10 cm&lt;br /&gt;
&lt;br /&gt;
'''Value 3'''&lt;br /&gt;
 &lt;br /&gt;
Back To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
Now you need to set the correct Wheel Base in cm .&lt;br /&gt;
&lt;br /&gt;
It's the distance between the 2 wheels. It is use to compute correctly all the mower roll movement.&lt;br /&gt;
&lt;br /&gt;
Back To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
Now use the Rotate 180 Deg and Rotate 360 Deg to verify the setting.Adjust the value again if result is not at +/- 5 Deg.&lt;br /&gt;
&lt;br /&gt;
Here the sample video : https://youtu.be/9uUA2qCqlrA&lt;br /&gt;
&lt;br /&gt;
Mower need to rotate according your choice.Change the Wheel Base in cm until you find 180 and 360 degrees&lt;br /&gt;
&lt;br /&gt;
===MOTOR Setting===&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Motor''&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_Setting_motor_01.jpg|200px]]  [[Datei:Arduremote_Setting_motor_2.jpg|200px]]  [[Datei:Arduremote_Setting_motor_30.jpg|200px]]  [[Datei:Arduremote_Setting_motor_4.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
First set the POWER MAX to 100 to be sure the motor don't stop.&lt;br /&gt;
&lt;br /&gt;
Set PWM max speed for example to 150 (Put mower on the mowing area in flat location and with 4 meters free forward) click '''''Calib Ticks/Second'''''  to approach the correct RPM value from PWM one ,mower need to move  and compute and save the new RPM value.&lt;br /&gt;
&lt;br /&gt;
You can now repeat this step until find the correct value fo rPWM and RPM.&lt;br /&gt;
&lt;br /&gt;
Each time you change PWM max value you need too calibrate again the ticks per second (Not needed for RPM)&lt;br /&gt;
&lt;br /&gt;
RPM is use into manual mode and auto forward mode, so to check a new value simply go to ''Main Menu / Manual '' and drive forward.&lt;br /&gt;
&lt;br /&gt;
PWM is use into automatic mode on all small movement (Rev,Roll,accel etc..) and need to be enough for the mower to move smoothly.&lt;br /&gt;
&lt;br /&gt;
If the wheel don't roll smoothly in manual forward ,maybe you need to adjust the RPM_P RPM_I and RPM_D&lt;br /&gt;
&lt;br /&gt;
See PID Control : [https://wiki.ardumower.de/index.php?title=PID_control]&lt;br /&gt;
&lt;br /&gt;
Always start with RPM_D=0 and move the 2 sliders RPM_P and RPM_I. RPM_P increase the changing speed and RPM_I smooth the speed when near the RPM max speed.&lt;br /&gt;
&lt;br /&gt;
You need to find a correct Manual / forward drive before continue with the ''Power max'' setting.&lt;br /&gt;
&lt;br /&gt;
'''Remember that at 80% of the power max the mower react like if a bumper is pressed.'''&lt;br /&gt;
&lt;br /&gt;
When PWM is OK you can adjust the power max value  ,simply deactivate bumper and In ''Manual / Forward'' stop the mower with your foot, normally the mower stop before the wheel slip. State change to OFF and into console you can see the according message.&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW with max power=12:&lt;br /&gt;
&lt;br /&gt;
[[Datei:motor_power.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do not forget to reactivate the Bumper.&lt;br /&gt;
&lt;br /&gt;
''Slope Adjust Speed'' Set to YES if you have slope on your mowing area it's help to have same Motor speed in Uphill and Downhill.&lt;br /&gt;
&lt;br /&gt;
''Actual Slope Coeff'' if Slope Adjust Speed is YES this real time value can change from 0.8 to 1.2 according Downhill and Uphill (Normaly near 1.00 on flat location)&lt;br /&gt;
&lt;br /&gt;
''Power ignore time'' On motor start the sense can have a peak. During this delay the sense is not read.&lt;br /&gt;
&lt;br /&gt;
''Roll Degrees max'' Into random mowing and after the mower find the wire and reverse it roll randomly with this maximum value.&lt;br /&gt;
&lt;br /&gt;
''Roll Degrees min'' Into random mowing and after the mower find the wire and reverse it roll randomly with this minimum value.&lt;br /&gt;
&lt;br /&gt;
''Rev Distance / Perimeter'' is the distance that mower drive after cross the perimeter wire to return inside mowing area (Always &amp;gt; Stop Distance / Perimeter).&lt;br /&gt;
&lt;br /&gt;
''Stop Distance / Perimeter'' is the distance that mower drive after cross the perimeter wire before stop.&lt;br /&gt;
&lt;br /&gt;
''MotorSenseScaleLeft'' and right are here to help to have a real Power, but the main is that at 80% of Power max : mower stop and reverse.&lt;br /&gt;
&lt;br /&gt;
''Swap Left Direction'' and right need to stay to NO and it's better to directly invert the motor wire + and -&lt;br /&gt;
&lt;br /&gt;
''PWM Right Forward Offset'' if the right and left motor don't rotate exactly at the same speed , You can use this setting to adjust and repeat the test ODO 1 rev forward until the 2 wheel stop at the same time.&lt;br /&gt;
&lt;br /&gt;
''PWM Right Reverse Offset'' Same setting but when mower reverse.&lt;br /&gt;
&lt;br /&gt;
'''''Speed ODO Minimum''''' Important setting : it's the minimum PWM that the firmware send to motor to have a movement.If too low the mower make pause between movement, if too high the movement are not perfectly smooth.&lt;br /&gt;
&lt;br /&gt;
''Speed ODO Maximum'' help on very small movement (less the 1/4 rev wheel)&lt;br /&gt;
&lt;br /&gt;
'''''Calib Ticks/Second''''' You need to do this once. The mower run forward for 1 or 2 wheel rev and compute the ticks / second. It is used on each movement to know the duration of the state according to the distance you want to drive.&lt;br /&gt;
&lt;br /&gt;
===MOW setting ===&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to NO or the blade never run and BE CARREFULL THE BLADE RUN'''&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Mow''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_mow_1.jpg|200px]]  [[Datei:ArduRemote_Setting_mow_2.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Mow motor can run at different speed according the high of grass.It's directly link to motor sense.&lt;br /&gt;
So you need to correctly set the max power of mow motor to have everything working correctly.&lt;br /&gt;
&lt;br /&gt;
Remember that at 80% of max power, mower start to mow in spiral mode, and at 100% of max power during 1 sec the motor is stop for more than 1 minute and restart automatically after, at a very high power the error hardware driver motor can also occur and you need a full power off to restart the mow motor &lt;br /&gt;
&lt;br /&gt;
To adjust everything try to find a location with medium high grass and low grass:&lt;br /&gt;
&lt;br /&gt;
Set the Power max to a small value (15 Watts for example)&lt;br /&gt;
 &lt;br /&gt;
Set the PWM Max speed to 255&lt;br /&gt;
&lt;br /&gt;
Set the PWM Min speed to 150&lt;br /&gt;
&lt;br /&gt;
Start to mow in auto mode in the low grass (The mow motor need to start at PWM=255 and reduce slowly during the next 10 seconds),now send the mower in high grass ,normally motor speed increase and spiral mowing start.&lt;br /&gt;
&lt;br /&gt;
If the spiral mowing start on low grass increase the Power max setting.&lt;br /&gt;
&lt;br /&gt;
Like for drive motor you can use calibrate mowsense to have a realistic sense,but the main is that mow spiral start on high grass and mow motor stop on overload in VERY HIGH GRASS.&lt;br /&gt;
&lt;br /&gt;
PWM coeff and actual PWM are actual (read only) value of the motor modulation.&lt;br /&gt;
&lt;br /&gt;
Mow Pattern Max Duration is used to change from Random mowing mode to Bylane mowing mode and avoid track on the mowing area.(The mower switch the 2 mode every 18 minutes in this case)&lt;br /&gt;
&lt;br /&gt;
===STATION setting===&lt;br /&gt;
&lt;br /&gt;
[[File:ArduRemote_setting_station.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''Station is blocking one , so the mower need to reverse to leave it.'''&lt;br /&gt;
&lt;br /&gt;
In schedule mode or start from station, mower use (IN THIS ORDER) reverse distance, Roll Angle and accel Distance after Roll to leave the station and start to find again perimeter wire to locate the mowing entry location according the timer setting, or track 1 meter if manual start from station.&lt;br /&gt;
&lt;br /&gt;
On Go Home mode mower track the wire and find the station (A voltage is detected on charging pin, or Bumper is pressed) it stop immediately and slowly go forward for the Station check Distance to be sure the contact is OK.&lt;br /&gt;
&lt;br /&gt;
If you use Right Sonar, the docking speed is reduce according to % of MaxSpeed each time something is detected while tracking the wire.&lt;br /&gt;
&lt;br /&gt;
On full schedule mode it's better to activate the Reboot after charging, by this way all variable are restore and everything work for week or month without any intervention.&lt;br /&gt;
&lt;br /&gt;
===PERIMETER setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Perimeter_1.jpg|200px]] [[Datei:ArduRemote_Setting_Perimeter_2.jpg|200px]] [[Datei:ArduRemote_Setting_Perimeter_03.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Main value is Mag and is negative when mower is inside area (near -2000 if mower inside and upper the wire).  In this case(139) the mower is outside at 3 meters of the wire.&lt;br /&gt;
&lt;br /&gt;
'''Mini Smag:'''&lt;br /&gt;
&lt;br /&gt;
Under this value the firmware estimate that the sender is OFF, so it's error.  To find the correct value simply put the mower in the area and unplug the sender (Read the Smag and add 20 or 30 , use slider to adjust MiniSmag)&lt;br /&gt;
&lt;br /&gt;
Check by start mowing and unplug the sender: Mower need to stop rapidly and go to error.&lt;br /&gt;
&lt;br /&gt;
'''Timeout(s) if outside :'''&lt;br /&gt;
&lt;br /&gt;
'''Big AREA Smag Center'''&lt;br /&gt;
&lt;br /&gt;
Help mower to not generate In/OUT transition in the middle of big area.  To find correct value ,simply put the mower in the middle area as far as possible from the wire and use Smag value.&lt;br /&gt;
&lt;br /&gt;
'''Tracking Max Speed PWM''' &lt;br /&gt;
&lt;br /&gt;
it's the tracking speed (lower value help to have a smooth tracking on curve)&lt;br /&gt;
&lt;br /&gt;
'''Circle Arc Distance...'''&lt;br /&gt;
&lt;br /&gt;
If mower find obstacle while tracking : it reverse,Roll 45 Deg and make a circle to find again the wire.&lt;br /&gt;
&lt;br /&gt;
'''Perimeter MAG MAX VALUE'''&lt;br /&gt;
&lt;br /&gt;
Put mower directly upper the wire and use here the maximum Mag value.&lt;br /&gt;
&lt;br /&gt;
'''Transition Timeout'''&lt;br /&gt;
&lt;br /&gt;
When tracking,Mower need to change from inside to outside using the PID, but if it fail after this transition time one wheel is stop to find again the wire.&lt;br /&gt;
If too important the mower can  fail tracking on 90 deg angle .&lt;br /&gt;
&lt;br /&gt;
'''Track Error Timeout'''&lt;br /&gt;
&lt;br /&gt;
If mower can't find In/OUt transition during this delay it's error.&lt;br /&gt;
&lt;br /&gt;
'''Track PID'''&lt;br /&gt;
&lt;br /&gt;
The Pid is use to smooth the tracking and need to be adjust according your platform (Distance between wheel and receiver coil,motor react speed etc..)&lt;br /&gt;
&lt;br /&gt;
'''Coil Polarity'''&lt;br /&gt;
&lt;br /&gt;
Do not change ,It's better to invert the wire at sender output.&lt;br /&gt;
&lt;br /&gt;
'''Read the 2 coils'''&lt;br /&gt;
&lt;br /&gt;
Only for dev test : Do not change&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Block inner wheel'''&lt;br /&gt;
&lt;br /&gt;
If YES the 2 wheels always roll forward , if NO one wheel can reverse to find again wire on big angle for example.&lt;br /&gt;
&lt;br /&gt;
'''Reduce Speed Near Wire'''&lt;br /&gt;
&lt;br /&gt;
If YES mower reduce the forward speed when near perimeter&lt;br /&gt;
&lt;br /&gt;
'''Actual Speed Coeff'''&lt;br /&gt;
&lt;br /&gt;
It's the real time value of speed ratio when mower approach the wire&lt;br /&gt;
&lt;br /&gt;
===IMU Wiring and Setting===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====MPU-9250 IMU WIRING TO PCB1.3====&lt;br /&gt;
'''MPU-9250 or 55 is not really stable''' (can work many hours or fail after some minutes without any particular reason) ,so it's better to use GY-88 / GY-521 + GY-273 more stable module&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:MPU-9250.jpg|400px]] &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Optional : It's possible to shunt the onboard DC/DC converter (NEVER PUT 5V on VCC with this option)&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-20.jpg|400px]] &lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
If you have some I2C error it's also possible to connect IMU on other location like I2C5 and JC5 to 3.3V to have a different pullup resistor.&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-40.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-88 IMU WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  G_ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-88.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-521 ACCEL/GYRO WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
 IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-521.jpg|400px]] [[Datei:GY-521-1.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
GY-521 don't have compass ,so you need to deactivate Compass into arduremote/setting/IMU or add a GY-273 module&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
====GY-273 COMPASS WIRING TO PCB1.3====&lt;br /&gt;
On the net you can find different module with fake chips like this one (Note HMC5883L on PCB but it's a QMC5883L),so you need to set the correct compass name into mower.cpp if it don't work with standard setting.&lt;br /&gt;
&lt;br /&gt;
 IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Gy-273-1.jpg|400px]] [[Datei:Gy-273-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C4 port and do not forget JC4 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:Gy-273-3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
GY-273 is a compass that you use with GY-521 you need to activate Compass into arduremote/setting/IMU.'''And do not forget to calibrate it'''.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-87 WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC_IN &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-87.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On GY-87 you can't change I2C adress and it's the same as RTC so you can't connect it on normal I2C port.&lt;br /&gt;
'''Connect module on I2C1 I2C_DUE'''&lt;br /&gt;
&lt;br /&gt;
[[Datei:GY-87-1.jpg|400px]] [[Datei:GY-87-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Select the correct firmware into Github&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===IMU Main Setting===&lt;br /&gt;
&lt;br /&gt;
MPU9255/9255-&amp;gt; [[Datei:ArduRemote_Setting_Imu_1.jpg|200px]]  [[Datei:ArduRemote_Setting_Imu_2.jpg|200px]]  or GY88/GY87-&amp;gt;[[Datei:ArduRemote_GY88.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
More info on IMU ,But no sensor fusion and not the same calibration process : [[Azurit_Firmware_(English)#IMU]]&lt;br /&gt;
&lt;br /&gt;
Here the video of IMU running to keep the heading : https://youtu.be/gxCrIb5geJM&lt;br /&gt;
&lt;br /&gt;
Imu (except GY-521) is composed by 2 parts : Compass and Gyro/Accel.&lt;br /&gt;
&lt;br /&gt;
Compass use magnetic earth field and is disturb by all motor and electronics in the mower, so it's very difficult to have correct value (for example a change of 10 deg is possible if you move the mower for only 1 deg). But it's reliable (If indicate 25 Deg and roll for 360 deg or wait 10 minutes it's always 25 Deg)&lt;br /&gt;
&lt;br /&gt;
Gyro/Accel is very accurate (+/- 1 or 2 deg) but can drift over time, (If indicate 25Deg and you wait 5 minute it can be 30Deg, but when you rotate slowly the mower you can see that everything is OK from 0 to 179 and from -179 to 0 Deg)&lt;br /&gt;
&lt;br /&gt;
The firmware can use or not the compass (Simply test and use the best according the location of the IMU in your platform)&lt;br /&gt;
&lt;br /&gt;
If GY-88/GY-87/GY-521 IMU are used ,you need to calibrate GYRO/ACCEL on the initial installation: Simply Go To ''Setting /  IMU'', press the ACCEL/GYRO initial calibration and wait 1 or 2 minutes without moving the mower (Arduremote lost connection during the process and it's normal if arduino ide is connected you can see the process in the console).&lt;br /&gt;
&lt;br /&gt;
For MPU/9255 or 9250 this process is automatically done on each start of the mower,so you can't see the button in arduremote .&lt;br /&gt;
&lt;br /&gt;
'''IMU Use'''&lt;br /&gt;
&lt;br /&gt;
Use or not the IMU (By lane require IMU to work correctly).&lt;br /&gt;
&lt;br /&gt;
'''Compass Use'''&lt;br /&gt;
if you use  GY-521 alone, you need to deactivate compass.Or if your IMU is locate near electronics or motor you can't calibrate it correctly ,so it's better to deactivate compass : Bylane mowing can result on drifting in parallel lane without compass but not always an issue in normal mowing condition.&lt;br /&gt;
&lt;br /&gt;
'''Stop Mow Motor During Calib'''&lt;br /&gt;
&lt;br /&gt;
It's possible to stop the mow motor to avoid compass noise but not really useful.&lt;br /&gt;
&lt;br /&gt;
'''P I D '''&lt;br /&gt;
&lt;br /&gt;
Like for the motor the PID need to be adjust if the mower don't drive smoothly in straight lane, Try to change the mower heading with your foot and normally the mower retrieve rapidly the precedent heading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calibration Max Duration '''&lt;br /&gt;
&lt;br /&gt;
When mower stop to adjust the Compass value to GYRO/ACCEL , the drift is check,If the drift is always present ,Mower continue to mow after this delay,but only in random mode.&lt;br /&gt;
&lt;br /&gt;
'''Delay between 2 calib'''&lt;br /&gt;
&lt;br /&gt;
Each time this delay is trig ,Mower stop , roll to find the compass actual heading and stop again to check if the drift is small,If it's OK heading is automatically adjust to continue to mow in always the same direction from north for example.If compass is not activate ,only drift is check.&lt;br /&gt;
&lt;br /&gt;
'''Drift Maxi in Deg per Second''&lt;br /&gt;
&lt;br /&gt;
When mower stop to calibrate ,This value is used to restart or wait again until drift stop.&lt;br /&gt;
&lt;br /&gt;
'''Speed to find ComYaw'''&lt;br /&gt;
&lt;br /&gt;
At the begin of calibration, mower roll and read compass,but it's possible to reduce Roll speed to find easily a new value.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====SETTING Without Compass====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to YES'''&lt;br /&gt;
&lt;br /&gt;
Set Compass Use to NO and leave all setting to default.In this case, Heading 0 is the start position of the mower&lt;br /&gt;
&lt;br /&gt;
To check if it's OK:&lt;br /&gt;
&lt;br /&gt;
Go To : ''Main Menu / Test IMU''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_test_imu.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Maybe you need to reduce the motor PWM max speed if the test fail sometime (The mower need to roll slowly)&lt;br /&gt;
&lt;br /&gt;
Start to mow in random mode and change the mower heading with your foot (If IMU is OK The mower need to always keep the heading)&lt;br /&gt;
&lt;br /&gt;
Without Compass you can see that the Bylane mowing is not perfectly parallel over time&lt;br /&gt;
&lt;br /&gt;
Only the GYRO Yaw is updated in arduremote setting.&lt;br /&gt;
&lt;br /&gt;
On Normal mowing mode you can see the mower stop every 'Delay between 2 calib' seconds and wait until the GYRO/ACCEL drift is inferior to 'Drift Maxi in Deg per second' value.If this process fail, mower continue to mow in random mode.&lt;br /&gt;
&lt;br /&gt;
====SETTING With Compass====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Set Compass Use to YES and leave all setting to default.  &lt;br /&gt;
&lt;br /&gt;
You need To DO the Compass calibration each time you change IMU location in the mower or add metal/Magnet near IMU&lt;br /&gt;
&lt;br /&gt;
Start and stop the compass calibration  : click one time to start and move the entire mower around all axes until no new data coming in the Console click again to stop and save the new calibration data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:compass_calib.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on the setting Imu arduremote page you can see the GYRO Yaw and Compass YAW value according to magnetic earth field.It's normal to don't have the 2 same values after 10 or 30 seconds or after roll the mower.And you can discover the main difference between GYRO/ACCEL and COMPASS.&lt;br /&gt;
&lt;br /&gt;
Heading 0 is normally North if no metal or magnet near compass.&lt;br /&gt;
&lt;br /&gt;
On Normal mowing mode you can see the mower stop every 'Delay between 2 calib' seconds , Roll until the compass find the lane heading and wait until the GYRO/ACCEL drift is inferior to 'Drift Maxi in Deg per second' value.If this process fail, mower continue to mow in random mode.&lt;br /&gt;
&lt;br /&gt;
===TIMER setting===&lt;br /&gt;
[[Datei:ArduRemote_Timer_0.jpg|200px]]  [[Datei:ArduRemote_Timer_1.jpg|200px]]  [[Datei:ArduRemote_Timer_2.jpg|200px]]  [[Datei:ArduRemote_Timer_3.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
The Timer is used to mow in full automatic mode for month or week.Timer can be trigger only if the mower is not into charge state.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]When you use the Go To Station from Arduremote the mower return to charging station and stop to check the Timer for the next 1 or 2 hours.&lt;br /&gt;
To do test and reuse timer ,you need to send OFF from arduremote when mower is in the station and wait 1 minute to see the mower start again from station using timer setting.&lt;br /&gt;
&lt;br /&gt;
On the first page the Use NO at the top deactivate all timer and leave mower in station.  Set it to yes and set up one of the 5 timer to make it work.&lt;br /&gt;
&lt;br /&gt;
Always Avoid that one timer stop later than other start or the opposite,or you can see strange behaviour.&lt;br /&gt;
&lt;br /&gt;
Start dist/Station is the distance the mower track the perimeter wire before start to mow.&lt;br /&gt;
&lt;br /&gt;
Use Beacon is here to use with RFID fast start process.&lt;br /&gt;
&lt;br /&gt;
Start Pattern can be Wire(Mower start from station ,mow the entire wire and back in station for the next hour) , LANE (it's parallel lane mowing mode) or Random.&lt;br /&gt;
&lt;br /&gt;
Start Area is used to select the correct mowing area, the Start dist/Station begin at the entry point of the new area.(ONLY POSSIBLE With RFID Option)&lt;br /&gt;
&lt;br /&gt;
Start Lane NR can be 1 2 or 3 like you define in the By Lane setting.&lt;br /&gt;
&lt;br /&gt;
Start Roll Dir is the roll direction Left or Right when the By Lane is in used.&lt;br /&gt;
&lt;br /&gt;
Start Max Lane Length is the distance max that mower drive on By Lane Mowing mode.&lt;br /&gt;
&lt;br /&gt;
Set to current time help to fill the start and stop sliders.&lt;br /&gt;
&lt;br /&gt;
===BYLANE setting===&lt;br /&gt;
[[Datei:mow_lane_result.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
To have acces to all setting the Dev mode need to be activate:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DevToYes.png|210px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Byllane_1.jpg|210px]]  [[Datei:ArduRemote_Setting_Byllane_2.jpg|210px]]  [[Datei:ArduRemote_Setting_Byllane_3.jpg|210px|]]&lt;br /&gt;
&lt;br /&gt;
Using IMU and ODOMETRY  mower can mow in parallel lane faster than random mode, but you need to correctly setup IMU to have good and fast result.&lt;br /&gt;
&lt;br /&gt;
3 mains Lane are set ,Factory are 45, 90 and 135 degrees (Avoid value near 0).&lt;br /&gt;
For each Lane 2 opposites reverse heading are possible according the ROLL dir at the end of the initial lane.&lt;br /&gt;
So you need to adjust 9 angles, 3 for each lane.&lt;br /&gt;
&lt;br /&gt;
'''Change Lane in use''' Click to use the next lane&lt;br /&gt;
&lt;br /&gt;
'''Change next Roll Direction''' Click and mower change the next roll dir when reach the perimetr wire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''THIS Menu is Dynamic so Setting are made in live mode''' : Start to mow and see the menu changing (from Fixed Yaw to Yaw opposite right or left) each time mower stop and reverse,For first test : leave the Fixed Yaw to factory and adjust the left and right Yaw Opposite according the mower real time behaviour.&lt;br /&gt;
&lt;br /&gt;
For example if for the lane 1 you set a fixed yaw to 45 deg, you can set Yaw opposite 1 Roll Left to -135 or -134 . In this case the mower mow perfect parallel lane (reverse heading is exactly the opposite of fixed one)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bylane 2.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other example if for the lane 1 you set a fixed yaw to 45 deg, you can set Yaw opposite 1 Roll Right to -120 , the mower mow in a kind of Zig Zag and go fast from one side of area to the other.&lt;br /&gt;
&lt;br /&gt;
When mower is lock by a curve in wire perimeter (Red Circle in Picture) the Lane NR is automatically change and the IMU calibration start again to adjust Compass and GYRO, by this way it's possible to always mow on same heading in the garden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bylane 1.png|640px]]&lt;br /&gt;
&lt;br /&gt;
'''Dist Between lane''' It's the distance between 2 parallel lane according the weight of your mower.&lt;br /&gt;
&lt;br /&gt;
'''Lane Max length''' It help to reduce the error on IMU heading (Set length &amp;lt; 10 meters if you really want that mower mow perfectly parallel or set to max with a small difference in the 2 opposite YAW if you want to have a fast mowing mode,in this case it's not perfectly parallel but mow really faster)&lt;br /&gt;
&lt;br /&gt;
===BATTERY setting===&lt;br /&gt;
[[Datei:ArduRemote_Setting_Battery_1.jpg|200px]]  [[Datei:ArduRemote_Setting_Battery_2.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Use the Monitor option to auto stop the PCB and protect Battery.'''BETTER to leave it always YES'''.     And always YES if there is no BMS into your battery pack.&lt;br /&gt;
&lt;br /&gt;
'''Charge Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from charging station voltage.&lt;br /&gt;
&lt;br /&gt;
'''Battery Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from battery voltage.&lt;br /&gt;
&lt;br /&gt;
'''Sense Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from sense charging.&lt;br /&gt;
&lt;br /&gt;
'''Go Home if Volt below''' &lt;br /&gt;
&lt;br /&gt;
In mowing mode the mower automatically return to station when battery voltage is below this value.&lt;br /&gt;
&lt;br /&gt;
'''Switch off after minutes''' &lt;br /&gt;
&lt;br /&gt;
When mower is OFF or in ERROR state, PCB automatically shutdown after this delay ('''REQUIRE JP8 in AUTO MODE''')&lt;br /&gt;
&lt;br /&gt;
'''Switch off if Volt below''' &lt;br /&gt;
&lt;br /&gt;
PCB automatically shutdown if battery voltage is too low  ('''REQUIRE JP8 in AUTO MODE''')&lt;br /&gt;
&lt;br /&gt;
'''Start charge if Voltage below''' &lt;br /&gt;
&lt;br /&gt;
When mower reach the charging station, the charging start and you can see the 2 values (Charge and sense just upper this line).Be careful when testing ,if the battery is not really empty the charge don't start each time, it's a electronic result (you can see the battery voltage increase very fast), but in normal working mode, all work perfectly.&lt;br /&gt;
&lt;br /&gt;
'''Stop charge if Sense below''' &lt;br /&gt;
&lt;br /&gt;
You can set here the minimum Sense that the battery drain at the end of the charging process.If too low the charging process is automatically stop after 5 hours and a message is send on the Console.&lt;br /&gt;
&lt;br /&gt;
===SONAR setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Sonar.jpg|200px]]  [[Datei:JSN_SR04T.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Firmware is tested for this type of Sonar : JSN-SR04T &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sonar can be used like a bumper : When trigge, mower speed is reduce and mower stop after the detection distance without hitting obstacle. &lt;br /&gt;
&lt;br /&gt;
Or Sonar can simply reduce motor speed for the next 3 seconds.&lt;br /&gt;
&lt;br /&gt;
Into mower.cpp you can simply change this line to true to change behaviour&lt;br /&gt;
&lt;br /&gt;
  sonarLikeBumper            =false;      //ultrasonic reduce speed vs bumper like&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sonar brake below'''&lt;br /&gt;
&lt;br /&gt;
Only this distance is scan by the sonar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sonar To Front Dist'''&lt;br /&gt;
&lt;br /&gt;
Distance between front of mower and sonar location, useful to never touch obstacle.&lt;br /&gt;
&lt;br /&gt;
===RAIN TEMP setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Rain.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''Rain Use''' &lt;br /&gt;
&lt;br /&gt;
set to YES if you want that Mower go to station when rain sensor is trig&lt;br /&gt;
&lt;br /&gt;
'''DHT22Use''' &lt;br /&gt;
&lt;br /&gt;
set to YES if you have connected a DHT22 sensor on PCB1.3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Maximum Temperature''' &lt;br /&gt;
&lt;br /&gt;
When DHT22 temp is upper this value the mower goes into ERROR and the PCB is totally power OFF.&lt;br /&gt;
To be tested ,maybe bug here.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OLED Screen setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:OLED_PCB1.3_wiring.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In AZURITBER Ver &amp;gt;= 1.6 It's possible to connect small OLED screen on the PCB1.3 I2C1 port&lt;br /&gt;
&lt;br /&gt;
Resolution is fixed to 128 * 64 pixel and can use 1.3 or 0.96 pouce  screen&lt;br /&gt;
&lt;br /&gt;
The oled need to be I2C U8G2 compatible, so SSD1306 or SH1106 I2C model :&lt;br /&gt;
&lt;br /&gt;
https://www.marotronics.de/Ecran-OLED-096-bleu-jaune-I2C-SPI-128x64-SSD1106-pour-Arduino-Raspberry-Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You need to Enable it into mower.h line 128&lt;br /&gt;
&lt;br /&gt;
 #define Enable_Screen true&lt;br /&gt;
 *      //#define Enable_Screen false&lt;br /&gt;
&lt;br /&gt;
And select the correct model into screen.cpp . Factory setting are for 1.3 Pouce model from Ebay.&lt;br /&gt;
 &lt;br /&gt;
 U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);&lt;br /&gt;
 U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);&lt;br /&gt;
&lt;br /&gt;
According the status of the mower Oled show different screen :&lt;br /&gt;
&lt;br /&gt;
In OFF mode :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_OFF.png|200px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While mower running :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_mow.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When Charging :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_charge.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When into station waiting for next timer start :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_station.png|200px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Level 2 Raspberry Pi =&lt;br /&gt;
&lt;br /&gt;
It's here : [[AzuritBer_Pi_Firmware_(English)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Level 3 Raspberry Pi + RFID =&lt;br /&gt;
&lt;br /&gt;
It's here : [[AzuritBer_Pi_Firmware_RFID(English)]]&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_Firmware_(English)&amp;diff=10329</id>
		<title>AzuritBer Firmware (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_Firmware_(English)&amp;diff=10329"/>
				<updated>2022-02-05T10:19:19Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Raspberry PI + Rfid reader */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=GITHUB Location=&lt;br /&gt;
&lt;br /&gt;
It's here:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Boilevin/AzuritBer GITHUB REPOSITORY]&lt;br /&gt;
&lt;br /&gt;
Process is the same as AZURIT :&lt;br /&gt;
&lt;br /&gt;
You need to upload all file to your PC and open ardumower.ino into arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Upload the code inside your DUE :&lt;br /&gt;
&lt;br /&gt;
On first start it's possible that EEPROM is empty (PCB Beep and start with ERROR) so you need to reset error counter and save setting.&lt;br /&gt;
&lt;br /&gt;
=Test requirements=&lt;br /&gt;
[[File:warning.png]]Security note: For security reasons, always remove mower blades in your first tests!&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]Important: For your first wheel motor tests, jack your robot so that the tires can run freely without ground contact!&lt;br /&gt;
&lt;br /&gt;
Prerequise to follow this WIKI: '''BT Module connected on PCB1.3 (ESP32 is also possible) and Pfod or Arduremote running into Android phone'''&lt;br /&gt;
&lt;br /&gt;
=What is AzuritBer and Why=&lt;br /&gt;
&lt;br /&gt;
AzuritBer was build for DENNA,ROBOMOW and PARANELLO platform and use Odometry or IMU to control the state change. &lt;br /&gt;
It can only run on DUE and Odometry is mandatory (minimum 400 ticks per rev).But it's possible to adjust setting to work on other platform.&lt;br /&gt;
 &lt;br /&gt;
This version always use odometry into all movement (reverse,roll etc...) .The result is a more smooth movement without pause between all the différents state and the possibility to mow by lane for big area and faster mowing&lt;br /&gt;
&lt;br /&gt;
Here video of the random mowing behaviour on 2 platform:&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/Abt5pcWz2H0&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/T5mH4yMyWus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 Usefull option are Raspberry PI and RFID module.&lt;br /&gt;
&lt;br /&gt;
At the beginning of the dev i need many debug message to perfectly adjust the firmware, so i add a raspberry and record all the mowing duration in a Console.&lt;br /&gt;
Actually PI is optional, but help a lot to find trouble in the behaviour and to communicate (With your PC,or home automation)&lt;br /&gt;
Other option is the RFID tag reader&lt;br /&gt;
&lt;br /&gt;
=Possible Option=&lt;br /&gt;
== WIFI ESP32 Sender ==&lt;br /&gt;
&lt;br /&gt;
Full description of the new  sender is here:&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=WIFI_Perimeter_Sender(English)&lt;br /&gt;
&lt;br /&gt;
[[Datei:wifi-sender1.png|400px]]  [[Datei:wifi-sender2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
if you have only one mowing area , you can use sender from shop : sender start when mower leave station and stop when mower is back or after a 5 hours timeout.&lt;br /&gt;
&lt;br /&gt;
But if you want to use RFID and multiple mowing area, Firmware need to control sender over WIFI and you need the new sender based on ESP32&lt;br /&gt;
&lt;br /&gt;
== WIFI and MQTT ==&lt;br /&gt;
&lt;br /&gt;
Full description is here :&lt;br /&gt;
&lt;br /&gt;
 [[AzuritBer_ESP32_option_(English)]]&lt;br /&gt;
&lt;br /&gt;
== RFID READER ==&lt;br /&gt;
&lt;br /&gt;
Full description is here :&lt;br /&gt;
&lt;br /&gt;
 [[AzuritBer_RFID_option_(English)]]&lt;br /&gt;
&lt;br /&gt;
== Raspberry PI==&lt;br /&gt;
The platform And Raspberry Pi but no RFID&lt;br /&gt;
&lt;br /&gt;
It's Level 1 but now:&lt;br /&gt;
&lt;br /&gt;
Optional 5 inch tactile screen can easily control all the mower and show many info on last mowing run.&lt;br /&gt;
&lt;br /&gt;
It's possible to access to mower from your Wifi and set everything from your Sofa (Including firmware upgrade)&lt;br /&gt;
&lt;br /&gt;
Home Automation can control the mower using MQTT message and start mowing according your automation.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|150px]] Bluetooth or WIFI (need esp01 connected on PCB1.3) control using arduremote &lt;br /&gt;
&lt;br /&gt;
[[Datei:Tactile screen .jpg|400px]] Manual control using tactile screen&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_auto.png|400px]] WIFI control using VNC Viewer (https://www.realvnc.com/fr/connect/download/viewer/) from your sofa&lt;br /&gt;
&lt;br /&gt;
[[Datei:home_assistant.png|400px]] WIFI control using mqtt and compatible software (here Home Assistant https://www.home-assistant.io/)&lt;br /&gt;
&lt;br /&gt;
=Standard Setup=&lt;br /&gt;
&lt;br /&gt;
Hardware is standard one : the PCB1.3 or 1.4 and simple BT module HC05&lt;br /&gt;
&lt;br /&gt;
The mower can run in full automatic mode inside a perimeter wire.&lt;br /&gt;
&lt;br /&gt;
Software add the ByLane and Wire mowing .&lt;br /&gt;
&lt;br /&gt;
Start using timer at different location on the perimeter wire with 3 possible mowing behaviour: Mow wire,Random Mode or By Lane Mode&lt;br /&gt;
&lt;br /&gt;
You can Acces to mower using Arduremote or Pfod over Bluetooth.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Install Firmware in DUE==&lt;br /&gt;
&lt;br /&gt;
In Github repo the MASTER version is the GY-521 version and the latest one.&lt;br /&gt;
&lt;br /&gt;
According your IMU module select the correct firmware from Github (GY-88,GY-87 and MPU-9250 are possible) by switching the branch.&lt;br /&gt;
&lt;br /&gt;
Note that the MPU-9250 is not always working perfectly (Noise on DC Motor freeze I2C line),On some 9250 chips you can see randomly I2C RTC error .So it's better to use GY-88 or GY-521 (More noise tolerant ??)&lt;br /&gt;
&lt;br /&gt;
If you see some freeze : first test for 2 or 3 hours with mow motor deactivate to be sure the motor noise is not too important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Github_link.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
After unzip the github repository ,open the ardumower folder and the ardumower.ino. Before uploading the sketch ,verify that into mower.h the line :&lt;br /&gt;
&lt;br /&gt;
 *          #define Console Serial&lt;br /&gt;
 *          //#define Console SerialUSB&lt;br /&gt;
&lt;br /&gt;
are set like that : uncomment #define Console Serial to receive Console message inside your PC arduino ide console and comment #define Console SerialUSB&lt;br /&gt;
&lt;br /&gt;
Upload sketch inside DUE using programming port.&lt;br /&gt;
&lt;br /&gt;
==Arduremote or PFOD APP==&lt;br /&gt;
&lt;br /&gt;
To control mower with a phone or tablet you need to use a software named ARDUREMOTE.&lt;br /&gt;
&lt;br /&gt;
You can easily install it using the Play Store from your phone&lt;br /&gt;
&lt;br /&gt;
==Main==&lt;br /&gt;
&lt;br /&gt;
If BT or WIFI connection is OK you can see main menu from Arduremote :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_main.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Command==&lt;br /&gt;
&lt;br /&gt;
===Arduremote===&lt;br /&gt;
Command menu is the mostly used menu to start and stop the mowing cycle manually.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''OFF''' is used to stop immediately the mower.&lt;br /&gt;
&lt;br /&gt;
'''Start Now''' start the mowing cycle according pattern selection.&lt;br /&gt;
&lt;br /&gt;
'''Actual Status state and mowing''' are only readable value and change when mower run.&lt;br /&gt;
&lt;br /&gt;
'''Pattern is''' is used to select what you want the mower cycle do:&lt;br /&gt;
&lt;br /&gt;
Possible value are :&lt;br /&gt;
&lt;br /&gt;
LANE -&amp;gt; mower mow in parallel lane according lane setting&lt;br /&gt;
&lt;br /&gt;
RANDOM -&amp;gt; mower change to a new random direction each time the wire is detected or bumper is hit or motor sense is too high.&lt;br /&gt;
&lt;br /&gt;
WIRE -&amp;gt; mower track the wire and mow the border of the area until find the station.&lt;br /&gt;
&lt;br /&gt;
'''GO TO STATION''' is used to send mower to charging station without mowing.&lt;br /&gt;
&lt;br /&gt;
'''POWER OFF PCB''' Power off all the mower.&lt;br /&gt;
&lt;br /&gt;
'''USER SWITCH''' are optional setting.&lt;br /&gt;
&lt;br /&gt;
=== Button connected on P20 ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:P20_Button.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
The Button connected on P20 is an easy mower command and work like that:&lt;br /&gt;
&lt;br /&gt;
If mower is in '''OFF state''':&lt;br /&gt;
&lt;br /&gt;
Push less than 1 sec = start mow in LANE&lt;br /&gt;
&lt;br /&gt;
Push it 2 seconds = start mow in RANDOM&lt;br /&gt;
&lt;br /&gt;
Push it more then 3 Seconds = GO TO STATION&lt;br /&gt;
&lt;br /&gt;
If mower is '''running''':&lt;br /&gt;
&lt;br /&gt;
Push it to stop immediately&lt;br /&gt;
&lt;br /&gt;
==Console==&lt;br /&gt;
&lt;br /&gt;
When you use the soft Without Raspberry PI Option, if you don't understand some behaviour ,it's possible to use console.&lt;br /&gt;
&lt;br /&gt;
Console show all the message you need for understanding why mower stop or reverse or roll etc....&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_console.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
Here the setting page.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting 1.jpg|200px]]  [[Datei:ArduRemote Setting 3.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Only For the first start, or with a new RTC eeprom :If you have error, you need to go into arduremote COMMAND and click on OFF to stop beep and in main menu ERROR COUNTER reset all error,next into setting, do a ''save setting''.&lt;br /&gt;
&lt;br /&gt;
Power OFF the PCB , do not forget also to disconnected the USB PC cable to be sure all restart correctly.&lt;br /&gt;
&lt;br /&gt;
Restart with PC connected on Due programming Port and the Ide console speed is set at 115200 bps .&lt;br /&gt;
&lt;br /&gt;
ARDUINO IDE CONSOLE SHOW (it's example using MPU9250 imu) :&lt;br /&gt;
&lt;br /&gt;
[[Datei:normal_start.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to YES'''&lt;br /&gt;
&lt;br /&gt;
===ODOMETRY Setting===&lt;br /&gt;
3 Values are require and need to be set in this order:&lt;br /&gt;
&lt;br /&gt;
'''Value 1'''&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Odometry.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
You need to set the correct ticks per one full revolution and check the result&lt;br /&gt;
&lt;br /&gt;
Go To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_Test_odo.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Use 1 turn Wheel FWD&lt;br /&gt;
&lt;br /&gt;
The wheel need to accelerate ,roll , brake and stop after exactly one revolution.&lt;br /&gt;
&lt;br /&gt;
Sample video : https://youtu.be/BV7MgO6jfwA&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW:&lt;br /&gt;
&lt;br /&gt;
[[Datei:wheel_1_rev.png]]&lt;br /&gt;
&lt;br /&gt;
Repeat the test with 5 turn Wheel FWD to be sure.&lt;br /&gt;
&lt;br /&gt;
'''Value 2'''&lt;br /&gt;
 &lt;br /&gt;
Back To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
Now you need to set the correct Ticks per cm according the diameter of the wheel.&lt;br /&gt;
&lt;br /&gt;
you can find the value by this formula: Ticks per one full revolution / PI*diameter of the wheel &lt;br /&gt;
&lt;br /&gt;
In this example the DENNA platform (diameter wheel is near 23 cm) : 720/3.1415*23=9.9&lt;br /&gt;
&lt;br /&gt;
Back To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
Now use the ''3 meters Forward'' command to see if the value is OK.&lt;br /&gt;
&lt;br /&gt;
Here the video : https://youtu.be/v-yzRV4FEWA&lt;br /&gt;
&lt;br /&gt;
The mower need to run forward for 3 meters .Adjust the value again if result is not 3 meters +/-10 cm&lt;br /&gt;
&lt;br /&gt;
'''Value 3'''&lt;br /&gt;
 &lt;br /&gt;
Back To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
Now you need to set the correct Wheel Base in cm .&lt;br /&gt;
&lt;br /&gt;
It's the distance between the 2 wheels. It is use to compute correctly all the mower roll movement.&lt;br /&gt;
&lt;br /&gt;
Back To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
Now use the Rotate 180 Deg and Rotate 360 Deg to verify the setting.Adjust the value again if result is not at +/- 5 Deg.&lt;br /&gt;
&lt;br /&gt;
Here the sample video : https://youtu.be/9uUA2qCqlrA&lt;br /&gt;
&lt;br /&gt;
Mower need to rotate according your choice.Change the Wheel Base in cm until you find 180 and 360 degrees&lt;br /&gt;
&lt;br /&gt;
===MOTOR Setting===&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Motor''&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_Setting_motor_01.jpg|200px]]  [[Datei:Arduremote_Setting_motor_2.jpg|200px]]  [[Datei:Arduremote_Setting_motor_30.jpg|200px]]  [[Datei:Arduremote_Setting_motor_4.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
First set the POWER MAX to 100 to be sure the motor don't stop.&lt;br /&gt;
&lt;br /&gt;
Set PWM max speed for example to 150 (Put mower on the mowing area in flat location and with 4 meters free forward) click '''''Calib Ticks/Second'''''  to approach the correct RPM value from PWM one ,mower need to move  and compute and save the new RPM value.&lt;br /&gt;
&lt;br /&gt;
You can now repeat this step until find the correct value fo rPWM and RPM.&lt;br /&gt;
&lt;br /&gt;
Each time you change PWM max value you need too calibrate again the ticks per second (Not needed for RPM)&lt;br /&gt;
&lt;br /&gt;
RPM is use into manual mode and auto forward mode, so to check a new value simply go to ''Main Menu / Manual '' and drive forward.&lt;br /&gt;
&lt;br /&gt;
PWM is use into automatic mode on all small movement (Rev,Roll,accel etc..) and need to be enough for the mower to move smoothly.&lt;br /&gt;
&lt;br /&gt;
If the wheel don't roll smoothly in manual forward ,maybe you need to adjust the RPM_P RPM_I and RPM_D&lt;br /&gt;
&lt;br /&gt;
See PID Control : [https://wiki.ardumower.de/index.php?title=PID_control]&lt;br /&gt;
&lt;br /&gt;
Always start with RPM_D=0 and move the 2 sliders RPM_P and RPM_I. RPM_P increase the changing speed and RPM_I smooth the speed when near the RPM max speed.&lt;br /&gt;
&lt;br /&gt;
You need to find a correct Manual / forward drive before continue with the ''Power max'' setting.&lt;br /&gt;
&lt;br /&gt;
'''Remember that at 80% of the power max the mower react like if a bumper is pressed.'''&lt;br /&gt;
&lt;br /&gt;
When PWM is OK you can adjust the power max value  ,simply deactivate bumper and In ''Manual / Forward'' stop the mower with your foot, normally the mower stop before the wheel slip. State change to OFF and into console you can see the according message.&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW with max power=12:&lt;br /&gt;
&lt;br /&gt;
[[Datei:motor_power.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do not forget to reactivate the Bumper.&lt;br /&gt;
&lt;br /&gt;
''Slope Adjust Speed'' Set to YES if you have slope on your mowing area it's help to have same Motor speed in Uphill and Downhill.&lt;br /&gt;
&lt;br /&gt;
''Actual Slope Coeff'' if Slope Adjust Speed is YES this real time value can change from 0.8 to 1.2 according Downhill and Uphill (Normaly near 1.00 on flat location)&lt;br /&gt;
&lt;br /&gt;
''Power ignore time'' On motor start the sense can have a peak. During this delay the sense is not read.&lt;br /&gt;
&lt;br /&gt;
''Roll Degrees max'' Into random mowing and after the mower find the wire and reverse it roll randomly with this maximum value.&lt;br /&gt;
&lt;br /&gt;
''Roll Degrees min'' Into random mowing and after the mower find the wire and reverse it roll randomly with this minimum value.&lt;br /&gt;
&lt;br /&gt;
''Rev Distance / Perimeter'' is the distance that mower drive after cross the perimeter wire to return inside mowing area (Always &amp;gt; Stop Distance / Perimeter).&lt;br /&gt;
&lt;br /&gt;
''Stop Distance / Perimeter'' is the distance that mower drive after cross the perimeter wire before stop.&lt;br /&gt;
&lt;br /&gt;
''MotorSenseScaleLeft'' and right are here to help to have a real Power, but the main is that at 80% of Power max : mower stop and reverse.&lt;br /&gt;
&lt;br /&gt;
''Swap Left Direction'' and right need to stay to NO and it's better to directly invert the motor wire + and -&lt;br /&gt;
&lt;br /&gt;
''PWM Right Forward Offset'' if the right and left motor don't rotate exactly at the same speed , You can use this setting to adjust and repeat the test ODO 1 rev forward until the 2 wheel stop at the same time.&lt;br /&gt;
&lt;br /&gt;
''PWM Right Reverse Offset'' Same setting but when mower reverse.&lt;br /&gt;
&lt;br /&gt;
'''''Speed ODO Minimum''''' Important setting : it's the minimum PWM that the firmware send to motor to have a movement.If too low the mower make pause between movement, if too high the movement are not perfectly smooth.&lt;br /&gt;
&lt;br /&gt;
''Speed ODO Maximum'' help on very small movement (less the 1/4 rev wheel)&lt;br /&gt;
&lt;br /&gt;
'''''Calib Ticks/Second''''' You need to do this once. The mower run forward for 1 or 2 wheel rev and compute the ticks / second. It is used on each movement to know the duration of the state according to the distance you want to drive.&lt;br /&gt;
&lt;br /&gt;
===MOW setting ===&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to NO or the blade never run and BE CARREFULL THE BLADE RUN'''&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Mow''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_mow_1.jpg|200px]]  [[Datei:ArduRemote_Setting_mow_2.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Mow motor can run at different speed according the high of grass.It's directly link to motor sense.&lt;br /&gt;
So you need to correctly set the max power of mow motor to have everything working correctly.&lt;br /&gt;
&lt;br /&gt;
Remember that at 80% of max power, mower start to mow in spiral mode, and at 100% of max power during 1 sec the motor is stop for more than 1 minute and restart automatically after, at a very high power the error hardware driver motor can also occur and you need a full power off to restart the mow motor &lt;br /&gt;
&lt;br /&gt;
To adjust everything try to find a location with medium high grass and low grass:&lt;br /&gt;
&lt;br /&gt;
Set the Power max to a small value (15 Watts for example)&lt;br /&gt;
 &lt;br /&gt;
Set the PWM Max speed to 255&lt;br /&gt;
&lt;br /&gt;
Set the PWM Min speed to 150&lt;br /&gt;
&lt;br /&gt;
Start to mow in auto mode in the low grass (The mow motor need to start at PWM=255 and reduce slowly during the next 10 seconds),now send the mower in high grass ,normally motor speed increase and spiral mowing start.&lt;br /&gt;
&lt;br /&gt;
If the spiral mowing start on low grass increase the Power max setting.&lt;br /&gt;
&lt;br /&gt;
Like for drive motor you can use calibrate mowsense to have a realistic sense,but the main is that mow spiral start on high grass and mow motor stop on overload in VERY HIGH GRASS.&lt;br /&gt;
&lt;br /&gt;
PWM coeff and actual PWM are actual (read only) value of the motor modulation.&lt;br /&gt;
&lt;br /&gt;
Mow Pattern Max Duration is used to change from Random mowing mode to Bylane mowing mode and avoid track on the mowing area.(The mower switch the 2 mode every 18 minutes in this case)&lt;br /&gt;
&lt;br /&gt;
===STATION setting===&lt;br /&gt;
&lt;br /&gt;
[[File:ArduRemote_setting_station.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''Station is blocking one , so the mower need to reverse to leave it.'''&lt;br /&gt;
&lt;br /&gt;
In schedule mode or start from station, mower use (IN THIS ORDER) reverse distance, Roll Angle and accel Distance after Roll to leave the station and start to find again perimeter wire to locate the mowing entry location according the timer setting, or track 1 meter if manual start from station.&lt;br /&gt;
&lt;br /&gt;
On Go Home mode mower track the wire and find the station (A voltage is detected on charging pin, or Bumper is pressed) it stop immediately and slowly go forward for the Station check Distance to be sure the contact is OK.&lt;br /&gt;
&lt;br /&gt;
If you use Right Sonar, the docking speed is reduce according to % of MaxSpeed each time something is detected while tracking the wire.&lt;br /&gt;
&lt;br /&gt;
On full schedule mode it's better to activate the Reboot after charging, by this way all variable are restore and everything work for week or month without any intervention.&lt;br /&gt;
&lt;br /&gt;
===PERIMETER setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Perimeter_1.jpg|200px]] [[Datei:ArduRemote_Setting_Perimeter_2.jpg|200px]] [[Datei:ArduRemote_Setting_Perimeter_03.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Main value is Mag and is negative when mower is inside area (near -2000 if mower inside and upper the wire).  In this case(139) the mower is outside at 3 meters of the wire.&lt;br /&gt;
&lt;br /&gt;
'''Mini Smag:'''&lt;br /&gt;
&lt;br /&gt;
Under this value the firmware estimate that the sender is OFF, so it's error.  To find the correct value simply put the mower in the area and unplug the sender (Read the Smag and add 20 or 30 , use slider to adjust MiniSmag)&lt;br /&gt;
&lt;br /&gt;
Check by start mowing and unplug the sender: Mower need to stop rapidly and go to error.&lt;br /&gt;
&lt;br /&gt;
'''Timeout(s) if outside :'''&lt;br /&gt;
&lt;br /&gt;
'''Big AREA Smag Center'''&lt;br /&gt;
&lt;br /&gt;
Help mower to not generate In/OUT transition in the middle of big area.  To find correct value ,simply put the mower in the middle area as far as possible from the wire and use Smag value.&lt;br /&gt;
&lt;br /&gt;
'''Tracking Max Speed PWM''' &lt;br /&gt;
&lt;br /&gt;
it's the tracking speed (lower value help to have a smooth tracking on curve)&lt;br /&gt;
&lt;br /&gt;
'''Circle Arc Distance...'''&lt;br /&gt;
&lt;br /&gt;
If mower find obstacle while tracking : it reverse,Roll 45 Deg and make a circle to find again the wire.&lt;br /&gt;
&lt;br /&gt;
'''Perimeter MAG MAX VALUE'''&lt;br /&gt;
&lt;br /&gt;
Put mower directly upper the wire and use here the maximum Mag value.&lt;br /&gt;
&lt;br /&gt;
'''Transition Timeout'''&lt;br /&gt;
&lt;br /&gt;
When tracking,Mower need to change from inside to outside using the PID, but if it fail after this transition time one wheel is stop to find again the wire.&lt;br /&gt;
If too important the mower can  fail tracking on 90 deg angle .&lt;br /&gt;
&lt;br /&gt;
'''Track Error Timeout'''&lt;br /&gt;
&lt;br /&gt;
If mower can't find In/OUt transition during this delay it's error.&lt;br /&gt;
&lt;br /&gt;
'''Track PID'''&lt;br /&gt;
&lt;br /&gt;
The Pid is use to smooth the tracking and need to be adjust according your platform (Distance between wheel and receiver coil,motor react speed etc..)&lt;br /&gt;
&lt;br /&gt;
'''Coil Polarity'''&lt;br /&gt;
&lt;br /&gt;
Do not change ,It's better to invert the wire at sender output.&lt;br /&gt;
&lt;br /&gt;
'''Read the 2 coils'''&lt;br /&gt;
&lt;br /&gt;
Only for dev test : Do not change&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Block inner wheel'''&lt;br /&gt;
&lt;br /&gt;
If YES the 2 wheels always roll forward , if NO one wheel can reverse to find again wire on big angle for example.&lt;br /&gt;
&lt;br /&gt;
'''Reduce Speed Near Wire'''&lt;br /&gt;
&lt;br /&gt;
If YES mower reduce the forward speed when near perimeter&lt;br /&gt;
&lt;br /&gt;
'''Actual Speed Coeff'''&lt;br /&gt;
&lt;br /&gt;
It's the real time value of speed ratio when mower approach the wire&lt;br /&gt;
&lt;br /&gt;
===IMU Wiring and Setting===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====MPU-9250 IMU WIRING TO PCB1.3====&lt;br /&gt;
'''MPU-9250 or 55 is not really stable''' (can work many hours or fail after some minutes without any particular reason) ,so it's better to use GY-88 / GY-521 + GY-273 more stable module&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:MPU-9250.jpg|400px]] &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Optional : It's possible to shunt the onboard DC/DC converter (NEVER PUT 5V on VCC with this option)&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-20.jpg|400px]] &lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
If you have some I2C error it's also possible to connect IMU on other location like I2C5 and JC5 to 3.3V to have a different pullup resistor.&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-40.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-88 IMU WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  G_ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-88.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-521 ACCEL/GYRO WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
 IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-521.jpg|400px]] [[Datei:GY-521-1.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
GY-521 don't have compass ,so you need to deactivate Compass into arduremote/setting/IMU or add a GY-273 module&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
====GY-273 COMPASS WIRING TO PCB1.3====&lt;br /&gt;
On the net you can find different module with fake chips like this one (Note HMC5883L on PCB but it's a QMC5883L),so you need to set the correct compass name into mower.cpp if it don't work with standard setting.&lt;br /&gt;
&lt;br /&gt;
 IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Gy-273-1.jpg|400px]] [[Datei:Gy-273-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C4 port and do not forget JC4 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:Gy-273-3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
GY-273 is a compass that you use with GY-521 you need to activate Compass into arduremote/setting/IMU.'''And do not forget to calibrate it'''.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-87 WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC_IN &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-87.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On GY-87 you can't change I2C adress and it's the same as RTC so you can't connect it on normal I2C port.&lt;br /&gt;
'''Connect module on I2C1 I2C_DUE'''&lt;br /&gt;
&lt;br /&gt;
[[Datei:GY-87-1.jpg|400px]] [[Datei:GY-87-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Select the correct firmware into Github&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===IMU Main Setting===&lt;br /&gt;
&lt;br /&gt;
MPU9255/9255-&amp;gt; [[Datei:ArduRemote_Setting_Imu_1.jpg|200px]]  [[Datei:ArduRemote_Setting_Imu_2.jpg|200px]]  or GY88/GY87-&amp;gt;[[Datei:ArduRemote_GY88.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
More info on IMU ,But no sensor fusion and not the same calibration process : [[Azurit_Firmware_(English)#IMU]]&lt;br /&gt;
&lt;br /&gt;
Here the video of IMU running to keep the heading : https://youtu.be/gxCrIb5geJM&lt;br /&gt;
&lt;br /&gt;
Imu (except GY-521) is composed by 2 parts : Compass and Gyro/Accel.&lt;br /&gt;
&lt;br /&gt;
Compass use magnetic earth field and is disturb by all motor and electronics in the mower, so it's very difficult to have correct value (for example a change of 10 deg is possible if you move the mower for only 1 deg). But it's reliable (If indicate 25 Deg and roll for 360 deg or wait 10 minutes it's always 25 Deg)&lt;br /&gt;
&lt;br /&gt;
Gyro/Accel is very accurate (+/- 1 or 2 deg) but can drift over time, (If indicate 25Deg and you wait 5 minute it can be 30Deg, but when you rotate slowly the mower you can see that everything is OK from 0 to 179 and from -179 to 0 Deg)&lt;br /&gt;
&lt;br /&gt;
The firmware can use or not the compass (Simply test and use the best according the location of the IMU in your platform)&lt;br /&gt;
&lt;br /&gt;
If GY-88/GY-87/GY-521 IMU are used ,you need to calibrate GYRO/ACCEL on the initial installation: Simply Go To ''Setting /  IMU'', press the ACCEL/GYRO initial calibration and wait 1 or 2 minutes without moving the mower (Arduremote lost connection during the process and it's normal if arduino ide is connected you can see the process in the console).&lt;br /&gt;
&lt;br /&gt;
For MPU/9255 or 9250 this process is automatically done on each start of the mower,so you can't see the button in arduremote .&lt;br /&gt;
&lt;br /&gt;
'''IMU Use'''&lt;br /&gt;
&lt;br /&gt;
Use or not the IMU (By lane require IMU to work correctly).&lt;br /&gt;
&lt;br /&gt;
'''Compass Use'''&lt;br /&gt;
if you use  GY-521 alone, you need to deactivate compass.Or if your IMU is locate near electronics or motor you can't calibrate it correctly ,so it's better to deactivate compass : Bylane mowing can result on drifting in parallel lane without compass but not always an issue in normal mowing condition.&lt;br /&gt;
&lt;br /&gt;
'''Stop Mow Motor During Calib'''&lt;br /&gt;
&lt;br /&gt;
It's possible to stop the mow motor to avoid compass noise but not really useful.&lt;br /&gt;
&lt;br /&gt;
'''P I D '''&lt;br /&gt;
&lt;br /&gt;
Like for the motor the PID need to be adjust if the mower don't drive smoothly in straight lane, Try to change the mower heading with your foot and normally the mower retrieve rapidly the precedent heading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calibration Max Duration '''&lt;br /&gt;
&lt;br /&gt;
When mower stop to adjust the Compass value to GYRO/ACCEL , the drift is check,If the drift is always present ,Mower continue to mow after this delay,but only in random mode.&lt;br /&gt;
&lt;br /&gt;
'''Delay between 2 calib'''&lt;br /&gt;
&lt;br /&gt;
Each time this delay is trig ,Mower stop , roll to find the compass actual heading and stop again to check if the drift is small,If it's OK heading is automatically adjust to continue to mow in always the same direction from north for example.If compass is not activate ,only drift is check.&lt;br /&gt;
&lt;br /&gt;
'''Drift Maxi in Deg per Second''&lt;br /&gt;
&lt;br /&gt;
When mower stop to calibrate ,This value is used to restart or wait again until drift stop.&lt;br /&gt;
&lt;br /&gt;
'''Speed to find ComYaw'''&lt;br /&gt;
&lt;br /&gt;
At the begin of calibration, mower roll and read compass,but it's possible to reduce Roll speed to find easily a new value.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====SETTING Without Compass====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to YES'''&lt;br /&gt;
&lt;br /&gt;
Set Compass Use to NO and leave all setting to default.In this case, Heading 0 is the start position of the mower&lt;br /&gt;
&lt;br /&gt;
To check if it's OK:&lt;br /&gt;
&lt;br /&gt;
Go To : ''Main Menu / Test IMU''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_test_imu.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Maybe you need to reduce the motor PWM max speed if the test fail sometime (The mower need to roll slowly)&lt;br /&gt;
&lt;br /&gt;
Start to mow in random mode and change the mower heading with your foot (If IMU is OK The mower need to always keep the heading)&lt;br /&gt;
&lt;br /&gt;
Without Compass you can see that the Bylane mowing is not perfectly parallel over time&lt;br /&gt;
&lt;br /&gt;
Only the GYRO Yaw is updated in arduremote setting.&lt;br /&gt;
&lt;br /&gt;
On Normal mowing mode you can see the mower stop every 'Delay between 2 calib' seconds and wait until the GYRO/ACCEL drift is inferior to 'Drift Maxi in Deg per second' value.If this process fail, mower continue to mow in random mode.&lt;br /&gt;
&lt;br /&gt;
====SETTING With Compass====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Set Compass Use to YES and leave all setting to default.  &lt;br /&gt;
&lt;br /&gt;
You need To DO the Compass calibration each time you change IMU location in the mower or add metal/Magnet near IMU&lt;br /&gt;
&lt;br /&gt;
Start and stop the compass calibration  : click one time to start and move the entire mower around all axes until no new data coming in the Console click again to stop and save the new calibration data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:compass_calib.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on the setting Imu arduremote page you can see the GYRO Yaw and Compass YAW value according to magnetic earth field.It's normal to don't have the 2 same values after 10 or 30 seconds or after roll the mower.And you can discover the main difference between GYRO/ACCEL and COMPASS.&lt;br /&gt;
&lt;br /&gt;
Heading 0 is normally North if no metal or magnet near compass.&lt;br /&gt;
&lt;br /&gt;
On Normal mowing mode you can see the mower stop every 'Delay between 2 calib' seconds , Roll until the compass find the lane heading and wait until the GYRO/ACCEL drift is inferior to 'Drift Maxi in Deg per second' value.If this process fail, mower continue to mow in random mode.&lt;br /&gt;
&lt;br /&gt;
===TIMER setting===&lt;br /&gt;
[[Datei:ArduRemote_Timer_0.jpg|200px]]  [[Datei:ArduRemote_Timer_1.jpg|200px]]  [[Datei:ArduRemote_Timer_2.jpg|200px]]  [[Datei:ArduRemote_Timer_3.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
The Timer is used to mow in full automatic mode for month or week.Timer can be trigger only if the mower is not into charge state.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]When you use the Go To Station from Arduremote the mower return to charging station and stop to check the Timer for the next 1 or 2 hours.&lt;br /&gt;
To do test and reuse timer ,you need to send OFF from arduremote when mower is in the station and wait 1 minute to see the mower start again from station using timer setting.&lt;br /&gt;
&lt;br /&gt;
On the first page the Use NO at the top deactivate all timer and leave mower in station.  Set it to yes and set up one of the 5 timer to make it work.&lt;br /&gt;
&lt;br /&gt;
Always Avoid that one timer stop later than other start or the opposite,or you can see strange behaviour.&lt;br /&gt;
&lt;br /&gt;
Start dist/Station is the distance the mower track the perimeter wire before start to mow.&lt;br /&gt;
&lt;br /&gt;
Use Beacon is here to use with RFID fast start process.&lt;br /&gt;
&lt;br /&gt;
Start Pattern can be Wire(Mower start from station ,mow the entire wire and back in station for the next hour) , LANE (it's parallel lane mowing mode) or Random.&lt;br /&gt;
&lt;br /&gt;
Start Area is used to select the correct mowing area, the Start dist/Station begin at the entry point of the new area.(ONLY POSSIBLE With RFID Option)&lt;br /&gt;
&lt;br /&gt;
Start Lane NR can be 1 2 or 3 like you define in the By Lane setting.&lt;br /&gt;
&lt;br /&gt;
Start Roll Dir is the roll direction Left or Right when the By Lane is in used.&lt;br /&gt;
&lt;br /&gt;
Start Max Lane Length is the distance max that mower drive on By Lane Mowing mode.&lt;br /&gt;
&lt;br /&gt;
Set to current time help to fill the start and stop sliders.&lt;br /&gt;
&lt;br /&gt;
===BYLANE setting===&lt;br /&gt;
[[Datei:mow_lane_result.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
To have acces to all setting the Dev mode need to be activate:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DevToYes.png|210px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Byllane_1.jpg|210px]]  [[Datei:ArduRemote_Setting_Byllane_2.jpg|210px]]  [[Datei:ArduRemote_Setting_Byllane_3.jpg|210px|]]&lt;br /&gt;
&lt;br /&gt;
Using IMU and ODOMETRY  mower can mow in parallel lane faster than random mode, but you need to correctly setup IMU to have good and fast result.&lt;br /&gt;
&lt;br /&gt;
3 mains Lane are set ,Factory are 45, 90 and 135 degrees (Avoid value near 0).&lt;br /&gt;
For each Lane 2 opposites reverse heading are possible according the ROLL dir at the end of the initial lane.&lt;br /&gt;
So you need to adjust 9 angles, 3 for each lane.&lt;br /&gt;
&lt;br /&gt;
'''Change Lane in use''' Click to use the next lane&lt;br /&gt;
&lt;br /&gt;
'''Change next Roll Direction''' Click and mower change the next roll dir when reach the perimetr wire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''THIS Menu is Dynamic so Setting are made in live mode''' : Start to mow and see the menu changing (from Fixed Yaw to Yaw opposite right or left) each time mower stop and reverse,For first test : leave the Fixed Yaw to factory and adjust the left and right Yaw Opposite according the mower real time behaviour.&lt;br /&gt;
&lt;br /&gt;
For example if for the lane 1 you set a fixed yaw to 45 deg, you can set Yaw opposite 1 Roll Left to -135 or -134 . In this case the mower mow perfect parallel lane (reverse heading is exactly the opposite of fixed one)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bylane 2.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other example if for the lane 1 you set a fixed yaw to 45 deg, you can set Yaw opposite 1 Roll Right to -120 , the mower mow in a kind of Zig Zag and go fast from one side of area to the other.&lt;br /&gt;
&lt;br /&gt;
When mower is lock by a curve in wire perimeter (Red Circle in Picture) the Lane NR is automatically change and the IMU calibration start again to adjust Compass and GYRO, by this way it's possible to always mow on same heading in the garden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bylane 1.png|640px]]&lt;br /&gt;
&lt;br /&gt;
'''Dist Between lane''' It's the distance between 2 parallel lane according the weight of your mower.&lt;br /&gt;
&lt;br /&gt;
'''Lane Max length''' It help to reduce the error on IMU heading (Set length &amp;lt; 10 meters if you really want that mower mow perfectly parallel or set to max with a small difference in the 2 opposite YAW if you want to have a fast mowing mode,in this case it's not perfectly parallel but mow really faster)&lt;br /&gt;
&lt;br /&gt;
===BATTERY setting===&lt;br /&gt;
[[Datei:ArduRemote_Setting_Battery_1.jpg|200px]]  [[Datei:ArduRemote_Setting_Battery_2.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Use the Monitor option to auto stop the PCB and protect Battery.'''BETTER to leave it always YES'''.     And always YES if there is no BMS into your battery pack.&lt;br /&gt;
&lt;br /&gt;
'''Charge Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from charging station voltage.&lt;br /&gt;
&lt;br /&gt;
'''Battery Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from battery voltage.&lt;br /&gt;
&lt;br /&gt;
'''Sense Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from sense charging.&lt;br /&gt;
&lt;br /&gt;
'''Go Home if Volt below''' &lt;br /&gt;
&lt;br /&gt;
In mowing mode the mower automatically return to station when battery voltage is below this value.&lt;br /&gt;
&lt;br /&gt;
'''Switch off after minutes''' &lt;br /&gt;
&lt;br /&gt;
When mower is OFF or in ERROR state, PCB automatically shutdown after this delay ('''REQUIRE JP8 in AUTO MODE''')&lt;br /&gt;
&lt;br /&gt;
'''Switch off if Volt below''' &lt;br /&gt;
&lt;br /&gt;
PCB automatically shutdown if battery voltage is too low  ('''REQUIRE JP8 in AUTO MODE''')&lt;br /&gt;
&lt;br /&gt;
'''Start charge if Voltage below''' &lt;br /&gt;
&lt;br /&gt;
When mower reach the charging station, the charging start and you can see the 2 values (Charge and sense just upper this line).Be careful when testing ,if the battery is not really empty the charge don't start each time, it's a electronic result (you can see the battery voltage increase very fast), but in normal working mode, all work perfectly.&lt;br /&gt;
&lt;br /&gt;
'''Stop charge if Sense below''' &lt;br /&gt;
&lt;br /&gt;
You can set here the minimum Sense that the battery drain at the end of the charging process.If too low the charging process is automatically stop after 5 hours and a message is send on the Console.&lt;br /&gt;
&lt;br /&gt;
===SONAR setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Sonar.jpg|200px]]  [[Datei:JSN_SR04T.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Firmware is tested for this type of Sonar : JSN-SR04T &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sonar can be used like a bumper : When trigge, mower speed is reduce and mower stop after the detection distance without hitting obstacle. &lt;br /&gt;
&lt;br /&gt;
Or Sonar can simply reduce motor speed for the next 3 seconds.&lt;br /&gt;
&lt;br /&gt;
Into mower.cpp you can simply change this line to true to change behaviour&lt;br /&gt;
&lt;br /&gt;
  sonarLikeBumper            =false;      //ultrasonic reduce speed vs bumper like&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sonar brake below'''&lt;br /&gt;
&lt;br /&gt;
Only this distance is scan by the sonar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sonar To Front Dist'''&lt;br /&gt;
&lt;br /&gt;
Distance between front of mower and sonar location, useful to never touch obstacle.&lt;br /&gt;
&lt;br /&gt;
===RAIN TEMP setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Rain.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''Rain Use''' &lt;br /&gt;
&lt;br /&gt;
set to YES if you want that Mower go to station when rain sensor is trig&lt;br /&gt;
&lt;br /&gt;
'''DHT22Use''' &lt;br /&gt;
&lt;br /&gt;
set to YES if you have connected a DHT22 sensor on PCB1.3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Maximum Temperature''' &lt;br /&gt;
&lt;br /&gt;
When DHT22 temp is upper this value the mower goes into ERROR and the PCB is totally power OFF.&lt;br /&gt;
To be tested ,maybe bug here.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OLED Screen setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:OLED_PCB1.3_wiring.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In AZURITBER Ver &amp;gt;= 1.6 It's possible to connect small OLED screen on the PCB1.3 I2C1 port&lt;br /&gt;
&lt;br /&gt;
Resolution is fixed to 128 * 64 pixel and can use 1.3 or 0.96 pouce  screen&lt;br /&gt;
&lt;br /&gt;
The oled need to be I2C U8G2 compatible, so SSD1306 or SH1106 I2C model :&lt;br /&gt;
&lt;br /&gt;
https://www.marotronics.de/Ecran-OLED-096-bleu-jaune-I2C-SPI-128x64-SSD1106-pour-Arduino-Raspberry-Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You need to Enable it into mower.h line 128&lt;br /&gt;
&lt;br /&gt;
 #define Enable_Screen true&lt;br /&gt;
 *      //#define Enable_Screen false&lt;br /&gt;
&lt;br /&gt;
And select the correct model into screen.cpp . Factory setting are for 1.3 Pouce model from Ebay.&lt;br /&gt;
 &lt;br /&gt;
 U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);&lt;br /&gt;
 U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);&lt;br /&gt;
&lt;br /&gt;
According the status of the mower Oled show different screen :&lt;br /&gt;
&lt;br /&gt;
In OFF mode :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_OFF.png|200px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While mower running :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_mow.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When Charging :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_charge.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When into station waiting for next timer start :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_station.png|200px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Level 2 Raspberry Pi =&lt;br /&gt;
&lt;br /&gt;
It's here : [[AzuritBer_Pi_Firmware_(English)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Level 3 Raspberry Pi + RFID =&lt;br /&gt;
&lt;br /&gt;
It's here : [[AzuritBer_Pi_Firmware_RFID(English)]]&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_Firmware_(English)&amp;diff=10328</id>
		<title>AzuritBer Firmware (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_Firmware_(English)&amp;diff=10328"/>
				<updated>2022-02-05T10:17:13Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Possible Option */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=GITHUB Location=&lt;br /&gt;
&lt;br /&gt;
It's here:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Boilevin/AzuritBer GITHUB REPOSITORY]&lt;br /&gt;
&lt;br /&gt;
Process is the same as AZURIT :&lt;br /&gt;
&lt;br /&gt;
You need to upload all file to your PC and open ardumower.ino into arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Upload the code inside your DUE :&lt;br /&gt;
&lt;br /&gt;
On first start it's possible that EEPROM is empty (PCB Beep and start with ERROR) so you need to reset error counter and save setting.&lt;br /&gt;
&lt;br /&gt;
=Test requirements=&lt;br /&gt;
[[File:warning.png]]Security note: For security reasons, always remove mower blades in your first tests!&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]Important: For your first wheel motor tests, jack your robot so that the tires can run freely without ground contact!&lt;br /&gt;
&lt;br /&gt;
Prerequise to follow this WIKI: '''BT Module connected on PCB1.3 (ESP32 is also possible) and Pfod or Arduremote running into Android phone'''&lt;br /&gt;
&lt;br /&gt;
=What is AzuritBer and Why=&lt;br /&gt;
&lt;br /&gt;
AzuritBer was build for DENNA,ROBOMOW and PARANELLO platform and use Odometry or IMU to control the state change. &lt;br /&gt;
It can only run on DUE and Odometry is mandatory (minimum 400 ticks per rev).But it's possible to adjust setting to work on other platform.&lt;br /&gt;
 &lt;br /&gt;
This version always use odometry into all movement (reverse,roll etc...) .The result is a more smooth movement without pause between all the différents state and the possibility to mow by lane for big area and faster mowing&lt;br /&gt;
&lt;br /&gt;
Here video of the random mowing behaviour on 2 platform:&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/Abt5pcWz2H0&lt;br /&gt;
&lt;br /&gt;
https://youtu.be/T5mH4yMyWus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 Usefull option are Raspberry PI and RFID module.&lt;br /&gt;
&lt;br /&gt;
At the beginning of the dev i need many debug message to perfectly adjust the firmware, so i add a raspberry and record all the mowing duration in a Console.&lt;br /&gt;
Actually PI is optional, but help a lot to find trouble in the behaviour and to communicate (With your PC,or home automation)&lt;br /&gt;
Other option is the RFID tag reader&lt;br /&gt;
&lt;br /&gt;
=Possible Option=&lt;br /&gt;
== WIFI ESP32 Sender ==&lt;br /&gt;
&lt;br /&gt;
Full description of the new  sender is here:&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=WIFI_Perimeter_Sender(English)&lt;br /&gt;
&lt;br /&gt;
[[Datei:wifi-sender1.png|400px]]  [[Datei:wifi-sender2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
if you have only one mowing area , you can use sender from shop : sender start when mower leave station and stop when mower is back or after a 5 hours timeout.&lt;br /&gt;
&lt;br /&gt;
But if you want to use RFID and multiple mowing area, Firmware need to control sender over WIFI and you need the new sender based on ESP32&lt;br /&gt;
&lt;br /&gt;
== WIFI and MQTT ==&lt;br /&gt;
&lt;br /&gt;
Full description is here :&lt;br /&gt;
&lt;br /&gt;
 [[AzuritBer_ESP32_option_(English)]]&lt;br /&gt;
&lt;br /&gt;
== RFID READER ==&lt;br /&gt;
&lt;br /&gt;
Full description is here :&lt;br /&gt;
&lt;br /&gt;
 [[AzuritBer_RFID_option_(English)]]&lt;br /&gt;
&lt;br /&gt;
== Raspberry PI==&lt;br /&gt;
The platform And Raspberry Pi but no RFID&lt;br /&gt;
&lt;br /&gt;
It's Level 1 but now:&lt;br /&gt;
&lt;br /&gt;
Optional 5 inch tactile screen can easily control all the mower and show many info on last mowing run.&lt;br /&gt;
&lt;br /&gt;
It's possible to access to mower from your Wifi and set everything from your Sofa (Including firmware upgrade)&lt;br /&gt;
&lt;br /&gt;
Home Automation can control the mower using MQTT message and start mowing according your automation.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|150px]] Bluetooth or WIFI (need esp01 connected on PCB1.3) control using arduremote &lt;br /&gt;
&lt;br /&gt;
[[Datei:Tactile screen .jpg|400px]] Manual control using tactile screen&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_auto.png|400px]] WIFI control using VNC Viewer (https://www.realvnc.com/fr/connect/download/viewer/) from your sofa&lt;br /&gt;
&lt;br /&gt;
[[Datei:home_assistant.png|400px]] WIFI control using mqtt and compatible software (here Home Assistant https://www.home-assistant.io/)&lt;br /&gt;
&lt;br /&gt;
== Raspberry PI + Rfid reader==&lt;br /&gt;
&lt;br /&gt;
It's obsolete because the RFID management is now in the ESP32 board for lowel hardware feature access.&lt;br /&gt;
&lt;br /&gt;
The platform And Raspberry Pi and RFID reader and at least 1 Wifi sender.&lt;br /&gt;
&lt;br /&gt;
It's level 2 but now using RFID Tag locate under grass you can easily run on big area &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:pi_auto.png|200px]] [[Datei:home_assistant.png|200px]] [[Datei:pi_rfid_main.png|200px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
It's possible to setup 3 distinct mowing area &lt;br /&gt;
&lt;br /&gt;
Here how mower start to mow into AREA 2 from station. Sender2 is WIFI sender, Sender1 can be the one from marotronic (area1 signal is not stop when mower mow into AREA 2) or a WIFI one if you want to stop area1 signal.&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Fast return to station(Tag12), easy escape from island(Tag10), and change speed(Tag1) while tracking are also possible.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Fast-return.gif]]&lt;br /&gt;
&lt;br /&gt;
=Standard Setup=&lt;br /&gt;
&lt;br /&gt;
Hardware is standard one : the PCB1.3 or 1.4 and simple BT module HC05&lt;br /&gt;
&lt;br /&gt;
The mower can run in full automatic mode inside a perimeter wire.&lt;br /&gt;
&lt;br /&gt;
Software add the ByLane and Wire mowing .&lt;br /&gt;
&lt;br /&gt;
Start using timer at different location on the perimeter wire with 3 possible mowing behaviour: Mow wire,Random Mode or By Lane Mode&lt;br /&gt;
&lt;br /&gt;
You can Acces to mower using Arduremote or Pfod over Bluetooth.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Install Firmware in DUE==&lt;br /&gt;
&lt;br /&gt;
In Github repo the MASTER version is the GY-521 version and the latest one.&lt;br /&gt;
&lt;br /&gt;
According your IMU module select the correct firmware from Github (GY-88,GY-87 and MPU-9250 are possible) by switching the branch.&lt;br /&gt;
&lt;br /&gt;
Note that the MPU-9250 is not always working perfectly (Noise on DC Motor freeze I2C line),On some 9250 chips you can see randomly I2C RTC error .So it's better to use GY-88 or GY-521 (More noise tolerant ??)&lt;br /&gt;
&lt;br /&gt;
If you see some freeze : first test for 2 or 3 hours with mow motor deactivate to be sure the motor noise is not too important.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Github_link.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
After unzip the github repository ,open the ardumower folder and the ardumower.ino. Before uploading the sketch ,verify that into mower.h the line :&lt;br /&gt;
&lt;br /&gt;
 *          #define Console Serial&lt;br /&gt;
 *          //#define Console SerialUSB&lt;br /&gt;
&lt;br /&gt;
are set like that : uncomment #define Console Serial to receive Console message inside your PC arduino ide console and comment #define Console SerialUSB&lt;br /&gt;
&lt;br /&gt;
Upload sketch inside DUE using programming port.&lt;br /&gt;
&lt;br /&gt;
==Arduremote or PFOD APP==&lt;br /&gt;
&lt;br /&gt;
To control mower with a phone or tablet you need to use a software named ARDUREMOTE.&lt;br /&gt;
&lt;br /&gt;
You can easily install it using the Play Store from your phone&lt;br /&gt;
&lt;br /&gt;
==Main==&lt;br /&gt;
&lt;br /&gt;
If BT or WIFI connection is OK you can see main menu from Arduremote :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_main.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Command==&lt;br /&gt;
&lt;br /&gt;
===Arduremote===&lt;br /&gt;
Command menu is the mostly used menu to start and stop the mowing cycle manually.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Command.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''OFF''' is used to stop immediately the mower.&lt;br /&gt;
&lt;br /&gt;
'''Start Now''' start the mowing cycle according pattern selection.&lt;br /&gt;
&lt;br /&gt;
'''Actual Status state and mowing''' are only readable value and change when mower run.&lt;br /&gt;
&lt;br /&gt;
'''Pattern is''' is used to select what you want the mower cycle do:&lt;br /&gt;
&lt;br /&gt;
Possible value are :&lt;br /&gt;
&lt;br /&gt;
LANE -&amp;gt; mower mow in parallel lane according lane setting&lt;br /&gt;
&lt;br /&gt;
RANDOM -&amp;gt; mower change to a new random direction each time the wire is detected or bumper is hit or motor sense is too high.&lt;br /&gt;
&lt;br /&gt;
WIRE -&amp;gt; mower track the wire and mow the border of the area until find the station.&lt;br /&gt;
&lt;br /&gt;
'''GO TO STATION''' is used to send mower to charging station without mowing.&lt;br /&gt;
&lt;br /&gt;
'''POWER OFF PCB''' Power off all the mower.&lt;br /&gt;
&lt;br /&gt;
'''USER SWITCH''' are optional setting.&lt;br /&gt;
&lt;br /&gt;
=== Button connected on P20 ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:P20_Button.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
The Button connected on P20 is an easy mower command and work like that:&lt;br /&gt;
&lt;br /&gt;
If mower is in '''OFF state''':&lt;br /&gt;
&lt;br /&gt;
Push less than 1 sec = start mow in LANE&lt;br /&gt;
&lt;br /&gt;
Push it 2 seconds = start mow in RANDOM&lt;br /&gt;
&lt;br /&gt;
Push it more then 3 Seconds = GO TO STATION&lt;br /&gt;
&lt;br /&gt;
If mower is '''running''':&lt;br /&gt;
&lt;br /&gt;
Push it to stop immediately&lt;br /&gt;
&lt;br /&gt;
==Console==&lt;br /&gt;
&lt;br /&gt;
When you use the soft Without Raspberry PI Option, if you don't understand some behaviour ,it's possible to use console.&lt;br /&gt;
&lt;br /&gt;
Console show all the message you need for understanding why mower stop or reverse or roll etc....&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_console.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
Here the setting page.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting 1.jpg|200px]]  [[Datei:ArduRemote Setting 3.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Only For the first start, or with a new RTC eeprom :If you have error, you need to go into arduremote COMMAND and click on OFF to stop beep and in main menu ERROR COUNTER reset all error,next into setting, do a ''save setting''.&lt;br /&gt;
&lt;br /&gt;
Power OFF the PCB , do not forget also to disconnected the USB PC cable to be sure all restart correctly.&lt;br /&gt;
&lt;br /&gt;
Restart with PC connected on Due programming Port and the Ide console speed is set at 115200 bps .&lt;br /&gt;
&lt;br /&gt;
ARDUINO IDE CONSOLE SHOW (it's example using MPU9250 imu) :&lt;br /&gt;
&lt;br /&gt;
[[Datei:normal_start.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to YES'''&lt;br /&gt;
&lt;br /&gt;
===ODOMETRY Setting===&lt;br /&gt;
3 Values are require and need to be set in this order:&lt;br /&gt;
&lt;br /&gt;
'''Value 1'''&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Odometry.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
You need to set the correct ticks per one full revolution and check the result&lt;br /&gt;
&lt;br /&gt;
Go To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_Test_odo.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Use 1 turn Wheel FWD&lt;br /&gt;
&lt;br /&gt;
The wheel need to accelerate ,roll , brake and stop after exactly one revolution.&lt;br /&gt;
&lt;br /&gt;
Sample video : https://youtu.be/BV7MgO6jfwA&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW:&lt;br /&gt;
&lt;br /&gt;
[[Datei:wheel_1_rev.png]]&lt;br /&gt;
&lt;br /&gt;
Repeat the test with 5 turn Wheel FWD to be sure.&lt;br /&gt;
&lt;br /&gt;
'''Value 2'''&lt;br /&gt;
 &lt;br /&gt;
Back To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
Now you need to set the correct Ticks per cm according the diameter of the wheel.&lt;br /&gt;
&lt;br /&gt;
you can find the value by this formula: Ticks per one full revolution / PI*diameter of the wheel &lt;br /&gt;
&lt;br /&gt;
In this example the DENNA platform (diameter wheel is near 23 cm) : 720/3.1415*23=9.9&lt;br /&gt;
&lt;br /&gt;
Back To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
Now use the ''3 meters Forward'' command to see if the value is OK.&lt;br /&gt;
&lt;br /&gt;
Here the video : https://youtu.be/v-yzRV4FEWA&lt;br /&gt;
&lt;br /&gt;
The mower need to run forward for 3 meters .Adjust the value again if result is not 3 meters +/-10 cm&lt;br /&gt;
&lt;br /&gt;
'''Value 3'''&lt;br /&gt;
 &lt;br /&gt;
Back To : ''Main Menu / Setting / Odometry''&lt;br /&gt;
&lt;br /&gt;
Now you need to set the correct Wheel Base in cm .&lt;br /&gt;
&lt;br /&gt;
It's the distance between the 2 wheels. It is use to compute correctly all the mower roll movement.&lt;br /&gt;
&lt;br /&gt;
Back To : ''Main Menu / Test ODO''&lt;br /&gt;
&lt;br /&gt;
Now use the Rotate 180 Deg and Rotate 360 Deg to verify the setting.Adjust the value again if result is not at +/- 5 Deg.&lt;br /&gt;
&lt;br /&gt;
Here the sample video : https://youtu.be/9uUA2qCqlrA&lt;br /&gt;
&lt;br /&gt;
Mower need to rotate according your choice.Change the Wheel Base in cm until you find 180 and 360 degrees&lt;br /&gt;
&lt;br /&gt;
===MOTOR Setting===&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Motor''&lt;br /&gt;
&lt;br /&gt;
[[Datei:Arduremote_Setting_motor_01.jpg|200px]]  [[Datei:Arduremote_Setting_motor_2.jpg|200px]]  [[Datei:Arduremote_Setting_motor_30.jpg|200px]]  [[Datei:Arduremote_Setting_motor_4.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
First set the POWER MAX to 100 to be sure the motor don't stop.&lt;br /&gt;
&lt;br /&gt;
Set PWM max speed for example to 150 (Put mower on the mowing area in flat location and with 4 meters free forward) click '''''Calib Ticks/Second'''''  to approach the correct RPM value from PWM one ,mower need to move  and compute and save the new RPM value.&lt;br /&gt;
&lt;br /&gt;
You can now repeat this step until find the correct value fo rPWM and RPM.&lt;br /&gt;
&lt;br /&gt;
Each time you change PWM max value you need too calibrate again the ticks per second (Not needed for RPM)&lt;br /&gt;
&lt;br /&gt;
RPM is use into manual mode and auto forward mode, so to check a new value simply go to ''Main Menu / Manual '' and drive forward.&lt;br /&gt;
&lt;br /&gt;
PWM is use into automatic mode on all small movement (Rev,Roll,accel etc..) and need to be enough for the mower to move smoothly.&lt;br /&gt;
&lt;br /&gt;
If the wheel don't roll smoothly in manual forward ,maybe you need to adjust the RPM_P RPM_I and RPM_D&lt;br /&gt;
&lt;br /&gt;
See PID Control : [https://wiki.ardumower.de/index.php?title=PID_control]&lt;br /&gt;
&lt;br /&gt;
Always start with RPM_D=0 and move the 2 sliders RPM_P and RPM_I. RPM_P increase the changing speed and RPM_I smooth the speed when near the RPM max speed.&lt;br /&gt;
&lt;br /&gt;
You need to find a correct Manual / forward drive before continue with the ''Power max'' setting.&lt;br /&gt;
&lt;br /&gt;
'''Remember that at 80% of the power max the mower react like if a bumper is pressed.'''&lt;br /&gt;
&lt;br /&gt;
When PWM is OK you can adjust the power max value  ,simply deactivate bumper and In ''Manual / Forward'' stop the mower with your foot, normally the mower stop before the wheel slip. State change to OFF and into console you can see the according message.&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW with max power=12:&lt;br /&gt;
&lt;br /&gt;
[[Datei:motor_power.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do not forget to reactivate the Bumper.&lt;br /&gt;
&lt;br /&gt;
''Slope Adjust Speed'' Set to YES if you have slope on your mowing area it's help to have same Motor speed in Uphill and Downhill.&lt;br /&gt;
&lt;br /&gt;
''Actual Slope Coeff'' if Slope Adjust Speed is YES this real time value can change from 0.8 to 1.2 according Downhill and Uphill (Normaly near 1.00 on flat location)&lt;br /&gt;
&lt;br /&gt;
''Power ignore time'' On motor start the sense can have a peak. During this delay the sense is not read.&lt;br /&gt;
&lt;br /&gt;
''Roll Degrees max'' Into random mowing and after the mower find the wire and reverse it roll randomly with this maximum value.&lt;br /&gt;
&lt;br /&gt;
''Roll Degrees min'' Into random mowing and after the mower find the wire and reverse it roll randomly with this minimum value.&lt;br /&gt;
&lt;br /&gt;
''Rev Distance / Perimeter'' is the distance that mower drive after cross the perimeter wire to return inside mowing area (Always &amp;gt; Stop Distance / Perimeter).&lt;br /&gt;
&lt;br /&gt;
''Stop Distance / Perimeter'' is the distance that mower drive after cross the perimeter wire before stop.&lt;br /&gt;
&lt;br /&gt;
''MotorSenseScaleLeft'' and right are here to help to have a real Power, but the main is that at 80% of Power max : mower stop and reverse.&lt;br /&gt;
&lt;br /&gt;
''Swap Left Direction'' and right need to stay to NO and it's better to directly invert the motor wire + and -&lt;br /&gt;
&lt;br /&gt;
''PWM Right Forward Offset'' if the right and left motor don't rotate exactly at the same speed , You can use this setting to adjust and repeat the test ODO 1 rev forward until the 2 wheel stop at the same time.&lt;br /&gt;
&lt;br /&gt;
''PWM Right Reverse Offset'' Same setting but when mower reverse.&lt;br /&gt;
&lt;br /&gt;
'''''Speed ODO Minimum''''' Important setting : it's the minimum PWM that the firmware send to motor to have a movement.If too low the mower make pause between movement, if too high the movement are not perfectly smooth.&lt;br /&gt;
&lt;br /&gt;
''Speed ODO Maximum'' help on very small movement (less the 1/4 rev wheel)&lt;br /&gt;
&lt;br /&gt;
'''''Calib Ticks/Second''''' You need to do this once. The mower run forward for 1 or 2 wheel rev and compute the ticks / second. It is used on each movement to know the duration of the state according to the distance you want to drive.&lt;br /&gt;
&lt;br /&gt;
===MOW setting ===&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to NO or the blade never run and BE CARREFULL THE BLADE RUN'''&lt;br /&gt;
 &lt;br /&gt;
Go To : ''Main Menu / Setting / Mow''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_mow_1.jpg|200px]]  [[Datei:ArduRemote_Setting_mow_2.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Mow motor can run at different speed according the high of grass.It's directly link to motor sense.&lt;br /&gt;
So you need to correctly set the max power of mow motor to have everything working correctly.&lt;br /&gt;
&lt;br /&gt;
Remember that at 80% of max power, mower start to mow in spiral mode, and at 100% of max power during 1 sec the motor is stop for more than 1 minute and restart automatically after, at a very high power the error hardware driver motor can also occur and you need a full power off to restart the mow motor &lt;br /&gt;
&lt;br /&gt;
To adjust everything try to find a location with medium high grass and low grass:&lt;br /&gt;
&lt;br /&gt;
Set the Power max to a small value (15 Watts for example)&lt;br /&gt;
 &lt;br /&gt;
Set the PWM Max speed to 255&lt;br /&gt;
&lt;br /&gt;
Set the PWM Min speed to 150&lt;br /&gt;
&lt;br /&gt;
Start to mow in auto mode in the low grass (The mow motor need to start at PWM=255 and reduce slowly during the next 10 seconds),now send the mower in high grass ,normally motor speed increase and spiral mowing start.&lt;br /&gt;
&lt;br /&gt;
If the spiral mowing start on low grass increase the Power max setting.&lt;br /&gt;
&lt;br /&gt;
Like for drive motor you can use calibrate mowsense to have a realistic sense,but the main is that mow spiral start on high grass and mow motor stop on overload in VERY HIGH GRASS.&lt;br /&gt;
&lt;br /&gt;
PWM coeff and actual PWM are actual (read only) value of the motor modulation.&lt;br /&gt;
&lt;br /&gt;
Mow Pattern Max Duration is used to change from Random mowing mode to Bylane mowing mode and avoid track on the mowing area.(The mower switch the 2 mode every 18 minutes in this case)&lt;br /&gt;
&lt;br /&gt;
===STATION setting===&lt;br /&gt;
&lt;br /&gt;
[[File:ArduRemote_setting_station.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''Station is blocking one , so the mower need to reverse to leave it.'''&lt;br /&gt;
&lt;br /&gt;
In schedule mode or start from station, mower use (IN THIS ORDER) reverse distance, Roll Angle and accel Distance after Roll to leave the station and start to find again perimeter wire to locate the mowing entry location according the timer setting, or track 1 meter if manual start from station.&lt;br /&gt;
&lt;br /&gt;
On Go Home mode mower track the wire and find the station (A voltage is detected on charging pin, or Bumper is pressed) it stop immediately and slowly go forward for the Station check Distance to be sure the contact is OK.&lt;br /&gt;
&lt;br /&gt;
If you use Right Sonar, the docking speed is reduce according to % of MaxSpeed each time something is detected while tracking the wire.&lt;br /&gt;
&lt;br /&gt;
On full schedule mode it's better to activate the Reboot after charging, by this way all variable are restore and everything work for week or month without any intervention.&lt;br /&gt;
&lt;br /&gt;
===PERIMETER setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Perimeter_1.jpg|200px]] [[Datei:ArduRemote_Setting_Perimeter_2.jpg|200px]] [[Datei:ArduRemote_Setting_Perimeter_03.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Main value is Mag and is negative when mower is inside area (near -2000 if mower inside and upper the wire).  In this case(139) the mower is outside at 3 meters of the wire.&lt;br /&gt;
&lt;br /&gt;
'''Mini Smag:'''&lt;br /&gt;
&lt;br /&gt;
Under this value the firmware estimate that the sender is OFF, so it's error.  To find the correct value simply put the mower in the area and unplug the sender (Read the Smag and add 20 or 30 , use slider to adjust MiniSmag)&lt;br /&gt;
&lt;br /&gt;
Check by start mowing and unplug the sender: Mower need to stop rapidly and go to error.&lt;br /&gt;
&lt;br /&gt;
'''Timeout(s) if outside :'''&lt;br /&gt;
&lt;br /&gt;
'''Big AREA Smag Center'''&lt;br /&gt;
&lt;br /&gt;
Help mower to not generate In/OUT transition in the middle of big area.  To find correct value ,simply put the mower in the middle area as far as possible from the wire and use Smag value.&lt;br /&gt;
&lt;br /&gt;
'''Tracking Max Speed PWM''' &lt;br /&gt;
&lt;br /&gt;
it's the tracking speed (lower value help to have a smooth tracking on curve)&lt;br /&gt;
&lt;br /&gt;
'''Circle Arc Distance...'''&lt;br /&gt;
&lt;br /&gt;
If mower find obstacle while tracking : it reverse,Roll 45 Deg and make a circle to find again the wire.&lt;br /&gt;
&lt;br /&gt;
'''Perimeter MAG MAX VALUE'''&lt;br /&gt;
&lt;br /&gt;
Put mower directly upper the wire and use here the maximum Mag value.&lt;br /&gt;
&lt;br /&gt;
'''Transition Timeout'''&lt;br /&gt;
&lt;br /&gt;
When tracking,Mower need to change from inside to outside using the PID, but if it fail after this transition time one wheel is stop to find again the wire.&lt;br /&gt;
If too important the mower can  fail tracking on 90 deg angle .&lt;br /&gt;
&lt;br /&gt;
'''Track Error Timeout'''&lt;br /&gt;
&lt;br /&gt;
If mower can't find In/OUt transition during this delay it's error.&lt;br /&gt;
&lt;br /&gt;
'''Track PID'''&lt;br /&gt;
&lt;br /&gt;
The Pid is use to smooth the tracking and need to be adjust according your platform (Distance between wheel and receiver coil,motor react speed etc..)&lt;br /&gt;
&lt;br /&gt;
'''Coil Polarity'''&lt;br /&gt;
&lt;br /&gt;
Do not change ,It's better to invert the wire at sender output.&lt;br /&gt;
&lt;br /&gt;
'''Read the 2 coils'''&lt;br /&gt;
&lt;br /&gt;
Only for dev test : Do not change&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Block inner wheel'''&lt;br /&gt;
&lt;br /&gt;
If YES the 2 wheels always roll forward , if NO one wheel can reverse to find again wire on big angle for example.&lt;br /&gt;
&lt;br /&gt;
'''Reduce Speed Near Wire'''&lt;br /&gt;
&lt;br /&gt;
If YES mower reduce the forward speed when near perimeter&lt;br /&gt;
&lt;br /&gt;
'''Actual Speed Coeff'''&lt;br /&gt;
&lt;br /&gt;
It's the real time value of speed ratio when mower approach the wire&lt;br /&gt;
&lt;br /&gt;
===IMU Wiring and Setting===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====MPU-9250 IMU WIRING TO PCB1.3====&lt;br /&gt;
'''MPU-9250 or 55 is not really stable''' (can work many hours or fail after some minutes without any particular reason) ,so it's better to use GY-88 / GY-521 + GY-273 more stable module&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:MPU-9250.jpg|400px]] &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Optional : It's possible to shunt the onboard DC/DC converter (NEVER PUT 5V on VCC with this option)&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-20.jpg|400px]] &lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
If you have some I2C error it's also possible to connect IMU on other location like I2C5 and JC5 to 3.3V to have a different pullup resistor.&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-40.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-88 IMU WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  G_ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-88.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-521 ACCEL/GYRO WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
 IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  ADO &amp;lt;-&amp;gt; IMU VCC&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-521.jpg|400px]] [[Datei:GY-521-1.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C2 IMU Compass and do not forget JC2 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:MPU-9250-30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
GY-521 don't have compass ,so you need to deactivate Compass into arduremote/setting/IMU or add a GY-273 module&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
====GY-273 COMPASS WIRING TO PCB1.3====&lt;br /&gt;
On the net you can find different module with fake chips like this one (Note HMC5883L on PCB but it's a QMC5883L),so you need to set the correct compass name into mower.cpp if it don't work with standard setting.&lt;br /&gt;
&lt;br /&gt;
 IMU       PCB&lt;br /&gt;
  VCC &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:Gy-273-1.jpg|400px]] [[Datei:Gy-273-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Connect module on I2C4 port and do not forget JC4 jumper to 3.3V&lt;br /&gt;
&lt;br /&gt;
[[Datei:Gy-273-3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
GY-273 is a compass that you use with GY-521 you need to activate Compass into arduremote/setting/IMU.'''And do not forget to calibrate it'''.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====GY-87 WIRING TO PCB1.3====&lt;br /&gt;
&lt;br /&gt;
  IMU       PCB&lt;br /&gt;
  VCC_IN &amp;lt;---&amp;gt; 3.3V&lt;br /&gt;
  GND &amp;lt;---&amp;gt; GND&lt;br /&gt;
  SDA &amp;lt;---&amp;gt; SDA&lt;br /&gt;
  SCL &amp;lt;---&amp;gt; SCL&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Datei:GY-87.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On GY-87 you can't change I2C adress and it's the same as RTC so you can't connect it on normal I2C port.&lt;br /&gt;
'''Connect module on I2C1 I2C_DUE'''&lt;br /&gt;
&lt;br /&gt;
[[Datei:GY-87-1.jpg|400px]] [[Datei:GY-87-2.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Select the correct firmware into Github&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===IMU Main Setting===&lt;br /&gt;
&lt;br /&gt;
MPU9255/9255-&amp;gt; [[Datei:ArduRemote_Setting_Imu_1.jpg|200px]]  [[Datei:ArduRemote_Setting_Imu_2.jpg|200px]]  or GY88/GY87-&amp;gt;[[Datei:ArduRemote_GY88.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
More info on IMU ,But no sensor fusion and not the same calibration process : [[Azurit_Firmware_(English)#IMU]]&lt;br /&gt;
&lt;br /&gt;
Here the video of IMU running to keep the heading : https://youtu.be/gxCrIb5geJM&lt;br /&gt;
&lt;br /&gt;
Imu (except GY-521) is composed by 2 parts : Compass and Gyro/Accel.&lt;br /&gt;
&lt;br /&gt;
Compass use magnetic earth field and is disturb by all motor and electronics in the mower, so it's very difficult to have correct value (for example a change of 10 deg is possible if you move the mower for only 1 deg). But it's reliable (If indicate 25 Deg and roll for 360 deg or wait 10 minutes it's always 25 Deg)&lt;br /&gt;
&lt;br /&gt;
Gyro/Accel is very accurate (+/- 1 or 2 deg) but can drift over time, (If indicate 25Deg and you wait 5 minute it can be 30Deg, but when you rotate slowly the mower you can see that everything is OK from 0 to 179 and from -179 to 0 Deg)&lt;br /&gt;
&lt;br /&gt;
The firmware can use or not the compass (Simply test and use the best according the location of the IMU in your platform)&lt;br /&gt;
&lt;br /&gt;
If GY-88/GY-87/GY-521 IMU are used ,you need to calibrate GYRO/ACCEL on the initial installation: Simply Go To ''Setting /  IMU'', press the ACCEL/GYRO initial calibration and wait 1 or 2 minutes without moving the mower (Arduremote lost connection during the process and it's normal if arduino ide is connected you can see the process in the console).&lt;br /&gt;
&lt;br /&gt;
For MPU/9255 or 9250 this process is automatically done on each start of the mower,so you can't see the button in arduremote .&lt;br /&gt;
&lt;br /&gt;
'''IMU Use'''&lt;br /&gt;
&lt;br /&gt;
Use or not the IMU (By lane require IMU to work correctly).&lt;br /&gt;
&lt;br /&gt;
'''Compass Use'''&lt;br /&gt;
if you use  GY-521 alone, you need to deactivate compass.Or if your IMU is locate near electronics or motor you can't calibrate it correctly ,so it's better to deactivate compass : Bylane mowing can result on drifting in parallel lane without compass but not always an issue in normal mowing condition.&lt;br /&gt;
&lt;br /&gt;
'''Stop Mow Motor During Calib'''&lt;br /&gt;
&lt;br /&gt;
It's possible to stop the mow motor to avoid compass noise but not really useful.&lt;br /&gt;
&lt;br /&gt;
'''P I D '''&lt;br /&gt;
&lt;br /&gt;
Like for the motor the PID need to be adjust if the mower don't drive smoothly in straight lane, Try to change the mower heading with your foot and normally the mower retrieve rapidly the precedent heading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calibration Max Duration '''&lt;br /&gt;
&lt;br /&gt;
When mower stop to adjust the Compass value to GYRO/ACCEL , the drift is check,If the drift is always present ,Mower continue to mow after this delay,but only in random mode.&lt;br /&gt;
&lt;br /&gt;
'''Delay between 2 calib'''&lt;br /&gt;
&lt;br /&gt;
Each time this delay is trig ,Mower stop , roll to find the compass actual heading and stop again to check if the drift is small,If it's OK heading is automatically adjust to continue to mow in always the same direction from north for example.If compass is not activate ,only drift is check.&lt;br /&gt;
&lt;br /&gt;
'''Drift Maxi in Deg per Second''&lt;br /&gt;
&lt;br /&gt;
When mower stop to calibrate ,This value is used to restart or wait again until drift stop.&lt;br /&gt;
&lt;br /&gt;
'''Speed to find ComYaw'''&lt;br /&gt;
&lt;br /&gt;
At the begin of calibration, mower roll and read compass,but it's possible to reduce Roll speed to find easily a new value.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====SETTING Without Compass====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]'''****** SAFETY ******'''  Go To : ''Main Menu / Setting / Mow Motor''&lt;br /&gt;
&lt;br /&gt;
'''Set Force mowing off to YES'''&lt;br /&gt;
&lt;br /&gt;
Set Compass Use to NO and leave all setting to default.In this case, Heading 0 is the start position of the mower&lt;br /&gt;
&lt;br /&gt;
To check if it's OK:&lt;br /&gt;
&lt;br /&gt;
Go To : ''Main Menu / Test IMU''&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_test_imu.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Maybe you need to reduce the motor PWM max speed if the test fail sometime (The mower need to roll slowly)&lt;br /&gt;
&lt;br /&gt;
Start to mow in random mode and change the mower heading with your foot (If IMU is OK The mower need to always keep the heading)&lt;br /&gt;
&lt;br /&gt;
Without Compass you can see that the Bylane mowing is not perfectly parallel over time&lt;br /&gt;
&lt;br /&gt;
Only the GYRO Yaw is updated in arduremote setting.&lt;br /&gt;
&lt;br /&gt;
On Normal mowing mode you can see the mower stop every 'Delay between 2 calib' seconds and wait until the GYRO/ACCEL drift is inferior to 'Drift Maxi in Deg per second' value.If this process fail, mower continue to mow in random mode.&lt;br /&gt;
&lt;br /&gt;
====SETTING With Compass====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Set Compass Use to YES and leave all setting to default.  &lt;br /&gt;
&lt;br /&gt;
You need To DO the Compass calibration each time you change IMU location in the mower or add metal/Magnet near IMU&lt;br /&gt;
&lt;br /&gt;
Start and stop the compass calibration  : click one time to start and move the entire mower around all axes until no new data coming in the Console click again to stop and save the new calibration data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CONSOLE SHOW :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:compass_calib.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now on the setting Imu arduremote page you can see the GYRO Yaw and Compass YAW value according to magnetic earth field.It's normal to don't have the 2 same values after 10 or 30 seconds or after roll the mower.And you can discover the main difference between GYRO/ACCEL and COMPASS.&lt;br /&gt;
&lt;br /&gt;
Heading 0 is normally North if no metal or magnet near compass.&lt;br /&gt;
&lt;br /&gt;
On Normal mowing mode you can see the mower stop every 'Delay between 2 calib' seconds , Roll until the compass find the lane heading and wait until the GYRO/ACCEL drift is inferior to 'Drift Maxi in Deg per second' value.If this process fail, mower continue to mow in random mode.&lt;br /&gt;
&lt;br /&gt;
===TIMER setting===&lt;br /&gt;
[[Datei:ArduRemote_Timer_0.jpg|200px]]  [[Datei:ArduRemote_Timer_1.jpg|200px]]  [[Datei:ArduRemote_Timer_2.jpg|200px]]  [[Datei:ArduRemote_Timer_3.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
The Timer is used to mow in full automatic mode for month or week.Timer can be trigger only if the mower is not into charge state.&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]]When you use the Go To Station from Arduremote the mower return to charging station and stop to check the Timer for the next 1 or 2 hours.&lt;br /&gt;
To do test and reuse timer ,you need to send OFF from arduremote when mower is in the station and wait 1 minute to see the mower start again from station using timer setting.&lt;br /&gt;
&lt;br /&gt;
On the first page the Use NO at the top deactivate all timer and leave mower in station.  Set it to yes and set up one of the 5 timer to make it work.&lt;br /&gt;
&lt;br /&gt;
Always Avoid that one timer stop later than other start or the opposite,or you can see strange behaviour.&lt;br /&gt;
&lt;br /&gt;
Start dist/Station is the distance the mower track the perimeter wire before start to mow.&lt;br /&gt;
&lt;br /&gt;
Use Beacon is here to use with RFID fast start process.&lt;br /&gt;
&lt;br /&gt;
Start Pattern can be Wire(Mower start from station ,mow the entire wire and back in station for the next hour) , LANE (it's parallel lane mowing mode) or Random.&lt;br /&gt;
&lt;br /&gt;
Start Area is used to select the correct mowing area, the Start dist/Station begin at the entry point of the new area.(ONLY POSSIBLE With RFID Option)&lt;br /&gt;
&lt;br /&gt;
Start Lane NR can be 1 2 or 3 like you define in the By Lane setting.&lt;br /&gt;
&lt;br /&gt;
Start Roll Dir is the roll direction Left or Right when the By Lane is in used.&lt;br /&gt;
&lt;br /&gt;
Start Max Lane Length is the distance max that mower drive on By Lane Mowing mode.&lt;br /&gt;
&lt;br /&gt;
Set to current time help to fill the start and stop sliders.&lt;br /&gt;
&lt;br /&gt;
===BYLANE setting===&lt;br /&gt;
[[Datei:mow_lane_result.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
To have acces to all setting the Dev mode need to be activate:&lt;br /&gt;
&lt;br /&gt;
[[Datei:DevToYes.png|210px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Byllane_1.jpg|210px]]  [[Datei:ArduRemote_Setting_Byllane_2.jpg|210px]]  [[Datei:ArduRemote_Setting_Byllane_3.jpg|210px|]]&lt;br /&gt;
&lt;br /&gt;
Using IMU and ODOMETRY  mower can mow in parallel lane faster than random mode, but you need to correctly setup IMU to have good and fast result.&lt;br /&gt;
&lt;br /&gt;
3 mains Lane are set ,Factory are 45, 90 and 135 degrees (Avoid value near 0).&lt;br /&gt;
For each Lane 2 opposites reverse heading are possible according the ROLL dir at the end of the initial lane.&lt;br /&gt;
So you need to adjust 9 angles, 3 for each lane.&lt;br /&gt;
&lt;br /&gt;
'''Change Lane in use''' Click to use the next lane&lt;br /&gt;
&lt;br /&gt;
'''Change next Roll Direction''' Click and mower change the next roll dir when reach the perimetr wire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''THIS Menu is Dynamic so Setting are made in live mode''' : Start to mow and see the menu changing (from Fixed Yaw to Yaw opposite right or left) each time mower stop and reverse,For first test : leave the Fixed Yaw to factory and adjust the left and right Yaw Opposite according the mower real time behaviour.&lt;br /&gt;
&lt;br /&gt;
For example if for the lane 1 you set a fixed yaw to 45 deg, you can set Yaw opposite 1 Roll Left to -135 or -134 . In this case the mower mow perfect parallel lane (reverse heading is exactly the opposite of fixed one)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bylane 2.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other example if for the lane 1 you set a fixed yaw to 45 deg, you can set Yaw opposite 1 Roll Right to -120 , the mower mow in a kind of Zig Zag and go fast from one side of area to the other.&lt;br /&gt;
&lt;br /&gt;
When mower is lock by a curve in wire perimeter (Red Circle in Picture) the Lane NR is automatically change and the IMU calibration start again to adjust Compass and GYRO, by this way it's possible to always mow on same heading in the garden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bylane 1.png|640px]]&lt;br /&gt;
&lt;br /&gt;
'''Dist Between lane''' It's the distance between 2 parallel lane according the weight of your mower.&lt;br /&gt;
&lt;br /&gt;
'''Lane Max length''' It help to reduce the error on IMU heading (Set length &amp;lt; 10 meters if you really want that mower mow perfectly parallel or set to max with a small difference in the 2 opposite YAW if you want to have a fast mowing mode,in this case it's not perfectly parallel but mow really faster)&lt;br /&gt;
&lt;br /&gt;
===BATTERY setting===&lt;br /&gt;
[[Datei:ArduRemote_Setting_Battery_1.jpg|200px]]  [[Datei:ArduRemote_Setting_Battery_2.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Use the Monitor option to auto stop the PCB and protect Battery.'''BETTER to leave it always YES'''.     And always YES if there is no BMS into your battery pack.&lt;br /&gt;
&lt;br /&gt;
'''Charge Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from charging station voltage.&lt;br /&gt;
&lt;br /&gt;
'''Battery Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from battery voltage.&lt;br /&gt;
&lt;br /&gt;
'''Sense Factor''' &lt;br /&gt;
&lt;br /&gt;
Coeff that help you to have a perfect value read from sense charging.&lt;br /&gt;
&lt;br /&gt;
'''Go Home if Volt below''' &lt;br /&gt;
&lt;br /&gt;
In mowing mode the mower automatically return to station when battery voltage is below this value.&lt;br /&gt;
&lt;br /&gt;
'''Switch off after minutes''' &lt;br /&gt;
&lt;br /&gt;
When mower is OFF or in ERROR state, PCB automatically shutdown after this delay ('''REQUIRE JP8 in AUTO MODE''')&lt;br /&gt;
&lt;br /&gt;
'''Switch off if Volt below''' &lt;br /&gt;
&lt;br /&gt;
PCB automatically shutdown if battery voltage is too low  ('''REQUIRE JP8 in AUTO MODE''')&lt;br /&gt;
&lt;br /&gt;
'''Start charge if Voltage below''' &lt;br /&gt;
&lt;br /&gt;
When mower reach the charging station, the charging start and you can see the 2 values (Charge and sense just upper this line).Be careful when testing ,if the battery is not really empty the charge don't start each time, it's a electronic result (you can see the battery voltage increase very fast), but in normal working mode, all work perfectly.&lt;br /&gt;
&lt;br /&gt;
'''Stop charge if Sense below''' &lt;br /&gt;
&lt;br /&gt;
You can set here the minimum Sense that the battery drain at the end of the charging process.If too low the charging process is automatically stop after 5 hours and a message is send on the Console.&lt;br /&gt;
&lt;br /&gt;
===SONAR setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_Sonar.jpg|200px]]  [[Datei:JSN_SR04T.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Firmware is tested for this type of Sonar : JSN-SR04T &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sonar can be used like a bumper : When trigge, mower speed is reduce and mower stop after the detection distance without hitting obstacle. &lt;br /&gt;
&lt;br /&gt;
Or Sonar can simply reduce motor speed for the next 3 seconds.&lt;br /&gt;
&lt;br /&gt;
Into mower.cpp you can simply change this line to true to change behaviour&lt;br /&gt;
&lt;br /&gt;
  sonarLikeBumper            =false;      //ultrasonic reduce speed vs bumper like&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sonar brake below'''&lt;br /&gt;
&lt;br /&gt;
Only this distance is scan by the sonar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sonar To Front Dist'''&lt;br /&gt;
&lt;br /&gt;
Distance between front of mower and sonar location, useful to never touch obstacle.&lt;br /&gt;
&lt;br /&gt;
===RAIN TEMP setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Rain.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
'''Rain Use''' &lt;br /&gt;
&lt;br /&gt;
set to YES if you want that Mower go to station when rain sensor is trig&lt;br /&gt;
&lt;br /&gt;
'''DHT22Use''' &lt;br /&gt;
&lt;br /&gt;
set to YES if you have connected a DHT22 sensor on PCB1.3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Maximum Temperature''' &lt;br /&gt;
&lt;br /&gt;
When DHT22 temp is upper this value the mower goes into ERROR and the PCB is totally power OFF.&lt;br /&gt;
To be tested ,maybe bug here.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OLED Screen setting===&lt;br /&gt;
&lt;br /&gt;
[[Datei:OLED_PCB1.3_wiring.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In AZURITBER Ver &amp;gt;= 1.6 It's possible to connect small OLED screen on the PCB1.3 I2C1 port&lt;br /&gt;
&lt;br /&gt;
Resolution is fixed to 128 * 64 pixel and can use 1.3 or 0.96 pouce  screen&lt;br /&gt;
&lt;br /&gt;
The oled need to be I2C U8G2 compatible, so SSD1306 or SH1106 I2C model :&lt;br /&gt;
&lt;br /&gt;
https://www.marotronics.de/Ecran-OLED-096-bleu-jaune-I2C-SPI-128x64-SSD1106-pour-Arduino-Raspberry-Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You need to Enable it into mower.h line 128&lt;br /&gt;
&lt;br /&gt;
 #define Enable_Screen true&lt;br /&gt;
 *      //#define Enable_Screen false&lt;br /&gt;
&lt;br /&gt;
And select the correct model into screen.cpp . Factory setting are for 1.3 Pouce model from Ebay.&lt;br /&gt;
 &lt;br /&gt;
 U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);&lt;br /&gt;
 U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);&lt;br /&gt;
&lt;br /&gt;
According the status of the mower Oled show different screen :&lt;br /&gt;
&lt;br /&gt;
In OFF mode :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_OFF.png|200px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While mower running :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_mow.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When Charging :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_charge.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When into station waiting for next timer start :&lt;br /&gt;
&lt;br /&gt;
[[Datei:oled_station.png|200px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Level 2 Raspberry Pi =&lt;br /&gt;
&lt;br /&gt;
It's here : [[AzuritBer_Pi_Firmware_(English)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Level 3 Raspberry Pi + RFID =&lt;br /&gt;
&lt;br /&gt;
It's here : [[AzuritBer_Pi_Firmware_RFID(English)]]&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10327</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10327"/>
				<updated>2022-02-05T10:13:28Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Back to station from Optional area */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
It's very '''useful on big mowing area or complex one with a lot of island'''.&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
==FIRMWARE ESP32 ==&lt;br /&gt;
&lt;br /&gt;
see here :&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&lt;br /&gt;
&lt;br /&gt;
you need to activate the RFID in config.h before uploading code in the ESP32 &lt;br /&gt;
&lt;br /&gt;
 #define rfid_board_IsPluged true //Set to true or false according your hardware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code into Arduremote / setting / RFID each time you move a tag near the reader and if it's a new tag : a record is add with a WAIT status and nothing to do.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
Go to arduremote / Setting / Rfid menu to edit or delete tag&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
When mower track the wire it use a status ,for example &amp;quot;TRACKTOSTART&amp;quot; or &amp;quot;WIREMOWING&amp;quot; etc...&lt;br /&gt;
&lt;br /&gt;
According this status and the Tag ID that mower find on the wire you need to set a TODO value to indicate what you want:&lt;br /&gt;
&lt;br /&gt;
So 2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
&lt;br /&gt;
From RFID List ,click on on tag Nr to see the detail menu:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_30.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Now change Status, ToDo and all slider according your need:&lt;br /&gt;
&lt;br /&gt;
For permanent backup hit SAVE LIST to save your change in the mower eeprom.&lt;br /&gt;
&lt;br /&gt;
As 1 tag can be use for different ToDO you can use the DUPLICATE OPTION to have multiple record.&lt;br /&gt;
&lt;br /&gt;
Hit DELETE THIS TAG to remove the tag from database .&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_40.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Move a tag near the reader to add a new one.&lt;br /&gt;
&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_50.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_60.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
When tag 703a7f81 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 60 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_70.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 703a7f81 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_80.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
When tag d4d7f is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 22 meters , roll again -91 and run for 4.7 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_90.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
When tag d4d7f is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -81 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 18.7 meters , roll again -91 and run for 21.7 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track and find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10326</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10326"/>
				<updated>2022-02-05T10:11:46Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Go to new mowing Area */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
It's very '''useful on big mowing area or complex one with a lot of island'''.&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
==FIRMWARE ESP32 ==&lt;br /&gt;
&lt;br /&gt;
see here :&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&lt;br /&gt;
&lt;br /&gt;
you need to activate the RFID in config.h before uploading code in the ESP32 &lt;br /&gt;
&lt;br /&gt;
 #define rfid_board_IsPluged true //Set to true or false according your hardware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code into Arduremote / setting / RFID each time you move a tag near the reader and if it's a new tag : a record is add with a WAIT status and nothing to do.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
Go to arduremote / Setting / Rfid menu to edit or delete tag&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
When mower track the wire it use a status ,for example &amp;quot;TRACKTOSTART&amp;quot; or &amp;quot;WIREMOWING&amp;quot; etc...&lt;br /&gt;
&lt;br /&gt;
According this status and the Tag ID that mower find on the wire you need to set a TODO value to indicate what you want:&lt;br /&gt;
&lt;br /&gt;
So 2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
&lt;br /&gt;
From RFID List ,click on on tag Nr to see the detail menu:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_30.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Now change Status, ToDo and all slider according your need:&lt;br /&gt;
&lt;br /&gt;
For permanent backup hit SAVE LIST to save your change in the mower eeprom.&lt;br /&gt;
&lt;br /&gt;
As 1 tag can be use for different ToDO you can use the DUPLICATE OPTION to have multiple record.&lt;br /&gt;
&lt;br /&gt;
Hit DELETE THIS TAG to remove the tag from database .&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_40.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Move a tag near the reader to add a new one.&lt;br /&gt;
&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_50.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_60.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
When tag 703a7f81 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 60 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_70.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 703a7f81 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_80.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
When tag d4d7f is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 22 meters , roll again -91 and run for 4.7 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Datei:ArduRemote_Setting_RFID_90.jpg&amp;diff=10325</id>
		<title>Datei:ArduRemote Setting RFID 90.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Datei:ArduRemote_Setting_RFID_90.jpg&amp;diff=10325"/>
				<updated>2022-02-05T10:08:56Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Datei:ArduRemote_Setting_RFID_80.jpg&amp;diff=10324</id>
		<title>Datei:ArduRemote Setting RFID 80.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Datei:ArduRemote_Setting_RFID_80.jpg&amp;diff=10324"/>
				<updated>2022-02-05T10:08:41Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10323</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10323"/>
				<updated>2022-02-05T10:04:35Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Fast Start */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
It's very '''useful on big mowing area or complex one with a lot of island'''.&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
==FIRMWARE ESP32 ==&lt;br /&gt;
&lt;br /&gt;
see here :&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&lt;br /&gt;
&lt;br /&gt;
you need to activate the RFID in config.h before uploading code in the ESP32 &lt;br /&gt;
&lt;br /&gt;
 #define rfid_board_IsPluged true //Set to true or false according your hardware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code into Arduremote / setting / RFID each time you move a tag near the reader and if it's a new tag : a record is add with a WAIT status and nothing to do.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
Go to arduremote / Setting / Rfid menu to edit or delete tag&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
When mower track the wire it use a status ,for example &amp;quot;TRACKTOSTART&amp;quot; or &amp;quot;WIREMOWING&amp;quot; etc...&lt;br /&gt;
&lt;br /&gt;
According this status and the Tag ID that mower find on the wire you need to set a TODO value to indicate what you want:&lt;br /&gt;
&lt;br /&gt;
So 2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
&lt;br /&gt;
From RFID List ,click on on tag Nr to see the detail menu:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_30.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Now change Status, ToDo and all slider according your need:&lt;br /&gt;
&lt;br /&gt;
For permanent backup hit SAVE LIST to save your change in the mower eeprom.&lt;br /&gt;
&lt;br /&gt;
As 1 tag can be use for different ToDO you can use the DUPLICATE OPTION to have multiple record.&lt;br /&gt;
&lt;br /&gt;
Hit DELETE THIS TAG to remove the tag from database .&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_40.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Move a tag near the reader to add a new one.&lt;br /&gt;
&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_50.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_60.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
When tag 703a7f81 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 60 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_70.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 703a7f81 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10322</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10322"/>
				<updated>2022-02-05T10:04:24Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Change tracking speed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
It's very '''useful on big mowing area or complex one with a lot of island'''.&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
==FIRMWARE ESP32 ==&lt;br /&gt;
&lt;br /&gt;
see here :&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&lt;br /&gt;
&lt;br /&gt;
you need to activate the RFID in config.h before uploading code in the ESP32 &lt;br /&gt;
&lt;br /&gt;
 #define rfid_board_IsPluged true //Set to true or false according your hardware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code into Arduremote / setting / RFID each time you move a tag near the reader and if it's a new tag : a record is add with a WAIT status and nothing to do.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
Go to arduremote / Setting / Rfid menu to edit or delete tag&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
When mower track the wire it use a status ,for example &amp;quot;TRACKTOSTART&amp;quot; or &amp;quot;WIREMOWING&amp;quot; etc...&lt;br /&gt;
&lt;br /&gt;
According this status and the Tag ID that mower find on the wire you need to set a TODO value to indicate what you want:&lt;br /&gt;
&lt;br /&gt;
So 2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
&lt;br /&gt;
From RFID List ,click on on tag Nr to see the detail menu:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_30.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Now change Status, ToDo and all slider according your need:&lt;br /&gt;
&lt;br /&gt;
For permanent backup hit SAVE LIST to save your change in the mower eeprom.&lt;br /&gt;
&lt;br /&gt;
As 1 tag can be use for different ToDO you can use the DUPLICATE OPTION to have multiple record.&lt;br /&gt;
&lt;br /&gt;
Hit DELETE THIS TAG to remove the tag from database .&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_40.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Move a tag near the reader to add a new one.&lt;br /&gt;
&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_50.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_80.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
When tag 703a7f81 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 60 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_70.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 703a7f81 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10321</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10321"/>
				<updated>2022-02-05T10:02:08Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Fast Start */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
It's very '''useful on big mowing area or complex one with a lot of island'''.&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
==FIRMWARE ESP32 ==&lt;br /&gt;
&lt;br /&gt;
see here :&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&lt;br /&gt;
&lt;br /&gt;
you need to activate the RFID in config.h before uploading code in the ESP32 &lt;br /&gt;
&lt;br /&gt;
 #define rfid_board_IsPluged true //Set to true or false according your hardware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code into Arduremote / setting / RFID each time you move a tag near the reader and if it's a new tag : a record is add with a WAIT status and nothing to do.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
Go to arduremote / Setting / Rfid menu to edit or delete tag&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
When mower track the wire it use a status ,for example &amp;quot;TRACKTOSTART&amp;quot; or &amp;quot;WIREMOWING&amp;quot; etc...&lt;br /&gt;
&lt;br /&gt;
According this status and the Tag ID that mower find on the wire you need to set a TODO value to indicate what you want:&lt;br /&gt;
&lt;br /&gt;
So 2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
&lt;br /&gt;
From RFID List ,click on on tag Nr to see the detail menu:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_30.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Now change Status, ToDo and all slider according your need:&lt;br /&gt;
&lt;br /&gt;
For permanent backup hit SAVE LIST to save your change in the mower eeprom.&lt;br /&gt;
&lt;br /&gt;
As 1 tag can be use for different ToDO you can use the DUPLICATE OPTION to have multiple record.&lt;br /&gt;
&lt;br /&gt;
Hit DELETE THIS TAG to remove the tag from database .&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_40.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Move a tag near the reader to add a new one.&lt;br /&gt;
&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_50.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_80.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
When tag 703a7f81 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 60 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 4082DA95 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10320</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10320"/>
				<updated>2022-02-05T10:01:52Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Fast Start */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
It's very '''useful on big mowing area or complex one with a lot of island'''.&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
==FIRMWARE ESP32 ==&lt;br /&gt;
&lt;br /&gt;
see here :&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&lt;br /&gt;
&lt;br /&gt;
you need to activate the RFID in config.h before uploading code in the ESP32 &lt;br /&gt;
&lt;br /&gt;
 #define rfid_board_IsPluged true //Set to true or false according your hardware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code into Arduremote / setting / RFID each time you move a tag near the reader and if it's a new tag : a record is add with a WAIT status and nothing to do.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
Go to arduremote / Setting / Rfid menu to edit or delete tag&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
When mower track the wire it use a status ,for example &amp;quot;TRACKTOSTART&amp;quot; or &amp;quot;WIREMOWING&amp;quot; etc...&lt;br /&gt;
&lt;br /&gt;
According this status and the Tag ID that mower find on the wire you need to set a TODO value to indicate what you want:&lt;br /&gt;
&lt;br /&gt;
So 2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
&lt;br /&gt;
From RFID List ,click on on tag Nr to see the detail menu:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_30.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Now change Status, ToDo and all slider according your need:&lt;br /&gt;
&lt;br /&gt;
For permanent backup hit SAVE LIST to save your change in the mower eeprom.&lt;br /&gt;
&lt;br /&gt;
As 1 tag can be use for different ToDO you can use the DUPLICATE OPTION to have multiple record.&lt;br /&gt;
&lt;br /&gt;
Hit DELETE THIS TAG to remove the tag from database .&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_40.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Move a tag near the reader to add a new one.&lt;br /&gt;
&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_50.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_80|200px]]&lt;br /&gt;
&lt;br /&gt;
When tag 703a7f81 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 60 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 4082DA95 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10319</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10319"/>
				<updated>2022-02-05T10:00:03Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Fast Return to station */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
It's very '''useful on big mowing area or complex one with a lot of island'''.&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
==FIRMWARE ESP32 ==&lt;br /&gt;
&lt;br /&gt;
see here :&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&lt;br /&gt;
&lt;br /&gt;
you need to activate the RFID in config.h before uploading code in the ESP32 &lt;br /&gt;
&lt;br /&gt;
 #define rfid_board_IsPluged true //Set to true or false according your hardware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code into Arduremote / setting / RFID each time you move a tag near the reader and if it's a new tag : a record is add with a WAIT status and nothing to do.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
Go to arduremote / Setting / Rfid menu to edit or delete tag&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
When mower track the wire it use a status ,for example &amp;quot;TRACKTOSTART&amp;quot; or &amp;quot;WIREMOWING&amp;quot; etc...&lt;br /&gt;
&lt;br /&gt;
According this status and the Tag ID that mower find on the wire you need to set a TODO value to indicate what you want:&lt;br /&gt;
&lt;br /&gt;
So 2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
&lt;br /&gt;
From RFID List ,click on on tag Nr to see the detail menu:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_30.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Now change Status, ToDo and all slider according your need:&lt;br /&gt;
&lt;br /&gt;
For permanent backup hit SAVE LIST to save your change in the mower eeprom.&lt;br /&gt;
&lt;br /&gt;
As 1 tag can be use for different ToDO you can use the DUPLICATE OPTION to have multiple record.&lt;br /&gt;
&lt;br /&gt;
Hit DELETE THIS TAG to remove the tag from database .&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_40.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Move a tag near the reader to add a new one.&lt;br /&gt;
&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_50.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 1AD8DB95 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 50 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 4082DA95 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Datei:ArduRemote_Setting_RFID_70.jpg&amp;diff=10318</id>
		<title>Datei:ArduRemote Setting RFID 70.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Datei:ArduRemote_Setting_RFID_70.jpg&amp;diff=10318"/>
				<updated>2022-02-05T09:58:26Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Datei:ArduRemote_Setting_RFID_60.jpg&amp;diff=10317</id>
		<title>Datei:ArduRemote Setting RFID 60.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Datei:ArduRemote_Setting_RFID_60.jpg&amp;diff=10317"/>
				<updated>2022-02-05T09:58:09Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Datei:ArduRemote_Setting_RFID_50.jpg&amp;diff=10316</id>
		<title>Datei:ArduRemote Setting RFID 50.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Datei:ArduRemote_Setting_RFID_50.jpg&amp;diff=10316"/>
				<updated>2022-02-05T09:57:57Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10315</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10315"/>
				<updated>2022-02-05T09:50:08Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Edit a record */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
It's very '''useful on big mowing area or complex one with a lot of island'''.&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
==FIRMWARE ESP32 ==&lt;br /&gt;
&lt;br /&gt;
see here :&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&lt;br /&gt;
&lt;br /&gt;
you need to activate the RFID in config.h before uploading code in the ESP32 &lt;br /&gt;
&lt;br /&gt;
 #define rfid_board_IsPluged true //Set to true or false according your hardware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code into Arduremote / setting / RFID each time you move a tag near the reader and if it's a new tag : a record is add with a WAIT status and nothing to do.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
Go to arduremote / Setting / Rfid menu to edit or delete tag&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
When mower track the wire it use a status ,for example &amp;quot;TRACKTOSTART&amp;quot; or &amp;quot;WIREMOWING&amp;quot; etc...&lt;br /&gt;
&lt;br /&gt;
According this status and the Tag ID that mower find on the wire you need to set a TODO value to indicate what you want:&lt;br /&gt;
&lt;br /&gt;
So 2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
&lt;br /&gt;
From RFID List ,click on on tag Nr to see the detail menu:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_30.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Now change Status, ToDo and all slider according your need:&lt;br /&gt;
&lt;br /&gt;
For permanent backup hit SAVE LIST to save your change in the mower eeprom.&lt;br /&gt;
&lt;br /&gt;
As 1 tag can be use for different ToDO you can use the DUPLICATE OPTION to have multiple record.&lt;br /&gt;
&lt;br /&gt;
Hit DELETE THIS TAG to remove the tag from database .&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_40.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Move a tag near the reader to add a new one.&lt;br /&gt;
&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB95 is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 1AD8DB95 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 50 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 4082DA95 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10314</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10314"/>
				<updated>2022-02-05T09:49:13Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Edit a record */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
It's very '''useful on big mowing area or complex one with a lot of island'''.&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
==FIRMWARE ESP32 ==&lt;br /&gt;
&lt;br /&gt;
see here :&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&lt;br /&gt;
&lt;br /&gt;
you need to activate the RFID in config.h before uploading code in the ESP32 &lt;br /&gt;
&lt;br /&gt;
 #define rfid_board_IsPluged true //Set to true or false according your hardware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code into Arduremote / setting / RFID each time you move a tag near the reader and if it's a new tag : a record is add with a WAIT status and nothing to do.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
Go to arduremote / Setting / Rfid menu to edit or delete tag&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
When mower track the wire it use a status ,for example &amp;quot;TRACKTOSTART&amp;quot; or &amp;quot;WIREMOWING&amp;quot; etc...&lt;br /&gt;
&lt;br /&gt;
According this status and the Tag ID that mower find on the wire you need to set a TODO value to indicate what you want:&lt;br /&gt;
&lt;br /&gt;
So 2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
&lt;br /&gt;
From RFID List ,click on on tag Nr to see the detail menu:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_30.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Now change Status, ToDo and all slider according your need:&lt;br /&gt;
&lt;br /&gt;
For permanent backup hit SAVE LIST to save your change in the mower eeprom.&lt;br /&gt;
&lt;br /&gt;
As 1 tag can be use for different ToDO you can use the DUPLICATE OPTION to have multiple record.&lt;br /&gt;
&lt;br /&gt;
Hit DELETE THIS TAG to remove the tag from database .&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_40.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
Move a tag near the reader to add a new one.&lt;br /&gt;
&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB95 is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 1AD8DB95 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 50 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 4082DA95 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10313</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10313"/>
				<updated>2022-02-05T09:48:56Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Edit a record */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
It's very '''useful on big mowing area or complex one with a lot of island'''.&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
==FIRMWARE ESP32 ==&lt;br /&gt;
&lt;br /&gt;
see here :&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&lt;br /&gt;
&lt;br /&gt;
you need to activate the RFID in config.h before uploading code in the ESP32 &lt;br /&gt;
&lt;br /&gt;
 #define rfid_board_IsPluged true //Set to true or false according your hardware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code into Arduremote / setting / RFID each time you move a tag near the reader and if it's a new tag : a record is add with a WAIT status and nothing to do.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
Go to arduremote / Setting / Rfid menu to edit or delete tag&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
When mower track the wire it use a status ,for example &amp;quot;TRACKTOSTART&amp;quot; or &amp;quot;WIREMOWING&amp;quot; etc...&lt;br /&gt;
&lt;br /&gt;
According this status and the Tag ID that mower find on the wire you need to set a TODO value to indicate what you want:&lt;br /&gt;
&lt;br /&gt;
So 2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
&lt;br /&gt;
From RFID List ,click on on tag Nr to see the detail menu:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_30.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Now change Status, ToDo and all slider according your need:&lt;br /&gt;
&lt;br /&gt;
For permanent backup hit SAVE LIST to save your change in the mower eeprom.&lt;br /&gt;
&lt;br /&gt;
As 1 tag can be use for different ToDO you can use the DUPLICATE OPTION to have multiple record.&lt;br /&gt;
&lt;br /&gt;
Hit DELETE THIS TAG to remove the tag from database .&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_40.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Move a tag near the reader to add a new one.&lt;br /&gt;
&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB95 is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 1AD8DB95 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 50 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 4082DA95 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10312</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10312"/>
				<updated>2022-02-05T09:41:21Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Setting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
It's very '''useful on big mowing area or complex one with a lot of island'''.&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
==FIRMWARE ESP32 ==&lt;br /&gt;
&lt;br /&gt;
see here :&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&lt;br /&gt;
&lt;br /&gt;
you need to activate the RFID in config.h before uploading code in the ESP32 &lt;br /&gt;
&lt;br /&gt;
 #define rfid_board_IsPluged true //Set to true or false according your hardware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code into Arduremote / setting / RFID each time you move a tag near the reader and if it's a new tag : a record is add with a WAIT status and nothing to do.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
Go to arduremote / Setting / Rfid menu to edit or delete tag&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote_Setting_RFID_10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
When mower track the wire it use a status ,for example &amp;quot;TRACKTOSTART&amp;quot; or &amp;quot;WIREMOWING&amp;quot; etc...&lt;br /&gt;
&lt;br /&gt;
According this status and the Tag ID that mower find on the wire you need to set a TODO value to indicate what you want:&lt;br /&gt;
&lt;br /&gt;
So 2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
Be careful To edit existing tag : click on the list to choose the tag you want to edit.Click on Delete This Tag to remove old tag from list.Now change value on the text box on right part of the screen , and click on Add this Tag to add the new one.Do not forget to save to file.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB95 is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 1AD8DB95 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 50 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 4082DA95 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Datei:ArduRemote_Setting_RFID_40.jpg&amp;diff=10311</id>
		<title>Datei:ArduRemote Setting RFID 40.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Datei:ArduRemote_Setting_RFID_40.jpg&amp;diff=10311"/>
				<updated>2022-02-05T09:35:09Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Datei:ArduRemote_Setting_RFID_30.jpg&amp;diff=10310</id>
		<title>Datei:ArduRemote Setting RFID 30.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Datei:ArduRemote_Setting_RFID_30.jpg&amp;diff=10310"/>
				<updated>2022-02-05T09:34:51Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10309</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10309"/>
				<updated>2022-02-05T09:30:28Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* FIRMWARE ESP32 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
It's very '''useful on big mowing area or complex one with a lot of island'''.&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
==FIRMWARE ESP32 ==&lt;br /&gt;
&lt;br /&gt;
see here :&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&lt;br /&gt;
&lt;br /&gt;
you need to activate the RFID in config.h before uploading code in the ESP32 &lt;br /&gt;
&lt;br /&gt;
 #define rfid_board_IsPluged true //Set to true or false according your hardware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code into Arduremote / setting / RFID each time you move a tag near the reader and if it's a new tag : a record is add with a WAIT status and nothing to do.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 10.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting RFID 20.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
The same tag can be use to different behaviour.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 18.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
Be careful To edit existing tag : click on the list to choose the tag you want to edit.Click on Delete This Tag to remove old tag from list.Now change value on the text box on right part of the screen , and click on Add this Tag to add the new one.Do not forget to save to file.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB95 is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 1AD8DB95 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 50 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 4082DA95 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Datei:ArduRemote_Setting_RFID_20.jpg&amp;diff=10308</id>
		<title>Datei:ArduRemote Setting RFID 20.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Datei:ArduRemote_Setting_RFID_20.jpg&amp;diff=10308"/>
				<updated>2022-02-05T09:29:42Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=Datei:ArduRemote_Setting_RFID_10.jpg&amp;diff=10307</id>
		<title>Datei:ArduRemote Setting RFID 10.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=Datei:ArduRemote_Setting_RFID_10.jpg&amp;diff=10307"/>
				<updated>2022-02-05T09:29:09Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10306</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10306"/>
				<updated>2022-02-05T09:27:57Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
It's very '''useful on big mowing area or complex one with a lot of island'''.&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
==FIRMWARE ESP32 ==&lt;br /&gt;
&lt;br /&gt;
see here :&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&lt;br /&gt;
&lt;br /&gt;
you need to activate the RFID in config.h before uploading code in the ESP32 &lt;br /&gt;
&lt;br /&gt;
 #define rfid_board_IsPluged true //Set to true or false according your hardware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code into Arduremote / setting / RFID each time you move a tag near the reader and if it's a new tag : a record is add with a WAIT status and nothing to do.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting gps rfid.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu console 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
The same tag can be use to different behaviour.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 18.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
Be careful To edit existing tag : click on the list to choose the tag you want to edit.Click on Delete This Tag to remove old tag from list.Now change value on the text box on right part of the screen , and click on Add this Tag to add the new one.Do not forget to save to file.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB95 is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 1AD8DB95 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 50 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 4082DA95 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10305</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10305"/>
				<updated>2022-02-05T09:25:59Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Hardware connecting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
It's very '''useful on big mowing area or complex one with a lot of island'''.&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
==FIRMWARE ESP32 ==&lt;br /&gt;
&lt;br /&gt;
see here :&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&lt;br /&gt;
&lt;br /&gt;
you need to activate the RFID in config.h before uploading code in the ESP32 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code into Arduremote / setting / RFID each time you move a tag near the reader and if it's a new tag : a record is add with a WAIT status and nothing to do.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting gps rfid.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu console 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Into Piardu in menu RFID you can choose what you want the mower do:&lt;br /&gt;
&lt;br /&gt;
2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
The same tag can be use to different behaviour.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 18.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
Be careful To edit existing tag : click on the list to choose the tag you want to edit.Click on Delete This Tag to remove old tag from list.Now change value on the text box on right part of the screen , and click on Add this Tag to add the new one.Do not forget to save to file.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB95 is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 1AD8DB95 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 50 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 4082DA95 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10304</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10304"/>
				<updated>2022-02-05T09:24:50Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Hardware connecting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
It's very '''useful on big mowing area or complex one with a lot of island'''.&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
For firmware part see here :&lt;br /&gt;
&lt;br /&gt;
 https://wiki.ardumower.de/index.php?title=AzuritBer_ESP32_option_(English)&lt;br /&gt;
&lt;br /&gt;
you need to activate the RFID in config.h before uploading code in the ESP32 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code into Arduremote / setting / RFID each time you move a tag near the reader and if it's a new tag : a record is add with a WAIT status and nothing to do.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting gps rfid.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu console 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Into Piardu in menu RFID you can choose what you want the mower do:&lt;br /&gt;
&lt;br /&gt;
2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
The same tag can be use to different behaviour.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 18.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
Be careful To edit existing tag : click on the list to choose the tag you want to edit.Click on Delete This Tag to remove old tag from list.Now change value on the text box on right part of the screen , and click on Add this Tag to add the new one.Do not forget to save to file.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB95 is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 1AD8DB95 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 50 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 4082DA95 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10303</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10303"/>
				<updated>2022-02-05T09:22:27Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Hardware connecting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
It's very '''useful on big mowing area or complex one with a lot of island'''.&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
For software part you need to activate the RFID in config.h before uploading code in the ESP32 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code into Arduremote / setting / RFID each time you move a tag near the reader and if it's a new tag : a record is add with a WAIT status and nothing to do.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting gps rfid.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu console 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Into Piardu in menu RFID you can choose what you want the mower do:&lt;br /&gt;
&lt;br /&gt;
2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
The same tag can be use to different behaviour.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 18.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
Be careful To edit existing tag : click on the list to choose the tag you want to edit.Click on Delete This Tag to remove old tag from list.Now change value on the text box on right part of the screen , and click on Add this Tag to add the new one.Do not forget to save to file.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB95 is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 1AD8DB95 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 50 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 4082DA95 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10302</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10302"/>
				<updated>2022-02-05T09:20:24Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
It's very '''useful on big mowing area or complex one with a lot of island'''.&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
Using arduino IDE , You can download firmware inside ESP32 to have everything working : &lt;br /&gt;
https://github.com/Boilevin/AzuritBer/tree/master/ESP32_RFID&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code into Arduremote / setting / RFID each time you move a tag near the reader and if it's a new tag : a record is add with a WAIT status and nothing to do.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting gps rfid.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu console 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Into Piardu in menu RFID you can choose what you want the mower do:&lt;br /&gt;
&lt;br /&gt;
2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
The same tag can be use to different behaviour.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 18.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
Be careful To edit existing tag : click on the list to choose the tag you want to edit.Click on Delete This Tag to remove old tag from list.Now change value on the text box on right part of the screen , and click on Add this Tag to add the new one.Do not forget to save to file.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB95 is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 1AD8DB95 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 50 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 4082DA95 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10301</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10301"/>
				<updated>2022-02-05T09:20:10Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
It's very useful on big mowing area or complex one with a lot of island.&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
Using arduino IDE , You can download firmware inside ESP32 to have everything working : &lt;br /&gt;
https://github.com/Boilevin/AzuritBer/tree/master/ESP32_RFID&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code into Arduremote / setting / RFID each time you move a tag near the reader and if it's a new tag : a record is add with a WAIT status and nothing to do.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting gps rfid.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu console 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Into Piardu in menu RFID you can choose what you want the mower do:&lt;br /&gt;
&lt;br /&gt;
2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
The same tag can be use to different behaviour.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 18.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
Be careful To edit existing tag : click on the list to choose the tag you want to edit.Click on Delete This Tag to remove old tag from list.Now change value on the text box on right part of the screen , and click on Add this Tag to add the new one.Do not forget to save to file.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB95 is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 1AD8DB95 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 50 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 4082DA95 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10300</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10300"/>
				<updated>2022-02-05T09:19:11Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Hardware connecting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
Using arduino IDE , You can download firmware inside ESP32 to have everything working : &lt;br /&gt;
https://github.com/Boilevin/AzuritBer/tree/master/ESP32_RFID&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code into Arduremote / setting / RFID each time you move a tag near the reader and if it's a new tag : a record is add with a WAIT status and nothing to do.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting gps rfid.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu console 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Into Piardu in menu RFID you can choose what you want the mower do:&lt;br /&gt;
&lt;br /&gt;
2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
The same tag can be use to different behaviour.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 18.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
Be careful To edit existing tag : click on the list to choose the tag you want to edit.Click on Delete This Tag to remove old tag from list.Now change value on the text box on right part of the screen , and click on Add this Tag to add the new one.Do not forget to save to file.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB95 is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 1AD8DB95 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 50 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 4082DA95 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10299</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10299"/>
				<updated>2022-02-05T09:09:31Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: /* Hardware connecting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
Using arduino IDE , You can download firmware inside ESP32 to have everything working : &lt;br /&gt;
https://github.com/Boilevin/AzuritBer/tree/master/ESP32_RFID&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code in console or into Arduremote each time you move a tag near the reader&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting gps rfid.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu console 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Into Piardu in menu RFID you can choose what you want the mower do:&lt;br /&gt;
&lt;br /&gt;
2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
The same tag can be use to different behaviour.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 18.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
Be careful To edit existing tag : click on the list to choose the tag you want to edit.Click on Delete This Tag to remove old tag from list.Now change value on the text box on right part of the screen , and click on Add this Tag to add the new one.Do not forget to save to file.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB95 is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 1AD8DB95 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 50 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 4082DA95 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10298</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10298"/>
				<updated>2022-02-05T09:08:08Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
Using arduino IDE , You can download firmware inside ESP32 to have everything working : &lt;br /&gt;
https://github.com/Boilevin/AzuritBer/tree/master/ESP32_RFID&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code in console or into Arduremote each time you move a tag near the reader&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting gps rfid.jpg|200px]] [[Datei:Piardu console 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Into Piardu in menu RFID you can choose what you want the mower do:&lt;br /&gt;
&lt;br /&gt;
2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
The same tag can be use to different behaviour.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 18.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
Be careful To edit existing tag : click on the list to choose the tag you want to edit.Click on Delete This Tag to remove old tag from list.Now change value on the text box on right part of the screen , and click on Add this Tag to add the new one.Do not forget to save to file.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB95 is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 1AD8DB95 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 50 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 4082DA95 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10297</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10297"/>
				<updated>2022-02-05T09:05:30Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , '''ESP32 DEV KIT V1''' (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
Using arduino IDE , You can download firmware inside ESP32 to have everything working : &lt;br /&gt;
https://github.com/Boilevin/AzuritBer/tree/master/ESP32_RFID&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code in console or into Arduremote each time you move a tag near the reader&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting gps rfid.jpg|200px]] [[Datei:Piardu console 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
Using arduino IDE , You can download firmware inside ESP32 to have everything working : &lt;br /&gt;
https://github.com/Boilevin/AzuritBer/tree/master/ESP32_RFID&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code in console or into Arduremote each time you move a tag near the reader&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting gps rfid.jpg|200px]] [[Datei:Piardu console 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Into Piardu in menu RFID you can choose what you want the mower do:&lt;br /&gt;
&lt;br /&gt;
2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
The same tag can be use to different behaviour.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 18.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
Be careful To edit existing tag : click on the list to choose the tag you want to edit.Click on Delete This Tag to remove old tag from list.Now change value on the text box on right part of the screen , and click on Add this Tag to add the new one.Do not forget to save to file.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB95 is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 1AD8DB95 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 50 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 4082DA95 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	<entry>
		<id>https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10296</id>
		<title>AzuritBer RFID option (English)</title>
		<link rel="alternate" type="text/html" href="https://wiki.ardumower.de/index.php?title=AzuritBer_RFID_option_(English)&amp;diff=10296"/>
				<updated>2022-02-05T09:04:16Z</updated>
		
		<summary type="html">&lt;p&gt;Bernard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
It's the standard PCB1.3 or 1.4 and BT module is ESP32 one , a PN5180 RFID reader is connected to the ESP32&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , '''ESP32 DEV KIT V1''' (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
Using arduino IDE , You can download firmware inside ESP32 to have everything working : &lt;br /&gt;
https://github.com/Boilevin/AzuritBer/tree/master/ESP32_RFID&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code in console or into Arduremote each time you move a tag near the reader&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting gps rfid.jpg|200px]] [[Datei:Piardu console 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using Rfid reader and card locate on the perimeter wire ,mower can mow on multiple area or change direction and have different behaviour (Fast start,Fast return,escape from island,Change tracking speed etc...)&lt;br /&gt;
&lt;br /&gt;
After testing many Reader only this one (PN5180) can read card at more than 10 cm and detect it after year under grass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:start-area2.gif|400px]] [[Datei:fast-return.gif|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hardware connecting==&lt;br /&gt;
&lt;br /&gt;
You need : PN5180 reader board , some card , ESP32 DEV KIT V1 (or later but with same pin diagram).&lt;br /&gt;
&lt;br /&gt;
[[Datei:PN5180.png|400px]] [[Datei:esp32 layout.png|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PN5180 use SPI interface to communicate with ESP32 and ESP32 DEV KIT replace the bluetooth module HC05 to communicate with PCB1.3, so you can build a small PCB to connect all wire, or order some of them from JLCPCB for example (The same board is also use to build the WIFI sender.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid wiring.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Do not forget the jumper JP4 and JP10&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring jumper.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the first version with wrap on small PCB:&lt;br /&gt;
&lt;br /&gt;
[[Datei:rfid esp32.jpg|400px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
and the PCB (see easyeda and file locate on AZURITBER github) use to connect everything (Rfid reader / PCB1.3 / Wifi sender)&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rfid wiring 10 .png|200px]]  [[Datei:Rfid wiring 20 .png|200px]]  [[Datei:Rfid wiring 30 .png|200px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Put PN5180 board inside your platform as near as possible form ground (Max 10 CM) , no problem with motor or other electronic noise.&lt;br /&gt;
&lt;br /&gt;
Using arduino IDE , You can download firmware inside ESP32 to have everything working : &lt;br /&gt;
https://github.com/Boilevin/AzuritBer/tree/master/ESP32_RFID&lt;br /&gt;
&lt;br /&gt;
If everything is OK you can see '''Last Rfid''' tag code in console or into Arduremote each time you move a tag near the reader&lt;br /&gt;
&lt;br /&gt;
[[Datei:ArduRemote Setting gps rfid.jpg|200px]] [[Datei:Piardu console 3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Setting==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Into Piardu in menu RFID you can choose what you want the mower do:&lt;br /&gt;
&lt;br /&gt;
2 Value need to match to have a mower react (TODO) : '''TAG Nr''' AND '''Mower STATUS'''&lt;br /&gt;
&lt;br /&gt;
The same tag can be use to different behaviour.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 18.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Edit a record ===&lt;br /&gt;
Be careful To edit existing tag : click on the list to choose the tag you want to edit.Click on Delete This Tag to remove old tag from list.Now change value on the text box on right part of the screen , and click on Add this Tag to add the new one.Do not forget to save to file.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 70.png|400px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== What is possible===&lt;br /&gt;
&lt;br /&gt;
According Tag Nr read and Status of mower ( &amp;quot;BACK_TO_STATION&amp;quot; or &amp;quot;TRACK_TO_START&amp;quot; or &amp;quot;WIRE_MOWING&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
Mower can DO : 'RTS' or 'FAST_START' or 'SPEED' or 'AREA1' or 'AREA2' or 'AREA3'&lt;br /&gt;
&lt;br /&gt;
=== Fast Return to station ===&lt;br /&gt;
&lt;br /&gt;
RTS can be use to escape from island or simply fast return to station :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 72B8DB95 is find AND mower Status is BACK_TO_STATION ,if you put RTS in the TODO column :  Mower stop tracking roll 28 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Fast Start ===&lt;br /&gt;
&lt;br /&gt;
Can be use to go very fast from one location on the wire to other one when tracking : to reach a new area for example :&lt;br /&gt;
&lt;br /&gt;
Speed and Ang 1 are used&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 30.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 1AD8DB95 is find AND mower Status is TRACK_TO_START ,if you put FAST_START in the TODO column : Mower stop tracking roll 50 Degree and run at new PWM speed of 250 to find again the wire and continue tracking.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Change tracking speed ===&lt;br /&gt;
&lt;br /&gt;
Can be use to Dock at low speed or simply change tracking speed when you want : ON big straight line mower can track at PWM=255 or on hard angle you can reduce the tracking speed &lt;br /&gt;
&lt;br /&gt;
Speed and Dist1 are used.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tag 4082DA95 is find AND mower Status is WIRE_MOWING , Mower continue tracking but run at new PWM speed of 80 for next 100 cm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Go to new mowing Area===&lt;br /&gt;
&lt;br /&gt;
Can be use to Go to a new mowing area (with other sender)  :&lt;br /&gt;
&lt;br /&gt;
Speed ,Ang 1,Dist 1,Ang 2,Dist 2 are used and correct IP Sender setting into config.py to start and stop sender.&lt;br /&gt;
Without WIFI it's also possible to start and stop manually the area2 sender, Most important is that the mower can read the perimeter signal inside AREA2, so try to stop mower near the Perimeter wire &lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 60.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag B0CEDB95 is find AND mower Status is TRACK_TO_START , Mower stop tracking roll -38 Degree ,Stop the AREA1 Sender over WIFI if needed , stop to read perimeter signal ,run at new PWM speed of 180 for the next 13 meters , roll again -90 and run for 0.5 meters ,Start the AREA2 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to mow on the new area.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Back to station from Optional area===&lt;br /&gt;
&lt;br /&gt;
It is used to back to charging station from other mowing area  :&lt;br /&gt;
&lt;br /&gt;
[[Datei:Piardu rfid 50.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When tag 8ECDDB95 is find AND mower Status is BACK_TO_STATION , Mower stop tracking roll -82 Degree ,Stop the AREA2 or 3 Sender over WIFI , stop to read perimeter signal ,run at new PWM speed of 200 for the next 10 meters , roll again -90 and run for 0.5 meters ,Start the AREA1 Sender over WIFI, Check if signal is OK and start to find again perimeter wire to track to find the charging station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Result in Video===&lt;br /&gt;
Here a fast start to go in area2 :&lt;br /&gt;
&lt;br /&gt;
AT 0:40 FAST_START tag is detected Mower leave wire and run at PWM=255 to cross the area1 mowing without blade running.&lt;br /&gt;
&lt;br /&gt;
AT 1:24 mower find again the area1 perimeter wire and continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:34 The AREA2 tag is find : mower stop to read area1 signal and start to go to area2 (NO wire under asphalt)&lt;br /&gt;
&lt;br /&gt;
AT 2:07 Mower is now into AREA2 and start AREA2 sender ,Check perimeter signal,and try to find area2 perimeter.&lt;br /&gt;
&lt;br /&gt;
AT 2:12 the area2 wire is find and tracking start until start distance (set into timer setting) is reach&lt;br /&gt;
&lt;br /&gt;
AT 2:56 mowing in AREA2 start&lt;br /&gt;
&lt;br /&gt;
AT 3:07 mower roll to adjust Compass and Gyro heading to be sure the lane are always in same orientation over time.&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=NGX7KlfbtKA&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=6&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Escape from AREA2 Island and return to charging station:&lt;br /&gt;
&lt;br /&gt;
At 0:19 a tree island is find ,Mower start to track the wire&lt;br /&gt;
&lt;br /&gt;
At 0:40 the RTS tag is find and used to escape from the tree island , mower leave the wire and try to find it again in fast mode at other location.&lt;br /&gt;
&lt;br /&gt;
At 0:47 the main AREA2 perimeter wire is find, mower can continue to track&lt;br /&gt;
&lt;br /&gt;
At 1:52 Change area tag is find : Mower stop AREA2 sender and move to AREA1 without reading perimeter signal.&lt;br /&gt;
&lt;br /&gt;
At 2:17 AREA1 Signal is detected and mower start to find AREA1 perimeter Wire.&lt;br /&gt;
&lt;br /&gt;
At 2:34 again one RTS tag is find to go fast to station.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=9JXWokdmjaE&amp;amp;list=UUIMdsOWo0cHTKruv9PVdJPw&amp;amp;index=8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bernard</name></author>	</entry>

	</feed>