# MAVLink Shell

The MAVLink Shell is an NSH console that can be accessed via MAVLink over serial (USB/Telemetry) or WiFi (UDP/TCP) links (in particular, on NuttX-based systems like: Pixhawk, Pixracer, etc.).

The shell can be used for running commands and modules, and displaying their output. While the shell cannot directly display the output of modules that it does not start, it can do so indirectly using the dmesg command (dmesg -f & can be used to display the output of other modules and tasks running on the work queue).

TIP

The QGroundControl MAVLink Console is the easiest way to access the console. If the system does not start properly you should instead use the System Console.

# Opening the Shell

The easiest way to access shell is to use the QGroundControl MAVLink Console (opens new window) (see Analyze View > Mavlink Console).

You can also access the shell in a terminal using the mavlink_shell.py script:

  1. Shut down QGroundControl.
  2. Install dependencies:
    pip3 install --user pymavlink pyserial
    
  3. Open terminal (in PX4-Autopilot directory) and start the shell:
    # For serial port
    ./Tools/mavlink_shell.py /dev/ttyACM0
    
    # For Wifi connection
    ./Tools/mavlink_shell.py 0.0.0.0:14550
    

Use mavlink_shell.py -h to get a description of all available arguments.

For information see: PX4 Consoles/Shells > Using Consoles/Shells.