You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

# Changelog
`app-nrf9160-wmbus` collect wMBus telegrams and upload via NB-IoT/LTE-M or LoRaWAN

This changelog's format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## 0.24.1 - 2024-03-06
### Fixed
- Fixed wmbus type A reception for long telegrams greater than 0xff bytes (including PHY CRCs). E.g. eBZ WD3 electricity meters using wmbus compact profile telegrams.
### Changed
- Disable use of eDRX feature to support fast PSM (power safe mode) entry on battery driven devices.
- Enable use of eDRX feature on external powered devices. (default before for all devices)
### Updated
- nrf_modem lib from 2.5.0 to 2.6.0

## 0.24.0 - 2024-02-27
### Added
- Added `mfw` binary files support to `fw` downlinks. This allows to perform delta firmware updates of modem firmware. 
- Needs Lobaro Platform `>= 1.91.1`.
### Changed
- Adjust network selection logic if both LTE-M and NB-IoT are configured to be used for older MFW. Only use preference selection on MFW >= `1.3.5`.´

## 0.23.6 - 2024-01-27
### Changed
- Improve malloc lock on any memory allocator function.
- Changed used CI ARM toolchain from `ARM_NONE_EABI: "10.3.1"` to `ARM_NONE_EABI: "13.2.1"`. Updated also NewLib.
- If both LTE-M and NB-IoT are configured, make LTE-M preferred on external powered variants. Others prefer NB-IoT.
- Send `device.EMM` and `device.ESM` in status msg only after they happened.
- Send `device.EMM_r` and `device.ESM_r` in device msg only once after device reset.

## 0.23.5 - 2024-01-10
### Changed`
- Removed unneeded 5s grace period on flight mode entry.
- Move trace data to device startup coap msg
- Don't try to send any UDP data if PDP context is closed. Shortens time for retry, may increase modem stability on older MFW.
### Fixed
- Remove potential endless loops in phy low level wmbus receive
- Fixed `Assert: 1046:.../drv_sx1261.c` introduced in `0.23.3`

## 0.23.4 - 2024-01-03
### Changed
- Start LobaWAN (LoRaWAN) task only if needed, e.g. parameter `WAN=lorawan` set.
- Optimized sleep entry sequences of wmbus mac and sx1261 phy
- Add safety reboot if modem does not enter lowest possible power mode after work
- Enter flight mode if PSM entry did fail, e.g. for bad coverage
- Use `device.final_words` for modem fault diagnostics instead of separate status fields (removed `device.mf` and `device.mfpc`).
- Restart without collecting if flight mode could not be entered for any reason. Might result in WD reset before.
- Increase SPI stability to radio transceiver
### Fixed
- Sun Gateway: Fixed increased sleep current introduced in `0.19.2`

## 0.23.3 - 2023-12-22 
### Fixed
- Give SIM cards more time to power up, may have lead to SIM card not found errors before.
### Changed
- Allow any wmbus C field `0x_4` and `0x_6` instead of only `0x44` and `0x46` to support older `LSE` meters with `0xc4`.

## 0.23.2 - 2023-12-22 (not published)
### Fixed
- Fixed race condition when chaining multiple wmbus readout modes and store was full during collection, introduced in `0.22.0`

## 0.23.1 - 2023-12-20 (not published)
### Fixed
- Fixed LoRaWAN not working, introduced in `0.23.0`

## 0.23.0 - 2023-12-19 (not published)
### Changed
- Add safety check with `MFW <= 1.2.x` for modem off again. (revert `0.21.2` changes)
- Revert to proven 3of6 decoding engine (revert `0.21.0` changes)
- PSM TAU interval changed to 31h.
- PSM active timer changed to 2s.
- Reduce sleep entry busy wait time (only if needed) to `22s`
- Enter flight mode upon disconnect during upload action
- Enable eDRX again
- Add preference for NB-IoT over LTE-M to save power when possible if both technologies are enabled.
### Fixed
- Fix possible race condition between wmbus mac and transceiver driver which could lead to zero wmbus telegrams received. (Introduced in `0.22.0`)

## 0.22.1 - 2023-12-15 (not published)
### Changed
- Reset 868 MHz radio upon every sleep wakeup to keep it in a consistent state
### Fixed
- (hw2 only) Fix a bug introduced in 0.19.0 that prevented the device from collecting telegrams
  after deep sleep.

## 0.22.0 - 2023-12-14 (not published)
### Changed
- Relaxed watchdog feeding period from 11 min to aprox. 3h before trigger.
- Make sleep entry wait time more relaxed to allow final signaling with the LTE networks.
- Reduce log during communication make it only appear with `verbose=true` set.
- Removed unnecessary stack wake / sleep sequences upon unexpected sleep irq interruptions.
  - Leads to less power consumption during sleep.
- Default `lostReboot` to `3` days (was 5 before).
- Update nrf_modem to v2.5.0

### Fixed
- Fixed to early rf switch turn off which could have lead to `brown out` resets.
- Fixed `watchdog` resets on some hw with more inaccurate internal rtc.

