I'm pleased to introduce ArdOS, the operating system written specially for Arduino boards based on the ATmega168 and ATmega328. More support will be added later on. You can obtain ArdOS at ctank / ArdOS / wiki / Home — Bitbucket.
ArdOS features:
A true multitasking kernel.
A fixed priority scheduler for hard real-time applications and a round-robin scheduler with configurable time quanta for soft real-time applications.
A sleep function that frees the Arduino microcontroller to perform other tasks.
An idle hook that lets you exploit microcontroller idle time.
Task communication mechanisms: FIFO and prioritized message queues.
Lightweight and fully configurable. Fully spec'ed, ArdOS occupies 1.6KB of flash memory and under 200 bytes of RAM. A simple two-task application would occupy under 3.5KB of flash and under 700 bytes of RAM.
Please do drop by and take it for a spin, and I'd love to hear your thoughts on this.
Ctank, I'll pick up on the discussion here; I am sure others will have comments and suggestions also:
---------------------( COPY )---------------------
I'll be following this. I am very interested in a significant OS for Arduino. I am developing MEGA2560 based Home/Building automation stuff. Long in the past I developed complex systems on minicomputers with EDX from IBM..
Is it likely that the Mega will be supported soon? Lots more memory, lots more I/O etc etc. Thanks, and hope you have fun making this work...
I'd like to add HowTo stuff about this on http://ArduinoInfo.Info
-----------------( END COPY )----------------------
I'm happy to hear that MEGA / 2560 support is likely; I believe that with the costs down to under $30 that any significant project can expect the added memory spaces. Let me know if you want another 2560 or 1280 to test with.
In the long run, ArdOS library support of specific hardware would be interesting to many. Examples would be RealTime Clock integration, 1-wire devices, especially DS18B20, I2C support, nRF24L01+ based radios, Ethernet and WiFi. Mmmmm... Delicious! With the difficulties that sometimes arise in debugging hardware running on a RTOS (especially for people without a scope) it would make things a lot easier. I am sure people in the Arduino community would be happy to nominate hardware for a list.
In the spirit of Arduino community development I'll continue discussions on the Forum...
Let us know more about the issue of Atmel Studio 6 development VS the Arduino IDE. In the long run it probably needs to converge on the IDE if it will be widely adopted.
Thanks for your (obviously significant) work on this...
We strongly recommend building ArdOS projects using Atmel Studio 6 instead of the Arduino IDE
Is that a must?
Hi Pito,
Not at all. There are instructions at ctank / ArdOS / wiki / build — Bitbucket detailing how to build ArdOS applications using the Arduino 1.0.5 environment, and while I've not provided any makefiles, it would probably work fine with avr-gcc.
Unfortunately Atmel Studio 6 is available only for Windows systems so I can understand the need for being able to write ArdOS apps in other environments.
terryking228:
Ctank, I'll pick up on the discussion here; I am sure others will have comments and suggestions also:
---------------------( COPY )---------------------
I'll be following this. I am very interested in a significant OS for Arduino. I am developing MEGA2560 based Home/Building automation stuff. Long in the past I developed complex systems on minicomputers with EDX from IBM..
Is it likely that the Mega will be supported soon? Lots more memory, lots more I/O etc etc. Thanks, and hope you have fun making this work...
I'd like to add HowTo stuff about this on http://ArduinoInfo.Info
-----------------( END COPY )----------------------
I'm happy to hear that MEGA / 2560 support is likely; I believe that with the costs down to under $30 that any significant project can expect the added memory spaces. Let me know if you want another 2560 or 1280 to test with.
In the long run, ArdOS library support of specific hardware would be interesting to many. Examples would be RealTime Clock integration, 1-wire devices, especially DS18B20, I2C support, nRF24L01+ based radios, Ethernet and WiFi. Mmmmm... Delicious! With the difficulties that sometimes arise in debugging hardware running on a RTOS (especially for people without a scope) it would make things a lot easier. I am sure people in the Arduino community would be happy to nominate hardware for a list.
In the spirit of Arduino community development I'll continue discussions on the Forum...
Let us know more about the issue of Atmel Studio 6 development VS the Arduino IDE. In the long run it probably needs to converge on the IDE if it will be widely adopted.
Thanks for your (obviously significant) work on this...
Hi Terry,
Many thanks for the kind words and encouragement!
ArdOS works fine in the Arduino development environment, and with a suitable makefile would also work fine with avr-gcc. My main issue with the Arduini IDE is the somewhat limited debugging environment compared with the very rich Atmel Studio environment. Of course the fact that Atmel Studio only runs on Windows is a severe issue.
I've yet to verify this but I believe that ArdOS would also work on the 2560 in its current state if you use the Arduino-provided libraries, which you would have to if you use the Arduino IDE. I should be able to provide native ArdOS support for the 2560 over the next week.
Other new features that are coming up within the next couple of weeks include being able to printf and scanf over a USART link (which should aid debugging significantly), and possibly a simple monitor that will allow ArdOS to be controlled over the USART.
Just a quick update: ArdOS now works fine with the ATmega 2560, and I will soon be releasing it (probably by early next week) as an Arduino library that can be loaded directly using the Load Library function in the Arduino (1.0.5 onwards).