Interfacing with Pixhawk using the NSH

原文链接:http://dev.ardupilot.com/wiki/interfacing-with-pixhawk-using-the-nsh/

Overview

The Pixhawk runs the NuttX real-time operating system which includes the NuttX Shell terminal “NSH”. This allows running some Unix style commands including “top” and “ls”.

NSH is very useful for diagnosing low level issues. Some of the things you can do with it include:

  • Display performance counters with the perf command
  • Display px4io status information
  • Diagnose microSD errors
  • Diagnose sensor failures
  • Assist in debugging new drivers

This topic explains how to connect and send NSH commands from MAVProxy via remote and serial connections.

Running NSH using Debug Cable and Serial5

To use the NSH while Copter or Plane is running you can connect using Serial 4/5. To do this you will need anFTDI 3.3V cable and then modify a DF13 6 Position cable so that it can be connected to the FTDI cable.

Interfacing with Pixhawk using the NSH_第1张图片

You should then be able to plug the FTDI cable into your computer and connect with any Serial program including the Mission Planner’s Terminal screen. Ensure to select the FTDI cable’s COM port and set the Baud rate to 57600. You will need to press return for the “nsh>” prompt to appear.

Interfacing with Pixhawk using the NSH_第2张图片

Remote NSH over MAVLink

ArduPilot also includes support to run nsh commands remotely via MAVLink over a USB, telemetry or WiFi link (this is an extension of the SERIAL_CONTROL protocol used for controlling a GPS or radio UART over MAVLink).

Note:
At time of writing Rover doesn’t support NSH over MAVLink (because it doesn’t support arming).
Tip:
This can be used for nsh debugging when you don’t have a serial5 cable setup.

Instructions to use with Mission Planner:

Interfacing with Pixhawk using the NSH_第3张图片

 

  • Connect Pixhawk to PC using a USB cable
  • Go to the Flight Data screen, select the correct COM port and baud (probalby 115200) and press the connect button
  • Go to the Terminal screen, set the left-most drop down to “NSH” and push Connect.

 

Setup instructions to access using MAVProxy:

  1. Load latest master onto a Pixhawk
  2. Grab the latest MAVProxy
    • If on Linux use:
      sudo pip install mavproxy
    • If on Windows grab it here.
      Note:
      If you are on Windows you will need to delete any old version of MAVProxy in  c:\Program Files (x86)\MAVProxy first, as the installer does not properly cleanup old versions.
  3. Start MAVProxy as usual
  4. Load the nsh module in MAVProxy with
    module load nsh
  5. start the nsh shell with
    nsh start
  6. Now run nsh commands as usual. Note that MAVLink is still running,
    so the map, MAPVproxy console, graphs etc all keep updating while in
    the nsh shell.
    Tip:
    A blank response to an NSH command may indicate low RAM memory on the autopilot board. Free up memory if possible. For example, on master you can save about 20Kb by disabling terrain following (set TERRAIN_ENABLE=0).
  7. To drop back to the normal MAVProxy prompt type a single “.” on a
    line by itself

You can only start a shell when the system is disarmed. Once the shell is started you can arm if you like.

Warning:
In theory you could fly while doing nsh commands, but we don’t recommend it.

This also works over a 3DR Radio link, although it is of course slower in output than when on a USB connection.

Questions, issues, and suggestions about this page can be raised on the APM Forum. Issues and suggestions may be posted on the forums or the Github Issue Tracker.

你可能感兴趣的:(Interfacing with Pixhawk using the NSH)