Arduino Zero Hardware Is Not Just For Beginners

We stopped by the Atmel booth at Maker Faire to gawk at the pre-production Arduino Zero boards they were showing off. [Bob] gave us a rundown of everything the new board offers, and it’s better than we imagined when we heard about it last week.

I may be an odd egg in that I don’t like to use an IDE when developing uC firmware. Generally I rock the text editor and a makefile for 8-bit, adding OpenOCD and GDB when working with ARM. I probably shouldn’t be surprised that there is already OpenOCD support (and by extension GDB support) for the Arduino Zero. In fact, that’s how the Arduino IDE flashes the board. This should have been obvious since the board is really just a breakout for the SAM D21 chip which is already supported.

Riffing on the thought of this being a breakout board, we think they did a pretty good job. There are two USB connectors; one let you access the board as a device or a host while the other connects the debugging hardware. If you’ve never used an On Chip Debugger before it’ll change your life so do give it a try. When you do move past the initial prototyping phase of your project you can still use the Zero as a debugging tool. There’s an unpopulated 10-pin header (not sure if the small pitch header comes with it or not) which can be used to interface with a target board. [Bob] also spent some time talking about the configurable 6-pin header which allows you to choose from a range of hardware protocols (SPI, TWI, etc.).

Unfortunately we still don’t have info on the availability timeframe or pricing information. There was one hiccup with this pre-production run (two signals were swapped on the PCB) and they need to spin another board, populate, and QA before they can green-light the final product.

Editorial Note: Atmel advertises on Hackaday but this video and post are not a product of that relationship. Hackaday doesn’t post paid content.

