One of the great advantages of Paparazzi is support for multiple hardware designs. Historically, Paparazzi was based around ATMega MCUs, while current autopilots are designed around two primary processors:
- STM32 series microcontrollers
- LPC21xx series microcontrollers
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.
The STM32 architecture is relatively new. 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 libopencm3. The Lisa autopilots use the STM32.
The LPC21xx based boards use the LPC2148. This architecture is more mature, but also more limited in peripherals and speed. The Tiny series, Booz, TWOG, YAPA and Umarim 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. The accuracy of this table may not be 100% correct, the best resource is always hardware and software source files and individual autopilot pages.
Autopilot1 Feature Matrix
Feature
|
Lisa/L v1.1
|
Lisa/M v2.0
|
Umarim v1.0
|
Tiny v2.11
|
TWOG v1.0
|
YAPA v2.0
|
|
MCU
|
Part |
STM32F103RE |
STM32F105RCT6 |
LPC2148 |
LPC2148 |
LPC2148 |
LPC2148
|
Clock |
72MHz |
72MHz |
60MHz |
60MHz |
60MHz |
60MHz
|
Flash |
512kB |
256kB |
512kB |
512kB |
512kB |
512kB
|
RAM2 |
64kB |
64kB |
32kB & 8kB |
32kB & 8kB |
32kB & 8kB |
32kB & 8kB
|
|
Onboard Sensors3
|
MEMS IMU |
no |
aspirin |
yes |
no |
no |
no
|
Baro |
yes |
yes |
yes |
no |
no |
no
|
Diff Pressure |
yes |
no |
no |
no |
no |
no
|
GPS |
no |
no |
no |
yes |
no |
no
|
|
Input/Output4
|
UART |
3 & 1RX |
2 & 2RX |
2 |
1 |
2 |
2
|
I2C |
2 |
1 + 15 |
2 |
1 |
1 |
1
|
SPI |
2 |
1 |
1 |
1 |
1 |
1
|
ADC |
3 (12bit) |
3 + 2 (12bit)5 |
0 + 4 (10bit)6 |
8 (10bit) |
8 (10bit) |
6 (10bit)
|
PWM |
6 |
6 + 25 |
6 |
8 |
8 |
10
|
PPM Output |
no |
no |
1 |
1 |
1 |
no
|
PPM Capture |
1 |
0 + 15 |
1 |
1 |
1 |
1
|
GPIO7 |
? |
1 |
0 + 46 |
2 |
2 |
1
|
Onboard LEDs |
8 |
5 |
2 |
3 |
3 |
3
|
USB Peripheral |
Onboard USB JTAG + UART |
bootloader |
bootloader |
bootloader |
bootloader |
bootloader
|
CAN |
1 |
1 |
no |
no |
no |
no
|
Other |
Overo w/ I/O incl. USB Host |
Aspirin footprint, JTAG header |
|
|
|
XBee connector, RS232 options
|
|
Power Management
|
Supply Input |
6.1V - 18V |
5V - 16V |
5.5V - 17V |
6.1V - 18V |
6.1V - 18V |
6.1V - 18V
|
Supply Output |
2.25@5V, 2.25A@3.3V, Other |
500mA@3.3V, 250mA@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
|
Software Switch |
2 |
no |
no |
1 |
1 |
1
|
|
Mechanical
|
Size |
~100mm x ~50mm |
34mm x 60mm x 10mm |
56mm x 25mm |
70.8mm x 40mm |
40.2mm x 30.5mm |
80.0mm x 40.0mm?
|
Weight |
? |
9.9g - 10.8g |
9g |
24g |
8g |
23g w/ XBee?
|
Connector Style |
Picoblade |
Picoblade & 0.1" Servo |
Picoblade |
Picoblade |
Picoblade |
0.1" Headers
|
PCB Style |
4-layer |
4-layer |
4-layer |
2-layer |
2-layer |
2-layer
|
Mounting Holes |
4x ?mm |
4x 2mm |
4x 2mm |
no |
no |
4x M3
|
|
Comments
|
|
IMU and Overo Mount Location, Many Features |
|
|
|
|
|
Notes:
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
|