Firmware Downloads
Firmware | Comment |
---|---|
current version |
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, and this project adheres to Semantic Versioning.
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 onLostReboot
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
toconFailsSinceRst
. - Adjust status metrics naming:
connectionFails
touploadFailures
andconnectionOutcome
touploadOutcome
. - 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 of0
forLostReboot
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 asconnectionOutcome
. - 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
fromcoaps://platform.lobaro.com
tocoaps://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
andUseNbiot=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 instatus
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
andBand
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
andrestVoltage
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 ofHost
) - "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 valueslte
andlorawan
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
to0 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.