72 thoughts on “Arduino Zero Hardware Is Not Just For Beginners

  1. I wonder how many people here remember about the Tiva/Stellaris Launchpad that launched at $5, and is now sitting at $13, and has had an OnChip Debugger since it’s inception. I wonder how aggressively the Zero will be priced.

    1. More strange is that the particular ARM LM4F series no longer exist. It has been sort of replace by their TM4C series. Their replacement part listed isn’t an exact replacement as it doesn’t have OTG!

      http://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/p/271820/949586.aspx#949586

      Atmel’s Visual Studio seems to be the best I have seen. I prefer it over the usual Eclipse tabbed variants which forces non-overlapping windows onto users. I don’t like flipping tabs when I want to see multiple text windows *simultaneously*. Visual studio let you work both ways.

      I was actually looking for a chip to use with my project. I am a bit puzzled of TI’s eval board with no current part. Played with Freescale’s Code Warrior and get a bit lost in their windows view stuff. Their K22 chips doesn’t have bootstrap mode, so I can see some support pain for my end users without EZ port or JTAG/SWD tools. On the other hand, that was the only line that have memory density in a 48 pin part.

      1. You are correct, that the direct replacement for the Stellaris Launchpad does not have OTG. however, the Tiva does ^_^

        To each their own about the IDE. I prefer Linux, OpenOCD, and vim, and if I ever decide I want to try out the Zero, I will likely do the same setup.

        1. Huh? “The TM4C123GH6PM target device is also capable of USB embedded host and on-the-go (OTG) functions. OTG functionality can be enabled by populating R25 and R29 with 0-Ω resistors.”

  2. Atmel’s choice to use CMSIS-DAP for the debug interface is very smart. I can’t tell you how much time I’ve wasted with rubbish proprietary debuggers from ST, TI and even Atmel’s terrible AVR debuggers.

    1. there are arduino boards (Both official and clones) with ethernet on PCB. The only arduino compatible board I know of with ethernet as part of the actual microcontroller itself rather than being SPI slaved though would be the Tiva Connected Launchpad when used with Energia

    2. That is both quite expensive to implement, taking up precious board real estate (RJ45 port with built-in isolation transformers aren’t exactly small in any way) and power hungry.

  3. I’m looking forward to this. I’ve had a number of projects in the past where I’ve had to be very careful in coding to get the code to cycle fast enough (best example is a setup that bit bangs 7 frequency outputs, all of which have different frequencies and need good resolution). If I’m not careful with my overhead in making calculations and processing other functions, the stability of those frequency generators suffer. With this maintaining the Uno package and being much much faster, it just jumped to the top of my wish list. 3.3V operating levels is a detraction, but not a huge one.

    Could I go with a different uC and meet my goals? Absolutely, but I’m familiar with the Arduino IDE and would rather upgrade the hardware than have to learn another programming language… I’d say I’m lazy, but I like to think of it more as working smarter, not harder; why learn another system and all its quirks when I can upgrade hardware and use my existing knowledge and code?

    1. If you want to work smarter, don’t bit-bang; use the Timer peripherals in the MCU.

      The Arduino language won’t have this kind of control, but this is the direction (I think) you should head if you want stable frequency generation with high resolution.

      FWIW, the Tiva Launchpad has six 32-bit timers and six 64-bit timers (each of which that can be split into 2x 16/32bit timers, respectively).

      1. I have worked with directly commanding the hardware timers on the Uno, but found that I was limited by the resolution of the timers and working with the prescaler. In that instance I was working in the 60-90 kHz range and had trouble with trying to get finer than 300 Hz (if memory serves) resolution from one step to the next. However, the outputs in question only need to get up to 233 Hz so it may not be a problem there.

        That said, the other limitation was that such an application requires 7 discrete frequencies (none of them match and none of them divide within another); that would require 7 timers. The Launchpad sounds like it could handle it, but that was a far cry for the Uno.

        The project in question is a simulator for a large square baler controller and is used in a desktop application to make the controller think it is operating on a physical baler in the field. It has come in handy more than once when trying to debug the software. In addition to the frequency output, it also has a handful of timed/sequenced switch outputs to handle some of the other functions on the baler, not just the shaft speed sensors.

        Regardless, I’ll have to look into the Launchpad. As six677 pointed out below, it sounds like it’s a good fit for what I want.

        1. Thought I should add that some of those timed/sequenced outputs have to be in sync with one of the frequency outputs so there’s some difficult limitations that have to be worked around with this setup. That said, I could likely drive 6 of the frequencies with timers and then bit bang the 7th.

    2. Tiva C launchpad + the Energia IDE. Energia is a fork of the wiring platform (which is what arduino uses anyway) for Texas Instruments MSP430 and Tiva devices. Tiva C launchpad gives you an 80MHz ARM Cortex M4F for $13.

  4. hm seems to be another try to get the arduino in the right direction IF its not that expensive. Tre for 150€ + VAT is not affordable (for me and most people) for just playing around.

    Just that its 3.3v is the only disadvantage. But all new boards have this now. Im excited!

    1. nicohood I hope you understand that 150EUR+VAT is the price of the Beta batch of boards… i.e. that is the ticket to access the beta programme of the Arduino Tre. the final price will be significantly less. In the past we gave away boards for free and never got any significant help. This time we decided to try a new way of engaging people. The first batch of boards sold in 2 hours and those beta testers are already engaged and contributing.

      1. Indeed you gave away lots of Arduino Due beta test boards and only a few people substantially contributed (me, Neil, Anne and Erin as I recall).

        But I would disagree with “never got any significant help”. As I recall, I personally spent a few solid days doing testing and found 3 significant bugs for you: a terrible performance issue in the USB stack (which Atmel initially denied), a problem with large arrays when using Atmel’s default linker script, and a bug in micros() and delayMicroseconds().

        This new way probably is much better. I know the old way probably felt like a dismal failure. But at least consider that Arduino Due didn’t release with a broken USB stack which caused Serial.print() speed much slower than Arduino Uno.

  5. I am wondering if someone can explain in lower end geek terms what all of this talk of “debuggers” means to someone who wants to “make” things with arduino (or similar)?

    In other words someone who is not a professional programmer or embedded developer. Why is debugging a good feature to include?
    (if the answer is “if you’re not a professional embedded developer then you dont need it”; then I want you to explain why the developer Does need it)

    Also I want to start an avalanche of thank you’s

    Thank you Hackaday for not publishing sponsored posts

      1. To start, the break points are probably the most useful. program performing erratically? Set some break points, which will pause the processor at that exact line of code until you tell it to continue from that exact place. Check variable values at each of tjese points. Easily narrows down where the problem is.

    1. Best comparison for relationship between the Zero and Due would be the relationship between the Uno and Mega boards. Mega is essentially a high pin count uno with more flash/RAM, the Zero would end up being a faster uno, the due would then end up as the high pin count/ram/flash zero.

  6. What kills me if that they didn’t fix the header spacing… I get they want shields to work, but the i/o runs at 3.3v now, probably breaking compatibly with most shields.

    1. Arduino R3 pinout added the IORef pin, on a 5v board this pin runs 5v, 3.3v boards this pin runs 3.3v, shields are then meant to run any IC’s at this voltage avoiding the problem of a 5v shield potentially damaging a 3.3v board and a 3.3v shield being damaged by a 5v board. So technically it already matches their own standard.

    1. Respectfully that product has nothing to do with the Zero. A company of very experienced software developers (doing mostly backend applications) took a week to get that board to blink an LED while with Arduino in half an hour they had their cloud software communicating with a Yun. The Arduino framework and IDE (Like it or not) are a strong plus for any product (that’s why you see all these silicon vendors trying to emulate what we do with varying degrees of success)
      Embedded developers are just a small percentage of the amount of people who know how to write software and the ease of use of tools is an important factor in purchasing decisions of the overall market.
      Some companies even give away their hardware for free and still people prefer to buy Arduino boards…

    1. I can’t comment on the price right now, we are still working on the final cost but you have to consider that a lot of dev boards from microcontroller manufacturers are sold at cost of even at loss… so they don’t represent a good comparison.
      After the launch of the Zero we’re going to start a long term effort at expanding the tutorials and documentation base for the Zero and Due to help part of the community to transition to 32bit. These efforts are expensive if you want to control the quality of the writing and its understandability…
      This allows us to stay fairly independent from the decisions that our hardware partners make. if we were a division of some silicon vendor we could even give away the hardware for free since the final goal is to get people to buy lots of processors.
      so.. freedom comes at a price in the 21st century.

  7. Interesting and I think a move that will serve Arduino users well. However, I am confused about the comment in the interview where the Atmel guy says that they “dumbed it down” to make it compatible with PDE files written for the Uno.

    What does that mean exactly? My guess is that existing libraries will require “dumbing down” of the uC and new libraries will be required to take full advantage of the new hardware speed and architecture.

    If that is the case the TI Launchpad products remain my preferred choice for development.

    1. I think it was a bad choice of words due to the fact that a Maker Faire of that kind is pure mayhem.. after a few hours of working there with the heat, the hundreds of questions from lots of people etc you start to get a bit tired… I’ve known him for a while and he never defined Arduino as dumbed down. Actually a lot of the Arduino code is quite complicated as it needs to hide away the complexity of dealing with microcontrollers. The analogy I use is GUIs. Look at the size of a unix command like mv, it’s a tiny binary. now write a guy for it, it’s several thousands of lines of code just to make the whole process of renaming a file a “one click” operation… Arduino code somehow works at making some of the programming tasks simplified by providing a consistent way of abstracting complexity.

  8. So its no surprise that arduino boards are just atmel eval boards and the arduino IDE is really just an entry level IDE aimed at getting the masses hooked on a particular chip, so when someone says “microcontroller” everyone else thinks “arduino” which is really “atmel” without really thinking about it. So when all these kids grow up and become hardware “engineers” (that title is getting used looser and looser anymore), they’ll be using atmel, because thats what they know… That’s some sly shit right there. Pfftttttt “open”….

    “Editorial Note: Atmel advertises on Hackaday but this video and post are not a product of that relationship. Hackaday doesn’t post paid content.”

    Pffffffffffttttttttttttttttttttttttttttttt!!!!!!!!!!!!!

    Careful with that ever-so-fragile “street cred”, right?

    1. That’s a standard business practice that was pioneered by Apple. Every elementary and middle school computer we had was an Apple. When kids want their own computer they ask parents to get them what they know an Apple. It’s a good strategy.

      1. It depends on what you mean by “accessible.” ST, NXP, Freescale, and TI all have nice development boards available from distributors that will sell to individuals (Digikey, Mouser, etc.) They’re all rather more subsidized than Arduino (and are typically cheaper than Arduino boards, even including less hobbyist-friendly shipping prices), and unlikely to be able to support another level of distribution (radioShack, Microcenter, Fry’s.)

  9. Arduino “IDE” is nice and free proggy, but it looks very basic and is targeted at beginners. You sholud try Mikroelektronika’s IDEs, it is in my opinion best IDE for programming AVRs, PICs, 8051s and ARMs. It is free for programs under 2000 lines, and it generates HEX files that can be uploaded to board with any programmer so be free to try it. Oh, did I mention that it supports in-line ASM instructions? Write your program in C (or Pascal, or Basic), but write time-critical parts of code in ASM.
    Bad side … well, very bad side … 170 USD price tag. But my point is that IDE is not bad choice, poorely made IDE is.
    http://www.mikroe.com/mikroc/avr/

  10. Don’t forget the XMOS startKIT; it has it’s quirks and some soldering required, but at around $15 USD (if you buy it from DigiKey) it’s worth trying out:
    http://www.xmos.com/startkit

    I do wonder how much the Arduino Zero will cost, I’m guessing a bit less than the Due.

    Slightly off topic: Am I the only one that owns Arduino boards, but no shields?

    1. I don’t own any shields. I made a shied once for something work related, but I don’t even own that. I always want to do something at least slightly different than what the shields do, so I never end up buying them… figuring I’ll just make my own (which also never happens). In the end it’s usually just spaghetti wires for me.

  11. I’m glad arduino is finally getting around to filling the hole (32-bit ARM) that LeafLabs spotted in 2009…

    I never thought it would take until 2014 for them to catch up. But now we have boatloads of reasonable and low-cost options, and there was great rejoicing.

    LeafLabs Maples
    Teensy 3, 3.1
    TI Tivo C Launchpad
    ST Nucleo & mbed
    Arduino Zero and Due

    1. We discussed 32bits for a long time but we wanted to wait until we had a way in arduino to really take advantage of it and the market was ready for more power. The Arduino UNO is this incredibly popular and the favorite platform by most people.
      The integration in the Arduino ecosystem is actually a very important for the success of a platform. Power is useless unless you know how to put it to good use. If it takes somebody a week to learn how to blink a led because of difficult to use tools a few more megahertz are not going to fix that.

  12. I’m deeply unimpressed. With so much high integration, it’s another higher barrier-to-entry hardware platform: something you can’t compete with unless you’re a large corporate, a world away from the original principle of arduino. This is a black-box hacking platform.

    What Atmel should be doing is producing (like NXP) a DIP-based Arm Cortex Microcontroller, and basing an accessible arduino platform on it. Something that would create 10s of thousands of young engineers, not something for those happy to have technology taken out of their hands in the quest for power.

    1. Julian I fail to see how just the DIP chip is going to make such a huge difference. I’ve been teaching for 12 years and when we used dip chips in breadboards I threw away a part of my lectures with debugging all sorts of issues.
      The Arduino itself is the result of trying to avoid that frustration. Later on, when students become more “experts” they build their own circuits. It’s a pity that DIP packages are slowly been phased out but this is the reality of the electronics market. We could say the same thing about 3.3v volts only parts.
      We plan to provide a simple module with just the D21 and the USB connector so that you can easily integrate it in your projects or use it in a breadboard.
      This boards is going to create more experts in ARM technology because they will have something up and running very quickly and through the debugger they can undersand exactly how their code works, including the arduino libraries

      1. SMD MCU’s is the worlds biggest sales trick, and the world bought it! With SMD you have to machine assemble and solder. No assembly company are going to assemble 100 boards for you (at a reasonable price), so you have to ‘invest’, you have to make 1.000 boards and buy 1.000 MCU’s and the rest of the components. So you need a big bag of money to get a commercial product off the ground if using SMD MCU’s.
        If space is not a big issue, DIP’s or PLCC’s could be used, and you buy the MCU’s when you need them, but the MCU manufacturers doesn’t want you to buy low volume. They succeeded in tricking us.

        JCooper

        1. I am replying to myself here, but I also wanted to say that Microchip is doing a good job releasing some of their PIC32 chips in skinny DIP’s. Just wish they would release more chips as DIP’s. So Massimo, you are wrong, at least NXP and Microchip now have 32-bit in DIP. Why can’t Atmel do it? They don’t have the resources??? Or do they only want us to buy in volume?

          JCooper

        2. Sales “tricks” are generally part of the cycle the drives scale up and costs down. Back in the early days of Linux there were all these people bitching about Wintel, and they had a point, but they were also missing that MS-DOS and x86 managed to bring costs down enough that a finnish college student could afford a system with a 32-bit CPU with a MMU, and was able to find a large audience of interested collaborators with the same.

  13. Finally watched the video. Have to give props for a professional job.

    It’s too bad I couldn’t find HaD at all at maker faire. Were you not there on the Saturday?

Leave a Reply to Massimo Banzi (@mbanzi)Cancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.