# Valid Commands from Host to ROVL

<table data-header-hidden><thead><tr><th width="142"></th><th width="150"></th><th width="85"></th><th width="106"></th><th width="128"></th><th></th></tr></thead><tbody><tr><td><strong>Command</strong></td><td><strong>Description</strong></td><td><strong>Sticky</strong></td><td><strong>Mk II Receiver</strong></td><td><strong>Mk III Transceiver</strong></td><td><strong>Transmitter Transponder</strong></td></tr><tr><td><p>?</p><p>?*</p></td><td>Print configuration and menu of user commands</td><td> </td><td>X</td><td>X</td><td>Mk II / Mk III</td></tr><tr><td>A</td><td>Obsolete</td><td> </td><td></td><td> </td><td></td></tr><tr><td>!</td><td>Obsolete</td><td> </td><td></td><td> </td><td></td></tr><tr><td>BOOT</td><td>Reset CPU into bootload mode. We recommend you instead use the firmware loading capability of the CeruleanTracker application.</td><td></td><td>X</td><td>X</td><td>X</td></tr><tr><td>Dn</td><td>Obsolete</td><td> </td><td></td><td> </td><td> </td></tr><tr><td>E</td><td>Obsolete</td><td></td><td></td><td> </td><td> </td></tr><tr><td>IA, IB</td><td>Sets operating channel to A or B</td><td>X</td><td>X</td><td> </td><td>Mk II only</td></tr><tr><td>ID</td><td>Sets receiver to receive on both channels simultaneously (Dual Channel operation) (autosync versions only)</td><td>X</td><td>X</td><td> </td><td> </td></tr><tr><td>Jn</td><td>Set magnetic declination to n degrees</td><td>X</td><td>X</td><td>X</td><td> </td></tr><tr><td>K</td><td>Send the flash contents to the console</td><td></td><td>X</td><td>X</td><td></td></tr><tr><td>LOFF</td><td>Obsolete</td><td></td><td></td><td></td><td></td></tr><tr><td>Ln</td><td>Obsolete</td><td></td><td></td><td></td><td></td></tr><tr><td>Lxxxx</td><td>Obsolete</td><td></td><td></td><td></td><td></td></tr><tr><td>Mn</td><td>Pause mode, n=1 paused, n=0 resumed</td><td></td><td>X</td><td>X</td><td></td></tr><tr><td>On, Off</td><td>Turn transmitter pinging on and off.</td><td> </td><td> </td><td> </td><td>Mk II / Mk III</td></tr><tr><td>T COMPASS T NDOF</td><td>Set IMU Mode Mk II IMU only. Only valid if CIMU is off.</td><td>X</td><td>X</td><td></td><td></td></tr><tr><td>V3</td><td>Retweet GPS NMEA messages, use V0 to turn off (autosync versions only)</td><td> </td><td>X</td><td> </td><td> </td></tr><tr><td>W</td><td>Obsolete</td><td> </td><td></td><td> </td><td></td></tr><tr><td>X</td><td>Obsolete</td><td> </td><td></td><td> </td><td> </td></tr><tr><td>Y</td><td>Invalidate stored IMU calibration data and then save it next time it is valid (only valid if CIMU is off)</td><td>X</td><td>X</td><td></td><td> </td></tr><tr><td>YZ</td><td>Invalidate stored IMU calibration data and then save it next time it is valid (only valid if CIMU is off)</td><td>X</td><td>X</td><td></td><td></td></tr><tr><td>YCIMU ON</td><td>Enable Cerulean IMU (CIMU)</td><td>X</td><td></td><td>X</td><td></td></tr><tr><td>YCIMU OFF</td><td>Enable Mk II IMU</td><td>X</td><td>X</td><td></td><td></td></tr><tr><td>YACC x,y,z</td><td>Set CIMU accelerometer offsets to x,y,z</td><td>X</td><td></td><td>X</td><td></td></tr><tr><td>YGYR x,y,z</td><td>Set CIMU gyro offsets to x,y,z</td><td>X</td><td></td><td>X</td><td></td></tr><tr><td>YMAG x,y,z</td><td>Set CIMU magnetometer offsets to x,y,z</td><td>X</td><td></td><td>X</td><td></td></tr><tr><td>Zn</td><td>Set speed of sound to n meters/second</td><td>X</td><td>X</td><td><strong>X</strong></td><td> </td></tr><tr><td>$xxxxx,</td><td>NMEA command carrier </td><td> </td><td>X</td><td><strong>X</strong></td><td> </td></tr><tr><td>---</td><td><p>Mk III only, pass thru to co-processor </p><p></p></td><td></td><td></td><td>X</td><td>X</td></tr><tr><td>===</td><td>Mk III only, pass thru to co-processor (using ST bootloader serial parameters)</td><td></td><td></td><td>X</td><td>X</td></tr><tr><td>+++</td><td>Mk III only, end pass-thru mode</td><td></td><td></td><td>X</td><td>X</td></tr><tr><td>###</td><td>Reboot immediately</td><td></td><td>X</td><td>X</td><td>X</td></tr><tr><td>@n </td><td>Set Mk II / Mk III flag. <strong>Do not test this to see what happens!</strong>  It would be very sad if you accidentally bricked your device.</td><td>X</td><td>X</td><td>X</td><td>X</td></tr></tbody></table>

&#x20;

{% hint style="info" %}
Send these commands directly to the receiver or transmitter.
{% endhint %}

{% hint style="info" %}
Send newline (linefeed) (ASCII 0x0A) after all commands to make them take effect.
{% endhint %}

{% hint style="info" %}
Sending messages not listed may have unpleasant consequences including bricking your unit.
{% endhint %}

{% hint style="info" %}
These commands should not be sent in NMEA sentence format except as noted.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ceruleansonar.com/c/rov-locator/communicating-with-the-rovl/messages-from-host-to-rovl/valid-commands-from-host-to-rovl.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
