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

  • I can send you schematics in Eagle as soon as I get home, no problem. This one is dual sided, but if you remove the smd leds and replace ADS ic with ADS module board, I think one layer should be doable. 

  • what about the actual file to the pcb if I wanted to modify? Is this a double sided pcb or is it something that could be produced at  home as well?

  • @Alex Wright hi, sadly, I dont have any left. I botched the first one, the last two are in use at the moment. 

    sorry :/

  • @Matic Jovanovic do you have more of the boards and if so could I purchase one off you? OSH park would take too long and leave me with how many extra unecessary boards.

  • @Matic Jovanovic do you have more of the boards and if so could I purchase one off you? OSH park would take too long and leave me with how many extra unecessary boards.

  • Hello Patrick,

    Thank you for your answer. The RPi is also capable of generating PWM.
  • Hello Christopher

    Just like the NAVIO & PXF , the PWM is generated by a dedicated controler chip , the PCA9685.

     

  • Could you tell me how to initialize a ESC with the Raspberry pi? Should I just send a PWM to the ESC from the Raspberry Pi and it will work?
  • Great Job Matic, this is a nice upgrade for the project .

  • I had them made by OSHpark, 

    https://oshpark.com/shared_projects/dplBmabW

    mind you, I dont use the three leds, I modified the code to use the OLED screen, and the footprint of that ADS is there, because I wasnt sure If i was going to use the module or the ADS chip. I decided on the module... cheaper...

    I would like to send you the eagle sch, so you can remove the ADS ic, and route traces to i2c

    I also have the voltage divider on there, which is not needed, from what I have read here.

    OSH Park ~
This reply was deleted.