Each firmware release is described in the format of "vX.Y.Z", where:
- "v" - Marks the firmware version for the ACR-CV products
- "X" - MAJOR version increment indicates incompatible changes
- "Y" - MINOR version increment indicates addition of functionality in a backwards-compatible manner
- "Z" - PATCH version increment indicates backwards-compatible bug fixes
To obtain a current or needed firmware release version, reach out to support@acrios.com. The firmware will be also available in a new GUI where it can be downloaded directly. This feature is not implemented yet and its release will be announced.
The releases are being sorted from the newest to the oldest.
- [NXX] [BL] Time granted for NB-IoT module to execute initialization
is exponentially growing during retries.
- [NWX] Fixed handling of 240 meters for scripts derived from original multimode
- [NWX] Fixed incorrect printout inter-frame-timeout
- [LUA] Adjusted customer specific scripts
- [LUA] Add api.nbReceiveBuffer() for memory efficient receive buffer handling
- [LUA][WMBUS] Add new add, show-index, show-length operations to api.wmbusFilter()
- [NWX] Fix handling of 240 meters / 1 unit
- [BL][NBIOT] Improve timing in large data download (>512B)
- [NBIOT] Improve timing in large data download (>512B)
- [LUA][MODBUS] Handle 0 address as broadcast correctly
- [BL][NBIOT] Adding system info printout early after power on
- [LUA] Adding new customer variants
- [MBUS] Added new generation dedicated board support with upto 16UL
- [MBUS][LUA] Extend api.mbusState() when turning on - returns approx UL value
- [N/L-RA-D/EAC][LUA] Adding possibility to tune output voltage
- [SONTEX] Fixed frequence offset reading from calibration OTP
- [1NCE] Adding NMD and NWD targets for 1NCE
- [CICD] Fix bug in binary generation corner-case
- [LUA][LORAWAN] Add option to loraSetup() to set POWER
- [NBIOT] Add support of fixed firmware of SIM7022
- [SONTEX] Add Sontex readout suppor
- [RS485] Optimize artefacts when switching from RX to TX
- [LUA] Adding variant for 1NCE, Krohne, L-R24-EAC
- [LUA] Add selectable CRLF handling in prints
- [LUA] Adding NETMORE, Instar customer build targets
- [LUA][LMX] Make default M-Bus LoRaWAN variant split payload
- [LUA][NBIOT] Fixed receive port optional argument not passed to internal implementation
- [LUA] Unify S0 NB-IoT script for D and EAC versions
- [LUA] Reduce sending interval from 2h to 1h for S0 NB-IoT
- [LUA] Adding api.modbusRTU()
- [HW] Adding support for IS25LP128, improve QSPI handling
- [FW] Adding L-I4-D variant for 101 form factor
- [LUA] Printing in serial console is disableable
- [LUA] _format_eeprom with selectable filler value
- [NWD] Send-once script has self-scheduled gathering
- [EEPROM] Optimize EEPROM delay between transaction
- [CATM] Add LTE Cat-M1 variant M-W-EAC
- [WMBUS] Add custom Sensus 434.475MHz wMBus mode
- [BUGFIX] Fix ring buffer incorrect behavior enabling better RS485 buffering performance
- [LUA][EEPROM] Extend api.setVar() and api.getVar() to enable buffer/string storage
- [NWD][BOOTLOADER] Implemented QSPI assisted firmware update
- [FW][WDOG] Adding customizable no-sleep and no-communication software watchdogs
- [NBIOT] Adding no-downlink software watchdog, customizable via Lua
- [MINOR][FW] Add printing to synchronous reset for better traceability
- [LORAWAN] Fixed LoRaWAN may get stuck in unconfirmed mode, when NbTrans is set to higher than 1 by ADR
- [TRACEABILITY] Added asynchronous reset logging
- [LUA][NBIOT] Adding 7th optional argument to api.nbSend() -> rxPort
- [LUA] Adding "_has_new_reset_log" to api.exec()
- [LUA] STDOUT_RAW contains last asynchronous reset log
- [KNOWN ISSUE]: LoRaWAN may get stuck in unconfirmed mode, when NbTrans is set to higher than 1 by ADR
- [FLASH] Fix empty page erasing issue (internal optimization)
- [KNOWN ISSUE]: LoRaWAN may get stuck in unconfirmed mode, when NbTrans is set to higher than 1 by ADR
- [LUA] Add temperature measurement via api.exec("_cpu_temp")
- [LUA] Add api.randInt() also in NB-IoT targets
- [LUA] Add utility function to compute ACRCOM framing header api.exec("_acrComHeader")
- [NWD] Use ACRCOM framing for meter data transfer
- [CUSTOMER] Add Enmon and Telos build variants
- [QUALITY] Add cppcheck to CICD pipeline and merge request reporting
- [KNOWN ISSUE]: LoRaWAN may get stuck in unconfirmed mode, when NbTrans is set to higher than 1 by ADR
- [LMD][LMEAC] Adding customer specific script for LMD and LMEAC
- [KNOWN ISSUE]: LoRaWAN may get stuck in unconfirmed mode, when NbTrans is set to higher than 1 by ADR
- [BOOTLOADER][BL] Add support for non-Miotiq firmware update via backend
- [LUA] Add model name and source type to "_sysinfo" output
- [NWEAC] Fixed multimode script to work well with AC version
- [KNOWN ISSUE]: LoRaWAN may get stuck in unconfirmed mode, when NbTrans is set to higher than 1 by ADR
- [NMX] Adding support to explicit IMSI mode to NMX secondary addressing
- [BOOTLOADER] Add force flashing on repeated retry
- [KNOWN ISSUE]: LoRaWAN may get stuck in unconfirmed mode, when NbTrans is set to higher than 1 by ADR
- [BOOTLOADER] Add .fw2 format encrypted serial bootloader for LoRaWAN variants
- [BOOTLOADER] Add more recovery code to NB-IoT bootloader
- [BOOTLOADER] Fix transition firmware compatibility issue from 2.9.8
- [KNOWN ISSUE]: LoRaWAN may get stuck in unconfirmed mode, when NbTrans is set to higher than 1 by ADR
- Add support for IEC 62056-21 with example Lua script
- Add support for MBus protocol over RS485
- [BOOTLOADER] Allow boot when start page is faulty
- [BOOTLOADER] Changed manual FW removal sequence
- [LORAWAN] Optimize reception timeout handling
- [LORAWAN] Class C - keep class after rejoin
- [LORAWAN] Class C - force confirmed after row of unconfirmed (OTAA recovery)
- [GENERAL] Add support for STM32L451CE target
- [GENERAL] Use more efficiently remaining RAM for heap (increase in heap)
- [GENERAL] Fix known issue - can use x:sub() since now
- [BOOTLOADER][L-x-x] Use IWDG_SW (hardware independend watchdog) for LoRaWAN variants
- [DEBUG] Add NB-IoT debugger target for UART-to-NBIoT tunneling
- [OPTIMIZATION] In flash usage implementing our own assert()
- [LUA] Lua now sharing print system with rest of firmware - can have timestamps (by default on)
- [LUA] Improve UX in interactive mode
- [LUA] Fix error in dumping "last known error" in case EEPROM is corrupted
- [KNOWN ISSUE]: LoRaWAN may get stuck in unconfirmed mode, when NbTrans is set to higher than 1 by ADR
- Fix LoRaWAN in class C mode - power issues
- [KNOWN ISSUE]: In Lua, cannot use x:func() due to switching to RO-tables
- Fix build errors on some platforms
- [KNOWN ISSUE]: In Lua, cannot use x:func() due to switching to RO-tables
- Add new variants to build - N_I4_EAC, L_RM_D, N_RM_D
- [LUA] Fix bug in single-long-script scheme in Lua script update
- [BOOTLOADER][NBIOT] Make bootloader able to start application from any page
- [KNOWN ISSUE]: In Lua, cannot use x:func() due to switching to RO-tables
- [NWD] Fix charging process before sending in case battery low
- [PRODUCTION][NWD] Add flash integrity check in production test
- [KNOWN ISSUE]: In Lua, cannot use x:func() due to switching to RO-tables
- [LUA] switch from using s:sub() to string.sub(s,..) for all scripts
- [KNOWN ISSUE]: In Lua, cannot use x:func() due to switching to RO-tables
- [LUA] switch from using s:sub() to string.sub(s,..)
- [KNOWN ISSUE]: In Lua, cannot use x:func() due to switching to RO-tables
- Improved timing of LoRaWAN joins with DR0/DR1
- [LUA] Added api.table() function for efficient table and hash table implementation
- [LUA] Added _G Lua object pre-allocation for better dynamic memory performance
- [LUA] Start using RO-tables, optimize heap footprint
- [NWD] Adding send-once script, compatible with ACRIOS wMBus backend
- Fixed Lua 128 bytes alignment issue which could occure during the LUA script update
- [KNOWN ISSUE]: In Lua, cannot use x:func() due to switching to RO-tables
- [GENERAL] Minor bug fixes reducing sleep current
- Add deep power down sequence for QSPI flash
- [NWD] Fix issue with 0xF4 gather report command
- [LUA] voltageSourceState() stripped from non-R12 models
- Fix SIM7022 not receiving data - closing socket before sleep
- [NWD] Add inter-frame timeout, beacons, manual gather request
- [LUA] Pack structures to reduce RAM footprint, use u16 for string lengths
- Add remote AT-command sequencer to bootloader
- [NB] Fixing critical issues with NB-IoT bootloader after network timing change (occured only in the Czech republic in the Vodafone CZ network)
- [NB] Improved module timing
- [BL] Adding single-message execute command in bootloader
- [BL] Adding CRC16 and bootloader version in bootloader request
- [BL] Adding systick-based hard timeout feature to bootloader for recovery (3hrs)
- Added AcrCOM, the new generation configuration protocol
- Added automatic configuration cable connection detection (short press)
- Improve Maddalena Arrow detection
- Lua scripts can have up to 32kB in single script mode or two 16kB scripts
- Added LoRaWAN Class B support
- Make debug prints prettier
- Add timestamping in debug prints
- NWD Lua script allowing remote error reporting
- Add support to get current serial log using api.exec()
- Add traceback, serial log and crash reporting, readable using api.exec()
- Adding sysinfo output to api.exec() for running system information
- Updated LoRaMAC-node LoRaWAN stack to 4.6.0
- Fix IWDG resetting in corner case in NB-IoT bootloader
- Fix rsend() behavior in corner case
- Enable hardware independent watchdog in bootloader
- Add ICCID printout in bootloader
- Enable verbose printing during Lua update
- Expose IMEI? IMSI? and ICCID? commands in api.nbAT()
- [MBUS] Fix DIF to length calculation
- Fixed api.getVar() with default value
- Adding config commands for reading out device model
- Adding stdin function for interactive Lua scripts
- Improve found MBus unit reporting using acked transfer
- Add support for SIM7022 with SIM7022/SIM7020 autodetection
- Fixed critical bug in api.mbusTransaction() since 2.5.8
- Adding blacklisting in Wireless M-Bus to NB-IoT version
- Compensate for run-time in wake-up period for Wireless M-Bus to NB-IoT version
- LUA storage header handling clean-up
- Added support for LUA XZ storage
- NWD with the internal antenna optimalization
- Add NMX secondary addressing
- Add PLMNID and APN auto detection for NB-IoT versions
- Add buffered S0 Lua script use-case
- Fix LUA sections definition increasing size for single script from 12 to 16kB
- Make Wireless M-Bus scanning more intelligent
- Using manual-then-automatic PLMN selection for NB-IoT
- Added command 0xF6 to send only wMBus ids checksum
- Added production tests for N-M-EAC
- Reducing quiescent current for new hardware revisions containing TVS (15uA -> 4uA)
- Add timeout before reset in case no LUA script is available
- Fix N-W-D Lua script, version bumped to 3.2
- Add better button support in NB-IoT bootloader
- Add waiting before reset in case no firmware is available, button interruptible
- Fixed user button reinitialization triggering fake presses
- Extend api.float() function to accept and return more formats
- Enable Independent WatchDoG (IWDG) in all targets
- Interactive mode not requiring IWDG kicking, autokicking if debug.debug() active
- Add N_R_EAC build option
- Add N_R_EAC, N_R_D and N_R12_D tests
- Fix bad pinmux in sleep in non-QSPI capable targets
- LoRaWAN default port added avoiding unpleasant print message
- Added print in bootloader for HW version identification
- Fix higher power consumption of NWD with QSPI
- Add float gauge use-case for ACR-CV-100L hardware
- Fixed RTC initialization in NB-IoT variants
- Fixed S0 counting in sleep and optimized for consumption
- Added QSPI tests
- Added support for wmbus M-mode
- Fixed critical S0 issue not counting in sleep
- Added doxygen comments
- Fixed rejoin minimum time value.
- Fixed issue in LoRaWAN Joining and sending, when TX fails and LoRaWAN stack FSM keeps stuck busy.
- Added support for N-W-D dedicated hardware
- Enable all LUA string library functions
- Reinit NB-IoT module if SIM removed and re-inserted (if many send fails in row)
- Removed maximum possible infinite loops in code
- Added WWDG and IWDG
- Added application-level watchdogs (maximum send period, maximum no-sleep period)
- Force confirmed LoRaWAN message after Join request, rejoin on several fails in row
- Added F mode for 433.82MHz WMBus reception
- Fixed assert when sleep time multiple of 20s
- Fixed sleep entering by api.exec("_sleep") now using commong and working code
- Removed dead code to avoid some other sleep entering by accident
- Removed critical section when accessing SPI for SX1261, causing issues