Snapdragon Flight Autopilot
The Snapdragon Flight platform is a high-end autopilot / onboard computer which runs the PX4 Flight Stack on the DSP on the QuRT real time operating system using the DSPAL API for POSIX compatibility. In comparison to Pixhawk it adds a camera and WiFi and high-end processing power, and different IO.
More information about the Snapdragon Flight platform is at Snapdragon-Flight-Details
Quick Summary
- System-on-Chip: Snapdragon 801
- CPU: Quad-core 2.26 GHz Krait
- DSP: Hexagon DSP (QDSP6 V5A) – 801 MHz+256KL2 (running the flight code)
- GPU: Qualcomm® Adreno™ 330 GPU
- RAM: 2GB LPDDR3 PoP @931 MHz
- Storage: 32GB eMMC Flash
- Video: Sony IMX135 on Liteon Module 12P1BAD11
- 4k@30fps 3840×2160 video capture to SD card with H.264 @ 100Mbits (1080p/60 with parallel FPV), 720p FPV
- Optic Flow: Omnivision OV7251 on Sunny Module MD102A-200
- 640x480 @ 30/60/90 fps
- Wifi: Qualcomm® VIVE™ 1-stream 802.11n/ac with MU-MIMO † Integrated digital core
- BT/WiFi: BT 4.0 and 2G/5G WiFi via QCA6234
- 802.11n, 2×2 MIMO with 2 uCOAX connectors on-board for connection to external antenna
- GPS: Telit Jupiter SE868 V2 module (use of an external u-Blox module is recommended by PX4 instead)
- uCOAX connector on-board for connection to external GPS patch antenna
- CSR SiRFstarV @ 5Hz via UART
- Accelerometer / Gyro / Mag: Invensense MPU-9250 9-Axis Sensor, 3x3mm QFN, on bus SPI1
- Baro: Bosch BMP280 barometric pressure sensor, on bus I2C3
- Power: 5VDC via external 2S-6S battery regulated down to 5V via APM adapter
- Availability: Intrinsyc Store
Recommended setup
We use the Snapdragon Flight with the following setup.
Components
- Quantum Falcon 250
- Custom mounting plate
- 3DR PIXHAWK MINI GPS
- Trone range finder
- Spektrum DXe and FPV Racing Serial Receiver (3.3V Autobind)
Details on wiring can be found below.
Connectivity
- One USB 3.0 OTG port (micro-A/B)
- Micro SD card slot
- Gimbal connector (PWB/GND/BLSP)
- ESC connector (2W UART)
- I2C
- 60-pin high speed Samtec QSH-030-01-L-D-A-K expansion connector
- 2x BLSP (BAM Low Speed Peripheral)
- USB
Pinouts
Warning Although the Snapdragon uses DF13 connectors, the pinout is different from Pixhawk.
Detailed pinout information can be found here: Qualcomm Developer Network.
WiFi
- WLAN0, WLAN1 (+BT 4.0): U.FL connector: Taoglas adhesive antenna (DigiKey)
Connectors
The default mapping of the serial ports is as follows:
Device | Description |
---|---|
/dev/tty-1 |
J15 (next to USB) |
/dev/tty-2 |
J13 (next to power module connector) |
/dev/tty-3 |
J12 (next to J13) |
/dev/tty-4 |
J9 (next to J15) |
For a custom UART to BAM mapping, create a file called "blsp.config" and adb push it to /usr/share/data/adsp
. E.g., to keep the default mapping, your "blsp.config" should look as follows:
tty-1 bam-9 2-wire
tty-2 bam-6 2-wire
tty-3 bam-8 2-wire
tty-4 bam-2 2-wire
Be sure to include the text "2-wire" at the end of each line to allow the UART to use only the TX and RX pins specified in the tables below. If 2-wire is not specified (or if the file is not present on the target) the UART will default to using 4-wire mode and will require an additional two pins for RTS/CTS flow control. This will cause a problem for any other type of I/O on the same connector, since the pins will be configured as RTS and CTS signals. If, for example, J9 (described below) was being used to connect to both a UART and an I2C device, the I2C signals on pin 4 and pin 6 would be configured as RTS and CTS signals, overriding the I2C SDA and SCL signals.
J9 / GPS
Pin | 2-wire UART + I2C | 4-wire UART | SPI | Comment |
---|---|---|---|---|
1 | 3.3V | 3.3V | 3.3V | |
2 | UART2_TX | UART2_TX | SPI2_MOSI | Output (3.3V) |
3 | UART2_RX | UART2_RX | SPI2_MISO | Input (3.3V) |
4 | I2C2_SDA | UART2_RTS | SPI2_CS | (3.3V) |
5 | GND | GND | GND | |
6 | I2C2_SCL | UART2_CTS | SPI2_CLK | (3.3V) |
J12 / Gimbal bus
Pin | 2-wire UART + GPIO | 4-wire UART | SPI | Comment |
---|---|---|---|---|
1 | 3.3V | 3.3V | 3.3V | |
2 | UART8_TX | UART8_TX | SPI8_MOSI | Output (3.3V) |
3 | UART8_RX | UART8_RX | SPI8_MISO | Input (3.3V) |
4 | APQ_GPIO_47 | UART8_RTS | SPI8_CS | (3.3V) |
5 | GND | GND | GND | |
6 | APQ_GPIO_48 | UART8_CTS | SPI8_CLK | (3.3V) |
J13 / ESC bus
Pin | 2-wire UART + GPIO | 4-wire UART | SPI | Comment |
---|---|---|---|---|
1 | 5V | 5V | 5V | |
2 | UART6_TX | UART6_TX | SPI6_MOSI | Output (5V) |
3 | UART6_RX | UART6_RX | SPI6_MISO | Input (5V) |
4 | APQ_GPIO_29 | UART6_RTS | SPI6_CS | (5V) |
5 | GND | GND | GND | |
6 | APQ_GPIO_30 | UART6_CTS | SPI6_CLK | (5V) |
J14 / Power
Pin | Signal | Comment |
---|---|---|
1 | 5V DC | Power input |
2 | GND | |
3 | I2C3_SCL | (5V) |
4 | I2C3_SDA | (5V) |
J15 / Radio Receiver / Sensors
Pin | 2-wire UART + I2C | 4-wire UART | SPI | Comment |
---|---|---|---|---|
1 | 3.3V | 3.3V | 3.3V | |
2 | UART9_TX | UART9_TX | SPI9_MOSI | Output |
3 | UART9_RX | UART9_RX | SPI9_MISO | Input |
4 | I2C9_SDA | UART9_RTS | SPI9_CS | |
5 | GND | GND | GND | |
6 | I2C9_SCL | UART9_CTS | SPI9_CLK |
Peripherals
GPS Wiring
Even though the 3DR GPS is described to have a 5v input, operation with 3.3V seems to work fine. (The built-in regulator MIC5205 has a minimum operating voltage of 2.5v.)
Snapdragon J9 Pin | Signal | Comment | 3DR GPS 6pin/4pin | Pixfalcon GPS pin | 3DR PIXHAWK MINI GPS |
---|---|---|---|---|---|
1 | 3.3V | (3.3V) | 1 | 4 | 3 (5V) |
2 | UART2_TX | Output (3.3V) | 2/- | 3 | 4 |
3 | UART2_RX | Input (3.3V) | 3/- | 2 | 5 |
4 | I2C2_SDA | (3.3V) | -/3 | 5 | 2 |
5 | GND | 6/- | 1 | 6 | |
6 | I2C2_SCL | (3.3V) | -/2 | 6 | 1 |
PWM ESC Wiring
For controlling the motors, PWM ESCs can be used. Use connector J13 (next to power module connector) and the following wiring. ESC numbers is according to here.
Snapdragon J13 Pin | ESC | Comment |
---|---|---|
1 | - | They already have voltage |
2 | 1 | Signal (orange) |
3 | 2 | Signal (orange) |
4 | 3 | Signal (orange) |
5 | GND | GND from all ESCs |
6 | 4 | Signal (orange) |
RC Wiring
Snapdragon J12 Pin | Spektrum receiver (3 pins) |
---|---|
1 | 3.3 V |
2 | - |
3 | Signal |
4 | - |
5 | GND |
6 | - |
Trone Range Finder Wiring
Snapdragon J15 Pin | Trone (4 pins) |
---|---|
1 | 1 |
2 | - |
3 | - |
4 | 3 |
5 | 4 |
6 | 2 |
Details can be found here
UART to Pixracer / Pixfalcon Wiring
This interface is used to leverage the Pixracer / Pixfalcon as I/O interface board. Connect to TELEM1
Pixfalcon and to TELEM2
on Pixracer.
Snapdragon J13 Pin | Signal | Comment | Pixfalcon / Pixracer Pin |
---|---|---|---|
1 | 5V | Power for autopilot | 5V |
2 | UART6_TX | Output (5V) TX -> RX | 3 |
3 | UART6_RX | Input (5V) RX -> TX | 2 |
4 | APQ_GPIO_29 | (5V) | Not connected |
5 | GND | 6 | |
6 | APQ_GPIO_30 | (5V) | Not connected |