Before I hang my hat on an RTOS for my Atmega projects I wanted to know what was out there and how popular the various rtos platforms were. Here is a summary (original list from here). As of this writing, FreeRTOS for DuinOS is a hands down winner.
Update: 20100112: DuinOS : DuinOS is a port of freeRTOS on Arduino that tries to preserve the development environment by hiding much of the freeRTOS fundamentals as possible. I have mixed feelings on this and have been reverse engineering my sketches to expose as much of freeRTOS as possible.
Update 2010112: AVRx: Although not actively expanding, there seems to be a yahoogroup, avrx, that is active. This is worth a second look at.
Update 2010112: TinyOS: This is an OS for a sensor networks. There is mixed information on how actively supported and used this OS is. Still researching.
FreeRTOS: A Free RTOS for microcontrollers Currently very active. There is an interesting fork called DuinOS for use with the Arduino IDE that works very nicely. Can be found here and a discussion can be found here. I’ve done this fork on the Arduino Duiemonolove and peeled back the covers. TBD in another section of this blog with performance metrics.
AvrX: Real-Time Kernel for AVR processors Not very active. the 2.6 version compiled from C looks interesting. The yahoogroup for discussing AvrX is moderately active
YAVRTOS: Yet Another Atmel AVR Real-Time Operating System Just what it sez, yet another RTOS. Self described as a project and not a product. Not regourisly tested.
AVRAsmOS: A tiny OS for small AVRs V1.0 active November 9,2009. No web page or documenation.
pc/OS RTOS Kernel (for larger AVR processors >= mega128) There is some activity. Documentation is sparse. No porting or installation guidance. Based on a 1992 rtos
uSmartX: Non-Preemptive Priority-based Multitask RTOS Not active
COMATOS Not active.
Task dispatcher Is what it is, a dispather. Not an RTOS
Opex A simple scheduler, not an RTOS
mthreads Another thread only library, not really an rtos
RTK low activity. Nice starting point for someone interested in creating their own RTOS.
csRTOS not active
Adam Dunkel’s Protothreads Fairly old simple threading code. Not really an RTOS. Last updated in 2005.
Femto OS Active, looks interesting but the license is restrictive and requires all of your application IP to be freely distributed. Lays claim to your IP (intellectual property) because your code gets embedded with femto OS. If you think what you are creating is every commercially viable you probably do not want to use this.
TinyOS Spotty activity, supposedly for sensor networks, site links are old or not active, forum and wiki seems to have been compromised with spam, look at them on your own risk. Best link I have found is here
Contiki Heavy on the TCP/IP requires 2k ram 40k rom
pico OS not active
scmRTOS: a C++ cooperative OS with Mit license Last updated by author 2006

13 Comments
Hi Paula,
Thank you for mentioning my OS here. The license is GPLv3. I am no lawyer, but let me try a one-liner: “I share if you share too”. There is no problem in going commercial. Only if you want to keep your code secret, you pay me. And only very little btw. Is that very bad? Maybe.
Regards.
Ruud
Hi Ruud, Thanks so much for finding my blog! I really didn’t expect any responses. I do appreciate very much you taking the time.
Regarding your approach to licensing. I and many others differ in one key respect:
IP (Intellectual property ) should be up to the creator to decide if it should be freely dispersed or protected.
There are two distinct cases that need to be handled in a fair and equitable manner.
1) Where a tool is distributed and a developer uses the the tool, unchanged, to create a unique application representing IP.
2) Where a tool is distributed and a developer makes changes to the tool that are unique and represent IP.
In case 1), no changes were made to the IP of the original tool. The developer of the application should determine if the application IP should be protected or not and such decision should not be guided by the underlying tool (eg additional cost). Distribution of the underlying tool should be guided by the underlying tool license. Distribution of the application should be guided by the application developer.
In case 2) changes were made to the IP of the original tool by a developer. The developer must respect the original IP and must be guided by the underlying tool.
I fully respect your desire for anyone who makes changes to your tools IP must either make those changes available for free or pay you a license fee. However, an application that makes use of your tool but does not change your tool should not be considered part of your IP but independent IP.
I may never have an application IP that I would need to protect and so it may never be an issue. However, having the license approach you use makes spending lots of brain energy on your tool less desirable and more risky in any case where I may wish to protect IP. Working with an OS that does not have that restriction makes for feeling of ‘better mind investment’.
In your license you have combined both cases making it less desirable for developers to use your tool as they loose control over any IP they develop.
Just my thoughts,
Paula
Hello Paula,
Don’t underestimate the impact of your work here (or on several forum), you are doing a great job and people are listening. Keep up this good work!
And, second, let us not start a long discussion on IP. I am a technician not a lawyer. The fact is, i had too choose some form of license. So i choose GPL for those
who want to publish their stuff too, and others may pay me (minimal) for keeping their stuff secret. Seems fair enough.
Now you are saying, when i understand you well, “do not touch the IP of my code, if a do not touch yours.” Seems fair too.
What i really wanted is a license that states: “Please use my stuff anyway you like, except claiming
it is yours, and if you make big bucks, give me a small part.” I understand your objection about the combination of the cases you mentioned and i see the problem too.
However, i wanted to use an widely accepted license (not something home brew) with the objective mentioned above. GPL came closest to that, for most commercial users do not want to publish their code, so they buy a commercial license.
And let’s keep it realistic. In practice there are two kind of users, private and companies. private users, hobbyists if you like, have no problems with GPL in general. Mostly, they are more than happy to share their code too. Companies, or anyone who wants to use my OS in a commercial manner, have no problem with buying a commercial license. In fact, it is usually a lot cheaper than the support they usually want from
me too.
So it seems to me that the discussion is a theoretical one. Yes, you are not the only one having objections against my choice. Some people even got really angry with me about that. Why, is totally unclear for me. Let everybody choose those what fit them best. For the moment, this is still a free world.
regards
Ruud
Hi Paula, just to say that the DuinOS links had changed to this one:
http://robotgroup.com.ar/duinos/wiki
Regards, and congratulations for your blog!
Julián
TinyOS is very actively developed, and many platforms and chips are supported
Hi Paula, remember me? Julián, from DuinOS. I’m contacting you because I published a new project: a graphical programming environment for Arduino (and others). I will release it with sources soon (after a kickstarer campaign), so I need to make it as public as possible: http://minibloq.org
Thanks and regards!
Julián
Hi Paula,
Any updates on this? What are your current thoughts about Arduino RTOS efforts?
I am working with some people on an OS/Environment which would work across shared Arduinos…
Thanks!
Regards, Terry King
…In The Woods In Vermont
terry@yourduino.com
> scmRTOS: a C++ cooperative OS with Mit license
This OS was preemptive since it’s 1st release.
> Last updated by author 2006
Last updated — yesterday evening
Great site and blog. Thanks for the list of RTOS kernals. Interesting reading.
any updates on this I am looking for a good stable OS for ARDUIONO
I’ve been using DuionOS which is RTOS for a couple of years. Pretty happy with it.
Hello I have maintained a DuinOS’s Fork, which is already updated with FreeRTOS 7.4.0 and also with the Arduino IDE 1.0.x and 1.5.x IDE
Further information can be requested by email or http://www.github.com.br/carlosdelfino/DuinOS and http://www.github.com/carlosdelfino/Arduino
That is great to hear Carlos! I will taek a look. I have a couple of projects and the new 1128 boards to work with. I was dreading the deep dive to migrate onto a full freeRTOS and Arduiono.
Post a Comment