Thursday, May 15, 2014

The New Arduino Zero - The Good and The Bad


Enough articles are being produced on the new Arduino Zero, including the arduino.cc blog post and the press release, that I need not just repeat what others have written.

Today I compile comparisons on useful features, possible target audiences, and drawbacks.  If you believe I've missed something (or plain wrong), please post comments as a lively discussion would be good.

Target Audience:

  1. Adopting the Arduino shield pinout would imply that use of the hundreds of Arduino shields in existence would be expected.  Great, but it doesn't imply this at all and this will confuse new folks.  The voltage at which the pins signal is at 3.3 volts, not the Arduino Uno's 5 volts.  So you can count the number of 3.3 volt shields on maybe two hands and the number of autoswitching 3.3v/5v shields on one hand.  This, coupled with the paltry 7 milliamps per pin and this is not a beginner's board (drawing too much current would damage the processor and it is not replaceable like the ATmega 328p on most Unos).
  2. Debugging port is definitely an advanced feature and very welcome in more powerful boards.  Anyone doing more than  a "Hello World" program knows that stepping through code and watching what it does is professional programming, something possible 30 years ago on other processors.  This can be for seasoned coders and for beginners with very good instructions and a well-written IDE like the Adafruit python program for Raspberry Pi.
  3. The 32 bit SAM D21G processor has a whole host of capabilities - ARM Cortex-M0+ based microcontroller with 256KB Flash, 32KB SRAM, 48 MHz, three 16-bit timer/counters, DMA, USB Host and Device, real-time clock, 14 ADC, 10-bit DAC, 21 PWM capable digital pins, 6 UART, 6 I2C, 6 SPI (38 total pins).  Using the Leonardo header pinout, only a small fraction of the chip's power is exposed.  Kind of a waste as posters to forums state they would like to use the whole chip.
  4. Documentation states a target with the potential to realize truly innovative ideas for smart Internet of Things (IoT) devices, wearable technology, high-tech automation, crazy robotics, and projects not yet imagined.  The platform is ill-suited for wearables, and awkward for many IoT applications due to the limited pinout.  Translating this board to a finished product is much harder due to the large, complex chips it uses.  For robotics and automation, this board holds promise but I'd still like full access to all the SAM D pins.
Benefits:
  1. Eventual shield compatibility once the manufacturers gear up new boards.
  2. Much more memory (program and RAM) for more advanced program capability
  3. Much faster (48 MHz) and more efficient (32 bit processor)
  4. Debugging support
Perceived Problems:
  1. Limited by the few exposed pins in the Leonardo/Uno header pinout
  2. Big - the Leo/Uno size makes it harder to use in embedded applications.  If it was meant only for prototyping, more pins should be available.  If a learning tool, the size is fine but the fragility of the processor is of concern.  
  3. Taking lessons from Arduino Due, if the standard libraries are not present in software, porting older programs for use on Zero will be very hard.  One of the strengths of the older architecture is AVR code compatibility.  Arduino team support for ARM code, while well intentioned, has been glacially slow.  The test: will code for modern digital LEDs run on this with only minor issues?  It is such a pervasive use case, one would hope so.
The big variable: Cost
If this board is competitive price-wise with Raspberry Pi ($35) then it can be a winner. Even better would be for it to replace the Uno price of $29.95 and the Uno would drop down to the expected $17.50 or so.

Software:
The new debugger will be a welcome step up from the old Processing/Wiring IDE of today.  Atmel makes some very, very good software, modern tools but often more technical than beginners can use.  Hopefully the IDE work will translate to the whole Arduino product range as the fragmentation of versions to support other boards has grown out of hand.

Glimmers of Hope:
The Arduino Leonardo has not been a rather successful board but it set a benchmark for the community to use a form factor and software that has evolved into very good third-party products.  Perhaps this is a similar board - one that by itself will not be particularly successful (but probably more so than Due), but will establish the Atmel SAM processors as the successors to the AVR architecture.  The test will be if third-party companies come up with better boards than the Zero but still be compatible with its features.

As details come out, perhaps some of what I have said will not be necessarily pertinent but I think I have the general direction. On real data, we have little to go on until Maker Faire San Francisco in a couple days. 
Until then you can read the sparse Zero product page and the SAM D 21 Microcontroller information.