3D Robotics

3689398872?profile=originalOne of the best decisions we made was basing our autopilot system on Arduino (credit goes to Jordi for spotting its potential so early and selling me on it). The engineers all sniffed at it, complaining that it was just an 8-bit processor running at 16Mhz and could never compete with 32-bit ARM processors running at 70Mhz and faster. But what Jordi spotted was something more: the Atmel chips are RISC processors and very effecient, an autopilot is not actually a very computationally intensive task, and most importantly, it's not about "feeds and speeds", it's about community, which Arduino attracts by being cheap, open and very easy to use.


Arduino has won the community competition hands down. The chart above is from the latest status post, and it shows more than 750,000 monthly vistors to the website and nearly 5 million monthly page views. These figures continue to grow at 100% per year.


Community brings tens of thousands of smart people around a platform, and many hands make light work. The amount of code and libraries out there that can be used for free are staggering and there's little need to reinvent the wheel. What basing the ArduPilot line on Arduino has meant is that we're not just using a great technology platform; we're part of a movement. That means not just great tools and thousands of available developers, but also a "cool factor", that really helps with marketing and adoption. In short, the success of the Arduino revolution is thrilling to watch, not least because it means we've hitched our wagon to the right horse!





E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • I remember Jordi showing up at the Arduino forums. I checked and in the beginning of November 2007 I found his first post. He started in Spanish and soon changed to English.
  • T3

    ":even though the current chips can run at 20Mhz or faster."

    only the smallest AVR run that fast.

  • 3D Robotics
    John Arne: what you say is true, but it's also true for many of the Arduino libraries (such as the serial and Wire libraries). That's the reason all Arduino boards still run at 16Mhz (the speed of the first Arduino boards), even though the current chips can run at 20Mhz or faster.

    Long term, the move to 32 bits and an RTOS will make this codebase future-proof. Thus the importance of Roberto's work.
  • Moderator


    wiht standard Arduino is impossible to understand exactly where is the error ...  you have the number of line in .cpp file that is the join of all pde file .. :( So is not so good for debug complex code . With Eclipse instead you have exact point of error with full description and with OpenOCD you can debug it step by step in realtime using jtag connector.


  • Moderator


    in MP32 IDE we decide to use two kind of approach Eclipse ide for professional application that support Jtag debug ,too and a standard Arduino IDE as editor with a ARM Gcc compiler that is the same used on Eclipse ide , so is possible migrate from one enviroment to the other.With Eclipse is available a ChibiOS/RT as advanced OS.

    Thi is the status of task in MP32 community http://www.virtualrobotix.com/forum/topics/olimex-jtag-eclipse-openocd



  • Developer

    I am stuck troubleshooting using Ardrino IDE.. Here is the error.

    ArduPilotMega_2_1:-1: error: expected constructor, destructor, or type conversion before 'void'

    Now how do I find which 'void'  it could be in any function.  Help!

  • Developer
    As I see it, the APM is using Arduino to make it easy for a programmer to get started. And as Chris pointed out this has payed of so far. But, many of the IO and timing critical parts of the APM code, are hard coded directly for the AVR chip used. Strictly speaking this makes the code incompatible with Arduino. Considering this and that the complexity will only increase over time, It might be a good idea to start considering moving the project over to a more "grown up" IDE. If nothing else so that we at least get basic programming functionality like debugging and register/variable readouts.
  • Robero, I don't think the point is on flash memory with large & chip memory chips and Atmega in 256K flavour (the coming APM board), but the processing capabilities, not only mips, but also DMAs ando others.

    And don't want to leave without mention all your good work in your ARM based APM. Keep it going.


    On the other hand, no one thought about migrating to Xmegas? It would be the closest to the current Atmegas (AVR core) and doubles de mips (by doubling the MHz up to 32) and has DMA, and so on, so more than twice the speed I think.

  • Moderator

    In starting stage of developing Arduino could be a good choose , but after some development became a limit.

    infact the code is around up 100 kbyte now and standar Arduino UNO have only 32 kbyte of flash .. only

    So now with Multipilot32 that use STM32 is possible to continue the development of AutoPilot Project on ARM M3 at 72 Mhz with 512 Kbyte of Flash and 64 kbyte ram.

    Sure Arduino have a good and huge community and good Brand , the arduino core team are doing a great job :)

    What was possible to do on AVR platform are doing.Is not only a problem of speed but also on the bus interface for example. So if you put more device on i2c for example  it freeze ... i doing a lot of test on this limit but i cannot solve it . So in my new design i use a micro with 2 i2c bus one for ESC and other for sensor.

    So really the DIYDrones developer don't use only Arduino framework to solve the problem of performance on imu , but develop a lot of good library that using directly the native code of AVR processor. Don't forget AVR Freaks community that was usefull for this years on development on AVR micro processor. http://www.avrfreaks.net




  • Recommended this nice article on Sparkfun Apollo landing with 1 Mips

    Any nice tutorial for working with Arduino using Eclipse or AVRStudio?

    For the sake of curiosity how many MIPS are left nowadays on the APM?

This reply was deleted.