http://wiki.paparazziuav.org/w/api.php?action=feedcontributions&user=Fvantienen&feedformat=atomPaparazziUAV - User contributions [en]2024-03-29T01:44:36ZUser contributionsMediaWiki 1.37.1http://wiki.paparazziuav.org/w/index.php?title=Installation&diff=24113Installation2018-08-19T12:28:32Z<p>Fvantienen: </p>
<hr />
<div><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Installation</categorytree><br />
__TOC__<br />
<br />
== Introduction ==<br />
<br />
Paparazzi is very easily installed on any laptop or workstation running the [http://www.ubuntu.com/ Ubuntu Linux OS] or virtually any [http://www.debian.org/ Debian] based [http://en.wikipedia.org/wiki/Linux Linux] or Apple Macintosh running [http://en.wikipedia.org/wiki/OS_X Mac OS X]. There is also work being done to port Paparazzi to Windows.<br />
<br />
The steps required to install the software needed to be able to let your UAS fly are:<br />
<br />
# Install tools and prerequisites needed by Paparazzi.<br />
# Download the source code from the source repository.<br />
# Compile the Paparazzi software from sourcecode<br />
# Complete any final configuration<br />
<br />
== Quickstart for Ubuntu users ==<br />
Love one-liners? To get the latest Paparazzi up and running on your '''Ubuntu 12.04 or higher OS''', make sure you have a working internet connection, then just copy and paste the text below into your terminal and press [enter] ... and wait a while...<br />
<br />
<nowiki><br />
sudo add-apt-repository -y ppa:paparazzi-uav/ppa && sudo add-apt-repository -y ppa:team-gcc-arm-embedded/ppa && sudo apt-get update && \<br />
sudo apt-get -f -y install paparazzi-dev paparazzi-jsbsim gcc-arm-embedded && cd ~ && git clone --origin upstream https://github.com/paparazzi/paparazzi.git && \<br />
cd ~/paparazzi && git remote update -p && \<br />
git checkout -b v5.12 upstream/v5.12 && sudo cp conf/system/udev/rules/*.rules /etc/udev/rules.d/ && sudo udevadm control --reload-rules && \<br />
make && ./paparazzi<br />
</nowiki><br />
<br />
For '''Ubuntu 18.04''' use the following one-liner in your home directory:<br />
<nowiki><br />
sudo add-apt-repository -y ppa:paparazzi-uav/ppa && sudo apt-get update && sudo apt-get -f -y install paparazzi-dev paparazzi-jsbsim gcc-arm-none-eabi gdb-multiarch python-gtk2 && \<br />
git clone --origin upstream https://github.com/paparazzi/paparazzi.git && cd ~/paparazzi && \<br />
sudo adduser $USER plugdev && sudo adduser $USER dialout && \<br />
sudo cp conf/system/udev/rules/*.rules /etc/udev/rules.d/ && sudo udevadm control --reload-rules && \<br />
make && ./paparazzi<br />
</nowiki><br />
<br />
[[File:Done.jpg|frameless|center|Done!]]<br />
If all went well the Paparazzi Center should now be running... '''skip''' the rest of this page and go fly! <br />
<br />
If you are new you'll need to do some more things before you go fly like configuring your XML definition file detailing your airframe configuration. There is help here for that: [[Airframe_Configuration]]<br />
<br />
In case you have no autopilot hardware yet, no problem, you can get hardware [[Get_Hardware|here]] or just buy a ready to fly aircraft that can run Paparazzi Software like the Parrot Drones [http://www.parrot.com/products/bebop-drone/ Parrot Bebop] and run Paparazzi on your Parrot [[AR_Drone_2|ARDRone2]], [[Bebop|Bebop]] and Bebop2 (soon the Disco drone).<br />
<br />
== OS Specific Instructions ==<br />
<br />
For Linux an instructional video explaining it all in detail can be found here https://www.youtube.com/watch?v=eW0PCSjrP78<br />
<br />
The process of installing the prerequisite tools and dependencies needed by Paparazzi is specific to the operating system you are using. For detailed installation instructions, please see the following pages:<br />
*[[Installation/Linux|Installing prerequisites tools on Linux]]<br />
*[[Installation/MacOSX|Installing prerequisites tools on Mac OS X]]<br />
*[[Installation/RaspberryPi|Installing prerequisites tools on the RaspberryPi (Raspbian)]]<br />
<br />
For more advanced installation information or developers, please see the following pages:<br />
*[[Installation/FromScratch|Installing everything from scratch]] For non Debian based Linux distributions or if one just wants to be able to use all the latest and greatest compilers, or source code of everything to improve something. Then there is no other way than to install from scratch.<br />
*[[Installation/Windows|Installing prerequisite tools on Windows]] Note that this is '''a work in progress, and not finished yet'''. It would be fantastic if you are interested in running Paparazzi on this OS to help out with the porting. Being able to help is one of opensource software main features. If your skill- set is not so good in this area, but you still insist using Windows OS, then it is best to install a VirtualMachine from within Windows where you run the free Ubuntu OS of choice.<br />
<br />
=== Virtual Machines ===<br />
<br />
It is also possible to have your Debian/Ubuntu running in a virtual machine, for instance with [http://www.virtualbox.org/ VirtualBox]. This requires minimal changes to your computer setup, as you can run the VM from all common platforms (Windows, OS X, Linux). The virtual machine image can easily be transferred between different laptops, giving greater flexibility. Unfortunately, the Open-Source Edition of VirtualBox doesn't include the necessary USB support, so you'll need to get the regular version from the website.<br />
<br />
If you are new and this is your first time installing it is suggested you keep it simple. Use the standard Linux or OS X install. Select a system you can dedicate to the Linux installation. No VMs or dual boot configurations. The idea is do a very simple generic installation that is certain to have no issues. This reassures you that the installation process works and you can see and use a working Paparazzi install for some time before you try a more complicated install. The install is well documented and certain to succeed if followed exactly. Most issues arise when someone unfamiliar with Paparazzi or their OS tries a non-standard install that requires special steps that are not documented. Generally, commands can be copied and pasted for easy, step-by-step installation.<br />
<br />
== Getting the Source Code ==<br />
The Paparazzi source code is hosted on [https://github.com/paparazzi/paparazzi Github]. While you can download it as a tarball from https://github.com/paparazzi/paparazzi/releases, it is recommended to clone the repository with [[git]].<br />
<br />
From the directory of your choice type:<br />
git clone --origin upstream https://github.com/paparazzi/paparazzi.git<br />
Check out the released stable version branch:<br />
cd paparazzi<br />
git checkout v5.12<br />
<br />
'''If this whole "Git" thing is new to you, more options and information can be found on the [[git|Git page]].'''<br />
<br />
== Launching the Software ==<br />
Make sure you have installed the <tt>paparazzi-dev</tt> package as described above. Without these you will not be able to compile the sourcecode.<br />
The first step is to compile. From the <tt>paparazzi</tt> directory (<tt>cd ~/paparazzi</tt>), run<br />
<br />
make<br />
<br />
You will have to run this command after each update of the source (<tt>git pull</tt> command).<br />
Launch the software from the <tt>paparazzi</tt> directory with<br />
<br />
./paparazzi<br />
<br />
From the [[Paparazzi_Center|Paparazzi Center]] interface, select the ''Microjet'' aircraft, select the ''sim'' target and ''Build'' it. Then ''Execute'' the ''Simulation'' session. The procedure is detailed in the [[Simulation]] page.<br />
<br />
=== Environment Variables ===<br />
<br />
If ('''and only if''') you want to directly launch some Paparazzi agents (the ''Tools'' of the [[Paparazzi_Center|Paparazzi Center]]) from the command line, without using the Paparazzi Center, you must have the Paparazzi source and home environment variables set correctly in your shell. These variables can be automatically set in your shell by adding the following lines to your .bashrc file:<br />
{{Box Code|~/.bashrc|<br />
<source lang="bash"><br />
export PAPARAZZI_HOME=''your paparazzi software directory''<br />
export PAPARAZZI_SRC=''your paparazzi software directory''<br />
</source><br />
}}<br />
<br />
Verify that your variables are set correctly with the following command:<br />
:<source lang="bash">env | grep PAPARAZZI</source><br />
which should return the following:<br />
<source lang="bash"><br />
PAPARAZZI_HOME=''your paparazzi software directory''<br />
PAPARAZZI_SRC=''your paparazzi software directory''<br />
</source><br />
<br />
<br />
If you wish to manually set the env variables (i.e. when compiling a backup copy of your code in a different folder) execute the following command from the folder you wish to set as your active paparazzi folder:<br />
:<source lang="bash">export PAPARAZZI_HOME=`pwd`;export PAPARAZZI_SRC=`pwd`</source><br />
<br />
== Software Updates ==<br />
'''We manage the software with the git version control system. Learn it! If you are new to it, see the [[Git|Git wiki page]].'''<br />
<br />
Paparazzi is a very rapidly evolving project and as such you might want to update your software regularly. See the [[RepositoryStructure|branching model and release process page]].<br />
<br />
Any new files you created will not be lost/overwritten when updating (like your own airframe file). Nevertheless, as with all things, backups are advised.<br />
If you modified source code, the best way is of course to use the version control system [[Git]] to commit your changes. Otherwise at least use the brute force method and save everything in another directory.<br />
<br />
Update your software with care and caution, and always test the functionality on the ground and in the air as some updates will affect tuning parameters. You might need to update your airframe file as well. The compiler will usually complain if there is a problem, at which point you can look at the [[Airframe_Configuration|Airframe Configuration wiki page]] again, look on the [[Contact#Mailing_List|mailing list]] or some of the most recent airframe files on git to find the proper syntax.<br />
<br />
'''See also the [[Release Upgrades]] page for information on how to update your configuration from one release to the next.'''<br />
<br />
=== Quick'n dirty description ===<br />
<br />
To download and automatically merge any updated source files, run the following command from your Paparazzi directory<br />
git pull<br />
<br />
After any git update or source code modification the code can be recompiled from ''your paparazzi software directory'' with the following command:<br />
<br />
make<br />
<br />
The ''make'' command will only recompile portions of the software where changed have been detected.<br />
If it does not behave as expected you can delete all compiled files and recompile from scratch with the following commands:<br />
<br />
make clean<br />
make<br />
<br />
If you'd like to check that the code compiles all example airframes then you can run the test suite using the command<br />
<br />
make test<br />
<br />
For more details see the [[Builds/Tests|tests page]].<br />
<br />
== Using the Live CD ==<br />
<br />
There is a [[LiveCD]] available, but it dates back to 2008. It is still an easy way to get a first glimpse of Paparazzi however without installing anything.<br />
<br />
[[Category:Software]] [[Category:User_Documentation]] [[Category:Installation]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Installation&diff=24112Installation2018-08-19T12:27:57Z<p>Fvantienen: Add ubuntu 18.04 oneliner</p>
<hr />
<div><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Installation</categorytree><br />
__TOC__<br />
<br />
== Introduction ==<br />
<br />
Paparazzi is very easily installed on any laptop or workstation running the [http://www.ubuntu.com/ Ubuntu Linux OS] or virtually any [http://www.debian.org/ Debian] based [http://en.wikipedia.org/wiki/Linux Linux] or Apple Macintosh running [http://en.wikipedia.org/wiki/OS_X Mac OS X]. There is also work being done to port Paparazzi to Windows.<br />
<br />
The steps required to install the software needed to be able to let your UAS fly are:<br />
<br />
# Install tools and prerequisites needed by Paparazzi.<br />
# Download the source code from the source repository.<br />
# Compile the Paparazzi software from sourcecode<br />
# Complete any final configuration<br />
<br />
== Quickstart for Ubuntu users ==<br />
Love one-liners? To get the latest Paparazzi up and running on your '''Ubuntu 12.04 or higher OS''', make sure you have a working internet connection, then just copy and paste the text below into your terminal and press [enter] ... and wait a while...<br />
<br />
<nowiki><br />
sudo add-apt-repository -y ppa:paparazzi-uav/ppa && sudo add-apt-repository -y ppa:team-gcc-arm-embedded/ppa && sudo apt-get update && \<br />
sudo apt-get -f -y install paparazzi-dev paparazzi-jsbsim gcc-arm-embedded && cd ~ && git clone --origin upstream https://github.com/paparazzi/paparazzi.git && \<br />
cd ~/paparazzi && git remote update -p && \<br />
git checkout -b v5.12 upstream/v5.12 && sudo cp conf/system/udev/rules/*.rules /etc/udev/rules.d/ && sudo udevadm control --reload-rules && \<br />
make && ./paparazzi<br />
</nowiki><br />
<br />
For '''Ubuntu 18.04''' use the following one-liner in your home directory:<br />
<nowiki><br />
sudo add-apt-repository -y ppa:paparazzi-uav/ppa && sudo apt-get update && sudo apt-get -f -y install paparazzi-dev paparazzi-jsbsim gcc-arm-none-eabi gdb-multiarch python-gtk2 && \<br />
git clone --origin upstream https://github.com/paparazzi/paparazzi.git && cd ~/paparazzi && \<br />
sudo adduser $USER plugdev && sudo adduser $USER dialout && \<br />
sudo cp conf/system/udev/rules/*.rules /etc/udev/rules.d/ && sudo udevadm control --reload-rules && \<br />
make && ./paparazzi<br />
</nowiki><br />
<br />
[[File:Done.jpg|frameless|center|Done!]]<br />
If all went well the Paparazzi Center should now be running... '''skip''' the rest of this page and go fly! <br />
<br />
If you are new you'll need to do some more things before you go fly like configuring your XML definition file detailing your airframe configuration. There is help here for that: [[Airframe_Configuration]]<br />
<br />
In case you have no autopilot hardware yet, no problem, you can get hardware [[Get_Hardware|here]] or just buy a ready to fly aircraft that can run Paparazzi Software like the Parrot Drones [http://www.parrot.com/products/bebop-drone/ Parrot Bebop] and run Paparazzi on your Parrot [[AR_Drone_2|ARDRone2]], [[Bebop|Bebop]] and Bebop2 (soon the Disco drone).<br />
<br />
== OS Specific Instructions ==<br />
<br />
For Linux an instructional video explaining it all in detail can be found here https://www.youtube.com/watch?v=eW0PCSjrP78<br />
<br />
The process of installing the prerequisite tools and dependencies needed by Paparazzi is specific to the operating system you are using. For detailed installation instructions, please see the following pages:<br />
*[[Installation/Linux|Installing prerequisites tools on Linux]]<br />
*[[Installation/MacOSX|Installing prerequisites tools on Mac OS X]]<br />
*[[Installation/RaspberryPi|Installing prerequisites tools on the RaspberryPi (Raspbian)]]<br />
<br />
For more advanced installation information or developers, please see the following pages:<br />
*[[Installation/FromScratch|Installing everything from scratch]] For non Debian based Linux distributions or if one just wants to be able to use all the latest and greatest compilers, or source code of everything to improve something. Then there is no other way than to install from scratch.<br />
*[[Installation/Windows|Installing prerequisite tools on Windows]] Note that this is '''a work in progress, and not finished yet'''. It would be fantastic if you are interested in running Paparazzi on this OS to help out with the porting. Being able to help is one of opensource software main features. If your skill- set is not so good in this area, but you still insist using Windows OS, then it is best to install a VirtualMachine from within Windows where you run the free Ubuntu OS of choice.<br />
<br />
=== Virtual Machines ===<br />
<br />
It is also possible to have your Debian/Ubuntu running in a virtual machine, for instance with [http://www.virtualbox.org/ VirtualBox]. This requires minimal changes to your computer setup, as you can run the VM from all common platforms (Windows, OS X, Linux). The virtual machine image can easily be transferred between different laptops, giving greater flexibility. Unfortunately, the Open-Source Edition of VirtualBox doesn't include the necessary USB support, so you'll need to get the regular version from the website.<br />
<br />
If you are new and this is your first time installing it is suggested you keep it simple. Use the standard Linux or OS X install. Select a system you can dedicate to the Linux installation. No VMs or dual boot configurations. The idea is do a very simple generic installation that is certain to have no issues. This reassures you that the installation process works and you can see and use a working Paparazzi install for some time before you try a more complicated install. The install is well documented and certain to succeed if followed exactly. Most issues arise when someone unfamiliar with Paparazzi or their OS tries a non-standard install that requires special steps that are not documented. Generally, commands can be copied and pasted for easy, step-by-step installation.<br />
<br />
== Getting the Source Code ==<br />
The Paparazzi source code is hosted on [https://github.com/paparazzi/paparazzi Github]. While you can download it as a tarball from https://github.com/paparazzi/paparazzi/releases, it is recommended to clone the repository with [[git]].<br />
<br />
From the directory of your choice type:<br />
git clone --origin upstream https://github.com/paparazzi/paparazzi.git<br />
Check out the released stable version branch:<br />
cd paparazzi<br />
git checkout v5.12<br />
<br />
'''If this whole "Git" thing is new to you, more options and information can be found on the [[git|Git page]].'''<br />
<br />
== Launching the Software ==<br />
Make sure you have installed the <tt>paparazzi-dev</tt> package as described above. Without these you will not be able to compile the sourcecode.<br />
The first step is to compile. From the <tt>paparazzi</tt> directory (<tt>cd ~/paparazzi</tt>), run<br />
<br />
make<br />
<br />
You will have to run this command after each update of the source (<tt>git pull</tt> command).<br />
Launch the software from the <tt>paparazzi</tt> directory with<br />
<br />
./paparazzi<br />
<br />
From the [[Paparazzi_Center|Paparazzi Center]] interface, select the ''Microjet'' aircraft, select the ''sim'' target and ''Build'' it. Then ''Execute'' the ''Simulation'' session. The procedure is detailed in the [[Simulation]] page.<br />
<br />
=== Environment Variables ===<br />
<br />
If ('''and only if''') you want to directly launch some Paparazzi agents (the ''Tools'' of the [[Paparazzi_Center|Paparazzi Center]]) from the command line, without using the Paparazzi Center, you must have the Paparazzi source and home environment variables set correctly in your shell. These variables can be automatically set in your shell by adding the following lines to your .bashrc file:<br />
{{Box Code|~/.bashrc|<br />
<source lang="bash"><br />
export PAPARAZZI_HOME=''your paparazzi software directory''<br />
export PAPARAZZI_SRC=''your paparazzi software directory''<br />
</source><br />
}}<br />
<br />
Verify that your variables are set correctly with the following command:<br />
:<source lang="bash">env | grep PAPARAZZI</source><br />
which should return the following:<br />
<source lang="bash"><br />
PAPARAZZI_HOME=''your paparazzi software directory''<br />
PAPARAZZI_SRC=''your paparazzi software directory''<br />
</source><br />
<br />
<br />
If you wish to manually set the env variables (i.e. when compiling a backup copy of your code in a different folder) execute the following command from the folder you wish to set as your active paparazzi folder:<br />
:<source lang="bash">export PAPARAZZI_HOME=`pwd`;export PAPARAZZI_SRC=`pwd`</source><br />
<br />
== Software Updates ==<br />
'''We manage the software with the git version control system. Learn it! If you are new to it, see the [[Git|Git wiki page]].'''<br />
<br />
Paparazzi is a very rapidly evolving project and as such you might want to update your software regularly. See the [[RepositoryStructure|branching model and release process page]].<br />
<br />
Any new files you created will not be lost/overwritten when updating (like your own airframe file). Nevertheless, as with all things, backups are advised.<br />
If you modified source code, the best way is of course to use the version control system [[Git]] to commit your changes. Otherwise at least use the brute force method and save everything in another directory.<br />
<br />
Update your software with care and caution, and always test the functionality on the ground and in the air as some updates will affect tuning parameters. You might need to update your airframe file as well. The compiler will usually complain if there is a problem, at which point you can look at the [[Airframe_Configuration|Airframe Configuration wiki page]] again, look on the [[Contact#Mailing_List|mailing list]] or some of the most recent airframe files on git to find the proper syntax.<br />
<br />
'''See also the [[Release Upgrades]] page for information on how to update your configuration from one release to the next.'''<br />
<br />
=== Quick'n dirty description ===<br />
<br />
To download and automatically merge any updated source files, run the following command from your Paparazzi directory<br />
git pull<br />
<br />
After any git update or source code modification the code can be recompiled from ''your paparazzi software directory'' with the following command:<br />
<br />
make<br />
<br />
The ''make'' command will only recompile portions of the software where changed have been detected.<br />
If it does not behave as expected you can delete all compiled files and recompile from scratch with the following commands:<br />
<br />
make clean<br />
make<br />
<br />
If you'd like to check that the code compiles all example airframes then you can run the test suite using the command<br />
<br />
make test<br />
<br />
For more details see the [[Builds/Tests|tests page]].<br />
<br />
== Using the Live CD ==<br />
<br />
There is a [[LiveCD]] available, but it dates back to 2008. It is still an easy way to get a first glimpse of Paparazzi however without installing anything.<br />
<br />
[[Category:Software]] [[Category:User_Documentation]] [[Category:Installation]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=20426Bebop2015-11-19T00:09:36Z<p>Fvantienen: </p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
<br />
= Introduction =<br />
<br />
By default the [http://www.parrot.com/usa/products/bebop-drone/ Bebop] from [http://www.parrot.com/ Parrot] is a Wifi controlled flying quadrotor, designed to be controlled with an Android or iOS device. <br />
<br />
'''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!<br />
<br />
= Getting started =<br />
<br />
# Make sure you have the latest release version of Paparazzi installed. <br />
# Power up your Bebop.<br />
# If you have a Bebop 2 press the '''on/off button twice''' after powerup<br />
# Make a Wifi connection with your PC and the Bebop <br />
# In the Paparazzi center choose "Bebop" Or "Bebop2" in the airframe dropdown menu<br />
# Press "Upload"<br />
# Select the Bebop or ARdrone2 Flight in the session menu<br />
# Press execute<br />
<br />
Voila, you will get telemetry from the Bebop. Now it is up to you how and where to fly.<br />
<br />
= Features =<br />
== Connectivity ==<br />
* Wi-Fi antennas: MIMO dual-band with 2 double-set of dipole antennas for 2.4 and 5 GHz<br />
* Sending power: Up to 26 dBm<br />
* Signal range: N/A<br />
<br />
== Structure ==<br />
* 4 Brushless Outrunner motors<br />
* Glass fiber reinforced (15%) ABS structure<br />
* 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<br />
* Three-blade auto-block propellers in Polycarbonate with fast disassembly system<br />
* Anti-vibration bumpers<br />
<br />
== Camera ==<br />
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor<br />
* Video stabilization: Digital on 3-axes<br />
* Video definition: 1920x1080p (30fps)<br />
* Photo definition: 3800x3188 pixels<br />
* Video encoding: H264<br />
* Photo file format: RAW, DNG<br />
* Internal memory: Flash 8 GB<br />
* Extended memory: Micro USB<br />
<br />
== Battery ==<br />
* Lithium Polymer 1200 mAh<br />
* Flight time: Around 12 minutes<br />
<br />
== Processor ==<br />
* Motherboard:<br />
** Parrot P7 dual-core CPU Cortex 9<br />
** Quad core GPU<br />
** 8Gb flash memory<br />
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator<br />
<br />
== Sensors ==<br />
* 3-axes magnetometer (AKM 8963)<br />
* 3-axes gyroscope (MPU 6050)<br />
* 3-axes accelerometer (MPU 6050)<br />
* 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)<br />
* Ultrasound sensor (Analyzes the flight altitude up to 8 meters)<br />
* Pressure sensor (MS 5607)<br />
<br />
== Geo-location ==<br />
* GNSS (GPS + GLONASS + Galileo, [http://www.furuno.com/en/products/gnss-module/GN-87 Furuno GN-87F])<br />
<br />
== Dimensions ==<br />
* 28x32x3.6cm without the hull<br />
* 33x38x3.6cm with the hull<br />
<br />
== Weight ==<br />
* 380g without the hull<br />
* 400g with the hull<br />
<br />
== OS/Software ==<br />
* Operating system: Linux (kernel 3.4.11 #3 SMP PREEMPT)<br />
* glibc: (Sourcery CodeBench Lite 2012.03-57) 2.15<br />
* libstdc++: GLIBCXX_3.4 - GLIBCXX_3.4.16<br />
* Developing: Open-source SDK (for interfacing with it from an offboard computer)<br />
<br />
= Pinout =<br />
== GPIO ==<br />
* 6 Fans Enable<br />
* 9 WiFi Reset<br />
* 73 P7MU IRQ<br />
* 81 GPS Power Enable<br />
* 85 Fan Enable<br />
* 89 VCAM FSYNC gyro<br />
* 90 HCAM FSYNC gyro<br />
* 91 DRDY MPU6050<br />
* 124 Magneto interrupt<br />
* 128 (video) Slew rate??<br />
* 129 VCAM enable<br />
* 130 (video) Slew rate??<br />
* 132 HCAM enable<br />
* 199 BLDC micro-controller reset (forces it into bootloader) ON/OFF<br />
* 200 US Pulse level<br />
* 201 On/Off button (default monitor to files running: /bin/onoffbutton)<br />
* 202 USB Host mode pin 3V3 (HOST_MODE_3V3)<br />
* 203 USB Host mode on<br />
* 204 USB0 OC<br />
<br />
== PWM ==<br />
* 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)<br />
* 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<br />
* 9 Vertical camera clock (23ns period = 43MHz)<br />
* 11 Horizontal camera lock (77ns period = 13MHz)<br />
<br />
== I2C ==<br />
* I2C-0<br />
** FPGA<br />
** P7MU <br />
** EEPROM Unknown EEPROM for Front camera calibration (addr 0x55)<br />
** MT9f002 CMOS Digital Image Sensor (1/2.3 inch 14Mp, front camera) [http://www.onsemi.com/PowerSolutions/product.do?id=MT9F002 MT9f002] (addr 0x10)<br />
** MT9v117 CMOS Digital Image Sensor (1/6 inch VGA, bottom camera) [http://www.aptina.com/assets/downloadDocument.do?id=553 MT9v117] (addr 0x5d)<br />
* I2C-1<br />
** Cypress Motor Controller (Parrot BLDC) [[Bebop/BLDC]] (addr 0x08)<br />
** AKM8963 Magnetometer [http://www.akm.com/akm/en/file/datasheet/AK8963.pdf AK8963]<br />
** MS5607 Barometer [http://meas-spec.com/product/pressure/MS5607-02BA03.aspx MS5607]<br />
* I2C-2<br />
** MPU6050 Gyro + Accel [http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf MPU6050] (rotation changed in version 2)<br />
<br />
== SPI ==<br />
* spidev1.0 Sonar (Only data pin connected for generating pulses)<br />
<br />
== UART ==<br />
* ttyPA1 GPS (Furuno GN-87F on v1 and Ublox Neo M8N on v2)<br />
<br />
== Other ==<br />
* /dev/hx280 Hantro (On2) Video encoder. Hantro chip video encoder used for the HCAM.<br />
* /sys/bus/iio/devices/iio:device0 (p7mu-adc_2) Sonar ADC<br />
<br />
= Actuators =<br />
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.<br />
The firmware from Parrot contains a nice closed loop RPM control, which is automatically tuned inside the factory. <br />
Since version 2 Parrot changed the order and rotation direction of the motors.<br />
<br />
For more information about how to communicate with the BLDC look at [[Bebop/BLDC]]. Or take a look at the "bebop" actuator inside the <code>airborne/boards/bebop/</code> folder.<br />
<br />
= Programs =<br />
* /usr/bin/dragon-prog Main program that controls the drone<br />
* /bin/watchdog.sh Checks if Dragon is still running and reboots dragon<br />
* BLDC_Test_Bench Controls the Brushless Motor Controllers for testing and playing sounds etc.<br />
* bcmwl Everything with wifi<br />
* diagnostic Outputs sensor diagnostic<br />
* mk3_camera_eeprom Reads the front camera EEPROM<br />
* config_mt9v117 Configure the bottom camera<br />
<br />
= Cross compiler =<br />
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.<br />
<br />
[http://electronics.stackexchange.com/questions/21594/is-code-sourcery-g-lite-still-a-viable-projectIn the past you could also crosscompile with Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from <s>Greedy</s> 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 <s>Greedy</s> Mentor"]<br />
but if you [http://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2012.03-57-arm-none-linux-gnueabi.bin insist] , feel <s>free</s> restricted.<br />
<br />
= Tips & Tricks =<br />
<br />
== Video ==<br />
Load the [http://docs.paparazziuav.org/latest/module__video_rtp_stream.html video_rtp_stream.xml] module. Receive the video stream with e.g. avplay: <br />
$ avplay -loglevel quiet -max_delay 50 -fflags nobuffer rtp://192.168.42.1:5000<br />
<br />
== Factory Reset ==<br />
You can reset the Parrot Bebop Drone to factory settings. You '''will''' loose all your photos and movies recorded on your Bebop.<br />
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.<br />
<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=20161Bebop2015-07-16T11:41:31Z<p>Fvantienen: This should not be here.. this is generic and not only for Bebop</p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
<br />
= Introduction =<br />
<br />
By default the [http://www.parrot.com/usa/products/bebop-drone/ Bebop] from [http://www.parrot.com/ Parrot] is a Wifi controlled flying quadrotor, designed to be controlled with an Android or iOS device. <br />
<br />
'''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!<br />
<br />
= Getting started =<br />
<br />
# Make sure you have the latest release version of Paparazzi installed. <br />
# Power up your Bebop. <br />
# Make a Wifi connection with your PC and the Bebop <br />
# In the Paparazzi center choose "Bebop" in the airframe dropdown menu<br />
# Press "Upload"<br />
# Select the Bebop or ARdrone2 Flight in the session menu<br />
# Press execute<br />
<br />
Voila, you will get telemetry from the Bebop. Now it is up to you how and where to fly.<br />
<br />
= Features =<br />
== Connectivity ==<br />
* Wi-Fi antennas: MIMO dual-band with 2 double-set of dipole antennas for 2.4 and 5 GHz<br />
* Sending power: Up to 26 dBm<br />
* Signal range: N/A<br />
<br />
== Structure ==<br />
* 4 Brushless Outrunner motors<br />
* Glass fiber reinforced (15%) ABS structure<br />
* 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<br />
* Three-blade auto-block propellers in Polycarbonate with fast disassembly system<br />
* Anti-vibration bumpers<br />
<br />
== Camera ==<br />
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor<br />
* Video stabilization: Digital on 3-axes<br />
* Video definition: 1920x1080p (30fps)<br />
* Photo definition: 3800x3188 pixels<br />
* Video encoding: H264<br />
* Photo file format: RAW, DNG<br />
* Internal memory: Flash 8 GB<br />
* Extended memory: Micro USB<br />
<br />
== Battery ==<br />
* Lithium Polymer 1200 mAh<br />
* Flight time: Around 12 minutes<br />
<br />
== Processor ==<br />
* Motherboard:<br />
** Parrot P7 dual-core CPU Cortex 9<br />
** Quad core GPU<br />
** 8Gb flash memory<br />
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator<br />
<br />
== Sensors ==<br />
* 3-axes magnetometer (AKM 8963)<br />
* 3-axes gyroscope (MPU 6050)<br />
* 3-axes accelerometer (MPU 6050)<br />
* 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)<br />
* Ultrasound sensor (Analyzes the flight altitude up to 8 meters)<br />
* Pressure sensor (MS 5607)<br />
<br />
== Geo-location ==<br />
* GNSS (GPS + GLONASS + Galileo, [http://www.furuno.com/en/products/gnss-module/GN-87 Furuno GN-87F])<br />
<br />
== Dimensions ==<br />
* 28x32x3.6cm without the hull<br />
* 33x38x3.6cm with the hull<br />
<br />
== Weight ==<br />
* 380g without the hull<br />
* 400g with the hull<br />
<br />
== OS/Software ==<br />
* Operating system: Linux (kernel 3.4.11 #3 SMP PREEMPT)<br />
* glibc: (Sourcery CodeBench Lite 2012.03-57) 2.15<br />
* libstdc++: GLIBCXX_3.4 - GLIBCXX_3.4.16<br />
* Developing: Open-source SDK (for interfacing with it from an offboard computer)<br />
<br />
= Pinout =<br />
== GPIO ==<br />
* 6 Fans Enable<br />
* 9 WiFi Reset<br />
* 73 P7MU IRQ<br />
* 81 GPS Power Enable<br />
* 85 Fan Enable<br />
* 89 VCAM FSYNC gyro<br />
* 90 HCAM FSYNC gyro<br />
* 91 DRDY MPU6050<br />
* 124 Magneto interrupt<br />
* 128 (video) Slew rate??<br />
* 129 VCAM enable<br />
* 130 (video) Slew rate??<br />
* 132 HCAM enable<br />
* 199 BLDC micro-controller reset (forces it into bootloader) ON/OFF<br />
* 200 US Pulse level<br />
* 201 On/Off button (default monitor to files running: /bin/onoffbutton)<br />
* 202 USB Host mode pin 3V3 (HOST_MODE_3V3)<br />
* 203 USB Host mode on<br />
* 204 USB0 OC<br />
<br />
== PWM ==<br />
* 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)<br />
* 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<br />
* 9 Vertical camera clock (23ns period = 43MHz)<br />
* 11 Horizontal camera lock (77ns period = 13MHz)<br />
<br />
== I2C ==<br />
* I2C-0<br />
** FPGA<br />
** P7MU <br />
** EEPROM Unknown EEPROM for Front camera calibration (addr 0x55)<br />
** MT9f002 CMOS Digital Image Sensor (1/2.3 inch 14Mp, front camera) [https://www.aptina.com/products/dsc%1Cdvc/mt9f002/ MT9f002] (addr 0x10)<br />
** MT9v117 CMOS Digital Image Sensor (1/6 inch VGA, bottom camera) [http://www.aptina.com/assets/downloadDocument.do?id=553 MT9v117] (addr 0x5d)<br />
* I2C-1<br />
** Cypress Motor Controller (Parrot BLDC) [[Bebop/BLDC]] (addr 0x08)<br />
** AKM8963 Magnetometer [http://www.akm.com/akm/en/file/datasheet/AK8963.pdf AK8963]<br />
** MS5607 Barometer [http://meas-spec.com/product/pressure/MS5607-02BA03.aspx MS5607]<br />
* I2C-2<br />
** MPU6050 Gyro + Accel [http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf MPU6050]<br />
<br />
== SPI ==<br />
* spidev1.0 Sonar (Only data pin connected for generating pulses)<br />
<br />
== UART ==<br />
* ttyPA1 GPS (Furuno GN-87F)<br />
<br />
== Other ==<br />
* /dev/hx280 Hantro (On2) Video encoder. Hantro chip video encoder used for the HCAM.<br />
* /sys/bus/iio/devices/iio:device0 (p7mu-adc_2) Sonar ADC<br />
<br />
= Actuators =<br />
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.<br />
The firmware from Parrot contains a nice closed loop RPM control, which is automatically tuned inside the factory. <br />
<br />
For more information about how to communicate with the BLDC look at [[Bebop/BLDC]]. Or take a look at the "bebop" actuator inside the <code>airborne/boards/bebop/</code> folder.<br />
<br />
= Programs =<br />
* /usr/bin/dragon-prog Main program that controls the drone<br />
* /bin/watchdog.sh Checks if Dragon is still running and reboots dragon<br />
* BLDC_Test_Bench Controls the Brushless Motor Controllers for testing and playing sounds etc.<br />
* bcmwl Everything with wifi<br />
* diagnostic Outputs sensor diagnostic<br />
* mk3_camera_eeprom Reads the front camera EEPROM<br />
* config_mt9v117 Configure the bottom camera<br />
<br />
= Cross compiler =<br />
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.<br />
<br />
[http://electronics.stackexchange.com/questions/21594/is-code-sourcery-g-lite-still-a-viable-projectIn the past you could also crosscompile with Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from <s>Greedy</s> 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 <s>Greedy</s> Mentor"]<br />
but if you [http://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2012.03-57-arm-none-linux-gnueabi.bin insist] , feel <s>free</s> restricted.<br />
<br />
= Tips & Tricks =<br />
<br />
== Factory Reset ==<br />
<br />
You can reset the Parrot Bebop Drone to factory settings. You '''will''' loose all your photos and movies recorded on your Bebop.<br />
To do this you need to press and hold the power button for 10 seconds.<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Rolling_Spider&diff=19724Rolling Spider2015-04-06T14:08:59Z<p>Fvantienen: /* Connect with Bluetooth */</p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:RS_BLUE_FrontView_Wheels_Sticker.jpeg|right|500px|Parrot Rolling Spider]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
== Intro ==<br />
Originally the [http://www.parrot.com/usa/products/rolling-spider/ Rolling Spider] from [http://www.parrot.com/ Parrot] is a Bluetooth controlled flying quadrotor, designed to be controlled with an Android or iOS device. <br />
Not any more: With a few simple clicks you can run Paparazzi on the Bebop and have full autonomous flight and much more!<br />
<br />
== Features ==<br />
=== Connectivity ===<br />
* Bluetooth Smart technology, Bluetooth V4.0 BLE (Bluetooth Low Energy).<br />
* Normal bluetooth also possible<br />
<br />
=== Sensors ===<br />
* Ultrasonic sensor<br />
* 3-axis gyroscope and 3-axis accelerometer (MPU 6050)<br />
* Vertical camera <br />
* Pressure sensor<br />
<br />
=== Battery ===<br />
Lithium-Polymer and removable<br />
Lasts up 8 min (6 min with wheels) and full recharge in 90 min<br />
<br />
=== Weight / Dimensions ===<br />
* 55g (65g with wheels)<br />
* Rolling Spider diameter: 140 mm<br />
* Propellers' diameter: 55mm<br />
* Motor spacing: 85 mm<br />
<br />
== How to connect ==<br />
There are two ways to connect to the Rolling Spider with Paparazzi. The first one is an USB cable and the second one is Bluetooth (4.0 or normal). Both have the possibility to connect as WiFi access point and transfer files through FTP and execute programs over telnet. But be warned that connecting over USB disables the vertical camera, as it uses the same USB bus.<br />
<br />
=== Connect with USB ===<br />
* Set the Rolling spider on<br />
* Just plug in a micro-usb cable from your drone to the computer<br />
* A new network device will show up<br />
* Connect with '''192.168.2.1''' through ftp or telnet<br />
<br />
=== Connect with Bluetooth ===<br />
* Set the rolling spider on<br />
* Make sure you have bluetooth enable on your computer<br />
* Execute "hcitool scan" and look for the mac address of the "RS_...." device. (If you cannot find it look at [[#Setup normal Bluetooth]])<br />
* Install the bluez-utils package(if not installed) with "sudo apt-get install bluez-utils"<br />
* Execute "sudo pand --connect <MAC address> -dGN -n", to connect to the bluetooth of the drone. *<br />
* Execute "sudo ifconfig bnep0 192.168.1.2 up", to setup the ethernet device over bluetooth. *<br />
* Connect with '''192.168.1.1''' through ftp or telnet<br />
<nowiki>*</nowiki> This has to be done everytime you reboot the drone<br />
<br />
=== Setup normal Bluetooth ===<br />
* First connect over Bluetooth 4.0 or USB to the drone as described above<br />
* Connect with telnet to the drone. (telnet 192.168.*.1)<br />
* Open the "/etc/init.d/rcS" file and search for the line with "BLEproxy". (vi /etc/init.d/rcS)<br />
* Now change the "BLEproxy" to "BLEproxy --normalbt"<br />
* Reboot your drone by executing: "reboot". (This makes sure the filesystem is saved)<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Rolling_Spider&diff=19723Rolling Spider2015-04-06T14:06:14Z<p>Fvantienen: Added the net Parrot Rolling Spider</p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:RS_BLUE_FrontView_Wheels_Sticker.jpeg|right|500px|Parrot Rolling Spider]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
== Intro ==<br />
Originally the [http://www.parrot.com/usa/products/rolling-spider/ Rolling Spider] from [http://www.parrot.com/ Parrot] is a Bluetooth controlled flying quadrotor, designed to be controlled with an Android or iOS device. <br />
Not any more: With a few simple clicks you can run Paparazzi on the Bebop and have full autonomous flight and much more!<br />
<br />
== Features ==<br />
=== Connectivity ===<br />
* Bluetooth Smart technology, Bluetooth V4.0 BLE (Bluetooth Low Energy).<br />
* Normal bluetooth also possible<br />
<br />
=== Sensors ===<br />
* Ultrasonic sensor<br />
* 3-axis gyroscope and 3-axis accelerometer (MPU 6050)<br />
* Vertical camera <br />
* Pressure sensor<br />
<br />
=== Battery ===<br />
Lithium-Polymer and removable<br />
Lasts up 8 min (6 min with wheels) and full recharge in 90 min<br />
<br />
=== Weight / Dimensions ===<br />
* 55g (65g with wheels)<br />
* Rolling Spider diameter: 140 mm<br />
* Propellers' diameter: 55mm<br />
* Motor spacing: 85 mm<br />
<br />
== How to connect ==<br />
There are two ways to connect to the Rolling Spider with Paparazzi. The first one is an USB cable and the second one is Bluetooth (4.0 or normal). Both have the possibility to connect as WiFi access point and transfer files through FTP and execute programs over telnet. But be warned that connecting over USB disables the vertical camera, as it uses the same USB bus.<br />
<br />
=== Connect with USB ===<br />
* Set the Rolling spider on<br />
* Just plug in a micro-usb cable from your drone to the computer<br />
* A new network device will show up<br />
* Connect with '''192.168.2.1''' through ftp or telnet<br />
<br />
=== Connect with Bluetooth ===<br />
* Set the rolling spider on<br />
* Make sure you have bluetooth enable on your computer<br />
* Execute "hcitool scan" and look for the mac address of the "RS_...." device. (If you cannot find it look at [[Setup normal Bluetooth]])<br />
* Install the bluez-utils package(if not installed) with "sudo apt-get install bluez-utils"<br />
* Execute "sudo pand --connect <MAC address> -dGN -n", to connect to the bluetooth of the drone. *<br />
* Execute "sudo ifconfig bnep0 192.168.1.2 up", to setup the ethernet device over bluetooth. *<br />
* Connect with '''192.168.1.1''' through ftp or telnet<br />
<nowiki>*</nowiki> This has to be done everytime you reboot the drone<br />
<br />
=== Setup normal Bluetooth ===<br />
* First connect over Bluetooth 4.0 or USB to the drone as described above<br />
* Connect with telnet to the drone. (telnet 192.168.*.1)<br />
* Open the "/etc/init.d/rcS" file and search for the line with "BLEproxy". (vi /etc/init.d/rcS)<br />
* Now change the "BLEproxy" to "BLEproxy --normalbt"<br />
* Reboot your drone by executing: "reboot". (This makes sure the filesystem is saved)<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=File:RS_BLUE_FrontView_Wheels_Sticker.jpeg&diff=19722File:RS BLUE FrontView Wheels Sticker.jpeg2015-04-06T13:37:26Z<p>Fvantienen: Rolling Spider by Parrot</p>
<hr />
<div>Rolling Spider by Parrot</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=19721Bebop2015-04-06T13:30:42Z<p>Fvantienen: /* Other */</p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
== Intro ==<br />
<br />
Originally the [http://www.parrot.com/usa/products/bebop-drone/ Bebop] from [http://www.parrot.com/ Parrot] is a Wifi controlled flying quadrotor, designed to be controlled with an Android or iOS device. <br />
Not any more: With a few simple clicks you can run Paparazzi on the Bebop and have full autonomous flight and much more!<br />
<br />
== Getting started ==<br />
<br />
# Make sure you have the latest release version of Paparazzi installed. <br />
# Power up your Bebop. <br />
# Make a Wifi connection with your PC and the Bebop <br />
# In the Paparazzi center choose "Bebop" in the airframe dropdown menu<br />
# Press "Upload"<br />
# Select the Bebop or ARdrone2 Flight in the session menu<br />
# Press execute<br />
<br />
Voila, you will get telemetry from the Bebop. Now it is up to you how and where to fly.<br />
<br />
== Features ==<br />
=== Connectivity ===<br />
* Wi-Fi antennas: MIMO dual-band with 2 double-set of dipole antennas for 2.4 and 5 GHz<br />
* Sending power: Up to 26 dBm<br />
* Signal range: N/A<br />
<br />
=== Structure ===<br />
* 4 Brushless Outrunner motors<br />
* Glass fiber reinforced (15%) ABS structure<br />
* 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<br />
* Three-blade auto-block propellers in Polycarbonate with fast disassembly system<br />
* Anti-vibration bumpers<br />
<br />
=== Camera ===<br />
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor<br />
* Video stabilization: Digital on 3-axes<br />
* Video definition: 1920x1080p (30fps)<br />
* Photo definition: 3800x3188 pixels<br />
* Video encoding: H264<br />
* Photo file format: RAW, DNG<br />
* Internal memory: Flash 8 GB<br />
* Extended memory: Micro USB<br />
<br />
=== Battery ===<br />
* Lithium Polymer 1200 mAh<br />
* Flight time: Around 12 minutes<br />
<br />
=== Processor ===<br />
* Motherboard:<br />
** Parrot P7 dual-core CPU Cortex 9<br />
** Quad core GPU<br />
** 8Gb flash memory<br />
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator<br />
<br />
=== Sensors ===<br />
* 3-axes magnetometer (AKM 8963)<br />
* 3-axes gyroscope (MPU 6050)<br />
* 3-axes accelerometer (MPU 6050)<br />
* 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)<br />
* Ultrasound sensor (Analyzes the flight altitude up to 8 meters)<br />
* Pressure sensor (MS 5607)<br />
<br />
=== Geo-location ===<br />
* GNSS (GPS + GLONASS + Galileo, [http://www.furuno.com/en/products/gnss-module/GN-87 Furuno GN-87F])<br />
<br />
=== Dimensions ===<br />
* 28x32x3.6cm without the hull<br />
* 33x38x3.6cm with the hull<br />
<br />
=== Weight ===<br />
* 380g without the hull<br />
* 400g with the hull<br />
<br />
=== OS/Software ===<br />
* Operating system: Linux (kernel 3.4.11 #3 SMP PREEMPT)<br />
* glibc: (Sourcery CodeBench Lite 2012.03-57) 2.15<br />
* libstdc++: GLIBCXX_3.4 - GLIBCXX_3.4.16<br />
* Developing: Open-source SDK (for interfacing with it from an offboard computer)<br />
<br />
== Pinout ==<br />
=== GPIO ===<br />
* 6 Fans Enable<br />
* 9 WiFi Reset<br />
* 73 P7MU IRQ<br />
* 81 GPS Power Enable<br />
* 85 Fan Enable<br />
* 89 VCAM FSYNC gyro<br />
* 90 HCAM FSYNC gyro<br />
* 91 DRDY MPU6050<br />
* 124 Magneto interrupt<br />
* 128 (video) Slew rate??<br />
* 129 VCAM enable<br />
* 130 (video) Slew rate??<br />
* 132 HCAM enable<br />
* 199 BLDC micro-controller reset (forces it into bootloader) ON/OFF<br />
* 200 US Pulse level<br />
* 201 On/Off button (default monitor to files running: /bin/onoffbutton)<br />
* 202 USB Host mode pin 3V3 (HOST_MODE_3V3)<br />
* 203 USB Host mode on<br />
* 204 USB0 OC<br />
<br />
=== PWM ===<br />
* 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)<br />
* 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<br />
* 9 Vertical camera clock (23ns period = 43MHz)<br />
* 11 Horizontal camera lock (77ns period = 13MHz)<br />
<br />
=== I2C ===<br />
* I2C-0<br />
** FPGA<br />
** P7MU <br />
** EEPROM Unknown EEPROM for Front camera calibration (addr 0x55)<br />
** MT9f002 CMOS Digital Image Sensor (1/2.3 inch 14Mp, front camera) [https://www.aptina.com/products/dsc%1Cdvc/mt9f002/ MT9f002] (addr 0x10)<br />
** MT9v117 CMOS Digital Image Sensor (1/6 inch VGA, bottom camera) [http://www.aptina.com/assets/downloadDocument.do?id=553 MT9v117] (addr 0x5d)<br />
* I2C-1<br />
** Cypress Motor Controller (Parrot BLDC) [[Bebop/BLDC]] (addr 0x08)<br />
** AKM8963 Magnetometer [http://www.akm.com/akm/en/file/datasheet/AK8963.pdf AK8963]<br />
** MS5607 Barometer [http://meas-spec.com/product/pressure/MS5607-02BA03.aspx MS5607]<br />
* I2C-2<br />
** MPU6050 Gyro + Accel [http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf MPU6050]<br />
<br />
=== SPI ===<br />
* spidev1.0 Sonar (Only data pin connected for generating pulses)<br />
<br />
=== UART ===<br />
* ttyPA1 GPS (Furuno GN-87F)<br />
<br />
=== Other ===<br />
* /dev/hx280 Hantro (On2) Video encoder. Hantro chip video encoder used for the HCAM.<br />
* /sys/bus/iio/devices/iio:device0 (p7mu-adc_2) Sonar ADC<br />
<br />
== Actuators ==<br />
The Bebop has 4 Brushless motors, which are controlled by the cypress chip on I2C-1. This Cypress chip contains costum made firmware(BLDC) from Parrot, which can be automatically updated using a bootloader.<br />
The firmware from Parrot contains a very nice closed loop RPM control, which is automatically tuned inside the factory.<br />
<br />
For more information about how to communicate with the BLDC look at [[Bebop/BLDC]]. Or take a look at the "bebop" actuator inside the <code>airborne/boards/bebop/</code> folder.<br />
<br />
== Programs ==<br />
* /usr/bin/dragon-prog Main program that controls the drone<br />
* /bin/watchdog.sh Checks if Dragon is still running and reboots dragon<br />
* BLDC_Test_Bench Controls the Brushless Motor Controllers for testing and playing sounds etc.<br />
* bcmwl Everything with wifi<br />
* diagnostic Outputs sensor diagnostic<br />
* mk3_camera_eeprom Reads the front camera EEPROM<br />
* config_mt9v117 Configure the bottom camera<br />
<br />
== Cross compiler ==<br />
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.<br />
<br />
If it doesn't work with your GCC/Linaro version, you can also try the Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from Mentor Graphics (previously codesourcery).<br />
This cross compiler is available here: [https://sourcery.mentor.com/GNUToolchain/release2187 Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux]. Please install this crosscompiler in the /usr/local/codesourcery/ directory of your computer, to make sure paparazzi is able to find the cross compiler.<br />
<br />
== Video ==<br />
Load the [http://docs.paparazziuav.org/latest/module__video_rtp_stream.html video_rtp_stream.xml] module. Receive the video stream with e.g. avplay:<br />
$ avplay -loglevel quiet -max_delay 50 -fflags nobuffer rtp://192.168.42.1:5000<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=19720Bebop2015-04-06T13:28:32Z<p>Fvantienen: /* Pinout */</p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
== Intro ==<br />
<br />
Originally the [http://www.parrot.com/usa/products/bebop-drone/ Bebop] from [http://www.parrot.com/ Parrot] is a Wifi controlled flying quadrotor, designed to be controlled with an Android or iOS device. <br />
Not any more: With a few simple clicks you can run Paparazzi on the Bebop and have full autonomous flight and much more!<br />
<br />
== Getting started ==<br />
<br />
# Make sure you have the latest release version of Paparazzi installed. <br />
# Power up your Bebop. <br />
# Make a Wifi connection with your PC and the Bebop <br />
# In the Paparazzi center choose "Bebop" in the airframe dropdown menu<br />
# Press "Upload"<br />
# Select the Bebop or ARdrone2 Flight in the session menu<br />
# Press execute<br />
<br />
Voila, you will get telemetry from the Bebop. Now it is up to you how and where to fly.<br />
<br />
== Features ==<br />
=== Connectivity ===<br />
* Wi-Fi antennas: MIMO dual-band with 2 double-set of dipole antennas for 2.4 and 5 GHz<br />
* Sending power: Up to 26 dBm<br />
* Signal range: N/A<br />
<br />
=== Structure ===<br />
* 4 Brushless Outrunner motors<br />
* Glass fiber reinforced (15%) ABS structure<br />
* 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<br />
* Three-blade auto-block propellers in Polycarbonate with fast disassembly system<br />
* Anti-vibration bumpers<br />
<br />
=== Camera ===<br />
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor<br />
* Video stabilization: Digital on 3-axes<br />
* Video definition: 1920x1080p (30fps)<br />
* Photo definition: 3800x3188 pixels<br />
* Video encoding: H264<br />
* Photo file format: RAW, DNG<br />
* Internal memory: Flash 8 GB<br />
* Extended memory: Micro USB<br />
<br />
=== Battery ===<br />
* Lithium Polymer 1200 mAh<br />
* Flight time: Around 12 minutes<br />
<br />
=== Processor ===<br />
* Motherboard:<br />
** Parrot P7 dual-core CPU Cortex 9<br />
** Quad core GPU<br />
** 8Gb flash memory<br />
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator<br />
<br />
=== Sensors ===<br />
* 3-axes magnetometer (AKM 8963)<br />
* 3-axes gyroscope (MPU 6050)<br />
* 3-axes accelerometer (MPU 6050)<br />
* 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)<br />
* Ultrasound sensor (Analyzes the flight altitude up to 8 meters)<br />
* Pressure sensor (MS 5607)<br />
<br />
=== Geo-location ===<br />
* GNSS (GPS + GLONASS + Galileo, [http://www.furuno.com/en/products/gnss-module/GN-87 Furuno GN-87F])<br />
<br />
=== Dimensions ===<br />
* 28x32x3.6cm without the hull<br />
* 33x38x3.6cm with the hull<br />
<br />
=== Weight ===<br />
* 380g without the hull<br />
* 400g with the hull<br />
<br />
=== OS/Software ===<br />
* Operating system: Linux (kernel 3.4.11 #3 SMP PREEMPT)<br />
* glibc: (Sourcery CodeBench Lite 2012.03-57) 2.15<br />
* libstdc++: GLIBCXX_3.4 - GLIBCXX_3.4.16<br />
* Developing: Open-source SDK (for interfacing with it from an offboard computer)<br />
<br />
== Pinout ==<br />
=== GPIO ===<br />
* 6 Fans Enable<br />
* 9 WiFi Reset<br />
* 73 P7MU IRQ<br />
* 81 GPS Power Enable<br />
* 85 Fan Enable<br />
* 89 VCAM FSYNC gyro<br />
* 90 HCAM FSYNC gyro<br />
* 91 DRDY MPU6050<br />
* 124 Magneto interrupt<br />
* 128 (video) Slew rate??<br />
* 129 VCAM enable<br />
* 130 (video) Slew rate??<br />
* 132 HCAM enable<br />
* 199 BLDC micro-controller reset (forces it into bootloader) ON/OFF<br />
* 200 US Pulse level<br />
* 201 On/Off button (default monitor to files running: /bin/onoffbutton)<br />
* 202 USB Host mode pin 3V3 (HOST_MODE_3V3)<br />
* 203 USB Host mode on<br />
* 204 USB0 OC<br />
<br />
=== PWM ===<br />
* 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)<br />
* 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<br />
* 9 Vertical camera clock (23ns period = 43MHz)<br />
* 11 Horizontal camera lock (77ns period = 13MHz)<br />
<br />
=== I2C ===<br />
* I2C-0<br />
** FPGA<br />
** P7MU <br />
** EEPROM Unknown EEPROM for Front camera calibration (addr 0x55)<br />
** MT9f002 CMOS Digital Image Sensor (1/2.3 inch 14Mp, front camera) [https://www.aptina.com/products/dsc%1Cdvc/mt9f002/ MT9f002] (addr 0x10)<br />
** MT9v117 CMOS Digital Image Sensor (1/6 inch VGA, bottom camera) [http://www.aptina.com/assets/downloadDocument.do?id=553 MT9v117] (addr 0x5d)<br />
* I2C-1<br />
** Cypress Motor Controller (Parrot BLDC) [[Bebop/BLDC]] (addr 0x08)<br />
** AKM8963 Magnetometer [http://www.akm.com/akm/en/file/datasheet/AK8963.pdf AK8963]<br />
** MS5607 Barometer [http://meas-spec.com/product/pressure/MS5607-02BA03.aspx MS5607]<br />
* I2C-2<br />
** MPU6050 Gyro + Accel [http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf MPU6050]<br />
<br />
=== SPI ===<br />
* spidev1.0 Sonar (Only data pin connected for generating pulses)<br />
<br />
=== UART ===<br />
* ttyPA1 GPS (Furuno GN-87F)<br />
<br />
=== Other ===<br />
* /dev/hx280 Hantro (On2) Video encoder. Hantro chip video encoder used for the HCAM.<br />
<br />
== Actuators ==<br />
The Bebop has 4 Brushless motors, which are controlled by the cypress chip on I2C-1. This Cypress chip contains costum made firmware(BLDC) from Parrot, which can be automatically updated using a bootloader.<br />
The firmware from Parrot contains a very nice closed loop RPM control, which is automatically tuned inside the factory.<br />
<br />
For more information about how to communicate with the BLDC look at [[Bebop/BLDC]]. Or take a look at the "bebop" actuator inside the <code>airborne/boards/bebop/</code> folder.<br />
<br />
== Programs ==<br />
* /usr/bin/dragon-prog Main program that controls the drone<br />
* /bin/watchdog.sh Checks if Dragon is still running and reboots dragon<br />
* BLDC_Test_Bench Controls the Brushless Motor Controllers for testing and playing sounds etc.<br />
* bcmwl Everything with wifi<br />
* diagnostic Outputs sensor diagnostic<br />
* mk3_camera_eeprom Reads the front camera EEPROM<br />
* config_mt9v117 Configure the bottom camera<br />
<br />
== Cross compiler ==<br />
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.<br />
<br />
If it doesn't work with your GCC/Linaro version, you can also try the Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from Mentor Graphics (previously codesourcery).<br />
This cross compiler is available here: [https://sourcery.mentor.com/GNUToolchain/release2187 Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux]. Please install this crosscompiler in the /usr/local/codesourcery/ directory of your computer, to make sure paparazzi is able to find the cross compiler.<br />
<br />
== Video ==<br />
Load the [http://docs.paparazziuav.org/latest/module__video_rtp_stream.html video_rtp_stream.xml] module. Receive the video stream with e.g. avplay:<br />
$ avplay -loglevel quiet -max_delay 50 -fflags nobuffer rtp://192.168.42.1:5000<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=19719Bebop2015-04-06T13:20:37Z<p>Fvantienen: /* GPIO */</p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
== Intro ==<br />
<br />
Originally the [http://www.parrot.com/usa/products/bebop-drone/ Bebop] from [http://www.parrot.com/ Parrot] is a Wifi controlled flying quadrotor, designed to be controlled with an Android or iOS device. <br />
Not any more: With a few simple clicks you can run Paparazzi on the Bebop and have full autonomous flight and much more!<br />
<br />
== Getting started ==<br />
<br />
# Make sure you have the latest release version of Paparazzi installed. <br />
# Power up your Bebop. <br />
# Make a Wifi connection with your PC and the Bebop <br />
# In the Paparazzi center choose "Bebop" in the airframe dropdown menu<br />
# Press "Upload"<br />
# Select the Bebop or ARdrone2 Flight in the session menu<br />
# Press execute<br />
<br />
Voila, you will get telemetry from the Bebop. Now it is up to you how and where to fly.<br />
<br />
== Features ==<br />
=== Connectivity ===<br />
* Wi-Fi antennas: MIMO dual-band with 2 double-set of dipole antennas for 2.4 and 5 GHz<br />
* Sending power: Up to 26 dBm<br />
* Signal range: N/A<br />
<br />
=== Structure ===<br />
* 4 Brushless Outrunner motors<br />
* Glass fiber reinforced (15%) ABS structure<br />
* 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<br />
* Three-blade auto-block propellers in Polycarbonate with fast disassembly system<br />
* Anti-vibration bumpers<br />
<br />
=== Camera ===<br />
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor<br />
* Video stabilization: Digital on 3-axes<br />
* Video definition: 1920x1080p (30fps)<br />
* Photo definition: 3800x3188 pixels<br />
* Video encoding: H264<br />
* Photo file format: RAW, DNG<br />
* Internal memory: Flash 8 GB<br />
* Extended memory: Micro USB<br />
<br />
=== Battery ===<br />
* Lithium Polymer 1200 mAh<br />
* Flight time: Around 12 minutes<br />
<br />
=== Processor ===<br />
* Motherboard:<br />
** Parrot P7 dual-core CPU Cortex 9<br />
** Quad core GPU<br />
** 8Gb flash memory<br />
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator<br />
<br />
=== Sensors ===<br />
* 3-axes magnetometer (AKM 8963)<br />
* 3-axes gyroscope (MPU 6050)<br />
* 3-axes accelerometer (MPU 6050)<br />
* 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)<br />
* Ultrasound sensor (Analyzes the flight altitude up to 8 meters)<br />
* Pressure sensor (MS 5607)<br />
<br />
=== Geo-location ===<br />
* GNSS (GPS + GLONASS + Galileo, [http://www.furuno.com/en/products/gnss-module/GN-87 Furuno GN-87F])<br />
<br />
=== Dimensions ===<br />
* 28x32x3.6cm without the hull<br />
* 33x38x3.6cm with the hull<br />
<br />
=== Weight ===<br />
* 380g without the hull<br />
* 400g with the hull<br />
<br />
=== OS/Software ===<br />
* Operating system: Linux (kernel 3.4.11 #3 SMP PREEMPT)<br />
* glibc: (Sourcery CodeBench Lite 2012.03-57) 2.15<br />
* libstdc++: GLIBCXX_3.4 - GLIBCXX_3.4.16<br />
* Developing: Open-source SDK (for interfacing with it from an offboard computer)<br />
<br />
== Pinout ==<br />
=== GPIO ===<br />
* 6 Fans Enable<br />
* 9 WiFi Reset<br />
* 73 P7MU IRQ<br />
* 81 GPS Power Enable<br />
* 85 Fan Enable<br />
* 89 VCAM FSYNC gyro<br />
* 90 HCAM FSYNC gyro<br />
* 91 DRDY MPU6050<br />
* 124 Magneto interrupt<br />
* 128 (video) Slew rate??<br />
* 129 VCAM enable<br />
* 130 (video) Slew rate??<br />
* 132 HCAM enable<br />
* 199 BLDC micro-controller reset (forces it into bootloader) ON/OFF<br />
* 200 US Pulse level<br />
* 201 On/Off button (default monitor to files running: /bin/onoffbutton)<br />
* 202 USB Host mode pin 3V3 (HOST_MODE_3V3)<br />
* 203 USB Host mode on<br />
* 204 USB0 OC<br />
<br />
=== PWM ===<br />
* 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)<br />
* 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<br />
* 9 Vertical camera clock (23ns period = 43MHz)<br />
* 11 Horizontal camera lock (77ns period = 13MHz)<br />
<br />
=== I2C ===<br />
* I2C-0<br />
** FPGA<br />
** P7MU <br />
** EEPROM Unknown EEPROM for Front camera calibration (addr 0x55)<br />
** MT9f002 CMOS Digital Image Sensor (1/2.3 inch 14Mp, front camera) [https://www.aptina.com/products/dsc%1Cdvc/mt9f002/ MT9f002] (addr 0x10)<br />
** MT9v117 CMOS Digital Image Sensor (1/6 inch VGA, bottom camera) [http://www.aptina.com/assets/downloadDocument.do?id=553 MT9v117] (addr 0x5d)<br />
* I2C-1<br />
** Cypress Motor Controller (Parrot BLDC) [[Bebop/BLDC]] (addr 0x08)<br />
** AKM8963 Magnetometer [http://www.akm.com/akm/en/file/datasheet/AK8963.pdf AK8963]<br />
** MS5607 Barometer [http://meas-spec.com/product/pressure/MS5607-02BA03.aspx MS5607]<br />
* I2C-2<br />
** MPU6050 Gyro + Accel [http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf MPU6050]<br />
<br />
=== UART ===<br />
* ttyPA1 GPS (Furuno GN-87F)<br />
<br />
== Actuators ==<br />
The Bebop has 4 Brushless motors, which are controlled by the cypress chip on I2C-1. This Cypress chip contains costum made firmware(BLDC) from Parrot, which can be automatically updated using a bootloader.<br />
The firmware from Parrot contains a very nice closed loop RPM control, which is automatically tuned inside the factory.<br />
<br />
For more information about how to communicate with the BLDC look at [[Bebop/BLDC]]. Or take a look at the "bebop" actuator inside the <code>airborne/boards/bebop/</code> folder.<br />
<br />
== Programs ==<br />
* /usr/bin/dragon-prog Main program that controls the drone<br />
* /bin/watchdog.sh Checks if Dragon is still running and reboots dragon<br />
* BLDC_Test_Bench Controls the Brushless Motor Controllers for testing and playing sounds etc.<br />
* bcmwl Everything with wifi<br />
* diagnostic Outputs sensor diagnostic<br />
* mk3_camera_eeprom Reads the front camera EEPROM<br />
* config_mt9v117 Configure the bottom camera<br />
<br />
== Cross compiler ==<br />
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.<br />
<br />
If it doesn't work with your GCC/Linaro version, you can also try the Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from Mentor Graphics (previously codesourcery).<br />
This cross compiler is available here: [https://sourcery.mentor.com/GNUToolchain/release2187 Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux]. Please install this crosscompiler in the /usr/local/codesourcery/ directory of your computer, to make sure paparazzi is able to find the cross compiler.<br />
<br />
== Video ==<br />
Load the [http://docs.paparazziuav.org/latest/module__video_rtp_stream.html video_rtp_stream.xml] module. Receive the video stream with e.g. avplay:<br />
$ avplay -loglevel quiet -max_delay 50 -fflags nobuffer rtp://192.168.42.1:5000<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=19460Bebop2015-02-05T09:30:32Z<p>Fvantienen: /* Programs */</p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
The [http://www.parrot.com/usa/products/bebop-drone/ Bebop] from [http://www.parrot.com/ Parrot] is an Wifi controlled flying quadrotor and is designed to be controlled with Android and iOS devices.<br />
<br />
== Features ==<br />
=== Connectivity ===<br />
* Wi-Fi antennas: MIMO dual-band with 2 double-set of ceramic antennas for 2.4 and 5 GHz<br />
* Sending power: Up to 26 dBm<br />
* Signal range: N/A<br />
<br />
=== Structure ===<br />
* 4 Brushless Outrunner motors<br />
* Glass fiber reinforced (15%) ABS structure<br />
* 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<br />
* Three-blade auto-block propellers in Polycarbonate with fast disassembly system<br />
* Anti-vibration bumpers<br />
<br />
=== Camera ===<br />
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor<br />
* Video stabilization: Digital on 3-axes<br />
* Video definition: 1920x1080p (30fps)<br />
* Photo definition: 3800x3188 pixels<br />
* Video encoding: H264<br />
* Photo file format: RAW, DNG<br />
* Internal memory: Flash 8 GB<br />
* Extended memory: Micro USB<br />
<br />
=== Battery ===<br />
* Lithium Polymer 1200 mAh<br />
* Flight time: Around 12 minutes<br />
<br />
=== Processor ===<br />
* Motherboard:<br />
** Parrot P7 dual-core CPU Cortex 9<br />
** Quad core GPU<br />
** 8Gb flash memory<br />
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator<br />
* Operating system: Linux<br />
* Developping: Open-source SDK<br />
<br />
=== Sensors ===<br />
* 3-axes magnetometer (AKM 8963)<br />
* 3-axes gyroscope (MPU 6050)<br />
* 3-axes accelerometer (MPU 6050)<br />
* 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)<br />
* Ultrasound sensor (Analyzes the flight altitude up to 8 meters)<br />
* Pressure sensor (MS 5607)<br />
<br />
=== Geo-location ===<br />
* GNSS (GPS + GLONASS + Galileo, Furuno GN-87F)<br />
<br />
=== Dimensions ===<br />
* 28x32x3.6cm without the hull<br />
* 33x38x3.6cm with the hull<br />
<br />
=== Weight ===<br />
* 380g without the hull<br />
* 400g with the hull<br />
<br />
== Pinout ==<br />
=== GPIO ===<br />
* 73 P7MU IRQ<br />
* 81 GPS Power Enable<br />
* 85 Fan enable<br />
* 90 Vsync horizontal camera<br />
* 91 DRDY MPU6050<br />
* 201 On/Off button (default monitor to files running: /bin/onoffbutton)<br />
* 202 HOST_MODE_3V3<br />
* 128 (video) Slew rate??<br />
* 129 Vertical camera enable<br />
* 130 (video) Slew rate??<br />
* 132 Horizontal camera enable<br />
* 199 BLDC micro-controller reset (forces it into bootloader) ON/OFF<br />
* 200 US Pulse level<br />
* 202 USB Host mode pin<br />
<br />
=== PWM ===<br />
* 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)<br />
* 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<br />
* 9 Vertical camera clock (23ns period = 43MHz)<br />
* 11 Horizontal camera lock (77ns period = 13MHz)<br />
<br />
=== I2C ===<br />
* I2C-0<br />
** FPGA<br />
** P7MU <br />
** EEPROM Unknown EEPROM for Front camera calibration (addr 0x55)<br />
** MT9f002 CMOS Digital Image Sensor (1/2.3 inch 14Mp, front camera) [https://www.aptina.com/products/dsc%1Cdvc/mt9f002/ MT9f002]<br />
** MT9v117 CMOS Digital Image Sensor (1/6 inch VGA, bottom camera) [http://www.aptina.com/assets/downloadDocument.do?id=553 MT9v117]<br />
* I2C-1<br />
** Cypress Motor Controller (Parrot BLDC) [[Bebop/BLDC]]<br />
** AKM8963 Magnetometer [http://www.akm.com/akm/en/file/datasheet/AK8963.pdf AK8963]<br />
** MS5607 Barometer [http://meas-spec.com/product/pressure/MS5607-02BA03.aspx MS5607]<br />
* I2C-2<br />
** MPU6050 Gyro + Accel [http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf MPU6050]<br />
<br />
=== UART ===<br />
* ttyPA1 GPS (Furuno GN-87F)<br />
<br />
== Actuators ==<br />
The Bebop has 4 Brushless motors, which are controlled by the cypress chip on I2C-1. This Cypress chip contains costum made firmware(BLDC) from Parrot, which can be automatically updated using a bootloader.<br />
The firmware from Parrot contains a very nice closed loop RPM control, which is automatically tuned inside the factory.<br />
<br />
For more information about how to communicate with the BLDC look at [[Bebop/BLDC]]. Or take a look at the "bebop" actuator inside the <code>airborne/boards/bebop/</code> folder.<br />
<br />
== Programs ==<br />
* /usr/bin/dragon-prog Main program that controls the drone<br />
* /bin/watchdog.sh Checks if Dragon is still running and reboots dragon<br />
* BLDC_Test_Bench Controls the Brushless Motor Controllers for testing and playing sounds etc.<br />
* bcmwl Everything with wifi<br />
* diagnostic Outputs sensor diagnostic<br />
* mk3_camera_eeprom Reads the front camera EEPROM<br />
* config_mt9v117 Configure the bottom camera<br />
<br />
== Cross compiler ==<br />
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.<br />
<br />
If it doesn't work with your GCC/Linaro version, you can also try the Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from Mentor Graphics (previously codesourcery).<br />
This cross compiler is available here: [https://sourcery.mentor.com/GNUToolchain/release2187 Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux]. Please install this crosscompiler in the /usr/local/codesourcery/ directory of your computer, to make sure paparazzi is able to find the cross compiler.<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=19459Bebop2015-02-05T09:27:55Z<p>Fvantienen: /* Programs */</p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
The [http://www.parrot.com/usa/products/bebop-drone/ Bebop] from [http://www.parrot.com/ Parrot] is an Wifi controlled flying quadrotor and is designed to be controlled with Android and iOS devices.<br />
<br />
== Features ==<br />
=== Connectivity ===<br />
* Wi-Fi antennas: MIMO dual-band with 2 double-set of ceramic antennas for 2.4 and 5 GHz<br />
* Sending power: Up to 26 dBm<br />
* Signal range: N/A<br />
<br />
=== Structure ===<br />
* 4 Brushless Outrunner motors<br />
* Glass fiber reinforced (15%) ABS structure<br />
* 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<br />
* Three-blade auto-block propellers in Polycarbonate with fast disassembly system<br />
* Anti-vibration bumpers<br />
<br />
=== Camera ===<br />
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor<br />
* Video stabilization: Digital on 3-axes<br />
* Video definition: 1920x1080p (30fps)<br />
* Photo definition: 3800x3188 pixels<br />
* Video encoding: H264<br />
* Photo file format: RAW, DNG<br />
* Internal memory: Flash 8 GB<br />
* Extended memory: Micro USB<br />
<br />
=== Battery ===<br />
* Lithium Polymer 1200 mAh<br />
* Flight time: Around 12 minutes<br />
<br />
=== Processor ===<br />
* Motherboard:<br />
** Parrot P7 dual-core CPU Cortex 9<br />
** Quad core GPU<br />
** 8Gb flash memory<br />
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator<br />
* Operating system: Linux<br />
* Developping: Open-source SDK<br />
<br />
=== Sensors ===<br />
* 3-axes magnetometer (AKM 8963)<br />
* 3-axes gyroscope (MPU 6050)<br />
* 3-axes accelerometer (MPU 6050)<br />
* 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)<br />
* Ultrasound sensor (Analyzes the flight altitude up to 8 meters)<br />
* Pressure sensor (MS 5607)<br />
<br />
=== Geo-location ===<br />
* GNSS (GPS + GLONASS + Galileo, Furuno GN-87F)<br />
<br />
=== Dimensions ===<br />
* 28x32x3.6cm without the hull<br />
* 33x38x3.6cm with the hull<br />
<br />
=== Weight ===<br />
* 380g without the hull<br />
* 400g with the hull<br />
<br />
== Pinout ==<br />
=== GPIO ===<br />
* 73 P7MU IRQ<br />
* 81 GPS Power Enable<br />
* 85 Fan enable<br />
* 90 Vsync horizontal camera<br />
* 91 DRDY MPU6050<br />
* 201 On/Off button (default monitor to files running: /bin/onoffbutton)<br />
* 202 HOST_MODE_3V3<br />
* 128 (video) Slew rate??<br />
* 129 Vertical camera enable<br />
* 130 (video) Slew rate??<br />
* 132 Horizontal camera enable<br />
* 199 BLDC micro-controller reset (forces it into bootloader) ON/OFF<br />
* 200 US Pulse level<br />
* 202 USB Host mode pin<br />
<br />
=== PWM ===<br />
* 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)<br />
* 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<br />
* 9 Vertical camera clock (23ns period = 43MHz)<br />
* 11 Horizontal camera lock (77ns period = 13MHz)<br />
<br />
=== I2C ===<br />
* I2C-0<br />
** FPGA<br />
** P7MU <br />
** EEPROM Unknown EEPROM for Front camera calibration (addr 0x55)<br />
** MT9f002 CMOS Digital Image Sensor (1/2.3 inch 14Mp, front camera) [https://www.aptina.com/products/dsc%1Cdvc/mt9f002/ MT9f002]<br />
** MT9v117 CMOS Digital Image Sensor (1/6 inch VGA, bottom camera) [http://www.aptina.com/assets/downloadDocument.do?id=553 MT9v117]<br />
* I2C-1<br />
** Cypress Motor Controller (Parrot BLDC) [[Bebop/BLDC]]<br />
** AKM8963 Magnetometer [http://www.akm.com/akm/en/file/datasheet/AK8963.pdf AK8963]<br />
** MS5607 Barometer [http://meas-spec.com/product/pressure/MS5607-02BA03.aspx MS5607]<br />
* I2C-2<br />
** MPU6050 Gyro + Accel [http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf MPU6050]<br />
<br />
=== UART ===<br />
* ttyPA1 GPS (Furuno GN-87F)<br />
<br />
== Actuators ==<br />
The Bebop has 4 Brushless motors, which are controlled by the cypress chip on I2C-1. This Cypress chip contains costum made firmware(BLDC) from Parrot, which can be automatically updated using a bootloader.<br />
The firmware from Parrot contains a very nice closed loop RPM control, which is automatically tuned inside the factory.<br />
<br />
For more information about how to communicate with the BLDC look at [[Bebop/BLDC]]. Or take a look at the "bebop" actuator inside the <code>airborne/boards/bebop/</code> folder.<br />
<br />
== Programs ==<br />
* /usr/bin/dragon-prog Main program that controls the drone<br />
* /bin/watchdog.sh Checks if Dragon is still running and reboots dragon<br />
* BLDC_Test_Bench Controls the Brushless Motor Controllers for testing and playing sounds etc.<br />
* bcmwl Everything with wifi<br />
* diagnostic Outputs sensor diagnostic<br />
* mk3_camera_eeprom Reads the front camera EEPROM<br />
<br />
== Cross compiler ==<br />
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.<br />
<br />
If it doesn't work with your GCC/Linaro version, you can also try the Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from Mentor Graphics (previously codesourcery).<br />
This cross compiler is available here: [https://sourcery.mentor.com/GNUToolchain/release2187 Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux]. Please install this crosscompiler in the /usr/local/codesourcery/ directory of your computer, to make sure paparazzi is able to find the cross compiler.<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=19458Bebop2015-02-05T09:26:38Z<p>Fvantienen: /* GPIO */</p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
The [http://www.parrot.com/usa/products/bebop-drone/ Bebop] from [http://www.parrot.com/ Parrot] is an Wifi controlled flying quadrotor and is designed to be controlled with Android and iOS devices.<br />
<br />
== Features ==<br />
=== Connectivity ===<br />
* Wi-Fi antennas: MIMO dual-band with 2 double-set of ceramic antennas for 2.4 and 5 GHz<br />
* Sending power: Up to 26 dBm<br />
* Signal range: N/A<br />
<br />
=== Structure ===<br />
* 4 Brushless Outrunner motors<br />
* Glass fiber reinforced (15%) ABS structure<br />
* 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<br />
* Three-blade auto-block propellers in Polycarbonate with fast disassembly system<br />
* Anti-vibration bumpers<br />
<br />
=== Camera ===<br />
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor<br />
* Video stabilization: Digital on 3-axes<br />
* Video definition: 1920x1080p (30fps)<br />
* Photo definition: 3800x3188 pixels<br />
* Video encoding: H264<br />
* Photo file format: RAW, DNG<br />
* Internal memory: Flash 8 GB<br />
* Extended memory: Micro USB<br />
<br />
=== Battery ===<br />
* Lithium Polymer 1200 mAh<br />
* Flight time: Around 12 minutes<br />
<br />
=== Processor ===<br />
* Motherboard:<br />
** Parrot P7 dual-core CPU Cortex 9<br />
** Quad core GPU<br />
** 8Gb flash memory<br />
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator<br />
* Operating system: Linux<br />
* Developping: Open-source SDK<br />
<br />
=== Sensors ===<br />
* 3-axes magnetometer (AKM 8963)<br />
* 3-axes gyroscope (MPU 6050)<br />
* 3-axes accelerometer (MPU 6050)<br />
* 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)<br />
* Ultrasound sensor (Analyzes the flight altitude up to 8 meters)<br />
* Pressure sensor (MS 5607)<br />
<br />
=== Geo-location ===<br />
* GNSS (GPS + GLONASS + Galileo, Furuno GN-87F)<br />
<br />
=== Dimensions ===<br />
* 28x32x3.6cm without the hull<br />
* 33x38x3.6cm with the hull<br />
<br />
=== Weight ===<br />
* 380g without the hull<br />
* 400g with the hull<br />
<br />
== Pinout ==<br />
=== GPIO ===<br />
* 73 P7MU IRQ<br />
* 81 GPS Power Enable<br />
* 85 Fan enable<br />
* 90 Vsync horizontal camera<br />
* 91 DRDY MPU6050<br />
* 201 On/Off button (default monitor to files running: /bin/onoffbutton)<br />
* 202 HOST_MODE_3V3<br />
* 128 (video) Slew rate??<br />
* 129 Vertical camera enable<br />
* 130 (video) Slew rate??<br />
* 132 Horizontal camera enable<br />
* 199 BLDC micro-controller reset (forces it into bootloader) ON/OFF<br />
* 200 US Pulse level<br />
* 202 USB Host mode pin<br />
<br />
=== PWM ===<br />
* 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)<br />
* 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<br />
* 9 Vertical camera clock (23ns period = 43MHz)<br />
* 11 Horizontal camera lock (77ns period = 13MHz)<br />
<br />
=== I2C ===<br />
* I2C-0<br />
** FPGA<br />
** P7MU <br />
** EEPROM Unknown EEPROM for Front camera calibration (addr 0x55)<br />
** MT9f002 CMOS Digital Image Sensor (1/2.3 inch 14Mp, front camera) [https://www.aptina.com/products/dsc%1Cdvc/mt9f002/ MT9f002]<br />
** MT9v117 CMOS Digital Image Sensor (1/6 inch VGA, bottom camera) [http://www.aptina.com/assets/downloadDocument.do?id=553 MT9v117]<br />
* I2C-1<br />
** Cypress Motor Controller (Parrot BLDC) [[Bebop/BLDC]]<br />
** AKM8963 Magnetometer [http://www.akm.com/akm/en/file/datasheet/AK8963.pdf AK8963]<br />
** MS5607 Barometer [http://meas-spec.com/product/pressure/MS5607-02BA03.aspx MS5607]<br />
* I2C-2<br />
** MPU6050 Gyro + Accel [http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf MPU6050]<br />
<br />
=== UART ===<br />
* ttyPA1 GPS (Furuno GN-87F)<br />
<br />
== Actuators ==<br />
The Bebop has 4 Brushless motors, which are controlled by the cypress chip on I2C-1. This Cypress chip contains costum made firmware(BLDC) from Parrot, which can be automatically updated using a bootloader.<br />
The firmware from Parrot contains a very nice closed loop RPM control, which is automatically tuned inside the factory.<br />
<br />
For more information about how to communicate with the BLDC look at [[Bebop/BLDC]]. Or take a look at the "bebop" actuator inside the <code>airborne/boards/bebop/</code> folder.<br />
<br />
== Programs ==<br />
* /usr/bin/dragon-prog Main program that controls the drone<br />
* /bin/watchdog.sh Checks if Dragon is still running and reboots dragon<br />
* BLDC_Test_Bench Controls the Brushless Motor Controllers for testing and playing sounds etc.<br />
* bcmwl Everything with wifi<br />
* diagnostic Outputs sensor diagnostic<br />
<br />
== Cross compiler ==<br />
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.<br />
<br />
If it doesn't work with your GCC/Linaro version, you can also try the Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from Mentor Graphics (previously codesourcery).<br />
This cross compiler is available here: [https://sourcery.mentor.com/GNUToolchain/release2187 Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux]. Please install this crosscompiler in the /usr/local/codesourcery/ directory of your computer, to make sure paparazzi is able to find the cross compiler.<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=19457Bebop2015-02-05T09:24:14Z<p>Fvantienen: </p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
The [http://www.parrot.com/usa/products/bebop-drone/ Bebop] from [http://www.parrot.com/ Parrot] is an Wifi controlled flying quadrotor and is designed to be controlled with Android and iOS devices.<br />
<br />
== Features ==<br />
=== Connectivity ===<br />
* Wi-Fi antennas: MIMO dual-band with 2 double-set of ceramic antennas for 2.4 and 5 GHz<br />
* Sending power: Up to 26 dBm<br />
* Signal range: N/A<br />
<br />
=== Structure ===<br />
* 4 Brushless Outrunner motors<br />
* Glass fiber reinforced (15%) ABS structure<br />
* 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<br />
* Three-blade auto-block propellers in Polycarbonate with fast disassembly system<br />
* Anti-vibration bumpers<br />
<br />
=== Camera ===<br />
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor<br />
* Video stabilization: Digital on 3-axes<br />
* Video definition: 1920x1080p (30fps)<br />
* Photo definition: 3800x3188 pixels<br />
* Video encoding: H264<br />
* Photo file format: RAW, DNG<br />
* Internal memory: Flash 8 GB<br />
* Extended memory: Micro USB<br />
<br />
=== Battery ===<br />
* Lithium Polymer 1200 mAh<br />
* Flight time: Around 12 minutes<br />
<br />
=== Processor ===<br />
* Motherboard:<br />
** Parrot P7 dual-core CPU Cortex 9<br />
** Quad core GPU<br />
** 8Gb flash memory<br />
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator<br />
* Operating system: Linux<br />
* Developping: Open-source SDK<br />
<br />
=== Sensors ===<br />
* 3-axes magnetometer (AKM 8963)<br />
* 3-axes gyroscope (MPU 6050)<br />
* 3-axes accelerometer (MPU 6050)<br />
* 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)<br />
* Ultrasound sensor (Analyzes the flight altitude up to 8 meters)<br />
* Pressure sensor (MS 5607)<br />
<br />
=== Geo-location ===<br />
* GNSS (GPS + GLONASS + Galileo, Furuno GN-87F)<br />
<br />
=== Dimensions ===<br />
* 28x32x3.6cm without the hull<br />
* 33x38x3.6cm with the hull<br />
<br />
=== Weight ===<br />
* 380g without the hull<br />
* 400g with the hull<br />
<br />
== Pinout ==<br />
=== GPIO ===<br />
* 85 Fan enable<br />
* 90 Vsync horizontal camera<br />
* 91 DRDY MPU6050<br />
* 201 On/Off button (default monitor to files running: /bin/onoffbutton)<br />
* 202 HOST_MODE_3V3<br />
* 129 Vertical camera enable<br />
* 132 Horizontal camera enable<br />
* 199 BLDC micro-controller reset (forces it into bootloader) ON/OFF<br />
* 200 US Pulse level<br />
* 202 USB Host mode pin<br />
<br />
=== PWM ===<br />
* 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)<br />
* 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<br />
* 9 Vertical camera clock (23ns period = 43MHz)<br />
* 11 Horizontal camera lock (77ns period = 13MHz)<br />
<br />
=== I2C ===<br />
* I2C-0<br />
** FPGA<br />
** P7MU <br />
** EEPROM Unknown EEPROM for Front camera calibration (addr 0x55)<br />
** MT9f002 CMOS Digital Image Sensor (1/2.3 inch 14Mp, front camera) [https://www.aptina.com/products/dsc%1Cdvc/mt9f002/ MT9f002]<br />
** MT9v117 CMOS Digital Image Sensor (1/6 inch VGA, bottom camera) [http://www.aptina.com/assets/downloadDocument.do?id=553 MT9v117]<br />
* I2C-1<br />
** Cypress Motor Controller (Parrot BLDC) [[Bebop/BLDC]]<br />
** AKM8963 Magnetometer [http://www.akm.com/akm/en/file/datasheet/AK8963.pdf AK8963]<br />
** MS5607 Barometer [http://meas-spec.com/product/pressure/MS5607-02BA03.aspx MS5607]<br />
* I2C-2<br />
** MPU6050 Gyro + Accel [http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf MPU6050]<br />
<br />
=== UART ===<br />
* ttyPA1 GPS (Furuno GN-87F)<br />
<br />
== Actuators ==<br />
The Bebop has 4 Brushless motors, which are controlled by the cypress chip on I2C-1. This Cypress chip contains costum made firmware(BLDC) from Parrot, which can be automatically updated using a bootloader.<br />
The firmware from Parrot contains a very nice closed loop RPM control, which is automatically tuned inside the factory.<br />
<br />
For more information about how to communicate with the BLDC look at [[Bebop/BLDC]]. Or take a look at the "bebop" actuator inside the <code>airborne/boards/bebop/</code> folder.<br />
<br />
== Programs ==<br />
* /usr/bin/dragon-prog Main program that controls the drone<br />
* /bin/watchdog.sh Checks if Dragon is still running and reboots dragon<br />
* BLDC_Test_Bench Controls the Brushless Motor Controllers for testing and playing sounds etc.<br />
* bcmwl Everything with wifi<br />
* diagnostic Outputs sensor diagnostic<br />
<br />
== Cross compiler ==<br />
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.<br />
<br />
If it doesn't work with your GCC/Linaro version, you can also try the Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from Mentor Graphics (previously codesourcery).<br />
This cross compiler is available here: [https://sourcery.mentor.com/GNUToolchain/release2187 Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux]. Please install this crosscompiler in the /usr/local/codesourcery/ directory of your computer, to make sure paparazzi is able to find the cross compiler.<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=19153Bebop2014-11-17T08:38:06Z<p>Fvantienen: /* I2C */</p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
The [http://www.parrot.com/usa/products/bebop-drone/ Bebop] from [http://www.parrot.com/ Parrot] is an Wifi controlled flying quadrotor and is designed to be controlled with Android and iOS devices.<br />
<br />
== Features ==<br />
=== Connectivity ===<br />
* Wi-Fi antennas: MIMO dual-band with 2 double-set of ceramic antennas for 2.4 and 5 GHz<br />
* Sending power: Up to 26 dBm<br />
* Signal range: N/A<br />
<br />
=== Structure ===<br />
* 4 Brushless Outrunner motors<br />
* Glass fiber reinforced (15%) ABS structure<br />
* 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<br />
* Three-blade auto-block propellers in Polycarbonate with fast disassembly system<br />
* Anti-vibration bumpers<br />
<br />
=== Camera ===<br />
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor<br />
* Video stabilization: Digital on 3-axes<br />
* Video definition: 1920x1080p (30fps)<br />
* Photo definition: 3800x3188 pixels<br />
* Video encoding: H264<br />
* Photo file format: RAW, DNG<br />
* Internal memory: Flash 8 GB<br />
* Extended memory: Micro USB<br />
<br />
=== Battery ===<br />
* Lithium Polymer 1200 mAh<br />
* Flight time: Around 12 minutes<br />
<br />
=== Processor ===<br />
* Motherboard:<br />
** Parrot P7 dual-core CPU Cortex 9<br />
** Quad core GPU<br />
** 8Gb flash memory<br />
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator<br />
* Operating system: Linux<br />
* Developping: Open-source SDK<br />
<br />
=== Sensors ===<br />
* 3-axes magnetometer (AKM 8963)<br />
* 3-axes gyroscope (MPU 6050)<br />
* 3-axes accelerometer (MPU 6050)<br />
* 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)<br />
* Ultrasound sensor (Analyzes the flight altitude up to 8 meters)<br />
* Pressure sensor (MS 5607)<br />
<br />
=== Geo-location ===<br />
* GNSS (GPS + GLONASS + Galileo, Furuno GN-87F)<br />
<br />
=== Dimensions ===<br />
* 28x32x3.6cm without the hull<br />
* 33x38x3.6cm with the hull<br />
<br />
=== Weight ===<br />
* 380g without the hull<br />
* 400g with the hull<br />
<br />
== Pinout ==<br />
=== GPIO ===<br />
* 85 Fan enable<br />
* 90 Vsync horizontal camera<br />
* 91 DRDY MPU6050<br />
* 201 On/Off button (default monitor to files running: /bin/onoffbutton)<br />
* 202 HOST_MODE_3V3<br />
* 129 Vertical camera enable<br />
* 132 Horizontal camera enable<br />
* 199 BLDC micro-controller reset (forces it into bootloader) ON/OFF<br />
* 200 US Pulse level<br />
* 202 USB Host mode pin<br />
<br />
=== PWM ===<br />
* 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)<br />
* 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. esired frequency is slightly modified to synchronize camera and IMU<br />
* 9 Vertical camera clock (23ns period = 43MHz)<br />
* 11 Horizontal camera lock (77ns period = 13MHz)<br />
<br />
=== I2C ===<br />
* I2C-0<br />
** FPGA<br />
** P7MU <br />
** MT9f002 CMOS [https://www.aptina.com/products/dsc%1Cdvc/mt9f002/ MT9f002]<br />
** MT9v117 VGA System-On-A-Chip (SOC) CMOS Digital Image Sensor [http://www.aptina.com/assets/downloadDocument.do?id=553 MT9v117]<br />
* I2C-1<br />
** Cypress Motor Controller (Parrot BLDC) [[Bebop/BLDC]]<br />
** AKM8963 Magnetometer [http://www.akm.com/akm/en/file/datasheet/AK8963.pdf AK8963]<br />
** MS5607 Barometer [http://meas-spec.com/product/pressure/MS5607-02BA03.aspx MS5607]<br />
* I2C-2<br />
** MPU6050 Gyro + Accel [http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf MPU6050]<br />
<br />
=== UART ===<br />
* ttyPA1 GPS (Furuno GN-87F)<br />
<br />
== Actuators ==<br />
The Bebop has 4 Brushless motors, which are controlled by the cypress chip on I2C-1. This Cypress chip contains costum made firmware(BLDC) from Parrot, which can be automatically updated using a bootloader.<br />
The firmware from Parrot contains a very nice closed loop RPM control, which is automatically tuned inside the factory.<br />
<br />
For more information about how to communicate with the BLDC look at [[Bebop/BLDC]]. Or take a look at the "bebop" actuator inside the <code>airborne/boards/bebop/</code> folder.<br />
<br />
== Programs ==<br />
* /usr/bin/dragon-prog Main program that controls the drone<br />
* /bin/watchdog.sh Checks if Dragon is still running and reboots dragon<br />
* BLDC_Test_Bench Controls the Brushless Motor Controllers for testing and playing sounds etc.<br />
* bcmwl Everything with wifi<br />
* diagnostic Outputs sensor diagnostic<br />
<br />
== Cross compiler ==<br />
For the Bebop you can't use the GNU gcc-arm-linux-gnueabi, which was used for the ARDrone 2 in the past. So this means the cross compiler isn't included in the paparazzi-dev package.<br />
The cross compiler you need for the Bebop is the Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from Mentor Graphics (previously codesourcery).<br />
<br />
This cross compiler is available here: [https://sourcery.mentor.com/GNUToolchain/release2187 Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux]. Please install this crosscompiler in the /usr/local/codesourcery/ directory of your computer, to make sure paparazzi is able to find the cross compiler.<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=19152Bebop2014-11-16T22:23:14Z<p>Fvantienen: /* I2C */</p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
The [http://www.parrot.com/usa/products/bebop-drone/ Bebop] from [http://www.parrot.com/ Parrot] is an Wifi controlled flying quadrotor and is designed to be controlled with Android and iOS devices.<br />
<br />
== Features ==<br />
=== Connectivity ===<br />
* Wi-Fi antennas: MIMO dual-band with 2 double-set of ceramic antennas for 2.4 and 5 GHz<br />
* Sending power: Up to 26 dBm<br />
* Signal range: N/A<br />
<br />
=== Structure ===<br />
* 4 Brushless Outrunner motors<br />
* Glass fiber reinforced (15%) ABS structure<br />
* 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<br />
* Three-blade auto-block propellers in Polycarbonate with fast disassembly system<br />
* Anti-vibration bumpers<br />
<br />
=== Camera ===<br />
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor<br />
* Video stabilization: Digital on 3-axes<br />
* Video definition: 1920x1080p (30fps)<br />
* Photo definition: 3800x3188 pixels<br />
* Video encoding: H264<br />
* Photo file format: RAW, DNG<br />
* Internal memory: Flash 8 GB<br />
* Extended memory: Micro USB<br />
<br />
=== Battery ===<br />
* Lithium Polymer 1200 mAh<br />
* Flight time: Around 12 minutes<br />
<br />
=== Processor ===<br />
* Motherboard:<br />
** Parrot P7 dual-core CPU Cortex 9<br />
** Quad core GPU<br />
** 8Gb flash memory<br />
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator<br />
* Operating system: Linux<br />
* Developping: Open-source SDK<br />
<br />
=== Sensors ===<br />
* 3-axes magnetometer (AKM 8963)<br />
* 3-axes gyroscope (MPU 6050)<br />
* 3-axes accelerometer (MPU 6050)<br />
* 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)<br />
* Ultrasound sensor (Analyzes the flight altitude up to 8 meters)<br />
* Pressure sensor (MS 5607)<br />
<br />
=== Geo-location ===<br />
* GNSS (GPS + GLONASS + Galileo, Furuno GN-87F)<br />
<br />
=== Dimensions ===<br />
* 28x32x3.6cm without the hull<br />
* 33x38x3.6cm with the hull<br />
<br />
=== Weight ===<br />
* 380g without the hull<br />
* 400g with the hull<br />
<br />
== Pinout ==<br />
=== GPIO ===<br />
* 85 Fan enable<br />
* 90 Vsync horizontal camera<br />
* 91 DRDY MPU6050<br />
* 201 On/Off button (default monitor to files running: /bin/onoffbutton)<br />
* 202 HOST_MODE_3V3<br />
* 129 Vertical camera enable<br />
* 132 Horizontal camera enable<br />
* 199 BLDC micro-controller reset (forces it into bootloader) ON/OFF<br />
* 200 US Pulse level<br />
* 202 USB Host mode pin<br />
<br />
=== PWM ===<br />
* 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)<br />
* 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. esired frequency is slightly modified to synchronize camera and IMU<br />
* 9 Vertical camera clock (23ns period = 43MHz)<br />
* 11 Horizontal camera lock (77ns period = 13MHz)<br />
<br />
=== I2C ===<br />
* I2C-0<br />
** FPGA<br />
** P7MU Measurement Unit?? (Has ADC)<br />
** MT9f002 CMOS [https://www.aptina.com/products/dsc%1Cdvc/mt9f002/ MT9f002]<br />
** MT9v117 VGA System-On-A-Chip (SOC) CMOS Digital Image Sensor [http://www.aptina.com/assets/downloadDocument.do?id=553 MT9v117]<br />
* I2C-1<br />
** Cypress Motor Controller (Parrot BLDC)<br />
** AKM8963 Magnetometer [http://www.akm.com/akm/en/file/datasheet/AK8963.pdf AK8963]<br />
** MS5607 Barometer [http://meas-spec.com/product/pressure/MS5607-02BA03.aspx MS5607]<br />
* I2C-2<br />
** MPU6050 Gyro + Accel [http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf MPU6050]<br />
<br />
=== UART ===<br />
* ttyPA1 GPS (Furuno GN-87F)<br />
<br />
== Actuators ==<br />
The Bebop has 4 Brushless motors, which are controlled by the cypress chip on I2C-1. This Cypress chip contains costum made firmware(BLDC) from Parrot, which can be automatically updated using a bootloader.<br />
The firmware from Parrot contains a very nice closed loop RPM control, which is automatically tuned inside the factory.<br />
<br />
For more information about how to communicate with the BLDC look at [[Bebop/BLDC]]. Or take a look at the "bebop" actuator inside the <code>airborne/boards/bebop/</code> folder.<br />
<br />
== Programs ==<br />
* /usr/bin/dragon-prog Main program that controls the drone<br />
* /bin/watchdog.sh Checks if Dragon is still running and reboots dragon<br />
* BLDC_Test_Bench Controls the Brushless Motor Controllers for testing and playing sounds etc.<br />
* bcmwl Everything with wifi<br />
* diagnostic Outputs sensor diagnostic<br />
<br />
== Cross compiler ==<br />
For the Bebop you can't use the GNU gcc-arm-linux-gnueabi, which was used for the ARDrone 2 in the past. So this means the cross compiler isn't included in the paparazzi-dev package.<br />
The cross compiler you need for the Bebop is the Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from Mentor Graphics (previously codesourcery).<br />
<br />
This cross compiler is available here: [https://sourcery.mentor.com/GNUToolchain/release2187 Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux]. Please install this crosscompiler in the /usr/local/codesourcery/ directory of your computer, to make sure paparazzi is able to find the cross compiler.<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop/BLDC&diff=19151Bebop/BLDC2014-11-16T22:06:45Z<p>Fvantienen: /* Checksum */</p>
<hr />
<div>== General ==<br />
The BLDC of the Bebop is the Brushless Driver Controller that controls all 4 brushless motors from the Bebop. This BLDC contains a closed loop RPM controller, and also reads out the battery voltage.<br />
<br />
== Protocol ==<br />
* 0x02 SET_REF_SPEED<br />
* 0x20 GET_OBS_DATA<br />
* 0x40 START_PROP<br />
* 0x4D TOGGLE_GPIO<br />
* 0x60 STOP_PROP<br />
* 0x80 CLEAR_ERROR<br />
* 0x82 PLAY_SOUND<br />
* 0xA0 GET_INFO<br />
<br />
=== SET_REF_SPEED (0x02) ===<br />
Sets the RPM reference of the motors.<br />
<br />
Arguments: 9 bytes<br />
* 0-1: RPM reference Left Front motor (uint16)<br />
* 2-3: RPM reference Right Front motor (uint16)<br />
* 4-5: RPM reference Right Back motor (uint16)<br />
* 6-7: RPM reference Left Back motor (uint16)<br />
* 8: Reserved (0x00)<br />
<br />
=== GET_OBS_DATA (0x20) ===<br />
Gets the observed data from the motors and battery.<br />
<br />
Arguments: 0 bytes<br />
Receive: 8 bytes or 13 bytes<br />
* 0-1: RPM observed Left Front motor (uint16)*<br />
* 2-3: RPM observed Right Front motor (uint16)*<br />
* 4-5: RPM observed Right Back motor (uint16)*<br />
* 6-7: RPM observed Left Back motor (uint16)*<br />
* 8-9: Battery voltage in mV (uint16)<br />
* 10: Status (uint8)<br />
* 11: Errno (uint8)<br />
* 12: Temperature in degrees Celcius (uint8)<br />
<nowiki />* Bit 15 is reserved for detecting maximum RPM (depending on voltage and altitude)<br />
<br />
==== Status ====<br />
* 0: Init<br />
* 1: Idle<br />
* 2: Ramping<br />
* 3/4: Spinning<br />
* 5: Stopping<br />
* 6: Suicided<br />
<br />
==== Errno ====<br />
* 0: No error<br />
* 2: Motor stalled<br />
* 3: Propeller security<br />
* 4: Communication lost<br />
* 9: Battery voltage too low<br />
<br />
=== START_PROP (0x40) ===<br />
Starts the propellers. The propellers will not start when the current error is not cleared.<br />
<br />
Arguments: 0 bytes or 1 byte<br />
* 0: Motor bitmask (0000ABCD, A:Left Upper, B:Right Upper, C: Right Back, D: Left Back) where 1 is clockwise and 0 is counterclockwise<br />
Receive: 0 bytes<br />
<br />
=== TOGGLE_GPIO (0x4D) ===<br />
Toggle GPIO outputs. The reset will put the BLDC into bootloader mode.<br />
<br />
Arguments: 1 byte<br />
* 0: GPIO bitmask (bit 0: Reset, bit 1: Red LED, bit 2: Green LED)<br />
Receive: 0 bytes<br />
<br />
=== STOP_PROP (0x60) ===<br />
Stop the propellers when turning.<br />
<br />
Arguments: 0 bytes<br />
Receive: 0 bytes<br />
<br />
=== CLEAR_ERROR (0x80) ===<br />
Clear the current error.<br />
<br />
Arguments: 0 bytes<br />
Receive: 0 bytes<br />
<br />
=== PLAY_SOUND (0x82) ===<br />
Play a sound. A negative number will loop the sound.<br />
<br />
Arguments: 1 byte<br />
* 0: Sound number (0: None, 1: Short beep, 2: Boot beep, 3: Be-Bop-Ah-Lula, negative: repeat) (int8)<br />
Receive: 0 bytes<br />
<br />
=== GET_INFO (0xA0) ===<br />
Get information about the BLDC.<br />
<br />
Arguments: 0 bytes<br />
Receive: 4 bytes or 13 bytes<br />
* 0: Software version (major)<br />
* 1: Software version (minor)<br />
* 2: Software type<br />
* 3: Number of motors<br />
* 4-5: Number of flights (uint16)<br />
* 4-5: Time last flight (uint16)<br />
* 6-9: Full flight time (uint32)<br />
* 10: Last error code<br />
<br />
== Checksum ==<br />
For all the packets with arguments or where we receive bytes there is a checksum byte at the end. This checksum is a simple XOR algorithm including the first command byte.<br />
<source lang="c"><br />
// Credits to Christophe De Wagter for figuring out the Checksum<br />
checksum = CMD_BYTE;<br />
for(int i = 0; i < packet_size; i++)<br />
checksum = checksum ^ packet[i];<br />
</source></div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop/BLDC&diff=19150Bebop/BLDC2014-11-16T22:06:37Z<p>Fvantienen: /* Checksum */</p>
<hr />
<div>== General ==<br />
The BLDC of the Bebop is the Brushless Driver Controller that controls all 4 brushless motors from the Bebop. This BLDC contains a closed loop RPM controller, and also reads out the battery voltage.<br />
<br />
== Protocol ==<br />
* 0x02 SET_REF_SPEED<br />
* 0x20 GET_OBS_DATA<br />
* 0x40 START_PROP<br />
* 0x4D TOGGLE_GPIO<br />
* 0x60 STOP_PROP<br />
* 0x80 CLEAR_ERROR<br />
* 0x82 PLAY_SOUND<br />
* 0xA0 GET_INFO<br />
<br />
=== SET_REF_SPEED (0x02) ===<br />
Sets the RPM reference of the motors.<br />
<br />
Arguments: 9 bytes<br />
* 0-1: RPM reference Left Front motor (uint16)<br />
* 2-3: RPM reference Right Front motor (uint16)<br />
* 4-5: RPM reference Right Back motor (uint16)<br />
* 6-7: RPM reference Left Back motor (uint16)<br />
* 8: Reserved (0x00)<br />
<br />
=== GET_OBS_DATA (0x20) ===<br />
Gets the observed data from the motors and battery.<br />
<br />
Arguments: 0 bytes<br />
Receive: 8 bytes or 13 bytes<br />
* 0-1: RPM observed Left Front motor (uint16)*<br />
* 2-3: RPM observed Right Front motor (uint16)*<br />
* 4-5: RPM observed Right Back motor (uint16)*<br />
* 6-7: RPM observed Left Back motor (uint16)*<br />
* 8-9: Battery voltage in mV (uint16)<br />
* 10: Status (uint8)<br />
* 11: Errno (uint8)<br />
* 12: Temperature in degrees Celcius (uint8)<br />
<nowiki />* Bit 15 is reserved for detecting maximum RPM (depending on voltage and altitude)<br />
<br />
==== Status ====<br />
* 0: Init<br />
* 1: Idle<br />
* 2: Ramping<br />
* 3/4: Spinning<br />
* 5: Stopping<br />
* 6: Suicided<br />
<br />
==== Errno ====<br />
* 0: No error<br />
* 2: Motor stalled<br />
* 3: Propeller security<br />
* 4: Communication lost<br />
* 9: Battery voltage too low<br />
<br />
=== START_PROP (0x40) ===<br />
Starts the propellers. The propellers will not start when the current error is not cleared.<br />
<br />
Arguments: 0 bytes or 1 byte<br />
* 0: Motor bitmask (0000ABCD, A:Left Upper, B:Right Upper, C: Right Back, D: Left Back) where 1 is clockwise and 0 is counterclockwise<br />
Receive: 0 bytes<br />
<br />
=== TOGGLE_GPIO (0x4D) ===<br />
Toggle GPIO outputs. The reset will put the BLDC into bootloader mode.<br />
<br />
Arguments: 1 byte<br />
* 0: GPIO bitmask (bit 0: Reset, bit 1: Red LED, bit 2: Green LED)<br />
Receive: 0 bytes<br />
<br />
=== STOP_PROP (0x60) ===<br />
Stop the propellers when turning.<br />
<br />
Arguments: 0 bytes<br />
Receive: 0 bytes<br />
<br />
=== CLEAR_ERROR (0x80) ===<br />
Clear the current error.<br />
<br />
Arguments: 0 bytes<br />
Receive: 0 bytes<br />
<br />
=== PLAY_SOUND (0x82) ===<br />
Play a sound. A negative number will loop the sound.<br />
<br />
Arguments: 1 byte<br />
* 0: Sound number (0: None, 1: Short beep, 2: Boot beep, 3: Be-Bop-Ah-Lula, negative: repeat) (int8)<br />
Receive: 0 bytes<br />
<br />
=== GET_INFO (0xA0) ===<br />
Get information about the BLDC.<br />
<br />
Arguments: 0 bytes<br />
Receive: 4 bytes or 13 bytes<br />
* 0: Software version (major)<br />
* 1: Software version (minor)<br />
* 2: Software type<br />
* 3: Number of motors<br />
* 4-5: Number of flights (uint16)<br />
* 4-5: Time last flight (uint16)<br />
* 6-9: Full flight time (uint32)<br />
* 10: Last error code<br />
<br />
== Checksum ==<br />
For all the packets with arguments or where we receive bytes there is a checksum byte at the end. This checksum is a simple XOR algorithm including the first command byte.<br />
<source lang="c"><br />
// Credits to Christophe de Wagter for figuring out the Checksum<br />
checksum = CMD_BYTE;<br />
for(int i = 0; i < packet_size; i++)<br />
checksum = checksum ^ packet[i];<br />
</source></div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop/BLDC&diff=19149Bebop/BLDC2014-11-16T22:06:09Z<p>Fvantienen: /* Checksum */</p>
<hr />
<div>== General ==<br />
The BLDC of the Bebop is the Brushless Driver Controller that controls all 4 brushless motors from the Bebop. This BLDC contains a closed loop RPM controller, and also reads out the battery voltage.<br />
<br />
== Protocol ==<br />
* 0x02 SET_REF_SPEED<br />
* 0x20 GET_OBS_DATA<br />
* 0x40 START_PROP<br />
* 0x4D TOGGLE_GPIO<br />
* 0x60 STOP_PROP<br />
* 0x80 CLEAR_ERROR<br />
* 0x82 PLAY_SOUND<br />
* 0xA0 GET_INFO<br />
<br />
=== SET_REF_SPEED (0x02) ===<br />
Sets the RPM reference of the motors.<br />
<br />
Arguments: 9 bytes<br />
* 0-1: RPM reference Left Front motor (uint16)<br />
* 2-3: RPM reference Right Front motor (uint16)<br />
* 4-5: RPM reference Right Back motor (uint16)<br />
* 6-7: RPM reference Left Back motor (uint16)<br />
* 8: Reserved (0x00)<br />
<br />
=== GET_OBS_DATA (0x20) ===<br />
Gets the observed data from the motors and battery.<br />
<br />
Arguments: 0 bytes<br />
Receive: 8 bytes or 13 bytes<br />
* 0-1: RPM observed Left Front motor (uint16)*<br />
* 2-3: RPM observed Right Front motor (uint16)*<br />
* 4-5: RPM observed Right Back motor (uint16)*<br />
* 6-7: RPM observed Left Back motor (uint16)*<br />
* 8-9: Battery voltage in mV (uint16)<br />
* 10: Status (uint8)<br />
* 11: Errno (uint8)<br />
* 12: Temperature in degrees Celcius (uint8)<br />
<nowiki />* Bit 15 is reserved for detecting maximum RPM (depending on voltage and altitude)<br />
<br />
==== Status ====<br />
* 0: Init<br />
* 1: Idle<br />
* 2: Ramping<br />
* 3/4: Spinning<br />
* 5: Stopping<br />
* 6: Suicided<br />
<br />
==== Errno ====<br />
* 0: No error<br />
* 2: Motor stalled<br />
* 3: Propeller security<br />
* 4: Communication lost<br />
* 9: Battery voltage too low<br />
<br />
=== START_PROP (0x40) ===<br />
Starts the propellers. The propellers will not start when the current error is not cleared.<br />
<br />
Arguments: 0 bytes or 1 byte<br />
* 0: Motor bitmask (0000ABCD, A:Left Upper, B:Right Upper, C: Right Back, D: Left Back) where 1 is clockwise and 0 is counterclockwise<br />
Receive: 0 bytes<br />
<br />
=== TOGGLE_GPIO (0x4D) ===<br />
Toggle GPIO outputs. The reset will put the BLDC into bootloader mode.<br />
<br />
Arguments: 1 byte<br />
* 0: GPIO bitmask (bit 0: Reset, bit 1: Red LED, bit 2: Green LED)<br />
Receive: 0 bytes<br />
<br />
=== STOP_PROP (0x60) ===<br />
Stop the propellers when turning.<br />
<br />
Arguments: 0 bytes<br />
Receive: 0 bytes<br />
<br />
=== CLEAR_ERROR (0x80) ===<br />
Clear the current error.<br />
<br />
Arguments: 0 bytes<br />
Receive: 0 bytes<br />
<br />
=== PLAY_SOUND (0x82) ===<br />
Play a sound. A negative number will loop the sound.<br />
<br />
Arguments: 1 byte<br />
* 0: Sound number (0: None, 1: Short beep, 2: Boot beep, 3: Be-Bop-Ah-Lula, negative: repeat) (int8)<br />
Receive: 0 bytes<br />
<br />
=== GET_INFO (0xA0) ===<br />
Get information about the BLDC.<br />
<br />
Arguments: 0 bytes<br />
Receive: 4 bytes or 13 bytes<br />
* 0: Software version (major)<br />
* 1: Software version (minor)<br />
* 2: Software type<br />
* 3: Number of motors<br />
* 4-5: Number of flights (uint16)<br />
* 4-5: Time last flight (uint16)<br />
* 6-9: Full flight time (uint32)<br />
* 10: Last error code<br />
<br />
== Checksum ==<br />
For all the packets with arguments or where we receive bytes there is a checksum byte at the end. This checksum is a simple XOR algorithm including the first command byte.<br />
<source lang="c"><br />
checksum = CMD_BYTE;<br />
for(int i = 0; i < packet_size; i++)<br />
checksum = checksum ^ packet[i];<br />
</source><br />
Credits to Christophe de Wagter for figuring out the Checksum.</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop/BLDC&diff=19148Bebop/BLDC2014-11-16T22:05:50Z<p>Fvantienen: /* Checksum */</p>
<hr />
<div>== General ==<br />
The BLDC of the Bebop is the Brushless Driver Controller that controls all 4 brushless motors from the Bebop. This BLDC contains a closed loop RPM controller, and also reads out the battery voltage.<br />
<br />
== Protocol ==<br />
* 0x02 SET_REF_SPEED<br />
* 0x20 GET_OBS_DATA<br />
* 0x40 START_PROP<br />
* 0x4D TOGGLE_GPIO<br />
* 0x60 STOP_PROP<br />
* 0x80 CLEAR_ERROR<br />
* 0x82 PLAY_SOUND<br />
* 0xA0 GET_INFO<br />
<br />
=== SET_REF_SPEED (0x02) ===<br />
Sets the RPM reference of the motors.<br />
<br />
Arguments: 9 bytes<br />
* 0-1: RPM reference Left Front motor (uint16)<br />
* 2-3: RPM reference Right Front motor (uint16)<br />
* 4-5: RPM reference Right Back motor (uint16)<br />
* 6-7: RPM reference Left Back motor (uint16)<br />
* 8: Reserved (0x00)<br />
<br />
=== GET_OBS_DATA (0x20) ===<br />
Gets the observed data from the motors and battery.<br />
<br />
Arguments: 0 bytes<br />
Receive: 8 bytes or 13 bytes<br />
* 0-1: RPM observed Left Front motor (uint16)*<br />
* 2-3: RPM observed Right Front motor (uint16)*<br />
* 4-5: RPM observed Right Back motor (uint16)*<br />
* 6-7: RPM observed Left Back motor (uint16)*<br />
* 8-9: Battery voltage in mV (uint16)<br />
* 10: Status (uint8)<br />
* 11: Errno (uint8)<br />
* 12: Temperature in degrees Celcius (uint8)<br />
<nowiki />* Bit 15 is reserved for detecting maximum RPM (depending on voltage and altitude)<br />
<br />
==== Status ====<br />
* 0: Init<br />
* 1: Idle<br />
* 2: Ramping<br />
* 3/4: Spinning<br />
* 5: Stopping<br />
* 6: Suicided<br />
<br />
==== Errno ====<br />
* 0: No error<br />
* 2: Motor stalled<br />
* 3: Propeller security<br />
* 4: Communication lost<br />
* 9: Battery voltage too low<br />
<br />
=== START_PROP (0x40) ===<br />
Starts the propellers. The propellers will not start when the current error is not cleared.<br />
<br />
Arguments: 0 bytes or 1 byte<br />
* 0: Motor bitmask (0000ABCD, A:Left Upper, B:Right Upper, C: Right Back, D: Left Back) where 1 is clockwise and 0 is counterclockwise<br />
Receive: 0 bytes<br />
<br />
=== TOGGLE_GPIO (0x4D) ===<br />
Toggle GPIO outputs. The reset will put the BLDC into bootloader mode.<br />
<br />
Arguments: 1 byte<br />
* 0: GPIO bitmask (bit 0: Reset, bit 1: Red LED, bit 2: Green LED)<br />
Receive: 0 bytes<br />
<br />
=== STOP_PROP (0x60) ===<br />
Stop the propellers when turning.<br />
<br />
Arguments: 0 bytes<br />
Receive: 0 bytes<br />
<br />
=== CLEAR_ERROR (0x80) ===<br />
Clear the current error.<br />
<br />
Arguments: 0 bytes<br />
Receive: 0 bytes<br />
<br />
=== PLAY_SOUND (0x82) ===<br />
Play a sound. A negative number will loop the sound.<br />
<br />
Arguments: 1 byte<br />
* 0: Sound number (0: None, 1: Short beep, 2: Boot beep, 3: Be-Bop-Ah-Lula, negative: repeat) (int8)<br />
Receive: 0 bytes<br />
<br />
=== GET_INFO (0xA0) ===<br />
Get information about the BLDC.<br />
<br />
Arguments: 0 bytes<br />
Receive: 4 bytes or 13 bytes<br />
* 0: Software version (major)<br />
* 1: Software version (minor)<br />
* 2: Software type<br />
* 3: Number of motors<br />
* 4-5: Number of flights (uint16)<br />
* 4-5: Time last flight (uint16)<br />
* 6-9: Full flight time (uint32)<br />
* 10: Last error code<br />
<br />
== Checksum ==<br />
For all the packets with arguments or where we receive bytes there is a checksum byte at the end. This checksum is a simple XOR algorithm including the first command byte.<br />
<source lang="c"><br />
checksum = CMD_BYTE;<br />
for(int i = 0; i < packet_size; i++)<br />
checksum = checksum ^ packet[i];<br />
</source><br />
* Credits to Christophe de Wagter</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop/BLDC&diff=19147Bebop/BLDC2014-11-16T22:04:03Z<p>Fvantienen: /* Protocol */</p>
<hr />
<div>== General ==<br />
The BLDC of the Bebop is the Brushless Driver Controller that controls all 4 brushless motors from the Bebop. This BLDC contains a closed loop RPM controller, and also reads out the battery voltage.<br />
<br />
== Protocol ==<br />
* 0x02 SET_REF_SPEED<br />
* 0x20 GET_OBS_DATA<br />
* 0x40 START_PROP<br />
* 0x4D TOGGLE_GPIO<br />
* 0x60 STOP_PROP<br />
* 0x80 CLEAR_ERROR<br />
* 0x82 PLAY_SOUND<br />
* 0xA0 GET_INFO<br />
<br />
=== SET_REF_SPEED (0x02) ===<br />
Sets the RPM reference of the motors.<br />
<br />
Arguments: 9 bytes<br />
* 0-1: RPM reference Left Front motor (uint16)<br />
* 2-3: RPM reference Right Front motor (uint16)<br />
* 4-5: RPM reference Right Back motor (uint16)<br />
* 6-7: RPM reference Left Back motor (uint16)<br />
* 8: Reserved (0x00)<br />
<br />
=== GET_OBS_DATA (0x20) ===<br />
Gets the observed data from the motors and battery.<br />
<br />
Arguments: 0 bytes<br />
Receive: 8 bytes or 13 bytes<br />
* 0-1: RPM observed Left Front motor (uint16)*<br />
* 2-3: RPM observed Right Front motor (uint16)*<br />
* 4-5: RPM observed Right Back motor (uint16)*<br />
* 6-7: RPM observed Left Back motor (uint16)*<br />
* 8-9: Battery voltage in mV (uint16)<br />
* 10: Status (uint8)<br />
* 11: Errno (uint8)<br />
* 12: Temperature in degrees Celcius (uint8)<br />
<nowiki />* Bit 15 is reserved for detecting maximum RPM (depending on voltage and altitude)<br />
<br />
==== Status ====<br />
* 0: Init<br />
* 1: Idle<br />
* 2: Ramping<br />
* 3/4: Spinning<br />
* 5: Stopping<br />
* 6: Suicided<br />
<br />
==== Errno ====<br />
* 0: No error<br />
* 2: Motor stalled<br />
* 3: Propeller security<br />
* 4: Communication lost<br />
* 9: Battery voltage too low<br />
<br />
=== START_PROP (0x40) ===<br />
Starts the propellers. The propellers will not start when the current error is not cleared.<br />
<br />
Arguments: 0 bytes or 1 byte<br />
* 0: Motor bitmask (0000ABCD, A:Left Upper, B:Right Upper, C: Right Back, D: Left Back) where 1 is clockwise and 0 is counterclockwise<br />
Receive: 0 bytes<br />
<br />
=== TOGGLE_GPIO (0x4D) ===<br />
Toggle GPIO outputs. The reset will put the BLDC into bootloader mode.<br />
<br />
Arguments: 1 byte<br />
* 0: GPIO bitmask (bit 0: Reset, bit 1: Red LED, bit 2: Green LED)<br />
Receive: 0 bytes<br />
<br />
=== STOP_PROP (0x60) ===<br />
Stop the propellers when turning.<br />
<br />
Arguments: 0 bytes<br />
Receive: 0 bytes<br />
<br />
=== CLEAR_ERROR (0x80) ===<br />
Clear the current error.<br />
<br />
Arguments: 0 bytes<br />
Receive: 0 bytes<br />
<br />
=== PLAY_SOUND (0x82) ===<br />
Play a sound. A negative number will loop the sound.<br />
<br />
Arguments: 1 byte<br />
* 0: Sound number (0: None, 1: Short beep, 2: Boot beep, 3: Be-Bop-Ah-Lula, negative: repeat) (int8)<br />
Receive: 0 bytes<br />
<br />
=== GET_INFO (0xA0) ===<br />
Get information about the BLDC.<br />
<br />
Arguments: 0 bytes<br />
Receive: 4 bytes or 13 bytes<br />
* 0: Software version (major)<br />
* 1: Software version (minor)<br />
* 2: Software type<br />
* 3: Number of motors<br />
* 4-5: Number of flights (uint16)<br />
* 4-5: Time last flight (uint16)<br />
* 6-9: Full flight time (uint32)<br />
* 10: Last error code<br />
<br />
== Checksum ==<br />
For all the packets with arguments or where we receive bytes there is a checksum byte at the end. This checksum is a simple XOR algorithm including the first command byte.<br />
<source lang="c"><br />
checksum = CMD_BYTE;<br />
for(int i = 0; i < packet_size; i++)<br />
checksum = checksum ^ packet[i];<br />
</source></div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop/BLDC&diff=19146Bebop/BLDC2014-11-16T21:55:36Z<p>Fvantienen: Created page with "== General == The BLDC of the Bebop is the Brushless Driver Controller that controls all 4 brushless motors from the Bebop. This BLDC contains a closed loop RPM controller, an..."</p>
<hr />
<div>== General ==<br />
The BLDC of the Bebop is the Brushless Driver Controller that controls all 4 brushless motors from the Bebop. This BLDC contains a closed loop RPM controller, and also reads out the battery voltage.<br />
<br />
== Protocol ==<br />
* 0x02 SET_REF_SPEED<br />
* 0x20 GET_OBS_DATA<br />
* 0x40 START_PROP<br />
* 0x4D TOGGLE_GPIO<br />
* 0x60 STOP_PROP<br />
* 0x80 CLEAR_ERROR<br />
* 0x82 PLAY_SOUND<br />
* 0xA0 GET_INFO<br />
<br />
=== SET_REF_SPEED (0x02) ===<br />
Arguments: 9 bytes<br />
* 0-1: RPM reference Left Front motor (uint16)<br />
* 2-3: RPM reference Right Front motor (uint16)<br />
* 4-5: RPM reference Right Back motor (uint16)<br />
* 6-7: RPM reference Left Back motor (uint16)<br />
* 8: Reserved (0x00)<br />
<br />
=== GET_OBS_DATA (0x20) ===<br />
Arguments: 0 bytes<br />
Receive: 8 bytes or 13 bytes<br />
* 0-1: RPM observed Left Front motor (uint16)*<br />
* 2-3: RPM observed Right Front motor (uint16)*<br />
* 4-5: RPM observed Right Back motor (uint16)*<br />
* 6-7: RPM observed Left Back motor (uint16)*<br />
* 8-9: Battery voltage in mV (uint16)<br />
* 10: Status (uint8)<br />
* 11: Errno (uint8)<br />
* 12: Temperature in degrees Celcius (uint8)<br />
<nowiki />* Bit 15 is reserved for detecting maximum RPM (depending on voltage and altitude)<br />
<br />
=== START_PROP (0x40) ===<br />
Arguments: 0 bytes or 1 byte<br />
* 0: Motor bitmask (0000ABCD, A:Left Upper, B:Right Upper, C: Right Back, D: Left Back) where 1 is clockwise and 0 is counterclockwise<br />
Receive: 0 bytes<br />
<br />
=== TOGGLE_GPIO (0x4D) ===<br />
Arguments: 1 byte<br />
* 0: GPIO bitmask (bit 0: Reset, bit 1: Red LED, bit 2: Green LED)<br />
Receive: 0 bytes<br />
<br />
=== STOP_PROP (0x60) ===<br />
Arguments: 0 bytes<br />
Receive: 0 bytes<br />
<br />
=== CLEAR_ERROR (0x80) ===<br />
Arguments: 0 bytes<br />
Receive: 0 bytes<br />
<br />
=== PLAY_SOUND (0x82) ===<br />
Arguments: 1 byte<br />
* 0: Sound number (0: None, 1: Short beep, 2: Boot beep, 3: Be-Bop-Ah-Lula, negative: repeat)<br />
Receive: 0 bytes<br />
<br />
=== GET_INFO (0xA0) ===<br />
Arguments: 0 bytes<br />
Receive: 4 bytes or 13 bytes<br />
* 0: Software version (major)<br />
* 1: Software version (minor)<br />
* 2: Software type<br />
* 3: Number of motors<br />
* 4-5: Number of flights (uint16)<br />
* 4-5: Time last flight (uint16)<br />
* 6-9: Full flight time (uint32)<br />
* 10: Last error code<br />
<br />
== Checksum ==<br />
For all the packets with arguments or where we receive bytes there is a checksum byte at the end. This checksum is a simple XOR algorithm including the first command byte.<br />
<source lang="c"><br />
checksum = CMD_BYTE;<br />
for(int i = 0; i < packet_size; i++)<br />
checksum = checksum ^ packet[i];<br />
</source></div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=19145Bebop2014-11-16T21:22:22Z<p>Fvantienen: /* Actuators */</p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
The [http://www.parrot.com/usa/products/bebop-drone/ Bebop] from [http://www.parrot.com/ Parrot] is an Wifi controlled flying quadrotor and is designed to be controlled with Android and iOS devices.<br />
<br />
== Features ==<br />
=== Connectivity ===<br />
* Wi-Fi antennas: MIMO dual-band with 2 double-set of ceramic antennas for 2.4 and 5 GHz<br />
* Sending power: Up to 26 dBm<br />
* Signal range: N/A<br />
<br />
=== Structure ===<br />
* 4 Brushless Outrunner motors<br />
* Glass fiber reinforced (15%) ABS structure<br />
* 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<br />
* Three-blade auto-block propellers in Polycarbonate with fast disassembly system<br />
* Anti-vibration bumpers<br />
<br />
=== Camera ===<br />
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor<br />
* Video stabilization: Digital on 3-axes<br />
* Video definition: 1920x1080p (30fps)<br />
* Photo definition: 3800x3188 pixels<br />
* Video encoding: H264<br />
* Photo file format: RAW, DNG<br />
* Internal memory: Flash 8 GB<br />
* Extended memory: Micro USB<br />
<br />
=== Battery ===<br />
* Lithium Polymer 1200 mAh<br />
* Flight time: Around 12 minutes<br />
<br />
=== Processor ===<br />
* Motherboard:<br />
** Parrot P7 dual-core CPU Cortex 9<br />
** Quad core GPU<br />
** 8Gb flash memory<br />
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator<br />
* Operating system: Linux<br />
* Developping: Open-source SDK<br />
<br />
=== Sensors ===<br />
* 3-axes magnetometer (AKM 8963)<br />
* 3-axes gyroscope (MPU 6050)<br />
* 3-axes accelerometer (MPU 6050)<br />
* 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)<br />
* Ultrasound sensor (Analyzes the flight altitude up to 8 meters)<br />
* Pressure sensor (MS 5607)<br />
<br />
=== Geo-location ===<br />
* GNSS (GPS + GLONASS + Galileo, Furuno GN-87F)<br />
<br />
=== Dimensions ===<br />
* 28x32x3.6cm without the hull<br />
* 33x38x3.6cm with the hull<br />
<br />
=== Weight ===<br />
* 380g without the hull<br />
* 400g with the hull<br />
<br />
== Pinout ==<br />
=== GPIO ===<br />
* 85 Fan enable<br />
* 90 Vsync horizontal camera<br />
* 91 DRDY MPU6050<br />
* 201 On/Off button (default monitor to files running: /bin/onoffbutton)<br />
* 202 HOST_MODE_3V3<br />
* 129 Vertical camera enable<br />
* 132 Horizontal camera enable<br />
* 199 BLDC micro-controller reset (forces it into bootloader) ON/OFF<br />
* 200 US Pulse level<br />
* 202 USB Host mode pin<br />
<br />
=== PWM ===<br />
* 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)<br />
* 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. esired frequency is slightly modified to synchronize camera and IMU<br />
* 9 Vertical camera clock (23ns period = 43MHz)<br />
* 11 Horizontal camera lock (77ns period = 13MHz)<br />
<br />
=== I2C ===<br />
* I2C-0<br />
** FPGA<br />
** P7MU<br />
** MT9f002 CMOS [https://www.aptina.com/products/dsc%1Cdvc/mt9f002/ MT9f002]<br />
** MT9v117 VGA System-On-A-Chip (SOC) CMOS Digital Image Sensor [http://www.aptina.com/assets/downloadDocument.do?id=553 MT9v117]<br />
* I2C-1<br />
** Cypress Motor Controller (Parrot BLDC)<br />
** AKM8963 Magnetometer [http://www.akm.com/akm/en/file/datasheet/AK8963.pdf AK8963]<br />
** MS5607 Barometer [http://meas-spec.com/product/pressure/MS5607-02BA03.aspx MS5607]<br />
* I2C-2<br />
** MPU6050 Gyro + Accel [http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf MPU6050]<br />
<br />
=== UART ===<br />
* ttyPA1 GPS (Furuno GN-87F)<br />
<br />
== Actuators ==<br />
The Bebop has 4 Brushless motors, which are controlled by the cypress chip on I2C-1. This Cypress chip contains costum made firmware(BLDC) from Parrot, which can be automatically updated using a bootloader.<br />
The firmware from Parrot contains a very nice closed loop RPM control, which is automatically tuned inside the factory.<br />
<br />
For more information about how to communicate with the BLDC look at [[Bebop/BLDC]]. Or take a look at the "bebop" actuator inside the <code>airborne/boards/bebop/</code> folder.<br />
<br />
== Programs ==<br />
* /usr/bin/dragon-prog Main program that controls the drone<br />
* /bin/watchdog.sh Checks if Dragon is still running and reboots dragon<br />
* BLDC_Test_Bench Controls the Brushless Motor Controllers for testing and playing sounds etc.<br />
* bcmwl Everything with wifi<br />
* diagnostic Outputs sensor diagnostic<br />
<br />
== Cross compiler ==<br />
For the Bebop you can't use the GNU gcc-arm-linux-gnueabi, which was used for the ARDrone 2 in the past. So this means the cross compiler isn't included in the paparazzi-dev package.<br />
The cross compiler you need for the Bebop is the Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from Mentor Graphics (previously codesourcery).<br />
<br />
This cross compiler is available here: [https://sourcery.mentor.com/GNUToolchain/release2187 Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux]. Please install this crosscompiler in the /usr/local/codesourcery/ directory of your computer, to make sure paparazzi is able to find the cross compiler.<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=19144Bebop2014-11-16T21:21:55Z<p>Fvantienen: /* Actuators */</p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
The [http://www.parrot.com/usa/products/bebop-drone/ Bebop] from [http://www.parrot.com/ Parrot] is an Wifi controlled flying quadrotor and is designed to be controlled with Android and iOS devices.<br />
<br />
== Features ==<br />
=== Connectivity ===<br />
* Wi-Fi antennas: MIMO dual-band with 2 double-set of ceramic antennas for 2.4 and 5 GHz<br />
* Sending power: Up to 26 dBm<br />
* Signal range: N/A<br />
<br />
=== Structure ===<br />
* 4 Brushless Outrunner motors<br />
* Glass fiber reinforced (15%) ABS structure<br />
* 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<br />
* Three-blade auto-block propellers in Polycarbonate with fast disassembly system<br />
* Anti-vibration bumpers<br />
<br />
=== Camera ===<br />
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor<br />
* Video stabilization: Digital on 3-axes<br />
* Video definition: 1920x1080p (30fps)<br />
* Photo definition: 3800x3188 pixels<br />
* Video encoding: H264<br />
* Photo file format: RAW, DNG<br />
* Internal memory: Flash 8 GB<br />
* Extended memory: Micro USB<br />
<br />
=== Battery ===<br />
* Lithium Polymer 1200 mAh<br />
* Flight time: Around 12 minutes<br />
<br />
=== Processor ===<br />
* Motherboard:<br />
** Parrot P7 dual-core CPU Cortex 9<br />
** Quad core GPU<br />
** 8Gb flash memory<br />
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator<br />
* Operating system: Linux<br />
* Developping: Open-source SDK<br />
<br />
=== Sensors ===<br />
* 3-axes magnetometer (AKM 8963)<br />
* 3-axes gyroscope (MPU 6050)<br />
* 3-axes accelerometer (MPU 6050)<br />
* 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)<br />
* Ultrasound sensor (Analyzes the flight altitude up to 8 meters)<br />
* Pressure sensor (MS 5607)<br />
<br />
=== Geo-location ===<br />
* GNSS (GPS + GLONASS + Galileo, Furuno GN-87F)<br />
<br />
=== Dimensions ===<br />
* 28x32x3.6cm without the hull<br />
* 33x38x3.6cm with the hull<br />
<br />
=== Weight ===<br />
* 380g without the hull<br />
* 400g with the hull<br />
<br />
== Pinout ==<br />
=== GPIO ===<br />
* 85 Fan enable<br />
* 90 Vsync horizontal camera<br />
* 91 DRDY MPU6050<br />
* 201 On/Off button (default monitor to files running: /bin/onoffbutton)<br />
* 202 HOST_MODE_3V3<br />
* 129 Vertical camera enable<br />
* 132 Horizontal camera enable<br />
* 199 BLDC micro-controller reset (forces it into bootloader) ON/OFF<br />
* 200 US Pulse level<br />
* 202 USB Host mode pin<br />
<br />
=== PWM ===<br />
* 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)<br />
* 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. esired frequency is slightly modified to synchronize camera and IMU<br />
* 9 Vertical camera clock (23ns period = 43MHz)<br />
* 11 Horizontal camera lock (77ns period = 13MHz)<br />
<br />
=== I2C ===<br />
* I2C-0<br />
** FPGA<br />
** P7MU<br />
** MT9f002 CMOS [https://www.aptina.com/products/dsc%1Cdvc/mt9f002/ MT9f002]<br />
** MT9v117 VGA System-On-A-Chip (SOC) CMOS Digital Image Sensor [http://www.aptina.com/assets/downloadDocument.do?id=553 MT9v117]<br />
* I2C-1<br />
** Cypress Motor Controller (Parrot BLDC)<br />
** AKM8963 Magnetometer [http://www.akm.com/akm/en/file/datasheet/AK8963.pdf AK8963]<br />
** MS5607 Barometer [http://meas-spec.com/product/pressure/MS5607-02BA03.aspx MS5607]<br />
* I2C-2<br />
** MPU6050 Gyro + Accel [http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf MPU6050]<br />
<br />
=== UART ===<br />
* ttyPA1 GPS (Furuno GN-87F)<br />
<br />
== Actuators ==<br />
The Bebop has 4 Brushless motors, which are controlled by the cypress chip on I2C-1. This Cypress chip contains costum made firmware(BLDC) from Parrot, which can be automatically updated using a bootloader.<br />
The firmware from Parrot contains a very nice closed loop RPM control, which is automatically tuned inside the factory.<br />
<br />
For more information about how to communicate with the BLDC look at [[Bebop/bldc]]. Or take a look at the "bebop" actuator inside the <code>airborne/boards/bebop/</code> folder.<br />
<br />
== Programs ==<br />
* /usr/bin/dragon-prog Main program that controls the drone<br />
* /bin/watchdog.sh Checks if Dragon is still running and reboots dragon<br />
* BLDC_Test_Bench Controls the Brushless Motor Controllers for testing and playing sounds etc.<br />
* bcmwl Everything with wifi<br />
* diagnostic Outputs sensor diagnostic<br />
<br />
== Cross compiler ==<br />
For the Bebop you can't use the GNU gcc-arm-linux-gnueabi, which was used for the ARDrone 2 in the past. So this means the cross compiler isn't included in the paparazzi-dev package.<br />
The cross compiler you need for the Bebop is the Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from Mentor Graphics (previously codesourcery).<br />
<br />
This cross compiler is available here: [https://sourcery.mentor.com/GNUToolchain/release2187 Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux]. Please install this crosscompiler in the /usr/local/codesourcery/ directory of your computer, to make sure paparazzi is able to find the cross compiler.<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=19143Bebop2014-11-16T21:17:06Z<p>Fvantienen: </p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
The [http://www.parrot.com/usa/products/bebop-drone/ Bebop] from [http://www.parrot.com/ Parrot] is an Wifi controlled flying quadrotor and is designed to be controlled with Android and iOS devices.<br />
<br />
== Features ==<br />
=== Connectivity ===<br />
* Wi-Fi antennas: MIMO dual-band with 2 double-set of ceramic antennas for 2.4 and 5 GHz<br />
* Sending power: Up to 26 dBm<br />
* Signal range: N/A<br />
<br />
=== Structure ===<br />
* 4 Brushless Outrunner motors<br />
* Glass fiber reinforced (15%) ABS structure<br />
* 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<br />
* Three-blade auto-block propellers in Polycarbonate with fast disassembly system<br />
* Anti-vibration bumpers<br />
<br />
=== Camera ===<br />
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor<br />
* Video stabilization: Digital on 3-axes<br />
* Video definition: 1920x1080p (30fps)<br />
* Photo definition: 3800x3188 pixels<br />
* Video encoding: H264<br />
* Photo file format: RAW, DNG<br />
* Internal memory: Flash 8 GB<br />
* Extended memory: Micro USB<br />
<br />
=== Battery ===<br />
* Lithium Polymer 1200 mAh<br />
* Flight time: Around 12 minutes<br />
<br />
=== Processor ===<br />
* Motherboard:<br />
** Parrot P7 dual-core CPU Cortex 9<br />
** Quad core GPU<br />
** 8Gb flash memory<br />
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator<br />
* Operating system: Linux<br />
* Developping: Open-source SDK<br />
<br />
=== Sensors ===<br />
* 3-axes magnetometer (AKM 8963)<br />
* 3-axes gyroscope (MPU 6050)<br />
* 3-axes accelerometer (MPU 6050)<br />
* 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)<br />
* Ultrasound sensor (Analyzes the flight altitude up to 8 meters)<br />
* Pressure sensor (MS 5607)<br />
<br />
=== Geo-location ===<br />
* GNSS (GPS + GLONASS + Galileo, Furuno GN-87F)<br />
<br />
=== Dimensions ===<br />
* 28x32x3.6cm without the hull<br />
* 33x38x3.6cm with the hull<br />
<br />
=== Weight ===<br />
* 380g without the hull<br />
* 400g with the hull<br />
<br />
== Pinout ==<br />
=== GPIO ===<br />
* 85 Fan enable<br />
* 90 Vsync horizontal camera<br />
* 91 DRDY MPU6050<br />
* 201 On/Off button (default monitor to files running: /bin/onoffbutton)<br />
* 202 HOST_MODE_3V3<br />
* 129 Vertical camera enable<br />
* 132 Horizontal camera enable<br />
* 199 BLDC micro-controller reset (forces it into bootloader) ON/OFF<br />
* 200 US Pulse level<br />
* 202 USB Host mode pin<br />
<br />
=== PWM ===<br />
* 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)<br />
* 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. esired frequency is slightly modified to synchronize camera and IMU<br />
* 9 Vertical camera clock (23ns period = 43MHz)<br />
* 11 Horizontal camera lock (77ns period = 13MHz)<br />
<br />
=== I2C ===<br />
* I2C-0<br />
** FPGA<br />
** P7MU<br />
** MT9f002 CMOS [https://www.aptina.com/products/dsc%1Cdvc/mt9f002/ MT9f002]<br />
** MT9v117 VGA System-On-A-Chip (SOC) CMOS Digital Image Sensor [http://www.aptina.com/assets/downloadDocument.do?id=553 MT9v117]<br />
* I2C-1<br />
** Cypress Motor Controller (Parrot BLDC)<br />
** AKM8963 Magnetometer [http://www.akm.com/akm/en/file/datasheet/AK8963.pdf AK8963]<br />
** MS5607 Barometer [http://meas-spec.com/product/pressure/MS5607-02BA03.aspx MS5607]<br />
* I2C-2<br />
** MPU6050 Gyro + Accel [http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf MPU6050]<br />
<br />
=== UART ===<br />
* ttyPA1 GPS (Furuno GN-87F)<br />
<br />
== Actuators ==<br />
The Bebop has 4 Brushless motors, which are controlled by the cypress chip on I2C-1. This Cypress chip contains costum made firmware(BLDC) from Parrot, which can be automatically updated using a bootloader.<br />
The firmware from Parrot contains a very nice closed loop RPM control, which is automatically tuned inside the factory.<br />
<br />
For more information about how to communicate with the BLDC look at [[Bebop/bldc]].<br />
<br />
== Programs ==<br />
* /usr/bin/dragon-prog Main program that controls the drone<br />
* /bin/watchdog.sh Checks if Dragon is still running and reboots dragon<br />
* BLDC_Test_Bench Controls the Brushless Motor Controllers for testing and playing sounds etc.<br />
* bcmwl Everything with wifi<br />
* diagnostic Outputs sensor diagnostic<br />
<br />
== Cross compiler ==<br />
For the Bebop you can't use the GNU gcc-arm-linux-gnueabi, which was used for the ARDrone 2 in the past. So this means the cross compiler isn't included in the paparazzi-dev package.<br />
The cross compiler you need for the Bebop is the Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from Mentor Graphics (previously codesourcery).<br />
<br />
This cross compiler is available here: [https://sourcery.mentor.com/GNUToolchain/release2187 Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux]. Please install this crosscompiler in the /usr/local/codesourcery/ directory of your computer, to make sure paparazzi is able to find the cross compiler.<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=19142Bebop2014-11-16T20:53:35Z<p>Fvantienen: </p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
The Bebop from Parrot is an Wifi controlled flying quadrotor and is designed to be controlled with Android and iOS devices.<br />
<br />
== Features ==<br />
=== Connectivity ===<br />
* Wi-Fi antennas: MIMO dual-band with 2 double-set of ceramic antennas for 2.4 and 5 GHz<br />
* Sending power: Up to 26 dBm<br />
* Signal range: N/A<br />
<br />
=== Structure ===<br />
* 4 Brushless Outrunner motors<br />
* Glass fiber reinforced (15%) ABS structure<br />
* 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<br />
* Three-blade auto-block propellers in Polycarbonate with fast disassembly system<br />
* Anti-vibration bumpers<br />
<br />
=== Camera ===<br />
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor<br />
* Video stabilization: Digital on 3-axes<br />
* Video definition: 1920x1080p (30fps)<br />
* Photo definition: 3800x3188 pixels<br />
* Video encoding: H264<br />
* Photo file format: RAW, DNG<br />
* Internal memory: Flash 8 GB<br />
* Extended memory: Micro USB<br />
<br />
=== Battery ===<br />
* Lithium Polymer 1200 mAh<br />
* Flight time: Around 12 minutes<br />
<br />
=== Processor ===<br />
* Motherboard:<br />
** Parrot P7 dual-core CPU Cortex 9<br />
** Quad core GPU<br />
** 8Gb flash memory<br />
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator<br />
* Operating system: Linux<br />
* Developping: Open-source SDK<br />
<br />
=== Sensors ===<br />
* 3-axes magnetometer (AKM 8963)<br />
* 3-axes gyroscope (MPU 6050)<br />
* 3-axes accelerometer (MPU 6050)<br />
* 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)<br />
* Ultrasound sensor (Analyzes the flight altitude up to 8 meters)<br />
* Pressure sensor (MS 5607)<br />
<br />
=== Geo-location ===<br />
* GNSS (GPS + GLONASS + Galileo, Furuno GN-87F)<br />
<br />
=== Dimensions ===<br />
* 28x32x3.6cm without the hull<br />
* 33x38x3.6cm with the hull<br />
<br />
=== Weight ===<br />
* 380g without the hull<br />
* 400g with the hull<br />
<br />
== Pinout ==<br />
=== GPIO ===<br />
* 85 Fan enable<br />
* 90 Vsync horizontal camera<br />
* 91 DRDY MPU6050<br />
* 201 On/Off button (default monitor to files running: /bin/onoffbutton)<br />
* 202 HOST_MODE_3V3<br />
* 129 Vertical camera enable<br />
* 132 Horizontal camera enable<br />
* 199 BLDC micro-controller reset (forces it into bootloader) ON/OFF<br />
* 200 US Pulse level<br />
* 202 USB Host mode pin<br />
<br />
=== PWM ===<br />
* 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)<br />
* 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. esired frequency is slightly modified to synchronize camera and IMU<br />
* 9 Vertical camera clock (23ns period = 43MHz)<br />
* 11 Horizontal camera lock (77ns period = 13MHz)<br />
<br />
=== I2C ===<br />
* I2C-0<br />
** FPGA<br />
** P7MU<br />
** MT9f002 CMOS [https://www.aptina.com/products/dsc%1Cdvc/mt9f002/ MT9f002]<br />
** MT9v117 VGA System-On-A-Chip (SOC) CMOS Digital Image Sensor [http://www.aptina.com/assets/downloadDocument.do?id=553 MT9v117]<br />
* I2C-1<br />
** Cypress Motor Controller (Parrot BLDC)<br />
** AKM8963 Magnetometer [http://www.akm.com/akm/en/file/datasheet/AK8963.pdf AK8963]<br />
** MS5607 Barometer [http://meas-spec.com/product/pressure/MS5607-02BA03.aspx MS5607]<br />
* I2C-2<br />
** MPU6050 Gyro + Accel [http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf MPU6050]<br />
<br />
=== UART ===<br />
* ttyPA1 GPS (Furuno GN-87F)<br />
<br />
== Programs ==<br />
* /usr/bin/dragon-prog Main program that controls the drone<br />
* /bin/watchdog.sh Checks if Dragon is still running and reboots dragon<br />
* BLDC_Test_Bench Controls the Brushless Motor Controllers for testing and playing sounds etc.<br />
* bcmwl Everything with wifi<br />
* diagnostic Outputs sensor diagnostic<br />
<br />
== Cross compiler ==<br />
For the Bebop you can't use the GNU gcc-arm-linux-gnueabi, which was used for the ARDrone 2 in the past. So this means the cross compiler isn't included in the paparazzi-dev package.<br />
The cross compiler you need for the Bebop is the Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from Mentor Graphics (previously codesourcery).<br />
<br />
This cross compiler is available here: [https://sourcery.mentor.com/GNUToolchain/release2187 Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux]. Please install this crosscompiler in the /usr/local/codesourcery/ directory of your computer, to make sure paparazzi is able to find the cross compiler.<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=19125Bebop2014-11-14T16:34:25Z<p>Fvantienen: /* Processor */</p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
The Bebop from Parrot is an Wifi controlled flying quadrotor and is designed to be controlled with Android and iOS devices.<br />
<br />
== Features ==<br />
=== Connectivity ===<br />
* Wi-Fi antennas: MIMO dual-band with 2 double-set of ceramic antennas for 2.4 and 5 GHz<br />
* Sending power: Up to 26 dBm<br />
* Signal range: N/A<br />
<br />
=== Structure ===<br />
* 4 Brushless Outrunner motors<br />
* Glass fiber reinforced (15%) ABS structure<br />
* 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<br />
* Three-blade auto-block propellers in Polycarbonate with fast disassembly system<br />
* Anti-vibration bumpers<br />
<br />
=== Camera ===<br />
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor<br />
* Video stabilization: Digital on 3-axes<br />
* Video definition: 1920x1080p (30fps)<br />
* Photo definition: 3800x3188 pixels<br />
* Video encoding: H264<br />
* Photo file format: RAW, DNG<br />
* Internal memory: Flash 8 GB<br />
* Extended memory: Micro USB<br />
<br />
=== Battery ===<br />
* Lithium Polymer 1200 mAh<br />
* Flight time: Around 12 minutes<br />
<br />
=== Processor ===<br />
* Motherboard:<br />
** Parrot P7 dual-core CPU Cortex 9<br />
** Quad core GPU<br />
** 8Gb flash memory<br />
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator<br />
* Operating system: Linux<br />
* Developping: Open-source SDK<br />
<br />
=== Sensors ===<br />
* 3-axes magnetometer (AKM 8963)<br />
* 3-axes gyroscope (MPU 6050)<br />
* 3-axes accelerometer (MPU 6050)<br />
* 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)<br />
* Ultrasound sensor (Analyzes the flight altitude up to 8 meters)<br />
* Pressure sensor (MS 5607)<br />
<br />
=== Geo-location ===<br />
* GNSS (GPS + GLONASS + Galileo, Furuno GN-87F)<br />
<br />
=== Dimensions ===<br />
* 28x32x3.6cm without the hull<br />
* 33x38x3.6cm with the hull<br />
<br />
=== Weight ===<br />
* 380g without the hull<br />
* 400g with the hull<br />
<br />
== Pinout ==<br />
=== GPIO ===<br />
* 85 Fan enable<br />
* 90 Vsync horizontal camera<br />
* 91 DRDY MPU6050<br />
* 201 On/Off button (default monitor to files running: /bin/onoffbutton)<br />
* 202 HOST_MODE_3V3<br />
* 129 Vertical camera enable<br />
* 132 Horizontal camera enable<br />
* 199 BLDC micro-controller reset (forces it into bootloader) ON/OFF<br />
* 200 US Pulse level<br />
* 202 USB Host mode pin<br />
<br />
=== PWM ===<br />
* 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)<br />
* 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. esired frequency is slightly modified to synchronize camera and IMU<br />
* 9 Vertical camera clock (23ns period = 43MHz)<br />
* 11 Horizontal camera lock (77ns period = 13MHz)<br />
<br />
=== I2C ===<br />
* I2C-0<br />
** FPGA<br />
** P7MU<br />
** MT9f002 CMOS [https://www.aptina.com/products/dsc%1Cdvc/mt9f002/ MT9f002]<br />
** MT9v117 VGA System-On-A-Chip (SOC) CMOS Digital Image Sensor [http://www.aptina.com/assets/downloadDocument.do?id=553 MT9v117]<br />
* I2C-1<br />
** Cypress Motor Controller (Parrot BLDC)<br />
** AKM8963 Magnetometer [http://www.akm.com/akm/en/file/datasheet/AK8963.pdf AK8963]<br />
** MS5607 Barometer [http://meas-spec.com/product/pressure/MS5607-02BA03.aspx MS5607]<br />
* I2C-2<br />
** MPU6050 Gyro + Accel [http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf MPU6050]<br />
<br />
=== UART ===<br />
* ttyPA1 GPS (Furuno GN-87F)<br />
<br />
== Cross compiler ==<br />
For the Bebop you can't use the GNU gcc-arm-linux-gnueabi, which was used for the ARDrone 2 in the past. So this means the cross compiler isn't included in the paparazzi-dev package.<br />
The cross compiler you need for the Bebop is the Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from Mentor Graphics (previously codesourcery).<br />
<br />
This cross compiler is available here: [https://sourcery.mentor.com/GNUToolchain/release2187 Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux]. Please install this crosscompiler in the /usr/local/codesourcery/ directory of your computer, to make sure paparazzi is able to find the cross compiler.<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=19124Bebop2014-11-14T16:34:05Z<p>Fvantienen: /* Pinout */</p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
The Bebop from Parrot is an Wifi controlled flying quadrotor and is designed to be controlled with Android and iOS devices.<br />
<br />
== Features ==<br />
=== Connectivity ===<br />
* Wi-Fi antennas: MIMO dual-band with 2 double-set of ceramic antennas for 2.4 and 5 GHz<br />
* Sending power: Up to 26 dBm<br />
* Signal range: N/A<br />
<br />
=== Structure ===<br />
* 4 Brushless Outrunner motors<br />
* Glass fiber reinforced (15%) ABS structure<br />
* 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<br />
* Three-blade auto-block propellers in Polycarbonate with fast disassembly system<br />
* Anti-vibration bumpers<br />
<br />
=== Camera ===<br />
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor<br />
* Video stabilization: Digital on 3-axes<br />
* Video definition: 1920x1080p (30fps)<br />
* Photo definition: 3800x3188 pixels<br />
* Video encoding: H264<br />
* Photo file format: RAW, DNG<br />
* Internal memory: Flash 8 GB<br />
* Extended memory: Micro USB<br />
<br />
=== Battery ===<br />
* Lithium Polymer 1200 mAh<br />
* Flight time: Around 12 minutes<br />
<br />
=== Processor ===<br />
* Motherboard: (Fig.1)<br />
** Parrot P7 dual-core CPU Cortex 9<br />
** Quad core GPU<br />
** 8Gb flash memory<br />
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator<br />
* Operating system: Linux<br />
* Developping: Open-source SDK<br />
<br />
=== Sensors ===<br />
* 3-axes magnetometer (AKM 8963)<br />
* 3-axes gyroscope (MPU 6050)<br />
* 3-axes accelerometer (MPU 6050)<br />
* 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)<br />
* Ultrasound sensor (Analyzes the flight altitude up to 8 meters)<br />
* Pressure sensor (MS 5607)<br />
<br />
=== Geo-location ===<br />
* GNSS (GPS + GLONASS + Galileo, Furuno GN-87F)<br />
<br />
=== Dimensions ===<br />
* 28x32x3.6cm without the hull<br />
* 33x38x3.6cm with the hull<br />
<br />
=== Weight ===<br />
* 380g without the hull<br />
* 400g with the hull<br />
<br />
== Pinout ==<br />
=== GPIO ===<br />
* 85 Fan enable<br />
* 90 Vsync horizontal camera<br />
* 91 DRDY MPU6050<br />
* 201 On/Off button (default monitor to files running: /bin/onoffbutton)<br />
* 202 HOST_MODE_3V3<br />
* 129 Vertical camera enable<br />
* 132 Horizontal camera enable<br />
* 199 BLDC micro-controller reset (forces it into bootloader) ON/OFF<br />
* 200 US Pulse level<br />
* 202 USB Host mode pin<br />
<br />
=== PWM ===<br />
* 6 Heating resistor for warming IMU sensors (125000ns period, 0ns duty)<br />
* 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. esired frequency is slightly modified to synchronize camera and IMU<br />
* 9 Vertical camera clock (23ns period = 43MHz)<br />
* 11 Horizontal camera lock (77ns period = 13MHz)<br />
<br />
=== I2C ===<br />
* I2C-0<br />
** FPGA<br />
** P7MU<br />
** MT9f002 CMOS [https://www.aptina.com/products/dsc%1Cdvc/mt9f002/ MT9f002]<br />
** MT9v117 VGA System-On-A-Chip (SOC) CMOS Digital Image Sensor [http://www.aptina.com/assets/downloadDocument.do?id=553 MT9v117]<br />
* I2C-1<br />
** Cypress Motor Controller (Parrot BLDC)<br />
** AKM8963 Magnetometer [http://www.akm.com/akm/en/file/datasheet/AK8963.pdf AK8963]<br />
** MS5607 Barometer [http://meas-spec.com/product/pressure/MS5607-02BA03.aspx MS5607]<br />
* I2C-2<br />
** MPU6050 Gyro + Accel [http://invensense.com/mems/gyro/documents/RM-MPU-6000A.pdf MPU6050]<br />
<br />
=== UART ===<br />
* ttyPA1 GPS (Furuno GN-87F)<br />
<br />
== Cross compiler ==<br />
For the Bebop you can't use the GNU gcc-arm-linux-gnueabi, which was used for the ARDrone 2 in the past. So this means the cross compiler isn't included in the paparazzi-dev package.<br />
The cross compiler you need for the Bebop is the Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from Mentor Graphics (previously codesourcery).<br />
<br />
This cross compiler is available here: [https://sourcery.mentor.com/GNUToolchain/release2187 Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux]. Please install this crosscompiler in the /usr/local/codesourcery/ directory of your computer, to make sure paparazzi is able to find the cross compiler.<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=19123Bebop2014-11-14T16:25:21Z<p>Fvantienen: </p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
The Bebop from Parrot is an Wifi controlled flying quadrotor and is designed to be controlled with Android and iOS devices.<br />
<br />
== Features ==<br />
=== Connectivity ===<br />
* Wi-Fi antennas: MIMO dual-band with 2 double-set of ceramic antennas for 2.4 and 5 GHz<br />
* Sending power: Up to 26 dBm<br />
* Signal range: N/A<br />
<br />
=== Structure ===<br />
* 4 Brushless Outrunner motors<br />
* Glass fiber reinforced (15%) ABS structure<br />
* 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<br />
* Three-blade auto-block propellers in Polycarbonate with fast disassembly system<br />
* Anti-vibration bumpers<br />
<br />
=== Camera ===<br />
* Camera with "Fisheye" lens 180° 1/2,3": 6 optical elements and 14 Mega pixels sensor<br />
* Video stabilization: Digital on 3-axes<br />
* Video definition: 1920x1080p (30fps)<br />
* Photo definition: 3800x3188 pixels<br />
* Video encoding: H264<br />
* Photo file format: RAW, DNG<br />
* Internal memory: Flash 8 GB<br />
* Extended memory: Micro USB<br />
<br />
=== Battery ===<br />
* Lithium Polymer 1200 mAh<br />
* Flight time: Around 12 minutes<br />
<br />
=== Processor ===<br />
* Motherboard: (Fig.1)<br />
** Parrot P7 dual-core CPU Cortex 9<br />
** Quad core GPU<br />
** 8Gb flash memory<br />
* All fixed on a magnesium shelf that acts as electromagnetic shielding and as a radiator<br />
* Operating system: Linux<br />
* Developping: Open-source SDK<br />
<br />
=== Sensors ===<br />
* 3-axes magnetometer (AKM 8963)<br />
* 3-axes gyroscope (MPU 6050)<br />
* 3-axes accelerometer (MPU 6050)<br />
* 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)<br />
* Ultrasound sensor (Analyzes the flight altitude up to 8 meters)<br />
* Pressure sensor (MS 5607)<br />
<br />
=== Geo-location ===<br />
* GNSS (GPS + GLONASS + Galileo, Furuno GN-87F)<br />
<br />
=== Dimensions ===<br />
* 28x32x3.6cm without the hull<br />
* 33x38x3.6cm with the hull<br />
<br />
=== Weight ===<br />
* 380g without the hull<br />
* 400g with the hull<br />
<br />
== Pinout ==<br />
TODO<br />
<br />
== Cross compiler ==<br />
For the Bebop you can't use the GNU gcc-arm-linux-gnueabi, which was used for the ARDrone 2 in the past. So this means the cross compiler isn't included in the paparazzi-dev package.<br />
The cross compiler you need for the Bebop is the Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from Mentor Graphics (previously codesourcery).<br />
<br />
This cross compiler is available here: [https://sourcery.mentor.com/GNUToolchain/release2187 Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux]. Please install this crosscompiler in the /usr/local/codesourcery/ directory of your computer, to make sure paparazzi is able to find the cross compiler.<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=19122Bebop2014-11-14T16:17:31Z<p>Fvantienen: </p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
The Bebop from Parrot is an Wifi controlled flying quadrotor and is designed to be controlled with Android and iOS devices.<br />
<br />
== Features ==<br />
TODO<br />
<br />
== Pinout ==<br />
TODO<br />
<br />
== Cross compiler ==<br />
For the Bebop you can't use the GNU gcc-arm-linux-gnueabi, which was used for the ARDrone 2 in the past. So this means the cross compiler isn't included in the paparazzi-dev package.<br />
The cross compiler you need for the Bebop is the Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux from Mentor Graphics (previously codesourcery).<br />
<br />
This cross compiler is available here: [https://sourcery.mentor.com/GNUToolchain/release2187 Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux]. Please install this crosscompiler in the /usr/local/codesourcery/ directory of your computer, to make sure paparazzi is able to find the cross compiler.<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=19121Bebop2014-11-13T23:29:02Z<p>Fvantienen: </p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
The Bebop from Parrot is an Wifi controlled flying quadrotor and is designed to be controlled with Android and iOS devices.<br />
<br />
== Features ==<br />
TODO<br />
<br />
== Pinout ==<br />
TODO<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Bebop&diff=19120Bebop2014-11-13T23:23:26Z<p>Fvantienen: Created page with "<div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categoryt..."</p>
<hr />
<div><div style="float: right; width: 15%"><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree></div><br />
<div style="float: right; width: 45%; overflow: hidden">[[Image:Parrot-bebop-drone-new-03.jpeg|right|500px|Parrot Bebop]]</div><br />
<div style="float: right; width: 40%">__TOC__</div><br />
<br />
The Bebop from Parrot is an Wifi controlled flying quadrotor and is designed to be controlled with Android and iOS devices.<br />
<br />
== Features ==<br />
TODO<br />
<br />
== Pinout ==<br />
TODO</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=File:Parrot-bebop-drone-new-03.jpeg&diff=19119File:Parrot-bebop-drone-new-03.jpeg2014-11-13T23:16:26Z<p>Fvantienen: Parrot Bebop Drone</p>
<hr />
<div>Parrot Bebop Drone</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=SuperbitRF&diff=18876SuperbitRF2014-08-01T14:02:18Z<p>Fvantienen: </p>
<hr />
<div>[[File:tudelft_logo.jpg|left|150px|link=http://tudelft.nl/en/]]<br />
[[File:1bitsquared_logo.png|left|150px|link=http://1bitsquared.com]]<br />
[[File:SuperbitRF_usb_modem.jpg|300px|right]]<br />
<br />
== What is '''SuperbitRF'''? ==<br />
SuperbitRF is a project to design our own datalink/radio receiver. The ultimate goal is to get the receiver to work with our own datalink modem and also normal DSM2/DSMX transmitters. However, the main focus is to get a very small datalink which will be integrated in the autopilot PCB.<br />
<br />
== Components ==<br />
=== Superbit CYRF ===<br />
[[Image:Cyrf_v1_0_r1_back.jpg|300px]]<br />
[[Image:Cyrf_v1_0_r1_front.jpg|300px]]<br />
<br />
=== Superbit USBRF ===<br />
[[Image:Usbrf_v1_0_back.jpg|300px]]<br />
[[Image:Usbrf_v1_0_front.jpg|300px]]<br />
<br />
<br />
== How it works ==<br />
In general you will have either a USB datalink modem or a DSM2/DSMX transmitter which can be bound to the datalink/radio receiver on the autopilot. During the binding process, the receiver will know if it is binding to a USB datalink (in DSMX or DSM2 mode), DSM2 transmitter or a DSMX transmitter. After binding, the receiver tries to keep in sync with the USB datalink or transmitter and will forward the packets received to either the paparazzi datalink or the radio control.<br />
<br />
The SuperbitRF USB modem uses the normal DSM2/DSMX protocol, which can be chosen inside the firmware. For more information on how the DSM2 and the DSMX protocol works, see [[DSM]].<br />
<br />
== The source code ==<br />
The firmware for the SuperbitRF USB modem is open source and can be found at [https://github.com/esden/superbitrf-firmware Github SuperbitRF Firmware].<br />
As of this writing (Aug 2013), the source code for the datalink receiver (which will run on the autopilot) is not finished yet.<br />
<br />
== SuperbitRF in depth ==<br />
The SuperbitRF firmware for the USB dongle consists of 3 different build targets: Transmitter, Man In The Middle (MITM), and Receiver. <br />
* The Transmitter (used for GCS) target is capable of sending Paparazzi joystick commands in DSM2 or DSMX to normal DSM2/DSMX receivers and the SuperbitRF receiver. It is also capable of receiving downlink messages and sending uplink messages to a SuperbitRF module. <br />
* The MITM target (used for GCS) is only capable of receiving downlink messages and sending uplink messages to a SuperbitRF module, but this is possible in combination with a normal DSM2 or DSMX transmitter. <br />
* The Receiver target (used for airborne) is capable of receiving DSM2 and DSMX commands from a normal DSM2/DSMX transmitter or the SuperbitRF transmitter, and is also capable of transmitting downlink messages and receiving uplink messages from a SuperbitRF module.<br />
The SuperbitRF always takes PPRZ messages as input and also always outputs PPRZ messages.<br />
<br />
Next to the firmware of the SuperbitRF USB dongle we also have a integration of only the CYRF6936 chip inside Paparazzi. This part can do the exact same as the Receiver target from the SuperbitRF dongle, except that this time all the processing is done directly inside Paparazzi.<br />
<br />
=== Transmitter USB Dongle ===<br />
This was functional in the beginning, but now probably doesn't work anymore. It doesn't have the normal DSM2/DSMX transmission part in it yet and only has the PPRZ uplink and downlink.<br />
<br />
[[Image:SuperbitRF_protocol.png|300px|right]]<br />
<br />
=== MITM USB Dongle ===<br />
This is functional now with DSMX, but there are still some timing problems. The up- and downlink works and keep workings when the transmitter is shut down. When the transmitter is down the receiver (the USB dongle on the airframe or the integrated cyrf code in Paparazzi) is capable of sending downlink messages at a higher rate because the receiver timing of the syncing mode is used to transmit and receive packets to the MITM. When the transmitter is on the receiver is in transfer mode and the transmitter sets the timing for the receiver and thus also for the MITM. So the timing between the MITM and the receiver is very hard to tune, because the MITM doesn't know when the receiver is in transfer mode or not, and each transmitter is sending at a different timing. This is why getting the timing right is so difficult.<br />
<br />
=== Receiver USB Dongle ===<br />
This part receives the DSM2 and DSMX packets, but doesn't receive the data packets from the SuperbitRF dongle yet. It also doesn't parse the DSM2 and DSMX packets to normal PPRZ packets yet. This is mainly used for debugging a transmitter to see what the timing is and see if it is properly working. This is also the basis for the integrated CYRF6936 receiver inside paparazzi.<br />
<br />
=== SuperbitRF receiver software (inside Paparazzi) ===<br />
This consists of two parts, the radio_control subsystem and the telemetry subsystem. The radio_control subsystem works independently from the telemetry subsystem, but uses the same code. The telemetry subsystem isn't tested without the radio_control subsystem, but it works when the transmitter is not sending (not in a optimised way because it is also continuously synchronising to get back the radio control signal). But for now everything seems to work in DSMX mode(because DSM2 still has some timing issues and is harder to debug) in combination with the MITM usb dongle.<br />
<br />
== Getting started ==<br />
For now I only have a small explanation on how to bind the MITM, the integrated CYRF6936 paparazzi and a normal DSMX or DSM2 transmitter with each other, later I will add more information when it is working.<br />
<br />
To MITM USB dongle automatically starts in binding mode, so you don't need to do anything besides plugging it in. When you have done that you start your autopilot with the bind plug, like a normal Spektrum receiver. Both the MITM and the autopilot are now in binding mode and waiting for the transmitter to send binding packets. Next, power on your transmitter in binding mode. When the MITM is done binding the yellow LED will go on. When the autopilot is done binding you don't see anything until it's synchronised with the transmitter, then the normal RC led will go on. It doesn't matter if you bind the autopilot and the MITM not at the same time, it only matters that they are bound to the exact same transmitter. When the binding is done everything should work!<br />
<br />
== Progress ==<br />
* 19/07/2013 - We now have the MITM working in combination with a normal transmitter in DSMX mode (DSM2 mode still has some problems) and also have the receiver part inside Paparazzi working. The transmitter and the receiver target of the superbitRF aren't fully functional yet, but the main focus was the MITM target. There are still some strange things happening in the timing, but we need to look more into the timings of different RC transmitters because that affects the MITM timing.<br />
* 09/07/2013 - Also got the downlink working!<br />
* 03/07/2013 - Got a fully working RC!<br />
* 02/07/2013 - After some simple logic analysing we figured out the faults and now we have a working SPI connection between the superbitRF and the Lisa M. Already implemented the binding procedure inside Paparazzi and we are receiving packets, but we didn't implement the handling of the binding packet.<br />
* 01/07/2013 - We connected a cyrf6936 chip directly to the spi bus of a Lisa M and are trying to receive the MFG id, manufacturer id, from the cyrf6936. Having some problems with that so we are going to sniff the spi connection and the reset pin with a logic analyser.<br />
* 28/06/2013 - We sniffed a normal dsm2 receiver spi bus connection to the cyrf6936 chip and found the errors in our own protocol. We are now able to bind to a normal DSM2 and DSMX transmitter trough DSM2 and receive the channels. The next step is to implement DSMX and make our own datalink work together with a normal transmitter. (We used saleae logic with a simple php script to analyze the cyrf6936 spi connection)<br />
* 20/06/2013 - Hacked the SITL(NPS) of paparazzi to enable a hardware datalink and tested the Quad Lisa M simulator with normal telemetry. Everything worked great, tweaked some of the timings of the receiver and transmitter, and we now have a reliable datalink!<br />
* 19/06/2013 - Made the datalink more reliable, and both the receiver and transmitter know when a packet is lost and resends it. Als did manage to get a simple datalink with an AR.Drone 2.<br />
* 18/06/2013 - We currently have a datalink working between two SuperbitRF usb modems. It isn't that reliable yet, but we are working on improving it. We can already bind to a normal DSM2/DSMX transmitter, but can't get the syncing to work. We are also working on testing the datalink transfer rate and testing how paparazzi handles the packet loss you have with a unreliable radio datalink.<br />
* 11/06/2013 - Received the SuperbitRF usb modems and did some simple testing with blinking light and receiving the radio chip ID.<br />
<br />
== The contributors ==<br />
* Piotr (working on the hardware)<br />
* Bart Remes<br />
* Freek van Tienen (working on the software)<br />
<br />
== Files ==<br />
Library with the superbit CYRF module footprint: [[File:Superbitrf.lbr.zip]].<br />
<br />
== Availability ==<br />
[[File:1bitsquared_logo.png|100px|link=http://1bitsquared.com]]<br />
<br />
As of 2014-06-25 Superbit CYRF is available for purchase from [http://1bitsquared.com/products/superbit-cyrf-module 1 BIT SQUARED], as well as the [http://1bitsquared.com/products/superbit-usbrf-dongle USBRF module].</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=File:SuperbitRF_protocol.png&diff=18875File:SuperbitRF protocol.png2014-08-01T13:58:24Z<p>Fvantienen: The SuperbitRF protocol overview.</p>
<hr />
<div>The SuperbitRF protocol overview.</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=NavStik&diff=18724NavStik2014-06-07T10:56:37Z<p>Fvantienen: </p>
<hr />
<div>[[File:tudelft_logo.jpg|left|120px|link=http://mavlab.lr.tudelft.nl/en/]]<br />
<br />
{| align=right<br />
|-<br />
|<categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree><br />
|}<br />
<div style="float: right; width: 45%">[[Image:Navstik_main.png|right|550px|The NavStik main autopilot board]]</div><br />
__TOC__<br />
<br />
= Overview =<br />
The NavStik autopilot comes from [http://www.navstik.org NavStik] and consists of a main board with several breakout boards. Until now we have 3 flavours in the breakout board, the IvyPRO, the IvyEZ and the IvyLITE. Each of these breakout boards have different specifications, but since the main board contains all the sensors they will never change.<br />
Next to the autopilot it has the capability to add a Gumstix Overo on top for more processing power.<br />
<br />
== Key Features ==<br />
The NavStik main board consists of the following main features:<br />
* 3-axis Accelerometer<br />
* 3-axis Gyroscope<br />
* 3-axis Magnetometer<br />
* Barometer (Static Pressure Sensor)<br />
* GPS (Optional)<br />
* Temperature Sensors for Temperature Compensation of Sensor Data<br />
* Cortex M4 Based Microcontroller (STM32F4: 32 bit, 168 MHz)<br />
* Onboard SPI Flash with 16 Mb Memory<br />
* Connectors for Interface Board (required for power and interface to external world)<br />
* Connectors for Gumstix Overo® (optional – available from Gumstix; for advanced applications)<br />
* Connector for GPS Antenna (optional; required for GPS applications)<br />
* Differential Pressure Sensor (optional; for air-speed estimation)<br />
* Power Regulators and Switches (for programmatically controlling power to different subsections)<br />
<br />
= Breakout Boards =<br />
Since the NavStik doesn't have any real connectors or power management you will need a breakout board for your autopilot to make it fully functional.<br />
In this section we will give you a short overview of the three different breakout boards.<br />
<br />
{|<br />
! style="text-align:left;"| Features<br />
! IvyPRO<br />
! IvyEZ<br />
! IvyLITE<br />
|-<br />
|PWM In/Out ||6 (0.1” Headers) + 6 (JST-SH Connector)|| 6 (0.1” Headers) + 6 (JST-SH Connector)|| 6 + 6 (All Pads)|| <br />
|-<br />
|Micro SD Card ||YES (Push-Push Type) || YES (Header Type) || YES (Header Type)||<br />
|-<br />
|Port for Telemetry (UART)||YES (JST-SH)||YES (JST-SH)||YES (Pads)||<br />
|-<br />
|NavStik USB Port(s) ||2 (Micro-USB, JST-SH) ||1 (Micro-USB) ||2 (Micro-USB, Pads)||<br />
|-<br />
|Port for Spektrum (UART) ||YES (JST-SH) ||NO ||NO||<br />
|-<br />
|Ports for Gumstix Overo® ||UART, USB (2)||NONE ||UART, USB||<br />
|-<br />
|Debug Port (for IvyGS) ||YES ||YES* ||YES||<br />
|-<br />
|Current Measurement ||YES ||NO ||NO||<br />
|-<br />
|Battery Voltage Monitor ||YES ||YES ||NO||<br />
|-<br />
|Input Voltage Range ||4.5V – 14.0V ||3.5V – 5.5V ||4.0V – 5.5V||<br />
|-<br />
|ESD, Short-Circuit Protection ||YES ||YES ||YES||<br />
|-<br />
|Auto Power Switching ||YES ||YES ||YES||<br />
|-<br />
|Cost ||+++++ ||+++ ||+++||<br />
|-<br />
|Size ||41mm x 35mm||41mm x 17mm||35mm x 17mm||<br />
|-<br />
|Weight ||˜8.6 gram||˜5 gram||˜3.2 gram<br />
|}<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Lisa/S&diff=18723Lisa/S2014-06-07T10:55:23Z<p>Fvantienen: </p>
<hr />
<div>[[File:tudelft_logo.jpg|left|120px|link=http://mavlab.lr.tudelft.nl/en/]]<br />
[[File:1bitsquared_logo.png|left|120px|link=http://1bitsquared.com]]<br />
[[Image:Lisa S V0 1 r2 on finger.jpg|300px|right]]<br />
<br />
__TOC__<br />
<br />
== Lisa/S ==<br />
<br />
Lisa/S is a very small general purpose autopilot. The main goal of creating an autopilot of minimal size and weight, while providing enough functionality to enable fully autonomous operation.<br />
<br />
=== Mechanical Dimensions ===<br />
<br />
* '''Size: 20mm x 20mm x 5mm (0.787" x 0.787" x 0.197")'''<br />
* '''Weight: 2.8g (0.1oz)'''<br />
<br />
=== Features ===<br />
<br />
* 72MHz 32bit ARM Cortex M3 MCU with 16KB RAM and 512KB Flash<br />
* Combined 3 Axis Gyroscope and 3 Axis Accelerometer<br />
* 3 Axis Magnetometer<br />
* Barometer (Altimeter)<br />
* Onboard U-Blox GPS<br />
* Pads to simply connect a [[SuperbitRF|Superbit CYRF]] RC and telemetry module<br />
* Switching buck/boost converter allowing wide range of power input making it perfect and stable for operation from a 1S LiPO cell.<br />
* 2 MOSFET switches connected to PWM output channels<br />
* 6 PWM (servo) outputs<br />
* 1 UART port<br />
* 1 CAN interface<br />
* 1 Bind/Boot tact switch<br />
* SWD programming/debugging interface<br />
* Size: 20mm x 20mm x 5mm (0.787" x 0.787" x 0.197")<br />
* Weight: 2.8g (0.1oz)<br />
<br />
=== Pictures ===<br />
<br />
[[Image:Lisa_s_v0_1_r2_top_ruler.jpg|300px]]<br />
[[Image:Lisa_s_v0_1_r2_bottom_ruler.jpg|300px]]<br />
[[Image:Lisa_s_v0_1_r2_top_superbit.jpg|300px]]<br />
[[Image:Lisa_s_v0_1_r2_bottom_superbit.jpg|300px]]<br />
<br />
So if you are ready to make your tiny plane fly autonomously,[http://1bitsquared.com/collections/frontpage/products/lisa-s you can already order one here]<br />
<br />
== Pinout ==<br />
<br />
TODO<br />
<br />
== Block Diagrams ==<br />
<br />
TODO<br />
<br />
== Barometer ==<br />
<br />
In order to use the barometer, you just need to add one line to your firmware block (in your airframe file) :<br />
<br />
{{Box Code|conf/airframes/myplane.xml|<br />
<source lang="xml"><br />
<firmware name="fixedwing"><br />
<target name="ap" board="lisa_s_0.1"><br />
...<br />
</target><br />
...<br />
<define name="USE_BAROMETER" value="TRUE"/><br />
...<br />
</firmware><br />
</source><br />
}}<br />
<br />
Once that line is added to the airframe file, you should be able to get the values of the barometer and paparazzi is going to take them into account when doing it's calculations.<br />
<br />
== Schematics ==<br />
<br />
[[Image:Lisa_s_0_1_r1_schematic.png|300px]]<br />
<br />
[[Category:Lisa]] [[Category:User_Documentation]] [[Category:Autopilots]]<br />
<br />
== Availability ==<br />
[[File:1bitsquared_logo.png|100px|link=http://1bitsquared.com]]<br />
<br />
As of 2013-11-27 Lisa/S is available for pre-order from [http://1bitsquared.com/products/lisa-s-starter-kit 1 BIT SQUARED].</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Category:Autopilots&diff=18722Category:Autopilots2014-06-06T21:54:16Z<p>Fvantienen: </p>
<hr />
<div>__NOTOC__<br />
__NOEDITSECTION__<br />
<br />
{|style="border-spacing:8px;margin:0px -8px" class="MainPageBG" style="width:100%;border:1px solid #9999bf;background-color:#f5fffa;vertical-align:top;color:#000; text-align: left;"<br />
|-valign="top"<br />
|<br />
<h3 style="-moz-border-radius-topright: 0.7em;<br />
background:#cedff2;margin:-2px;padding:4px;"><br />
[[Image:favicon32.png|32px]] Autopilots<br />
</h3><br />
<div style="padding:6px;"><br />
{{Autopilots}}<br />
</div><br />
<!-- Start of right-column --><br />
| class="MainPageBG" style="width:70%;border:1px solid #cedff2;background-color:#f5fffa;vertical-align:top"|<br />
{|width="100%" cellpadding="2" cellspacing="5" style="vertical-align:top;background-color:#f5fffa"<br />
|-valign="top"<br />
| <h2 style="margin:0;background-color:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3bfb1;text-align:left;color:#000;padding:0.2em 0.4em;">Paparazzi Autopilots</h2><br />
|-<br />
|Hardware support for Autopilot versions currently in use. <br />
|-<br />
|[[Image:tiny13_family_top_sm.jpg|center|400px|Tiny 1.1 autopilots on the "assembly line"]]<br />
|-<br />
|One of the great advantages of Paparazzi is support for multiple hardware designs. The old Paparazzi board where based around ATMega MCUs. The current autopilots are designed around two primary processors:<br />
*STM32 series microcontrollers <br />
*LPC21xx series microcontrollers<br />
There are active and current autopilots designs using both architectures. Not all autopilots have the same capabilities, peripherals or features, but each has advantages in different applications.<br />
<br />
Currently, boards are designed around the STM32F1 series, but there is future upgrade path capabilities to the F2 and F4 series, giving way to feature rich processors with a variety of peripherals and speeds. Architecture-dependent firmware code is supported in part by [http://www.libopencm3.org libopencm3]. The [[Lisa]] an [[Krooz]] autopilots use the STM32.<br />
<br />
The LPC21xx based boards use the LPC2148 and have been flying fixed wing and multi-rotors for many years. This architecture is more mature but at the expense of speed and extra ports available on the newer STM32 series processors. The [[Tiny]] series, [[Booz]], [[TWOG/v1.0 | TWOG]], [[YAPA]], [[Umarim_Lite_v2 | Umarim]] and [[NavGo_v3 | NavGo]] autopilots all use the LPC2148.<br />
<br />
Some autopilots have also been designed for close integration with small single-board computers, particularly those based on [[OMAP]] processors such as the [http://www.gumstix.com/ Gumstix] [https://www.gumstix.com/store/index.php?cPath=33 Overo] series. The [[Lisa/L]] and [[Classix]] boards are designed with this in mind, though other autopilots can be easily interfaced. Further information can be found [[OMAP|here]].<br />
<br />
A basic feature comparison table is presented to help in the autopilot hardware selection process. Stable tried tested LPC or more cutting edge STM32.<br />
<br />
For information regarding architecture and firmware compatibility of various subsystems and modules, please see the appropriate [[Subsystems]] overview and [[Modules_list|Modules List]] pages.<br />
<br />
NOTE: The accuracy of this table '''may not be 100% correct''', the best resource is always hardware and software source files and individual autopilot pages.<br />
<br />
<br />
{| border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="100%"<br />
|+'''Autopilot<sup>1</sup> Feature Matrix'''<br />
| align="center" width="16%" style="background:#f0f0f0;"|'''Feature'''<br />
| align="center" width="7%" style="background:#f0f0f0;"|'''[[Lisa/L|Lisa/L v1.1]]'''<br />
| align="center" width="7%" style="background:#f0f0f0;"|'''[[Lisa/M_v20|Lisa/M v2.0]]'''<br />
| align="center" width="7%" style="background:#f0f0f0;"|'''[[Lisa/S]]'''<br />
| align="center" width="7%" style="background:#f0f0f0;"|'''[[NavStik|NavStik]]'''<br />
| align="center" width="7%" style="background:#f0f0f0;"|'''[[KroozSD|KroozSD]]'''<br />
| align="center" width="7%" style="background:#f0f0f0;"|'''[[Apogee/v1.00|Apogee v1.00]]'''<br />
| align="center" width="7%" style="background:#f0f0f0;"|'''[[Umarim_v10|Umarim v1.0]]'''<br />
| align="center" width="7%" style="background:#f0f0f0;"|'''[[Umarim_Lite_v2|Umarim Lite v2]]'''<br />
| align="center" width="7%" style="background:#f0f0f0;"|'''[[NavGo_v3|NavGo v3]]'''<br />
| align="center" width="7%" style="background:#f0f0f0;"|'''[[Tiny/v2.11|Tiny v2.11]]'''<br />
| align="center" width="7%" style="background:#f0f0f0;"|'''[[TWOG/v1.0|TWOG v1.0]]'''<br />
| align="center" width="7%" style="background:#f0f0f0;"|'''[[YAPA/v2.0|YAPA v2.0]]'''<br />
| align="center" width="7%" style="background:#f0f0f0;"|'''[[HBmini/v2.0]]'''<br />
|-<br />
|style="background:#f0f0f0;"| || align="center" colspan="13"|'''MCU'''<br />
|-<br />
| style="background:#f0f0f0;"|'''Part'''||<small>STM32F103RE</small>||<small>STM32F105RCT6</small>||<small>STM32F103REY6</small>||<small>STM32F415RG</small>||<small>STM32F405RGT6</small>||<small>STM32F405RGT6</small>||LPC2148||LPC2148||LPC2148||LPC2148||LPC2148||LPC2148||LPC2148<br />
|-<br />
| style="background:#f0f0f0;"|'''Clock'''||72MHz||72MHz||72MHz||168MHz||168MHz||168MHz||60MHz||60MHz||60MHz||60MHz||60MHz||60MHz||60MHz<br />
|-<br />
| style="background:#f0f0f0;"|'''Flash'''||512kB||256kB||512kB||1024kB||1024kB||1024kB||512kB||512kB||512kB||512kB||512kB||512kB||512kB<br />
|-<br />
| style="background:#f0f0f0;"|'''RAM<sup>2</sup>'''||64kB||64kB||64kB||192kB|||128 & 64kB||128 & 64kB||32kB & 8kB||32kB & 8kB||32kB & 8kB||32kB & 8kB||32kB & 8kB||32kB & 8kB||32kB & 8kB<br />
|-<br />
|style="background:#f0f0f0;"| || align="center" colspan="13"|'''Onboard Sensors<sup>3</sup>'''<br />
|-<br />
| style="background:#f0f0f0;"|'''MEMS IMU'''||no||aspirin||yes||yes||krooz/ext||yes||yes||yes||yes||no||no||no||yes<br />
|-<br />
| style="background:#f0f0f0;"|'''Magnetometer'''|| || ||yes||yes||yes||yes||no||no||yes||no||no||no||yes<br />
|-<br />
| style="background:#f0f0f0;"|'''Barometer'''||yes||yes||yes||yes||yes||yes||yes||no||yes||no||no||no||yes<br />
|-<br />
| style="background:#f0f0f0;"|'''Diff Pressure'''||yes||no||no||optional||no||no||no||no||no||no||no||no||no<br />
|-<br />
| style="background:#f0f0f0;"|'''GPS'''||no||no||yes||optional||no||no||no||no||no||yes||no||no||no<br />
|-<br />
|style="background:#f0f0f0;"| || align="center" colspan="13"|'''Input/Output<sup>4</sup> & Communication Interfaces'''<br />
|-<br />
| style="background:#f0f0f0;"|'''UART'''||3 & 1RX||2 & 2RX||1 & 1RX||4<sup>9</sup>||3||3 & 1Rx||2||2||2||1||2||2||2<br />
|-<br />
| style="background:#f0f0f0;"|'''I2C'''||2||1 + 1<sup>5</sup>||1<sup>8</sup>||2<sup>9</sup>||2||2||2||1||2||1||1||1||2<br />
|-<br />
| style="background:#f0f0f0;"|'''SPI'''||2||1||0||1<sup>9</sup>||1||1||1||1||1||1||1||1||1<br />
|-<br />
| style="background:#f0f0f0;"|'''ADC'''||3 (12bit)||3 + 2 (12bit)<sup>5</sup>||0||2<sup>9</sup>||4 + 1 (12bit)<sup>5</sup>||0 + 3 (12bit)||0 + 4 (10bit)||8<sup>6</sup>||0 + 4 (10bit)<sup>6</sup>||0 + 1 (10bit)<sup>6</sup>||8 (10bit)||6 (10bit)||8 (10bit)(16bit)<br />
|-<br />
| style="background:#f0f0f0;"|'''PWM'''||6||6 + 2<sup>5</sup>||6||6<sup>9</sup>||10 + 1<sup>5</sup>||6 + 1||6||6||0 + 1<sup>5</sup>||8||8||10||10<br />
|-<br />
| style="background:#f0f0f0;"|'''PPM Output'''||no||no||no||no||no||no||no||no||no||1||1||no|| <br />
|-<br />
| style="background:#f0f0f0;"|'''PPM Capture'''||1||0 + 1<sup>5</sup>||1||6<sup>9</sup>||1||1 + 1<sup>5</sup>||1 + 1<sup>5</sup>||1 + 1<sup>5</sup>||1||1||1||1<br />
|-<br />
| style="background:#f0f0f0;"|'''R/C serial'''|| ||2||1||1<sup>9</sup>|| ||1 (standard & S.BUS)|| || || || || || || <br />
|-<br />
| style="background:#f0f0f0;"|'''GPIO<sup>7</sup>'''||?||1||0||?||2 + 1<sup>5</sup>||0 + 4||0 + 4<sup>6</sup>||0 + 4<sup>6</sup>||0 + 2<sup>6</sup>||2||2||1||11<br />
|-<br />
| style="background:#f0f0f0;"|'''Onboard LEDs'''||8||5||4||3||3||4||2||2||4||3||3||3||2<br />
|-<br />
| style="background:#f0f0f0;"|'''USB Peripheral'''||Onboard USB JTAG + UART||bootloader||no||DFU bootloader||bootloader||DFU bootloader + USB storage||bootloader||bootloader||bootloader||bootloader||bootloader||bootloader||bootlader <br />
|-<br />
| style="background:#f0f0f0;"|'''CAN'''||1||1||1||no||no||no||no||no||no||no||no||no||<br />
|-<br />
| style="background:#f0f0f0;"|'''MODEM connector'''|| || || || ||Xbee||no||no||no||no||no||no||Xbee||<br />
|-<br />
|style="background:#f0f0f0;"| || align="center" colspan="13"|'''Onboard Peripherals'''<br />
|-<br />
| style="background:#f0f0f0;"|'''SD card/interface'''|| || || ||yes/SPI||yes/SPI||yes/SDIO + USB storage||no||no||no||no||no|| || <br />
|-<br />
| style="background:#f0f0f0;"|'''RTC'''|| || || || || ||yes + backup cap.||no||no||no||no||no|| || <br />
|-<br />
| style="background:#f0f0f0;"|'''Others'''||Overo w/ I/O incl. USB Host||Aspirin footprint, JTAG header|| ||Overo, 16Mb SPI Flash, HDMI with JTAG+2xUART||On-board micro-USB B header||On-board mini-USB B header|| ||On-board mini-USB B header|| || || ||RS232 options||Buzzer<br />
|-<br />
|style="background:#f0f0f0;"| || align="center" colspan="13"|'''Program & Debug Interface'''<br />
|-<br />
| style="background:#f0f0f0;"|''' '''||USB (luftboot)+ JTAG + UART||USB (luftboot)+ JTAG + UART|| SWD + UART || USB + JTAG(HDMI) + UART || ||USB(DFU) + SWD||USB (pprz bootloader)||USB (pprz bootloader)||USB (pprz bootloader)||USB (pprz bootloader)||USB (pprz bootloader)||USB (pprz bootloader)||JTAG<br />
|-<br />
|style="background:#f0f0f0;"| || align="center" colspan="13"|'''Power Management'''<br />
|-<br />
| style="background:#f0f0f0;"|'''Supply Input'''||6.1V - 18V||5V - 16V||2.3V - 5.5V||3.5V - 14V<sup>9</sup>||7V - 32V||5.5V - 17V||5.5V - 17V||5.5V - 17V||5.5V - 16V||6.1V - 18V||6.1V - 18V||6.1V - 18V||6.1-18V<br />
|-<br />
| style="background:#f0f0f0;"|'''Supply Output'''||2.25@5V, 2.25A@3.3V, Other||500mA@3.3V, 250mA@5V||1A@3.3V||3.3V ?||1.5A@3.3V, 5A@5V||1A@3.3V, 1.5A@5V||1A@3.3V, 1.5A@5V||1A@3.3V, 1.5A@5V||1A@3.3V, 1.5A@5V||1A@3.3V, 2.25A@5V||1A@3.3V, 2.25A@5V||2x 1A@3.3V, 2.25A@5V||1A@3.3V, 2.25A@5V<br />
|-<br />
| style="background:#f0f0f0;"|'''Software Switch'''||2||no||1||4||no||1 (5V)||no||no||no||1||1||1||4<br />
|-<br />
|style="background:#f0f0f0;"| || align="center" colspan="13"|'''Mechanical'''<br />
|-<br />
| style="background:#f0f0f0;"|'''Size'''||~100mm x ~50mm||34mm x 60mm x 10mm||20mm x 20mm x 5mm||?<sup>9</sup>||50mm x 60mm x 10mm||53 x 25 x 9mm (shares the same external dimensions as UmarimLite)||56mm x 25mm||53mm x 25mm||35mm x 35mm||70.8mm x 40mm||40.2mm x 30.5mm||80.0mm x 40.0mm?||57x30mm<br />
|-<br />
| style="background:#f0f0f0;"|'''Weight'''||?||9.9g - 10.8g||2g||?<sup>9</sup>||20g - 40g||10g||9g||8g||?||24g||8g||23g w/ XBee?||30<br />
|-<br />
| style="background:#f0f0f0;"|'''Connector Style'''||Picoblade||Picoblade & 0.1" Servo||0.05" header||?<sup>9</sup>||Picoblade & 0.1" Servo||Picoblade||Picoblade||Picoblade||Picoblade||Picoblade||Picoblade||0.1" Headers||Picoblade & 0.1" Servo<br />
|-<br />
| style="background:#f0f0f0;"|'''PCB Style'''||4-layer||4-layer||6-layer||?||2-layer||4-layer||4-layer||4-layer||4-layer||2-layer||2-layer||2-layer||4-layer<br />
|-<br />
| style="background:#f0f0f0;"|'''Mounting Holes'''||4x M3||4x 2mm||no||4x ?||4x M3||4x 2mm (shares the same mounting points as UmarimLite)||4x 2mm||4x 2mm||4x 2mm||no||no||4x M3||4xM2<br />
|-<br />
|style="background:#f0f0f0;"| || align="center" colspan="12"|'''Comments'''<br />
|-<br />
| style="background:#f0f0f0;"|'''Comments'''||IMU and Overo Mount Location, Many Features|| || ||Overo can be mount, Cortex™-M4 168MHz processor with FPU unit, onboard IMU, microSD card slot, 16Mb SPI Flash, onboard GPS, onboard speed sensor||High speed Cortex™-M4 168MHz processor with FPU unit, IMU, microSD card slot, OSD, onboard XBee connector||Cortex-M4 MCU, 9DOF IMU + Baro, Hi-speed microSD logging + USB storage mode, S.BUS compatible, small and lightweight ||Small Dimensions, narrow fuselage form factor, IMU||Smallest Dimensions, IMU, basic version of Umarim||Small Dimensions, IMU, magnetometer & high sensitivity Barometer; designed for small rotorcraft||Onboard u-blox GPS, designed for easy DIY assembly (same as TWOG)||Basic, no onboard sensors (all external for expandability)||Specially designed to work with rs232 sensors such as XSens Mit-G/Crossbow NAV420/ig500/3DM-GX3/DMS-SGP02/MGL-sp-5. Onboard XBee connector|| can use mpu6050 or mpu6000<br />
|-<br />
| style="background:#f0f0f0;"|'''Typical Usage'''||Advanced payload and controls development using Gumstix; fixed-wing or rotorcraft||Small, general purpose w/ IMU; fixed-wing or rotorcraft|| || ||High integrated, high productivity board w/ IMU, microSD card, OSD and XBee; rotorcraft or fixed-wing||Small and powerful general purpose ;fixed-wing||Small, general purpose w/ IMU; fixed-wing||Small, general purpose w/ IMU; fixed-wing||Small, general purpose w/ IMU; rotorcraft||Small, general purpose w/ GPS; fixed-wing with external IR or IMU||Small, general purpose; fixed wing with all external sensors||0.1" headers means easier wiring, at the cost of weight||For all kind of aircarft<br />
|-<br />
| style="background:#f0f0f0;"|'''Date Introduced'''||Summer 2010||Winter 2012||Summer 2013||Summer 2013||Spring 2013||Summer 2013||Fall 2011||Summer 2012||Summer 2012||Fall 2007||Spring 2008||Spring 2011||Winter 2012<br />
|-<br />
| style="background:#f0f0f0;"|'''Previous Versions'''||[[Lisa/L]] v1.0||[[Lisa/M_v10|Lisa/M v1.0]]|| || ||[[Krooz|Krooz]]|| || || || ||[[Tiny/v1.1|Tiny v1.1]], [[Tiny/v0.99|Tiny v0.99]]|| ||[[YAPA/v1.0|YAPA v1.0]]|| <br />
|}<br />
<br />
'''Notes:'''<br />
<br />
'''1.''' Only the newest revisions of the more commonly used autopilots are listed<br />
<br />
'''2.''' The extra 8kB of RAM on the LPC2148 shared with the USB DMA<br />
<br />
'''3.''' The onboard sensors are almost always supplemented with external sensors. For example, TWOG can use an external IMU or IR sensors, and also needs an external GPS.<br />
<br />
'''4.''' Input/Outputs listed are generally those easily accessible on regular autopilot connectors, customization/hacks can modify available I/O, for example free an extra I2C on Tiny and TWOG<br />
<br />
'''5., 6.''' Some features use shared resources - denoted by X + Y where Y is shared - and cannot be used simultaneously<br />
<br />
'''5.''' Lisa/M v2.0 shared resources include: one I2C is shared with 2 PWM outputs, two ADCs are shared with LEDs, one RX only UART is shared with the PPM capture<br />
<br />
'''6.''' Umarim v1.0 shared resources include: 4 ADCs are shared with 4 GPIOs<br />
<br />
'''7.''' Usually other unused pins can be used for additional GPIO with some code modifications<br />
<br />
'''8.''' Many of the pins have multiple purposes. Servo 5&6 can be used for i2c even though there is no dedicated connector.<br />
<br />
'''9.''' Depending on the breakout board on the autopilot which outputs/inputs are made available.<br />
<br />
|-<br />
|<h2>Schematics, CAD files, Gerber files, BOM release strategy</h2><br />
|-<br />
|<h3>About the hardware development and release process.</h3><br />
<br />
[https://github.com/paparazzi/paparazzi-hardware Files needed to create the hardware can be found here]. It is always good to remind oneself of the email Antoine once wrote in the mailing list before you want to start producing your own PCB's.<br />
<br />
<P>8 June 2011 13:25:47 Antoine Drouin wrote on the mailing list:</P><br />
<br />
I've started this project together with Pascal 8 years ago and since then I have dedicated my time to try and make it successful. I'm utterly convinced of the benefits of open source, but observing how Paparazzi grew over time, I came to the conclusion that hardware is a bit different than software... "gcc tiny.brd" is not going to make a board magically appear on your desktop. <br />
<br />
I'll list here some of my arguments in favor of releasing CAD files after the board is mature.<br />
<br />
# Unlike software, where an unskilled user can type make and get a piece of complex software to successfully build, assembling hardware requires tools and skills. Providing gerbers and BOM have lured a bunch of new users into believing otherwise and has created tons of frustration. I've myself fixed a number of badly assembled boards and I even recall that while helping debugging a board (so after assembly), discovering that the person had manufactured two layers PCBs instead of four layers. As the technology of the autopilot increases, this problem becomes more and more important.<br />
# The success of the project depends on the availability of affordable hardware. The price of hardware is directly and exponentially dependent on the number of manufactured units. If ten persons manufacture 10 boards each, the cost will be much higher than if one person manufactures 100.<br />
# Last and not least, the quality of assembly also depends very much on the number of manufactured units. Good quality can only be achieved through the use of automated placing and soldering, and those processes can only be used if the number of units reach a certain amount.<br />
<br />
|}<br />
|}<br />
<br />
[[Category:Hardware]] [[Category:User_Documentation]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=NavStik&diff=18721NavStik2014-06-06T20:48:25Z<p>Fvantienen: </p>
<hr />
<div>{| align=right<br />
|-<br />
|<categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree><br />
|}<br />
<div style="float: right; width: 45%">[[Image:Navstik_main.png|right|550px|The NavStik main autopilot board]]</div><br />
__TOC__<br />
<br />
= Overview =<br />
The NavStik autopilot comes from [http://www.navstik.org NavStik] and consists of a main board with several breakout boards. Until now we have 3 flavours in the breakout board, the IvyPRO, the IvyEZ and the IvyLITE. Each of these breakout boards have different specifications, but since the main board contains all the sensors they will never change.<br />
Next to the autopilot it has the capability to add a Gumstix Overo on top for more processing power.<br />
<br />
== Key Features ==<br />
The NavStik main board consists of the following main features:<br />
* 3-axis Accelerometer<br />
* 3-axis Gyroscope<br />
* 3-axis Magnetometer<br />
* Barometer (Static Pressure Sensor)<br />
* GPS (Optional)<br />
* Temperature Sensors for Temperature Compensation of Sensor Data<br />
* Cortex M4 Based Microcontroller (STM32F4: 32 bit, 168 MHz)<br />
* Onboard SPI Flash with 16 Mb Memory<br />
* Connectors for Interface Board (required for power and interface to external world)<br />
* Connectors for Gumstix Overo® (optional – available from Gumstix; for advanced applications)<br />
* Connector for GPS Antenna (optional; required for GPS applications)<br />
* Differential Pressure Sensor (optional; for air-speed estimation)<br />
* Power Regulators and Switches (for programmatically controlling power to different subsections)<br />
<br />
= Breakout Boards =<br />
Since the NavStik doesn't have any real connectors or power management you will need a breakout board for your autopilot to make it fully functional.<br />
In this section we will give you a short overview of the three different breakout boards.<br />
<br />
{|<br />
! style="text-align:left;"| Features<br />
! IvyPRO<br />
! IvyEZ<br />
! IvyLITE<br />
|-<br />
|PWM In/Out ||6 (0.1” Headers) + 6 (JST-SH Connector)|| 6 (0.1” Headers) + 6 (JST-SH Connector)|| 6 + 6 (All Pads)|| <br />
|-<br />
|Micro SD Card ||YES (Push-Push Type) || YES (Header Type) || YES (Header Type)||<br />
|-<br />
|Port for Telemetry (UART)||YES (JST-SH)||YES (JST-SH)||YES (Pads)||<br />
|-<br />
|NavStik USB Port(s) ||2 (Micro-USB, JST-SH) ||1 (Micro-USB) ||2 (Micro-USB, Pads)||<br />
|-<br />
|Port for Spektrum (UART) ||YES (JST-SH) ||NO ||NO||<br />
|-<br />
|Ports for Gumstix Overo® ||UART, USB (2)||NONE ||UART, USB||<br />
|-<br />
|Debug Port (for IvyGS) ||YES ||YES* ||YES||<br />
|-<br />
|Current Measurement ||YES ||NO ||NO||<br />
|-<br />
|Battery Voltage Monitor ||YES ||YES ||NO||<br />
|-<br />
|Input Voltage Range ||4.5V – 14.0V ||3.5V – 5.5V ||4.0V – 5.5V||<br />
|-<br />
|ESD, Short-Circuit Protection ||YES ||YES ||YES||<br />
|-<br />
|Auto Power Switching ||YES ||YES ||YES||<br />
|-<br />
|Cost ||+++++ ||+++ ||+++||<br />
|-<br />
|Size ||41mm x 35mm||41mm x 17mm||35mm x 17mm||<br />
|-<br />
|Weight ||˜8.6 gram||˜5 gram||˜3.2 gram<br />
|}<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=NavStik&diff=18720NavStik2014-06-06T20:44:27Z<p>Fvantienen: </p>
<hr />
<div>{| align=right<br />
|-<br />
|<categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree><br />
|}<br />
<div style="float: right; width: 45%">[[Image:Navstik_main.png|right|550px|The NavStik main autopilot board]]</div><br />
__TOC__<br />
<br />
= Overview =<br />
The NavStik autopilot comes from [http://www.navstik.org NavStik] and consists of a main board with several breakout boards. Until now we have 3 flavours in the breakout board, the IvyPRO, the IvyEZ and the IvyLITE. Each of these breakout boards have different specifications, but since the main board contains all the sensors they will never change.<br />
Next to the autopilot it has the capability to add a Gumstix Overo on top for more processing power.<br />
<br />
= Breakout Boards =<br />
Since the NavStik doesn't have any real connectors or power management you will need a breakout board for your autopilot to make it fully functional.<br />
In this section we will give you a short overview of the three different breakout boards.<br />
<br />
<br />
{|<br />
! style="text-align:left;"| Features<br />
! IvyPRO<br />
! IvyEZ<br />
! IvyLITE<br />
|-<br />
|PWM In/Out ||6 (0.1” Headers) + 6 (JST-SH Connector)|| 6 (0.1” Headers) + 6 (JST-SH Connector)|| 6 + 6 (All Pads)|| <br />
|-<br />
|Micro SD Card ||YES (Push-Push Type) || YES (Header Type) || YES (Header Type)||<br />
|-<br />
|Port for Telemetry (UART)||YES (JST-SH)||YES (JST-SH)||YES (Pads)||<br />
|-<br />
|NavStik USB Port(s) ||2 (Micro-USB, JST-SH) ||1 (Micro-USB) ||2 (Micro-USB, Pads)||<br />
|-<br />
|Port for Spektrum (UART) ||YES (JST-SH) ||NO ||NO||<br />
|-<br />
|Ports for Gumstix Overo® ||UART, USB (2)||NONE ||UART, USB||<br />
|-<br />
|Debug Port (for IvyGS) ||YES ||YES* ||YES||<br />
|-<br />
|Current Measurement ||YES ||NO ||NO||<br />
|-<br />
|Battery Voltage Monitor ||YES ||YES ||NO||<br />
|-<br />
|Input Voltage Range ||4.5V – 14.0V ||3.5V – 5.5V ||4.0V – 5.5V||<br />
|-<br />
|ESD, Short-Circuit Protection ||YES ||YES ||YES||<br />
|-<br />
|Auto Power Switching ||YES ||YES ||YES||<br />
|-<br />
|Cost ||+++++ ||+++ ||+++||<br />
|-<br />
|Size ||41mm x 35mm||41mm x 17mm||35mm x 17mm||<br />
|-<br />
|Weight ||˜8.6 gram||˜5 gram||˜3.2 gram<br />
|}<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=NavStik&diff=18719NavStik2014-06-06T20:32:54Z<p>Fvantienen: </p>
<hr />
<div>{| align=right<br />
|-<br />
|<categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree><br />
|}<br />
<div style="float: right; width: 45%">[[Image:Navstik_main.png|right|550px|The NavStik main autopilot board]]</div><br />
__TOC__<br />
<br />
= Overview =<br />
The NavStik autopilot comes from [http://www.navstik.org NavStik] and consists of a main board with several breakout boards. Until now we have 3 flavours in the breakout board, the IvyPRO, the IvyEZ and the IvyLITE. Each of these breakout boards have different specifications, but since the main board contains all the sensors they will never change.<br />
Next to the autopilot it has the capability to add a Gumstix Overo on top for more processing power.<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=NavStik&diff=18718NavStik2014-06-06T20:32:01Z<p>Fvantienen: Created page with "{| align=right |- |<categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree> |} <div style=..."</p>
<hr />
<div>{| align=right<br />
|-<br />
|<categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree><br />
|}<br />
<div style="float: right; width: 45%">[[Image:Navstik_main.png|right|550px|The NavStik main autopilot board]]</div><br />
__TOC__<br />
<br />
= Overview =<br />
The NavStik autopilot comes from [http://www.navstik.org NavStik], and consists of a main board with several breakout boards. Until now we have 3 flavours in the breakout board, the IvyPRO, the IvyEZ and the IvyLITE. Each of these breakout boards have different specifications, but since the main board contains all the sensors they will never change.<br />
Next to the autopilot it has the capability to add a Gumstix Overo on top for more processing power.<br />
<br />
[[Category:Autopilots]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=File:Navstik_main.png&diff=18717File:Navstik main.png2014-06-06T20:20:44Z<p>Fvantienen: The Navstik main board</p>
<hr />
<div>The Navstik main board</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Subsystems&diff=15809Subsystems2013-08-31T12:37:41Z<p>Fvantienen: /* Available Subsystems */</p>
<hr />
<div><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages hideprefix=always>Subsystems</categorytree><br />
<br />
Mostly a subsystem is a part offering a specific functionality with a<br />
defined interface and can have multiple different implementations. (See <tt>sw/airborne/subsystems/...</tt>)<br />
<br />
They are selected and configured with a <source lang="xml" enclose="none"><subsystem name="foo" type="bar"></source> in the [[Airframe_Configuration#Firmware_and_Hardware_definitions|firmware section of the airframe file]].<br />
<br />
All this does is basically include a makefile <tt>foo_bar.makefile</tt> that adds the respective sources and adds a few configuration options. (See <tt>conf/firmwares/subsystems/...</tt>)<br />
<br />
This makes it easier to put an airframe file together (they replace the old raw makefile section) and also allows us to change the code and move/rename files behind the scenes without breaking everyones airframe files.<br />
<br />
See [[FirmwareArchitecture]] for the differences to [[Modules]], as well as how to write a new subsystem.<br />
<br />
== Available Subsystems ==<br />
<br />
{| class="wikitable" border="1"<br />
! Name !! Types !! Firmwares !! Architecture !! Description<br />
|-<br />
|[[Subsystem/gps|gps]]<br />
||<br />
* ublox<br />
* ublox_utm<br />
* nmea<br />
* mediatek_diy<br />
* skytraq <br />
|<br />
* all<br />
* fixedwing<br />
* all<br />
* fixedwing<br />
* rotorcraft<br />
|<br />
* all<br />
| GPS drivers<br />
|-<br />
|[[Subsystem/imu|imu]]<br />
||<br />
* analog<br />
* apogee<br />
* aspirin_v1.0<br />
* aspirin_v1.5<br />
* aspirin_v2.1<br />
* aspirin_v2.2<br />
* aspirin_i2c_v1.0<br />
* aspirin_i2c_v1.5<br />
* aspirin2_i2c<br />
* b2_v1.0<br />
* b2_v1.1<br />
* b2_v1.2<br />
* drotek_10dof_v2<br />
* gl1<br />
* yai<br />
* krooz_sd<br />
* navgo<br />
* umarin<br />
* crista<br />
* crista_hmc5843<br />
* ppzuav<br />
|<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* rotorcraft<br />
* rotorcraft<br />
* fixedwing<br />
|<br />
* all<br />
* stm32f4<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* stm32f4<br />
* lpc21<br />
* lpc21<br />
* all<br />
* all<br />
* all<br />
|| IMU drivers<br />
Traditional IR sensors can be used for fixedwing<br />
<br />
but an IMU subsystem is not required<br />
|-<br />
|-<br />
|[[Subsystem/ahrs|ahrs]]<br />
||<br />
* float_dcm <br />
* int_cmpl_euler<br />
* int_cmpl_quat<br />
* infrared<br />
|<br />
* all<br />
|<br />
* all<br />
|| AHRS algorithms<br />
|-<br />
|[[Subsystem/radio_control|radio_control]]<br />
||<br />
* ppm<br />
* spektrum<br />
* datalink<br />
* superbitrf_rc<br />
| <br />
* all<br />
| <br />
* all<br />
* STM32<br />
* all<br />
* STM32<br />
| Radio Control implementations<br />
|-<br />
|[[Subsystem/telemetry|telemetry]]<br />
||<br />
* transparent<br />
* transparent_usb<br />
* xbee_api<br />
* superbitrf<br />
| <br />
* all<br />
* all<br />
* all<br />
* rotorcraft<br />
|<br />
* all<br />
* LPC21xx<br />
* all<br />
* STM32<br />
| Telemetry implementations<br />
|-<br />
|[[Subsystem/actuators|actuators]]<br />
||<br />
* mkk<br />
* asctec<br />
* asctec_v2<br />
* pwm_supervision<br />
* skiron<br />
* heli<br />
| <br />
* rotorcraft<br />
* rotorcraft<br />
* rotorcraft<br />
* rotorcraft<br />
* rotorcraft<br />
* rotorcraft<br />
| <br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
| Drivers for different ESCs for rotorcraft<br />
Fixedwing ESCs and servos are<br />
<br />
possible on all firmwares/architectures<br />
|-<br />
|[[Subsystem/stabilization|stabilization]]<br />
||<br />
* int_quat<br />
* float_quat<br />
* euler<br />
| <br />
* rotorcraft<br />
* rotorcraft<br />
* rotorcraft<br />
<br />
| <br />
* all<br />
* all<br />
* all<br />
| Attitude control system for rotorcraft<br />
|}<br />
<br />
<br />
<br />
[[Category:Software]] [[Category:Developer_Documentation]] [[Category:Subsystems]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=Subsystems&diff=15806Subsystems2013-08-31T12:29:33Z<p>Fvantienen: /* Available Subsystems */</p>
<hr />
<div><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages hideprefix=always>Subsystems</categorytree><br />
<br />
Mostly a subsystem is a part offering a specific functionality with a<br />
defined interface and can have multiple different implementations. (See <tt>sw/airborne/subsystems/...</tt>)<br />
<br />
They are selected and configured with a <source lang="xml" enclose="none"><subsystem name="foo" type="bar"></source> in the [[Airframe_Configuration#Firmware_and_Hardware_definitions|firmware section of the airframe file]].<br />
<br />
All this does is basically include a makefile <tt>foo_bar.makefile</tt> that adds the respective sources and adds a few configuration options. (See <tt>conf/firmwares/subsystems/...</tt>)<br />
<br />
This makes it easier to put an airframe file together (they replace the old raw makefile section) and also allows us to change the code and move/rename files behind the scenes without breaking everyones airframe files.<br />
<br />
See [[FirmwareArchitecture]] for the differences to [[Modules]], as well as how to write a new subsystem.<br />
<br />
== Available Subsystems ==<br />
<br />
{| class="wikitable" border="1"<br />
! Name !! Types !! Firmwares !! Architecture !! Description<br />
|-<br />
|[[Subsystem/gps|gps]]<br />
||<br />
* ublox<br />
* ublox_utm<br />
* nmea<br />
* mediatek_diy<br />
* skytraq <br />
|<br />
* all<br />
* fixedwing<br />
* all<br />
* fixedwing<br />
* rotorcraft<br />
|<br />
* all<br />
| GPS drivers<br />
|-<br />
|[[Subsystem/imu|imu]]<br />
||<br />
* analog<br />
* apogee<br />
* aspirin_v1.0<br />
* aspirin_v1.5<br />
* aspirin_v2.1<br />
* aspirin_v2.2<br />
* aspirin_i2c_v1.0<br />
* aspirin_i2c_v1.5<br />
* aspirin2_i2c<br />
* b2_v1.0<br />
* b2_v1.1<br />
* b2_v1.2<br />
* drotek_10dof_v2<br />
* gl1<br />
* yai<br />
* krooz_sd<br />
* navgo<br />
* umarin<br />
* crista<br />
* crista_hmc5843<br />
* ppzuav<br />
|<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* rotorcraft<br />
* rotorcraft<br />
* fixedwing<br />
|<br />
* all<br />
* stm32f4<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* stm32f4<br />
* lpc21<br />
* lpc21<br />
* all<br />
* all<br />
* all<br />
|| IMU drivers<br />
Traditional IR sensors can be used for fixedwing<br />
<br />
but an IMU subsystem is not required<br />
|-<br />
|-<br />
|[[Subsystem/ahrs|ahrs]]<br />
||<br />
* float_dcm <br />
* int_cmpl_euler<br />
* int_cmpl_quat<br />
* infrared<br />
|<br />
* all<br />
|<br />
* all<br />
|| AHRS algorithms<br />
|-<br />
|[[Subsystem/radio_control|radio_control]]<br />
||<br />
* ppm<br />
* spektrum<br />
* datalink<br />
* superbitrf_rc<br />
| <br />
* all<br />
* all<br />
* all<br />
* rotorcraft<br />
| <br />
* all<br />
* STM32<br />
* all<br />
* STM32<br />
| Radio Control implementations<br />
|-<br />
|[[Subsystem/telemetry|telemetry]]<br />
||<br />
* transparent<br />
* transparent_usb<br />
* xbee_api<br />
* superbitrf<br />
| <br />
* all<br />
* all<br />
* all<br />
* rotorcraft<br />
|<br />
* all<br />
* LPC21xx<br />
* all<br />
* STM32<br />
| Telemetry implementations<br />
|-<br />
|[[Subsystem/actuators|actuators]]<br />
||<br />
* mkk<br />
* asctec<br />
* asctec_v2<br />
* pwm_supervision<br />
* skiron<br />
* heli<br />
| <br />
* rotorcraft<br />
* rotorcraft<br />
* rotorcraft<br />
* rotorcraft<br />
* rotorcraft<br />
* rotorcraft<br />
| <br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
* all<br />
| Drivers for different ESCs for rotorcraft<br />
Fixedwing ESCs and servos are<br />
<br />
possible on all firmwares/architectures<br />
|-<br />
|[[Subsystem/stabilization|stabilization]]<br />
||<br />
* int_quat<br />
* float_quat<br />
* euler<br />
| <br />
* rotorcraft<br />
* rotorcraft<br />
* rotorcraft<br />
<br />
| <br />
* all<br />
* all<br />
* all<br />
| Attitude control system for rotorcraft<br />
|}<br />
<br />
<br />
<br />
[[Category:Software]] [[Category:Developer_Documentation]] [[Category:Subsystems]]</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=SuperbitRF&diff=15501SuperbitRF2013-07-18T23:18:36Z<p>Fvantienen: </p>
<hr />
<div>[[File:SuperbitRF_usb_modem.jpg|200px|right]]<br />
<br />
== What is '''SuperbitRF'''? ==<br />
SuperbitRF is a project to design our own datalink/radio receiver. The ultimate goal is to get the receiver to work with our own datalink modem and also normal DSM2/DSMX transmitters. But the main focus is to get a very small datalink which will be integrated in the autopilot PCB.<br />
<br />
== How does it work ==<br />
In general you will have either a usb datalink modem or a DSM2/DSMX transmitter which can be binded to the datalink/radio receiver on the autopilot. During the binding process the receiver will know if it is binding to a usb datalink(in DSMX or DSM2 mode), DSM2 transmitter or a DSMX transmitter. After binding the receiver tries to keep in sync with the usb datalink or transmitter and will forward the packets received to either the paparazzi datalink or the radio control.<br />
<br />
The SuperbitRF usb modem uses the normal DSM2/DSMX protocl, which can be chosen inside the firmware. For more information on how the DSM2 and the DSMX protocol works, look at [[DSM]].<br />
<br />
== The source code ==<br />
The firmware for the SuperbitRF USB modem is open source and can be found at [https://github.com/fvantienen/superbitrf-firmware Github SuperbitRF Firmware].<br />
The source code of the datalink receiver inside the paparazzi autopilot isn't made yet but will come later.<br />
<br />
== SuperbitRF in depth ==<br />
The superbitRF firmware for the USB dongle consists of 3 different build targets: Transmitter, MITM(Man In The Middle) and the Receiver. <br />
* The Transmitter(used for GCS) target is capable of sending RC command in DSM2 or DSMX(to normal DSM2/DSMX receivers and the superbitRF receiver) given from the paparazzi joystick commands, and is also capable of receiving downlink messages and sending uplink messages to a superbitRF module. <br />
* The MITM target(used for GCS) is only capable of receiving downlink messages and sending uplink messages to a superbitRF module, but this is possible in combination with a normal DSM2 or DSMX transmitter. <br />
* The Receiver target(used for airborn) is capable of receiving DSM2 and DSMX commands(from a normal DSM2/DSMX transmitter or the superbitRF transmitter), and is also capable of transmitting downlink messages and receiving uplink messages from a superbitRF module.<br />
The superbitRF always takes PPRZ messages as input and also always outputs PPRZ messages.<br />
<br />
Next to the firmware of the superbitRF USB dongle we also have a integration of only the CYRF6936 chip inside paparazzi. This part can do the exact same as the Receiver target from the superbitRF dongle, except that this time all the processing is done directly inside paparazzi.<br />
<br />
=== Transmitter USB Dongle ===<br />
This was functionally in the beginning, but now probably doesn't work anymore. It doesn't have the normal DSM2/DSMX transmission part in it yet and only has the PPRZ uplink and downlink.<br />
<br />
=== MITM USB Dongle ===<br />
This is functional now with DSMX, but there are still some problems in timings. The up- and downlink keep works and they even keep working when the transmitter is shut down. When the transmitter is down the receiver(the usb dongle on the airframe or the integrated cyrf code in paparazzi) is capable of sending downlink messages at a higher rate because the receiver timing of the syncing mode is used to transmit and receive packets to the MITM. When the transmitter is on the receiver is in transfer mode and the transmitter sets the timing for the receiver and thus also for the MITM. So the timing between the MITM and the receiver is very hard to tune, because the MITM doesn't know when the receiver is in transfer mode or not, and each transmitter is sending at a different timing. This is why getting the timing right is so difficult.<br />
<br />
=== Receiver USB Dongle ===<br />
This parts receives the DSM2 and DSMX packets, but doesn't receive the data packets from the superbitRF dongle yet. It also doesn't parse the DSM2 and DSMX packets to normal PPRZ packets yet. This is mainly used for debugging a transmitter to see what the timing is and see if it is properly working. This is also the basis for the integrated CYRF6936 receiver inside paparazzi.<br />
<br />
=== SuperbitRF receiver(inside paparazzi) ===<br />
This consists of two parts, the radio_control subsystem and the telemetry subsystem. The radio_control subsystem works independently from the telemetry subsystem, but uses the same code. The telemetry subsystem isn't tested without the radio_control subsystem, but it works when the transmitter is not sending(not in a optimised way because it is also continuously synchronising to get back the radio control signal). But for now everything seems to work in DSMX mode(because DSM2 still has some timing issues and is harder to debug) in combination with the MITM usb dongle.<br />
<br />
== Getting started ==<br />
For now I only have a small explanation on how to bind the MITM, the integrated CYRF6936 paparazzi and a normal DSMX or DSM2 transmitter with each other, later I will add more information when it is working.<br />
<br />
To MITM usb dongle automatically starts in binding mode, so you don't need to do anything but plugging it in. When you have done that you start your autopilot with the bind plug(like a normal spektrum receiver gets in binding mode). Both the MITM and the autopilot are now in binding mode and waiting for the transmitter to send binding packets. So what you now need to do is to start up your transmitter in binding mode. When the MITM is done binding the yellow led will go on. When the autopilot is done binding you don't see anything until it's synchronised with the transmitter, then the normal RC led will go on. It doesn't matter if you bind the autopilot and the MITM not at the same time, it only matters that they are bound to the exact same transmitter. When the binding is done everything should work!<br />
<br />
== Progress ==<br />
* 19/07/2013 - We now have the MITM working in combination with a normal transmitter in DSMX mode(DSM2 mode still has some problems) and also have the receiver part inside paparazzi working. The transmitter and the receiver target of the superbitRF aren't fully functional yet, but the main focus was the MITM target. There are still some strange things happening in the timing, but we need to look more into the timings of different RC transmitters because that affects the MITM timing.<br />
* 09/07/2013 - Also got the downlink working!<br />
* 03/07/2013 - Got a fully working RC!<br />
* 02/07/2013 - After some simple logic analysing we figured out the faulths and now we have a working SPI connection between the superbitRF and the paparazzi Lisa M. Already implemented the binding procedure inside paparazzi and we are receiving packets, but we didn't implement the handling of the binding packet.<br />
* 01/07/2013 - We connected a cyrf6936 chip directly to the spi bus of a Lisa M and are trying to receive the MFG id, manufacturer id, from the cyrf6936. Having some problems with that so we are going to sniff the spi connection and the reset pin with a logic analyser.<br />
* 28/06/2013 - We sniffed a normal dsm2 receiver spi bus connection to the cyrf6936 chip and found the errors in our own protocol. We are now able to bind to a normal DSM2 and DSMX transmitter trough DSM2 and receive the channels. The next step is to implement DSMX and make our own datalink work together with a normal transmitter. (We used saleae logic with a simple php script to analyze the cyrf6936 spi connection)<br />
* 20/06/2013 - Hacked the SITL(NPS) of paparazzi to enable a hardware datalink and tested the Quad Lisa M simulator with normal telemetry. Everything worked great, tweaked some of the timings of the receiver and transsmitter, and we now have a relaible datalink!<br />
* 19/06/2013 - Made the datalink more relaible, and both the receiver and transmitter know when a packet is lost and resends it. Als did manage to get a simple datalink with an AR.Drone 2.<br />
* 18/06/2013 - We currently have a datalink working between two SuperbitRF usb modems. It isn't that reliable yet, but we are working on improving it. We can already bind to a normal DSM2/DSMX transmitter, but can't get the syncing to work. We are also working on testing the datalink transfer rate and testing how paparazzi handles the packet loss you have with a unreliable radio datalink.<br />
* 11/06/2013 - Received the SuperbitRF usb modems and did some simple testing with blinking light and receiving the radio chip ID.<br />
<br />
== The contributors ==<br />
* Piotr (working on the hardware)<br />
* Bart Remes<br />
* Freek van Tienen (working on the software)</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=SuperbitRF&diff=15500SuperbitRF2013-07-18T23:17:50Z<p>Fvantienen: /* = Receiver USB Dongle */</p>
<hr />
<div>[[File:SuperbitRF_usb_modem.jpg|200px|right]]<br />
<br />
== What is '''SuperbitRF'''? ==<br />
SuperbitRF is a project to design our own datalink/radio receiver. The ultimate goal is to get the receiver to work with our own datalink modem and also normal DSM2/DSMX transmitters. But the main focus is to get a very small datalink which will be integrated in the autopilot PCB.<br />
<br />
== How does it work ==<br />
In general you will have either a usb datalink modem or a DSM2/DSMX transmitter which can be binded to the datalink/radio receiver on the autopilot. During the binding process the receiver will know if it is binding to a usb datalink(in DSMX or DSM2 mode), DSM2 transmitter or a DSMX transmitter. After binding the receiver tries to keep in sync with the usb datalink or transmitter and will forward the packets received to either the paparazzi datalink or the radio control.<br />
<br />
The SuperbitRF usb modem uses the normal DSM2/DSMX protocl, which can be chosen inside the firmware. For more information on how the DSM2 and the DSMX protocol works, look at [[DSM]].<br />
<br />
== The source code ==<br />
The firmware for the SuperbitRF USB modem is open source and can be found at [https://github.com/fvantienen/superbitrf-firmware Github SuperbitRF Firmware].<br />
The source code of the datalink receiver inside the paparazzi autopilot isn't made yet but will come later.<br />
<br />
== SuperbitRF in depth ==<br />
The superbitRF firmware for the USB dongle consists of 3 different build targets: Transmitter, MITM(Man In The Middle) and the Receiver. <br />
* The Transmitter(used for GCS) target is capable of sending RC command in DSM2 or DSMX(to normal DSM2/DSMX receivers and the superbitRF receiver) given from the paparazzi joystick commands, and is also capable of receiving downlink messages and sending uplink messages to a superbitRF module. <br />
* The MITM target(used for GCS) is only capable of receiving downlink messages and sending uplink messages to a superbitRF module, but this is possible in combination with a normal DSM2 or DSMX transmitter. <br />
* The Receiver target(used for airborn) is capable of receiving DSM2 and DSMX commands(from a normal DSM2/DSMX transmitter or the superbitRF transmitter), and is also capable of transmitting downlink messages and receiving uplink messages from a superbitRF module.<br />
The superbitRF always takes PPRZ messages as input and also always outputs PPRZ messages.<br />
<br />
Next to the firmware of the superbitRF USB dongle we also have a integration of only the CYRF6936 chip inside paparazzi. This part can do the exact same as the Receiver target from the superbitRF dongle, except that this time all the processing is done directly inside paparazzi.<br />
<br />
=== Transmitter USB Dongle ===<br />
This was functionally in the beginning, but now probably doesn't work anymore. It doesn't have the normal DSM2/DSMX transmission part in it yet and only has the PPRZ uplink and downlink.<br />
<br />
=== MITM USB Dongle ===<br />
This is functional now with DSMX, but there are still some problems in timings. The up- and downlink keep works and they even keep working when the transmitter is shut down. When the transmitter is down the receiver(the usb dongle on the airframe or the integrated cyrf code in paparazzi) is capable of sending downlink messages at a higher rate because the receiver timing of the syncing mode is used to transmit and receive packets to the MITM. When the transmitter is on the receiver is in transfer mode and the transmitter sets the timing for the receiver and thus also for the MITM. So the timing between the MITM and the receiver is very hard to tune, because the MITM doesn't know when the receiver is in transfer mode or not, and each transmitter is sending at a different timing. This is why getting the timing right is so difficult.<br />
<br />
== Getting started ==<br />
For now I only have a small explanation on how to bind the MITM, the integrated CYRF6936 paparazzi and a normal DSMX or DSM2 transmitter with each other, later I will add more information when it is working.<br />
<br />
To MITM usb dongle automatically starts in binding mode, so you don't need to do anything but plugging it in. When you have done that you start your autopilot with the bind plug(like a normal spektrum receiver gets in binding mode). Both the MITM and the autopilot are now in binding mode and waiting for the transmitter to send binding packets. So what you now need to do is to start up your transmitter in binding mode. When the MITM is done binding the yellow led will go on. When the autopilot is done binding you don't see anything until it's synchronised with the transmitter, then the normal RC led will go on. It doesn't matter if you bind the autopilot and the MITM not at the same time, it only matters that they are bound to the exact same transmitter. When the binding is done everything should work!<br />
<br />
=== Receiver USB Dongle ===<br />
This parts receives the DSM2 and DSMX packets, but doesn't receive the data packets from the superbitRF dongle yet. It also doesn't parse the DSM2 and DSMX packets to normal PPRZ packets yet. This is mainly used for debugging a transmitter to see what the timing is and see if it is properly working. This is also the basis for the integrated CYRF6936 receiver inside paparazzi.<br />
<br />
=== SuperbitRF receiver(inside paparazzi) ===<br />
This consists of two parts, the radio_control subsystem and the telemetry subsystem. The radio_control subsystem works independently from the telemetry subsystem, but uses the same code. The telemetry subsystem isn't tested without the radio_control subsystem, but it works when the transmitter is not sending(not in a optimised way because it is also continuously synchronising to get back the radio control signal). But for now everything seems to work in DSMX mode(because DSM2 still has some timing issues and is harder to debug) in combination with the MITM usb dongle.<br />
<br />
== Progress ==<br />
* 19/07/2013 - We now have the MITM working in combination with a normal transmitter in DSMX mode(DSM2 mode still has some problems) and also have the receiver part inside paparazzi working. The transmitter and the receiver target of the superbitRF aren't fully functional yet, but the main focus was the MITM target. There are still some strange things happening in the timing, but we need to look more into the timings of different RC transmitters because that affects the MITM timing.<br />
* 09/07/2013 - Also got the downlink working!<br />
* 03/07/2013 - Got a fully working RC!<br />
* 02/07/2013 - After some simple logic analysing we figured out the faulths and now we have a working SPI connection between the superbitRF and the paparazzi Lisa M. Already implemented the binding procedure inside paparazzi and we are receiving packets, but we didn't implement the handling of the binding packet.<br />
* 01/07/2013 - We connected a cyrf6936 chip directly to the spi bus of a Lisa M and are trying to receive the MFG id, manufacturer id, from the cyrf6936. Having some problems with that so we are going to sniff the spi connection and the reset pin with a logic analyser.<br />
* 28/06/2013 - We sniffed a normal dsm2 receiver spi bus connection to the cyrf6936 chip and found the errors in our own protocol. We are now able to bind to a normal DSM2 and DSMX transmitter trough DSM2 and receive the channels. The next step is to implement DSMX and make our own datalink work together with a normal transmitter. (We used saleae logic with a simple php script to analyze the cyrf6936 spi connection)<br />
* 20/06/2013 - Hacked the SITL(NPS) of paparazzi to enable a hardware datalink and tested the Quad Lisa M simulator with normal telemetry. Everything worked great, tweaked some of the timings of the receiver and transsmitter, and we now have a relaible datalink!<br />
* 19/06/2013 - Made the datalink more relaible, and both the receiver and transmitter know when a packet is lost and resends it. Als did manage to get a simple datalink with an AR.Drone 2.<br />
* 18/06/2013 - We currently have a datalink working between two SuperbitRF usb modems. It isn't that reliable yet, but we are working on improving it. We can already bind to a normal DSM2/DSMX transmitter, but can't get the syncing to work. We are also working on testing the datalink transfer rate and testing how paparazzi handles the packet loss you have with a unreliable radio datalink.<br />
* 11/06/2013 - Received the SuperbitRF usb modems and did some simple testing with blinking light and receiving the radio chip ID.<br />
<br />
== The contributors ==<br />
* Piotr (working on the hardware)<br />
* Bart Remes<br />
* Freek van Tienen (working on the software)</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=SuperbitRF&diff=15499SuperbitRF2013-07-18T23:17:30Z<p>Fvantienen: </p>
<hr />
<div>[[File:SuperbitRF_usb_modem.jpg|200px|right]]<br />
<br />
== What is '''SuperbitRF'''? ==<br />
SuperbitRF is a project to design our own datalink/radio receiver. The ultimate goal is to get the receiver to work with our own datalink modem and also normal DSM2/DSMX transmitters. But the main focus is to get a very small datalink which will be integrated in the autopilot PCB.<br />
<br />
== How does it work ==<br />
In general you will have either a usb datalink modem or a DSM2/DSMX transmitter which can be binded to the datalink/radio receiver on the autopilot. During the binding process the receiver will know if it is binding to a usb datalink(in DSMX or DSM2 mode), DSM2 transmitter or a DSMX transmitter. After binding the receiver tries to keep in sync with the usb datalink or transmitter and will forward the packets received to either the paparazzi datalink or the radio control.<br />
<br />
The SuperbitRF usb modem uses the normal DSM2/DSMX protocl, which can be chosen inside the firmware. For more information on how the DSM2 and the DSMX protocol works, look at [[DSM]].<br />
<br />
== The source code ==<br />
The firmware for the SuperbitRF USB modem is open source and can be found at [https://github.com/fvantienen/superbitrf-firmware Github SuperbitRF Firmware].<br />
The source code of the datalink receiver inside the paparazzi autopilot isn't made yet but will come later.<br />
<br />
== SuperbitRF in depth ==<br />
The superbitRF firmware for the USB dongle consists of 3 different build targets: Transmitter, MITM(Man In The Middle) and the Receiver. <br />
* The Transmitter(used for GCS) target is capable of sending RC command in DSM2 or DSMX(to normal DSM2/DSMX receivers and the superbitRF receiver) given from the paparazzi joystick commands, and is also capable of receiving downlink messages and sending uplink messages to a superbitRF module. <br />
* The MITM target(used for GCS) is only capable of receiving downlink messages and sending uplink messages to a superbitRF module, but this is possible in combination with a normal DSM2 or DSMX transmitter. <br />
* The Receiver target(used for airborn) is capable of receiving DSM2 and DSMX commands(from a normal DSM2/DSMX transmitter or the superbitRF transmitter), and is also capable of transmitting downlink messages and receiving uplink messages from a superbitRF module.<br />
The superbitRF always takes PPRZ messages as input and also always outputs PPRZ messages.<br />
<br />
Next to the firmware of the superbitRF USB dongle we also have a integration of only the CYRF6936 chip inside paparazzi. This part can do the exact same as the Receiver target from the superbitRF dongle, except that this time all the processing is done directly inside paparazzi.<br />
<br />
=== Transmitter USB Dongle ===<br />
This was functionally in the beginning, but now probably doesn't work anymore. It doesn't have the normal DSM2/DSMX transmission part in it yet and only has the PPRZ uplink and downlink.<br />
<br />
=== MITM USB Dongle ===<br />
This is functional now with DSMX, but there are still some problems in timings. The up- and downlink keep works and they even keep working when the transmitter is shut down. When the transmitter is down the receiver(the usb dongle on the airframe or the integrated cyrf code in paparazzi) is capable of sending downlink messages at a higher rate because the receiver timing of the syncing mode is used to transmit and receive packets to the MITM. When the transmitter is on the receiver is in transfer mode and the transmitter sets the timing for the receiver and thus also for the MITM. So the timing between the MITM and the receiver is very hard to tune, because the MITM doesn't know when the receiver is in transfer mode or not, and each transmitter is sending at a different timing. This is why getting the timing right is so difficult.<br />
<br />
== Getting started ==<br />
For now I only have a small explanation on how to bind the MITM, the integrated CYRF6936 paparazzi and a normal DSMX or DSM2 transmitter with each other, later I will add more information when it is working.<br />
<br />
To MITM usb dongle automatically starts in binding mode, so you don't need to do anything but plugging it in. When you have done that you start your autopilot with the bind plug(like a normal spektrum receiver gets in binding mode). Both the MITM and the autopilot are now in binding mode and waiting for the transmitter to send binding packets. So what you now need to do is to start up your transmitter in binding mode. When the MITM is done binding the yellow led will go on. When the autopilot is done binding you don't see anything until it's synchronised with the transmitter, then the normal RC led will go on. It doesn't matter if you bind the autopilot and the MITM not at the same time, it only matters that they are bound to the exact same transmitter. When the binding is done everything should work!<br />
<br />
=== Receiver USB Dongle ==<br />
This parts receives the DSM2 and DSMX packets, but doesn't receive the data packets from the superbitRF dongle yet. It also doesn't parse the DSM2 and DSMX packets to normal PPRZ packets yet. This is mainly used for debugging a transmitter to see what the timing is and see if it is properly working. This is also the basis for the integrated CYRF6936 receiver inside paparazzi.<br />
<br />
=== SuperbitRF receiver(inside paparazzi) ===<br />
This consists of two parts, the radio_control subsystem and the telemetry subsystem. The radio_control subsystem works independently from the telemetry subsystem, but uses the same code. The telemetry subsystem isn't tested without the radio_control subsystem, but it works when the transmitter is not sending(not in a optimised way because it is also continuously synchronising to get back the radio control signal). But for now everything seems to work in DSMX mode(because DSM2 still has some timing issues and is harder to debug) in combination with the MITM usb dongle.<br />
<br />
== Progress ==<br />
* 19/07/2013 - We now have the MITM working in combination with a normal transmitter in DSMX mode(DSM2 mode still has some problems) and also have the receiver part inside paparazzi working. The transmitter and the receiver target of the superbitRF aren't fully functional yet, but the main focus was the MITM target. There are still some strange things happening in the timing, but we need to look more into the timings of different RC transmitters because that affects the MITM timing.<br />
* 09/07/2013 - Also got the downlink working!<br />
* 03/07/2013 - Got a fully working RC!<br />
* 02/07/2013 - After some simple logic analysing we figured out the faulths and now we have a working SPI connection between the superbitRF and the paparazzi Lisa M. Already implemented the binding procedure inside paparazzi and we are receiving packets, but we didn't implement the handling of the binding packet.<br />
* 01/07/2013 - We connected a cyrf6936 chip directly to the spi bus of a Lisa M and are trying to receive the MFG id, manufacturer id, from the cyrf6936. Having some problems with that so we are going to sniff the spi connection and the reset pin with a logic analyser.<br />
* 28/06/2013 - We sniffed a normal dsm2 receiver spi bus connection to the cyrf6936 chip and found the errors in our own protocol. We are now able to bind to a normal DSM2 and DSMX transmitter trough DSM2 and receive the channels. The next step is to implement DSMX and make our own datalink work together with a normal transmitter. (We used saleae logic with a simple php script to analyze the cyrf6936 spi connection)<br />
* 20/06/2013 - Hacked the SITL(NPS) of paparazzi to enable a hardware datalink and tested the Quad Lisa M simulator with normal telemetry. Everything worked great, tweaked some of the timings of the receiver and transsmitter, and we now have a relaible datalink!<br />
* 19/06/2013 - Made the datalink more relaible, and both the receiver and transmitter know when a packet is lost and resends it. Als did manage to get a simple datalink with an AR.Drone 2.<br />
* 18/06/2013 - We currently have a datalink working between two SuperbitRF usb modems. It isn't that reliable yet, but we are working on improving it. We can already bind to a normal DSM2/DSMX transmitter, but can't get the syncing to work. We are also working on testing the datalink transfer rate and testing how paparazzi handles the packet loss you have with a unreliable radio datalink.<br />
* 11/06/2013 - Received the SuperbitRF usb modems and did some simple testing with blinking light and receiving the radio chip ID.<br />
<br />
== The contributors ==<br />
* Piotr (working on the hardware)<br />
* Bart Remes<br />
* Freek van Tienen (working on the software)</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=SuperbitRF&diff=15474SuperbitRF2013-07-09T14:15:49Z<p>Fvantienen: /* Progress */</p>
<hr />
<div>[[File:SuperbitRF_usb_modem.jpg|200px|right]]<br />
<br />
== What is '''SuperbitRF'''? ==<br />
SuperbitRF is a project to design our own datalink/radio receiver. The ultimate goal is to get the receiver to work with our own datalink modem and also normal DSM2/DSMX transmitters. But the main focus is to get a very small datalink which will be integrated in the autopilot PCB.<br />
<br />
== How does it work ==<br />
In general you will have either a usb datalink modem or a DSM2/DSMX transmitter which can be binded to the datalink/radio receiver on the autopilot. During the binding process the receiver will know if it is binding to a usb datalink(in DSMX or DSM2 mode), DSM2 transmitter or a DSMX transmitter. After binding the receiver tries to keep in sync with the usb datalink or transmitter and will forward the packets received to either the paparazzi datalink or the radio control.<br />
<br />
The SuperbitRF usb modem uses the normal DSM2/DSMX protocl, which can be chosen inside the firmware. For more information on how the DSM2 and the DSMX protocol works, look at [[DSM]].<br />
<br />
== The source code ==<br />
The firmware for the SuperbitRF USB modem is open source and can be found at [https://github.com/fvantienen/superbitrf-firmware Github SuperbitRF Firmware].<br />
The source code of the datalink receiver inside the paparazzi autopilot isn't made yet but will come later.<br />
<br />
== Progress ==<br />
* 09/07/2013 - Also got the downlink working!<br />
* 03/07/2013 - Got a fully working RC!<br />
* 02/07/2013 - After some simple logic analysing we figured out the faulths and now we have a working SPI connection between the superbitRF and the paparazzi Lisa M. Already implemented the binding procedure inside paparazzi and we are receiving packets, but we didn't implement the handling of the binding packet.<br />
* 01/07/2013 - We connected a cyrf6936 chip directly to the spi bus of a Lisa M and are trying to receive the MFG id, manufacturer id, from the cyrf6936. Having some problems with that so we are going to sniff the spi connection and the reset pin with a logic analyser.<br />
* 28/06/2013 - We sniffed a normal dsm2 receiver spi bus connection to the cyrf6936 chip and found the errors in our own protocol. We are now able to bind to a normal DSM2 and DSMX transmitter trough DSM2 and receive the channels. The next step is to implement DSMX and make our own datalink work together with a normal transmitter. (We used saleae logic with a simple php script to analyze the cyrf6936 spi connection)<br />
* 20/06/2013 - Hacked the SITL(NPS) of paparazzi to enable a hardware datalink and tested the Quad Lisa M simulator with normal telemetry. Everything worked great, tweaked some of the timings of the receiver and transsmitter, and we now have a relaible datalink!<br />
* 19/06/2013 - Made the datalink more relaible, and both the receiver and transmitter know when a packet is lost and resends it. Als did manage to get a simple datalink with an AR.Drone 2.<br />
* 18/06/2013 - We currently have a datalink working between two SuperbitRF usb modems. It isn't that reliable yet, but we are working on improving it. We can already bind to a normal DSM2/DSMX transmitter, but can't get the syncing to work. We are also working on testing the datalink transfer rate and testing how paparazzi handles the packet loss you have with a unreliable radio datalink.<br />
* 11/06/2013 - Received the SuperbitRF usb modems and did some simple testing with blinking light and receiving the radio chip ID.<br />
<br />
== The contributors ==<br />
* Piotr (working on the hardware)<br />
* Bart Remes<br />
* Freek van Tienen (working on the software)</div>Fvantienenhttp://wiki.paparazziuav.org/w/index.php?title=SuperbitRF&diff=15471SuperbitRF2013-07-03T15:10:20Z<p>Fvantienen: /* Progress */</p>
<hr />
<div>[[File:SuperbitRF_usb_modem.jpg|200px|right]]<br />
<br />
== What is '''SuperbitRF'''? ==<br />
SuperbitRF is a project to design our own datalink/radio receiver. The ultimate goal is to get the receiver to work with our own datalink modem and also normal DSM2/DSMX transmitters. But the main focus is to get a very small datalink which will be integrated in the autopilot PCB.<br />
<br />
== How does it work ==<br />
In general you will have either a usb datalink modem or a DSM2/DSMX transmitter which can be binded to the datalink/radio receiver on the autopilot. During the binding process the receiver will know if it is binding to a usb datalink(in DSMX or DSM2 mode), DSM2 transmitter or a DSMX transmitter. After binding the receiver tries to keep in sync with the usb datalink or transmitter and will forward the packets received to either the paparazzi datalink or the radio control.<br />
<br />
The SuperbitRF usb modem uses the normal DSM2/DSMX protocl, which can be chosen inside the firmware. For more information on how the DSM2 and the DSMX protocol works, look at [[DSM]].<br />
<br />
== The source code ==<br />
The firmware for the SuperbitRF USB modem is open source and can be found at [https://github.com/fvantienen/superbitrf-firmware Github SuperbitRF Firmware].<br />
The source code of the datalink receiver inside the paparazzi autopilot isn't made yet but will come later.<br />
<br />
== Progress ==<br />
* 03/07/2013 - Got a fully working RC!<br />
* 02/07/2013 - After some simple logic analysing we figured out the faulths and now we have a working SPI connection between the superbitRF and the paparazzi Lisa M. Already implemented the binding procedure inside paparazzi and we are receiving packets, but we didn't implement the handling of the binding packet.<br />
* 01/07/2013 - We connected a cyrf6936 chip directly to the spi bus of a Lisa M and are trying to receive the MFG id, manufacturer id, from the cyrf6936. Having some problems with that so we are going to sniff the spi connection and the reset pin with a logic analyser.<br />
* 28/06/2013 - We sniffed a normal dsm2 receiver spi bus connection to the cyrf6936 chip and found the errors in our own protocol. We are now able to bind to a normal DSM2 and DSMX transmitter trough DSM2 and receive the channels. The next step is to implement DSMX and make our own datalink work together with a normal transmitter. (We used saleae logic with a simple php script to analyze the cyrf6936 spi connection)<br />
* 20/06/2013 - Hacked the SITL(NPS) of paparazzi to enable a hardware datalink and tested the Quad Lisa M simulator with normal telemetry. Everything worked great, tweaked some of the timings of the receiver and transsmitter, and we now have a relaible datalink!<br />
* 19/06/2013 - Made the datalink more relaible, and both the receiver and transmitter know when a packet is lost and resends it. Als did manage to get a simple datalink with an AR.Drone 2.<br />
* 18/06/2013 - We currently have a datalink working between two SuperbitRF usb modems. It isn't that reliable yet, but we are working on improving it. We can already bind to a normal DSM2/DSMX transmitter, but can't get the syncing to work. We are also working on testing the datalink transfer rate and testing how paparazzi handles the packet loss you have with a unreliable radio datalink.<br />
* 11/06/2013 - Received the SuperbitRF usb modems and did some simple testing with blinking light and receiving the radio chip ID.<br />
<br />
== The contributors ==<br />
* Piotr (working on the hardware)<br />
* Bart Remes<br />
* Freek van Tienen (working on the software)</div>Fvantienen