View Full Version : Alternate cheap/easy embedded platforms

01-27-2014, 03:03 PM
I got curious today about other ARM boards and discovered mbed (www.mbed.org (http://www.mbed.org)) which I guess is a platform for ARM dev boards that is free and easy to use. It looks like there are several different dev boards mostly based on Cortex M0,M3, and M4 (http://mbed.org/users/embeddedartists/notebook/lpc4088-quickstart-board/ (http://mbed.org/platforms/EA-LPC4088/)). It uses a free online-based IDE/compiler. They also have AX12 Dynamixel libraries.

I also found TI's Energia (http://www.energia.nu/) that looks like an Arduino IDE with similar Wiring libraries. It has some slick dev boards including one with a Cortex M4 (http://www.ti.com/ww/en/launchpad/launchpads-tivac.html#tabs). This platform also has "Booster pack" which are like Arduino shields.

I'm becoming interested in the ARM Cortex M4 processor because i see it as a great middle ground between standad microcontrollers and single board computers. They're fast and have floating point support, but are also energy efficient, are directly programmed, and are "instant on".

The platforms above are nice because they have free dev tools, some level of community support, and some nice libraries to simplify some of the nitty gritty.

Do you guys know of any other interesting platforms out there?

01-27-2014, 04:43 PM
Floating point is not mandatory for Cortex-M4, and there are very few currently available that actually include an FPU.

01-27-2014, 06:03 PM
The LPC4088 up there for mbed does. It's $70, a little on the high side. I'm going to mess around with mbed and see how it works.

01-27-2014, 08:09 PM
I'm not super excited about the mbed -- back when they first came out, the only way you could develop was in a web browser based IDE and download from their service as a "file download" onto the mbed mounted as a "flash drive." None of which maps to my workflow at all. I think it's better now, with some options for locally hosted compilers and alternative downloading options.

But that leads to the second part: What niche in the spectrum does it fill? The 70-100 MHz niche is already covered well with the OpenCM9.04 and the Teensy3.1++, each of which is $20, and both of which use the actual Arduino IDE (although library support is somewhat different in the two.) The "single core performance" niche is filled by Raspberry Pi at $35, and BeagleBone Black at $45. And the "multi-core low-poer computer" niche is filled by the various Odroids and Pandaboards and similar, at $80 and up.

01-27-2014, 09:35 PM
It looks like mbed has instructions for setting up a local tool chain. And the web IDE is kind of cool. I can log in from anywhere (even at work :P), platform independant, it seems to have a fuller feature set than the restrictive Arduino IDE. It even has revision control and the ability to share and collaborate with others. Pretty slick. Granted I've never used it. I just tried to, but you need to register with your hardware before it'll let you sign in and access the IDE.

I think a Cortex M4 w/ FPU (up to 120MHz) fills a nich above the AVRs and Cortex M3 which lack floating point support. That's a pretty big difference if you're lazy and want to run floats all over like me. Sure, the M4 is slower than the Raspberry Pi, etc, but it still allows you to live in the "micro controller" world without operating systems and all that mess.

01-27-2014, 11:13 PM
I'm a big fan of the STM32F4 (168Mhz Cortex-M4, with FPU). I've mostly rolled my own boards at this point, but I have posted all of my gcc/libstm setup on github: https://github.com/mikeferguson/stm32

- (https://github.com/mikeferguson/stm32)Fergs

01-28-2014, 06:21 AM

So I've been designing my own STM32F405 board, and will be sending it in for manufacturing later this week. It is set up to become the mainboard for uCee, and will run MicroPython. I'll be updating my blog later this morning with more information on the board, but I'm pretty excited to be jumping into the ARM side of things, especially now that MicroPython is usable.


- Jon

01-28-2014, 08:57 AM
Wow, nice work guys. Interesting that you both settled on M4s.

I just pulled the trigger on the mbed LPC4088. I'm turning into Kurt swapping directions every week ( :P ) but, hey its fun and if i get comfortable with this hardware and software it could really have legs. *rimshot*

01-28-2014, 09:08 AM
I'm turning into Kurt swapping directions every week ( :P ) but, hey its fun and if i get comfortable with this hardware and software it could really have legs. *rimshot*
Who me?:p Yep - I have experimented with many different set ups. Started when it was clear that Lynxmotion was going to migrate away from Basic Atom Pros... I have played with quite a few different processors and only made a dent in all of the possibilities :lol:

As for my board (version .1), Not sure why I am doing, but I do find it fun to play with diptrace and you can get some pretty cheap fabrication done. Tried to make this version easier for myself to solder... So the Teensy makes that easy as all of the main ICs are done for me.

Jon: Great looking board.

01-28-2014, 12:22 PM
I just realized that the two small header strips on the LPC4088 fit an Xbee and have a UART prewired up.

The 8MB of flash is also interesting. You can setup a filesystem on it. This could be useful for storing some kind of map or navigation file or for recording a navigation log, debuggin info, etc.

This is very exciting to me :P

01-28-2014, 01:47 PM
My STM32F405 board above (and the MicroPython board it is based on) both have a uSD card, so I can have lots of flash space. When you connect the board to a PC, it shows up as both a USB serial device, and a Thumb Drive, so you can write directly to the uSD card without removing it from the board.

- Jon

01-30-2014, 11:23 PM
Well i got the LPC4088 today and played with it a bit. The mbed online IDE and compiler seems to work well. Its responsive enough and perfectly usable. It is cool being able to search for libraries and programs and pull them directly in.

Programming is also easy, it automatically sends you the bin file and after it downloads (instantly) in Chrome, i just drag it over to the drive in My Computer and it programs.

I ran the Hello Worlds, blinkies, and serial over USB tests and they work. Now i'm trying to port over some code and learning all the mbed and standard C APIs while i'm at it. Arduino does make things easier. :)

01-31-2014, 09:13 AM
I'm turning into Kurt swapping directions every week ( :P ) but, hey its fun ...
Who me, Nope I just keep adding more confusion to my life each week ;)


P.S. - I have an Intel Galileo arriving maybe today :lol:

01-31-2014, 01:41 PM
My board showed up today, as did all the parts for it and the stencil...


I'll hopefully be building it tonight or tomorrow.

- Jon

01-31-2014, 08:28 PM
At first I was wondering why your boards looked so much cleaner than the ones I make, and then I noticed you don't use component designators on them :-) Much cleaner!

02-01-2014, 06:37 AM
Yeah, I have component designators available in my source file - why clutter up the board with them?

02-03-2014, 09:54 AM
So my 8 MHz crystal doesn't work for some reason, but I was able to jury rig an 8 MHz ceramic resonator I had in my parts bag (I made a lot of Bioloid boards back in the day, and I still have tons of parts).


I have a fairly long write-up on my blog (http://blog.huv.com/2014/02/micropython-boards-crystal-trouble.html) detailing troubleshooting this issue, but in the end the ceramic resonator works for now. I'm going to continue to try and fix the issue so the proper crystal will work. Fortunately I have two boards, so one is set up to allow me to work now, and the other can be used to try and fix the crystal issue.

The four wires hanging off the connection in the picture are my reset and boot0 buttons, which would be mostly inaccessible once the board is on the robot, so I set them up to be "remote". Once I have a fully working MicroPython build installed, I won't be reflashing the chip much, just copying python source files over USB, so they will probably be left off, or tucked away somewhere inside the robot.

- Jon