Evaluating Event-Driven Libraries for Arduino

We have been thinking about how to make Ardublock more intuitive and adding event based control blocks seem to be the way to go. We’d like to enable new comers to Arduino to easily express the idea of “When X happens, we do Y” and have multiple of them written in clean style. We have evaluated all the event driven and multitask libraries for Arduino that we can find. Here is a summary.

  1. Arduino-EventManager
    last update: 2013-01
  2. Arduino Event Manager last update: 2011-01-24
  3. QP
    By Quantum Leaps
    last update: 2013-06-02A lot of people seem to use
    It’s an RTOS with its own IDE (QDK, QP Development Kit for arduino).
    Code is very complicated, do not know what he is doing
    arduino 1.0 and 00xx libraries using the two different QP
  4. Kernel
    by Evan Boldt
    last update: 2013-02-07
    Similar to the javascript setInterval
  5. Metro
    last update: 2009-01-19
    Time-driven , but also set an interval
  6. Arduino – softtimer
    by Prampec
    last update: 2012-12
    Also set the interval
    But he said there was no delay
    Read the code a bit mean, but too much, did not see
  7. Ebl-arduino
    Event-Based Library for Arduino
    last update 2011-07
    Finally there is an event for the pin
  8. Aiko
    by geekscape
    last update: a year ago
    aiko arduino official seems to have given a long time not updated, but other fork is actually very active, such as samotage of
    Also set the interval
  9. NilRTOS
    last update: 2013-02
    NilRTOS is a good RTOS, but its configuration is too flexible and sophisticated , difficult to integrate
    There are similar and his
  10. SCoop
    Easy to use Arduino libraries , and mega uno and Arduino1.x Arduino-00xx are supported, that’s you ! !
  11. PciManager
    Compiled are compiled , however, can be compiled after the change is good or not . .
  12. PinChangeInt
    This is good if people use more, but only to support Uno, mega what else do not support , and quick to die. .

Some other libraries can be seen here

We decided to go with SCoop and implement a test version.