Arduino to ARM. Where to start?

I am a part of my school's engineering club and am responsible for workshops that teach members new skills. Over the past few months I have taught about forty students how to use Arduino, from digitalWrite down to bitmasking registers to reverse the order of SPI transfer.

I have received a complaint recently that Arduino is nice but bland for third-years and above. I was told to look for an ARM board to learn how to use and eventually teach to members. The problem is that I have no experience at all with it, no classes at my school teach it, and there do not seem to be any ARM boards with nearly the percentage marketshare that the ATmega328 has. Right now I am leaning toward LPC or ST-branded ARMs that are found on the Maple (always out of stock), Discovery (seems underpowered), LPCExpresso, and mbed (missing JTAG).

The main goal is to become familiar with a device that is used in the real world so that the workshops are useful but keep costs down. I also want to buy peripherals but am not sure which are appropriate for the much faster ARM. And just as you wouldn't consider a regular Timex and Pebble the same, I would like to be able to distinguish the ARM and Arduino workshops somehow, even though I know that ARM workshops will have to start by blinking an LED.

I have read past posts on this forum about ARM but they are over two years old. I am also eagerly awaiting the Due, but as far as I know it is past its due date so I am looking for alternatives.

Can't you get them excited into pushing the boundaries a bit? For example:

The humble Arduino outputting to a VGA monitor (and further down, in colour). I was thinking that doing a Pong game, or Tetris should be possible.

Or combine that with some FFT and music input and make a nice "music visualizer".

orangeLearner:
Bland for a third year? Third year in college or high school.

Are you a fellow student or are you the Instructor in charge of the group?

I am a second-year college student looking to learn relevant skills and convey them to my peers.

Nick Gammon,

That VGA demo is actually very cool and I did not even know it was possible, but the fact is that the Arduino is not the correct solution to that problem. A lot of consumer devices are based on ARM and I would like to be able to get a taste of what it is like to develop on them in the real world.

I want to take advantage of the additional speed to maybe...output VGA in more than one color, or make a single-chip + opamp MP3 player. Stuff that you can't do with the Arduino.

I guess that the Raspberry Pi is an option. They will cost between $25 and $35 dollars and they have an "expansion" port.

Look it up. It may be the way to go for you..

Yes, the Raspberry Pi would be an option if someone could actually obtain one, let alone ten for a workshop. And as far as I know it is being marketed as a cheap computer, not an embedded platform. I also read that the main controller on it has no official documentation, so I will have to wait a few more months for people to hack it before that becomes an option.

JoeO:
I guess that the Raspberry Pi is an option. They will cost between $25 and $35 dollars and they have an "expansion" port.

Look it up. It may be the way to go for you..

Adafruit also have a protoboard for working with the raspberry-pi

orangeLearner:
Yes, the Raspberry Pi would be an option if someone could actually obtain one, let alone ten for a workshop. And as far as I know it is being marketed as a cheap computer, not an embedded platform. I also read that the main controller on it has no official documentation, so I will have to wait a few more months for people to hack it before that becomes an option.

What is wrong with your GROUP hacking it? Let them put together a user's guide. What better way for them to learn its capabilities? What better way for them to learn?

Students need to learn to explore. They wait for everything to be handed to them.
You however are not that type of person.

hellonearthis:

JoeO:
I guess that the Raspberry Pi is an option. They will cost between $25 and $35 dollars and they have an "expansion" port.

Look it up. It may be the way to go for you..

Adafruit also have a protoboard for working with the raspberry-pi
Announcing the Adafruit Prototyping Pi Plate Kit for Raspberry Pi « Adafruit Industries – Makers, hackers, artists, designers and engineers!

EXACTLY!!!! Thanks for the update.
Every thing you need to get your group moving.

The idea of collaborative hacking is a very cool and I would love try it out. In fact one idea presented to me was that we buy one of each of the different ARM boards I mentioned above and invite people to a "figure out how to use it" workshop.

The problem is what to buy? I would like to be able to buy the Raspberry Pi but I think it is still shipping to the people who ordered at 6:01 AM the morning of release. Is there another product or family that we can learn in the meantime?

Looks good, "Netduino Go has four times the speed (168MHz), six times the code space (384KB), and twice the available RAM (100KB+) of Netduino Plus."
It covers simple as well as OMG complex.

Right now I am leaning toward LPC or ST-branded ARMs that are found on the Maple (always out of stock), Discovery (seems underpowered), LPCExpresso, and mbed (missing JTAG).

Discovery seems underpowered? Which one?

ARM come in sort-of three flavors. You have your "small" microcontrollers aimed at the 8bit market. Less than 100MHz, less than 256k flash, no MMU. Usually Cortex M0 or Cortex M3 cores. The LPCExpresso boards and Maple, plus most of the TI Stellaris development boards and the Freescale Kinetis boards are mostly in this category.

