Arduino is awesome, and the autopilots based on them are great. Not only do they support an incredible number of external devices, but also don’t scare away the novice developers. Easy programming and versatility are nice but the cost at which they come at is somewhat of a letdown. 8-bit Arduino processors don’t allow a lot of room for other computation. Having already crashed a very expensive hexacopter (http://diydrones.com/profiles/blogs/the-story-about-hex-and-people-...), and being told off for doing something quite risky (http://diydrones.com/profiles/blogs/hex-get-me-my-coffee), we have realized the importance of safety in autopilots.
Algorithms related to safety often require implementation of vision algorithms and quick analysis of sensor data logs, and unfortunately Arduinos aren’t suitable for such computation. Better processors can allow such implementations and even though autopilots with better computation capability on their own are not enough to ensure safety, but they can provide a good basis to develop things, like obstacle avoidance, that can lower the risks of unwanted crashes.
Aside from the programming capabilities, there is one other flaw that a lot of current open source autopilots have, and that is, setting the PID values. It often takes a novice user weeks to get a copter to fly stably in presence of external disturbances whereas the same user can use a commercial autopilot and achieve stable flights in a matter of hours (or even less). Configuring open source autopilots often takes a while as well.
With the aim of creating an autopilot that achieves stability without a lot of tuning, and having a 32-bit processor and still supporting many external devices, ZeroUAV and HeX, together intend to initiate an open source autopilot that is based on the commercial YS-X4. We are not interested to reinvent the wheel, but instead are interested to solve the aforementioned flaws.
Software License: GPL v3
Hardware License: Creative Commons BY-SA
Detailed Hardware Specifications:
Operating Frequency of 180 MHz, 200 MIPS
Cache: 32 KB (16 KB Data Cache, 16 KB Instruction Cache, Write Buffer)
Memory (SRAM): 16 KB
External RAM (SDRAM): 64 Mb
External DataFlash 512KB
Gyroscope: Uses two chips: LPR430AL (For X and Y axis), LY330ALH (For Z axis).
Measurement Range: ±300 dps.
Bandwidth: 140 Hz.
Stable output, and provides temperature stability.
High shock and vibration survivability.
Measurement Range: ±3 g.
High Frequency Response; 1600 Hz.
Low Power Consumption (350 uA).
10,000 g shock survival.
Stable output and excellent temperature stability.
Sensitivity: 45.0 mV/kPa.
Pressure Range: 15kPa – 115kP.
Stable output, and provides temperature stability (1.5% Maximum Error over 0o to 85oC).
Temperature Compensated from -40oC to +125oC.
High Accuracy at High Temperature.
Automatic Temperature Compensation.
Stable output, measurement error ±2%.
IMU Analog to Digital Converter:
24 bit (Precise up to 10 cm for barometer’s sampling).
Data Output Rates to 30kSPS.
Sensitivity: -162 dBm
Maximum Navigation Update Rate: 5 Hz
Horizontal Positional Accuracy: 2.5m
Velocity Accuracy: 0.1 m/s
Heading Accuracy: 0.5o
Digital Compass: Honeywell HMC5883L
12-bit ADC enables 1o to 2o compass heading accuracy.
Maximum Output Rate: 160 Hz
Low power consumption.
Detailed Software Specifications:
All the schematics and PCB diagrams can be downloaded under a CC BY-SY license.