I finally received my Raspberry Pi Zero,  just in time to get into the DIY challenge of building a smart drone with the Pi Zero and APM under 100$. I called this project: MINI-Zee

3689684951?profile=original

How this can be done?

Well first of all, thanks to Victor and the team at Erle Robotics for releasing the plans and software of their PXFmini.  This is a real inspiration for building my own board, because all the parts are available at a cheap price and are relatively easy to assemble and interconnect using through-hole breadboard, providing you are very experienced with this type of build.  Thanks to Mirko as well, for having introduced a real DIY autopilot project that allows us to experiment with a fully working and well supported BeagleBone  based  ArduPilot  Cape called the BBBMINI.


3689684972?profile=original

Bill of Material (US$ - Transport & taxes excl.):

Raspberry Pi Zero                                      5.

MPU 9250 (SPI 9 dof IMU)                         8.

MS 5611 (SPI Baro)                                   9.

PCA 9685 (16 channel PWM Servo Driver)  5. 

3.3 v. regulator                                          1.

BEC 3 amps                                             3.

Breadboard, Resistors, Connectors, Misc.   7.

                                               AutoPilot:  38.

HobbyKing Spec FPV250 V2 Quad Copter

ARF Combo Kit - Mini Sized FPV         60. 

                                                     Total:  98.

*This is Banggood price; I had an ADAFRUIT –PWM on hand, and I really recommend going with ADAFRUIT, because of all the effort  they put on making a great tutorial and drivers for this product. Note: Just like Erle , the USB WIFI, GPS and the Radio Control are excluded.

Building:


A) Hardest part: Get a  RASPBERRY PI ZERO (Where is my Zero site)
B) Hardware - See BOM
C) Board Schematics : Erle pxfmini
D) Board Software: Erle pxfmini

E) LOAD LATEST Raspbian-Jessie

Disable serial Login (Allow GPS on serial Port)
Enable , I2C, SPI , Serial
Disable Console = Auto Log on a shell


F) LOAD RT-PREEMPT
http://www.frank-durr.de/?p=203
Load Test Result: TEST: T: 0 ( 1136) P:80 I:500 C: 100000 Min: 16 Act: 31 Avg: 32 Max: 157


G) MAKE ArduCopter

Special MINI-ZEE release:
1) The MPU 9250 is mounted on the Z-Axis, so we need to change : 

CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_PXFMINI
, _default_rotation(ROTATION_YAW_270)  = to ROTATION_NONE

2) The PCA9585 has no external clock, and the ESC are connected to ports 1-2-3-4, so we need to change: 

static RCOutput_PCA9685 rcoutDriver(PCA9685_PRIMARY_ADDRESS, true, 3, RPI_GPIO_27);      -to-

static RCOutput_PCA9685 rcoutDriver(PCA9685_PRIMARY_ADDRESS, false, 0, RPI_GPIO_27);

H) Fly the MINI-ZEE == Add these to /etc/rc.local

#wait till network is up and DHCP assigned address

while ! ifconfig | grep 192.168.2. >> /home/pi/bootlog; do
echo “no network, waiting…” >> /home/pi/bootlog
sleep 5
done
echo “Starting ArduCopter” >> /home/pi/bootlog

sudo /home/pi/ardupilot/ArduCopter/ArduCopter.elf -A udp:192.168.gcu-address:14550  -B /dev/ttyAMA0 > /home/pi/startup_log &

exit 0

I) FIRST FLY LOG:

3689684898?profile=original

Thanks to the damping platform, the vibration level is within specs. Video is available for anyone interested..;-)

Conclusion:

This project took about 20 hours to complete. As you can see, I really enjoyed  doing some hardcore DIY to demonstrate that it is still possible to build your own flight controller from a Linux Based system.  I do not recommend to try this as a first project, but if you are interested, get a BBBMINI, this is the best introduction to DIY  and if you want to fly a Raspberry Pi Zero, it is much  easier to buy a PXFMINI.

E-mail me when people leave their comments –

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

Join diydrones

Comments

  • @Alex , I just checked on the Mission Planner wiki and this is using a bootloader  to connect and upgrade, so we cannot upload a linux based autopîlot with mission planner.

  • @patrick you are able to get apm binaries for a linux board through mission planner? I believe that mission planner only works like that with the pixhawk and other boards where a "firmware" is upgraded. I could be wrong though

  • Hello Matic,

    Take a look at this , it shows different options to access without using additional devices.

    Actually I never tried using Mission Planner to upload code. I prefer getting control on each and every steps.

    Thanks for the comment.

  • hi, 

    is it possible to update the APM stack with Mission Planner over usb?

    I plan on not having Wifi on mine :)

    I have mine already built, just waiting for ADS1115 to arrive.

    Great stuff btw, really!

  • Hi, initial thought is to use code: https://github.com/HefnySco/MultiWii_DUE  with modifications for sensor ..

    HefnySco/MultiWii_DUE
    Porting Multiwii to Arduino DUE. Contribute to HefnySco/MultiWii_DUE development by creating an account on GitHub.
  • @Alex,

    Yes technically it is indeed a better design. Raspilot did an autopilot that is quite like this: http://raspilot.io/

    The problem -for me- is the difficulty of building a prototype that encompass too many news things to integrate and master  (like PX4 stack - Nuttx - STM32 development), for a feature that I might never have to use anyway.

  • Hi, Alex, the next project is clone Arduino Due for DronPi... future...

  • If not too late I would go with an stm32 for io as that would allow you more flexibility with pwm output. The pca9685 will work fine but i believe all outputs run at the same frequency

  • Great Stuff Radioelf

    I just looked at your blog, and it is getting  ready to fly :-)

    Let me know once you get a beta release , I would be interested to build.

  • Hi, PCB mount (DronPi).. Raspberry Zero + ArduPilot... https://github.com/radioelf/DronPi ...

    radioelf/DronPi
    Placa sensores para ardupilot y Raspberry (drone). Contribute to radioelf/DronPi development by creating an account on GitHub.
This reply was deleted.