Firmware Changelog
Version 1.1.3‑rel
Section titled “Version 1.1.3‑rel”Changes from 1.1.2
Fixes
- USB descriptor returns correct serial number (device id).
- USB CCID aligns CCID max size to 272.
- USB CCID returns correct slot status notifications.
- Devwork action
fgetcan now get"/". - Better error handling for
fgetwhen files exceed max JSON size (~1 KB limit).
Version 1.1.2
Section titled “Version 1.1.2”(No standalone release notes — changes are listed under 1.1.3.)
Version 1.1.1
Section titled “Version 1.1.1”Changes from 1.0.16
Features
- Added self‑test for LoRa board (not yet operational).
Fixes
- Persist configuration after 2 seconds (was 10 seconds).
- Restore persisted config when entering DFU/PROV states.
- Avoid losing persisted config when going UNALLOC → DFU or PROV.
- Fix HTTPS regression from 1.1.1: CA certificates could not be parsed due to
prj.confoptions after WPA‑Enterprise removal. - Fix HTTP download file‑system access (don’t create file in network thread).
- When an alert is cancelled from the backend, the “not in alerting” state is resent over MQTT even if the device was not in alerting.
Version 1.0.16
Section titled “Version 1.0.16”Changes from 1.0.15
Features
- Enable nRF70 SYSTEM+RAW binary for raw packet transmission. Requires DFU of
wifi_update.bin. - Enable Cisco CCX code with configurable destination and source (default Airista OUI).
- Added
net.<networkname>.statedata element to show active network connection state.
Fixes
- Fix
alttextlocalisation for icons and msglist replacement text. - Update user self‑test to be more interactive (validates buttons, LEDs, vibration, sound, etc.).
- Update production self‑test to this source; fix
self_test_usb(). - Button long‑press time returned to 3 seconds.
Removals
- WPA‑Enterprise code removed (untested and flash space too full).
Version 1.0.15
Section titled “Version 1.0.15”Changes from 1.0.14
Features
- Added
pb(page back) action to go back one page in the history stack. - Cryptomgr / dedpinchk: first version of key‑based IP access (disabled).
- Provisioning mode timeout (without activity) extended to 180 seconds at startup.
Fixes
- Provisioning mode cleans up persisted data (if any).
- Long‑press time changed to 2 seconds (was 3 seconds).
netwifi: usescheckPeriodSecsfrom config for connection checks.- Fix bug when deleting all messages from msglist while DED is open showing an unread message (assert, buffer use after free).
Removals
- Cryptomgr, LoRa network connection, uiperimgr, dedpinchk (flash space saving).
Version 1.0.14
Section titled “Version 1.0.14”Changes from 1.0.13
Features
- Added
onBlue(long press) option for alert trigger. - Ability to delete all messages in alert msglist over TLV (
T=0x05,L=0x00). - Ability to persistently update network config
authsections via received JSON messages. - Added
timedevice to manage time sync to wall clock times. - Added key (security) manager initial version to handle PINs (partial).
- Added access control via
keyfor IPs (partial).
Notes
- Released for client deployment.
Version 1.0.13
Section titled “Version 1.0.13”Changes from 1.0.12
Features
- ALP: created
wifialpdevice;pushIP/pushPortconfig moved here. - ALP: added
enabledflag to send regular HELLO_REQUEST packets. - ALP: parses some HELLO_RESPONSE commands.
- Msglist: widget now supports multi‑line entries. Line height set by
formatter.mlh. Newline inmfmtvia field name"NL". - Msglist: max number of entries can be set via DED param.
- Alertmgr: can trigger duress by pressing Blue and Red simultaneously (
onBlueRed:true, origin=10). - Alertmgr: can trigger duress by pulling duress then pressing Blue, Red, Grey, or Blue+Red (appropriate config flags and origin causes).
- DED msglist: can include
"closeded"action in a widget on the skeleton page to close the DED. - Added
"kbd"DED type for string/number input using a user‑supplied skeleton IP. - DED: msglist and kbd DEDs now flash (invert) widgets in their skeleton pages when pressed.
Fixes
- Fixed formatter option
percent_circle. - BQ battery gauge chip config updated to use bin for battery detection.
netwifi: changes to make WiFi connection handling more robust.
Version 1.0.12
Section titled “Version 1.0.12”Changes from 1.0.11
Features
- Added persistence of dynamic data.
- Implementation of USB CCID class for smartcard access.
- ALP protocol update to set
pos_reason. Sends UDP ALP on alert and long press on back/next buttons. alloc_localaction can now set allocated user data (allocate with locally provisioned files + dynamic user data over WiFi in unallocated state).- Added
fmkdto create directories on the filesystem. - Msglist widget now has folder functionality (one level).
Fixes
- Hack to NCS
gpio_mcp23xxx.cto set a higher‑priority work queue for button processing during e‑paper updates. fdldaction uses a temp file in/tmpduring download, then renames to target.commperionly enables the GPIO of nRF52 reset on MCP when pulling it low; floats otherwise to allow nRF52 hardware reset of radio board.- NFC fix using cherry‑picked commits from later NCS versions.
Version 1.0.11
Section titled “Version 1.0.11”Changes from 1.0.10
Features
- Added potential ability to send raw WiFi management or data packets (not yet enabled).
- Added
netloraperito handle LoRa daughter cards. - Added communications timeout check on downlink to detect lost backend/app connection (
devcfg.core.app_timeout_secs). - Added possibility to send WiFi scan results via UDP packet to a remote server (ALP/ELP protocol).
Fixes
- NFC callback method changed (direct IRQ handling); still buggy when accessing ISO7816.
- Minor memory leak in
mqttmgrwhen connecting/disconnecting. - Networks that are the same in both alloc and unalloc states are not reset when changing state.
- Fixed msglist handling issues.
- Fixed TLV DL handling issues; added test mode via
devcfg.bleperi.tlvtest.
Removals
- Removed
netusbfsand Mifare APDU processor (flash space saving).
Version 1.0.10
Section titled “Version 1.0.10”Changes from 1.0.9
Features
- Added haptic vibration for touch button presses. Default 100 ms (configurable/disabled in
vibrmgr).
Fixes
- Entering DFU or provisioning modes now done via reboot to ensure networks start fresh.
- Memory optimisation to slightly increase heap.
- Battery gauge (bq27421) only re‑initialised on a HARD reset (power‑on or magnet).
Version 1.0.9
Section titled “Version 1.0.9”Changes from 1.0.8
Fixes
- Flush network output messages when closing down networking.
- Keep network queue size reasonable.
- Reduce memory usage during state changes.
- Self‑test
AT+AUDIN_STARTchanged to detect tones (duration, frequency, level) instead of VAD. AT+AUDOUT_ONdefault duration changed to 10 seconds, gain to 30.- Rule manager now executes actions using
wsched, one request per action in order. This prevents blocking when rules trigger (e.g. alerts that previously delayed network messages).
Version 1.0.8
Section titled “Version 1.0.8”Changes from 1.0.7
Features
- Provisioning/DFU modes use the network defined in
devcfg.fw.provnet. - Better screen messages for DFU and provisioning states.
- E‑paper screen update uses a semaphore to wait for SPI, allowing parallel processing of other non‑wsched threads.
- Touch events use async processing to read I2C during screen updates.
- Msglist widget handles multiple pages of messages with scroll bar and swipe up/down gestures.
Fixes
- Exit provisioning state using devwork action
local_return. - Msglist widget drawing update when list changes (from network).
Known issues
- Button inputs async processing not working.
Version 1.0.7
Section titled “Version 1.0.7”Changes from 1.0.6
Features
- Audio manager now uses 16‑bit PCM samples at 8 kHz only.
- Audio record and play to flash disk files operational (raw PCM, 16‑bit/8 kHz):
- Play from
/audio/<id>.pcmor/audio_rec/<id>.pcm - Record to
/audio_rec/<id>.pcm
- Play from
ded_mlupdated to update non‑msg fields in both the message and skeleton IP.ded_mlskeleton IP page can now include1onNandbool_inplaceDEDs.- Created new widget format
"list"to render msglist content as one line per message. - New formatter attribute
"mfmt"specifying message fields to show and their sizes:- In pixels for
"list"format - In characters for
"text"format with"msglist"formatter
- In pixels for
- New formatter names:
"nmsgs"— number of messages in a msglist"nmsgsUnread"— number of unread messages in a msglist
- Updated
boolformatters for text and graphic msglist values:trueif there are unread messages,falseif none. - Updated
ded_mlalerts msglist processing:isReadis part of the JSON content.- Updated when a message has been shown and the user explicitly navigates away.
- Generates an uplink message when updated (backend knows the user saw the message).
Fixes
ded_mlonly updatesisReadtotrueif the user actually navigates from the page.- MQTT JSON message length no longer has 8 bytes of padding.
- Text string truncation algorithm corrected when close to region size.
- Truncated string character changed from
"*"to".". "back"navigation when usingded_mlno longer places the skeleton page on the history stack.fdldreturns0inareswhen download successfully starts, and sends an uplink message when it completes.
Version 1.0.6
Section titled “Version 1.0.6”Changes from 1.0.5
Features
- Added circular log for events (system events only).
- ISO7816 implementation with associated
devcfg/devdata. nfcmgrupdated to allowmode=2and useapdumgrfor raw APDU processing.- Mifare emulation validated for
apdumgr. devdata.alert.originis now an enum (small int) for better TLV packing.- Widgets flash when pressed unless they are DEDs (which re‑render anyway).
Fixes
- Send button release AT commands when released N times for alert processing (same as alert end message).
Version 1.0.5
Section titled “Version 1.0.5”Initial documented version
Features
- Corrected handling of prone alert; checked double‑tap and red triggers.
- Added
devcfg.alert.triggerto force alert from action or backend. - Alert status message indicates origin (duress loop, prone, fall, shock, etc.).
- Added WPA2/WPA3 enterprise EAP‑TLS handling (to be tested).
- Accelerometer ignores data when vibration motor is active.
- USB enable flag is now configurable and persistent over boot (key press toggles on/off at each boot).
Fixes
- Fixed rule hysteresis counter check (counter is always positive; the 0→1 or 1→0 transition triggers).
- Fix user self‑test BLE‑peri test (must set active flag to change state).
Known limitations
Section titled “Known limitations”The following limitations apply to current firmware (1.1.3):
- NDEF JSON does not replace values for known keys.
- Provisioning and DFU modes still undergoing testing.
- Limited power optimisation: ~5 mA idle with BLE service, ~10 mA with WiFi.
- Limited font support:
- Sizes available: 10, 14 (+14 bold), 22, 26 pixels
- Restricted to ISO‑8859‑1 character set
- No UTF‑8/16/32 support
- Limited DED types: boolean inplace (
bool_inplace), 1‑of‑N inplace (1ofn_inplace), multi‑page message list (msglist). - No UI input during screen refresh (buttons ignored).
- BLE GATT services on either nRF52 (
bleperi) or nRF53 (ble). nRF53 is preferred; nRF52 GATT is deprecated. - nRF53 DFU fully tested over USB only (IES DFU implemented but untested).
- nRF52 DFU only over BLE with Nordic DFU app.