Go Down

Topic: Simba - An RTOS and Build Framework (Read 579 times) previous topic - next topic


Jan 08, 2016, 01:55 pm Last Edit: Jan 08, 2016, 02:06 pm by eerimoq

Simba is a Real Time Operating System (RTOS) and build framework that supports:

  • Arduino Uno
  • Arduino Mega
  • Arduino Nano
  • Arduino Due
  • ESP8266 (4 MB flash)
  • Linux/Cygwin

The design goals, details about the interfaces and much more information about Simba is available at ReadTheDocs and Github.

It has been written by me from scratch, with inspiration from other RTOS:s, and ideas from former colleagues. I'm quite fond of it and I think it's time to release it to the public. See  the installation and user guide pages on ReadTheDocs and let me know if you have any problems.

There is a Gitter for Simba, join Gitter Simba. It's a fresh channel and you might be the first user! =)

Happy coding!



Jan 16, 2016, 04:07 pm Last Edit: May 20, 2016, 11:37 pm by Testato

since you are an expert in the field, may you give your opinion on this Pull Request to the Official Arduino Scheduler ?


cc @vbextreme
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH


May 20, 2016, 06:49 am Last Edit: May 20, 2016, 06:56 am by eerimoq
Recently Simba was added to PlatformIO. Wohooo! =) If you want to give it a try, install PlatformIO (www.platformio.org) and write "simba" as framework in your platformio.ini-file.

platform = espressif
framework = simba
board = esp12e

See the Blink example on Github for the code.

Run it by typing "platformio run" in the terminal.

/ Erik


Jun 05, 2016, 10:01 am Last Edit: Jun 05, 2016, 11:02 am by eerimoq
Simba can now be installed in the Arduino IDE Boards manager!

Super easy, just follow these steps in the Arduino IDE:

  • Open File -> Preferences.
  • Append https://raw.githubusercontent.com/eerimoq/simba/master/make/arduino/avr/package_simba_avr_index.json,https://raw.githubusercontent.com/eerimoq/simba/master/make/arduino/sam/package_simba_sam_index.json to Additional Boards Manager URLs.
  • Press OK.
  • Open Tools -> Board: ... -> Boards Manager....
  • Type simba in the search box.
  • Click on Simba by Erik Moqivst version 0.6.0 and click Install.
  • Press Close.
  • Open Tools -> Board: ... -> Boards Manager... and select one of the Simba boards in the list.
  • Copy the Hello World example into a sketch.
  • Select the Arduino serial port at Tools -> Port: ....
  • Open Tools -> Serial Monitor and change the baudrate to 38400 in the bottom right corner.
  • Verify and upload the sketch to your device.
  • Done!

Wohoo!! =)

PS. Note that Simba does not implement the Arduino API. For example, the setup() and loop() functions are replaced by the main() function. Also, it's entirly written in C. C++ is not suported yet! DS.


PS. Note that Simba does not implement the Arduino API. For example, the setup() and loop() functions are replaced by the main() function.
Seems a strange shortcoming for something to be used with the Arduino system?

Two or three hours spent thinking and reading documentation solves most programming problems.


Simba was implemented as a standalone microkernel with its own build system. I recently created an Arduino package of Simba to make it available to more users, as I'm sure an RTOS is useful for many users that are normally using the Arduino API.

You could write setup() and loop() in the main function if you want.

Code: [Select]

static void setup()

static void loop()

int main()

   while (1) {

   return (0);


Jun 18, 2016, 10:42 am Last Edit: Jun 18, 2016, 10:48 am by eerimoq
Version 1.0.0 of Simba released!

Install it using the Arduino IDE boards manager. See here: http://simba-os.readthedocs.io/en/latest/installation.html#arduino-arduino-ide

The lwIP stack has been integrated and can be used over the UART suing a SLIP network interface. See the HTTP server example here: https://github.com/eerimoq/simba/blob/master/examples/http_server/main.c

The IP stack uses quite a lot of memory in the default configuration. Arduino Due has enough memory, but Mega and Uno does not and cannot be used in the example.


Jul 26, 2016, 08:24 pm Last Edit: Jul 26, 2016, 08:32 pm by eerimoq
Version 3.1.0 released!

Some of the changes include:

- Basic support for Arduino Pro Micro.
- SPI file system.
- Regular expressions.

Have a look here for all modules: http://simba-os.readthedocs.io/en/3.1.0/api-reference.html

Arduino IDE installation guide: http://simba-os.readthedocs.io/en/latest/installation.html#arduino-arduino-ide

Have fun! =)

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131