Arduino under the Hood – Task Scheduling

Arduino under the Hood – Task Scheduling


  • Arduino under the Hood course or equivalent
  • Basic Linux Knowledge (How to navigate in a terminal, how to invoke programs)
  • Working knowledge about AVR aechitectures and embedded systems


This course is for experts with immediate knowledge in Arduino/AVR architectures. It takes existing knowledge further and applies it to execute a program that is divided into several tasks. Those tasks can then run while the CPU idles, interleaving the computational part of the tasks resulting in a faster overall program execution and lower power consumption. So, instead of manually interleaving tasks to increase the efficiency of the embedded system with the goal to prolong the battery life by increasing the sleep periods, the interleaving is handled automatically and dynamically adapting to the current situation without affecting the readability of the source code. This course presents existing solutions and one of them is explored extensively.

The course covers topics such as

  1. The Operating System and the Kernel
  2. Scheduler for the Arduino Platform and AVR architecture
    1. Preemptive scheduling policy
    2. Cooperative scheduling policy
  3. Inter-Process Communication (IPC)
    1. Semaphore/Mutex
    2. Channel/Queue
  4. Existing Schedulers for Arduino
  5. Modification and Implementation of a low-power Scheduler for the AVR architecture

The course concludes with a practical session, in which a scheduler that depends on the Arduino platform, is analyzed. It is then further extended to include sleep modes in the subsequent exercise. As usual, the complete exercise includes several hints and a solution. After completing this course, the successful students will have the experience to plan and carry out their own projects for the AVR architecture and learned the fundamentals of scheduling mechanisms and operating systems in the domain of embedded systems.

Who this course is for:

  • Intermediate Embedded Systems Engineers
  • Developers who are curious about a simple way to schedule several tasks in AVR/Arduino


Online Courses
We will be happy to hear your thoughts

Leave a reply

awsomenews Free Online Courses
Enable registration in settings - general