I have ran across a couple of different event libraries that are available on the AVR and Andruino but I am not sure which one is the best option. What I would like to do is design my program in a event driven style but not sure how to go about this.

I have a project that I need to keep lightweight but also in this program I have several actions that can be happening at any given time i.e. Digital Inputs being triggered and I need to run code whenever these events happen.

I found the QP Framework that looked promising but I wanted to get some feedback from some others that might of used this type of library before and might be able to provide some examples and maybe some experiences.

Another site I found here and lists all sorts of different libs

  • 3
    Cosa has to be the most fully featured of them all that I know of. Amazingly powerful and filled with drivers for everything you can imagine. It's a completely different way of programming the Arduino - you'll have to unlearn everything you know ;)
    – Majenko
    Commented Nov 24, 2015 at 16:31
  • @Majenko I had asked about OOP Programming (arduino.stackexchange.com/questions/17964/…) does Cosa handle the problem with dynamically allocating memory? Commented Nov 24, 2015 at 17:44
  • It's pretty much all static objects.
    – Majenko
    Commented Nov 24, 2015 at 17:47
  • 2
    @Andy Braham, if I may add to Majenko's statement, It's pretty much all static objects, which is a good thing. As stated in the OOP thread, dynamic memory on small AVRs is not a good choice. (It's something you have to un-learn.) Besides determinism, static binding also allows fantastic compile- and link-time optimizations.
    – slash-dev
    Commented Dec 6, 2015 at 2:42
  • Is the code that needs to be run interruptable? How much latency can you tolerate?
    – Dave X
    Commented Dec 15, 2015 at 20:11

1 Answer 1


You may want to take a look at LMX by David Anderson A Light-Weight Multi-Tasking Executive.

He has a very good set of videos on the code that he did for Dallas Personal Robotics Group (DPRG).

The specific videos for LMX are:

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.