All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Support for single provisioning, now can send NodeID + SingleProvisioningParamID will trigger provisioning on single Shard.
- Shard will check if provisioning request message has expected payload, if not it will return an error
- Shard will return an error to App when ParameterId is out of permissible range
- Moved all ParameterId to vitroio-sdk/communication/impl/canbus_protocol_consts.h
2.0.7 2023-07-27
- Change logic of sending TIMESTAMP request from Shard; now it is performed right after Shard initialization
2.0.6 2023-07-20
- Removed third EXPECTED_CARRIER_BOARD_REV for Shard initialization
2.0.5 2023-07-19
- Added third EXPECTED_CARRIER_BOARD_REV for Shard initialization
- CAN bus bitrate set to 500KHz from 125KHz
- Frame with localID request no longer has 0x0 as localID in header; now it is based on Shard hardwareID, mentioned in documentation
- Shard stays in localID request loop until localID from Crystal is assigned
- Resolved problem with MbedOS HardFault from provisioning process
2.0.4 2023-06-14
- Added placeholder for external frame handler with ID 0x60, can be used within user application.
2.0.3 2023-06-14
- Add a NULL pointer check that caused a system fault.
- Provide second Edge board revision, used before making configuration of the device.
2.0.2 2023-05-19
- CAN Bus can recover by restarting itself after shutting down permanently due to errors.
- CAN Bus initialization now exits properly after encountering errors.
- Fix receiving and requesting timestamps from Crystal
- SDK updated to work with mbedOS release 6.16.0
- Fix formatting for ECC ID printing
- Serial number print in ECC608 constructor. Number is printed on shard start.
- Added debug prints in
node_controller.cpp
informing about OTA status and upgraded partition
- New funtion for
TransportLayer
which updatenodeID_
used byCan_layer
to setNodeID
for each send frame.
- Added IO protection keys to increase security which is described here, more info here in paragraph 2.2.10
- Added ID/number to CRC frame (provisioning response)
- Counting and sending checksum for provisioning response data
- 24V output management
- Shard SDK is used now for communication with ECC during provisioning
- Now OTA update do not override firmware on Shard with different fwID
- Fixed false-positive detection of errors while OTA
- Fixed printing fw version and ID
- Timestamp for internal usage in SDK
- Setting of timestamp synchronization interval in node controlller methods
- Node controller initializes timestamp along with communication
- IoTBlock blob size getter
- Improved documentation
- Communication abstraction layer for IoT Blocks
- IO expander port used for board revision check
- Attenuation values for ADC count to voltage conversion
- IoT Blocks are now send using provided communication layer
- Predefined sizes of IoTBlock.
- IoT Block layout
- ECC object as singletone
- Pins of expander used for board revison check
- Support for variable size IoT Block creating and sending.
- IoT block data fields order.
- ECC508.countSHA256 method, to count SHA of more than 64 bytes of data.
- cryptoauthlib ECC init function is now called only once.
- ECC object in IoTBlock source file changed to static.
- mbed-cryptoauthlib as submodule
- Patches for mbed-cryptoauthlib
- IoTBlock api
- ECC error handling
- Watchdog class which provides the interface to the Watchdog feature
- Memory regions are now defined in SDK,no need to define them in application files.
- Node controller doen't need memory regions in constructor.
- Extracted bootloader from vitroio-sdk.
- Extracted ecc508-api from vitroio-sdk.
- Extracted tls_crypto-api from vitroio-sdk.
- Extracted shard-edge-lib from vitroio-sdk
1.2.1 - 2020-05-25
- Support for closed source static version of Vitro Shard SDK.
1.2.0 - 2019-02-10
- Support for new protocol communication protocol - firmware ID handling.
- Support for new protocol communication protocol - firmware version handling.
1.1.0 - 2018-11-26
- Change name from
vitroio-embedded-sdk
tovitro-shard-sdk
1.0.0 - 2018-10-26
- Firmware developers guide document.
- Features list was added to
README
.
- Removed abstraction layer for communication buses - only CAN Bus is supported for now.
- Parameter ID for frame with firmware version changed to
0x30
.
- Doxygen documentation was completed, cleanup and unified.
0.1.1 - 2018-09-07
- Handling upgrade process after error occurrence
0.1.0 - 2018-09-04
- Initial implementation of debug macros
- Initial implementation of measurement API:
- abstract classes for drivers and sensors
- support for registration of sensors
- support for setting polling time of measurement parameters
- Initial implementation of CAN bus
- Initial implementation of node controller:
- support for initialization of environment
- support for initialization of communication with gateway
- support for firmware upgrade
- Initial implementation of bootloader