About "Bad_Fuses" message
Since June 25, 2025, all Pypilot motor controllers supplied by Navitop have the same fuse bytes as Pypilot production.
Prior to June 2025, the ATmega328P processors in Navitop motor controllers were programmed using the Arduino IDE software. The fuse settings of the ATmega328P processor were configured by the IDE to allow the processor to operate at 8 MHz using the external quartz crystal. The Arduino IDE software does not allow specifying a precise hexadecimal value for these bytes, but only allows configuring the processor's operating parameters.
This is a report from a Navitop controller user who noticed the message "Bad_Fuses" appearing on their web control page.
Unlike important messages, this message never appears on the LCD screen. It indicates that pypilot has detected that the 3 configuration fuse bytes of the ATmega328P are not strictly identical to the ones Sean is using. The warning was primarily intended for people programming their own Arduinos, as a hint, as some fuse settings are important, while others are not.
This “Bad_Fuses” message can be ignored because out of the three configuration bytes, two have a different bit but do not affect the operation of the motor controller.
There is no reason to reprogram processor fuses
If you absolutely want to remove this “Bad_Fuses” message
You will need to reprogram the fuses with AVRDUDE on the command line or AVRDUDESS which is a very practical graphical version of AVRDUDE.
If you don't already have a 5V 6 pins ISP programmer, here's how to make one with an Arduino UNO, some wires, and a 10uF capacitor.

1 - Download and install AVRDUDESS (version 2.18 with avrdude 2.8) . It is possible to use a windows version.
2 - Connect the Arduino ISP programmer with a USB cable to your computer.
3 - With the motor controller not powered, connect the programmer to the motor controller's ISP connector, ensuring that pin 1 is oriented correctly.

4 - Start the AVRDUDESS software
5 - In field 1, choose the programmer used : arduino_as_isp if you use an arduino ISP programmer
6 - In field 2, choose from the drop-down list the processor used by the controller: ATmega328P (not to be confused with 328PB)
7 - In field 3 indicate the com port used by the programmer
6 - In field 2, choose from the drop-down list the processor used by the controller: ATmega328P (not to be confused with 328PB)
7 - In field 3 indicate the com port used by the programmer

8 - To check that the programmer is working properly, perform a processor (MCU) detection by clicking on "detect" button 4
9 - The answer 5 should be = ATmega328P

10 - In field 6, specify the correct value of the low fuse byte L = 0x7F
11 - In field 7, specify the correct value of the high fuse byte H = 0xDA
12 - In field 8, specify the correct value of the efuse byte E = 0xFC

13 - Click the fuses "write" button 9, avoiding clicking the write lock bit button further down
NOTE : The lock bit (LB = 0xFF) must not be modified.
14 - Look at 10 to verify that the three fuses have been modified and verified. If it is not indicated as in the photo, you must start writing again by pressing again the "write" button 9.
The motor controller processor fuse fix is complete.
There is no need to load the motor.ino code, which is still in the ATmega328P processor.
There is no need to load the motor.ino code, which is still in the ATmega328P processor.
