Maple beats up Arduino, takes its shields

The Atmega168 at the heart of every Arduino is an eminently capable chip; its ilk have been seen working as a basic web server, playing back digital audio, even generating TV signals. But as projects continue to grow in sophistication, reality rears its ugly head: Arduino can handle any one of these tasks very well, but it often requires squeezing every last instruction cycle or bit of memory in the device. Even the ’368 chip and the Arduino Mega are stopgap measures. Sooner or later, you have to graduate to long trousers—move up to a more capable microcontroller platform—an uncomfortable change usually involving a hefty investment in new hardware and an intimidating learning curve. Leaf Labs’ Maple aims to change all that…
Maple, expected to ship in October for about $40, brings together the STM32 microcontroller, a 32-bit 72MHz beast of a chip, with the familiar Arduino footprint and even compatible library functions. Users can jump right in, preserving their existing investment in Arduino shields and know-how, then expand their repertoire with the new capabilities afforded by this beefier processor.

But Maple is not the first. Coridium Corporation’s $30 ARMite PRO (below) is a 60MHz ARM7 board that’s pin- and footprint-compatible with Arduino Pro. The CPU isn’t quite as powerful as the STM32, nor do they provide Arduino-compatible libraries, but it’s still a significant step up from the Atmega and is available today.

Also worth mentioning, though it lies in an entirely different direction, is Raisonance’s STM32 Primer (also called the STM32 Circle), shown below. This kit is neither hardware- nor software-compatible with Arduino, and the bundled software tools are Windows-only, but it’s similarly affordable (about $40), self-contained (no external programmer), and will give you a head start with the STM32 chip right now. And while you can’t bring your Arduino shields to this party, the Primer brings its own fun: a color LCD, 3D accelerometer, and rechargeable battery. The original “Circle” Primer is a little tricky to track down, but a little Google searching can help here. A “Primer 2” with more features has since been released, if you don’t mind paying half again as much.

Maple is just the first of several increasingly powerful Leaf Labs projects that are planned. FPGAs and gigahertz-speed CPUs are in the pipeline.

I have a special bit of dislike for ST after they told us they were obsoleting a part and there would be a last time buy. When we went to place the order they wouldn’t accept it, and we and our customers got the shaft. Previous to that we had tons of delivery problems with an ST7 design.

Don’t use their parts and save yourself the headaches. There are a lot of other good ARM based micros.

It’s nice to see new dev boards targeted at the homebrewers… but why would you up sticks and leave for a totally different architecture? Chances are if you need to get the most out of an atmega168 you’ve thrown away the basically shit arduino ide + associated guff and are writing stuff with gcc-avr or avr assembler… so why not just move to a better AVR part. Some of the highend AVRs have AES crypto engines built in!

“rears its ugly head: Arduino can handle any one of these tasks very well”

Hence sensible people don’t try to implement things in software that are just stupid to implement in software. Generating PAL or NTSC video in software is a neat trick, but if you’re doing something serious just get a video generator to do it for you. Stick a CPLD on a shield and get that to do those things, problem sorted.

“Even the ’368 chip and the Arduino Mega are stopgap measures”

The 368 just has bigger memories from what I remember, it can’t operate at higher frequencies or takes any less machine cycles to do each instruction. The mega parts are for projects that need more IO…. Atmel has their AVR32 line for processor bound applications. Note “Atmel”,.. Arduino solder chips on boards and produce said rubbish IDE.

Lol, that’s quite amusing, they slag off the arduinos and say they’re just not good enough for bigger projects, then copy most of the design, port the arduino code and add some extra functions but leave out the one thing that makes people buy a mega, more IO pins…

Got to agree on the crappy arduino IDE, although, for free and to get someone up and running it works fine. not so keen on the processing IDE for the windows based arduino software though.

As Cantido mentions, most people that grab a mega do so for the extra IO pins, of course theres the 128KB of code space, extra ram and eeprom too.

Why the hell would you sell a new product and keep the Arduino pin spacing?!?

