Skip to content

Releases: MB3hel/AUVControlBoard

v1.1.0

05 May 19:02
Compare
Choose a tag to compare

Only changes since 1.1.0-beta2 are documentation changes

Changelog:

  • New: SimCB
    • Firmware can now be built to "SimCB" binaries. These are programs that can run on Windows, macOS, or Linux and act as a simulated control board.
    • SimCB can be interacted with via TCP using the same communication protocol used by a real control board over UART
    • In contrast to the old "simcb" built into the simulator itself, this can be used without the simulator to provide a simulated environment
    • SimCB runs the actual firmware on the host OS using FreeRTOS simulation ports. Thus, it is the same code as the real control board.
    • Thus, SimCB allows testing without a simulated environment (useful for unit tests in programs using control board) and ensures that testing (with or without simulated environment) is more accurate to the behavior of real hardware.
  • Control board firmware now supports multiple different IMUs and depth sensors. There is no new hardware supported currently, but the codebase is structured to be able to. This has motivated some command changes described below.
  • Various sensor message prefixes changed to be more generic
    • BNO055D -> IMUD
    • BNO055R -> IMUR
    • BNO055P -> IMUP
    • BNO055W -> IMUW
    • MS5837D -> DEPTHD
    • MS5837R -> DEPTHR
    • MS5837P -> DEPTHP
    • Note that sensor specific configuration commands (eg BNO055A and calibration commands) are still the same. They are prefixed with the name of the specific sensor. Some of these commands will now ACK with INVALID_CMD if the sensor is not connected. This is generally true of commands that require data from the sensor (eg calibration) but generally will not apply to general configuration (eg axis configs). See docs for details.
  • Sensor status SSTAT command now returns two bytes in the ACK. These bytes indicate which IMU / Depth sensor is in use. Currently supported IMUs are BNO055, SIM and supported depth sensors are MS5837, SIM. Note that when a control board is under the simulator (either real or SimCB under simulator), the sensors will report as the SIM sensors, not as real hardware anymore.
  • Removed Depth hold mode (DHOLD). It was essentially useless.
  • Added a heartbeat message sent from control board to the PC once per second. This message can safely be ignored. It is used to indicate that the control board is still present and operating as expected. This is mostly for internal networking reasons for SimCB. But end users may find it useful to monitor the heartbeat messages at times too.
  • Thruster PWM parameters must now be configured. If thruster parameters are not configured, the control board will not generate any PWM signals. This is used as a way to support more types of ESCs.
    • This is done using the TPWM command. See the docs for details.
    • If speed sets are issued before this command, no PWM will be generated, until TPWM is sent. After TPWM is sent, the PWM starts being generate (this applies even for previous speed sets)
    • TPWM should be part of the vehicle configuration (just like dof matrix, TINV, and RELDOF).
  • SASSISTTN message is now PIDTN to better reflect its purpose

  • SimCB recommends port 5014 when prompting user (matching simulator default)
  • Iface scripts support attaching to SimCB directly (-p tcp:PORT)
  • Iface scripts support non-default ports for the simulator

v1.1.0-beta2

26 Jan 21:26
Compare
Choose a tag to compare
v1.1.0-beta2 Pre-release
Pre-release
  • Fix a problem where invalid floating point values (eg nan) could deadlock the firmware causing a control board reset (note that this problem was not introduced in the 1.1.0 betas; it impacts older 1.0.x versions too).

v1.1.0-beta1

15 Nov 04:20
Compare
Choose a tag to compare
v1.1.0-beta1 Pre-release
Pre-release

Changelog:

  • SimCB recommends port 5014 when prompting user (matching simulator default)
  • Iface scripts support attaching to SimCB directly (-p tcp:PORT)
  • Iface scripts support non-default ports for the simulator

v1.1.0-beta0

03 Nov 16:43
Compare
Choose a tag to compare
v1.1.0-beta0 Pre-release
Pre-release