## 0.21.3 - 2023-11-27 (not published)
### Fixed
- HW2 only: fix an assert that happened in Hardware 2 variant, introduced in 0.19.1.

## 0.21.2 - 2023-11-18 
### Fixed
- Send `receives` only if uploading data.
### Changed
- Send `receives` only if `verbose` setting is on for diagnostics.
- Don't retry flight mode enter because of modem activity which may have caused unneeded safety resets. 
Most likely relevant for `MFW <= 1.2.x`.

## 0.21.1 - 2023-11-17 (not published)
### Changed
- Add grace period of at most `25s` upon sleep psm entry.
- Use modem modemsleep notification to speed up, e.g. not wait full `25s`, sleep entry when using PSM. Needs also `MFW >= 1.3.2`.
- Remove double connection upon device startup / reset. Needs also `MFW >= 1.3.2`.

## 0.21.0 - 2023-11-17 (not published)
### Changed
- Optimized reception of C1/T1 mode telegrams. Solved issues e.g. with `EBZ` meters.
- Minor speed improvement on internal 3of6 decoding engine for T1 mode reception.
- Don't upload `receives` in every wmbus telegram upload which was statically 1 anyway
- Report `T3412_tau` and `T3324_psm` in status uplinks in seconds instead of encoded bit string. `-1` indicates a disabled timer.
### Fixed
- Stability improvements for PSM entry to fix watchdog resets aprox. 12.5h after last msg.
- Fix initial status RSRP and RSRQ values from potentially beeing reported as `255` when using PSM

## 0.20.0 - 2023-xx-xx (not published)

## 0.19.2 - 2023-11-03
### Fixed
- HW2 only: fix an assert that happened in Hardware 2 variant, introduced in 0.19.0.
- Fix potential reboot lockup issue on sleep entry, that could lead to watchdog resets after 10.5h (introduced in 0.15.0).
- Fix problem with connection loss when using PSM (introduced in 0.19.1), that could lead to "lost reboot" days of no connection.
### Added
- Added sun-lwdefault variant for solar hardware, that defaults to using LoRaWAN on config reset.
- Add new device status info `mf` and `mfpc` and to indicate last modem fault and programm counter.

## 0.19.1 - 2023-10-13
### Added
- LTE modem now always request PSM with these timer values:
    - T3324: 2 s (PSM Activity Timer, `00000001`)
    - T3412: 27 h (Long-Periodic TAU Timer, `00111011`)
- USE CP-Rai in LTE modem (release assistance indication) for NB-IoT
- Add new device status info `extPower` to signal if device is external or battery powered.
- Indicate to the network during radio connection that it prefers low power configuration if not ext. powered. (CEPPI)
### Changed
- Keep LTE connection always on using PSM, to avoid unnecessary signaling overhead with mobile provider
    - if measured supply voltage is > `4V`
    - if next CRON triggers within next `6` hours
    - otherwise: enter flight mode after work done (as always in previous releases of this FW)
- Change naming of psm related status info, now naming actual timer:
    - `psm` -> `T3324_psm`
    - `tau` -> `T3412_tau`

## 0.19.0 - 2023-10-11
### Fixed
- (minor) Fix a possible race condition for UART logging on entering deep sleep.
- Fix usage of optional external RAM for extended telegram storage (broken since 0.18.3).
- Fix fw to build for solar with alternative phy (433 MHz).

## 0.18.9 - 2023-09-04
### Fixed
- Deduplication of special Telegrams from SensoStar 5 by EFE adjusted, to avoid dropping of telegrams.
### Changed
- Deduplication now keeps first version of telegrams received during collection period, instead of last.

## 0.18.8 - 2023-08-09
### Fixed
- Fix a fatal bug that crashed devices having a SIBA variant of the nRF9160 on boot (SIBA is only used some HW2 boards).

## 0.18.7 - 2023-08-07
### Fixed
- LoRaWAN uploads accidentally included telegram's CRCs in the payload (introduced in 0.17.0). 
  Removed CRCs, as it used to be.

## 0.18.6 - 2023-07-25
### Fixed
- Fixed a logging issue.

## 0.18.5 - not published
### Fixed
- Fix an issue with environment addon on solar variant.

## 0.18.4 - not published
### Changed
- Internal changes in handling of peripherals.

## 0.18.3 - not published
### Changed
- Internal changes in handling of peripherals.

## 0.18.2 - not published
### Changed
- Increase supported size for config from 5000 bytes to 6000 bytes.
- Limit number of server requests pending inside the device to 1.
- Increase ensured buffer size for receiving of server requests to 6000 bytes.
### Added
- Add new uplink message `request_error` for LTE, that reports when server requests could not be 
  processed due to an error, or because the device is busy processing another request.

## 0.18.0 - unreleased
### Added 
- Auto-detection for optional environment addons using either BME280 or SCD41 sensors
  - LoRaWAN: SCD41 sensors data send on port `2`
  - LoRaWAN: BME280 sensors data send on port `3`
  - Cellular: Send both sensors data in new `env` typed uplink message to Lobaro platform
