# Change Log
All notable changes to CANedge firmware will be documented in this file.
Types of changes:
- "Added": New features
- "Changed": Changes to existing functionality
- "Deprecated": Soon-to-be removed features
- "Removed": Removed features
- "Fixed": Bug fixes
- "Known issues": Known issues
- "Warning": Warnings
Abbreviations:
- CANedge1: CE1
- CANedge1-GNSS: CE1G
- CANedge2: CE2
- CANedge2-GNSS: CE2G
- CANedge3-GNSS: CE3G
## [01.08.05] - 2024-12-19
### Changed
- CE3G: Small-file upload speed improved
- CE3G: Large-file download stability improved
### Fixed
- CE1, CE1G, CE2, CE2G, CE3G: File-system corruption risk when deleting directories fixed
- CE1, CE1G, CE2, CE2G, CE3G: Issue with file system repair fixed
- CE1, CE1G, CE2, CE2G, CE3G: Missing data for ReceivedDataBytesCount field for LIN Checksum Errors
- CE2, CE2G, CE3G: X-Amz-Meta-Timestamp now always corresponds to *file-created*
### Known issues
- S3 X-Amz-Meta-Timestamp is local time for log files (should be UTC)
## [01.08.03] - 2024-11-07
### Changed
- CE2, CE2G: Clear DNS cache on socket connect failure
## [01.08.02] - 2024-08-27
### Added
- CE3G: Support for hardware extension 00.01 (minor hardware change)
## [01.08.01] - 2024-08-19
### Warning
- CE2, CE2G: TLS certificate validation level increased when using hostname as endpoint (must match server cert. common-name or be in SANs)
### Added
- CE1, CE1G, CE2, CE2G, CE3G: Device run-time restart timer (restart_timer) added to configuration file
- CE1, CE1G, CE2, CE2G, CE3G: Reset-cause information added to device.json file
- CE2, CE2G: Web-server protocol type added
### Changed
- CE1, CE1G, CE2, CE2G, CE3G: System log, default level changed from 0 (disable) to 1 (error)
- CE1, CE1G, CE2, CE2G, CE3G: System log, severity level string added to log
- CE1, CE1G, CE2, CE2G, CE3G: Improved logging performance during creation of new log split files
- CE2, CE2G, CE3G: S3 meta-data `X-Amz-Meta-Timestamp` changed from `YYYYMMDDTHHMMSS` (local time) to `YYYYMMDDTHHMMSSZ` (UTC time)
- CE2, CE2G: WiFi module internal configuration change
- CE2, CE2G, CE3G: S3 response timeout increased to reduce risk of duplicated uploads
- CE1, CE1G, CE2, CE2G, CE3G: Minor adjustments to CAN-FD (BRS) Secondary-Sampling-Point (SSP)
- CE2, CE2G: The device will now sequentially attempt to connect to all found (and known) WiFi SSIDs, instead of stopping at first connection failure
- CE3G: The cellular IMEI is now written to the device.json file regardless of the presence of a SIM card
- CE2, CE2G, CE3G: System log "socket connect error" error code added
- CE2, CE2G: TLS verification of certificate common-name (and SANs) enabled when endpoint is hostname
- CE3G: TLS verification of certificate common-name (and SANs) disabled when endpoint is IP
- CE2, CE2G: Support for simple AP roaming (automatically switches between APs in a multi AP network)
### Fixed
- CE1, CE1G, CE2, CE2G, CE3G: MDF LIN incorrect frame length field
- CE1, CE1G, CE2, CE2G, CE3G: MDF CAN risk of incorrect remote frame
- CE1G, CE2G, CE3G: Periodic missing IMU data
- CE1G, CE2G, CE3G: Angular rate missing
- CE2, CE2G, CE3G: Certificates cleared instead of retained when bundle file removed
- CE2, CE2G, CE3G: Unable to upload to S3 when header field values contain multiple leading / trailing spaces
- CE3G: Rare cases where the GPS module does not boot during startup
### Removed
- CE3G: Static scheduled reboot after 24 hours of runtime removed (replaced by configurable restart_timer field)
### Known issues
- CE2, CE2G, CE3G: Network stability issues when powered for extended periods of time (can be alleviated using the "restart_timer")
- CE3G: Rare slow start up of GPS module
## [01.07.07] - 2023-12-14
### Changed
- CE3G: Scheduled reboot after 24 hours of runtime to alleviate known cellular degradation issue
### Known issues
- CE1G: CE2G, CE3G, periodic missing IMU data
- CE3G: Network stability gradually degrades when powered for extended periods of time
- CE3G: Rare cases where the GPS module does not boot during startup
## [01.07.06] - 2023-11-14
### Changed
- CE3G: Scheduled midnight reboot to alleviate known cellular degradation issue
### Fixed
- CE1: Firmware.bin file not deleted after firmware update completion
### Known issues
- CE1G: CE2G, CE3G, periodic missing IMU data
- CE3G: Network stability gradually degrades when powered for extended periods of time
- CE3G: Rare cases where the GPS module does not boot during startup
## [01.07.05] - 2023-10-10
### Changed
- Session counter value moved from file on SD-card (`meta/meta_log.json`) to internal memory
- Log files based on time splits are now closed upon timeout instead of upon first message in next log file
- Header format version for generic files is now 0x01, was 0x00
- Checksum added to compressed files (header version changed to 0x01)
- Files with the TMP extension will be renamed to ERR upon detection of unclean filesystem ejection
- S3, improved handling of device vs server time
- CE2, minor changes to WiFi power savings mode
### Fixed
- CAN messages with a DLC larger than 8 but no FD flag could reset the device
- GNSS, do not update if new firmware same as current
- CE3G, improved stability of RTC net sync
### Added
- CE3G, syslog.txt info improved for troubleshooting SIM card detection/reading
- The device attempts to auto-repair the file system if it becomes corrupted (e.g. after unclean ejection from PC)
### Known issues
- CE1, firmware.bin file not deleted after firmware update completion
- CE1G: CE2G, CE3G, periodic missing IMU data
- CE3G: Network stability gradually degrades when powered for extended periods of time
- CE3G: Rare cases where the GPS module does not boot during startup
## [01.07.04] - 2023-08-18
### Changed
- CE2, S3 meta-data field "X-Amz-Meta-Ssid" renamed to "X-Amz-Meta-Net"
- CE2, device.json field "certs_server" renamed to "certs_server_sha1"
### Added
- CE3G, IMEI added to device.json
### Fixed
- CE3G, fixed schema for encrypted PIN codes
- Multiple whitespace characters in the network name prevented S3 operations
### Known issues
- CE1, firmware.bin file not deleted after firmware update completion
- CE1G: CE2G, CE3G, periodic missing IMU data
- CE3G: Network stability gradually degrades when powered for extended periods of time
- CE3G: Rare cases where the GPS module does not boot during startup
## [01.07.03] - 2023-05-11
### Changed
- GNSS module updated to FW 2.16
### Added
- Support for GNSS ODO message (distance travelled)
- Optional RTC sync message added to internal CAN channel
### Fixed
- Improved handling of WiFi connection state
- Issue with WiFi channels 12, 13 & 14 fixed
- Issue with WiFi SNTP time sync stability fixed
- Issue with incorrect timestamps for some CAN-bus tx messages fixed
- Issue with loss of frames under high CAN-FD load fixed
- Issue with configuration rejected when more than 10 CAN-internal filters fixed
### Known issues
- CE1, firmware.bin file not deleted after firmware update completion
- CE1G: CE2G, CE3G, periodic missing IMU data
- CE3G: Network stability gradually degrades when powered for extended periods of time
- CE3G: Rare cases where the GPS module does not boot during startup
## [01.07.02] - 2023-02-20
### Fixed
- Issue with GNSS negative alignment angles fixed
- Issue with GNSS output messages timestamps fixed
- Issue with WiFi empty passwords fixed (allowed in schema)
- CAN-internal default extended filter "id_format" value corrected from 0 to 1
- MDF, wrong DLC for remote frames with extended ID
- Configuration schema updated to accept empty WiFi passwords
- Faster timeout when socket closed by server
- Faster timeout when WiFi connection lost
## [01.07.01] - 2022-11-22
### Changed
- CAN-bus control signal changed to use decoded signal values
- CAN-bus control signal can trigger based on messages from any bus
- Number of supported APs changed from 5 to 4 (to be able to support passive scan)
- S3 bucket name max length increased from 20 to 64
- Default configuration CAN-bus filters changed from "mask" to "range"
- Updated WiFi controller driver for better WiFi stability
### Added
- WiFi active and passive scan modes supported
- RTC sync from CAN-bus (internal or external)
- UI Schema added to SD-card
- Support for hardware version 0.3
### Removed
- WiFi RTC sync DHCP fallback option removed
- WiFi channel 12 support removed
### Fixed
- Throttle failed S3 connection attempts
## [01.06.04] - 2022-03-28
### Fixed
- Improved WiFi compatibility
## [01.06.03] - 2022-02-04
### Added
- Show additional SD card information in log and device files
### Fixed
- CAN bit-rate autodetect would fail with some CAN traffic patterns
## [01.06.02] - 2022-01-28
### Changed
- Improve speed to some TLS servers
### Fixed
- If RSSI thresholds were used, the signal strength from the WiFi interface was incorrectly calculated
## [01.06.01] - 2022-01-07
### Added
- Support for logging of CAN error frames:
- Bit-stuffing errors
- CRC errors
- Frame format errors
- Lack of acknowledgement on transmitted frames
- Bit level errors on transmitted frames
- Support for logging of errors on the LIN interfaces:
- Synchronization errors
- Checksum errors
- Frame format errors
- Lack of response for an ID marked as a subscriber message
- Bit level errors on transmitted frames
### Changed
- Certificate bundles stored on S3 sanity checked before being applied
### Fixed
- Issue where the LIN logging could be mis-aligned compared to incoming data
- Support of S3 regions up to 32 character
## [01.04.02] - 2021-03-31
### Warning
- Make sure to migrate single file certificates to bundle before upgrading from 01.03.XX to 01.04.XX
### Changed
- CH1/CH2 activity LEDs now constant off during bit-rate autodetect
- WiFi stability improved
### Fixed
- Issue with spaces in WiFi SSID and password fixed (cf. 01.04.01 known issues)
- Issue with mixed ID filters and/or mix of enabled/disabled filters with prescalers fixed
## [01.04.01] - 2021-01-14
### Warning
- Make sure to migrate single file certificates to bundle before upgrading from 01.03.XX to 01.04.XX
### Added
- LIN support for custom frame lengths
- LIN support for both Classic and Extended checksum formats
- LIN publisher mode added
- LIN transmit data for subscriber and publisher mode
- CAN reception and logging of RTR frames
- CAN transmission of RTR frames
- CAN FD ESI bit included in log file
- Support for open WiFi access points
### Fixed
- Missing CAN-bus retransmissions fixed
- Support for endpoints ending with a slash (e.g. www.abc.com/)
### Changed
- Schema for CAN filters updated, list is nested one level deeper
- Obsolete config and schema files are automatically removed from the SD-card
### Removed
- Single file TLS certificates no longer supported. Single file certificates are automatically removed from the SD-card.
### Known issues
- Cannot connect to WiFi access points with spaces in either SSID or password
## [01.03.01] - 2020-09-17
### Added
- Support for S3 virtual hosted request model
- Support for bundled certificates in a single file
- New entry `certs_server` in device.json to list loaded certs from bundle
- Support for over-the-air update of certificate bundle file
### Changed
- Improved S3 API compatibility, allowing for use with more S3 compatible services, such as Wasabi
- WiFi/S3 up to 60% transfer speed increase on high-latency networks (compared to 01.02.06)
### Fixed
- Format of S3 object meta data field `X-Amz-Meta-Timestamp` (local time) changed from `YYYYMMDDTHHMMSSZ` (UTC time) to `YYYYMMDDTHHMMSS` (local time)
- Fixed data prescaler "prescaler_value" schema rule to allow empty mask
### Deprecated
- Certificates placed as single files in `certs_root`
- List of single certificates `cert_hash` in device (is replaced by list `certs_root`)
## [01.02.08] - 2020-08-20
### Changed
- Improved access point compatibility
## [01.02.06] - 2020-05-19
### Changed
- Max log session count increased from 256 to 1024
## [01.02.05] - 2020-04-14
### Fixed
- Slow device reboot after creation of default configuration file
## [01.02.04] - 2020-04-07
### Changed
- TLS-SNI-01 validation no longer used (compatibility issues with AWS S3 over TLS)
- S3 log file names change from `...[SPLIT_NUMBER].[EXT]` to `...[SPLIT_NUMBER]-[EPOCH_TIME].[EXT]`
- Improved S3 performance on small files
- DNS caching for faster server connection using hostnames
## [01.02.03] - 2020-03-01
### Warning
- Includes a one-time boot migration step formatting the SD-card (configuration and certificates are copied back to the card after migration)
### Added
- Optional compression of log files using LZSS based algorithm
- Optional encryption of log files using AES GCM
- Optional S3 log file uploads using signed payloads. Defaults to off
- Device ID added to log file header
- SD-card storage added to log file header
- SD-card storage used added to device.json
- Time and data prescaling options added
- S3 meta data "X-Amz-Meta-Put-Index" added
### Changed
- New log file structure to improve file system performance. Refer to the manual for more details on the new structure
- Upper limit on number of sessions which can be stored on SD-card (to ensure consistent performance)
- Log file extensions now in all upper case (*.mf4 -> *.MF4)
- S3 meta data "X-Amz-Meta-Timestamp" changed from file upload time to file modified time
### Fixed
- Slow logging with potentially missed messages if all received CAN messages are filtered
- First message when using a prescaler different from 1 is not counted
- Logging now continues when space is freed by a log file upload on a full SD-card
- LIN messages on port 2 no longer mixed with port 1
- Shutdown delay introduced to better allow SD-card to finish internal operations
- Fix to ensure that both FAT copies maintained on power loss
- Higher priority to CAN/LIN bus service to improve on message loss
- Maximum number of WiFi access points in rules schema changed to 5 to match device capabilities
## [00.07.05] - 2019-12-27
### Fixed
- Improved stability with some access-points / hotspots
### Known issues
- Unable to connect to AWS S3 using https for some regions
## [00.07.04] - 2019-11-28
### Add
- TLS "server name" extension added to TLS Client-Hello to support servers with multiple certificates
### Changed
- Secondary port schedule array set to default empty in schema file (such that it loads without warnings)
### Known issues
- Unable to connect to AWS S3 using https for some regions
## [00.07.03] - 2019-11-04
### Changed
- Support for hardware 00.01.XX
## [00.07.02] - 2019-10-04
### Fixed
- Find oldest log file when uploading to S3 server
## [00.07.01] - 2019-10-01
### Added
- Secondary port power scheduling
- LIN-bus support
- CAN-bus control message to start/stop message reception/transmission from CAN-bus
- CAN-bus heartbeat message with device time, storage left and reception/transmission state
- Timezone information is stored in MDF metadata. DST field is not used.
### Changed
- Config schema now allows any S3 region string
## [00.06.02] - 2019-09-20
### Fixed
- Rejection of negative time zones (e.g. -1) fixed
## [00.06.01] - 2019-09-02
### Changed
- CAN-bus message retransmission default changed to enabled
- WiFi MAC address added to device.json file
- Number of tx messages pr channel changed to 64
### Fixed
- Accepts new lines after the terminating "}" in json files
- CAN-bus bit timing (advanced mode) for switched rate added to configuration
- Allows for 0 data byte tx messages
## [00.05.01] - 2019-08-16
### Added
- Configuration file and schema updated with "general section"
- Device meta data field added to general section
- Device meta data field added to log file headers
- Device meta data field added to device.json file
### Changed
- Configuration security and debug sections moved to "general" section
- Limit file size of syslog
### Fixed
- Potential stop of logging under high load
- Avoid empty entries in system log
## [00.04.04] - 2019-07-30
### Changed
- Reduced static overhead in MDF log files
- Accept "-" in S3 access keys
### Fixed
- RTC sync while logging no longer results in corrupted timestamps
- Support for MS Azure length secret keys in encrypted form
- Device ~20 s inactivity after configuration is defaulted fixed
### Known issues
- TLS mutual authentication missing
- LIN-bus support missing
- Risk of some CAN-bus frame loss
- Configuration is rejected if more than 32 transmit messages are entered
- Bit-rate configuration using bit-timing not loaded correctly
## [00.04.03] - 2019-06-19
### Added
- Configurable NTP server used for RTC auto sync (with DHCP provided fall-back)
- Configurable RTC auto sync tolerance
### Changed
- Log file sha256 digest added to log file name (e.g. `AAAAAAAA/BBBBBBBB/CCCCCCCC/DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD.mf4`, with D as digest)
- Certificate folder renamed to "certs_root" (previously "certs")
- CAN Bit-rate-switch flag to log file
- CAN FD flag to log file
- S3 file push now uses the signed payload option (x-amz-content-sha256)
- S3 support for longer access and secret keys
- MF4, in "UNFINALIZED" format to improve performance
- MF4, transmit messages moved to separate channels in mf4 files
- MF4, data length calculated from DLC as virtual channel (reduces file size)
### Fixed
- S3 upload instability
- S3 upload occasionally stops on Minio server fixed
- Improved server certificate support
- Bug in CAN-bus modes "Restricted" and "Monitoring" fixed
- Stability improvements to cyclic logging
- Time-split bug fixed (would sometimes create an additional file)
- Final log file not uploaded fixed
### Removed
- CSV file format support
### Known issues
- TLS mutual authentication missing
- LIN-bus support missing
- Risk of some CAN-bus frame loss
- Risk of corrupting MDF file if RTC sync during logging
## [00.03.01] - 2019-05-14
### Added
- WiFi and S3 server passwords can be encrypted in config file
- HTTPS support
### Deprecated
- CSV file format support
### Known issues
- TLS mutual authentication missing
- LIN-bus support missing
- Unable to accept configuration and firmware OTA when SD-card is full
- S3 upload instability
## [00.02.05] - 2019-04-27
### Fixed
- S3 upload stability
### Known issues
- HTTPS / TLS support missing
- LIN-bus support missing
- Hidden WiFi / S3 passwords possibility missing
- Unable to accept configuration and firmware OTA when SD-card is full
## [00.02.04] - 2019-04-10
### Added
- Firmware-over-the-air support
### Fixed
- MDF file format time stamp
### Known issues
- HTTPS / TLS support missing
- LIN-bus support missing
- Hidden WiFi / S3 passwords possibility missing
- Unable to accept configuration and firmware OTA when SD-card is full
## [00.02.02] - 2019-03-28
### Fixed
- WiFi compatibility issues (found for iPhone access point)
### Known issues
- HTTPS / TLS support missing
- LIN-bus support missing
- Firmware-over-the-air support missing
- Hidden WiFi / S3 passwords possibility missing
- Unable to accept configuration and firmware OTA when SD-card is full
## [00.02.01] - 2019-03-22
### Known issues
- HTTPS / TLS support missing
- LIN-bus support missing
- Firmware-over-the-air support missing
- Hidden WiFi / S3 passwords possibility missing
- WiFi compatibility issues (found for Iphone access point)
- Unable to accept configuration and firmware OTA when SD-card is full
## [00.01.03] - 2019-02-18
### Known issues
- HTTPS / TLS support missing
- LIN-bus support missing
- Low S3 transfer speed
- Low S3 transfer stability
- Log files are deleted on logger if rejected by server
- Device does not shut down correctly if S3 is not available through WiFi
- Firmware-over-the-air support missing
- CAN-bus activity LEDs are not activated by transmit messages
- Cyclic logging feature missing (is listed in config)
- MDF / MF4 format missing (is listed in config)
- Hidden WiFi / S3 passwords possibility missing
- Time based file split missing (is listed in config)
- WiFi and S3 passwords do not accept special characters (such as +, !, ~)
- WiFi compatibility issues (found for iPhone access point)
- Unable to accept configuration and firmware OTA when SD-card is full
### Fixed
- S3 connect to ip as endpoint bug fixed
## [00.01.02] - 2019-02-14
### Known issues
- HTTPS / TLS support missing
- LIN-bus support missing
- Low S3 transfer speed
- Low S3 transfer stability
- Log files are deleted on logger if rejected by server
- Device does not shut down correctly if S3 is not available through Wifi
- Firmware-over-the-air support missing
- CAN-bus activity LEDs are not activated by transmit messages
- Cyclic logging feature missing (is listed in config)
- MDF / MF4 format missing (is listed in config)
- Hidden WiFi / S3 passwords possibility missing
- Time based file split missing (is listed in config)
- WiFi and S3 passwords do not accept special characters (such as +, !, ~)
- WiFi compatibility issues (found for iPhone access point)
- Unable to accept configuration and firmware OTA when SD-card is full