ubisys R0 Firmware Change Logs
June 21, 2024
Version Identification
- OTA file version: 02500447
- Application: 2.5.0
- Stack: 4.4.7
ubisys Compact7B Stack Changes between 4.3.2 and 4.4.7
- Common Functionality
- Persistent Storage 2.0: Added various improvements and optimizations for internal flash memory management during the startup phase for improved resiliency
- Added sanity checks for ubisys proprietary input configurations, which are supplied over-the-air
- Improved the start-up behavior of the input state machine (deferred initialization)
- Zigbee Cluster Library
- Time client: Extended the permissible maximum interval between periodic server queries. Prior to this change, the interval has to be less than about 20 hours
- OTA client: Improved handling of duplicate image block data, i.e. data that has already been fully or partially received. This prevents unnecessary retries and speeds up the overall download process
- Added support for restoring factory default reporting configurations using the factory default configuration of an arbitrary (other) endpoint as template
- Zigbee Network Core Stack
- Improved resilience: Account for the case that retry of a fragmented APS transmission might occur even after all fragments have been received
- Resolved an issue where the ‘extended nonce’ flag might not have been set when transmitting an APS encrypted Update Device command
December 21, 2023
Version Identification
- OTA file version: 02400432
- Application: 2.4.0
- Stack: 4.3.2
New in version 2.4.0
- Added regular watch-dog timer reset during persistent storage operations that are not time-bound. This is a critical fix for all Series 2 products that shall be applied immediately and also highly recommended for all other products
ubisys Compact7B Stack Changes between 4.2.2 and 4.3.2
- Common Functionality
- Added application/platform-specific hooks to Persistent Storage 2.0 when swapping cached pages
- Zigbee Network Core Stack
- Various improvements and optimizations regarding the network rejoin behavior of sleepy end-devices
September 29, 2023
Version Identification
- OTA file version: 02300422
- Application: 2.3.0
- Stack: 4.2.2
New in version 2.3.0
- Various enhancements and improvements provided by the stack roll-up (see stack change log for details)
ubisys Compact7B Stack Changes between 4.1.2 and 4.2.2
- Common Functionality
- Persistent Storage: Improved robustness against power failures during factory resets
- Persistent Storage: General speed optimizations for second-generation journaling token storage system. Further speed-optimizations for garbage collection and progressive, piecemeal maintenance for improved responsiveness
- Push-button event handling for next-generation hardware (settling time option)
- Zigbee Cluster Library
- Enabled cancelling service locating processes, if needed; available for IAS Zone server, Poll Control server, OTA client and Time client clusters
- Enabled cancelling particular outbound ZCL requests, if needed
- Thermostat cluster: Added support for changing schedules over-the-air
- Window covering cluster: Improved support for back-to-back “Go To Lift” commands
- OTA client: Abort ongoing OTA download and service locating process when permanently leaving the network
- OTA client: Clear OTA server configuration when permanently leaving the network
- Reporting configuration: Omit target address information from persistent storage entries (experimental feature, now deprecated)
- Fixed an issue, where a ZCL “Report Attribute” command without payload may be repeatedly transmitted (edge case, did not affect existing devices)
- Fixed an issue, where the remaining packet capacity might have been inaccurate when assembling a ZCL frame with variable length payload (edge case, did not affect existing devices)
- Zigbee Network Core Stack
- Enabled automatic routing loop detection and resolution
- Accelerate retrieval of APS security material from persistent storage
- Improved resilience against power failures when updating APS security material in persistent storage
- Various improvements and optimizations regarding MAC data poll on sleepy end-devices
- Various improvements and optimizations regarding indirect transmissions on routers
- More rigid filtering on sleepy end-devices regarding unsolicited broadcast frames received while polling the parent
- Enabled cancelling particular outbound ZDO requests pending a response, if needed
- Now utilizing average LQA for poor parent link assessment, mitigating the impact of one-off RF disturbances
- Ignore inbound MAC data requests during router network startup
- Improved resilience to parent link failures during trust center link-key exchanges
- Fixed an issue, where the next indirect transmission may have been instigated too early
- Fixed an issue, where the master key on a trust center device or the exchanged authentication token on a router device is not reset when necessary (edge case, did not affect existing devices)
June 23, 2023
Version Identification
- OTA file version: 02210412
- Application: 2.2.1
- Stack: 4.1.2
ubisys Compact7B Stack Changes between 4.0.3 and 4.1.2
- Common Functionality
- Power cycle factory reset sequence timing changed to ‘10s on’, ‘10s off’, … cycles across all products and underlying platforms. This is to accommodate upcoming products and platforms and retain a unified factory reset power cycle. Significant gains in power efficiency lead to SoCs remaining powered for several seconds after the power supply has been cut
- Enhanced input action engine to support emitting manufacturer-specific commands. These may be used, for example, to replicate Matter Generic Switch behavior in Zigbee devices for seamless bridging of inputs to Matter
- Persistent Storage: Improve robustness against power failures during garbage collection
- Persistent Storage: Slight tweaks to wear-levelling algorithm
- Zigbee Cluster Library
- Added support for read attributes structured and write attributes structured. This enables unlimited configuration options for C4 and other products with programmable input configurations, including four dimmer switches, for instance
- Added safeguards against some misbehaving third party OTA servers
- Zigbee Network Core Stack
- Fixed an issue, where under rare circumstances, false address conflicts could have been flagged
- Improved link status processing
- Routing has been optimized to address certain rare edge cases and improve interoperability with some third-party devices
- Improved resilience of trust center link-key exchange (when stack is reset)
- Fixed an issue, where the address comparator misbehaved for some rare constellations
- Joining and rejoining improved by adding quick MAC association retries with adjustable attempt limit
- Processing of leave requests with certain status codes has been improved
- Improved the behavior of leave processing while rejoining
- Improved robustness by ignoring beacons that arrive after scanning has completed and before joining succeeded
- Improved resilience to malformed beacon frames
- Improved link quality assessment on certain platforms
- Added support for new SoCs
January 25, 2023
Version Identification
- OTA file version: 02100403
- Application: 2.1.0
- Stack: 4.0.3
ubisys Compact7B Stack Changes between 3.0.0 and 4.0.3
- Zigbee 2023 compliant (passes all compliance tests, certification pending)
- Asymmetric key agreement before network admission with optional device interview
- Support for all mandatory and all optional features defined in Zigbee 2023 in all possible device roles: trust center, router, sleepy end-device, non-sleepy end-device
- Support for all cryptographic suites supported by Zigbee 2023, i.e. SPEKE/Curve25519/AES-MMO-128/HMAC-AES-MMO-128 and SPEKE/Curve25519/SHA-256/HMAC-SHA-256-128
- Fully standard-compliant Works With All Hubs feature support retaining full compatibility with the pre-standard Amazon Works With All Hubs cluster
- Negotiation of fragmentation capabilities
- Fragmentation support for new ZDO commands
- APS security frame counter synchronization
- Standardized trust center swap-out (trust center and joined devices)
- Standardized network-level retries, including data poll retries for sleepy end-devices
- Enhanced product-level configuration options for customized stack behavior
- Optimizations to improve routing and instant network connectivity on start-up
- Ongoing maintenance of the code base: Restructuring, refactoring and consolidating
- Round-up of bug-fixes and performance improvements
Note: This change log is a generic stack change log. Products incorporating the stack can choose to enable specific feature sets. For example, the 2023 feature set can be selectively disabled in products to support a graceful transition to Zigbee 2023 in progressive roll-outs. In addition, while the stack supports all variations of key agreement suites, end-products might support only a reasonable subset. Specifically, ubisys products will prefer SPEKE/Curve25519/AES-MMO-128/HMAC-AES-MMO-128 for all Zigbee 2023, Zigbee Direct 1.0 and digital signatures of OTA images as this suite provides the best blend of security, performance and resource utilization.
May 12, 2022
Version Identification
- OTA file version: 02020300
- Application: 2.0.2
- Stack: 3.0.0
ubisys Compact7B Stack Changes between 2.3.0 and 3.0.0
- Added support for I2C TAP
- Added support for a unified and fully configurable join/rejoin algorithm with back-offs and retries at the stack level
- Reject trust center rejoin on a distributed security network (CSA incident no. 2021-ZP-0401)
- Start TCLK exchange if an end device could not successfully finish TCLK exchange during its initial joining and has just rejoined
- Improved sleep management: Checking both transmission and reception queues for pending packets, if necessary
- Extended the advanced parent link maintenance mechanism by the new criterion “poor poll control reactivity”
- More granular startup progress notifications, including kick-off of a Touch Link commissioning procedure
- Stop ongoing join/rejoin retry attempts when Touch Link commissioning procedure is instigated
- Encapsulated the All Hubs cluster’s dependency on the Touch Link server, IAS Zone server and Time client clusters, for better modularity
- Added Enhancements to the Thermostat cluster
- Made the hard limit for the scene table capacity configurable
- Added support for the Relative Humidity Measurement cluster
- Added framework support for initiating enroll request and IAS zone status change indication via the ZCL request queue
- Added framework support for time query initiated by a Time client cluster
- Prohibit automatic CIE detection by default; application is still able to instigate it though should legacy systems require it
- Explicitly stop fast polling mode as soon as no more response frame is pending
- Resume network activity if a router device just failed a rejoin attempt
- Enhancement: PAN-ID and permit joining state changes are forwarded to application clusters
- Bug-fix: Under rare circumstances, a frame might linger in the transmission queue without being actually sent
- Bug-fix: Potential overflow of 64-bit timer values might occur when unsigned arithmetic is used for comparison of due times
- Bug-fix: During MAC association, if an unrelated frame is being received via data polling, MAC association might be incorrectly terminated; account for this case and retry if permissible
- Bug-fix: Periodical polling timer used to be unconditionally kept alive, even in case of data poll failure; temporarily cancel it to avoid interference with subsequent retry attempts. Once succeeded, the periodical polling timer will be reinstated for its normal usage.
- Bug-fix: When assessing MAC capability changes for a rejoining device verify the “Device Type” and “Receiver on when Idle” bits only
- Bug-fix: Skip route discovery table verification diagnostics in case of an end device
- Bug-fix: Limit the use of incoming APS security material to few select cases only
- Bug-fix: Periodical reporting on a cluster attribute could lead to undue delays of reports for other clusters
- Bug-fix: Startup behavior of the OnOff cluster might be incorrect due to interactions with Level Control or Color Control clusters on the same application endpoint
- Bug-fix: Brightness adjustment of the Level control cluster might be incorrect due to interactions with a Color Control cluster on the same application endpoint
- Bug-fix: Under rare circumstances, neighbor table entries might be incorrect (caused by a typo)
- Bug-fix: Under rare circumstances, out-of-sequence or truncated OTA data block could result in failed OTA download attempts
Note: To install this firmware version, at least the version 2.0.1 is required.
May 06, 2022
Version Identification
- OTA file version: 02010230
- Application: 2.0.1
- Stack: 2.3.0
New in version 2.0.1
- Upgraded the internal bootloader to support larger application firmware images extending into the second internal flash memory bank (future-proofing).
- Bootloader migration is a one-way process and devices will have a different OTA image type after the upgrade. The new image type is 0x7b3a
February 02, 2022
Version Identification
- OTA file version: 02000230
- Application: 2.0.0
- Stack: 2.3.0
ubisys Compact7B Stack Changes between 2.0.13 and 2.3.0
- Minor optimizations to internal flash write/erase flow
- Migrated to new 64-bit timer implementation across the entire stack
- Improved support for the future ZigBee Direct technology
- Consolidated support for All Hubs at the stack level, e.g., advanced parent link maintenance mechanism, beacon survey etc.
- Completed support for the proprietary All Hubs cluster
- Added support for dynamic cluster instantiation
- Completed support forHybrid Zigbee Green Power technology
- Completed support for the Color Control cluster
- Added better programmatic control over attribute reports, enabled pausing and resuming attribute reports
- Enhanced the keep-alive mechanism for end devices via the end device timeout approach
- Make sure that APS security of incoming requests is mirrored to outgoing responses
- Extended maximum reporting interval (enabled by new 64-bit timer implementation)
- Enhancements and improvements of the Level Control cluster
- Enhancements and improvements of the Thermostat cluster
- Added support for the HMAC-SHA-256 encryption scheme
- Further modularized LZMA decompression implementation
- Added ZDO request queue support for a ZDO request command anticipating multiple responses
- Added ZCL request queue support for a ZCL request command anticipating multiple responses
- Added enhancements to the OTA server locating process
- Added support for Green Power GPDF frame encryption
- Optimized start-up LED indicator behavior, i.e. improve arbitration of LED usage between menu and status indications
- Added support for multiple handlers for the same GPIO
- Added generalized section support for multiple platforms
- Reject TC rejoin with MAC capabilities change to prevent security vulnerability (CSA incident no. 2021-ZP-0401)
- Added retry mechanism to the MAC association process for robustness in dense networks
- Explicitly set the destination PAN ID in case of injecting an unsolicited rejoin response due to address conflict (improve interoperability with 3rd party stack)
- Reject a leave request during the startup process if a rejoin is already in progress
- Routing optimization, add weak provisional default route to trust center
- Indicate parent router link failure upon failed keep-alive mechanism by making use of the end device timeout approach
- Introduced a multi-pass priority scheme for network leave processing (improve modularity)
- Ensure factory new state when a Touch Link commissioning procedure is instigated (for devices which do not reboot)
- Improved the Touch Link commissioning process flow in case of router/end device joining (await confirmation for pending leave request)
- Improved the transition behavior for the Level Control cluster
- Color Control cluster: Improved the behavior when changing color modes
- Extended support for the Fan Control cluster
- Added support for the Basic client cluster
- Added framework support for processing ZCL Read Attributes response command
- Enhanced the behavior upon receipt of an OTA Image Notify command
- Consider the fact that All Hubs and Touch Link clusters are only optionally available
- Consider the fact that a remote OTA server might not support rate limiting
- Prohibited OTA downgrade by default
- Added support for the gateway attribute “current channel”
- Bug-fix: Idle processing requires thread-safety on some platforms
- Bug-fix: Improve co-existence of AODV and MTO routing algorithms
- Bug-fix: Under rare circumstances a pending outgoing attribute report got discarded inadvertently
- Bug-fix: OTA hash calculation must account for data chunks not arriving in-sequence
- Bug-fix: Make sure all code paths align the transmit options for default responses with the mating request
- Bug-fix: Cluster-level global flags and individual configuration options used to be not maintained persistently
- Bug-fix: Disentangle cluster-level policy settings for APS ACKs and default responses
- Bug-fix: Fixed Green Power OOB key encryption for emerging Green Power install code support
- Bug-fix: Nonce setup for GPD vs. GPS used to be incorrect (relates to Hybrid Green Power feature)
- Bug-fix: NWK short address might be invalidated after a failed TC rejoin when the NWK key material has not been received in time
- Bug-fix: Ensure resetting the startup parameters during a cold-start
- Bug-fix: Ensure resetting the network layer’s retransmission queue across stack restarts
- Bug-fix: On some platforms loss of timer ticks might occur due to internal timer resolution discrepancy
- Bug-fix: Need to only evaluate the router/end device capacity fields in a beacon payload when performing network discovery during initial joining
- Bug-fix: Startup parameters might be inadvertently dropped across startup retry attempts
- Bug-fix: Unexpected behavior might be encountered while resolving an ongoing PAN ID conflict (caused by typo)
- Bug-fix: Internal coordinator flag might have inadvertently been set while forming a distributed network
- Bug-fix: Client/server cluster role not always properly honored when accessing an attribute
- Bug-fix: Increment network update ID in course of network-wide channel change (improve interoperability)
- Bug-fix: Global ZCL commands used to be silently dropped if the APS security level was insufficient. Instead, create a proper response mirroring the incoming security and indicating insufficient privileges.
Note: To install this firmware version, at least the version 1.9.3 is required .
March 22, 2021
Version Identification
- OTA file version: 0193020D
- Application: 1.9.3
- Stack: 2.0.13
New in version 1.9.3
- Migration to new factory block format (FB1)
- Migration to new Persistent Storage 2.0 format and increase of NVM space from 2KB to 20KB
- Migration to ubisys Compact Firmware Upgrade 2.0: CFWU 2.0 is an encrypted, signed and compressed OTA file format. This improves security, cuts update time per device in half with positive effects on battery life for battery powered devices and reduced network bandwidth utilization, and increases available space on the device for future upgrades and new features. We are making all ubisys devices ready for the next major Zigbee release with lots of new features – stay tuned
- Migration is a one-way process and devices will have a different OTA image type after the upgrade. The new image type is 0x7b2a
- Added human readable version string
- Added product URL
- Added product code (EAN)
ubisys Compact7B Stack Changes between 2.06 and 2.0.13
Introduced a new version management system and versioning scheme. Using semantic versioning with major.minor.patch in-line with Compact7B Zigbee stack release strategy.
The 2.0.13 release is the first release under this new regime.
- Overall improved reporting reliability
- New reporting engine with collated attribute reports
- Enhancements: Core stack changes to support Amazon’s Works With All Hubs cluster
- Optimizations of IEEE 802.15.4 MAC implementation (remove support for IEEE 802.15.4 beaconing networks, which are not used in Zigbee)
- Improved APS duplicate rejection filter algorithm
- Improved routing, in particular interoperability with third-party Zigbee stacks
- Improved source routing (account for local link failure)
- Improved handling of network-wide broadcasts
- Improved address conflict resolution on behalf of end-devices
- Bug-fix: Route discovery table entry would not expire under rare circumstances
- Bug-fix: Certain code paths need to be reentrant
- Bug-fix: Invalidate outgoing cost on link breakage
- Bug-fix: Issue only a single confirmation for APS data requests to multiple binding targets
- Bug-fix: End-device maintenance scheduling and triggering upon rejoin
- Bug-fix: Channel change was not properly persisted
- Bug-fix: Defer deleting binding targets until they are no longer in use
- Bug-fix: Guarantee that APS sequence numbers are unique (indirect messages live for longer periods of time)
- Bug-fix: APS security material was not always erased from persistent storage