7

I'm looking for a relatively low-cost (<$50 would be ideal) development board with real support for an RTOS. It doesn't matter if the RTOS is manufacturer-supported or a separate project, but I'd like something that is solidly supported (i.e. actually works for multiple people). I've spent some time fixing broken RTOS ports and I'd rather not have to mess with that.

My other requirement is that the development board has to have support for a Linux development environment.

We're looking for something that is specs-wise roughly comparable to the Atmega 2560. (And, in fact, an Arduino Mega 2560 running BeRTOS is certainly one option.)

To give a little more background to the question, last year we built a quadcopter from scratch (i.e. all the hardware, all the code, etc. Nothing borrowed from Arducopter or anything like that). A small budget ($400) had us stuck with an Arduino Pro (an Atmega 328-based board). By the time we had the thing flying, we were bumping up against the memory limit (due to code size) and doing everything we could to optimize so that our PID loops would run fast enough.

The new goal is to redo the control system based on a less limiting micro and an RTOS.

So, to summarize, the question is, what development boards fit these criteria:

  • Approx <$50
  • RTOS support
  • Compatible with a Linux development environment

Thanks!

Chris Laplante
  • 2,151
  • 1
  • 24
  • 32
Computerish
  • 717
  • 2
  • 9
  • 18

3 Answers3

2

I've had lots of success with FreeRTOS, combine this with an ARM Cortex dev board such as one from Olimex (available from Farnell) - see This Page for a list of supported devices. A Cortex M3 will run at 75MHz and deliver over 80MIPS. ARM code is dead effecient and some ARM Cortex devices include fixed point math functions.

If you want even more grunt, try a Beagleboard or RasberryPI.

As well as FreeRTOS, the latter will run Linux with Linux compiled with config_preempt_rt config option.

Jay M
  • 3,753
  • 15
  • 30
1

STM32F0Discovery will fit best.

Take a look at the fresh (summer 2014) technology stack: https://github.com/dobromyslov/stm32f0-cmsis-cube-hal-freertos-template

Main features are:

There is also a great graphic tool STM32CubeMX available for different ST MCUs quick configuration: http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF259242?icmp=stm32cubemx_pron_prcube_feb2014&sc=stm32cube-pr

And a similar plugin for Eclipse from STM: http://www.st.com/web/en/catalog/tools/PF257931

People says the plugin works partially in Linux under Wine: https://my.st.com/public/STe2ecommunities/mcu/Lists/STM32Java/flat.aspx?RootFolder=%2Fpublic%2FSTe2ecommunities%2Fmcu%2FLists%2FSTM32Java%2FSTM32CubeMX%20as%20Eclipse%20plugin%20on%20Linux%2064%20machine&FolderCTID=0x01200200770978C69A1141439FE559EB459D758000F9A0E3A95BA69146A17C2E80209ADC21&currentviews=999

But I prefer the full STM32CubeMX version and run it under Windows on VirtualBox.

I like this convenient ecosystem and highly recommend to use it in any new modern projects.

1

I am currently using the LPCXpresso range of boards (joined effort from the NXP, Embedded Artists, and Code Red). Excellent support from both community (http://lpcware.com/), NXP, board manufacturer (http://embeddedartists.com/), and of course the Richard Barry and the FreeRTOS.

For 20 EUR you get the MCU board (100 mils spacing for fast protoyping), and you can use their or third party base board for development (base boards are basically bunch of connectors, and nice peripherals). Base boards are more expensive, but worth having. They are comaptible with the mbed (www.mbed.org) for REALLY fast prototyping, but I like staying with some of less expensive 'normal' MCU boards: LPCXpresso 11C24 for Cortex M0, and LPCXpresso 1343 or 1769 for M3.

Development environment is free for up to 128 K (actually only debugging stops there), Eclipse based, works also under Linux...

FreeRTOS is free also for commercial deployment if used with NXP chips (which comes handy if you used them anyway like I do).

Finally, check out the port made exactly for the board I have, it runs out of the box, and porting to another LPC variant is more or less simply coping the FreeRTOS cojnfiguration file and adjusting the stack sizes. This beauty have also something like an eco system built on top of the FreeRTOS, sheck it out, and I can confirm it just works:

http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_IO/Demo_Applications/LPCXpresso_LPC1769/NXP_LPC1769_Demo_Description.shtml

Drazen Cika
  • 401
  • 2
  • 5