About "Bad_Fuses" message

The ATmega328P processors in the Navitop motor controllers were programmed with the Arduino IDE after configuring the fuses to allow the processor to operate at 8MHz with the external crystal. The Arduino IDE does not allow you to assign a precise hexadecimal value to these bytes, but only to configure the processor's operating parameters. 

A few days ago, a Navitop controller user reported a Bad_Fuses message appearing on his 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.

Since June 25, 2025, all Pypilot motor controllers supplied by Navitop have the same fuse bytes as Pypilot production. They are now configured with AVRDUDESS.

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, chose 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



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.
Recherche