I’ve tried to get many people to use the Arduino, but they just can’t get on with not being able to easily use bread boards. The pin spacing was a mistake (in the true sense of the word), and should not be replicated on new platforms.

Check out the AVR32: available now, for example the UC3A3 has a 144-TQFP version that runs at 66MHz (90MIPS), with 16-bit stereo DAC, full-speed USB on-board, 100+ I/O pins, 512kb program memory, etc etc. Open source AVR32-GCC C compiler. Boots linux. $15 chip. Couple that with a Schmartboard and you got a cool breadboard platform. Or look at this project:

> Why the hell would you sell a new product and keep the Arduino pin spacing?!?

CLEARLY to protect people’s hardware investments. Anyone that’s even semi-serious has invested 5-10x more in shields than on their Arduino.

If a mistake was made, it was not including another set of headers on the baseboard that *are* on 0.1″ centers, like the Seeed guys (and others) have done. Otherwise, the idea seems basically sound to me, although you’re welcome to silently disagree.

“Can you say “Parallax Propeller”? A mere $7.99 per chip for 8 CPU cores running in parallel at 80Mhz.”

Each propeller instruction takes four clock cycles, so 80/4=20 MIPs. (PICs typically take four clock cycles per instruction too). An ATMega168 runs at 20 MHz with the vast majority of instructions taking 1 clock cycle per instruction, so you get 20 MIPs. Same as the propeller.

Each propeller CPU (or cog) is very limited in cog ram and using hub ram is slow and complicated. If you do use hub ram often the complex task of managing resource locks rears its head. Then there’s the complexity of managing the cogs themselves not to mention the difficulties of communicating between the cogs. The output pins are shared between cogs, that has to be watched carefully.

I’m not saying the propeller is defective in design, any multi-core processor would present these same issues. I just want to balance the original poster by reminding the potential propeller user that there are some steep hills to climb with this part.

The 40-pin DIP propeller is out of stock again. As far as I know there’s no free C compiler that’s easy to use and supports double precision floating point. (At least I find Catalina difficult to use). The Imagecraft C compiler ($) only does single precision floating point. There’s no intellectual property protection and you have to use an external I2C EEPROM with the propeller.

Propeller’s native SPIN interpreted language is REALLY slow. I just implemented some simple routines in propeller assembler and spin and found spin to be around 100 times slower than assembler.

Each propeller cog has two powerful timer/counters so there are 2×8=16 timer/counters total. If your application needs a lot of beefy fast timer/counters, you con’t beat the propeller.

+ Chances are if you need to get the most out of
+ an atmega168 you’ve thrown away the basically
+ shit arduino ide + associated guff and are
+ writing stuff with gcc-avr or avr assembler… so
+ why not just move to a better AVR part. Some of
+ the highend AVRs have AES crypto engines built
+ in!

Indeed. However, you can still access low level registers within arduino languagehttp://www.arduino.cc/en/Reference/PortManipulation
For most of small projects, I tend to program using the arduino language. It is fast and clean.
When my needs require more, I usually replace the arduino bootloader (it takes a lot of space) and use my custom makefile to build (avr-gcc) and flash (avrdude) my programs directly.

Arduino software apart, I find the hardware very well designed and cheap. I couldn’t build one myself that would be cheaper because individual parts in my country are not cheap (I’m not abulk buyer either).
Well.. I still think the diecimilia should fit on breadboards but that is another story.

I attempted to use the IDE for around about a day… it just wasn’t right. If you can program C for some sort of platform already, your best bet is to ditch the IDE. However, I can see why Flash developers seem to like it..

> I find the hardware very well designed
> and cheap.

Yes, have to agree with you there. The best thing to come out of the arduino thing is that there is lots of cheap atmega168 boards with usb out there that you can exploit with avr-gcc and avrdude. You can also find cheap Atmel STK originals and clones though.

I would just go for a Seeeduino however; Their boards have spaces for correctly sized headers, have an FT232 onboard etc etc..

Not to start a war; just pointing out that the Propeller can do eight things simultaneously (truly simultaneous – not timesliced.) Okay, 20MIPs times eight parallel CPUs=160MIPs. Often the Timer/Counters can be setup to do tasks without processor intervention, freeing that processor for other tasks. My two or three cents worth.

