Eva: A new open source autopilot!


                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-behind-it), 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



  • Eva uses a 32 bit ARM processor.
  • Onboard sensors include 3-axis gyroscope, 3-axis accelerator, barometer, and thermometer.
  • Eva uses a very precise Analog-to-Digital Converter.
  • Eva supports GPS and 3 axis digital gyroscope.
  • Eva supports standalone power sources, and doesn’t need a UBEC connection.


Detailed Hardware Specifications:


Processor:         AT91RM9200

                         ARM920T Kernel

                         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.


Accelerometer: ADXL335


                         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.


Barometer:       MPXA6115A

                         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.       


Thermometer:   LM335

                         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.


GPS Module

                         GPS NEO-6

                         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

                          3 axis. 

                          12-bit ADC enables 1o to 2o compass heading accuracy.

                          Maximum Output Rate: 160 Hz

                          Low power consumption.



Detailed Software Specifications:

  • Extremely stable flight
  • State calculation
  • Gimbal support
  • Automatic take off
  • Way point flights
  • Automatic interest point lock
  • Automatic lock
  • Ground Control
  • Overload Control
  • Automatic Navigation, GPS Navigation
  • One key return (Using GPS)
  • Care free flights
  • Supports tricopters, quadcopters, hexacopters and octacopters.
  • Supports GPS mode and R/C mode. Supports real time switches between modes, using an remote control.


All the schematics and PCB diagrams can be downloaded under a CC BY-SY license.


PCB Diagram:




E-mail me when people leave their comments –

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

Join diydrones


  • Really Looking forward to this...just try and keep us posted...we would like to know more about the development of this project rather than having to deal with a tsunami of info when you release the finished product....   

  • Hey AKCopter, thanks for your message. Eva at the moment doesn't use FFT. It samples the sensor data at 250Hz and smoothes them with a low-pass filter. The result looked to be efficient enough, and we didn't try out FFT.

    @Jed: Thanks, I had always thought of FFT as a black-box, it clarifies a lot of things for me as well. Cheers for that. :)

    @David Luper: We would love to have you both on board, mate. We are still in process of creating the community and once we are done, we would let you guys know!

    @Juan Gomez, our firmware uses Kalman filters. :)

  • Hello George,

    I have a question for you, when are you planning to post the firmware?
    I'm interested to know if your firmware is using Kalman filter or DCM algorithm and how it is integrated into your application. 


  • Hi AKcopter,

    I think I should clarify that having a more powerful processor could lead to having things such as self tuning loops, but I am not a part of the Eva project (Yet anyway) so I can't say that it will have that feature.

    A FFT is in essence a mathmatical method of reducing a data stream into it's resonant frequencies.  In the instance of an autopilot it would take the datalog of a particular axis (say the X axis) and run it into a FFT analisys. The resulting primary frequency would then be the oscillation about that axis.  If the frequency was say 60 seconds or indeterminant, then the gain is to low and needs to be increased.  If the oscillation is 1 Hz or above then the gain is to much and needs to be turned down.

    Now with a true PID there are 3 variables.  A simple method of self tuning is to create an algorithm that measure the frequency of an axis, then increases/decreased the partial gain (P, I, or D) until an oscillation is seen, then sets it to an acceptable limit.  Then the next partial gain is adjusted in the same manner.  This would be done 9 or more times, once for partial gain for each moment axis of X, Y, and Z, and possibly another 9 times for the linear dimensions.

    If you would want to know more about this however I would recomend starting a topic specifically for this subject.

    Good Luck EVA, and stay in touch!


  • hey George, I like what you are doing and would like to be a part of it. My wife and I a both computer science students and know c++ assembly machine and basic and my wife is a whiz at calculus. We have a few hours a week to spare, just let me know what we can do.

  • That Sounds Supremely cool.........using the thermometer to offset for gyro and acc biases due to temperature changes........That would require the programmer to know how much the gyro or acc change their bias with change in temp.....I would want to know how the FFT(fast fourier transform) algorithm would automatically learn the required PID's ..and learn the flight characteristics of the frame......also I would like to suggest the use of arduino due it uses a 32 bit ARM MCU...it can always be used for keeping the easy to understand facet of arducopter alive...Arduino is the core reason for getting so many people excited about an arduino powered UAV.........   

  • Sorry for the late reply guys. We are currently in the process of creating a community and figuring out some details of this project. The system along with the functionalities mentioned in the blog would be completely open, and we hope to have the hardware out as soon as we are done with creating the community and the website. We hope to have it done by next week. The code will be open progressively; the entire software might not be available at the very start, it will be provided in modules. Eventually, we plan to provide the entire code.

    The reason Googling Eva doesn't show any results is because DIYDrones is the first place we decided to post this idea for a project. Please be patient! 

    We will post the files of schematics and the PCB very soon.  The thermometer (maybe not the best translation; thermal sensor?) reduces the errors of sensors like gyro and accel. caused due to temperature changes.

    Thanks a lot for all your suggestions and questions. We are doing this kind of a project for the first time and we will need all the help/suggestions we can get.

  • Developer

    Easy does it.. Let's give the project a chance before we start throwing rocks.

    This project has great potential as would essentially give us a open source solution with commercial grade hardware and performance. My guess is that Hex and ZeroUAV are still discussing the finer details, and we will hear more as the project progress.

    Remember there is no rule in Open Source that everything has to be available in the open from day one, as long as the release code is released. Some projects prefer to delay until they are robust enough for "peer reviews".

  • 2 weeks to go before April 1

    A PCB that is too small to see, schematic that is too small to see, long list of specs with no links to anything plus Google turns up zit on EVA Autopilot..

  • Is the thermometer to tell if your coffee is getting cold ? Why would you need one ?

This reply was deleted.