Microcontroller Programming

First Bringup

This section relates to bringing a new microcontroller board online with the Arduino bootloader and fuses.

To begin flashing the bootloader using the Atmel ICE tool, first download Atmel Studio (Windows only). Currently, the Atmel ICE is not supported on the command line in linux. Once Atmel Stduio is running, plug in the Atmel ICE and power the microcontroller through other means. The ICE can not supply power to the device. Select Tools→Device Programming

First, ensure that the CHIP_ID can be read. If it can't be read and has never worked before, there is a hardware fault somewhere. Next, set the fuses to the following values:

  • Extended Fuse: 0xFF
  • High Fuse: 0x9E
  • Low Fuse: 0xFF

Finally, program the memory of the microcontroller with the optiboot_flash bootloader from MightyCore. The microcontroller should now be able to interact with the Arduino environment.


Microcontroller programming is conducted through PlatformIO, a command-line arduino deployment tool.