Atmel and Arduino Collaborate on AVR and ARM-based Development Platforms



Atmel and Arduino have announced a cooperative effort to produce three new AVR and ARM-based dev platforms debuting at the Atmel-sponsored Arduino Pavilion at Maker Faire located in Queens, New York, September 17 and 18, 2011.

According to Atmel’s press release:

Atmel and Arduino will be demonstrating several platforms in the Atmel-sponsored Arduino Pavilion including:

* Arduino Leonardo. Based on the Atmel ATmega32U4, it is a low-cost Arduino board which includes a simpler circuit as the Arduino UNO board. The software on the board includes a USB driver that can simulate a mouse, keyboard and serial port. In addition, the bootloader includes a serial port and USB mass storage driver.
* Arduino Due. The newest board to Arduino’s collection, the Arduino Due is based on an Atmel Cortex-M3-based microcontroller, also known as the Atmel SAM3U ARM-based MCU. This MCU can run up to 96MHz and will be available to the Arduino community by the end of 2011.
* Arduino WiFi. This board is for hobbyists interested in WiFi applications. Arduino WiFi includes an add-on module using the Atmel AVR MCU and an H&D Wireless module that provides developers with a powerful WiFi interface.

Arduino also issued their own statement along with the above photo of the Due.

Great news! Can’t wait to get our hands on some of these.

Join the Conversation

