ArduVolans - my take on ArduPilot

3689424081?profile=originalI've been following DIY Drones for awhile and in the past have purchased several components that made up the pre-oilpan era of electronics.  I was looking forward to the proposed ArudPilot-lite board that appears to have since been canceled.  So I made my own!  And in the process, learned great deal about designing, fabricated and programming Arduino.

At this point it has not seen any flight time.  But all of the electronics are on a single board and have been tested.  What you are seeing is Rev3 which has a GPS, 3-axis accelerometer, 3-axis gyro, 3-axis magentometer and a pressure/temperature sensor on board.  5 servo inputs and 4 outputs.  Servos can be powered by the battery or from the ESC.  Battery voltage level is monitored using a voltage divider, and there are 7 IO pins available for expansion.

If you'd like to follow my progress, I'll be updating this page as I go along:  http://www.happicow.com/arduvolans.php

E-mail me when people leave their comments –

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

Join diydrones

Comments

  • If you are interested in the 644P, you should look at the Sanguino project. http://sanguino.cc/  They have a great prototyping board that you solder together PTH/DIP.  I purchased one to play with before I decided to use the chip in my project.

    There is no failsafe in my board.  I am going to try to rely-on / program the watchdog features in the ATMega processors.  If that does not work as planned, I was going to have an automated hardware reset using a 555 timer chip.

    Right now I have no plans on selling the board.  But if anyone is interested, send me a message and I'd be happy to build one for them at a fair price.

     

  • Jani,

    Thanks for the heads-up, I didn't realize. I am already clocking the 328p at 20MHz - I don't really need the extra speed, but I figured if I am soldering my own board I might as well take... 64Kb would open up a few new possibilities :-)

    Marko

  • Developer

    How did you implement FaiSafe, does 644 control this? I don,t see a mux chip.

    You selected a big +5 power regulator, no brownouts here.

    Nice work.. are you planning on selling your AP?

     

  • Developer

    Marko, you can have 644P's in DIP packages too. Also one nice thing on 644 chips is that you can run them with 20Mhz speed... So you can get extra 4 MIPS of computing power compared to 1280/2560 chips. I have one OSD project that uses 644 chips, I just wait free time to finish it. Been having it's pcbs on my table a looong time already :)

  • Hi Chris,

    I see - I will have to give reflowing a try one of these days, I have shyed away from it so far. That is also why I am using a 328 - it the 'biggest' Atmega (at least to my knowledge) that comes in a DIP package. Two hardware UARTS would definitely simplify things a lot, although I have not noticed any adverse effects on timings with the interrupt approach (I try to keep the interrupt routines as lean as possible). 400Hz only makes sense on multicopters with ESCs  - regular servos supposedly dislike higher update frequencies.

    I have dabbled in plane auto pilots a bit myself, but have not gotten past an 'auto stabilizer' really (mostly time constraints)...

    Marko

  • Nice work, you can add airspeed sensor instead of gps and hook gps with cable for fixed wing airspeed sensor is advantage also try to add rpm feed back and current sensor and if possible osd chip. 

     

  • Hi Marko,

    I designed the board using Eagle.  Had the PCB fabricated by Seeed.  And then reflowed in a electric skillet as described in the SparkFun tutorials.  Worked great!

    The ATMega644 has double the programming space of the 328 so I'm fairly certain I'll fit everything I need in there.  I'm working in the Arduino programming library rather than direct avr-gcc C, so like you said, I'll probably incur some extra storage needs for the Arduino libraries.  I also chose the 644 because I wanted to have two UARTS.  One for telemetry and one for GPS.  I didn't want the interrupts from a software serial implementation to interfere with the timing of other things.

    400Hz PWM generation seems significantly fast.  But I am unfamiliar with quad copters.  I'm working with airplanes myself.

    Thanks.

  • Hi Crhis,

    Very nice board design, it looks really neat. Did you do the reflow yourself or did you get it manufactured?

    Speaking of code size: I have a custom Atmega328-based board (not even remotely as neat-looking as yours) on a small quadcopter with my own firmware (written from scratch, no relation to Arducopter). On it I run the IMU (using a Sparkfun 9DOF I2C sensor stick, i.e. including magnetometer), RX decoding, 4-channel PWM generation at 400Hz (it is a quad after all), GPS parsing (on a software serial port, currently only position-hold, no way-point navigation yet), barometric altitude (BMP085 on I2C bus), sonar altitutde (via PWM), mouse-based optical flow sensor and live telemetry/parameter tuning via Xbee. Code size of all this is just shy of 29Kb at the moment, so I still have a tiny bit of space left.... I am using floating point math, sticking with fixed point would probably shave off around 3-4Kb. I stayed clear off the arduino environment and libraries did everything in plain C (avr-gcc), although I am not sure how much of a difference that makes in code size...

    So I am sure you will fine fitting a decent AP onto your processor...

    Marko

  • why not just put the pin headers on the underside of the board (possibly with right angled ones), should solve most of the GPS reception issues while keeping a really compact footprint..

  • To answer some of the questions:

    • The board is two layers, 1.2mm thick
    • I thought about the GPS reception issues but figured I have to start somewhere.  Ultimately I want to have the GPS chips on the single board and provide an SMA connector for an external antenna.  I have a couple chips I am looking at using.  But decided to start working with something I know works.
    • The board is 1.75" x 2.5".  I'm working on narrowing that to about 1.25" so it can fit into some narrow body applications.
    • I am writing my own ardupilot/arduimu code for the 644p.  As like you said, I have less code space available than the DIY Drones ArduPilot.

    This has so far been a great an interesting hobby.  Learned quite a bit and there is nothing like building your own thing from scratch and knowing how every single part of it works.

This reply was deleted.