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.
- H26R00: Load cell (strain gauge) sensor module.
- H07R31: A new hardware revision of H07R30 module that introduces bigger MCU Flash and improved audio path. It is available as a second target on H07R3x firmware project.
- H0FR10: SPDT mechanical DC relay module. It is available as a second target on H0FR6x firmware project.
- P01R00: This module used to have its own repository. Starting this release, it will bundled with H01R0x firmware as a second target.
- P08R60: Time-of-flight IR sensor module. It is available as a second target on H08R6x firmware project.
- The BOS backend is completely revamped with an improved messaging scheme, circular receive buffers and improved DMA hendeling. BOS messages are now transmitted as a single packet (including the length byte) and terminated with 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 easily can 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 UAB-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.
- All main and submodule repositories were transferred from Bitbucket to Github.
- P01R0 module firmware was merged with H01R0 firmware as a second uVision target. This ensures 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.
- 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 milli-second 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.
- H23R1x module firmware won’t be available in this release.
- 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.