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:

ARDUPILOTMICRO: A complete API library ported to atmega328p.

ARDUPILOTTINY: A Scheduler HAL port only to atmeg328p with arduino headers enviroments integration.

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


Not Working

Analog input. 


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


Views: 1323

Comment by Andy Little on August 23, 2016 at 9:30am

This is great. It would be nice to have a simple schematic for the examples and some info as to what is needed, such as breakout board etc.

Are you planning to turn it into a complete flight controller?

Comment by Greg Venhaus on October 10, 2016 at 3:23pm

Has anyone tried this code yet? Are these full implementations of Ardupilot; support for Arduplane or Arducopter? I'm interested in using an Arduino Nano with a 10DOF board. Both cheap Chinese versions. I noted the code in the sketchbook is scheduler test, but the standard folders for Arduplane and Arducopter are missing. I'm wondering why the apparent lack of interest in this posting?


You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service