is there any project of an rtos that works on arduino ?
-
1\$\begingroup\$ There are RTOS projects that will run on an ATMega, but anything similar is not likely to use the arduino environment. \$\endgroup\$– Connor WolfCommented Dec 11, 2010 at 3:42
-
\$\begingroup\$ I want to inform also that QP the famous state machine framework is now available for arduino arduino.cc/playground/Code/QP \$\endgroup\$– mba7Commented Mar 15, 2011 at 16:54
-
1\$\begingroup\$ related: What Operating Systems are available for Arduino? \$\endgroup\$– davidcaryCommented Nov 4, 2012 at 12:13
5 Answers
Here is a good summary of the current offerings - the favorite looks like DuinOS
Also consider Aiko
the link to download DuinOS had changed to this:
http://robotgroup.com.ar/duinos/wiki
There you will find (in the downloads section) the v0.1 and the v0.2 versions.
Regards, Julián http://robotgroup.com.ar
-
\$\begingroup\$ Looks like it moved AGAIN and there's no HTTP Redirect on the old site.. It appears the current home (or current active fork) is here:github.com/DuinOS/DuinOS \$\endgroup\$ Commented Aug 30, 2018 at 10:30
If you need simple multithreading on to of "bare-metal", then I'd recommend Protothreads which are rather easy to use and there is very tiny overhead (just a few bytes)!
I haven't tested Protothreads in the Arduino Library context, though this should work and as I can see someone already done it.
Protothreads are also part of Contiki OS which is an excellent solution for wireless sensor network applications. There had been some effort of porting Contiki to run a few popular Arduino boards.
A git repository of the orginal port can be found here, though I have attempted to update it more recent version Contiki and it is here. This code works as far as some basic "Hello World!" examples are concerned and it will require some extra work to get networking (i.e. 6loWPAN/uIP), though beware that if you don't need networking there no much benefit of using Contiki and if you have an Ethernet Shield, you don't need the networking as such, because that is implemented.
I've been looking at atomthreads. That should run on avr's but I don't know if you can merge any of the fw/sw parts of Arduino into it.