24 Comments

  1. Arduino Wifi, yum :)
    And the Leonardo looks interesting for smaller projects that can run on a battery.

  2. This is good news. But given how Microchip has taken a (deserved) beating about their bumbling around with Open source, let’s ask some tough questions of Atmel too:

    I’ve used some of Atmel’s parts with their USB stacks and bootloaders – the source is locked down. Also, in my opinion the documentation and examples are rather difficult to use. Having access to the source might go a long way toward helping with the documentation problem.

    Some AVR chips come factory programmed with locked-down bootloader/USB firmware, which (supposedly) makes them easier to use. But if you want to use open alternatives, you have to do the dicey fuse dance and have an HVSP capable programmer on-hand.

    I would consider Atmel “infecting” an open-source project like Arduino with platforms dependent on micro-controllers loaded-up with poorly documented closed-source firmware to be a bad change in direction. At least the bootloaders should be open; there may already be open alternatives for the USB solution if Atmel doesn’t want to open-up. The WiFi module I would (arguably) consider hardware – sort of outside this discussion.

    1. Hey Droid:

      I’ve been following your comments on both this and the whole Microchip contest thing. What’s your problem…it’s people like you that make companies like Microchip hesitant to even talk to this community. These guys actually come out and try and contribute or at least work with the community and they get nothing but slammed for it. I’m completely ashamed of this blog and others like it. Clearly you’re nothing more than a bunch of meglomaniac douche bags who probably got turned down for a real engineering job and have no other recourse than to slam these companies.

      Shame on you all!

  3. WRT USB stacks, there is already the LUFA stack for AVRs (as used in the 8u usb/serial chip on Uno, and (I think) in teensy.) Microchip has gotten flack because the equivalent of LUFA doesn’t exist. (there is a contender, but it’s still a bit un-ripe, I guess.)
    (moreover, the existing Microchip USB and TCP stacks are pretty good, and their free availability with not-open-enough licenses are seen as detrimental to the development of OSSW stacks.)

    1. Actually, Teensy has its own “stack”, which is also open source (MIT license).

      The Leonardo “stack” is new, though it appears structurally very similar to Teensy.

      1. The Teensy bootloader is closed source. The USB stack, and lots of other code which gets compiled together with your sketch is all open source.

        Teensy’s business model, like many companies with business models involving open source, has a small portion proprietary with the majority open.

        Before you get upset that Teensy is not 100% fully open source, I should mention I spent about a hour reviewing the Leonardo core code. At first glance it appears new with very nice C++ syntax, but if you study the structure (endpoint 0 handling approach, interrupt disabling, etc) it is clearly either based on Teensy’s open source code, or the author used Teensy’s code as a template. Even though the C++ code looks very different, it does everything nearly identical ways (and in contrast to the approach used by LUFA and Atmel’s examples).

        If it were not for Teensy’s open source USB code, I believe Leonardo would not have been developed. It’s possible someone might have eventually used LUFA, but LUFA’s design is very different and not very easily integrated into an Arduino core.

      2. I am encouraged. One thing the Arduino team is very good at is leveraging existing open source code. Actually, I had assumed that Leonardo would be even more closely related to Teensy than it is (that code’s not public yet, right? You were asked to be helpful?)

        Have you looked at non-AVR USB-inclusive chips? How much hope IS there of having a common architecture to a USB stack?

      3. No, they have not asked me for any input or help. I really doubt they ever will.

        The subject came up on the LUFA mail list. Someone who’s working on Leonardo replied. It turns out the code is in 1.0-rc1, but not (yet) git / github. If you download any of the 1.0-rc1 binary files, it’s in the hardware/arduino/cores/arduino folder.

        It appears Leonardo was a very separate design effort by someone (perhaps involved with Fritzing) and Arduino is manufacturing the boards.

        I used the Cypress chips in a design some time ago. That and AVR are the only chips I’ve actually written working code upon. I have studied the datasheets of several other chips very carefully, but I have not (yet) written and tested code upon them.

        There is very little in common with the register sets between chips from different manufacturers. A universal stack would look a lot like modern kernels, where there’s a common API and some common subsystems, but many different drivers. Some chips like AVR make one endpoint visable at a time, others map them all into a larger register space. Many chips place restrictions on certain endpoint numbers to only implement specific transfer types (intr, bulk, isync) but offer all possible endpoints, others give a small set that can be configured in any way. Some chips allow both in and out with the same number, others don’t. Probably one of the biggest differences is more advanced chips like AVR XMEGA-AU and many ARM have DMA capability (all with wildly different DMA controllers), whereas others require software-based copy. Even that varies, with some (like AVR) implement a single-register FIFO, others provide a memory mapped buffer.

  4. The Arduino Due looks interesting, although just how interesting it is (to me) will depend a lot on the price. I’ll stay tuned for more information!

  5. please please PLEASE make a new IDE then.
    the arduino IDE is ok for making something small but making something big with a cortex M3 requires some serious time.
    and programming multiple hours in an IDE that looks like notepad with autocolor is really annoying.

  6. Eclipse is one of the most amazingly bloated piece of software ever conceived by the human race…
    The UI is terrible for our core users… no way.

    The Current IDE is fine for beginners. we’rw working on another powerful ide for the future.

    1. > Eclipse is one of the most amazingly bloated piece of software ever conceived by the human raceā€¦

      Such a statement is outright nonesense, especially from someone, whose “IDE” is based on Java as well. I’m a bit disappointed about this hostility towards Eclipse. I am using TI’s Code Composer Studio (which is based on Eclipse) from time to time, and it runs well enough on my 8 year old Notebook. Startup of the Arduino IDE does take almost as long.

      Choice is good, so please refrain from such unprofessional comments.

      1. I have been developing java code since 1996 so I know a thing or two about it…

        The bloat I’m referring to is partly on the UI and partly in the way the “modularity” of eclipse makes it quite complicated inside.

        Arduino has a much simpler UI than eclipse and that is important for many of our users. There is way too much going on in the Eclipse UI…

        On the software side, Arduino could certainly be leaner but at least it has a much simpler internal structure (thanks to processing). If I were to ask somebody to contribute a modification to the IDE it would much easier for them to understand the Arduino code and that is also important for us.

        A lot of people made a hobby out of complaining about Arduino and we accept the debate but I’m also allowed to criticise “professional” software that, in my opinion, make life very hard for beginners.

      2. Eclipse is complex for beginners, and the Arduino IDE is much better suited there. I totally agree with this. Being critical is ok, but there is a difference between ranting and giving constructive critique. Saying something is “the most amazingly bloated piece of software ever conceived by the human race” is not very constructive IMO.

        Different requirements often lead to different tools. Something more feature-rich than the Arduino IDE is likely to be more complex, so I think there is no need to talk bad about one or the other.

    2. The eclipse download i use for Cortex M3 was 185Mbyte.
      Thats eclipse, library’s and examples and the compiler, doubleclick on .exe, install, work
      The latest arduino download is 85MByte, 85 freaking Mbyte for notepad with colors, some library’s and examples and a compiler.
      I’d say the arduino IDE has less features per Mbyte and is more bloated :)

      I agree that eclipse is a bit much for a beginner but i dont consider a ARm Cortex M3 beginner stuff.
      But visual studio 2010 is also big in functions and size but still vb.net works wonders and the IDE is good for beginners but also for advanced users.
      I really hope that the future IDE has a lot more helpful functions.

      1. LCPXpresso vs Windows Arduino?

        The Arduino install is not very “efficient.” In addition to the Arduino IDE and compiler, you get a full set of unix-like (mingw) command line utilities, including a shell. You get an extra copy of Java. You get 35MB of gnu and non-gnu documentation. Two versions of gcc! You get all of WINAVR; enough stuff to do “real development” in a number of environments other than the Arduino IDE itself. You get a lovely unix-like file/directory structure that looks like all the information about hard links was lost in the packaging process (meaning another two copies of many of the binaries?)(Hmm. Some of these are Mac-only, and some are windows-only, I think.)

        But neither one looks very bloated next to, say, AVR Studio 5 :-(

  7. To be honest I think Eclipse is as bloated as you want it to be because it is extremely modular and allows you to install only the subset of features you really need.
    Of course there are several other alternatives like Code::Blocks, KDevelop, Netbeans and so on, in the end it is just a matter of personal taste.
    What I hope for is to see the Arduino library released as a product not tied to the IDE, so the end user will be able to choose his own environment without having to resort to grabbing temporary build files ;-).

Leave a comment

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.