Bebop
Introduction
By default the Bebop from Parrot is a Wifi controlled flying quadrotor, designed to be controlled with an Android or iOS device.
No more restrictions as from now; with a few simple clicks you can run Paparazzi on the Bebop and have full autonomous flight and much more!
Getting started
What you need:
- A bebop drone (1 or 2) with the newest firmware
- A joystick (example: http://www.hobbyking.com/hobbyking/store/__20951__Hobbyking_6CH_RC_Flight_Simulator_System_Mode_2_.html
- A laptop with Ubuntu, or a virtual box. You can download one here: https://mega.nz/#!1JpTiTjS!GdAHpa-_FAQAFPNypp3a3Up0B0yo1kYLXi3YLMXSAoo}. The password for this virtual box is "mavlabcourse" (the same as the username).
Steps you will need to follow:
- Install Paparazzi: http://wiki.paparazziuav.org/wiki/Installation . This is already done on the provided virtual box
- Start paparazzi with the default configuration
- Power up your Bebop.
- If you have a Bebop 2 or a Bebop 1 with firmware v3.2.0 or higher press the on/off button four times in short fast after powerup
- Make a Wifi connection with your PC and the Bebop
- In the Paparazzi center choose "Bebop" Or "Bebop2" in the airframe dropdown menu
- Press "Upload"
- Select Flight UDP in the session menu
- Press execute
Voila, you will get telemetry from the Bebop. Now it is up to you how and where to fly. Useful things to watch are:
- The video series here: https://www.youtube.com/watch?v=eojAPZvT1Ck . Although it is made for the ARDrone the steps are very similar for the bebop drone.
- This site has several documents on how to program something for your drone: http://mavlabcourse.tk/ . Although these documents assume you have an indoor flight area, you can also fly outside with the internal GPS of the Bebop.
Do you need help with any of the steps? Please visit us at https://gitter.im/paparazzi/discuss
Features
Connectivity
- Wi-Fi antennas: MIMO dual-band with 2 double-set of dipole antennas for 2.4 and 5 GHz
- Sending power: Up to 26 dBm
- Signal range: N/A
Structure
- 4 Brushless Outrunner motors
- Glass fiber reinforced (15%) ABS structure
- High-resistance EPP outdoor hull: Clip and unclip easily to adapt to indoor and outdoor flight, protects the propellers against potential bumps, can be removed to reduce wind factor
- Three-blade auto-block propellers in Polycarbonate with fast disassembly system
- Anti-vibration bumpers
Full Motor details
In case for a simor motor model
- Magnets: 12
- Stators: 9
- Layers of stator metal: 15
- Copper windings: 34
- Copper diameter: 0.29mm
- Copper resistance: over 50 cm wire ~0.3 ohm
Dimentions:
- Flange height 7.67mm
- Flange dia22.7mm
- Axis length 19.4mm
- Axis dia 1.9 mm
- Statorheight 5.55mm
- Stator diam 18.33mm
Weight:
- Flange weight 3.05g
- Flange and magnets 5.15g (Magnet ~ 1.5mm thick on a Flange dia22.7mm)
- Magnet only (and the glue) 2.1g
Camera
- Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor
- Video stabilization: Digital on 3-axes
- Video definition: 1920x1080p (30fps)
- Photo definition: 3800x3188 pixels
- Video encoding: H264
- Photo file format: RAW, DNG
- Internal memory: Flash 8 GB
- Extended memory: Micro USB
Battery
- Lithium Polymer 1200 mAh
- Flight time: Around 12 minutes
Processor
- Motherboard:
- Parrot P7 dual-core CPU Cortex A9
- Quad core GPU
- 8Gb flash memory
- All fixed on a magnesium shelf that acts as electromagnetic shielding and in the same run as a heat sink for heat dissipation and cooling of the all the onboard processors
Sensors
- 3-axes magnetometer (AKM 8963)
- 3-axes gyroscope (MPU 6050)
- 3-axes accelerometer (MPU 6050)
- Optical-flow sensor (Fig.8): Vertical stabilization camera (Every 16 milliseconds, an image of the ground is taken and compared to the previous one to determine the speed of the Bebop Drone)
- Ultrasound sensor (Analyzes the flight altitude up to 8 meters)
- Pressure sensor (MS 5607)
Geo-location
- Bebop 1: GNSS (GPS + GLONASS + Galileo, Furuno GN-87F)
- Bebop 2: GNSS (GPS + GLONASS + Galileo, Baidu, [1])
Dimensions
- 28x32x3.6cm without the hull
- 33x38x3.6cm with the hull
Weight
- 380g without the hull
- 400g with the hull
OS/Software
- Operating system: Linux (kernel 3.4.11 #3 SMP PREEMPT)
- glibc: (Sourcery CodeBench Lite 2012.03-57) 2.15
- libstdc++: GLIBCXX_3.4 - GLIBCXX_3.4.16
Pinout
GPIO
- 6 Fans Enable
- 9 WiFi Reset
- 73 P7MU IRQ
- 81 GPS Power Enable
- 85 Fan Enable
- 89 VCAM FSYNC gyro
- 90 HCAM FSYNC gyro
- 91 DRDY MPU6050
- 124 Magneto interrupt
- 128 (video) Slew rate??
- 129 VCAM enable
- 130 (video) Slew rate??
- 132 HCAM enable
- 199 BLDC micro-controller reset (forces it into bootloader) ON/OFF
- 200 US Pulse level
- 201 On/Off button (default monitor to files running: /bin/onoffbutton)
- 202 USB Host mode pin 3V3 (HOST_MODE_3V3)
- 203 USB Host mode on
- 204 USB0 OC
PWM
- 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)
- 8 MPU6050 clock (31510ns period, 15258ns duty) Desired frequency is 32768kHz with 50% duty cycle (period=30517us). Period was set empirically to 31517 to get a 5ms data ready period. Desired frequency is slightly modified to synchronize camera and IMU
- 9 Vertical camera clock (23ns period = 43MHz)
- 11 Horizontal camera lock (77ns period = 13MHz)
I2C
- I2C-0
- I2C-1
- Cypress Motor Controller (Parrot BLDC) Bebop/BLDC (addr 0x08)
- AKM8963 Magnetometer AK8963
- MS5607 Barometer MS5607
- I2C-2
- MPU6050 Gyro + Accel MPU6050 (rotation changed in version 2)
SPI
- spidev1.0 Sonar (Only data pin connected for generating pulses)
UART
- ttyPA1 GPS (Furuno GN-87F on v1 and Ublox Neo M8N on v2)
Other
- /dev/hx280 Hantro (On2) Video encoder. Hantro chip video encoder used for the HCAM.
- /sys/bus/iio/devices/iio:device0 (p7mu-adc_2) Sonar ADC
Actuators
The Bebop has 4 Brushless motors, which are controlled by the cypress chip on I2C-1. This Cypress chip contains custom made firmware(BLDC) by Parrot, which can be automatically updated using a bootloader in the ESC part of the mainboard. The firmware from Parrot contains a nice closed loop RPM control, which is automatically tuned inside the factory. Since version 2 Parrot changed the order and rotation direction of the motors.
For more information about how to communicate with the BLDC look at Bebop/BLDC. Or take a look at the "bebop" actuator inside the airborne/boards/bebop/
folder.
Onboard applications
The original programs on the Bebop
- /usr/bin/dragon-prog Main program that controls the drone
- /bin/watchdog.sh Checks if Dragon is still running and reboots dragon-prog if it somehow would not be running anymore
- BLDC_Test_Bench Controls the Brushless Motor Controllers for testing and playing sounds etc.
- bcmwl Everything with wifi
- diagnostic Outputs sensor diagnostic
- mk3_camera_eeprom Reads the front camera EEPROM
- config_mt9v117 Configure the bottom camera
Cross compiler
For the Bebop you need to use a recent version GNU gcc-arm-linux-gnueabi (Ubuntu/Linaro 4.7.4-2ubuntu1) 4.7.4 provided with Ubuntu since 14.04 LTS.
the past you could also crosscompile with Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from Greedy Mentor Graphics, previously called codesourcery. However the open'ness there is nowhere to be found anymore, so we'll say "No thanks" to Codesourcery ,now Greedy Mentor"
but if you insist , feel free restricted.
Tips & Tricks
Video
Make sure the video_rtp_stream.xml module enabled in the airframe. Receive a video stream with e.g. avplay, vlc or a python app:
$ avplay -loglevel quiet -max_delay 50 -fflags nobuffer rtp://192.168.42.1:5000 $ vlc ~/paparazzi/var/sdp_tmp/192.168.42.1/stream.sdp $ ~/paparazzi/sw/tools/rtp_viewer/rtp_viewer.py
Factory Reset
You can reset the Parrot Bebop Drone to factory settings. You will loose all your photos and movies recorded on your Bebop. To do this you need to press and hold the power button for 10 seconds. The LED will blink green and orange for a while, then green and the drone will shutdown.
Firmware
It is not important which firmware you use for Paparazzi to fly. Note that we test flew the Bebop with Firmware v1.98.11 and v2.0.57
Note that v3.2.0 is the latest Firmware know as of 20160413 and PPRZ video stream does not work. Feel free to fix it and make a pull request. If even newer firmware is available please report any (if any) issues found related to the firmware.
Using the MicroUSB for serial data
The Bebop has this tiny USB connector just above the power button. This USB connector can also be used with help of a USB to Serial FTDI conversion board. To use the driver in current firmware OTG serving should be off. More information, photos, connection examples, sourcode and real life example of how to use this port.