Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

We played with RIOT for a couple of months.

For our current product, (and I would think a lot of IoT apps), power is king. We run on batteries, and getting back to idle/low power states as often as possible is crucial. I've found that a lot of the embedded RTOS often have tickless modes as an "add on." We had problems getting RIOT to a happy point with that for our chip (samd21).

Like some of the other commenters, I've grown a real distaste for embedded RTOS frameworks that try to provide all kinds of layers. In order to be generic/cross platform, they always come up short in capability. The functionality that I'm looking for, is simply getting the basic threading/sync primitives to work well and right. Past that, I'm fine doing the chip IO parts myself. At the time, there was a debate on whether priority inversion was a problem RIOT should worry about or not.

After FreeRTOS, and then RIOT, I found TNEO (https://dmitryfrank.com/articles/how_i_ended_up_writing_my_o...). It's been a dream and rock solid for us. It does not come with a large make/build system. It's just C code. You tweak a couple of things, include one or two bits, and I was off to the races. Coupling it with Unity for testing and then writing ~200 unit tests that stressed all of its functionality was straightforward, helped me understand it even better, and gave me a high degree of confidence in its abilities. It's been super solid for us since. It does the one thing I need it to: MicroKernel for dealing with processes and related synchronization primitives.



There are a lot of realtime operatings systems out there right now, competing for a spot on the IoT hypetrain:

- the mentioned RIOT OS (https://riot-os.org/)

- FreeRTOS (https://www.freertos.org/) and Amazon's version of it (https://aws.amazon.com/freertos/)

- Zephyr OS (https://www.zephyrproject.org/)

- MyNewt (https://mynewt.apache.org/)

- Mbed OS (https://os.mbed.com/)

and more... Makes it really hard to choose one!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: