1. Home
  2. Docs
  3. Firmware Release Notes
  4. V0.2.0

V0.2.0

This was a big release with lots of updates and improvements, including a major update to Hexabitz backend! Check out the following Wiki articles for more details: Communication Backend, Array Messaging, EEPROM Emulation.

New Modules

  • H26R00: Load cell (strain gauge) sensor module.
  • H07R31: A new hardware revision of H07R30 module that introduces bigger MCU Flash and an improved audio path. It is available as a second target to H07R3x firmware project.
  • H0FR10: SPDT mechanical DC relay module. It is available as a second target to H0FR6x firmware project.
  • P01R00: This module used to have its own repository. Starting this release, it will be bundled with H01R0x firmware as a second target.
  • P08R60: Time-of-Flight IR sensor module. It is available as a second target to H08R6x firmware project.

New Features

  • The BOS backend is completely revamped with an improved messaging scheme, circular receive buffers and improved DMA handling. BOS messages are now transmitted as a single packet (including the length byte), and terminated with an actual CRC8 byte instead of 0x75. Message start is marked with two delimiters – the characters ‘H’ and ‘Z’. The circular buffers are able to receive multiple messages on multiple ports at the same time and queue them for processing.
  • Adding a Backend Task to handle parsing and processing of circular buffers and activate the appropriate Messaging Task.
  • Separating Option bits from message codes in the message frame, leaving 16 bits for message codes. Message codes can be transmitted in either one- or two- byte format.
  • Adding an Option Byte with bits controlling Message Trace and Response, as well as indicating long messages. The Option Byte can be extended as well for future applications. 
  • Adding ReadRemoteParam API to read module parameters remotely by giving the textual parameter name in message parameters.
  • Adding BOS port-forward message to remotely forward data to a specific port.
  • Adding “play tune” message to H07R3.
  • Adding port bridge/unbridge functionality to the BOS (APIs + CLI commands). You can easily bridge any two array ports, and they will transfer data between each other seamlessly. The bridge will be stored in the emulated EEPROM as well.
  • In USB-UART converter modules (H1AR1, H1AR2, H1AR3), the USB port is automatically bridged to its opposite module port on startup. Thus, you can use the module as a USB-UART converter on the fly. You can connect to a different CLI port and unbridge the USB and its opposite port to use them in a different configuration.
  • Adding a new API to BOS which print strings on a given port – printfp().
  • H1BR6 (Micro SD card memory) module now has WAVE file parsing and streaming functionality. The card can be scanned for WAVE files and a particular file can be parsed and streamed to a specific port (or a remote port in a remote module).
  • H07R3 (audio amplifier and speaker) module now have WAVE play from a port functionality. The module can play any WAVE file streamed to one of its ports. This functionality can be combined with the one in the H1BR6 to create a mini WAVE player device!

Improvements

  • All main and submodule repositories were transferred from Bitbucket to GitHub.
  • P01R0 module firmware was merged with H01R0 firmware as a second uVision target, which ensures that these two modules are developed together and reduces entropy with repositories and projects.
  • Multiple memory improvements and optimizations to reduce SRAM and Flash usage.
  • ARM compiler optimization level was increased to O1.
  • Moved all Message Codes into a central BOS header file so that they can be referenced from all modules.
  • Rearranged EEPROM addressing space and divided it into BOS, Module and User space. The total addressing space was increased to its full size of 1024.
  • Moved MCU memory map into a separate header file located with module drivers.
  • Refactored SendMessageFromPort API to cover multiple cases and added a BroadcastMessage API.
  • Rearranged Tasks and their priority and renamed the UART task into CLI task.

Bug Fixes

  • Float size in remote read/write messages was updated to 32-bit instead of 64-bit.
  • Fixed UART-Port mapping in some module drivers.
  • Fixed BOS micro- and millisecond timers.
  • Fixed H07R3 “play sine” and “play wave” messages.
  • Fixed H08R6 module messages and remote streams (stream to port).
  • Fixed H0BR4 module messages and remote streams (stream to port).
  • Fixed a bug in H1BR6. Module crashes and freezes when pulling uSD card during operation. Now the module reboots and blinks its LED waiting for the card.
  • Improvements and bug fixes to parameter handling in multiple CLI commands.

Known Issues

  • BOS Explore functionality is disabled in this release. Calling Explore API or Command does not yield a result. The functionality will be restored in future releases.

Backward Compatibility

  • This release is not backward compatible. All modules in the array must be updated to V0.2.0 in order to communicate with each other.
 

How can we help?