After watching the amazing Bill Nesbitt AutoiQuad videos (http://diydrones.com/xn/detail/705844%3ABlogPost%3A467650) I have to wonder if we are hitting a wall with our current hardware.These videos seem to show far more precision than any version of Arduino software has ever had. Apparently, part of the reason the AutoQuad can do extreme position hold, fast mission with precision waypoints, spin in place, etc. (in addition to some top-notch code!) is the much higher processing power now available.
Is it likely the current Arduino can ever approach this? Is his hardware a lot more expensive?
In my opinion no. If you break down what Bill is doing, an 8bit micro at 16 Mhz can accomplish it.
He just has great control laws and a finely tuned quad.
Don't forget that Arduino has a roadmap, too. 32-bit ARM-based version are in its near future. Arduini is a software architecture that runs on many hardware platforms, and there will be high-end versions soon. APM will be a big part of that.
You must remeber that Bill's system is very special. As I understand he does a testflight to collect data, and then a simulation in his multicore pc to calculate his special filter parameter, then back to machine and so on. This is a lot of special work.
I started to port his AutoQuad 5 Board some months ago but became aware that I won't be able to fly my machine with his code because it's a special design to his configuration. Jason's Code can be easily adapted to a lot of machines 'only' by changing the PID values (what can be hard work too :)
The improvements of the ArduCopter code in the last months are exciting (thanks jason)
and by the way the ArduCopter Arduino code can run in 8 Bit and 32 Bit systems, so I think it's still the best road to an universal system.
I think as well that the community and opening is more important than pure hardware performance.
It is possible today to do very advanced things with small 8 or 16 bits AVR processors. They are performant and easy to manage and program.
If more power is needed for futur hardware, i think it would be simpler - easier and perhaps lower cost to use a second AVR to split tasks so that the first one is not overloaded.
Another advantage with multiprocessing, it that it is possible to update one processor, without risk to introduce a bug on the second one.
I have 7 years of experience on arm platform , I start to work on 32 bit platform in october of 2010 , Multipilot32 is the result of my work , at the moment is only 32 bit platform that support all code available on Arducopter NG and Arducopter 2.0 . MP32 support Arduino compatible framework , but also professional development ide as eclipse + JTAG and also support RTOS as ChibiOS (have an HAL optimized for ST processor and Commercial support ) or FreeRTOS.
I finish to port library and code last week.
So the great news is that MP32 is available on STM32F103 , STM32F205 and In roadmap there is M4 with Floating Point co processor.
The price is not so different of standard MP32 only 99 euro + VAT instead of 70 + VAT for Standard version. This micro is a good choice for advanced and professional application . It have a profesional commercial support .
This is the link :
This is the first sample available with new F205 micro :
As you can see in the picture the board haven't any kind of hardware correction because is native for STM32F205 micro controller.
If you need more info contact me at email@example.com
Multiprocessor hardware and specialized extensions will no doubt debut, morph and expand horizons of what is possible. A concert of functionality seems likely. I don't think simply more processing power in the embedded world is the best choice because it relies on parts external to it. Just as some processors have been tweaked to architecturally pattern programming language constructs, extending portions of processor architecture to suit real time applications is here. The code, more nimble than a new chip arrival makes that happen despite chip limits.
Incidentally, Bill Premerlani 's (dsPIC30F4011) board is a 16 bit processor, fairly low cost, supported by free C and assembly programming languages and an assortment of third party tools. Periodically, a newer version of this SMT board emerges improving sensor utility.
I was working with ATMEGA's a.s.o. a couple of years and then had to move to an Atmel Arm7, later to a Cortex M3. At first I tried to switch on a LED and read out an input connected with a switch. With an ATMEGA simple and easy work.
Hours later I became aware that I've to start a Clock for the PIO to let the Inputs refresh. Shii... :)
So for starting with such an processor there is a need to learn something new.
On the other side there are some nice function, an 8 bit cpu doesn't have:
E.G.: I can link my AD Converter to an DMA channel. So the sensor data will automatically sampled and written directly to the RAM without disturbing the CPU. After some time I can decide to have a look to the data and work with them.
So, there are some nice gadgets waiting for us all with the 32 CPU's, but the most of us haven't the time to learn all the new needed things to get the CPU to work and let it make what we want...
And this is the moment Arduino enters the stage. You don't have to understand all the library code at first. You can still work with the sketchcode and improve the Arducopter functionality. And when there is some time you can learn something new how to manage interrupts or AD conversion in the libaries or in the hardware code.
Resume: I think 32 Bit is not the end of Arduino.. Arduino is needed more then before, due to the complexity of comming processors.