+Seen from above, with forward pointing up and ⊗ marking the **z** axis (pointing into the page, toward the seabed), the two model groups indicate forward differently:
+
+
-
-
+
+
-
-
+
+ DVL A50 / A125
+
+
+
+
+ z
+
+ x (forward)
+
+ y (right)
+
+ LED
+
+
+
+ Cable
+
+
+
+
+
+
+
- Body frame
- x (Forward)
- y (Right)
-
-
- z (Down)
- Vehicle frame
- x (Vehicle)
- y (Vehicle)
-
-
-
-
-
- x (Body)
- y (Body)
-
- θ
-
-
+ DVL A100 / A250
+
+
+
+
+ z
+
+ x (forward)
+
+ y (right)
+
+ FWD mark
+
+
+
+
+
+ Back-plate entry
+
+ or side entry
+
+**Finding forward on the device.** On the DVL A50 and DVL A125, the status LED sits at the forward edge and marks **+x**. On the DVL A100 and DVL A250, the status LED faces down (the **z** direction), so forward is instead stamped **FWD** on the metal back plate. On all models the cable is toward the back of the housing, opposite forward (the **−x** side). On the DVL A100 and DVL A250 it enters either from the side or through the back plate (rear O-ring interface), as shown above. The mechanical drawings on the [DVL A100](dvl-a100.md) and [DVL A250](dvl-a250.md) pages show the FWD mark and cable position.
-## Body frame
+### Origin
+
+The origin of the body frame is the point at which the DVL measures velocity: the point on the DVL's central axis where the transducer beam axes intersect. In standard mounting orientation (transducers facing down, metal back plate up), it sits above the metal back plate, where the beam axes meet when extended upward:
-The body frame axes of the DVL are as follows:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Origin
+ Back plate
+
+ Transducers
+
+ Beams (to seabed)
+ d
+
-* X axis is pointing forward (LED is forward (only for A50/A125), cable backward)
-* Y axis is pointing right
-* Z axis is pointing down (metal back plate is up, transducers are down, LED is pointing down only for A100/A250)
-* Origin is the center of the DVL on the transducer side.
+The distance from the top of the back plate to the origin (shown as **d** above) depends on the model:
-
+| Model | Distance from back plate to origin |
+| :--- | :--- |
+| DVL A50 | 28 mm |
+| DVL A100 | 38 mm |
+| DVL A125 | 70 mm |
+| DVL A250 | 84 mm |
By default, the body frame and vehicle frame are the same and align with the frame used for dead reckoning.
@@ -56,6 +122,35 @@ Mechanical/transducer diagrams number the transducers from 1 to 4. In protocol m
The DVL can be mounted at an angle to the forward direction of the vehicle (yaw).
+
+
+
+
+
+
+
+
+
+ Body frame
+ x (Forward)
+ y (Right)
+
+
+ z (Down)
+ Vehicle frame
+ x (Vehicle)
+ y (Vehicle)
+
+
+
+
+
+ x (Body)
+ y (Body)
+
+ θ
+
+
The clockwise angle θ in degrees around the Z axis, in the X-Y plane, from the forward axis of the vehicle to the forward axis of the DVL can be entered as a mounting rotation offset in the [web GUI](configuration.md), or through the configuration method over the TCP JSON API or serial protocol.
The DVL will then output data in the vehicle frame obtained by rotating the [DVL body frame](#body-frame) anti-clockwise around the Z axis by θ degrees. The X axis of the velocity output will be aligned with the forward axis of the vehicle. At time zero, the X axis of the DVL's dead-reckoning frame will be aligned with the forward axis of the vehicle.
diff --git a/docs/dvl/bluerov-integration-dvl-ugps.md b/docs/dvl/bluerov-integration-dvl-ugps.md
index d9dec38d..17e3c223 100644
--- a/docs/dvl/bluerov-integration-dvl-ugps.md
+++ b/docs/dvl/bluerov-integration-dvl-ugps.md
@@ -1,3 +1,5 @@
+# DVL with UGPS for BlueROV2
+
## Optimizing performance when using DVL and UGPS together
### Capabilities of the DVL as a Standalone System
diff --git a/docs/dvl/bluerov-integration.md b/docs/dvl/bluerov-integration.md
index 70c36b49..6bdd9352 100644
--- a/docs/dvl/bluerov-integration.md
+++ b/docs/dvl/bluerov-integration.md
@@ -1,3 +1,5 @@
+# DVL for BlueROV2
+
## Introduction
The Water Linked [DVLs](https://www.waterlinked.com/dvl) are designed to integrate with most ROVs and AUVs through Ethernet and/or a serial interface (UART). To minimize the time between receipt of a DVL and having it up and running, the DVLs are shipped with an attached I/O interface for power, Ethernet, and serial connectivity. However, for most ROVs and AUVs, the DVL has to be integrated with the on-board electronics through a penetrator or a subsea connector.
diff --git a/docs/dvl/dvl-a250_a100-json-protocol.md b/docs/dvl/dvl-a250_a100-json-protocol.md
index c62d6a22..53e2a249 100644
--- a/docs/dvl/dvl-a250_a100-json-protocol.md
+++ b/docs/dvl/dvl-a250_a100-json-protocol.md
@@ -77,7 +77,7 @@ The messages are delimited by newline.
Example of TCP report (indented for legibility)
-```
+```json
{
"time": 106.3935775756836,
"vx": -3.713480691658333e-05,
@@ -168,7 +168,7 @@ format | Format type and version for this report: `json_v3`
Example of a dead reckoning report.
-```
+```json
{
"ts": 49056.809,
"x": 12.43563613697886467,
@@ -189,13 +189,13 @@ Example of a dead reckoning report.
Dead reckoning can be reset by issuing the `reset_dead_reckoning` command:
-```
+```json
{"command": "reset_dead_reckoning"}
```
If the request is successfully received the response will have 'success' set to 'true'. The dead reckoning will have a delay of approximately 50ms until the positioning values being zeroed out. If the response is unsuccessful, the 'success' will be 'false' and a non-empty describing text will be returned in 'error_message'.
-```
+```json
{
"response_to":"reset_dead_reckoning",
"success": true,
@@ -212,13 +212,13 @@ Gyro calibration is not needed as a normal setup step for DVL A100/A250.
The gyro can be calibrated by issuing the `calibrate_gyro` command:
-```
+```json
{"command":"calibrate_gyro"}
```
The response will be as follows if the calibration is successful. If unsuccessful, `success` will be `false`, and a non-empty `error_message` will be provided.
-```
+```json
{
"response_to": "calibrate_gyro",
"success": true,
@@ -235,13 +235,13 @@ In setups where multiple acoustic sensors are used it can be useful to control t
See [Integration](integration.md#triggering-and-synchronization) for guidance on using triggering with other acoustic instruments.
-```
+```json
{"command":"trigger_ping"}
```
The response will be as follows if the command is accepted. If the queue is full, `success` will be `false`, and a non-empty `error_message` will be provided.
-```
+```json
{
"response_to": "trigger_ping",
"success": true,
@@ -271,14 +271,14 @@ The response will be as follows if the command is accepted. If the queue is full
The current configuration of the DVL can be obtained by issuing the `get_config` command:
-```
+```json
{"command": "get_config"}
```
If the configuration is successfully fetched, the response will be in the following format. If not, `success` will be false, a non-empty `error_message` string will be provided, and `result` will be `null`.
-```
+```json
{
"response_to":"get_config",
"success":true,
@@ -300,14 +300,14 @@ If the configuration is successfully fetched, the response will be in the follow
Setting of configuration parameters can be carried out by issuing a `set_config` in the following format, including those parameters which are to be set:
-```
+```json
{"command":"set_config","parameters":{"speed_of_sound":1480}}
```
If the parameters are successfully set, the response will be in the following format. If not, `success` will be false, and a non-empty `error_message` string will be provided.
-```
+```json
{
"response_to": "set_config",
"success": true,
diff --git a/docs/dvl/dvl-a250_a100-serial-protocol.md b/docs/dvl/dvl-a250_a100-serial-protocol.md
index 0d476f87..99b00c89 100644
--- a/docs/dvl/dvl-a250_a100-serial-protocol.md
+++ b/docs/dvl/dvl-a250_a100-serial-protocol.md
@@ -110,7 +110,7 @@ The report has the following format:
Example where all velocities are valid:
-```
+```text
wrz,0.120,-0.400,2.000,y,1.30,1.855,1e-07;0;1.4;0;1.2;0;0.2;0;1e+09,7,14,123.00,1*50
```
@@ -135,7 +135,7 @@ The report has the following format:
Example where all data is valid:
-```
+```text
wru,0,0.070,1.10,-40,-95*9c
wru,1,-0.500,1.25,-62,-104*f0
wru,2,2.200,1.40,-56,-98*18
@@ -164,7 +164,7 @@ status | Reports if there are any issues with the DVL (0 if no errors, 1 ot
Example:
-```
+```text
wrp,49056.809,0.41,0.15,1.23,0.4,53.9,13.0,19.3,0*de
wrp,49057.269,0.39,0.18,1.23,0.4,53.9,13.0,19.3,0*e2
```
@@ -196,7 +196,7 @@ The reply will be an ack (`wra`) if the command is successful, and a nak (`wrn`)
The serial output protocol in use can be configured by issuing the `wcp` command. The selected protocol is persistent over reboots.
-```
+```text
wcp,[protocol number]
```
@@ -216,7 +216,7 @@ The reply will be an ack (`wra`) if the protocol change is successful, and a nak
Example setting configuring output to use protocol number 3:
-```
+```text
wcp,3
```
@@ -248,7 +248,7 @@ The current configuration of the DVL can be obtained by issuing the `wcc` comman
If the configuration is successfully fetched, the response will be in the following format. If not, a nak `wrn` will be returned.
-```
+```text
wrc,[speed_of_sound],[mounting_rotation_offset],[acoustic_enabled],[dark_mode_enabled],[range_mode],[periodic_cycling_enabled],[hardware_trigger_enabled]
```
@@ -257,7 +257,7 @@ wrc,[speed_of_sound],[mounting_rotation_offset],[acoustic_enabled],[dark_mode_en
Setting of configuration parameters can be carried out by issuing the `wcs` command in the following format.
-```
+```text
wcs,[speed_of_sound],[mounting_rotation_offset],[acoustic_enabled],[dark_mode_enabled],[range_mode],[periodic_cycling_enabled],[hardware_trigger_enabled]
```
@@ -265,13 +265,13 @@ Those parameters which are not to be set can be left blank.
Example for setting dark mode without changing the other parameters:
-```
+```text
wcs,,,,y,,,
```
Example for setting speed of sound to 1450 m/s and disabling acoustics, without changing the other parameters:
-```
+```text
wcs,1450,,n,,,,
```
@@ -299,7 +299,7 @@ Same purpose as the [velocity report](#velocity-report-wrz), but in an older for
Example where velocities are valid:
-```
+```text
wrx,112.83,0.007,0.017,0.006,0.000,0.93,y,0*d2
wrx,140.43,0.008,0.021,0.012,0.000,0.92,y,0*b7
wrx,118.47,0.009,0.020,0.013,0.000,0.92,y,0*54
@@ -307,7 +307,7 @@ wrx,118.47,0.009,0.020,0.013,0.000,0.92,y,0*54
Example where velocities and altitude are not valid and a high temperature warning occurs:
-```
+```text
wrx,1075.51,0.000,0.000,0.000,2.707,-1.00,n,1*04
wrx,1249.29,0.000,0.000,0.000,2.707,-1.00,n,1*6a
wrx,1164.94,0.000,0.000,0.000,2.707,-1.00,n,1*39
@@ -328,14 +328,14 @@ Same purpose as the [transducer report](#transducer-report-wru), but in an older
Example where all distances are valid:
-```
+```text
wrt,15.00,15.20,14.90,14.20*b1
wrt,14.90,15.10,14.80,14.10*ac
```
Example where distance is not valid for transducer 4:
-```
+```text
wrt,14.90,15.10,14.80,-1.00*53
wrt,15.00,15.20,14.90,-1.00*71
```
@@ -353,7 +353,7 @@ Compatible implementations:
Example for how to verify checksum using Python 3 and [crcmod](https://pypi.org/project/crcmod/):
-```
+```python
crc = crcmod.predefined.mkPredefinedCrcFun("crc-8")
sentence = b"wrx,1164.94,0.000,0.000,0.000,2.707,-1.00,n,1*39"
data, checksum = sentence.split(b"*")
@@ -366,7 +366,7 @@ else:
The [crcmod](https://pypi.org/project/crcmod/) python package can generate code in other languages. Here is an example (subject to the [MIT License](https://opensource.org/licenses/MIT)) for C which should be straightforward to adapt to other languages.
-```
+```c
static const uint8_t lookup_table[256] = {
0x00U,0x07U,0x0EU,0x09U,0x1CU,0x1BU,0x12U,0x15U,
0x38U,0x3FU,0x36U,0x31U,0x24U,0x23U,0x2AU,0x2DU,
diff --git a/docs/dvl/dvl-a50_a125-changelog.md b/docs/dvl/dvl-a50_a125-changelog.md
index e97c5e76..26f858b7 100644
--- a/docs/dvl/dvl-a50_a125-changelog.md
+++ b/docs/dvl/dvl-a50_a125-changelog.md
@@ -61,11 +61,11 @@ See [Software updates](./sw-update.md) for more information on software updates.
- Update serial output command (wcg) to include configuration for PD4
- Update serial protocol to version 2.6.0
- Update serial protocols 'Latest' to 'WL - Serial V2' and 'Backward compatible' to 'WL - Serial V1+V2' for clarity
-- [Beta] Add PD4 protocol support"
+- [Beta] Add PD4 protocol support
Known issues:
-- "Chip id not correctly sent over serial"
+- Chip id not correctly sent over serial
## 2.6.0 (2024-08)
@@ -82,7 +82,7 @@ Known issues:
- Improve velocity calculation
- Fix issue that causes Ethernet connectivity problems with certain switches
-- Fix network configuration incorrectly showing as \"static\" after factory reset
+- Fix network configuration incorrectly showing as "static" after factory reset
- [Beta] Add support for PD4 protocol endpoint
Known issues:
@@ -194,7 +194,7 @@ Known issues:
- Add thermal shut down
- Improve velocity calculation
- Update serial protocol to version 2.2.0
-- Add output of orientation angels
+- Add output of orientation angles
- Add position estimation (dead reckoning) (Beta)
## 1.6.0 (2021-03)
@@ -205,7 +205,7 @@ Known issues:
- Improve velocity valid
- Improve noise immunity
-- Add tranducer details in serial protocol
+- Add transducer details in serial protocol
- Add vertical speed visualisation
- Add ping rate in GUI
- Improve web gui update rate using websockets
diff --git a/docs/dvl/dvl-json-protocol.md b/docs/dvl/dvl-json-protocol.md
index 36a28a88..2a0d6a94 100644
--- a/docs/dvl/dvl-json-protocol.md
+++ b/docs/dvl/dvl-json-protocol.md
@@ -71,7 +71,7 @@ The messages are delimited by newline.
| time_of_validity | Timestamp of the surface reflection, aka 'center of ping' (Unix timestamp in microseconds) |
| time_of_transmission | Timestamp from immediately before sending of the report over TCP (Unix timestamp in microseconds) |
| tracking_mode | Active tracking mode. `bottom` for bottom tracking, `water` for [water tracking](water-tracking.md). Added in `json_v3.2` |
-| format | Format type and version for this report: `json_v3.1` |
+| format | Format type and version for this report: `json_v3.3` |
| type | Report type: `velocity` or `velocity_water` |
!!! note "Transducer numbering and protocol IDs"
@@ -79,7 +79,7 @@ The messages are delimited by newline.
Example of TCP report (indented for legibility)
-```
+```json
{
"time": 106.3935775756836,
"vx": -3.713480691658333e-05,
@@ -171,7 +171,7 @@ format | Format type and version for this report: `json_v3`
Example of a dead reckoning report.
-```
+```json
{
"ts": 49056.809,
"x": 12.43563613697886467,
@@ -192,13 +192,13 @@ Example of a dead reckoning report.
Dead reckoning can be reset by issuing the `reset_dead_reckoning` command:
-```
+```json
{"command": "reset_dead_reckoning"}
```
If the request is successfully received the response will have 'success' set to 'true'. The dead reckoning will have a delay of approximately 50ms until the positioning values being zeroed out. If the response is unsuccessful, the 'success' will be 'false' and a non-empty describing text will be returned in 'error_message'.
-```
+```json
{
"response_to":"reset_dead_reckoning",
"success": true,
@@ -213,13 +213,13 @@ If the request is successfully received the response will have 'success' set to
The gyro can be calibrated by issuing the `calibrate_gyro` command:
-```
+```json
{"command":"calibrate_gyro"}
```
The response will be as follows if the calibration is successful. If unsuccessful, `success` will be `false`, and a non-empty `error_message` will be provided.
-```
+```json
{
"response_to": "calibrate_gyro",
"success": true,
@@ -236,13 +236,13 @@ In setups where multiple acoustic sensors are used it can be useful to control t
See [Integration](integration.md#triggering-and-synchronization) for guidance on using triggering with other acoustic instruments.
-```
+```json
{"command":"trigger_ping"}
```
The response will be as follows if the command is accepted. If the queue is full, `success` will be `false`, and a non-empty `error_message` will be provided.
-```
+```json
{
"response_to": "trigger_ping",
"success": true,
@@ -257,13 +257,13 @@ The response will be as follows if the command is accepted. If the queue is full
Get version info by issuing the `get_version_info` command.
-```
+```json
{"command":"get_version_info"}
```
A successful response looks like this:
-```
+```json
{
"response_to": "get_version_info",
"success": true,
@@ -289,7 +289,7 @@ A successful response looks like this:
Set [NTP configuration](./time.md#ntp-server-address-configuration-auto-or-custom) by issuing the `set_time_ntp` command with a `ntp_address` parameter. Set `ntp_address` either to the address of a NTP server, or as "auto".
-```
+```json
{
"command": "set_time_ntp",
"parameters": {
@@ -300,7 +300,7 @@ Set [NTP configuration](./time.md#ntp-server-address-configuration-auto-or-custo
A successful response looks like this:
-```
+```json
{
"response_to": "set_time_ntp",
"success": true,
@@ -315,7 +315,7 @@ A successful response looks like this:
Get [NTP configuration](./time.md#ntp-server-address-configuration-auto-or-custom) by issuing the `get_time_ntp` command.
-```
+```json
{
"command": "get_time_ntp"
}
@@ -323,7 +323,7 @@ Get [NTP configuration](./time.md#ntp-server-address-configuration-auto-or-custo
A successful response looks like this:
-```
+```json
{
"response_to": "get_time_ntp",
"success": true,
@@ -342,7 +342,7 @@ Set time manually by issuing the `set_time_manual` command with the `now` parame
For more information see [Setting manual time](./time.md#setting-manual-time).
-```
+```json
{
"command": "set_time_manual",
"parameters": {
@@ -353,7 +353,7 @@ For more information see [Setting manual time](./time.md#setting-manual-time).
A successful response looks like this:
-```
+```json
{
"response_to": "set_time_manual",
"success": true,
@@ -366,7 +366,7 @@ A successful response looks like this:
In the event the DVL is already synchronized via NTP, the response will look like this:
-```
+```json
{
"response_to": "set_time_manual",
"success": false,
@@ -381,7 +381,7 @@ In the event the DVL is already synchronized via NTP, the response will look lik
Get [time status](./time.md#time-status) by issuing the `get_time_status` command.
-```
+```json
{
"command": "get_time_status"
}
@@ -398,7 +398,7 @@ The response contains the following fields:
Here is an example response where the DVL is not synchornized with NTP:
-```
+```json
{
"response_to": "get_time_status",
"success": true,
@@ -416,7 +416,7 @@ Here is an example response where the DVL is not synchornized with NTP:
Here is an example response where the DVL has achieved sync with NTP:
-```
+```json
{
"response_to": "get_time_status",
"success": true,
@@ -436,7 +436,7 @@ Here is an example response where the DVL has achieved sync with NTP:
A [forced NTP sync](./time.md#ntp-force-sync) can be triggered by issuing the `force_sync_ntp` command with the `timeout_seconds` as an integer timeout in seconds.
-```
+```json
{
"command": "force_sync_ntp",
"parameters": {
@@ -455,7 +455,7 @@ This will trigger a forced NTP sync in the DVL. The DVL will wait up to `timeout
Here is an example response where the DVL achieved NTP sync:
-```
+```json
{
"response_to": "force_sync_ntp",
"success": true,
@@ -477,7 +477,7 @@ Here is an example response where the DVL achieved NTP sync:
Here is an example response where the DVL did not achieve NTP sync:
-```
+```json
{
"response_to": "force_sync_ntp",
"success": true,
@@ -514,14 +514,14 @@ Here is an example response where the DVL did not achieve NTP sync:
The current configuration of the DVL can be obtained by issuing the `get_config` command:
-```
+```json
{"command": "get_config"}
```
If the configuration is successfully fetched, the response will be in the following format. If not, `success` will be false, a non-empty `error_message` string will be provided, and `result` will be `null`.
-```
+```json
{
"response_to":"get_config",
"success":true,
@@ -543,14 +543,14 @@ If the configuration is successfully fetched, the response will be in the follow
Setting of configuration parameters can be carried out by issuing a `set_config` in the following format, including those parameters which are to be set:
-```
+```json
{"command":"set_config","parameters":{"speed_of_sound":1480}}
```
If the parameters are successfully set, the response will be in the following format. If not, `success` will be false, and a non-empty `error_message` string will be provided.
-```
+```json
{
"response_to": "set_config",
"success": true,
diff --git a/docs/dvl/dvl-pd-formats.md b/docs/dvl/dvl-pd-formats.md
index 7d47df24..8d1281b8 100644
--- a/docs/dvl/dvl-pd-formats.md
+++ b/docs/dvl/dvl-pd-formats.md
@@ -108,8 +108,6 @@ Sentences TS, BI, and BD are filled with relevant numbers. All other sentences a
#### Example output
-
-
```text
:SA, +0.00, +0.00, 0.00
:TS,22020812061800, 0.0, +0.0, 0.0,1475.0, 0
diff --git a/docs/dvl/dvl-serial-protocol.md b/docs/dvl/dvl-serial-protocol.md
index b2f9922c..ed1969d0 100644
--- a/docs/dvl/dvl-serial-protocol.md
+++ b/docs/dvl/dvl-serial-protocol.md
@@ -104,7 +104,7 @@ The report has the following format: `wrs,`*[system_time],[ntp_synced],[ntp_sync
Examples:
-```
+```text
wrs,1776409079,0,,
wrs,1776409079,1,192.168.0.10,45
```
@@ -136,7 +136,7 @@ The report has the following format:
Example where all velocities are valid:
-```
+```text
wrz,0.120,-0.400,2.000,y,1.30,1.855,1e-07;0;1.4;0;1.2;0;0.2;0;1e+09,7,14,123.00,1*50
```
@@ -166,7 +166,7 @@ The report has the following format:
Example where all velocities are valid:
-```
+```text
wrs,0.120,-0.400,2.000,y,1.855,1e-07;0;1.4;0;1.2;0;0.2;0;1e+09,7,14,123.00,1*50
```
@@ -197,7 +197,7 @@ The report has the following format:
Example where all data is valid:
-```
+```text
wru,0,0.070,1.10,-40,-95*9c
wru,1,-0.500,1.25,-62,-104*f0
wru,2,2.200,1.40,-56,-98*18
@@ -226,7 +226,7 @@ status | Reports if there are any issues with the DVL (0 if no errors, 1 ot
Example:
-```
+```text
wrp,49056.809,0.41,0.15,1.23,0.4,53.9,13.0,19.3,0*de
wrp,49057.269,0.39,0.18,1.23,0.4,53.9,13.0,19.3,0*e2
```
@@ -254,7 +254,7 @@ The reply will be an ack (`wra`) if the command is successful, and a nak (`wrn`)
The serial output protocol in use can be configured by issuing the `wcp` command. The selected protocol is persistent over reboots.
-```
+```text
wcp,[protocol number]
```
@@ -274,7 +274,7 @@ The reply will be an ack (`wra`) if the protocol change is successful, and a nak
Example setting configuring output to use protocol number 3:
-```
+```text
wcp,3
```
@@ -305,7 +305,7 @@ The current configuration of the DVL can be obtained by issuing the `wcc` comman
If the configuration is successfully fetched, the response will be in the following format. If not, a nak `wrn` will be returned.
-```
+```text
wrc,[speed_of_sound],[mounting_rotation_offset],[acoustic_enabled],[dark_mode_enabled],[range_mode],[periodic_cycling_enabled]
```
@@ -314,7 +314,7 @@ wrc,[speed_of_sound],[mounting_rotation_offset],[acoustic_enabled],[dark_mode_en
Setting of configuration parameters can be carried out by issuing the `wcs` command in the following format.
-```
+```text
wcs,[speed_of_sound],[mounting_rotation_offset],[acoustic_enabled],[dark_mode_enabled],[range_mode],[periodic_cycling_enabled]
```
@@ -322,7 +322,7 @@ Those parameters which are not to be set can be left blank.
Example for setting dark mode without changing the other parameters:
-```
+```text
wcs,,,,y,,
```
@@ -336,7 +336,7 @@ wcs,,,,,wt,
Example for setting speed of sound to 1450 m/s and disabling acoustics, without changing the other parameters:
-```
+```text
wcs,1450,,n,,,
```
@@ -364,7 +364,7 @@ Same purpose as the [velocity report](#velocity-report-wrz), but in an older for
Example where velocities are valid:
-```
+```text
wrx,112.83,0.007,0.017,0.006,0.000,0.93,y,0*d2
wrx,140.43,0.008,0.021,0.012,0.000,0.92,y,0*b7
wrx,118.47,0.009,0.020,0.013,0.000,0.92,y,0*54
@@ -372,7 +372,7 @@ wrx,118.47,0.009,0.020,0.013,0.000,0.92,y,0*54
Example where velocities and altitude are not valid and a high temperature warning occurs:
-```
+```text
wrx,1075.51,0.000,0.000,0.000,2.707,-1.00,n,1*04
wrx,1249.29,0.000,0.000,0.000,2.707,-1.00,n,1*6a
wrx,1164.94,0.000,0.000,0.000,2.707,-1.00,n,1*39
@@ -393,14 +393,14 @@ Same purpose as the [transducer report](#transducer-report-wru), but in an older
Example where all distances are valid:
-```
+```text
wrt,15.00,15.20,14.90,14.20*b1
wrt,14.90,15.10,14.80,14.10*ac
```
Example where distance is not valid for transducer 4:
-```
+```text
wrt,14.90,15.10,14.80,-1.00*53
wrt,15.00,15.20,14.90,-1.00*71
```
@@ -418,7 +418,7 @@ Compatible implementations:
Example for how to verify checksum using Python 3 and [crcmod](https://pypi.org/project/crcmod/):
-```
+```python
crc = crcmod.predefined.mkPredefinedCrcFun("crc-8")
sentence = b"wrx,1164.94,0.000,0.000,0.000,2.707,-1.00,n,1*39"
data, checksum = sentence.split(b"*")
@@ -431,7 +431,7 @@ else:
The [crcmod](https://pypi.org/project/crcmod/) python package can generate code in other languages. Here is an example (subject to the [MIT License](https://opensource.org/licenses/MIT)) for C which should be straightforward to adapt to other languages.
-```
+```c
static const uint8_t lookup_table[256] = {
0x00U,0x07U,0x0EU,0x09U,0x1CU,0x1BU,0x12U,0x15U,
0x38U,0x3FU,0x36U,0x31U,0x24U,0x23U,0x2AU,0x2DU,
diff --git a/docs/dvl/electrical.md b/docs/dvl/electrical.md
index d8155fef..42da76d9 100644
--- a/docs/dvl/electrical.md
+++ b/docs/dvl/electrical.md
@@ -2,6 +2,9 @@
This page covers electrical connection, LED signals, wiring, shielding, and serial interface for all DVLs.
+!!! tip "First-time setup"
+ New to the DVL? The [Quickstart](quickstart.md) covers the full setup path (mount, wire, connect, open the web GUI). This page is the detailed wiring reference; to get on the network afterwards, see [Network setup](networking.md).
+
Most wiring is common across the DVL models. The serial electrical interface differs:
* DVL A50 and DVL A125 use 3.3 V UART, 5 V tolerant.
@@ -11,11 +14,11 @@ Most wiring is common across the DVL models. The serial electrical interface dif
| Visualization | LED signal | Description |
| :---: | :--- | :--- |
-| ⚫ | **No green light** | Power is off. |
-| 🟢 | **Fixed green light** | The DVL is powering on. Depending on configuration it can take ~30-60 seconds to power on. |
-| 🟢⚫⚫⚫ | **Flashing green light** (mostly off, slow) | DVL looking for bottom lock. |
-| 🟢🟢🟢⚫ | **Flashing green light** (mostly on, slow) | DVL has bottom lock. |
-| 🟢⚫🟢⚫ | **Flashing green light** (fast) | DVL is in [thermal shutdown](how-to-diagnose.md#thermal-shutdown). |
+| | **No green light** | Power is off. |
+| | **Fixed green light** | The DVL is powering on. Depending on configuration it can take ~30-60 seconds to power on. |
+| | **Flashing green light** (mostly off, slow) | DVL looking for bottom lock. |
+| | **Flashing green light** (mostly on, slow) | DVL has bottom lock. |
+| | **Flashing green light** (fast) | DVL is in [thermal shutdown](how-to-diagnose.md#thermal-shutdown). |
## Wiring interface
@@ -25,22 +28,22 @@ Power and Ethernet wiring are common. The brown and brown/white serial pair depe
| Interface | Color | Visual |
| :--- | :--- | :---: |
-| Negative/Ground | Black | ⬛ |
-| Positive (10–30 Vdc) | Red | 🟥 |
-| ETH RX+ | Green/White | 🟩⬜ |
-| ETH RX- | Green | 🟩 |
-| ETH TX- | Orange | 🟧 |
-| ETH TX+ | Orange/White | 🟧⬜ |
-| Shielded wire | Naked/silver | ⚪ |
+| Negative/Ground | Black | |
+| Positive (10–30 Vdc) | Red | |
+| ETH RX+ | Green/White | |
+| ETH RX- | Green | |
+| ETH TX- | Orange | |
+| ETH TX+ | Orange/White | |
+| Shielded wire | Naked/silver | |
### Model-specific serial wires
| Model | Interface | Color | Visual |
| :--- | :--- | :--- | :---: |
-| DVL A50/A125 | UART TX | Brown/White | 🟫⬜ |
-| DVL A50/A125 | UART RX | Brown | 🟫 |
-| DVL A100/A250 | Serial (RS232) TX | Brown/White | 🟫⬜ |
-| DVL A100/A250 | Serial (RS232) RX | Brown | 🟫 |
+| DVL A50/A125 | UART TX | Brown/White | |
+| DVL A50/A125 | UART RX | Brown | |
+| DVL A100/A250 | Serial (RS232) TX | Brown/White | |
+| DVL A100/A250 | Serial (RS232) RX | Brown | |
!!! note
Power must be applied to the power terminals before applying voltage to the serial pins.
@@ -61,14 +64,14 @@ The table below shows the pinout for the DVL A50/A100/A250 Seacon MC8M connector
| Interface | Pin | Color | Visual |
| :--- | :--- | :--- | :---: |
-| Negative/Ground | 1 | Black | ⬛ |
-| Positive (10–30 Vdc) | 2 | Red | 🟥 |
-| ETH RX+ | 3 | Green/White | 🟩⬜ |
-| ETH RX- | 4 | Green | 🟩 |
-| ETH TX- | 5 | Orange | 🟧 |
-| ETH TX+ | 6 | Orange/White | 🟧⬜ |
-| Serial TX | 7 | Brown/White | 🟫⬜ |
-| Serial RX | 8 | Brown | 🟫 |
+| Negative/Ground | 1 | Black | |
+| Positive (10–30 Vdc) | 2 | Red | |
+| ETH RX+ | 3 | Green/White | |
+| ETH RX- | 4 | Green | |
+| ETH TX- | 5 | Orange | |
+| ETH TX+ | 6 | Orange/White | |
+| Serial TX | 7 | Brown/White | |
+| Serial RX | 8 | Brown | |
diff --git a/docs/dvl/how-to-diagnose.md b/docs/dvl/how-to-diagnose.md
index d602d968..6a7c5d93 100644
--- a/docs/dvl/how-to-diagnose.md
+++ b/docs/dvl/how-to-diagnose.md
@@ -4,6 +4,19 @@ This page applies to all our DVLs unless otherwise noted.
Use this guide when the DVL is not performing as expected, cannot get bottom lock, reports invalid velocity, or produces noisy measurements.
+**Jump to a symptom:**
+
+* [Invalid velocity](#invalid-velocity)
+* [Loss of bottom lock](#loss-of-bottom-lock)
+* [Weak signal or noisy measurements](#weak-signal-or-noisy-measurements)
+* [Air bubbles](#air-bubbles)
+* [Thrusters, propellers, and hull turbulence](#thrusters-propellers-and-hull-turbulence)
+* [Mechanical vibration and flexible mounts](#mechanical-vibration-and-flexible-mounts)
+* [Operation close to the water surface](#operation-close-to-the-water-surface)
+* [Obstructed beam paths / line of sight](#obstructed-beam-paths-line-of-sight)
+* [Active acoustic interference from other sensors](#active-acoustic-interference-from-other-sensors)
+* [Thermal shutdown](#thermal-shutdown)
+
## Before contacting support
1. Confirm that the DVL is powered and submerged.
diff --git a/docs/dvl/installation.md b/docs/dvl/installation.md
index 6fe3024e..8035764d 100644
--- a/docs/dvl/installation.md
+++ b/docs/dvl/installation.md
@@ -2,6 +2,9 @@
This page gives common installation guidance for all our DVLs. Use it together with the mechanical and electrical page for your specific model.
+!!! tip "First-time setup"
+ For the full end-to-end path (mount, wire, connect, open the web GUI), follow the [Quickstart](quickstart.md). This page covers mounting and placement; see also [Electrical](electrical.md) and [Network setup](networking.md).
+
## Before installation
1. Check that the DVL, cable, connector, and mounting hardware are undamaged.
diff --git a/docs/dvl/networking.md b/docs/dvl/networking.md
index e700030a..03d1bedf 100644
--- a/docs/dvl/networking.md
+++ b/docs/dvl/networking.md
@@ -9,6 +9,9 @@ The DVL has several services available over Ethernet:
Use Ethernet for first setup whenever possible. It gives access to the web GUI, diagnostics, configuration, software updates, and the TCP data stream.
+!!! tip "First-time setup"
+ Connect power and wiring first (see [Electrical](electrical.md)), then use this page to get on the network. For the full end-to-end setup path, follow the [Quickstart](quickstart.md).
+
## Network configuration
### Multicast DNS (mDNS)
diff --git a/docs/dvl/overview.md b/docs/dvl/overview.md
index 1f1a8ccf..590bd305 100644
--- a/docs/dvl/overview.md
+++ b/docs/dvl/overview.md
@@ -1,5 +1,5 @@
# Overview
-At Water Linked we pride ourselves on building the Worlds smallest DVLs in their respective categories. Our DVLs combine everything that is important in the smallest possible formfactor: Prize and Performance!
+At Water Linked we pride ourselves on building the world's smallest DVLs in their respective categories. Our DVLs combine everything that is important in the smallest possible form factor: price and performance!
## What is a DVL?
A DVL estimates velocity relative to the seafloor by sending acoustic waves from four angled transducers and measuring the frequency shift (Doppler effect) of the returned echoes. By combining measurements from all four transducers over time, the DVL can accurately estimate both the speed and direction of movement.
@@ -58,36 +58,40 @@ The DVL A100 and DVL A250 share the same general web GUI, configuration, electri
-## A50
+## Models
-* [DVL A50 Documentation & Installation](dvl-a50.md)
+
-The [DVL A50](dvl-a50.md) is one of the world's smallest commercially available Doppler Velocity Logs.
+- **[DVL A50](dvl-a50.md)**
-The A50 established a new market standard with its high performance, ultra-small 4-beam setup, open interface protocol, and low cost.
+ 1 MHz · altitude to 50 m · 66 mm diameter
-## A100
+ One of the world's smallest commercially available DVLs — an ultra-compact 4-beam unit for size- and payload-limited platforms operating close to the bottom.
-* [DVL A100 Documentation & Installation](dvl-a100.md)
+ [Model details](dvl-a50.md)
-The [DVL A100](dvl-a100.md) is a compact, high-accuracy Doppler Velocity Log for lightweight and integration-friendly platforms.
+- **[DVL A100](dvl-a100.md)** *(coming Q4 2026)*
-The A100 supports close-range and mid-range operation up to 100 m altitude and shares web GUI, configuration, electrical, protocol, and integration documentation with the DVL A250 where behavior is identical.
+ 625 kHz · altitude to 100 m · 90 mm diameter
-## A125
+ A compact, high-accuracy DVL for lightweight, integration-friendly platforms that need more range than the A50.
-* [DVL A125 Documentation & Installation](dvl-a125.md)
+ [Model details](dvl-a100.md)
-The [DVL A125](dvl-a125.md) is the next step up from the [DVL A50](dvl-a50.md), providing better performance at greater distances while still keeping a small form factor relative to competing DVLs.
+- **[DVL A125](dvl-a125.md)**
-The DVL A125 builds on the DVL A50 with increased performance, a small 4-beam setup, an open interface protocol, and mid-to-low cost.
+ 420 kHz · altitude to 125 m · 125 mm diameter
-## A250
+ The step up from the A50: better performance at greater distances while keeping a small form factor.
-* [DVL A250 Documentation & Installation](dvl-a250.md)
+ [Model details](dvl-a125.md)
-The [DVL A250](dvl-a250.md) is the most capable DVL in the lineup, delivering long-range performance while maintaining a compact and efficient design.
+- **[DVL A250](dvl-a250.md)**
-Operating at lower frequency for extended reach, the A250 enables reliable velocity measurements at distances up to 250 m, making it suitable for demanding subsea operations.
+ 250 kHz · altitude to 250 m · 149 mm diameter
-The DVL A250 combines high performance, a compact 4-beam setup, open interface protocol, and a competitive cost, making it a powerful solution for larger vehicles and deep-water applications.
+ The most capable model — long-range, deep-water velocity measurement for larger vehicles and demanding subsea operations.
+
+ [Model details](dvl-a250.md)
+
+
diff --git a/docs/dvl/sw-update.md b/docs/dvl/sw-update.md
index 03903362..da6b56c4 100644
--- a/docs/dvl/sw-update.md
+++ b/docs/dvl/sw-update.md
@@ -2,6 +2,9 @@
We recommend running the latest DVL software where possible. Software updates are done from the web GUI **About** page. The latest software can be obtained [automatically](#automatic-software-update) or [manually](#offline-software-update).
+!!! note
+ Software updates are performed only through the web GUI over the Ethernet (network) connection. The serial interface cannot be used to update the DVL.
+
The release notes for each release are found here:
* [DVL A50/A125 changelog](./dvl-a50_a125-changelog.md)
diff --git a/docs/dvl/time.md b/docs/dvl/time.md
index 577e0c9d..3cff1f14 100644
--- a/docs/dvl/time.md
+++ b/docs/dvl/time.md
@@ -55,7 +55,7 @@ Upon achieving sync, or when the timeout expires, the operation will respond wit
|`status`|Time status as described [here](#time-status) |
!!! warning
- `success` true means the DVL acieved NTP sync. To assert the DVL is synchronized to a specific NTP server, check the returned status.
+ `success` true means the DVL achieved NTP sync. To assert the DVL is synchronized to a specific NTP server, check the returned status.
!!! warning
The operation can cause abrupt jumps in system time, and is not recommended for use while reading DVL output.
diff --git a/docs/dvl/water-tracking.md b/docs/dvl/water-tracking.md
index f1ae0c6d..0b2edda9 100644
--- a/docs/dvl/water-tracking.md
+++ b/docs/dvl/water-tracking.md
@@ -1,4 +1,4 @@
-# Water Tracking
+# Water tracking
Water tracking is a mode where the DVL estimates velocity relative to the water column instead of the sea bottom. It can be useful when the DVL cannot get bottom lock, or when the movement of the water itself is relevant.
@@ -32,58 +32,62 @@ The dashboard shows the active tracking mode. On supported software, the trackin
The diagnostic page still shows spatial velocity, per-transducer velocity, and validity. In water tracking mode, the acoustic signal view shows signal strength and noise as separate time-based graphs.
-## TCP JSON API
+## Enable water tracking
-Water tracking is available in TCP JSON API version `json_v3.2` and up for supported models. Use the TCP JSON API configuration method for your model:
+Water tracking is enabled by setting `range_mode` to `wt`. Select the interface you integrate with:
-* [DVL A50/A125 TCP JSON API configuration](dvl-json-protocol.md#configuration-over-json)
-* DVL A100/A250 TCP JSON API configuration is planned for water tracking and is not available yet.
+=== "TCP JSON API"
-Enable water tracking by setting `range_mode` to `wt`:
+ Available in TCP JSON API version `json_v3.2` and up for supported models. Use the TCP JSON API configuration method for your model:
-```json
-{"command":"set_config","parameters":{"range_mode":"wt"}}
-```
+ * [DVL A50/A125 TCP JSON API configuration](dvl-json-protocol.md#configuration-over-json)
+ * DVL A100/A250 TCP JSON API configuration is planned for water tracking and is not available yet.
-Set `range_mode` back to `auto` to return to automatic bottom tracking:
+ Enable water tracking by setting `range_mode` to `wt`:
-```json
-{"command":"set_config","parameters":{"range_mode":"auto"}}
-```
+ ```json
+ {"command":"set_config","parameters":{"range_mode":"wt"}}
+ ```
-Water tracking does not introduce a separate report type. The DVL continues to use the normal velocity-and-transducer report, with the field `"type"` showing the active tracking mode. When water tracking is active, the report describes velocity relative to the water column rather than velocity relative to the bottom and the `"type"` will be `"velocity_water"`.
+ Set `range_mode` back to `auto` to return to automatic bottom tracking:
-See the TCP JSON API for your model for the report fields:
+ ```json
+ {"command":"set_config","parameters":{"range_mode":"auto"}}
+ ```
-* [DVL A50/A125 TCP JSON API velocity-and-transducer report](dvl-json-protocol.md#velocity-and-transducer-report)
-* DVL A100/A250 TCP JSON API water-tracking report fields are planned and are not available yet.
+ Water tracking does not introduce a separate report type. The DVL continues to use the normal velocity-and-transducer report, with the field `"type"` showing the active tracking mode. When water tracking is active, the report describes velocity relative to the water column rather than velocity relative to the bottom and the `"type"` will be `"velocity_water"`.
-## Serial API
+ See the TCP JSON API for your model for the report fields:
-Water tracking is available in serial protocol >= `2.7.0` for supported models. Use the serial configuration method for your model:
+ * [DVL A50/A125 TCP JSON API velocity-and-transducer report](dvl-json-protocol.md#velocity-and-transducer-report)
+ * DVL A100/A250 TCP JSON API water-tracking report fields are planned and are not available yet.
-* [DVL A50/A125 serial configuration](dvl-serial-protocol.md#configuration-over-serial)
-* DVL A100/A250 serial configuration for water tracking is planned and is not available yet.
+=== "Serial API"
-Enable water tracking by setting `range_mode` to `wt` using the `wcs` command:
+ Available in serial protocol >= `2.7.0` for supported models. Use the serial configuration method for your model:
-```text
-wcs,,,,,wt,
-```
+ * [DVL A50/A125 serial configuration](dvl-serial-protocol.md#configuration-over-serial)
+ * DVL A100/A250 serial configuration for water tracking is planned and is not available yet.
-Set `range_mode` back to `auto` to return to automatic bottom tracking:
+ Enable water tracking by setting `range_mode` to `wt` using the `wcs` command:
-```text
-wcs,,,,,auto,
-```
+ ```text
+ wcs,,,,,wt,
+ ```
-Water tracking introduces a serial report called `wrs`, which is similar to the `wrz` report but does not include altitude data. Use this data when water tracking is activated.
+ Set `range_mode` back to `auto` to return to automatic bottom tracking:
-```text
-wrs,[vx],[vy],[vz],[valid],[fom],[covariance],[time_of_validity],[time_of_transmission],[time],[status]
-```
+ ```text
+ wcs,,,,,auto,
+ ```
-See the serial protocol for your model for the report format:
+ Water tracking introduces a serial report called `wrs`, which is similar to the `wrz` report but does not include altitude data. Use this data when water tracking is activated.
-* [DVL A50/A125 serial velocity report](dvl-serial-protocol.md#velocity-report-wrs)
-* DVL A100/A250 serial water-tracking reports are planned and are not available yet.
+ ```text
+ wrs,[vx],[vy],[vz],[valid],[fom],[covariance],[time_of_validity],[time_of_transmission],[time],[status]
+ ```
+
+ See the serial protocol for your model for the report format:
+
+ * [DVL A50/A125 serial velocity report](dvl-serial-protocol.md#velocity-report-wrs)
+ * DVL A100/A250 serial water-tracking reports are planned and are not available yet.
diff --git a/docs/master-d1.md b/docs/explorer-kit/master-d1.md
similarity index 86%
rename from docs/master-d1.md
rename to docs/explorer-kit/master-d1.md
index e768b1c7..bb32f49b 100644
--- a/docs/master-d1.md
+++ b/docs/explorer-kit/master-d1.md
@@ -1,6 +1,6 @@
# Master-D1 Electronics
-
+
## Description
@@ -30,17 +30,17 @@ The LED on the Locator-A1 interface is not in use.
## Dimensions
-
+
The diagrams below shows the mechanical dimensions of the Master-D1 electronics.
-
+
-
+
## Setup
-
+
## Datasheet
diff --git a/docs/img/home-dvl-a50.png b/docs/img/home-dvl-a50.png
new file mode 100644
index 00000000..513b071b
Binary files /dev/null and b/docs/img/home-dvl-a50.png differ
diff --git a/docs/img/home-modem-m16.png b/docs/img/home-modem-m16.png
new file mode 100644
index 00000000..008263b7
Binary files /dev/null and b/docs/img/home-modem-m16.png differ
diff --git a/docs/img/home-sonar-3d-15.webp b/docs/img/home-sonar-3d-15.webp
new file mode 100644
index 00000000..34f73e9d
Binary files /dev/null and b/docs/img/home-sonar-3d-15.webp differ
diff --git a/docs/img/home-underwater-gps-g2.png b/docs/img/home-underwater-gps-g2.png
new file mode 100644
index 00000000..2fe32f5a
Binary files /dev/null and b/docs/img/home-underwater-gps-g2.png differ
diff --git a/docs/index.md b/docs/index.md
index 6263d860..b8107d9f 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,76 +1,21 @@
-
+ **[Sonar 3D-15](sonar-3d/sonar-3d-15-introduction.md)**
+
+- [{ alt="Water Linked DVL A50" }](dvl/overview.md)
+
+ **[DVL](dvl/overview.md)**
+
+- [{ alt="Water Linked Modem M16" }](modem-m16/modem-m16.md)
+
+ **[Modem M16](modem-m16/modem-m16.md)**
+
+- [{ alt="Water Linked Underwater GPS G2" }](underwater-gps/introduction.md)
+
+ **[Underwater GPS](underwater-gps/introduction.md)**
-
-
- Select your Product!
-
-
-
-
-
diff --git a/docs/modem-m16/modem-m16-faq.md b/docs/modem-m16/modem-m16-faq.md
index 05304776..cd9e9a34 100644
--- a/docs/modem-m16/modem-m16-faq.md
+++ b/docs/modem-m16/modem-m16-faq.md
@@ -31,3 +31,6 @@ The signal strength from the Modem-M16 is donut-shaped around the transducer.
Below is a simple scetch that illustrates the signal strength in all directions. For shorter distances the mounting is not relevant, as the signal is transmitted in all directions and also reflected at the surface, seabed or other constructions in the water. On long distances or to achieve optimal behaviour, the mounting position might slightly impact the signal range of the modem.

+
+## 6. How fast can the modems move relative to each other?
+The two modems should not move faster than **0.8 m/s relative to each other**. Above this relative velocity, the Doppler shift of the acoustic signal becomes significant and can disrupt the communication link. See [Acoustics](../modem-m16/modem-m16.md#acoustics).
diff --git a/docs/modem-m16/modem-m16.md b/docs/modem-m16/modem-m16.md
index 4300149f..94cf1400 100644
--- a/docs/modem-m16/modem-m16.md
+++ b/docs/modem-m16/modem-m16.md
@@ -31,4 +31,10 @@ The Modem M16 is a two-way half-duplex 10bps acoustic modem with a robust and us
| Transducer frequency | 58.5 kHz |
| Bits per package | 16 |
| Package duration | 1.6 seconds |
+| Max relative velocity | 0.8 m/s |
+
+!!! note "Relative movement and Doppler shift"
+ The two modems should not move faster than **0.8 m/s relative to each other**. Above
+ this relative velocity, the Doppler shift of the acoustic signal becomes significant
+ and can disrupt the communication link.
diff --git a/mkdocs.yml b/mkdocs.yml
index bb10d040..29061425 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -1,4 +1,4 @@
-site_name: Documentation
+site_name: Water Linked Documentation
site_url: https://docs.waterlinked.com
repo_url: https://github.com/waterlinked/docs
edit_uri: ""
@@ -11,15 +11,30 @@ theme:
font:
text: Open Sans
palette:
- # Light mode
- - scheme: default
- primary: "#1D3556" # Ocean blue
- accent: "#4BEF8F" # Signal green light
- # Background override for light mode
- background: "#F1F9EE" # Green white
- surface: "#2B9C6A" # Signal green dark
+ # Light mode — brand colors are defined in css/extra.css (primary/accent: custom)
+ - media: "(prefers-color-scheme: light)"
+ scheme: default
+ primary: custom
+ accent: custom
+ toggle:
+ icon: material/weather-sunny
+ name: Switch to dark mode
+ # Dark mode
+ - media: "(prefers-color-scheme: dark)"
+ scheme: slate
+ primary: custom
+ accent: custom
+ toggle:
+ icon: material/weather-night
+ name: Switch to light mode
features:
- content.heading.permalinks
+ - content.code.copy
+ - navigation.tabs
+ - navigation.top
+ - search.suggest
+ - search.highlight
+ - search.share
icon:
link: material/link-variant
@@ -41,7 +56,14 @@ markdown_extensions:
- meta
- pymdownx.superfences
- pymdownx.details
+ - pymdownx.highlight:
+ anchor_linenums: true
+ pygments_lang_class: true
+ - pymdownx.inlinehilite
+ - pymdownx.tabbed:
+ alternate_style: true
- attr_list
+ - md_in_html
extra_css:
- css/extra.css
@@ -119,7 +141,7 @@ nav:
- Power supply: explorer-kit/power-supply.md
- Network settings: explorer-kit/network-settings.md
- Hardware: explorer-kit/hardware.md
- - Master-D1: master-d1.md
+ - Master-D1: explorer-kit/master-d1.md
- Receiver-D1: explorer-kit/receiver-d1.md
- Locators:
- Locator-A1: explorer-kit/locators/locator-a1.md
@@ -185,20 +207,20 @@ nav:
- FAQ: dvl/faq.md
- Modem:
- - Modem-M64 (retired):
- - Introduction: modem-m64/modem-m64.md
- - Protocol: modem-m64/modem-m64-protocol.md
- Modem-M16:
- Introduction: modem-m16/modem-m16.md
- Quickstart: modem-m16/modem-m16-quickstart.md
- Interface:
- - Wiring interface: modem-m16/modem-m16-wiring.md
+ - Wiring interface: modem-m16/modem-m16-wiring.md
- GUI: modem-m16/modem-m16-gui.md
- Integration:
- Interface overview: modem-m16/modem-m16-integration.md
- Protocol: modem-m16/modem-m16-protocol.md
- Diagnostic report structure: modem-m16/modem-m16-diagnostic-report.md
- M16 FAQ: modem-m16/modem-m16-faq.md
+ - Modem-M64 (retired):
+ - Introduction: modem-m64/modem-m64.md
+ - Protocol: modem-m64/modem-m64-protocol.md
- I/O interface cards:
- Revision 2: io-interface-cards/io-interface-rev2.md