Arduino can sense the environment by receiving input from a variety of sensors and can affect its surroundings by controlling lights, motors, and other actuators. The microcontroller on the board is programmed using the Arduino programming language (based on Wiring) and the Arduino development environment. Arduino projects can be stand-alone or they can communicate with software running on a computer (e.g. Flash, Processing, MaxMSP).
Since its introduction the open source software world has taken to the Arduino software and hardware and have built many more platforms, of those the ARM-based ones are the most frequent in number and very powerful. One example I particularly like is the board created by former students of MIT, Leaf Labs.
Of course some of the derivatives are true to the Arduino spirit and some are not, those are the ups and downs of the open source world. Nevertheless the contributions in the ARM world seem good and I chatted recently to dedicated user Garry Bulmer in the UK. See our conversation below:
Richard: Gary, what is your focus?
Garry: My aim is to develop Open Source, low-cost, microcontroller boards, using Arduino-like Open Source software. I am focused on ARM processors because the Open Source Software is already mature.
32-bit ARM gives a significantly higher performance than 8-bit microcontrollers, so that even more projects, for example in music and robotics, are well within the capabilities of the amateur and children. Critically ARM boards are at a comparable cost to 8 and 16-bit boards.
I am working to ensure the boards use DIY friendly PCBs and components. My goal is to ensure people have the support to realise their ideas starting at any stage. For me, that means even making a DIY PCB should be practical.
Richard: Why did you start?
Garry: Mark, an old friend, was concerned that his grandson, Ruben, spent a lot of time watching TV and playing computer games. When he asked what Ruben would prefer to do, Ruben said 'make a robot, a dogbot'. So Mark and I decided to make Ruben his own robot using an Arduino as a controller and some Lego. We got some help and advice from Dr Tony Wilcox at BCU. Ruben was delighted.
While we were creating 'dogbot', Mark involved Ruben in developing code for the Arduino. Arduino code looks mostly like C, but is C++ with some very tastefully judged abstractions and a little pre-processing. Ruben wasn't able to type code, but Mark wanted to him to understand how 'dogbot' would work. While Mark was writing code and explaining it to him, Ruben, then 6 years old, pointed out a logical error in the code.
This was an epiphany. A smart, interested 6 year old, could understand the logic of a C++ embedded system for a simple robot well enough to spot an error.
Richard: Why did you choose ST Micro’s STM32? - Really what were you trying to make possible?
Garry: Several reasons.
While an ATmega is pretty good for many applications, it is a bit underpowered for many sorts of applications. An Arduino needs extra electronics to handle analogue signals at these sorts of frequencies.
While a skilled developer can eventually do amazing things with an 8-bit microcontroller, it is always easier to start with plenty of headroom. So I wanted a processor capable of running, for example, an MP3 player, and hardware ADC and DAC capable of reasonable quality audio, built in. It needed an SD memory card interface. Ideally the MCU family would have I2S, the interface used by a lot of dedicated analogue audio peripherals for folks who wanted to go further.
When you look at world class micromouse robots, for example, you want quite a lot of I/O, and not just lots of dumb digital pins. I think it's better to start with a base that is capable of world-class competition, rather than a cut-down 'toy', as long as you aren't overburdened with extraneous complexity, or expense. When a new user asks how far could the microcontroller extend, I think it helps to point at world championships and say "that far".
So I developed some specification for a world class mouse controller by talking to my Micromouse colleagues. I then tried to see how close I could get without compromising on ease of use, simplicity and low-cost.
The Arduino showed the value of USB self-programming. I hand school children and beginners a USB cable, an Arduino, and they know how to connect it. We can get the tool chain and hardware working in under 5 minutes, running their first program. This builds confidence and encourages folks to have a go.
Richard: Why STM32F?
Garry: When I was doing my analysis, the ARM Cortex-M3 processor was stable, widely available from multiple manufacturers, low-cost enough to be affordable for an Arduino price board, yet powerful enough to represent a genuine improvement over ATmega. The GCC tool chain, which underpins Arduino, is also available for the Cortex-M3 processor.
When I compared specific products against my specifications, the top two were ST Micro's STM32F and NXP LPC17. I wanted quite a lot of sophistication in the MCU's peripherals. I wanted to have a single PCB design capable of scaling from low-end to high-end applications with over 30 I/O's. The STM32F is in the sweet spot for my combined technical specifications.
When I looked at existing projects, I found that LeafLabs were developing Maple, an STM32F103-based board (since 2009). They had ported parts of the Arduino library, and improved the library where the STM32F had more sophisticated facilities than ATmega. They were developing an Arduino-derived IDE. They had a USB-bootloader. It is all Open Source Software and Hardware.
So STM32F ticked all of the boxes, and LeafLabs Maple was the best implementation of Arduino compatible hardware and software. Leaflabs is quite mature. When I started in 2010 it was over a year old.
Richard: Why Arduino software?
Garry: We need Open Source libraries to provide an easy-to-start level of abstraction. IMHO, as a Computer Scientist and Software Engineer, the Arduino libraries are an outstanding example of how to get people started. A great strength of the Arduino libraries is they don't prevent you getting 'down and dirty' with the hardware. So I can start off with easy to use hardware control libraries, but go lower, and achieve greater performance or more flexibility without 'fighting' the infrastructure.
Richard: So why is this so important to you?
Garry: We are faced with very serious challenges in our impact on our environment. One way we will reduce our energy consumption is by making existing products smarter. For example, we can get significant energy reduction by using smart motor control rather than electro-mechanical commutators.
We also need to innovate to create wealth. If we believe in the 'Internet of Things', the current population of smart devices is likely less than 5% of what we will have deployed in 5 years. The vast majority of microcontroller devices that we will use in 5 years time haven't been built or programmed yet. This is an amazing opportunity for people who are interested in, and have aptitude for technology development. I want to enable them.
Richard: So how can people reading this get more access?
Garry: I blog occasionally.
I have a group which has some of my Arduino-based stuff, and will get my new stuff.
My aim is to release the PCB CAD for a DIY friendly Cortex-M3, as well as provide industrially manufactured PCB's. I will be doing presentations about this, and hope to lead some workshops at fizzPop later in the year.
There is also a forum about LeafLabs Maple, where I try to help folks.
Arduino background: Wikipedia lists seven 32-bit Arduino-compatibles and five are ARM.
Thanks to Gary for his time and letting me interview him. The enthusiasm he has for teaching embedded systems and the time he spends encouraging children that technology can be fun is great and I’m hoping to find ways at ARM of supporting him in his efforts.
Richard York, Director of Embedded Processor Products in the ARM processor division with responsibility for the team marketing ARM’s embedded and microcontroller CPU products including the Cortex-M and Cortex-R series. He is also responsible for the overall embedded roadmap for these products and the ecosystem around them and works closely with ARM’s licensees and their customers as they develop their products and markets. He has worked at ARM since 1994, during which time he has been closely involved with the design of the early ARM processors before moving into a marketing role in 2000.
0 Comments On This Entry
Please log in above to add a comment or register for an account
Peggie: University of Oxford, UK - Shell Eco-Marathon Finals in Rotterdam
on Today, 02:31 PM
Cortex-M0+ a year after: smaller, thriftier and smarter!
on May 20 2013 02:59 PM
The Continuing Hazards of Dhrystone
on May 16 2013 10:24 AM
Make versus buy: it's about risk management!
on May 15 2013 02:29 PM
Accelerated Internet of Things (IoT) development with ARM mbed and Xively
on May 14 2013 12:21 PM