I think arduino is a great platform to get people started in micros but it can be limiting if you just lock yourself into the arduino world. There are a ton of great , very capable micros out there people can use that are low cost.

If you really want to pursue this area of electronics you need to learn what is required to use it, don’t let the idea of learning something new limit you to just one very small area of micros.

It doesn’t need to be costly either. You can buy boards at places like futurelec very cheaply

But Arduino don’t make micro’s.. Atmel make the AVR, and they make some seriously nice parts. For most people the Atmel parts are perfect because they are cheap (around the same pricing as PIC’s in quantities of one), source-able, and unlike other micro’s the Atmel parts have a good, well documented, well supported free toolchain that runs on pretty much any OS out there.

If you want a truly beefy and interesting micro try out one of the SuperH chips, very quick and also very hard to source in the western world.

>If you really want to pursue this area
>of electronics you need to learn what
>is required to use it,

you need almost zero electronics knowledge to wire up a atmega168 on a piece of strip board. You can pick up a micro and have something interesting happening in a day, and on the other hand you can get on of those 350 in 1 electronics kits and make boring-to-death circuits for weeks and weeks.

Anyhow it’s not about limiting yourself to a particular micro controller, it’s about picking the right tool for the job; if you want to blink an led you don’t use some massive SoC, on the other hand you don’t try and make a little 8bit mirco do 8 serious computational tasks that should each be done by a dedicated unit.

@AlmostThere
>just pointing out that the Propeller can do eight things simultaneously (truly simultaneous – not timesliced.) Okay, 20MIPs times eight parallel CPUs=160MIPs

i often see that 160 mips thrown around, and while it may be technically true it it’s not like you can take any old process you need to do and get it done at 160 mips… sure you can have some cogs do this and some cogs do that, but that’s not necessarily the same as calculating a float at 160 mips. and many times the functions dedicated to cogs are things that other chips provide in hardware, like uarts.

like anything, the propeller has strengths and weaknesses. limited ram and no onboard rom mean every project needs an external eeprom chip to hold your code, and you can run out of memory pretty quickly.

The arduino is fantastic for what it is meant for and the arduino language/gui is as well. I dont always want to crank up a c compiler and delve in deep when i want to hook soome wires to an mcu and see if i can get this weird lcd working or take a shot at random scrounged ic. When i was playing with a pov display i didnt want to invest insane time into something i knew deep down id figure out then rip back apart. The arduino and avrs are perfect for that sort of thing. Simple to use and reprogram. No pic chiptochip weirdness. Plenty of power. The arduino is the perfect speed/cost for most simple applications (far better than most pics).

If you have a problem with arduinno pin spacing the solutions pretty simple. Breadboard one or etch a one sided pcb. If you want that and a bit more space get/make a sanguino.

Im hopefully moving to high speed arm (if i can afford it) as i see theyve put out some HIGH speed chips finally that are ubercheap. I’ll still use my arduino and collection of random avrs for all the small stuff (meters.. lighting thingamabobs.. whatever). When i want to make a diy palmtop ill use the arm. But im not going to waste the cost of an arm chip + components on something i hate to even spend 10 bucks on.

Everything has its place. Ease of use is a big factor or a lot of us would be debating the (faster) SX chips or 8051’s or whatever. Heck i have a 33mhz dallas 8051 with networking et al sitting in my commponent box right now ill probably never touch (its sampled). I dont use it because i dont have a need atm. Just as you dont use that attiny or sx or 8051 or or or

I have to agree with cdreid. The Arduino makes an excellent prototyping and learning platform. While I’m already a programmer (Java, mostly), I don’t want to learn avr-gcc just to blink an LED. I’m sure I’ll need to/want to learn it later, but as a starting step it’s only hindering me.

Personally, I have a Mega. I use it to prototype my designs, and make sure the code works. Then I determine how big a micro I need to finalize the project, bread board it, then put it on a PCB. I have a feeling this is one of the major uses the Arduino team had in mind; experimentation, prototyping, and learning.