Can anyone please point to a reasonably recent comparison of
microcontrollers suitable for use in amateur robotics??
I'd like to compare Basic Stamps, DIOS, Atmel, AVR, etc etc...
I need to make some choices for the next school year ASAP.
Terry, I'd like to suggest something we are about to come out with. We
will shortly be offering a 1.0x1.3" board with a 24-pin dual inline
header, somewhat similar to the stamps. However, we are targeting $29
for a 60 MHz, 16/32bit ARM7 processor, with a fair compliment of RAM and
FLASH. We think this board will come out on top of any comparison chart,
for size, weight, processing power, and bang for the buck, etc. Plus
learning on an ARM will be a very good choice for the future of the
user, with access to many languages and development enviroments, and an
upgrade path for ARMs all the way to some of the most powerful cores
I use boards based on 8051-core processors now. Why use something modern when
you can do the same job with 25-year-old technology in twice the time with
twice the power consumption, right? ;^)
Seriously, though, I am starting to look at faster processors with more I/O.
You have experience with many processors, and I was hoping you could make a
recommendation based on the following requirements:
* Digital I/O
- General purpose
- PWM output (at least two channels)
- Quadrature decoding (at least two channels)
- External interrupts (at least two)
* Analog I/O (at least eight channels)
* Interprocessor communication support (i.e. networkable)
* Serial program download (in circuit)
* C development environment (Linux, preferably)
Since I plan to use a network of processors, each dedicated to a set of
sensors or effectors, something less than $100 each would be preferable.
With all the *POD, AVR, ARM, HC12, and other products out now, I really do
not know what would be a good upgrade path from 8051s. And I welcome
suggestions from anyone (not just Randy), of course.
Well, there's lots to be said for getting the job done, and if you can
do it with what you know, there is a huge time saving on the learning
curve. But sooner or later, you get so far behind on the technology
curve, you start being out moded and out dated. Then it's time to
modernize once more.
That's almost an exclusive list. While many processors have two PWM's,
very few have Quadrature Decoding channels.
Okay, I asked around with the staff too. The only processor we know of
with Quadrature is the DSP56F80x series processors. That's not saying
there might not be a TI, AD or PIC DSP chip that also have some, but we
don't know of any.
So for hardware quadrature, that means DSP56F80x.
No GCC here. For C development that means Code Warrior (which with all
the amature nonsense we are routing out of their compiler and libraries,
I just cannot speak kindly about) or our Small C version. Pete Gray is
working on StatiC, which is a cut between C and IsoMax(TM).
The serial download to the DSP56F80x doesn't fit very well either. The
usual load method is via JTAG. We all use Winduz, except for Pete who is
Linux conversant, and the loading we do is by FLSH.
Networking of the DSP56F80x is by CAN, which is very sweet, and robust
enough for automotive environments.
If you give up the Quadrature, then the ARMs fit your list very well,
and picks up every other point I believe.
Most of the ARM's have and I2C and some both CAN and I2C. Development
for ARM's exist in plenty. GCC for ARM is mature.
The European answer to this question is very loudly resounding: The ARM
is the new 8051. (This is a bit odd, given the ARM has 6502 roots. But,
you hear it often repeated.)
Now that we can buy a 32-bit 60-MHz ARM single chip for just over $3,
with 32K Flash 8K RAM on the low end, you have to assume the 8051 core
is past its prime. Then on the top end, you can easily find ARM variants
running 200MHz up. With host USB ports, etc.
Even Motorola has gone head long for ARM now with their MX1, with built
in CMOS camera interfaces, and Bluetooth accelerator interfaces.
Then further on the leading edge, 400MHz, 750MHz, and now even 1 GHz
ARM's are being made.
Seems to me, if you want to learn one core processor for a long life
duration, and applicability from lowend products up to high end super
systems, the ARM would be that candidate.
Randy M. Dumse wrote:
[additional input snipped]
The quadrature decoding is no problem on a fast processor, so I could drop
that requirement. GCC is a big plus for me, since I already use it for the
native Linux parts of the system.
Thanks for the excellent input.
Hi Ken, we will be announcing this board in a few days, it will be our
April special. (And no, this is real, not an April-fools joke, no matter
how too-good-to-be true this sounds!)
This new board will be very much like our TiniARM(TM) already up on our
web site, but will have a slightly different processor, the LPC2131. The
LPC2131 has 32K Flash and 8K RAM. Also two 32-bit timers, PWM, and 2
serials which can be UARTS, I2C or SPI (not all can be used at the same
time though). We even brought out (upto) eight channels of 10-bit A/D.
You can read Philips info on the family here:
and look at their data sheets if you are interested.
Then we will also have a slightly more expensive version based on the
LPC2138 (but identical PCB), which will have all this plus 512K of Flash
and 32K of RAM. The current TiniARM(TM) is similar, but has the LCP2106
with 128K Flash and 64K RAM. So largest Flash will be new LPC2138 and
largest RAM will still be with our LCP2106 version.
Randy M. Dumse
Caution: Objects in mirror are more confused than they appear.
I was really impressed reading this thread and decided to compare (for
purpose of possible use)
your board with OOPIC (that I utilize now). After reading manuals from your
web site I would like to get your agreement or disagreement with the
-1. OOPIC uses high level language that allows writing code that manipulates
objects (motors, sensors).
Newmicros's ARM board (later just ARM) does not have any library that
would help user start not from scratch -
robotics API is not included.
-2. OOPIC is better choice for beginner as programming with objects is
+3. ARM CPU and software much faster that OOPIC, which just interprets code.
+4. ARM has much more memory for writing sophisticated algorithms to control
-5. ARM is more expensive. One can buy OOPIC for ~$70.
-6. I am kind of confused about jumper J11 that has to be set in order to
load program into ARM.
Does it mean that after loading a program user has to remove J11, reset
ARM to run user's code?
One can load code and control OOPIC via rs232 without playing with
-7. ARM has fewer number of free I/O lines than OOPIC.
8. ARM uses Eclipse IDE for code development that is nice feature, I did not
give it plus though.