Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Warning
titleFor Wireless M-Bus Gateway V3 (LOB-GW-HYB-WMBUS) only

This Firmware is only to be used with
Wireless M-Bus Gateway V3 (LOB-GW-HYB-WMBUS).

It will not work on older revision V2 (and V1) of this product! 


Tip
titleHow do I update the firmware?

Please refer to Updating Firmware on the page about our Lobaro Maintenance Tool.







Firmware Update Downloads

Only for hardware revision 3 (since 12/2021, single antenna MMCX, LOB-GW-HYB-WMBUS). Please check if the currently running version is older and the firmware name matches before performing the update.

Product identification:

Current firmware identification via Lobaro Tool log output:


Current firmware identification via Lobaro platform:


Latest Firmware Download:


Markdown
LinkifyHeadersfalse
# Changelog
`app-nrf9160-wmbus` – collect wMBus telegrams via NB-IoT/LTE-M

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.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.


## 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
### 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.
### 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.


Table of Contents