- Mechanism to abort failed network searches earlier (SEARCH STATUS 2)
Cellular: Upload last happened ESM (session management error) and EMM (mobility management error) network codes in status message
  - These network provided error codes can help to indicate malfunctions network & sim config
- Upload CeInfo in status
### Changed
- Update nRF modem lib to v2.4.0
  - Handle all modem events in irq instead of dedicated bsd driver task
- With MFW >= 1.3.0 prefer NB-IoT if NB-IoT and LTE-M are both configured.
  - Was modems decision before leading to LTE-M in many cases
- Change DTLS handshake timeout from 15s to 130s.
- Revert to 0.15.7 and before behavior in modem:
  - If NB-IoT and LTE-M are enabled no preference between them is configured. Initial try will be LTE-M.
### Fixed
- Fix `ConFails` status upload, was always `0` before.

## 0.17.1 - 2023-06-14 - special 433 MHz release for DIN-Rail
### Added (for this release only)
- Add configuration parameters to use alternative Phy layer.
- Add config parameters `altPhy`, `altCmodeDurSec`, `altSmodeDurSec`, `altXmodeSurSec`.

## 0.17.0 - 2023-04-21
### Added 
- wMBus Filters now support blacklisting: Add `!` at beginning of list to use a 
  blacklist instead of a whitelist, e.g.: `!12345678,22334455` for `DevFilter` to block 
  devices with ID `12345678` or `22334455`.
- Add reception statistics uplink after each collection period (type = `receives`), that 
  documents how many telegrams where received in total during the complete collection period of 
  which type, and how many of those had an incorrect CRC.
- Add additional data field `receives` to telegram uplink (type ""), that indicates, how often 
  a single telegram has been received (and updated) during the collection period.
- (sun only) Add `useLna` option for sun which switches power and ctrl of optional LNA Mikrobus addon if set to true
- (433 MHz only) 433 MHz support for wMBus collection when using LoRaWAN (but no LoRaWAN on 433 MHz support).
### Changed
- (sun only) Remove ext. RAM support for sun gw
### Fixes
- Remove redundant CBOR "break" byte (`0xff`) in message that uploads telegrams via UDP raw upload.
- Fix a very small chance for receiving (but never uploading) corrupted data for very short telegrams.
- Slightly shorten time that is needed to process a received telegram by tweaking and cleaning up 
  SX driver's code.
- (433 MHz only) Don't collect telegrams on alternative Phy (= 433 MHz), if altDuration is set to 0, but
  normal duration is set to value > 0.

## 0.16.x
All 0.16.x-releases are for diagnostic purposes only. They are not meant for productive use.

## 0.16.3 - diagnostic release, sun-only - 2023-03-01
- Turn on (high) lna enable pin receive (CS, active high) if awake, else low

## 0.16.7 - diagnostic release, din-rail only - 2023-02-14
- Revert 0.16.6.
- Upload telegrams Type B with invalid CRCs.

## 0.16.6 - diagnostic release, din-rail only - 2023-02-14
- Revert 0.16.5.
- Disable RX boost for wmbus reception.

## 0.16.5 - diagnostic release, din-rail only - 2023-02-13
- Change reception frequency deviation for Mode-C.

## 0.16.4 - diagnostic release, din-rail only - 2023-02-13
### Changes for diagnostics
- Only receiving Mode-C, Type B telegrams.

## 0.16.3 - diagnostic release, din-rail only - 2023-02-10
Special diagnostic release with "Changes for diagnostics"
that are not permanent and will not be taken to future versions.
### Changes for diagnostics
- Alter preamble configuration for C-Mode reception (reverted in future).

## 0.16.2 - diagnostic release, din-rail only - 2023-02-07
Special diagnostic release with "Changes for diagnostics"
that are not permanent and will not be taken to future versions.
### Added
- New LTE upload message `receives` that sends stats of how many telegrams
  of what type were received totally (without deduplication and without checking CRCs)
  and how many had CRC-errors.
- New information `receives` on LTE telegram uploads, that indicates, how often a certain 
  telegram has been received during last listen period.

## 0.16.1 - hw3+altphy only
Special release for alternative phy (433 MHz addon) on hw3 only.

## 0.16.0 - diagnostic release, din-rail only - 2023-01-31
Special diagnostic release with "Changes for diagnostics" 
that are not permanent and will not be taken to future versions.
### Changed
- Update nordic modem lib.
- Use peripheral pool.
### Fixed
- Treat blanks in config parameter `Host` as errors.
### Changes for diagnostics (in this version only!)
- Do not remove CRCs from OMS-telegrams on reception.
- Upload telegrams with and without CRCs via LTE.

## 0.15.8 - 2022-12-19
### Fixed
- (Solar with secondary SX only) Fixed usage of secondary SX on addon board.

## 0.15.7 - 2022-10-12
### Fixed
- Fix a possible issue with cron expressions.

