Has anyone looked at possible OS for Spark Core?

First, we all know I am not a programmer but, I think I can do anything :slight_smile: including building a OS enabled API solution for the Spark Core.

Of the flavors that support the Cortex M3 that may be a great canidates for the Spark Core are ('m sure there are more) "What is the best "?? to use ??

Chibios ? http://www.chibios.org

Coo Cox ? http://www.coocox.org/CoOS.htm

BeRTOS ? http://www.bertos.org/use

Any feedback is very much appreciated as I travel in to an area where I don’t really belong but, have the passion and time to learn; just need to know which one appears to be best for Spark Core and Community :slight_smile:



spydrop, a port of NutX was done for the for the Maple Mini (which uses the same processor as the Spark) as discussed in this topic:

However, I am not sure david_s5 ever did the port to the actual Spark. Such a port essentially replaces the core firmware with the NutX RTOS so the Spark Team could not help you if you decide to go that way. :smile:

1 Like


Thanks for the link. I’ll take a look and get back to

@peekay123 Nuttx was up and running on core hardware before the the core shipped.

1 Like

david_s5, I knew you had it running on the Maple Mini but not on the core! How much of the RAM/FLASH was left to the user? Did you share that code?


First, Thank You very much for porting Nutiix to run on the Spark Core. I have already read some of your conversations with Gregg at his nuttix Yahoo Group (still need to read more).

Is there code on Github or a page that explains more of the process of compilining / installing Nuttix and flashing the Core ?

With the ability to run a RTOS on the core this puts the Spark Core out their next to RaspberryPI and ahead of Arduino which can not run an RTOS (from what I have read).

Is the ability to have an onboard Realtim OS available to Spark Core users is this not a big “News Worthy” Story ?

Thre reason I ask this is I have tried to get a “Wikipedida Page Started” and the folks at Wikipedia denided my request. So, with that said, is the ported version of Nuttix ready for “Primetime Use” on the Spark Core ?

What else needs to be done? Drivers ? and/or Docs ? and/or Videos ?

It would be nice to use this as a spring board to get coverage by, say, CNET, etc. as well as Press Releases out their so I can re-approach Wikipedia about getting Spark Core its own page; and more.

Thanks for your time and giving the spark core its own OS !


spydrop, the Arduino platform CAN run an RTOS and there are several “flavours” available. Running NuttX on the Spark is not Spark’s goal. Their mission and product goals is to provide a platform that makes web integration and IOT simple and mostly “out-of-the-box”. As such, the type of coverage you desire is counter to what Spark is designed to do.

Nonetheless, david_s5 has created a great option for advanced programmers who do not expect to get any support from Spark and possibly the community beyond the hardware platform. This is the beauty of their open platform!

@spydrop start at http://nuttx.org/ there are links to the git repos under the Download links, browse to config.


Have a read on the Readme.txt there

Please understand that Memory is tight, both Flash and RAM are taxed., that being said,I have system running my application that does AES encrypted HTTP transactions with a server and that support USB MSC with a fat file system.
and hase ~1.5K free of RAM,

Built with size optimization -Os using Code Sourcery tools on Linux (smaller bins the GCC etc)

nuttx.stripped :
section size addr
.text 93786 134217728
.ARM.exidx 8 134311516
.data 901 536870912
.bss 3660 536871824
.comment 43 0
.ARM.attributes 47 0
Total 98445

After Boot:
total used free largest
Data: 15616 3544 12072 12072
Prog: 132096 116736 15360 15360

After initializing :USB MSC with FAT FS to PC

      total       used       free    largest

Data: 15616 10568 5048 4888
Prog: 132096 116736 15360 15360

After my app starts:
Initializing CC3000…
CC3000 init complete.
Firmware version is: 1.24
CC3000 information:
IP address: xxxxxxxxxxxxxxx
Subnet mask:
Gateway: xxxxxxxxxxxxxx
DHCP server:
DNS server:
MAC address: xxxxxxxx
Connected to SSID: xxxxxxxxxxx

      total       used       free    largest

Data: 15616 14120 1496 1480
Prog: 132096 116736 15360 15360

The choice of the type of serial flash chip on the core was an unfortunate one, This is because it requires a 4K buffer to support a real file system,


@peekay123, I fully understant the “Official” and Unofficial ways. Give a very good reason why there shouldn’t be a “NON-CLOUD OPTION” ? Spark Devices Business Model, perhaps ?

By limiting and not supporting the various PHP, JAVA - UDP/TCP methods of 1,000s of already ready to use apploications that will allow “off the cloud” control of the spark core you drasticly limit the number of people who will be able to use the spark core.

From Day 1 of trying to find out if it was possible to run the spark core “without the cloud” the same way I do with an Arduino, from my browser URL box; and it does work ! I was told to learn (the offiicial way) how to compile an Android App if I want to go beyond Tinker Control as that’s the offical way.

Do you know the story of Mambo & Joomla ? How they had to split ways for a very similar reason ?

How many out of 100 hobbyist are going to be able to compile an Android App ? 1 out of 100.

Wheras, if a person only has to flash & go to have fun ? Is this not a awesome and novel way ? Absolutely !

In my case it goes well beyond just having to be connected to the cloud as a mechanisim of control, your cloud provides (and you might not care but I do) a tracking device for the NSA ? Regardless of the Sprk Team’s intentions, having the Spark Core connected to the spark clould via the internet won’t be my official Method of Operation; never.

Can you image having a completely hidden remote controlled device that can not be tracked. I could start my own NASA and get away with it. :smile:

There are several people in this communithy who are already using “off the cloud” methods or who have shown they want to be “Off the Cloud”; just like me and rightfully so.

Thanks for your help and feedback. Please do keep it coming so all can see what is and not supported.


Oh, Thank You So Very Much for this NuttX info and for the links.

I will start gettting up to spead on this next week.

1 Like

I’m looking forward to downloading the NoSpy NuttX Binary Distribution for Spark so that I don’t have to do the build myself. I like the Spark Cloud very much and may grow to appreciate it more but for me the price point of an Arduino-like WiFi enabled microcontroller was the compelling reason for purchase. Proper multi-tasking? I want to play. I bought 3 Sparks and have yet to think of a good purpose for the 3rd.

1 Like


It might not be a NoSpy NuttX Binary Distrubution as I have found another RTOS at http://www.bertos.org/
It has a subscription based service that simpliflies the Development. beTROS has already been ported to Cortex-M4 STM32F103RB (Spark core is STM32F103CB). Still learning more about this RTOS. Will post more next week.