diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 95d9b51..9c42f5a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,10 +12,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python 3.8 + - name: Set up Python 3.14 uses: actions/setup-python@v4 with: - python-version: '3.8' + python-version: '3.14' - name: Install dependencies run: | diff --git a/docs/css/extra.css b/docs/css/extra.css index c8950c7..1cef1ff 100644 --- a/docs/css/extra.css +++ b/docs/css/extra.css @@ -2,6 +2,15 @@ height:3.7rem; background-color: #1d3556; } + +/* Always show heading permalinks */ +.md-typeset .headerlink { + opacity: 1; + visibility: visible; + margin-left: 0.3em; + cursor: pointer; +} + .md-flex{ margin-top: 1rem; } @@ -14,13 +23,30 @@ height:3.0rem; width:auto; } + .md-container{ margin-top: 2rem; } + .md-sidebar{ margin-top:6rem; } +.responsive-video { + position: relative; + width: 100%; + padding-bottom: 56.25%; /* 16:9 aspect ratio */ + height: 0; +} + +.responsive-video iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + .grid{ display: flex; display: -ms-flexbox; @@ -29,90 +55,6 @@ margin-left: -.4rem; margin-right: -.4rem; } -.column.col-12, -.column.col-11, -.column.col-10, -.column.col-9, -.column.col-8, -.column.col-7, -.column.col-6, -.column.col-5, -.column.col-4, -.column.col-3, -.column.col-2, -.column.col-1, -.column.col-auto { - -ms-flex: none; - flex: none; -} - -.col-12 { - width: 100%; -} - -.col-11 { - width: 91.66666667%; -} - -.col-10 { - width: 83.33333333%; -} - -.col-9 { - width: 75%; -} - -.col-8 { - width: 66.66666667%; -} - -.col-7 { - width: 58.33333333%; -} - -.col-6 { - width: 50%; -} - -.col-5 { - width: 41.66666667%; -} - -.col-4 { - width: 33.33333333%; -} - -.col-3 { - width: 25%; -} - -.col-2 { - width: 16.66666667%; -} - -.col-1 { - width: 8.33333333%; -} - -.col-auto { - -ms-flex: 0 0 auto; - flex: 0 0 auto; - max-width: none; - width: auto; -} - -.col-mx-auto { - margin-left: auto; - margin-right: auto; -} - -.col-ml-auto { - margin-left: auto; -} - -.col-mr-auto { - margin-right: auto; -} /* Dark green for buttons */ .md-button { @@ -121,324 +63,18 @@ /* Ocean Blue for links */ a { - color: #1D3556; + color: #2B9C6A; } -@media (max-width: 1280px) { - .col-xl-12, - .col-xl-11, - .col-xl-10, - .col-xl-9, - .col-xl-8, - .col-xl-7, - .col-xl-6, - .col-xl-5, - .col-xl-4, - .col-xl-3, - .col-xl-2, - .col-xl-1, - .col-xl-auto { - -ms-flex: none; - flex: none; - } - .col-xl-12 { - width: 100%; - } - .col-xl-11 { - width: 91.66666667%; - } - .col-xl-10 { - width: 83.33333333%; - } - .col-xl-9 { - width: 75%; - } - .col-xl-8 { - width: 66.66666667%; - } - .col-xl-7 { - width: 58.33333333%; - } - .col-xl-6 { - width: 50%; - } - .col-xl-5 { - width: 41.66666667%; - } - .col-xl-4 { - width: 33.33333333%; - } - .col-xl-3 { - width: 25%; - } - .col-xl-2 { - width: 16.66666667%; - } - .col-xl-1 { - width: 8.33333333%; - } - .col-xl-auto { - width: auto; - } - .hide-xl { - display: none !important; - } - .show-xl { - display: block !important; - } -} - -@media (max-width: 960px) { - .col-lg-12, - .col-lg-11, - .col-lg-10, - .col-lg-9, - .col-lg-8, - .col-lg-7, - .col-lg-6, - .col-lg-5, - .col-lg-4, - .col-lg-3, - .col-lg-2, - .col-lg-1, - .col-lg-auto { - -ms-flex: none; - flex: none; - } - .col-lg-12 { - width: 100%; - } - .col-lg-11 { - width: 91.66666667%; - } - .col-lg-10 { - width: 83.33333333%; - } - .col-lg-9 { - width: 75%; - } - .col-lg-8 { - width: 66.66666667%; - } - .col-lg-7 { - width: 58.33333333%; - } - .col-lg-6 { - width: 50%; - } - .col-lg-5 { - width: 41.66666667%; - } - .col-lg-4 { - width: 33.33333333%; - } - .col-lg-3 { - width: 25%; - } - .col-lg-2 { - width: 16.66666667%; - } - .col-lg-1 { - width: 8.33333333%; - } - .col-lg-auto { - width: auto; - } - .hide-lg { - display: none !important; - } - .show-lg { - display: block !important; - } -} - -@media (max-width: 840px) { - .col-md-12, - .col-md-11, - .col-md-10, - .col-md-9, - .col-md-8, - .col-md-7, - .col-md-6, - .col-md-5, - .col-md-4, - .col-md-3, - .col-md-2, - .col-md-1, - .col-md-auto { - -ms-flex: none; - flex: none; - } - .col-md-12 { - width: 100%; - } - .col-md-11 { - width: 91.66666667%; - } - .col-md-10 { - width: 83.33333333%; - } - .col-md-9 { - width: 75%; - } - .col-md-8 { - width: 66.66666667%; - } - .col-md-7 { - width: 58.33333333%; - } - .col-md-6 { - width: 50%; - } - .col-md-5 { - width: 41.66666667%; - } - .col-md-4 { - width: 33.33333333%; - } - .col-md-3 { - width: 25%; - } - .col-md-2 { - width: 16.66666667%; - } - .col-md-1 { - width: 8.33333333%; - } - .col-md-auto { - width: auto; - } - .hide-md { - display: none !important; - } - .show-md { - display: block !important; - } + /* Hide the right hand Table of Contents sidebar */ +.md-sidebar--secondary, +.md-sidebar[data-md-type="toc"] { + display: none; } -@media (max-width: 600px) { - .col-sm-12, - .col-sm-11, - .col-sm-10, - .col-sm-9, - .col-sm-8, - .col-sm-7, - .col-sm-6, - .col-sm-5, - .col-sm-4, - .col-sm-3, - .col-sm-2, - .col-sm-1, - .col-sm-auto { - -ms-flex: none; - flex: none; - } - .col-sm-12 { - width: 100%; - } - .col-sm-11 { - width: 91.66666667%; +/* Make the content span the full width when the secondary sidebar is gone */ +@media (min-width: 960px) { + .md-main__inner { + grid-template-columns: minmax(0, 1fr); } - .col-sm-10 { - width: 83.33333333%; - } - .col-sm-9 { - width: 75%; - } - .col-sm-8 { - width: 66.66666667%; - } - .col-sm-7 { - width: 58.33333333%; - } - .col-sm-6 { - width: 50%; - } - .col-sm-5 { - width: 41.66666667%; - } - .col-sm-4 { - width: 33.33333333%; - } - .col-sm-3 { - width: 25%; - } - .col-sm-2 { - width: 16.66666667%; - } - .col-sm-1 { - width: 8.33333333%; - } - .col-sm-auto { - width: auto; - } - .hide-sm { - display: none !important; - } - .show-sm { - display: block !important; - } -} -@media (max-width: 480px) { - .col-xs-12, - .col-xs-11, - .col-xs-10, - .col-xs-9, - .col-xs-8, - .col-xs-7, - .col-xs-6, - .col-xs-5, - .col-xs-4, - .col-xs-3, - .col-xs-2, - .col-xs-1, - .col-xs-auto { - -ms-flex: none; - flex: none; - } - .col-xs-12 { - width: 100%; - } - .col-xs-11 { - width: 91.66666667%; - } - .col-xs-10 { - width: 83.33333333%; - } - .col-xs-9 { - width: 75%; - } - .col-xs-8 { - width: 66.66666667%; - } - .col-xs-7 { - width: 58.33333333%; - } - .col-xs-6 { - width: 50%; - } - .col-xs-5 { - width: 41.66666667%; - } - .col-xs-4 { - width: 33.33333333%; - } - .col-xs-3 { - width: 25%; - } - .col-xs-2 { - width: 16.66666667%; - } - .col-xs-1 { - width: 8.33333333%; - } - .col-xs-auto { - width: auto; - } - .hide-xs { - display: none !important; - } - .show-xs { - display: block !important; - } - } \ No newline at end of file +} \ No newline at end of file diff --git a/docs/dvl/axes.md b/docs/dvl/axes.md index 97e3899..b8f9f7e 100644 --- a/docs/dvl/axes.md +++ b/docs/dvl/axes.md @@ -44,17 +44,17 @@ The body frame axes of the DVL are as follows: * X axis is pointing forward (LED is forward, cable backward) * Y axis is pointing right * Z axis is pointing down (mounting holes are up, transducers are down) -* Origin is the center of the DVL and 25mm/30mm from the backplate. See [A125](../dvl-a125#dimensions) and [A50](../dvl-a50#dimensions) for their dimensions. +* Origin is the center of the DVL and 25mm/30mm from the backplate. See [A125](dvl-a125.md#dimensions) and [A50](dvl-a50.md#dimensions) for their dimensions. -By default, the body frame and vehicle frame is the same and align with the DVL's [frame](../dead-reckoning#frame) for dead reckoning. +By default, the body frame and vehicle frame is the same and align with the DVL's [frame](dead-reckoning.md#frame) for dead reckoning. ## Vehicle frame The DVL can be mounted at an angle to the forward direction of a vehicle to which it is attached. -To be precise, the clockwise angle θ in degrees around the Z axis (i.e. 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 [GUI](../dvl/gui/configuration.md), or via the TCP or serial [protocols](../dvl-protocol/). +To be precise, the clockwise angle θ in degrees around the Z axis (i.e. 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 [GUI](../dvl/gui/configuration.md), or via the TCP or serial [protocols](dvl-protocol.md). -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 velocities outputted by the DVL will be aligned with the forward axis of the vehicle, and, at time zero, the X-axis of the DVL's [frame](../dead-reckoning#frame) for dead reckoning will be aligned with the forward axis of the vehicle. +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 velocities outputted by the DVL will be aligned with the forward axis of the vehicle, and, at time zero, the X-axis of the DVL's [frame](dead-reckoning.md#frame) for dead reckoning will be aligned with the forward axis of the vehicle. For example: diff --git a/docs/dvl/dead-reckoning.md b/docs/dvl/dead-reckoning.md index 9cc6962..25cf6a6 100644 --- a/docs/dvl/dead-reckoning.md +++ b/docs/dvl/dead-reckoning.md @@ -5,13 +5,13 @@ The DVL-A50 and DVL-A125 run a dead reckoning algorithm which estimates the orie ## Starting dead reckoning 1. Calibrate the gyroscope by pressing *More -> Calibrate gyro* in the [GUI](../dvl/gui/dashboard.md) whilst the DVL is stationary. -2. Click the 'Reset' button  in the [GUI](../dvl/gui/dashboard.md), or send a reset command over the TCP or serial [protocol](../dvl-protocol). +2. Click the 'Reset' button  in the [GUI](../dvl/gui/dashboard.md), or send a reset command over the TCP or serial [protocol](dvl-protocol.md). Failure to perform gyro calibration will result in less accurate dead reckoning. ## Frame -The position, speed, and roll, pitch, and yaw angles outputted by the dead reckoning algorithm are with respect to the frame defined at time zero (the time of the last reset, or else at start up) by the axes of the [vehicle frame](../axes#vehicle-frame). +The position, speed, and roll, pitch, and yaw angles outputted by the dead reckoning algorithm are with respect to the frame defined at time zero (the time of the last reset, or else at start up) by the axes of the [vehicle frame](axes.md#vehicle-frame). ## Speed and position @@ -22,17 +22,17 @@ When the DVL fails in its determination of velocity, speed and position are pred !!! note When the DVL is powered on in the air, its position will drift significantly. This should be ignored, and dead reckoning should be [started](#starting-dead-reckoning) in water when ready. -The position of the DVL can be viewed in the GUI [dashboard](../dvl/gui/dashboard.md) or be fetched by [API](../dvl-protocol/#dead-reckoning-report). +The position of the DVL can be viewed in the GUI [dashboard](../dvl/gui/dashboard.md) or be fetched by [API](dvl-protocol.md#dead-reckoning-report). ## Orientation -The calculation of the orientation of the DVL is based upon the accelerometer and gyroscope measurements of its IMU. The orientation is represented by roll, pitch, and yaw angles, and can be viewed in the GUI [dashboard](../dvl/gui/dashboard.md) or be fetched by [API](../dvl-protocol/#dead-reckoning-report). +The calculation of the orientation of the DVL is based upon the accelerometer and gyroscope measurements of its IMU. The orientation is represented by roll, pitch, and yaw angles, and can be viewed in the GUI [dashboard](../dvl/gui/dashboard.md) or be fetched by [API](dvl-protocol.md#dead-reckoning-report). - Roll is a rotation around the X axis of the DVL - Pitch is a rotation around the Y axis of the DVL - Yaw is a rotation around the Z axis of the DVL -For orientation to function correctly, the DVL must be deployed in accordance with its [axis conventions](../axes). +For orientation to function correctly, the DVL must be deployed in accordance with its [axis conventions](axes.md). !!! note A small tilt in the DVL mounting, though it will result in almost no position error with respect to the X and Y axes, may lead a significant error with respect to the Z axis. This change will be a projection of the true horizontal position onto the Z axis. For example, when the DVL is mounted with 5° tilt and the horizontal displacement of the DVL is 100m since last reset, the total displayed distance in the X, Y plane will be 99.6 m, and the Z position will be ±9 m. diff --git a/docs/dvl/dvl-protocol.md b/docs/dvl/dvl-protocol.md index e467cbf..8e447de 100644 --- a/docs/dvl/dvl-protocol.md +++ b/docs/dvl/dvl-protocol.md @@ -44,7 +44,7 @@ The format of each packet is JSON. A velocity-and-transducer report is sent for each velocity calculation of the DVL. The rate depends on the altitude of the DVL (distance to the sea bottom or other reflecting surface), but will be in the range 2-15 Hz. -The X, Y, and Z axes are with respect to [body frame](../axes#body-frame) of the DVL, or the [vehicle frame](../axes#vehicle-frame) if the DVL is mounted on a vehicle at an angle, specified as a 'mounting rotation offset', from the forward axis of the vehicle. +The X, Y, and Z axes are with respect to [body frame](axes.md#body-frame) of the DVL, or the [vehicle frame](axes.md#vehicle-frame) if the DVL is mounted on a vehicle at an angle, specified as a 'mounting rotation offset', from the forward axis of the vehicle. The messages are delimited by newline. @@ -137,7 +137,7 @@ Example of TCP report (indented for legibility) ### Dead reckoning report -A dead reckoning report outputs the current speed, position, and orientation of the DVL as calculated by [dead reckoning](../dead-reckoning), with respect to a [frame](../dead-reckoning#frame) defined by the axes of the DVL's [body frame](../axes#body-frame), or [vehicle frame](../axes#vehicle-frame) if a mounting rotation offset is set, at the start of the dead reckoning run. The expected update rate is 5 Hz. +A dead reckoning report outputs the current speed, position, and orientation of the DVL as calculated by [dead reckoning](dead-reckoning.md), with respect to a [frame](dead-reckoning.md#frame) defined by the axes of the DVL's [body frame](axes.md#body-frame), or [vehicle frame](axes.md#vehicle-frame) if a mounting rotation offset is set, at the start of the dead reckoning run. The expected update rate is 5 Hz. @@ -245,10 +245,10 @@ The response will be as follows if the calibration is successful. If queue is fu | Variable | Description | |----------|-------------| | speed_of_sound | Speed of sound (1000-2000 m/s). Integer | -| mounting_rotation_offset | See the definition of the [vehicle frame](../axes#vehicle-frame) of the DVL. Typically 0, but can be set to be non-zero if the forward axis of the DVL is not aligned with the forward axis of a vehicle on which it is mounted (0-360 degrees). Integer | +| mounting_rotation_offset | See the definition of the [vehicle frame](axes.md#vehicle-frame) of the DVL. Typically 0, but can be set to be non-zero if the forward axis of the DVL is not aligned with the forward axis of a vehicle on which it is mounted (0-360 degrees). Integer | | acoustic_enabled | `true` for normal operation of the DVL,`false` when the sending of acoustic waves from the DVL is disabled (e.g. to save power or slow down its heating up in air) | -| dark_mode_enabled | `false` when the LED operates as [normal](../interfaces#led-signals), `true` for no blinking of the LED (e.g. if the LED is interfering with a camera) | -| range_mode | `auto` when operating as normal, otherwise see [range mode configuration](../dvl-protocol#range-mode-configuration) | +| dark_mode_enabled | `false` when the LED operates as [normal](interfaces.md#led-signals), `true` for no blinking of the LED (e.g. if the LED is interfering with a camera) | +| range_mode | `auto` when operating as normal, otherwise see [range mode configuration](dvl-protocol.md#range-mode-configuration) | | periodic_cycling_enabled | `true` for normal operation where the DVL periodically searches for bottom lock shorter than the existing bottom lock, `false` if periodic cycling is disabled | @@ -337,13 +337,13 @@ The commands in the table are shown without the checksum and without the mandato | `wcw` | Get product detail | `wrw,`*[name]*,*[version]*,*[chipID]*,*[IP address]* | Where type is dvl, name is product name, version is software version, chip ID is the chip ID and _optionally_ the IP address if connected to DHCP server: eg: `wrw,dvl-a50,2.2.1,0xfedcba98765432` or `wrw,dvl-a50,2.2.1,0xfedcba98765432,10.11.12.140` | | `wcs,`*[configuration parameters]* | Set configuration parameters | `wra` | Successfully set the specified configuration parameters. See [Configuration](#configuration-over-serial) for details | | `wcc` | Get current configuration | `wrc,`*[configuration parameters]* | Entire current configuration. See [Configuration](#configuration-over-serial) for details | -| `wcr` | Reset dead reckoning | `wra` | Successfully started a new [dead reckoning](../dead-reckoning#starting-dead-reckoning) run | +| `wcr` | Reset dead reckoning | `wra` | Successfully started a new [dead reckoning](dead-reckoning.md#starting-dead-reckoning) run | | `wcx` | Trigger ping | `wra` | Successfully queued a ping | | `wcg` | Calibrate gyro | `wra` | Successfully calibrated gyro | | `wcp` | Change serial output protocol | `wra` | Successfully changed output protocol | | | | `wrz,`*[details below]* | Velocities calculated | | | | `wru,`*[details below]* | Transducer information | -| | | `wrp,`*[details below]* | [Dead reckoning](../dead-reckoning) report | +| | | `wrp,`*[details below]* | [Dead reckoning](dead-reckoning.md) report | | | | `wrx,`*[details below]* | DEPRECATED: Velocities calculated (old format) | | | | `wrt,`*[details below]* | DEPRECATED: Transducer information (old format) | | | | `wr?` | Malformed request: packet cannot be understood or no newline received before timeout | @@ -356,7 +356,7 @@ The commands in the table are shown without the checksum and without the mandato A velocity report is outputted for each velocity calculation of the DVL. The rate depends on the altitude of the DVL (distance to the sea bottom or other reflecting surface), but will be in the range 2-15 Hz. -The X, Y, and Z axes are with respect to [body frame](../axes#body-frame) of the DVL, or the [vehicle frame](../axes#vehicle-frame) if the DVL is mounted on a vehicle at an angle, specified as a 'mounting rotation offset', from the forward axis of the vehicle. +The X, Y, and Z axes are with respect to [body frame](axes.md#body-frame) of the DVL, or the [vehicle frame](axes.md#vehicle-frame) if the DVL is mounted on a vehicle at an angle, specified as a 'mounting rotation offset', from the forward axis of the vehicle. The report has the following format: `wrz,`*[vx],[vy],[vz],[valid],[altitude],[fom],[covariance],[time_of_validity],[time_of_transmission],[time],[status]* @@ -410,7 +410,7 @@ wru,3,1.800,1.35,-58,-96*a3 ### Dead reckoning report (wrp) -A dead reckoning report outputs the current speed, position, and orientation of the DVL as calculated by [dead reckoning](../dead-reckoning), with respect to a [frame](../dead-reckoning#frame) defined by the axes of the DVL's [body frame](../axes#body-frame), or [vehicle frame](../axes#vehicle-frame) if a mounting rotation offset is set, at the start of the dead reckoning run. The expected update rate is 5 Hz. +A dead reckoning report outputs the current speed, position, and orientation of the DVL as calculated by [dead reckoning](dead-reckoning.md), with respect to a [frame](dead-reckoning.md#frame) defined by the axes of the DVL's [body frame](axes.md#body-frame), or [vehicle frame](axes.md#vehicle-frame) if a mounting rotation offset is set, at the start of the dead reckoning run. The expected update rate is 5 Hz. The format is: `wrp,`*[time_stamp],[x],[y],[z],[pos_std],[roll],[pitch],[yaw],[status]* @@ -487,11 +487,11 @@ wcp,3 | Variable | Description | |----------|-------------| | speed_of_sound | Speed of sound (1000-2000 m/s). Float | -| mounting_rotation_offset | See the definition of the [vehicle frame](../axes#vehicle-frame) of the DVL. Typically 0, but can be set to be non-zero if the forward axis of the DVL is not aligned with the forward axis of a vehicle on which it is mounted (0-360 degrees). Float | +| mounting_rotation_offset | See the definition of the [vehicle frame](axes.md#vehicle-frame) of the DVL. Typically 0, but can be set to be non-zero if the forward axis of the DVL is not aligned with the forward axis of a vehicle on which it is mounted (0-360 degrees). Float | | acoustic_enabled | `y` for normal operation of the DVL,`n` when the sending of acoustic waves from the DVL is disabled (e.g. to save power or slow down its heating up in air) | -| dark_mode_enabled | `n` when the LED operates as [normal](../interfaces#led-signals). `y` for no blinking of LED (e.g. if the LED is interfering with a camera) | -| range_mode |`auto` when operating as normal, otherwise see [range mode configuration](../dvl-protocol#range-mode-configuration) | -| periodic_cycling_enabled | `y` when operating as normal, otherwise `n`. See [Configuration over JSON](../dvl-protocol#configuration-over-json) for details +| dark_mode_enabled | `n` when the LED operates as [normal](interfaces.md#led-signals). `y` for no blinking of LED (e.g. if the LED is interfering with a camera) | +| range_mode |`auto` when operating as normal, otherwise see [range mode configuration](dvl-protocol.md#range-mode-configuration) | +| periodic_cycling_enabled | `y` when operating as normal, otherwise `n`. See [Configuration over JSON](dvl-protocol.md#configuration-over-json) for details !!!note For backward compatibility the `range_mode` and `periodic_cycling_enabled` parameters are optional when setting the configuration. They will always be returned when reading the configuration (`wcc`). diff --git a/docs/dvl/dvl-troubleshooting.md b/docs/dvl/dvl-troubleshooting.md index 711f658..987fd6a 100644 --- a/docs/dvl/dvl-troubleshooting.md +++ b/docs/dvl/dvl-troubleshooting.md @@ -14,115 +14,26 @@ If the troubleshooting guide do not help, please check out [FAQ DVL](../dvl/faq. * Does the LED turn on? ### LED -1. For LED status, see [LED Signals](../dvl/interfaces.md#led-signals). +1. For LED status, see [LED Signals](interfaces.md#led-signals). ### Wiring -1. Check that you have wired your DVL correctly, see [Wiring interface](../interfaces#wiring-interface). +1. Check that you have wired your DVL correctly, see [Wiring interface](interfaces.md#wiring-interface). - 1.1 If you have a custom connector you need to ask the supplier for the correct drawings. 2. Check for damages along the cable and that there are good connection where you have terminated your DVL. 3. Check for short between Negative/Ground and Positive (10-30V). ### Environmental Check -1. The Line of sight should be clear of any obstacles including walls, see [Line of sight](../dvl-a50#line-of-sight). +1. The Line of sight should be clear of any obstacles including walls, see [Line of sight](dvl-a50.md#line-of-sight). - 1.1 One easy way to make sure the Line of sight is clear from any walls is to observe that all beam shows approximately the same distance to the bottom. If some of the beams are flickering or showing another distance it might pick up a reflection from a wall or some other obstacle in the line of sight. Obstacle free radius from the DVL to the wall depending on the distance to the bottom can be calculated with this formula: **Obstacle free radius** = tan(32.5°) × **distance from DVL to bottom**. 2. If testing in a pool, tank or bucket it should **not** be made out of a **polished metal** or very clean surfaces. This can introduce more noise and make it harder for the DVL to get a bottom lock. 3. Check that there are no motors, echo sunders, pumps, running house. This can create noise in the same frequency as the DVL and have an impact on the acoustic signal. 4. Make sure the environment is not acting on the DVL in a way that makes it pitch and yaw (waves). That will send the acoustic signal in many directions making it hard to achieve a bottom lock. -## Thermal shutdown - Does the DVL look like it is constantly powering on and off +## Thermal Shutdown The DVL has a thermal shutdown mechanism to avoid damage. It will issue a warning before shutting down at 55℃. Once it cools below 50℃, it automatically restarts. If the overheating issue is not addressed, it may repeat this shutdown/restart cycle. 1. Is the DVL in water? If not it will overheat and enter a shutdown/restart cycle. - - - ## GUI 1. Connect your DVL yo Ethernet by following the Network documentation, see [Setup Network](networking.md#networking). Use the [Fallback IP](networking.md#fallback-ip) if you are struggling. diff --git a/docs/dvl/interfaces.md b/docs/dvl/interfaces.md index 8c88cac..32098e3 100644 --- a/docs/dvl/interfaces.md +++ b/docs/dvl/interfaces.md @@ -12,7 +12,7 @@ For both the DVL-A50 and the DVL-A125. * Flashing green light, mostly on (slow, every few seconds): DVL has bottom lock. -* Flashing green light (fast, many times a second): DVL is in [thermal shutdown](dvl-troubleshooting.md#thermal-shutdown---does-the-dvl-look-like-it-is-constantly-powering-on-and-off) +* Flashing green light (fast, many times a second): DVL is in [thermal shutdown](dvl-troubleshooting.md#thermal-shutdown) ## Wiring interface @@ -87,11 +87,11 @@ The DVL-A50 has a 3.3 volt UART interface (5V tolerant). !!! Warning There can be a momentary (<10 us) power spike (~5 V) on the UART lines when power is applied to the DVL, which may damage equipment which is not 5V tolerant. -See the DVL's [serial protocol](../dvl-protocol#serial-protocol). +See the DVL's [serial protocol](dvl-protocol.md#serial-protocol). ## Ethernet Interface -See [networking](../networking) and the DVL's [TCP protocol](../dvl/dvl-protocol.md#json-protocol-tcp). +See [networking](networking.md) and the DVL's [TCP protocol](dvl-protocol.md#json-protocol-tcp). ## Code examples diff --git a/docs/dvl/networking.md b/docs/dvl/networking.md index 942586e..f24bd6f 100644 --- a/docs/dvl/networking.md +++ b/docs/dvl/networking.md @@ -3,9 +3,9 @@ The DVL has several services available over ethernet: * [Multicast DNS](#multicast-dns-mdns) (mDNS) for easy discovery -* Web [GUI](../dvl/gui/dashboard.md), providing a visualisation of the data outputted by the DVL, as well as configuration, [updating of software](../sw-update), diagnostics, and more. +* Web [GUI](../dvl/gui/dashboard.md), providing a visualisation of the data outputted by the DVL, as well as configuration, [updating of software](sw-update.md), diagnostics, and more. * TCP [data stream](#tcp-data-stream) -* [Software updates](../sw-update) +* [Software updates](sw-update.md) ## Network configuration diff --git a/docs/explorer-kit/upgrader.md b/docs/explorer-kit/upgrader.md index e40d9c8..72bfc30 100644 --- a/docs/explorer-kit/upgrader.md +++ b/docs/explorer-kit/upgrader.md @@ -31,7 +31,7 @@ This procedure works if you have haven't changed the jumpers on the Master-D1, y | - | :------------------- | :------------------- | | 1 | Download the software package (.wlup) for your kit | [Download software package](#download-software-package) | | 2 | Power off the system | | -| 3 | Connect the upgrade plug included in the kit or connect GPIO0 to ground using a jumper cable |   | +| 3 | Connect the upgrade plug included in the kit or connect GPIO0 to ground using a jumper cable |   | | 4 | Power on the system | | | 6 | Open the web gui by typing *http://192.168.2.94* in your web browser.| If you see a blank or partly broken page, try to clean browser cache by pressing Ctrl-F5 or opening the page in "Private"/"Incognito" mode | | 7 | Remove the upgade plug or the jumper grounding GP0. | | @@ -53,7 +53,7 @@ This procedure works if you don't know how to set a static IP address on your co | 3 | Set Master-D1 to DHCP Server. (Remember original setting) | See [network settings](hardware.md) | | 4 | Connect a network cable directly from your computer to the Master-D1 | | | 5 | Configure the network on your computer to get IP address from DHCP | (this is default on most computers, so if you haven't set a static ip you're good) | -| 6 | Connect the upgrade plug included in the kit or connect GPIO0 to ground using a jumper cable |   | +| 6 | Connect the upgrade plug included in the kit or connect GPIO0 to ground using a jumper cable |   | | 7 | Power on the system | | | 8 | In your web browser, open *http://192.168.0.1* | If you see a blank or partly broken page, try to clean browser cache by pressing Ctrl-F5 or opening the page in "Private"/"Incognito" mode | | 9 | Remove the grounding of GP0. | | diff --git a/docs/index.md b/docs/index.md index 7c09ec1..6cb2e08 100644 --- a/docs/index.md +++ b/docs/index.md @@ -33,12 +33,11 @@