STM32F7 based boards
STM32F1 based boards
STM32F4 based boards
LPC2148 based boards
Aircraft With Embedded Autopilots
One of the great advantages of Paparazzi is support for many hardware designs. There is autopilot hardware that is specifically designed to work with Paparazzi from the start, but Paparazzi has also been ported to popular autopilots from external parties.
Paparazzi designed hardware
Most current autopilots are designed around two primary processors:
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.
Currently, boards are designed around the STM32 microcontollers. Some of the autopilots use the STM32F1 and others the STM32F4 microcontrollers. This provides a wide range of choices resulting in a large variety of peripherals and speeds. Architecture-dependent firmware code is supported in part by libopencm3, as well as Chibi OS through the Paparazzi RT branch.
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, YAPA, Umarim and NavGo autopilots all use the LPC2148.
Some autopilots have also been designed for close integration with small single-board computers, particularly those based on OMAP processors such as the Gumstix 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 here.
A basic feature comparison table is presented to help in the autopilot hardware selection process.
Other popular autopilot hardware support
Using existing hardware is great to get you started, as sometimes it just involves buying a stock drone, and uploading paparazzi to it. Currently, Paparazzi supports many of the popular Parrot drones, such as the AR Drone 2, Bebop and Rolling Spider airframes. These come with built in embedded Linux computers as their autopilot hardware, and Paparazzi runs as a Linux process interfacing at the lowest level possible with the hardware.
Schematics, CAD files, Gerber files, BOM release strategy
About the hardware development and release process.
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.
8 June 2011 13:25:47 Antoine Drouin wrote on the mailing list:
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.
I'll list here some of my arguments in favor of releasing CAD files after the board is mature.
For the autopilot comparison table see below.
NOTE: This list contains only mature and fully supported autopilots designed specifically for the Paparazzi UAV project.
|Name||Version||Active||Buy||Part||Clock||Flash||RAM||IMU||Mag||Baro||Diff||GPS||UART||I2C||SPI||ADC||PWM||PPM out||PPM in||R/C serial||GPIO||LED||USB||CAN||MODEM||SD||RTC||Other||Input||Output||Switch||Size||Weight||Connectors||PCB Type||Mounting||Date Introduced||Previous Version|
|Apogee||V1.00||Y||Buy||STM32F405RGT6||168MHz||1024kB||128 & 64kB||Y||Y||Y||N||N||3 & 1Rx||2||1||0 + 3 (12bit)||6 + 1||N||1 + 15||1 (std & S.BUS)||0 + 4||4||DFU bootloader + USB storage||Y||N||SDIO + USB storage||yes + backup cap||mini-USB B||USB(DFU) + SWD||5.5V - 17V||1A@3.3V, 1.5A@5V||1 (5V)||53 x 25 x 9mm||10g||Picoblade||4-layer||4 x M2||Summer 2013|
|Elle0||V1.2||Y||Pre-Order||STM32F415RCT6||168MHz||1024kB||192kB||Y||Y||Y||N||N||2 & 2RX/TX||1||0||2||8||N||1-8||2||4||DFU bootloader||110||N||N||N||micro-USB B, JTAG||USB (DFU) + JTAG||5V||2x299mA@3.3V||1||36mm x 36mm||JST9 + 0.1" pin header||4-layer||4 x M3||Winter 2015||v1.1|
|Lisa/S||V1.1||Y||Buy||STM32F103REY6||72MHz||512kB||64kB||Y||Y||Y||N||Y||1 & 1RX||18||0||0||6||N||1||1||0||4||N||1||N||N||N||4 x brushed motor drivers||SWD + UART||2.3V - 5.5V||1A@3.3V||1||20mm x 20mm x 5mm||2g||0.05" header||6-layer||4 x M2||Summer 2013||v1.0|
|Lisa/M||V2.1||Y||Buy||STM32F105RCT6||72MHz||256kB||64kB||Y||Y||Y||N||N||2 & 2RX||1 + 15||1||3 + 2 (12bit)5||6 + 25||N||0 + 15||2||1||5||DFU bootloader||1||N||N||N||JTAG||USB (luftboot)+ JTAG + UART||5V - 16V||500mA@3.3V, 250mA@5V||N||34mm x 60mm x 10mm||9.9g - 10.8g||Picoblade & 0.1" Servo||4-layer||4 x M3||Winter 2012||v2.0|
|Lisa/L||v1.1||N||STM32F103RE||72MHz||512kB||64kB||N||N||Y||Y||N||3 & 1RX||2||2||3 (12bit)||6||N||1||8||JTAG + UART||1||N||N||N||Overo Gumstix||JTAG + UART||6.1V - 18V||2.25@5V, 2.25A@3.3V, Other||2||~100mm x ~50mm||Picoblade||4-layer||4 x M3||Summer 2010||v1.0|
|KroozSD||Y||Buy||STM32F405RGT6||168MHz||1024kB||128 & 64kB||krooz/ext||Y||Y||N||N||3||2||1||4 + 1 (12bit)5||10 + 15||N||1||2 + 15||3||bootloader||Y||Xbee||SPI||N||micro-USB B||7V - 32V||1.5A@3.3V, 5A@5V||N||50mm x 60mm x 10mm||20g - 40g||Picoblade & 0.1" Servo||2-layer||4 x M3||Spring 2013||Krooz|
|Umarim Lite||V2||Y||Buy||LPC2148||60MHz||512kB||32kB & 8kB||Y||N||N||N||N||2||1||1||86||6||N||1 + 15||0 + 46||2||bootloader||Y||N||N||N||mini-USB B||USB (pprz bootloader)||5.5V - 17V||1A@3.3V, 1.5A@5V||N||53mm x 25mm||8g||Picoblade||4-layer||4 x M2||Summer 2012|
|Umarim||V1.0||N||LPC2148||60MHz||512kB||32kB & 8kB||Y||N||Y||N||N||2||2||1||0 + 4 (10bit)||6||N||1 + 15||0 + 46||2||bootloader||Y||N||N||N||USB (pprz bootloader)||5.5V - 17V||1A@3.3V, 1.5A@5V||N||56mm x 25mm||9g||Picoblade||4-layer||4 x M2||Fall 2011|
|NavGo||V3||Y||Buy||LPC2148||60MHz||512kB||32kB & 8kB||Y||Y||Y||N||N||2||2||1||0 + 4 (10bit)6||0 + 15||N||1||0 + 26||4||bootloader||Y||N||N||N||USB (pprz bootloader)||5.5V - 16V||1A@3.3V, 1.5A@5V||N||35mm x 35mm||Picoblade||4-layer||4 x M2||Summer 2012|
|Tiny||v2.11||Y||Buy||LPC2148||60MHz||512kB||32kB & 8kB||N||N||N||N||Y||1||1||1||0 + 1 (10bit)6||8||1||1||2||3||bootloader||Y||N||N||N||USB (pprz bootloader)||6.1V - 18V||1A@3.3V, 2.25A@5V||1||70.8mm x 40mm||24g||Picoblade||2-layer||no||Fall 2007||v1.1|
|TWOG||v1.0||N||LPC2148||60MHz||512kB||32kB & 8kB||N||N||N||N||N||2||1||1||8 (10bit)||8||1||1||2||3||bootloader||Y||N||N||N||USB (pprz bootloader)||6.1V - 18V||1A@3.3V, 2.25A@5V||1||40.2mm x 30.5mm||8g||Picoblade||2-layer||no||Spring 2008|
|YAPA||v2.0||N||LPC2148||60MHz||512kB||32kB & 8kB||N||N||N||N||N||2||1||1||6 (10bit)||10||N||1||1||3||bootloader||Y||Xbee||N||N||RS232||USB (pprz bootloader)||6.1V - 18V||2x 1A@3.3V, 2.25A@5V||1||80.0mm x 40.0mm?||23g w/ XBee?||0.1" Headers||2-layer||4x M3||Spring 2011||v1.0|
|HBmini||v2.0||N||LPC2148||60MHz||512kB||32kB & 8kB||Y||Y||Y||N||N||2||2||1||8 (10bit)(16bit)||10||11||2||bootlader||N||N||N||N||Buzzer||JTAG||6.1-18V||1A@3.3V, 2.25A@5V||4||57x30mm||30||Picoblade & 0.1" Servo||4-layer||4 x M2||Winter 2012|
This table was created using a google document spreadsheet. If you want to add or improve anything in the table, please contact Esden to get write access to the spreadsheet. This makes editing and maintaining of the table much easier!
1. Only the newest revisions of the more commonly used autopilots are listed
2. The extra 8kB of RAM on the LPC2148 shared with the USB DMA
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.
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
5., 6. Some features use shared resources - denoted by X + Y where Y is shared - and cannot be used simultaneously
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
6. Umarim v1.0 shared resources include: 4 ADCs are shared with 4 GPIOs
7. Usually other unused pins can be used for additional GPIO with some code modifications
8. Many of the pins have multiple purposes. Servo 5&6 can be used for i2c even though there is no dedicated connector.
9. The two JST connectors, provide a combined RX and TX connection. The RX & TX lines are combined through a 100Ohm resistor. The GPS and Telemetry connectors are full TTL UARTs.
10. Only the CAN RX&TX lines are exposed, no transceiver included on board.
This category has the following 5 subcategories, out of 5 total.
Pages in category "Autopilots"
The following 33 pages are in this category, out of 33 total.