Ardupilot API port to atmega328p

This is a most focused development for beginner APM developers to understand how multitasking work with interrupts and APIs.

The main purpose about this port is the scheduler developed by Andrew Tridgell and introduced to Ardupilot for atmega2560.
Right now it’s the main structure multitask process for all APM platform.

There are 2 ports:

There are 2 example:

  • Compass TEST.
  • Scheduler TEST.

Important Changes

  • STORAGE: Fited to 328p Eeprom size. It’s secure work with AP_Param.
  • GPIO: Remaped for 328p, all work good.
  • SPI: Working.
  • I2C: Working.
  • Scheduler: Working very good, now we have fully multitasking on atmega328p.

Changes without testing

  • RCOutput.
  • RCInput.

Not Working

  • Analog input.
  • ADC.


  • Download and install Arduino 1.6.6 (Tested with this version).
  • Open Arduino, click File, Preference and select ArdupilotMicro or ArdupilotTiny path root respectively.
  • Open included example and compile.


1 Like