And you have your BIG ARMS. 500+ MHz. External memory with MMU. Runs linux and most programs are written as user-level linux programs. ARM9, ARM11, Cortex A8 cores. Includes Rasberry Pi, BeagleBoard/etc, Pogoplug, and assorted wireless routers.

Then you have the in-between systems. 100-500MHz, up to 1MB flash. No MMU, but too much space (IMO) not to run some sort of kernel. A lot of the Cortex M4 boards (including the STMF4 discovery) fall in here.

also eagerly awaiting the Due

You might want to wait another month and see if anything concrete comes out of "Maker Faire" Silicon Valley. It was MF NY where the Leonardo/Due were first mentioned, and it wouldn't surprise me if they had more to say here. Apparently Atmel and Arduino are sharing "booth space" (cf avrfreaks)

PS: I think a great place to start for "advanced" hackers would be to port the Arduino core libraries to whatever ARM board you get. This teaches you quite a bit about how the new CPU works, gets you familiar with the Arduino internals in a way that few people achieve, AND potentially provides a useful tool for less experienced users. Shucks, I'd like to see the Arduino core ported to windows (A parallel port has 8+ output bits. The sound card has several channels capable of analogRead(), etc.)

The more host-oriented people can spend their time trying to build arm-gcc tools in useful forms.
One of the more attractive parts of a hypothetical Arduino IDE supporting ARM is the existence of a multiplatform ARM development environment that isn't dependent on proprietary libraries.

You could also look at ChipKit, which is an arduino-like system with PIC32 (MIPS) processor. Not as popular as ARM, but of comparable power. Someone has the larger ChipKit (MEGA equiv) running 2.10bsd unix...

I would recommend the STM32F4 Discovery board. It is very cheap, in fact it is sold at below cost, and powerful. It is also a bit of a challenge to drive, especially on a Mac.

Thank you for explaining the different ARMs available. I was looking for something like that. So now I know that the Cortex M0 and M3 are essentially the same device as Arduino, only about 5 times faster with more I/O.

I think I will opt for the medium power ARMs like the STM32F4 Discovery board which I thought was underpowered. I am looking at it again though and my head is exploding reading the datasheet. I am trying to compare the STM32F407VGT6 to the ATmega2560 and there doesn't seem to be any reason at all to use the 2560, or even an Atmel Xmega when the price difference between the AVR and ARM is $1.

My next question: why is this supposedly more powerful Discovery Board being sold for so cheap, much cheaper than the less powerful Maple? This is part of the reason I was so confused--apparently price is inversely proportional to power for dev boards until you reach the ARMs with Linux. What are some of the other mid-range boards?

why is this supposedly more powerful Discovery Board being sold for so cheap

It's a demo/evaluation board sold by the chip vendor at a loss to encourage chip sales. With an Arduino (at least with the small arduinos), part of the attraction is that you can take the (open source) design files, twiddle them to meet some particular application you had in mind, and manufacture your own board for about the same price (or less) than the commercial product. Thus things like Sanguino and Bobuino (ATmega1284 or ATmega644 based arduino-like boards) that are considerably more powerful (RAM and Flash space wise, anyway) than the original, at about the same end-user cost.
With the STMF4 board it would be much more difficult to produce a modified version (even if the design files were available.)

now I know that the Cortex M0 and M3 are essentially the same device as Arduino

I'm not sure I'd put it quite like that. M0 and M3 are ARM "cores" aimed at the "microcontroller" application space (everything on a chip, more or less), but that's a very broad space. The vendors that implement chips based on those cores have a lot of flexibility in terms of how much ram, how much flash, and what sort of peripherals they provide, so they span a range from "smaller than arduino" to "much bigger than arduino." TI is an interesting example in that they have ARM chips aimed at microcontroller apps, and then they have BIG ARM chips that are pretty tightly aimed at specific applications (digital cameras, etc.)

You're right. That was Cortex M0-M3 statement was probably an oversimplification. I am just comparing it to Atmel with their different lines of ATtiny and ATmega chips that are essentially all the same thing with one compiler for them all since they all have the same AVR core. I found these pictures that clarified product families a bit. I could use one for Atmel too since they seem to have a ton of AVRs that are all the same.

Texas Instruments:

STMicroelectronics:

one for Atmel too since they seem to have a ton of AVRs that are all the same.

Where as they might have the same core processor, the peripherals / packages are different. This allows a manufacturer to get the best fit to their application and so get the best price. And I am talking about real prices here, the ones you get for 500,000 and up, not the toy prices us mortals pay.

I think the BeagleBone is a close competitor (rather, complement) to Arduino in ARM space:

http://beagleboard.org/bone

It's still ramping up, but it's a great fit if you can wait.