## 0.15.6 - 2022-10-07
### Fixed
- Fix antenna configuration on certain prototype boards 
  (issue on older Din-Rail and Solar boards only, introduced in 0.15.0).

## 0.15.5 - 2022-09-26
### Changed
- Change status message to be sent a random time between 0:00:00 and 0:59:59 UTC
  (persistent per device).

## 0.15.4 - 2022-09-22
### Changed
- Allow extended cron expressions that contain `H` for individual per device 
  constant random values, `W` for making sure cron executes on a weekday, and 
  `L` for last.

## 0.15.3 - 2022-09-21
### Changed
- Restrict `determine-battery` command to hw3.
- Include `limit` on `determine-battery` uplink.
### Fixed
- Parsing of parameters for `determine-battery` can now handle floats (32 bit or 64 bit).

## 0.15.2 - 2022-09-19
### Changed
- Sun Gateway: Change default listen CRON to once a day at noon (0 0 12 * * *). Was hourly during daytime before.
- Sun Gateway: Change default requiredVoltage Parameter to 3.5V. Was 3.25V before.

## 0.15.1 - 2022-09-15
### Added
- Diagnosis command `determine-battery` to verify the correct battery is used.

## 0.15.0 - 2022-09-07
### Changed
- Update nrf_modem to 2.1.3

## 0.14.9 - 2022-09-04
### Changed
- Remove reading of system voltage directly before sleep and wakeup to improve system robustness.

## 0.14.8 - 2022-09-02
### Changed
- Disable low voltage protection task, because nrf9160 will shut down on low voltage
  triggered by hardware anyway.

## 0.14.7 - 2022-08-31
### Added
- Sun Gateway: Add reed initiated reset of configuration with LTE connecting to platform.lobaro.com

### Changed
- Default config enables both LTE-M and NB-IoT. Was only NB-IoT before.
- LTE status message now reports the used network type (LTE-M or NB-IoT) 
- LTE status message now reports the used APN. Maybe helpful in conjunction with "*" automatic config parameter.
- LTE status message now reports last connection time and connection fails since reset as separate field. Was part of monitor before.
### Fixed
- LoRaWAN: Change remote config to answer 'S' command with 'S' instead of 's'

## 0.14.6 - 2022-08-26
This release improves behaviour in very weak lte signal conditions.

### Changed
- Don't collect after modem power down failure before sleep, instead just restart and send status
- Increase flight mode enter timeout to 61s.
- Add some timing guards bevor entering flight mode after all work done
- Reset if modem domain does not power down now after 5 seconds + retry

## 0.14.5 - 2022-08-24
### Fixed
- Fix rare watchdog triggering after failed connection shutdown introduced in v0.14.3.
### Changed
- Initial watchdog feeding upon system init
- Sun Gateway: Change Watchdog to 10h again as in other variants
- Close AT-Socket on timeout, to avoid late response messing up next command.
- Reset if modem domain does not power down within 1 second while preparing sleep

## 0.14.4 - 2022-08-11
### Fixed
- Modem hang up with following watchdog reset because the fw falsely detected lte network as connected from 
previous connection attempt in some network related conditions. Problem has been introduced in 0.14.3 and can be 
diagnosed with device reset 10.5h after 00:00h (UTC) / daily status message.
- Clear reset reason after boot, worked cumulative before (until power on reset) making it impossible to determinate the last reset reason. 
### Changed
- Increase for graceful modem shut-down from 30sec to 60sec, should help in bad coverage situations.
- First try modem shut-down if flight mode could not be entered before perform a self initiated system reset to recover.
- Reduce default DNS servers to two (where three before)
- Sun Gateway: Change default listen cron to daytime 
- Sun Gateway: Add "Standby" config parameter to sleep device after production until reed initiated reset
- Sun Gateway: Change Watchdog to 30h instead 10h for other variants
- Sun Gateway: Don't flash the LED upon connection attempts.

## 0.14.3 - 2022-07-08
### Fixed
- Make low voltage protection more robust.
- Reenable daily status uplink when using LoRaWAN (was disabled on accident in v0.11.?).
### Changed
- Add extra checks to determinate if connection is stable to communicate upon connect to avoid unnecessary retries in rare situations.
- Thread "FFFFFFFF" as invalid LTE cell in any case and stay in disconnected state. Don't use TAC as 2nd condition anymore.
- Increase proven connection timeout to 120s (was 90s before) and unproven to 300s (was 240s before).
### Added
- Sun Gateway: Add audio buzzer indication
- Add Müller-Funk (u-Mode) to LoRaWAN collection phase (was only working on LTE before).

## 0.14.2 - 2022-06-09
### Added
- Add support for parsing inner Device ID/Manufacturer/Type from Dif-Vif pair for
  telegrams with CI-field 0x78 ("no header"), if telegram is clear text
  and first Dif-Vif pair is 0x0779. Allows to correctly filter by ID for legacy Qundis walk-by telegrams.

