SFW003 - Changelist (QUAD)
Before upgrading: please read all release notes between the existing version and new version for any breaking changes.
Note
Firmware marked [DEVELOPMENT]
includes the latest features but may not be fully tested. Use with caution for in-field deployments.
SFW003-6.0.0 [LATEST]
Release Date: 2025/07/25
Supported devices: QUAD-C2-G, QUAD-C2-H
- Breaking change summary:
IO Overcurrent protection is now enabled by default.
The default measurement range for current measurement is 0-80mA with high resolution.
Battery profile is now set to optimise battery lifespan by default.
Script CPU usage threshold is now set to 75% by default. If the script exceeds this CPU threshold, it will be stopped until the device is rebooted.
Changes:
SCRIPT: To help standardise data across devices, we are introducing some ‘common’ data keys. These are fixed keys and units common to many different machine types. They can be dispatched using: SQ.dispatch(“eng_hrs”, 526.2)
The first set of common keys include:
eng_hrs: Engine Hours (Hours)
idle_hrs: Idle Hours (Hours)
run_hrs: Run Hours (Hours)
total_fuel: Total Fuel (Litres)
idle_fuel: Idle Fuel (Litres)
run_fuel: Run Fuel (Litres)
fuel_rate: Fuel Rate (Litres/hour)
fuel_economy: Fuel Economy (km/litre)
trip_fuel: Trip Fuel (Litres)
fuel_level: Fuel Level (Percent)
distance_km: Distance (Kilometres)
eng_speed: Engine Speed (RPM)
eng_load: Engine Load (Percent)
eng_temp: Engine Temperature (Degrees C)
coolant_level: Coolant Level (Percent)
coolant_pressure: Coolant Pressure (kPa)
coolant_temp: Coolant Temperature (Degrees C)
oil_pressure: Oil Pressure (kPa)
oil_temp: Oil Temperature (Degrees C)
oil_level: Oil Level (Percent)
trans_temp: Transmission Temperature (Degrees C)
trans_pressure: Transmission Pressure (kPa)
trans_level: Transmission Level (Percent)
While the units are fixed from the device’s dispatch perspective, they can be converted to other units when displayed on the Portal. If you have suggestions for other common keys, please let us know.
WEBSERVER: Security update for the device’s local webserver.
POWER: Add a new feature: General –> Battery Profile to select how to optimise the internal battery. By default the battery lifespan is optimised at the expense of some capacity.
IO: Add a new feature: External –> General IO –> Overcurrent Protection to protect the device from overcurrent on the IO pins. This feature is enabled by default.
IO: Add a new feature: External –> IOx –> Current –> Measurement Range. By default the measurement range is set to 0-80mA with high resolution for 4-20mA sensors. The range can also be set to 0-250mA with lower resolution.
ACCELEROMETER: Add a new feature: Internal –> Accelerometer –> Impact Alert. This feature allows the device to detect impacts while awake and send an alert. The impact threshold can be set in the settings.
SCRIPT: A new CPU threshold setting is available. When script CPU usage exceeds this threshold, the script will be stopped until the device is rebooted. A warning message will be sent to the Portal.
DIAG: CPU time used by the script is reported to diagnostics.
DIAG: Script CRC32 checksum is now reported to diagnostics.
SCRIPT: The current cycle number is now available in the script data handler object.
SCRIPT: Fix an issue where if the script fails to be updated from the Portal due to lack of memory, it is correctly reported as a failed command.
SCRIPT: A new callback is available which runs before the main data handler. This allows delaying the dispatch_handler until the script has collected data. See the scripting guide for more information.
SCRIPT: A new function: SERIAL.set_modparse_handler() to facilitate easier parsing of Modbus requests/responses. See the scripting guide for more information.
SCRIPT: Base64 decoding function SQ.atob() can now decode strings containing null characters.
SCRIPT: Base64 encoding function SQ.btoa() is now available to encode data in Base64 format.
CAN: Add new filter list options.
?? can be used in place of the Priority or Source Address in J1939 filters. This allows the filter to match any value in that field. For example, ??FECA?? will match any J1939 message with a PGN of FECA.
# can be used at the end of a filter list to capture one of all other IDs not listed. For example, 18FE1451*4,18FE12562,# will capture these exact IDs then one of every other ID.
SFW003-5.2.0
Release Date: 2025/03/31
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
LTE: fix bug on QUAD-C2-H where the device could get stuck initialising the LTE modem after a reboot.
SCRIPT: Add new built-in function ‘isdef’ that returns false if a variable is null or undefined. Example use:
let x; if (isdef(x)) { ... }
SCRIPT: Add new function SQ.portal_connected() to check if the device is connected to the Senquip Portal.
SCRIPT: Increase exception max length from 80 to 120 characters.
BUFFER: Fix a bug where the buffered messages would be sent very slowly to Senquip Portal if ‘Use Senquip Data Format’ is unticked.
DIAGNOSTICS: add WiFi channel, charger state and task error information to diagnostics message.
SFW003-5.1.0
Release Date: 2024/09/09
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
CAN: disable CANFD mode by default to improve compatibility with some CAN devices.
DIAGNOSTICS: measure the max time taken to run the data_handler.
SFW003-5.0.0
Release Date: 2024/08/29
Supported devices: QUAD-C2-G, QUAD-C2-H
- Breaking Changes:
BLUETOOTH: The Bluetooth module is now disabled by default to increase the available memory for other features. To enable Bluetooth from the Senquip Portal, go to Settings –> Internal –> Bluetooth and tick ‘Enable Bluetooth’.
- Changes:
CAN: bug fix for repeated CAN TX message slots from script.
LED: add a new LED mode to indicate when the device has a network connection and an IP address, but cannot establish a connection to the Senquip Portal. The orange LED will be on, with a quick off every two seconds.
BLUETOOTH: fix a bug stopping BLE data collection on the first cycle, if a filter list was set.
MAGNET: fix an issue causing excessive magnetic sensor interrupts if BLE scan was enabled. This could increase the time taken for the device to establish a network connection (when BLE scan enabled).
BLUETOOTH: stop scanning for BLE devices if a firmware update is in progress.
SERIAL: improve the serial data handler in scripting to achieve 250ms response time.
SYSTEM: increase stack size to improve stability.
LTE: improvements to modem initialisation & band selection. Allow locking to a specific operator/carrier (if required).
SCRIPT: recovery if a script fails to load or crashes during startup.
SYSTEM: longer delay before rebooting after firmware update to ensure success message is sent.
MQTT: collect diagnostics on MQTT Ack delays.
SFW003-4.1.3
Release Date: 2024/06/06
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
HIBERNATE: improve power draw in hibernate mode if Wifi AP setting is enabled.
WEB SERVER: limit the maximum number of incoming connections to the device’s web server to avoid running out of memory.
DIAGNOSTICS: add Wifi MAC address to diagnostics message.
SNTP: use a default SNTP server if no server is provided in the settings.
GPS: bug fix for GPS.get_data() on ORB-C1-H.
Includes changes from previous beta versions.
SFW003-4.1.2-beta [DEVELOPMENT]
Release Date: 2024/05/17
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
SCRIPT: bug fix for HTTP.query() when using a custom CA cert.
SETTINGS: bug fix for settings changes not being applied properly from Portal in some conditions.
SFW003-4.1.1-beta [DEVELOPMENT]
Release Date: 2024/05/09
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
MAGNET: improve power draw in sleep when Magnetic Sensor is enabled.
WAKE: enable wakeup from a digtial change on IO1 and IO2 when in sleep or hibernate mode.
WAKE: enable wakeup from vibration when in sleep or hibernate mode.
SLEEP: report reason for wake from sleep/hibernate (Magnetic Sensor, Tamper, Vibration, IO Change). These wake sources will reset the hibernate delay.
CAN: allow up to 8 slots for repeated CAN messages to be sent automatically. See CAN.tx() function in the scripting guide for more info.
WIFI AP: Wifi AP mode can be enabled outside of Setup Mode to allow connections to Wifi sensors.
PULSE: pulse count values are now non-volatile. The value is retained across reboots/sleep.
PULSE: add pulse_deltaX keys to script data handler to report pulse count changes since last cycle. Note: these value are not reported to the Portal.
HOURMETER: add 10 custom hourmeters that can be updated from the script to track custom usage. See scripting guide for more info.
SHUTDOWN: fix bug where shutdown message would sometimes not be sent before the device powered off.
HIBERNATE: improved current draw in hibernate mode.
SCRIPT: allow up to 2000 characters in a script dispatch parameter. This feature is designed to aid developement and a fair use policy applies - excessive data use is monitored.
SFW003-4.0.3-beta [DEVELOPMENT]
Release Date: 2024/04/18
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
MAGNET: fix repeated triggers when using the Magnetic Sensor in ‘Trigger’ mode.
SFW003-4.0.2-beta [DEVELOPMENT]
Release Date: 2024/02/29
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
SETTINGS: small increase to the time allowed to acknowledge a settings change from Portal
SCRIPT: fix an issue where sending data to endpoints from a script at a high rate could prevent the device from shutting down or hibernating
SFW003-4.0.1-beta [DEVELOPMENT]
Release Date: 2024/02/23
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
REMOTE DATA: fix a memory leak when using SQ.req_remote_data() from script
SFW003-4.0.0-beta [DEVELOPMENT]
Release Date: 2024/02/20
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
FIRMWARE UPDATE: now sends update progress to Portal. Fix bug if update was already in progress and a new one was triggered.
SETUP MODE: device will stay in setup mode after rebooting to apply new settings.
BUFFER: fix an issue with buffered/batched messages not sending to Portal if device did not remain awake long enough.
DIAGNOSTICS: add an internal water sense reading to diagnostics page. This is aimed to be an early warning to detect moisture inside the enclosure. (Rev 5+ hardware only)
SCRIPT: add SQ.modbus_read() helper function.
SCRIPT: add GPS.fix() function to fix the GPS location to given co-ordinates.
SCRIPT: add SERIAL.IMMEDIATE flag as an optional parameter of SERIAL.write() to write immediately.
SCRIPT: allow SQ.dispatch() to be used anytime, not just from data handler.
GPS: add a watchdog to reset GPS module if GPS data is not received after a period of time.
MODBUS: add 64 bit modbus read types.
MODBUS: process modbus messages as they arrive rather than waiting for the timeout period.
MODBUS: add a frame delay setting to specify the delay between successive slave reads. [External –> Serial 1 –> Modbus RTU –> Delay Between Reads]
SERIAL: add a setting to hold IO1 measurement state if there is a serial/modbus device powered from IO1. [External –> Serial 1 –> Powered by Output 1]
POWER: add a setting to allow disconnection of power input during sleep or hibernate when the internal battery is charged. [General –> Power Input –> Disconnect Power During Sleep]
BLUETOOTH: ability to set network settings in Setup Mode using the Senquip Connect app v2+
BLUETOOTH: ability to send common data types to be displayed on the Senquip Connect app. See scripting guide for more info.
HTTP POST: reduce time and memory resources required for each HTTP Post request. Add a scripting function HTTP.post_active_count() to get the number of active connections.
SFW003-3.7.3
Release Date: 2023/11/27
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
PASSWORD: Fix issue where the filesystem could become corrupted after changing the password using the device’s local webserver.
ALERTS: Change ‘Hibernate Alert’ event severity from Alert to Info. This avoids triggering a Portal alert every time the device goes into Hibernate mode. If a Portal alert is required, use the ‘Power Loss Alert’ instead.
SFW003-3.7.2
Release Date: 2023/10/03
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
ACCELEROMETER: fix pitch, roll, angle values not being reported unless XYZ output was also enabled.
DIAGNOSTICS: fix an issue with the diagnostics message buffer.
SFW003-3.7.1
Release Date: 2023/08/21
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
NETWORK: Increase the wait time when messages are transmitted before sleeping. On LTE networks with poor signal it can take up to 40 seconds for a message to be acknowledged by the server.
SFW003-3.7.0
Release Date: 2023/08/14
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
HIBERNATE: critical bug fixes for hibernate mode.
WEB: update device’s local web settings page.
Warning
Firmware versions below this line have known issues that affect the long term stability of the device.
SFW003-3.6.4
Release Date: 2023/08/02
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
WATCHDOG: bug fix for sleep/hibernate watchdog on hardware revision 3+
WATCHDOG: add watchdog if LTE or Wifi connects but does not properly obtain an IP address.
WATCHDOG: add watchdog if LTE connects but cannot send or receive data.
OTA: increase firmware update timeout to 1 hour for areas with poor LTE signal.
FILESYSTEM: fix an issue where the filesystem would sometimes not be unmounted before sleeping.
LTE: an update to LTE negotiation to use the DNS server provided by mobile network.
LTE: improve disconnection procedure from mobile network if an error occurs.
NETWORK: always show the last known Wifi or LTE RSSI value, even if the current value is not available.
DIAGNOSTICS: add the last device time sync source (SNTP, LTE or GPS) to diagnostics message.
SFW003-3.5.0
Release Date: 2023/07/20
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
WATCHDOG: added a sleep/hibernate watchdog to reset the device if it does not wake from an extended sleep.
SYSTEM: add an event to the data message when device is in Setup Mode.
SFW003-3.4.1
Release Date: 2023/07/11
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
SCRIPT: increase the number of Custom Settings from 5 to 10.
MAGNET: add an ‘All’ mode to perform wake, setup and trigger actions.
ENDPOINT: make connection status for endpoints (UDP, HTTP, MQTT) available in diagnostics.
WATCHDOG: rewrite connection watchdog to monitor endpoints and reset the device after a period of no connection.
MQTT: force immediate retry MQTT endpoint when IP address acquired.
DIAGNOSTICS: diagnostics messages are now buffered while offline or connecting.
SFW003-3.3.0
Release Date: 2023/06/06
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
IO PULSE: add ability to count pulses on IO1 and IO2 while sleeping or hibernating.
SFW003-3.2.0
Release Date: 2023/05/24
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
HARDWARE: add support for QUAD HW Rev 3.
SFW003-3.1.0
Release Date: 2023/05/17
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
IO PULSE: fix issues with pulse count function.
IO CURRENT: enabled higher resolution measurement (by default).
SFW003-3.0.0
Release Date: 2023/05/12
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
POWER: fix bugs, improve & streamline System Shutdown/Hibernate process.
POWER: change System Shutdown threshold to Vsys < 3.6 Volts.
POWER: disable Vset power supply when sleeping or hibernating to avoid internal battery drain.
MQTT: fix graceful disconnect when shutting down or rebooting.
SCRIPTING: increase number of persistent (NVS) variables to 50.
SCRIPTING: changes to how serial data is buffered and read. SERIAL.read() can be called anywhere in a script. SERIAL.set_handler() is optional.
SFW003-2.0.0
Release Date: 2023/04/14
Supported devices: QUAD-C2-G, QUAD-C2-H
Critical Fixes:
POWER: fix a bug preventing automatic shutdown when the internal battery was low.
Changes:
MODBUS: added support for MODBUS RTU.
SCRIPT: add a function IO.set_pulse_count(channel, value).
SCRIPT: add HTTP.query() function.
SFW003-1.2.0
Release Date: 2023/03/14
Supported devices: QUAD-C2-G, QUAD-C2-H
Changes:
HARDWARE: Greatly reduce current draw during sleep/hibernate.
SFW003-1.1.0
Release Date: 2023/03/10
Supported devices: QUAD-C2-G, QUAD-C2-H
Initial Release for QUAD