Firmware (LOB-GW-HYB-WMBUS)

For 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! 


How 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:


Changelog

app-nrf9160-wmbus – Lobaro wireless M-Bus Gateway Firmware

This changelog's format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.14.2 - 2022-06-09

Changed

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

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.