## 0.14.1 - 2022-05-23
### Changed
- Increase system stack size by 2k
- Remove unnecessary blocking mutexes during connection try statistics logging
- Add 2nd retry on internal modem mode changes (AT+CFUN)
- Start in flight mode for MFW < 1.3.0 (again)
- Count repeated dial-ups with unproven parameters as additional try (`device.conTries` property in platform)
### Fixed
- Turn off blue LED after connection attempts again under all circumstances
- Exclusively use out of band modem notifications as single decision source if connected or not. Could have false
positives before leading to aborted upload cycles.

## 0.14.0 - 2022-05-16
### Changed
- Remove graceful system resets after two consecutive failed LTE dial-ups during single activation introduced 
in `0.13.6` release. Instead, relay on `LostReboot` and handle this condition like any other communication error. 
Nevertheless, no more than two LTE connection attempts per activation will be tried to avoid excessive battery drain and support 
accurate battery lifetime predictions. 
- Initial exponential join retry interval maxes out at one day, was 8h before.
- LTE connection monitor status does not reset failed connection attempt counter on next successful
dial-up anymore. Change related naming status monitor `conFails` to `conFailsSinceRst`.
- Adjust status metrics naming: `connectionFails` to `uploadFailures` and `connectionOutcome` to `uploadOutcome`.
- Remove unnecessary upload try of second / final status upload if telegram upload has failed before.
- Save sticky connection statistics also during join attempts
- Remove upload of empty data uplink, when do telegrams could be received, as that information is now
  communicated by a status uplink in that situation.
### Fixed
- Don't lose the telegram that previously failed when catching up (partly) failed wMBus uploads during following 
status uploads.
- Possible instant reboot during initial join procedure under certain failure sequence.
- Respect `LostReboot` also during initial join attempts.
- Really remove no more needed graceful system resets after 5 unsuccessful consecutive LTE dial-ups from modem.
- Fix usage of optional external ram on board for HW3 variant.

## 0.13.12 - 2022-05-13
### Changed
- Change "Network-Loss-Detection" for LTE to behave like for LoRaWAN: if no uplink
  confirmation is received by the device from the platform for more days than the 
  value of config Parameter `LostReboot`, the device reboots itself to attempt and fix the 
  connection by starting from scratch. A value of `0` for `LostReboot` disables 
  this feature. The prior behavior (reboot after 5 unsuccessful consecutive connection
  attempts) has been removed, as it could not be directly changed by configuration and
  was dependent on the frequency with which the device is collecting telegrams.
### Fixed
- LTE: on uplink failure, also look for broken mobile provider connection if using
  plain CoAP (was only doing this when CoAP over DTLS was used).

## 0.13.11 - 2022-05-12
### Added
- In LTE-status uplink report the number of times the device failed to reach the platform
  when trying to connect (since its last reboot) as `connectionFails`, as well as 
  outcome of previous connection attempt as `connectionOutcome`.
- Add number of times the device "woke up" from sleep since boot in LTE-status uplink as 
  `activation`.
### Changed
- Alter network loss detection for LTE: Do not reboot after second status upload fail (still reboot after 5 upload fails).
### Fixed
- Fix deduplication of telegrams for new `uMode` (Müller Funk).
- LTE: Do not try to upload status message, when DTLS-handshake failed.

## 0.13.10 - 2022-05-06
### Fixed
- Fix order of reading SIM, logging SIM information, and triggering reboot with missing SIM.

## 0.13.9 - 2022-05-05
### Changed
- Increase proven dial-up timeout from 60s to 90s to enhance dial-up robustness after
  experience from field-testing.

## 0.13.8 - 2022-05-04
### Changed
- Change default config value for `host` from `coaps://platform.lobaro.com` to 
  `coaps://platform.lobaro.com,coap://platform.lobaro.com`, to enable fallback to
  non secure connection (not using DTLS) by default. Non secure communications may be blocked per device in Lobaro platform 
  if needed to enforce secure DTLS.
- Set dial-up timeout with unproven connection parameters to 240 seconds - was 180 seconds before.
- Set dial-up timeout with proven connection parameters to 60 seconds - was 180 seconds before.
- When dial-up with proven connection parameters fails, drop them and try again immediately - once per activation.

## 0.13.7 - 2022-05-03
### Fixed
- Improve disconnect detection for MFW < 1.3.0

## 0.13.6 - not released
### Changed
- When trying to reconnect to platform on connection loss, also check if connection to
  mobile provider is broken and try to reconnect, if needed.
- Perform reconnection on failed fetch during firmware update, instead of just retrying.
- Reduce LTE-connection timeout to 3 minutes.
- Sync clock with time provided by mobile network, if possible, only fallback to 
  platform sync, if former fails.
### Fixed
- Handle if both `UseLtem=true` and `UseNbiot=true` with MFW < 1.3.0: Now using NB-IoT only in this case.
- Confirm temp config/new firmware from remote before any downlinks are handled (as those downlinks 
  might cause a reboot and would hence reverse the update).