Changelog:

  • New: SimCB
    • Firmware can now be built to "SimCB" binaries. These are programs that can run on Windows, macOS, or Linux and act as a simulated control board.
    • SimCB can be interacted with via TCP using the same communication protocol used by a real control board over UART
    • In contrast to the old "simcb" built into the simulator itself, this can be used without the simulator to provide a simulated environment
    • SimCB runs the actual firmware on the host OS using FreeRTOS simulation ports. Thus, it is the same code as the real control board.
    • Thus, SimCB allows testing without a simulated environment (useful for unit tests in programs using control board) and ensures that testing (with or without simulated environment) is more accurate to the behavior of real hardware.
  • Control board firmware now supports multiple different IMUs and depth sensors. There is no new hardware supported currently, but the codebase is structured to be able to. This has motivated some command changes described below.
  • Various sensor message prefixes changed to be more generic
    • BNO055D -> IMUD
    • BNO055R -> IMUR
    • BNO055P -> IMUP
    • BNO055W -> IMUW
    • MS5837D -> DEPTHD
    • MS5837R -> DEPTHR
    • MS5837P -> DEPTHP
    • Note that sensor specific configuration commands (eg BNO055A and calibration commands) are still the same. They are prefixed with the name of the specific sensor. Some of these commands will now ACK with INVALID_CMD if the sensor is not connected. This is generally true of commands that require data from the sensor (eg calibration) but generally will not apply to general configuration (eg axis configs). See docs for details.
  • Sensor status SSTAT command now returns two bytes in the ACK. These bytes indicate which IMU / Depth sensor is in use. Currently supported IMUs are BNO055, SIM and supported depth sensors are MS5837, SIM. Note that when a control board is under the simulator (either real or SimCB under simulator), the sensors will report as the SIM sensors, not as real hardware anymore.
  • Removed Depth hold mode (DHOLD). It was essentially useless.
  • Added a heartbeat message sent from control board to the PC once per second. This message can safely be ignored. It is used to indicate that the control board is still present and operating as expected. This is mostly for internal networking reasons for SimCB. But end users may find it useful to monitor the heartbeat messages at times too.
  • Thruster PWM parameters must now be configured. If thruster parameters are not configured, the control board will not generate any PWM signals. This is used as a way to support more types of ESCs.
    • This is done using the TPWM command. See the docs for details.
    • If speed sets are issued before this command, no PWM will be generated, until TPWM is sent. After TPWM is sent, the PWM starts being generate (this applies even for previous speed sets)
    • TPWM should be part of the vehicle configuration (just like dof matrix, TINV, and RELDOF).
  • SASSISTTN message is now PIDTN to better reflect its purpose

Not yet implemented (but planned):

  • Iface script support attaching to SimCB directly instead of through simulator
  • Note that there is not yet a release of the simulator supporting the new SimCB binaries.

v1.0.3

30 Sep 23:47
Compare
Choose a tag to compare
  • Added Orientation Hold mode (OHOLD)
    • This mode is like SASSIST, however does not use a PID for depth (useful for gamepad, object tracking, etc)
  • Implement versioning and version query / check for firmware and iface
  • Updated gamepad script to use both OHOLD and SASSIST

v1.0.3-beta0

25 Sep 15:52
Compare
Choose a tag to compare
v1.0.3-beta0 Pre-release
Pre-release
  • Implement orientation hold mode
  • Implement versioning and version query / check for firmware and iface
  • Updated gamepad script to use both OHOLD and SASSIST

v1.0.2: Sensor Calibration

10 Jul 17:48
Compare
Choose a tag to compare

New Features:

  • Implemented support for calibrating BNO055 (IMU) and MS5837 (depth sensor)
  • IMU calibration can be saved to the control board (so it is persistent)
  • Depth sensor calibration is not saved (as it varies too much between environments & weather conditions and is not worth saving)

BufFixes:

  • A race condition causing BNO055 data to sometimes report as all zeros after configuring the IMU axes was fixed.

Other:

  • Note that the flash.py script was changed for this release. Do not attempt to use old flash.py scripts to flash the current firmware.

v1.0.1: Bugfix Release

18 Jun 04:22
Compare
Choose a tag to compare

Features / Changes:

  • sensordata example iface script now shows accumulated euler angles (note that these values are still experimental)

Bug fixes:

  • Orientation PIDs (xrot, yrot, zrot) now actually reset when the target orientation changes in stability assist mode
  • MS5837 reset command is not executed for "too long" commands with arbitrary suffix data
  • Remove a potential divide by zero error when adjusting vehicle's relative DoF speeds
  • Depth hold will now hold depths larger than 1m

v1.0.0: Initial Release

11 Jun 05:01
Compare
Choose a tag to compare

Initial feature-complete, probably stable release.

  • Motion modeling using DoF matrix and relative DoF compensation
  • Five modes of operation
    • RAW: Speeds set directly for each thruster
    • LOCAL: Speeds are in vehicle DoFs
    • GLOBAL: Speeds are partially in world DoFs
    • SASSIST: GLOBAL mode for translation, but uses PID for depth and orientation
    • DHOLD: GLOBAL mode, but uses a PID for depth hold
  • Sensors supported
    • Onboard BNO055 IMU
    • External MS5837 depth sensor
  • Interface scripts
    • Python code to interface with control board provided. Includes many example scripts

Simulator: https://github.com/MB3hel/GodotAUVSim

Documentation: https://mb3hel.github.io/AUVControlBoard/