From 0bbf4362e05358de85ef8e044734f14db2d4941d Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 21 Dec 2015 10:20:41 +1100 Subject: [PATCH] HAL_Linux: added qflight README.md --- libraries/AP_HAL_Linux/qflight/README.md | 118 +++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 libraries/AP_HAL_Linux/qflight/README.md diff --git a/libraries/AP_HAL_Linux/qflight/README.md b/libraries/AP_HAL_Linux/qflight/README.md new file mode 100644 index 0000000000..f661fc8cdf --- /dev/null +++ b/libraries/AP_HAL_Linux/qflight/README.md @@ -0,0 +1,118 @@ +# ArduPilot on Qualcomm Flight + +This is a port of ArduPilot to the Qualcomm Flight development board: + + http://shop.intrinsyc.com/products/snapdragon-flight-dev-kit + +This board is interesting because it is small but offers a lot of CPU +power and two on-board cameras. + +The board has 4 'Krait' ARM cores which run Linux (by default Ubuntu +14.04 Trusty), plus 3 'Hexagon' DSP cores which run the QURT RTOS. + +There are two ports of ArduPilot to this board. One is called +'HAL_QURT' and runs primarily on the DSPs, with just a small shim on +the ARM cores. The other is a HAL_Linux subtype called 'QFLIGHT' which +runs mostly on the ARM cores, with just sensor and UARTs on the DSPs. + +This is the readme for the QFLIGHT port. See the AP_HAL_QURT directory +for information on the QURT port. + +# Building ArduPilot for 'QFLIGHT' + +Due to some rather unusual licensing terms from Intrinsyc we cannot +distribute binaries of ArduPilot (or any program built with the +Qualcomm libraries). So you will have to build the firmware yourself. + +To build ArduPilot you will need 3 library packages from +Intrinsyc. They are: + + * the HEXAGON_Tools package, tested with version 7.2.11 + * the Hexagon_SDK packet, version 2.0 + * the HexagonFCAddon package, tested with Flight_BSP_1.1_ES3_003.2 + +These packages should all be unpacked in a $HOME/Qualcomm directory. + +To build APM:Copter you then do: + +``` + cd ArduCopter + make qflight -j4 +``` + +you can then upload the firmware to your board by joining to the WiFi +network of the board and doing this + +``` + make qflight_send FLIGHT_BOARD=myboard +``` + +where "myboard" is the hostname or IP address of your board. + +This will install two files: + +``` + /root/ArduCopter.elf + /usr/share/data/adsp/libqflight_skel.so +``` + +To start ArduPilot just run the elf file as root on the flight +board. You can control UART output with command line options. A +typical startup command would be: + +``` +/root/ArduCopter.elf -A udp:192.168.1.255:14550:bcast -e /dev/tty-3 -B qflight:/dev/tty-2 --dsm /dev/tty-4 +``` + +That will start ArduPilot with telemetry over UDP on port 14550, GPS +on tty-2 on the DSPs, Skektrum satellite RC input on tty-4 and +ESC output on tty-3. + +Then you can open your favourite MAVLink compatible GCS and connect +with UDP. + +# Logging + +Logs will appear in /var/APM/logs as usual for Linux ArduPilot +ports. You can download logs over MAVLink or transfer over WiFi. + +# UART connections + +The Qualcomm Flight board has 4 DF13 6 pin UART connectors. Be careful +though as they do not have the same pinout as the same connectors on a +Pixhawk. + +The pinout of them all is: + + * pin1: power + * pin2: TX + * pin3: RX + * pin5: GND + +3 of the 4 ports provide 3.3V power on pin1, while the 4th port +provides 5V power. Note that pin6 is not ground, unlike on a Pixhawk. + +The 4 ports are called /dev/tty-1, /dev/tty-2, /dev/tty-3 and +/dev/tty-4. The first port is the one closest to the USB3 +connector. The ports proceed counter-clockwise from there. So tty-2 is +the one closest to the power connector. + +Only tty-2 provides 5V power. The others provide 3.3V power. You will +need to check whether your GPS can be powered off 3.3V. + +# ESC PWM Output + +To get signals to ESCs or servos you need to use a UART. The default +setup is to send 4 PWM signals as serial data on /dev/tty-3. This is +designed to work with this firmware for any ArduPilot compatible +board: + + https://github.com/tridge/ardupilot/tree/hal-qurt/libraries/RC_Channel/examples/RC_UART + +that firmware will read the UART serial stream and output to the PWM +output of the board you use. For example, you could use a Pixracer or +Pixhawk board. This is an interim solution until Qualcomm/Intrinsyc +release an ESC add-on control board for the Qualcomm Flight. + +Note that you can also use RC input from that attached board, allowing +you to use any ArduPilot compatible RC receiver.