- Handle downlinks after each individual uplink during LTE-Join procedure, so that no downlinks
  will be dropped if one of multiple queued downlinks causes a reboot.
- Don't try joining platform if connection to mobile provider already failed.

## 0.13.5 - not released
### Changed
- Increase internal state machines stack to avoid OOM.
- Turn off modem also for MWF1.2.x during startup.
- Increase waiting sockets efficiency in modem glue.
### Fixed
- Fix Status Cron.

## 0.13.4 - pre-release - 2022-04-29
### Changed
- Add second status message after uploading of telegrams.
- Retry DNS lookup once per listed DNS server.
- Retry DTLS handshake on failure (Handshake can fail due to long flight time).
- Remove status information from `device` uplink message (will follow in `status` message anyway and don't belong to device info).
- When DTLS-session breaks during uploading (e.g. because the server restarts), the device 
  tries to establish a new session (perform new DTLS-handshake). If that handshake fails
  (3 tries), the uplink has failed. For each uplink message, this process can happen once.
- Add low-pass filter to voltage values uploaded to platform (to get a more realistic 
  development of battery voltage change).
- Skip initial collection of telegrams after reboot caused by config change or 
  firmware update (unless device was interrupted during uploading by change/update).
- Port Nordic OS-Layer to Lobaro OS.
### Fixed
- Respect port specified for host if hostname is used instead of IP (did overwrite with 
  default port for protocol).

## 0.13.3 - pre-release - 2022-04-26
### Fixed
- Counter Datagram split when using DTLS with Modem FW < 1.3.1.
- Fix memory corruption introduced in 0.13.2.

## 0.13.2 - pre-release - 2022-04-25
### Changed
- Reduce transmission overhead (save data volume and battery life).
- Adjust CoAP timeouts to better suit NB-IoT conditions.
- Remove diagnostic data ("monitor" string and other values) from telegram upload message.
- Add "monitor" string to status message (warning: "monitor" string is subject to change and might disappear in future).
- Upgrade nordic BSD-Lib to 1.4.1.
### Fixed
- Fix some memory issues from 0.13.1
- Fix id filter parsing from 0.13.0

## 0.13.1 - pre-release - 2022-04-21
### Added
- Support for reception of u-Link (Müller Funk) as `uMode`.
- New Config Parameter `umodeDurSec` for u-Link (Müller Funk)
### Fixed
- Fix addressing of optional external ram used for storage of large numbers of telegrams.

## 0.13.0 - pre-release - 2022-03-29
### Added
- Support for DTLS secured connections to Lobaro platform.
- Use device's certificate to authenticate/authorise device in platform when using CoAP over DTLS.
- Use Lobaro Root CA Certificate in device to authenticate/authorise Lobaro platform when using CoAP over DTLS.
- Output Root CA Certificate and Device Certificate to UART-log on booting.
- Create device certificate on booting, if it is missing or found to be broken.
- Upload used Band in status message over LTE.
- Log IMSI and ICCID in params during boot (is SIM present).
- Log CI-Field and Hop Count of received telegrams.
- Log complete wMBus telegram if verbose logging is enabled.
### Changed
- Config Parameter `Host` now supports specifying protocol, e.g. `coaps://platform.lobaro.com`.
- Reuse successfully used Operator/Band connection on subsequent connection buildups to speed 
  up connecting (only if no explicit values are set by config).
- Increase LTE connection timeout from 2 minutes to 5 minutes.
- Remove power on wMBus receive test.
- Filter configuration is now verified on boot and invalid entries are treated as configuration error
  (they used to be silently ignored).
- For device filter configuration, leading zeros of wMBus device IDs can be omitted.
- Hard fail on boot when no valid DevEUI / device address is present in device.
- Reduce logging output of telegram store unless verbose logging is activated.
- Change default values of configuration parameters `Operator` and `Band` to be empty.
### Fixed
- Initial CoAP connection to platform now fails if device does not exist or another error
  occurs.
- Roll back firmware update, if platform cannot be reached with temporary firmware (same as with temporary config).

## 0.12.0 - 2022-02-16
### Added
- (altphy releases only) Support for using alternative OMS Phys (on different frequencies).
- (altphy releases only, hw3 only) Support for using addon for 433 MHz frequencies, special releases only.

## 0.11.10 - 2022-03-10 (bugfix release)
### Fixed
- Fix a hard fault that happened after LoRaWAN join.

## 0.11.9 - 2022-02-07
### Fixed
- (solar only) Fix behaviour on low power situation.

## 0.11.8 - 2022-01-31
### Fixed
- Fix reading of testing firmware name (fixes self test `factory`).

## 0.11.7 - 2022-01-28
### Fixed
- (solar and hw3) Fix a situation that could lead to increased power consumption during sleep.

## 0.11.6
### Changed
- (solar only) Add parameters `requiredVoltage` and `restVoltage` for adjusting 
  charging / discharging.

## 0.11.5
### Changed
- (solar only) Adjust voltage limit levels, remove parameter `requiredVoltage`.

## 0.11.4
### Added
- Initial support for Solar Gateway variant.
- (solar only) Skip operation below critical voltage, skip status messages on even lower voltage.
- (solar only) New config value `requiredVoltage` for controlling operation on low charge.
- (solar only) New value `voltageSkip` in status message, communicating 
  skipped operations due to low voltage.
- (solar only) Send status message during daytime, not during nighttime.
- (solar only) Interrupt running data upload when voltage drops too low.
- (solar only) Wait for required voltage after boot before starting work.

## 0.11.3 - 2022-01-10
### Changed
- Verify secure firmware is of sufficient version on boot.
### Added
- Upload used host entry in status message (for verification if DNS is working as intended).
- Upload device's certificate on bootup (temporary message, might be removed at any time in future releases).
### Fixed
- Delay confirmation of firmware update until backend has been connected / OTAA join is completed.

## 0.11.2 - 2022-01-04
### Changed
- Reduce program size (no functional changes).

## 0.11.1 - 2022-01-03
### Changed
- Default Configuration now uses LoRaWAN 1.0 exclusively (was LoRaWAN 1.1 with fallback to 1.0).
### Fixed
- Fix some issues with LoRaWAN that could prevent Device from working when configured to use LoRaWAN.

## 0.11.0 - 2021-12-23
### Changed
- Switch to use new Hash Store for saving wMBus telegrams (faster, no hard limit on number of telegrams).
- Allow use of external RAM for wMBus store.
- Handling of telegram filters sped up significantly.
### Added
- New config parameter `ExtRam` for making firmware use optionally soldered external SRAM.
- New config parameter `verbose` for activating more logging messages (reduces device's efficiency).

## 0.10.1 - 2021-12-06
### Added
- Upload of usage statistics with every status message.

## 0.10.0 - pre-release 2021-12-03
### Added
- Add DNS support for platform configuration.
- Multiple values for `Host` (fallback options).
- DNS-Server configuration (parameter `DNS`).
- Extend "Lost Reboot" feature to restart after 24h+ network loss.
- For GW v3: New parameter `externalAntenna`
- Use stored factory test result in boot up testing (written by provisioning firmware).
### Changed
- Remove parameter `Port` (now part of `Host`)
- "Lost Reboot" feature now also triggers if mobile network is unreachable.

## 0.9.4 - 2021-11-05
### Changed
- Adjust wMBus parameters to better receive som DME meters.

## 0.9.3 - 2021-11-04
### Fixed
- Fix a rare crash in wmbus-Stack

## 0.9.2 - 2021-10-19
### Added
- Support new format for device parameters in log.
- Support for new board nrf9160-sx-gw2 (GW V3).
### Dependencies
- Boot Firmware >=1.7.1
- Modem Firmware >=1.1.0

## 0.9.1 - 2021-10-07
### Fixed
- Fix a bug where receiving many long telegrams could lead to an assert.
  (Assert: 32:/c/src/github.com/lobaro/app-nrf9160-wmbus/src/common.cpp)
### Changed
- Reduce CoAP log to speed up upload.

## 0.9.0 - 2021-09-14
### Added
- Implement new low voltage protection: reboot on consistent low voltage during normal operations. On boot: turn off device completely when voltage is too low (multiple measurements taken).
- Critical voltage: 2.7V
- Introduce new filter for CI-Field in wMBus-Telegrams.
### Changed
- Update boot Firmware to 1.7.0
- Update integrated mcuBoot Firmware to 1.3.0 (supports older versions)
### Dependencies
- Boot Firmware >=1.7.0
- Modem Firmware >=1.1.0

## 0.8.8 - 2021-07-29
### Fixed
- Reactivate UDP config (was falsely deactivated in recent release).
### Dependencies
- Boot Firmware >=1.6.0
- Modem Firmware >=1.1.0

## 0.8.7 - 2021-06-08
### Fixed
- Fix a memory problem introduced in 0.8.6.

## 0.8.6 - 2021-05-12
### Changed
- Use inner ID and Type for Telegrams with CI 0x72 (repeaters)
- Update nrf9160 HAL

## 0.8.5 - 2021-04-26
### Changed
- Internal changes on how band lock is executed.

## 0.8.4 - 2021-03-26 (unreleased)
### Changed
- Internal changes on how band lock is executed.

## 0.8.0 - 2021-02-25 (prerelease)
### Added
- Full support for LoRaWAN as in dedicated lorawan wmbus bridge. Device can run 
  in two different modes: `lte` to connect either via NB-IoT or LTE-M, `lorawan` 
  to connect via LoRaWAN.
- New Config Parameter `WAN` with values `lte` and `lorawan` to change between modes.
- New Config Parameters for LoRaWAN: `OTAA`, `DevEUI`, `JoinEUI`, `AppKey`, 
  `NwkKey`, `TimeSync`, `RndDelay`, `LostReboot`, `PayloadFormat`.
- `time` information in LTE Status Message.
### Fixed
- Filter list for Sensus-RF now supports IDs with prefixes other than `10`.
### Changed
- Sensus-RF IDs for Filter list must now be given full as 11 digits (without dashes `-`).
### Removed
- Drop support for Hardware Revision HW1.

## 0.7.2 - 2021-01-27
### Added
- Support for Xylem Sensus RF Bubbel Up Telegrams (X-Mode)
- New Config Parameter: `xmodeDurSec`
### Changed
- Config Parameter `devFilter` now also accepts Sensus RF Meter IDs (9 or 11 digits, no dashes. 
  First two digits of ID are optional and will be ignored).
- Add value `mode` to telegram upload indicating mode used during reception. Values: `C`, `T`, `S`, `X`
- Add value `type` to telegram upload indicating telegram's type. Values: `A`, `B`, `X`

## 0.7.1 - unreleased
### Added
- Include diagnostic information about time syncing.

## 0.7.0 - 2021-01-14
### Changed
- Only support Bands 8 and 20.
### Added
- New config parameter `PIN` to support SIM cards that require a PIN (no support for entering PUK).
- Support for LoRaWAN as alternative upload technology on HW revision 2 (OTAA only) -- activated on special request only!.

## 0.6.10 - 2020-12-17
### Fixed
- Fix filtering of telegrams by manufacturer ID for telegrams that use a non
  globally unique address (highest bit in M-Field set to 1).

## 0.6.9 - 2020-10-27
### Added
- Include new information in status message: `collected` indicates if telegrams have just been 
collected on this activation, `telegrams` says how many telegrams have been collected on last 
collection, `uploading` indicates how many telegrams will be uploaded following this status 
message (this helps in diagnosing connection lost during upload of telegrams and continuation 
of transmission on next status upload).
### Changed
- Set default config value for `listenCron` to `0 0 12 * * *` to have a value that does not drain 
your battery too but gives you the ability to queue a downlink for the current day during your 
office hours. Also collecting during day, because some meters do not send during night hours.
- When uploading telegrams, always send status message first as well.
### Fixed
- Fix a bug that prevented the reception of certain wMBus-Telegrams C-Mode Class-A 
(valid telegrams of a certain length where falsely rejected as having an invalid CRC).
- Fix an issue triggered by certain unusual bytes in the air that could lead to temporary problems 
on wMBus reception (that could result in receivable telegrams not being received).
- Continuation of failed uploads on next status activation was losing the telegram that failed 
to upload. Now it will be retransmitted.

## 0.6.8 - 2020-09-25
### Fixed
- Fix handling of Type B Telegrams.

## 0.6.7 - 2020-09-17
### Changed
- Failed data uploads will be retried to upload along with status messages. There
  will be no new collection for this; telegrams are only collected on data cron (and 
  after boot). On upload failure, collected data is kept until it is uploaded during 
  status or until data cron activates again (if there is still pending data from 
  last activation, that is dropped).
### Fixed
- Also evaluate server requests after Status Message only uploads.

## 0.6.6 - 2020-09-09
### Changed
- Enhance timing on handling of incoming wMBus telegrams, so we are less likely to miss any.

## 0.6.5 - 2020-09-08
### Added
- Support CoAP blockwise to enable up-/downloading huge device configs.
- Human readable logging of CoAP options
### Changed
- Evaluate downlink after every uplink during telegram upload.
- Only output printable chars in log during CoAP communication

## 0.6.4 - 2020-08-27
### Changed
- Increased size for CoAP buffer to enable upload of config in max size.

## 0.6.1 - 2020-08-25
### Added
- Evaluate downlinks on bootup (after all initial uplinks are sent).

## 0.6.0 - 2020-08-24
### Added
- Daily status uplink to CoAP backend, independent of configuration.
- Initial status uplink to CoAP backend after boot, before initial collection.
- Parsable meta information like connection quality etc (CBOR). 
### Fixed
- Validate all config values before operation starts (cron was missing in validation)

## 0.5.6 - 2020-07-14
### Changed
- Revert too restrict 3of6 decoding size check
- Use task notification again in virq for more efficiency since it did not affect HF problem

## 0.5.5 - 2020-07-13
### Changed
- Use Newlib allocator for freeRTOS
- Set stack and heap sizes in cmake file of app
- Use queue for sx1272 irq to task synchronisation instead of task notifications before

## 0.5.4 - 2020-07-08
### Changed
- Start lobcom frame counter at 1, not at 0
- Remove diagnostic logs, change version number for release.

## 0.5.3 - 2020-07-07
### Added
- Support new dedicated hardware HW2
- Reboot when losing connection to network (in case modem is stuck)
- Add optional upload per raw UDP (without coap) to alternate address
### Changed
- Support only LTE-M/NB-IoT in firmware as supported by current hardware
- Increase config size, up to 175 device IDs
- Disable modem on initial wMBus collection to enhance reception quality

## 0.4.0 - 2020-05-15
### Added
- Start changelog.
### Fixed
- Make Firmware work with nrf-Board 1.4 (fix power on logic for module).
### Changed
- Removed learning mode.


  • No labels