The system console allows low-level access to the system, debug output and analysis of the system boot process. The most convenient way to connect it is by using a Dronecode probe, but a plain FTDI cable can be used as well.
There are multiple shells, but only one console: The system console is the location where all boot output (and applications auto-started on boot) is printed.
- System console (first shell): Hardware serial port
- Additional shells: Pixhawk on USB (e.g. lists as /dev/tty.usbmodem1 on Mac OS)
Info USB shell: To just run a few quick commands or test an application connecting to the USB shell is sufficient. The Mavlink shell can be used for this, see below. The hardware serial console is only needed for boot debugging or when USB should be used for MAVLink to connect a GCS.
The developer kit comes with a breakout board with three pins to access the console. Connect the bundled FTDI cable to the header and the breakout board to the expansion connector.
Connect the 6-pos JST SH 1:1 cable to the Dronecode probe or connect the individual pins of the cable to a FTDI cable like this:
Pixracer / Pixhawk v3 | FTDI | ||
---|---|---|---|
1 | +5V (red) | N/C | |
2 | UART7 Tx | 5 | FTDI RX (yellow) |
3 | UART7 Rx | 4 | FTDI TX (orange) |
4 | SWDIO | N/C | |
5 | SWCLK | N/C | |
6 | GND | 1 | FTDI GND (black) |
The system console can be accessed through the Dronecode probe or an FTDI cable. Both options are explained in the section below.
Connect the 6-pos DF13 1:1 cable on the Dronecode probe to the SERIAL4/5 port of Pixhawk.
If no Dronecode probe is at hand an FTDI 3.3V (Digi-Key: 768-1015-ND) will do as well.
Pixhawk 1/2 | FTDI | ||
---|---|---|---|
1 | +5V (red) | N/C | |
2 | S4 Tx | N/C | |
3 | S4 Rx | N/C | |
4 | S5 Tx | 5 | FTDI RX (yellow) |
5 | S5 Rx | 4 | FTDI TX (orange) |
6 | GND | 1 | FTDI GND (black) |
The connector pinout is shown in the figure below.
The complete wiring is shown below.
After the console connection is wired up, use the default serial port tool of your choice or the defaults described below:
Install screen on Ubuntu (Mac OS already has it installed):
sudo apt-get install screen
- Serial: Pixhawk v1 / Pixracer use 57600 baud
- Serial: Snapdragon Flight uses 115200 baud
Connect screen at BAUDRATE baud, 8 data bits, 1 stop bit to the right serial port (use ls /dev/tty*
and watch what changes when unplugging / replugging the USB device). Common names are /dev/ttyUSB0
and /dev/ttyACM0
for Linux and /dev/tty.usbserial-ABCBD
for Mac OS.
screen /dev/ttyXXX BAUDRATE 8N1
Download PuTTY and start it.
Then select 'serial connection' and set the port parameters to:
- 57600 baud
- 8 data bits
- 1 stop bit
Type ls
to view the local file system, type free
to see the remaining free RAM. The console will also display the system boot log when power-cycling the board.
nsh> ls
nsh> free
For NuttX-based systems (Pixhawk, Pixracer, ...), the nsh console can also be
accessed via mavlink. This works via serial link or WiFi (UDP/TCP). Make sure
that QGC is not running, then start the shell with e.g.
./Tools/mavlink_shell.py /dev/ttyACM0
(in the Firmware source). Use -h
to
get a description of all available arguments. You may first have to install the
dependencies with sudo pip install pymavlink pyserial
.
When you are connected to your Snapdragon board via usb you have access to the px4 shell on the posix side of things.
The interaction with the DSP side (QuRT) is enabled with the qshell
posix app and its QuRT companion.
With the Snapdragon connected via USB, open the mini-dm to see the output of the DSP:
${HEXAGON_SDK_ROOT}/tools/debug/mini-dm/Linux_Debug/mini-dm
Note: Alternatively, especially on Mac, you can also use nano-dm.
Run the main app on the linaro side:
cd /home/linaro
./px4 px4.config
You can now use all apps loaded on the DSP from the linaro shell with the following syntax:
pxh> qshell command [args ...]
For example, to see the available QuRT apps:
pxh> qshell list_tasks
The output of the executed command is displayed on the minidm.