Jump to content

SENSBLUE ATLAS/Datasheet

From ATRONIA Wiki

Datasheet

1. Table of SENSBLUE ATLAS Reference ID Model Number

Paxxxxxxxx
PAxxxxxxxx

2. General Description

SENSBLUE ATLAS is a single board computer that connects sensors and assets, runs control logic and ships to production without platform changes.

Designed for industrial teams who need one dependable path from experiments to operations.

2.1 Key Features

Processor:

  • Raspberry Pi CM4 (quad-core Cortex-A72)

I/O:

  • 12 DIO (8 Digital Outputs and 4 Digital Input)
  • 6 AIO (4 Analog Inputs and 2 Analog Outputs)
  • 2 relays

Industrial Bus:

  • RS-485
  • CAN
  • 2× Ethernet port (Independently managed)

Communication:

  • Integrated LTE
  • Wi-Fi
  • BLE
  • USB

Interface & Services:

  • 1.47″ IPS TFT display + joystick for local setup and feedback.
  • Includes 1 GB of data (up to 500 MB LTE + 500 MB DB storage) via sensblue.cloud — no external SIM required.
  • EU-hosted servers, TLS, weekly backups, VPN on request.
  • Other versions under request.

3. Hardware Specifications

Parameter Specification
Platform Raspberry Pi Compute Module 4 (CM4)
Processor Broadcom BCM2711 Quad-core Cortex-A72 (ARM v8)
CPU Frequency 1.5 GHz
RAM 4GB LPDDR4
Storage 32 GB eMMC
Selected Variant CM4102032-4 GB RAM/ 32 GB eMMC / Wi-Fi / BLE
PCle 1 x PCle Gen 2.0 (1 lane)
HDMI 1 interfaces
USB 2 x USB 2.0

4. Power

Parameter Specification
Input voltage 12-24 VDC ± 5%
Reverse polarity protection Yes
Overcurrent protection Resettable PTC fuse
Surge protection TVS clamp for transient events
Isolation No isolation
Typical consumption < 15 W
Maximum consumption 25 W (all peripherals active)

5. Digital Inputs

Parameter Specification
Channels 4
Input voltage 0-24 VDC
Logic LOW Acording to EN 61131-2 Type I and Ill
Logic HIGH Acording to EN 61131-2 Type I and Ill
Input type Sourcing (PNP)
Input current Acording to EN 61131-2 Type I and Ill
Isolation Funcional Safety Gavanic isolation
Isolation Voltage Functional isolation between channels on the field side +- 60V
Isolation Voltage DIN VDE V 0884-11 Maximum working isolation voltage 400V RMS
Isolation Voltage DIN VDE V 0884-11 Maximum surge isolation voltage 1 kV RMS
Special feature Can be used as fast inputs until 100Hz

5.1 Wiring

6. Digital Outputs (Relay)

Parameter Specification
Channels 2
Type Mechanical relay
Switching capacity 2 A@ 30 VDC
Isolation 1000 VAC galvanic isolation
Lifetime (nominal load) ≥ 100,000 cycles
Lifetime (no load) ≥ 100,000,000 cycles

6.1 Wiring

7. Digital Outputs (Transistor/ SSR)

Parameter Specification
Channels 8
Type PNP (sourcing) SSR
Maximum current 300 mA per channel
Maximum voltage 24 VDC
Isolation Funcional Safety Gavanic isolation
Isolation Voltage DIN VDE V 0884-17 Maximum transient isolation voltage 1 kV RMS

7.1 Wiring

8. Analog Inputs

Parameter Specification
Channels 4
Mode Voltage or current configurable per channel
Voltage range 0-10 V
Current range 0/4-20 mA
ADC resolution 16 bits
ADC Sample Rate 32 samples/sec
Accuracy ≤ ±1.0% FSR
Input impedance (voltage) > 100 kΩ
Input impedance (current) 100 Ω
Protection TVS + analog filtering
Sampling rate ≥ 10 Hz per channel
Isolation Funcional Safety Gavanic isolation
Isolation Voltage Maximum transient isolation voltage 1 kV RMS

8.1 Wiring

9. Analog Outputs

Parameter Specification
Channels 2
Output type Current
Range 0-20 mA
Optional range 4-20 mA (software configurable)
Resolution 12
Accuracy ≤ ±1.0% FSR
Isolation Funcional Safety Gavanic isolation
Isolation Voltage Maximum transient isolation voltage 1 kV RMS

9.1 Wiring

10. Communication Interfaces

10.1 Ethernet

Parameter Specification
Ports 2 x RJ45
Port 1 10/100 Mbps
Port 2 0/100/1000 Mbps (native CM4)
Indicators Link + Activity LEDs

10.2 RS-485

Parameter Specification
Mode Half-duplex
Control TX_EN line
Protocol Transparent/ any
Isolation None
10.2.1 Wiring

10.3 USB

Parameter Specification
Ports 2
Type USB-A
Standard USB 2.0 Host
Maximum current 400 mA per port
Protection Overcurrent protection

10.4 HDMI

Parameter Specification
Ports 1
Connector HDMI full-size
Maximum resolution Depends on CM4 and OS

11. RF Communications

Technology Specification
Wi-Fi Integrated in CM4
BLE Integrated in CM4
LTE M.2 NGFF modem SIM7600G
SIM External access

11.1  Antenna Connectors

Connector Usage
RP-SMA Wi-Fi / BLE
SMA LTE

12. Local Peripherals

Peripheral Description
Temperature sensor Internal board temperature monitoring
Non-volatile memory Persistent storage
Security IC Microchip ATECC608A
RTC Real Time Clock with battery backup

13. HDMI

13. 1 Display

Parameter Specification 
Type IPS TFT LCD
Interface SPI
Size 1.47"
Resolution ≥ 172 X 320
Backlight LED
Mounting Front mounted with transparent window

13. 2 Joystick

Parameter Specification 
Positions 5 (Up/ Down/ Left/ Right/ Enter)
Type Mechanical tactile switch
Interface GPIO Expander

14. Mechanical

Parameter Specification 
Mounting DIN rail (EN 60715)
Enclosure MAT0091092 (same as iSense / iCee)
Protection rating IP20
Mounting method DIN rail snap-fit

15. Environmental

Parameter Specification 
Operating temperature -10 °C to +60 °C
Storage temperature -20 °C to +80 °C
Humidity 5-95% non-condensing
Vibration IEC 60068-2-6
Shock IEC 60068-2-27

16. Certifications

Certification Standard  
CE Yes
EMC 2014/30/EU
Radio 2014/53/EU (RED)
Ro HS 2011/65/EU

17. Connectivity

Parameter Specification  
Connector type Pluggable System Terminal Block
Pitch 3.5 mm
Layout Dual-row
Identification Side panel silk screen
Fixation Mechanical locking or spring clamp
Protection Mechanical reverse insertion protection

18. Expansion

Feature Description 
Piggyback area Reserved PCB area
Compatibility Fully compatible with existing FW
Power rails available Vin, 5 V, 3.3 V
Interfaces available 12C, SPI, UART, GPIO
External 1/0 lines 32 lines routed to external connectors
Storage expansion M.2 NVMe SSD connector

19. External Interfaces

Front View


Bottom View


20. Pinouts

Top View

21. System Type

Raspian

Debian GNU/Linux 13 (trixie) Version 13.2 Linux atlas 6.12.47 +rpt-rpi-v8 #1 SMP PREEMPT

Debian 1 :6.12.47-1 +rpt1 (2025-09-16) aarch64 GNU/Linux.

22. Network Information

There is three ways to connect to the device. IP and state of the connection be checked on the LCD Network Interface.

22.1 Eth1 (ethO)

Client dynamic IP obtained by DHCP server.

22.2 Eth2 (eth1)

Static IP: 93.48.86.253

22.3 Access Point (wlanO)

IP: 192.168.30.1

23. Software Information

Node-Red Grafana lnfluxDB
Version 4.1.4 12.3.1 2.8.0
Port 1880 3000 8086
State Clean Clean Clean
Authentication None User/Pass (admin/admin) Not defined, configured on first time interface login.
GUI on http://<device-ip>:1880 http://<device-ip>:3000 http://<device-ip>:8086

24. MQTT Broker

port: 1883

address: AP-> 192.168.30.1

Eth1: 93.48.86.253

user: < not needed>

login <not needed>

24.1 Relay Outputs Actor

24.1.1 App Interfacing

User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credentials.

a) Set/reset digital output pin/pins state

Both relays default state is open.

Req-Topic: relayOutputs/config/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskParams": {
      "D01": {
        "state": "open"
      },
      "D02": {
        "state": "open"
      }
    }
  }
}

Reply-Topic: relayOutputs/config/out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "D01": {
        "success": true,
        "state": "open"
      },
      "D02": {
        "success": true,
        "state": "open"
      }
    }
  }
}
b) Get all relays state

Req-Topic: relayOutputs/runtime/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "action": "READ"
  }
}

Reply-Topic: relayOutputs/runtime/out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "D01": {
        "success": true,
        "state": "open"
      },
      "D02": {
        "success": true,
        "state": "close"
      }
    }
  }
}
c) Set all relays state

Req-Topic: relayOutputs/runtime/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "action": "SET",
    "taskParams": {
      "D01": {
        "state": "open"
      },
      "D02": {
        "state": "close"
      }
    }
  }
}

Reply-Topic: relayOutputs/runtime/out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "D01": {
        "success": true,
        "state": "open"
      },
      "D02": {
        "success": true,
        "state": "close"
      }
    }
  }
}

24.2 RTC Actor

24.2.1 App Interfacing

User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credencials.

a) Set timer/alarm interruption

mode: Timer, alarm or none.

alarmSet: Date and time for alarm interruption (No effect if mode is timer or none).

timerSetSeconds: Period in seconds for timer interruption (No effect if mode is alarm or none).

Req-Topic: clock/config/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskParams": {
      "CLOCK_SET_MODE": {
        "mode": "timer",
        "alarmSet": "[timestamp epoch ms]",
        "timerSetSeconds": "<INT>"
      }
    }
  }
}

Req-Topic: clock/config/out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "success": true,
      "CLOCK_SET_MODE": {
        "mode": "timer",
        "alarmSet": "[timestamp epoch ms]",
        "timerSetSeconds": "<INT>"
      }
    }
  }
}
b) Toggle RTC sync logic (described below)

tcState: State of the synchronization logic of the RTC, this value is non-persistent so every-time a reboot happens the value return to default (by default the value is ON)

Req-Topic: clock/config/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "action": "TOGGLE"
  }
}

Req-Topic: clock/config/out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "success": true,
      "rtcState": "OFF"
    }
  }
}
c) Read clock configs

mode: Timer, alarm or none.

alarmSet: Date and time for alarm interruption (No effect if mode is timer or none).

timerSetSeconds: Period in seconds for timer interruption (No effect if mode is alarm or none).

rtcState: Current state of the synchronization logic of the RTC.

Req-Topic: clock/config/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "action": "READ"
  }
}

Reply-Topic: clock/config/out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "success": true,
      "CLOCK_CONFIGS": {
        "mode": "timer",
        "alarmSet": "[timestamp epoch ms]",
        "timerSetSeconds": "<INT>",
        "rtcState": "ON"
      }
    }
  }
}
d) Read clock

Req-Topic: clock/runtime/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "success": true,
      "timestamp": "[timestamp epoch ms]"
    }
  }
}
24.2.2 Synchronization loop flowchart (every 30 seconds)

RTC Actor - Overview

24.3 Core System Health Actor

24.3.1 App Interfacing

User App interface and functionalities exposed to the open part of the MQTT broker.

This interface allows any external App to receive system-level metrics such as CPU load, RAM usage, disk usage, temperature, core frequency, system throttle status and uptime.

No credentials are required to subscribe to this topic.

The System Health Actor does not receive commands. It is fully autonomous and publishes its metrics every 1 second.

24.3.2 Runtime Data

Topic: systemHealth/runtime/out

Publish rate: 1 Hz (one message per second, clock-jump safe)

a) Metrics Provided
Key Description Unit
cpu_percent Current CPU load %
cpu_tempC CPU temperature read from Linux thermal zones ºC
cpu0_freq CPU Core O current frequency Hz
cpul_freq CPU Core 1 current frequency Hz
cpu2_freq CPU Core 2 current frequency Hz
cpu3_freq CPU Core 3 current frequency Hz
cpu0_throttle System throttle status register Hex
ram_percent RAM usage %
disk_percent Disk usage for filesystem root / %
uptime_sec Time since last reboot seconds

Example Payload (systemHealth/runtime/out)

{
  "id": <TIMESTAMP>,
  "origin": "system-health",
  "task": {
    "taskResult": {
      "cpu_percent": 7.1,
      "cpu_tempC": 47.3,
      "cpu0_freq": 1500000000,
      "cpu1_freq": 1500000000,
      "cpu2_freq": 1500000000,
      "cpu3_freq": 1500000000,
      "cpu0_throttle": "0x0",
      "ram_percent": 32.9,
      "disk_percent": 41.2,
      "uptime_sec": 5321
    }
  }
}
24.3.3 Peripherals health

  In order get the peripherals health we had to implement a SystemHealth actor in each bus manager (busi2c­O, busi2c-1, etc. ... ).


a) Example

For busi2c-0:

Reply topic: systemHealth/busi2c-0/runtime/out

Payload:

{
  "id": <TIMESTAMP>,
  "origin": "system-health-busi2c-0",
  "task": {
    "taskResult": {
      "ADC": {
        "status": "ERROR",
        "description": "IRQ Retrying",
        "last_report": 1770378753006,
        "stats": {
          "AI1": {
            "samples": 563154,
            "retries": 760548,
            "discards": 253313
          },
          "AI2": {
            "samples": 563154,
            "retries": 760475,
            "discards": 253314
          },
          "AI3": {
            "samples": 563154,
            "retries": 760528,
            "discards": 253313
          },
          "AI4": {
            "samples": 563154,
            "retries": 760549,
            "discards": 253312
          }
        }
      },
      "DAC": {
        "status": "OK",
        "description": "Running....",
        "last_report": 1770378752576,
        "stats": {
          "AO1": {
            "samples": 240755,
            "retries": 0,
            "discards": 0
          },
          "AO2": {
            "samples": 240755,
            "retries": 0,
            "discards": 0
          }
        }
      },
      "RTC": {
        "status": "OK",
        "description": "",
        "last_report": 1770378752094,
        "stats": {
          "samples": 248710,
          "retries": 0,
          "discards": 0
        }
      },
      "TEMP": {
        "status": "OK",
        "description": "",
        "last_report": 1770378752579,
        "stats": {
          "samples": 240754,
          "retries": 0,
          "discards": 0
        }
      }
    }
  }
}

For busi2c-1:

Reply topic: systemHealth/busi2c-1/runtime/out

Payload:

{
  "id": <TIMESTAMP>,
  "origin": "system-health-busi2c-1",
  "task": {
    "taskResult": {
      "JOYSTICK": {
        "status": "OK",
        "description": "Running....",
        "last_report": 1770382405050,
        "stats": {
          "read_all": {
            "samples": 410154,
            "retries": 0,
            "discards": 0
          },
          "read_raw": {
            "samples": 0,
            "retries": 0,
            "discards": 0
          },
          "buttons": {
            "JDOWN": {
              "reads": 410154,
              "last_state": "pressed"
            },
            "JRIGHT": {
              "reads": 410154,
              "last_state": "pressed"
            },
            "JUP": {
              "reads": 410154,
              "last_state": "pressed"
            },
            "JLEFT": {
              "reads": 410154,
              "last_state": "pressed"
            },
            "JCENTER": {
              "reads": 410154,
              "last_state": "pressed"
            }
          }
        }
      },
      "RELAYS": {
        "status": "OK",
        "description": "Relay Output MQTT connected",
        "last_report": 1770298859099,
        "stats": {
          "read_all": {
            "samples": 0,
            "retries": 0,
            "discards": 0
          },
          "set": {
            "samples": 0,
            "retries": 0,
            "discards": 0
          },
          "set_many": {
            "samples": 0,
            "retries": 0,
            "discards": 0
          },
          "raw_read_all": {
            "samples": 0,
            "retries": 0,
            "discards": 0
          }
        },
        "outputs": {
          "DO1": {
            "writes": 0,
            "last_state": "unknown"
          },
          "DO2": {
            "writes": 0,
            "last_state": "unknown"
          }
        }
      },
      "DI": {
        "status": "OK",
        "description": "Running",
        "last_report": 1770382404832,
        "stats": {
          "read_all": {
            "samples": 181758,
            "retries": 0,
            "discards": 0
          },
          "read_raw": {
            "samples": 0,
            "retries": 0,
            "discards": 0
          },
          "inputs": {
            "DI1": {
              "reads": 181758,
              "last_state": "low"
            },
            "DI2": {
              "reads": 181758,
              "last_state": "low"
            },
            "DI3": {
              "reads": 181758,
              "last_state": "low"
            },
            "DI4": {
              "reads": 181758,
              "last_state": "low"
            }
          }
        }
      }
    }
  }
}
24.3.4 Commands
a) List usb devices

The list_usb_devices action returns a parsed list of USB devices detected on the system using the lsusb command.

Req-topic: systemHealth/runtime/in

{
"id": <TIMESTAMP>,
"origin": "Dev",
"task": {
   "action": "LIST_USB_DEVICES"
 }
}

Reply-topic: systemHealth/runtime/usb/devices/out

{
"id": <TIMESTAMP>,
"origin": "system-health",
"task": {
  "action": "list_usb_devices",
  "taskResult": {
     "usb_devices": {
       "success": true,
       "command": "lsusb",
       "returncode": 0,
       "devices": [ 
         {
           "bus": "001",
           "device": "001",
           "vendor_id": "1d6b",
           "product_id": "0002",
           "description": "Linux Foundation 2.0 root hub",
           "parsed": true
         },
         {
           "bus": "001",
           "device": "002",
           "vendor_id": "0424",
           "product_id": "9514",
           "description": "Microchip Technology, Inc. (formerly SMSC) SMC9514 Hub",
           "parsed": true
         },
         {
           "bus": "001",
           "device": "003",
           "vendor_id": "0424",
           "product_id": "ec00",
           "description": "Microchip Technology, Inc. (formerly SMSC) SMSC9512/9514 Fast Ethernet Adapter",
           "parsed": true
         },
         {
           "bus": "001",
           "device": "004",
           "vendor_id": "1e0e",
           "product_id": "9001",
           "description": "Qualcomm / Option SimTech, Incorporated",
           "parsed": true
         }
       ],
       "stderr": ""
      }
    }
  }
}
JSON Path Type Example Description
id string /number "get-hw-info-001" Request identifier echoed back in the response.
origin string "system-health" Actor/device that generated the response.
task object {...} Container for the action response.
task.action string "list_usb_devices" Action executed by the actor.
task.taskResult object {...} Main result object for the action.
task.taskResult.usb_devices object {...} Contains the USB device scan result.
task.taskResult.usb_devices.success boolean true Indicates whether the lsusb

commandexecuted successfully.

task.taskResult.usb_devices.command string "lsusb" Command used to collect USB information.
task.taskResult.usb_devices.returncode number /null 0 Process return code. 0 means success. null

means the command was not executed ortimed out.

task.taskResult.usb_devices.devices array [...] List of USB devices detected by lsusb.
task.taskResult.usb_devices.devices[ ].bus string "001" USB bus number where the device wasdetected.
task.taskResult.usb_devices.devices[ ].device string "004" USB device number assigned on that bus.
task.taskResult.usb_devices.devices[ ].vendor_id string "1e0e" USB vendor ID in hexadecimal format.
task.taskResult.usb_devices.devices[ ].product_id string "9001" USB product ID in hexadecimal format.
task.taskResult.usb_devices.devices[ ].description string "Qualcomm / Option SimTech,Incorporated" Human-readable device description returnedby lsusb.
task.taskResult.usb_devices.devices[ ].parsed boolean true Indicates whether the lsusb line was parsed successfully.
task.taskResult.usb_devices.devices[ ].raw string Optional Present only when a device line could not beparsed.

Contains the original raw lsusb line.

task.taskResult.usb_devices.stderr string " " Error output from the command. Empty stringmeans no error.
b) List connectivity specs

The list_connectivity_specs action allows the SystemHealth Actor to return connectivity information for the device, including the status of:

  • Wi-Fi
  • LTE modem
  • eth0
  • eth1
  • Tunnel interfaces, for possible commissioning use

Req-topic: systemHealth/runtime/in

{
"id": "connectivity-001",
"origin": "APP",
"task": {
  "action": "list_connectivity_specs"
 }
}

Reply-topic: systemHealth/runtime/connectivity/out

{
  "id": "<TIMESTAMP>",
  "origin": "system-health",
  "task": {
    "action": "list_connectivity_specs",
    "taskResult": {
      "connectivity": {
        "sources": {
          "sysfs": "/sys/class/net",
          "ip_link": {
            "available": true,
            "command": "ip -j -d link show",
            "error": null
          },
          "network_manager": {
            "available": true,
            "command": "nmcli -t -f DEVICE,TYPE,STATE,CONNECTION device status",
            "error": null
          }
        },
        "interfaces": {
          "wifi": {
            "available": true,
            "interfaces": [
              {
                "interface": "wlan0",
                "available": true,
                "status": "down",
                "operstate": "down",
                "admin_up": true,
                "carrier": false,
                "mtu": 1500,
                "type": 1,
                "link_kind": null,
                "mac_address": "2c:cf:67:fd:60:40",
                "ipv4": [],
                "ipv6": [],
                "network_manager": {
                  "device": "wlan0",
                  "type": "wifi",
                  "state": "disconnected",
                  "connection": null
                },
                "wifi": {
                  "available": true,
                  "command": "iw dev wlan0 link",
                  "connected": false
                }
              }
            ]
          },
          "lte_modem": {
            "available": true,
            "tool_available": true,
            "command": "mmcli -L",
            "modems": [
              {
                "id": "0",
                "success": true,
                "command": "mmcli -m 0 --output-json",
                "manufacturer": "QUALCOMM INCORPORATED",
                "model": "SIMCOM_SIM7600G-H",
                "revision": "LE20B04SIM7600G22",
                "hardware_revision": "10000",
                "device": "/sys/devices/platform/scb/fe9c0000.xhci/usb1/1-1/1-1.4",
                "drivers": [
                  "qmi_wwan",
                  "option"
                ],
                "plugin": "simtech",
                "primary_port": "cdc-wdm0",
                "ports": [
                  {
                    "name": "cdc-wdm0",
                    "type": "qmi"
                  },
                  {
                    "name": "ttyUSB0",
                    "type": "ignored"
                  },
                  {
                    "name": "ttyUSB1",
                    "type": "gps"
                  },
                  {
                    "name": "ttyUSB2",
                    "type": "at"
                  },
                  {
                    "name": "ttyUSB3",
                    "type": "at"
                  },
                  {
                    "name": "ttyUSB4",
                    "type": "audio"
                  },
                  {
                    "name": "wwan0",
                    "type": "net"
                  }
                ],
                "state": "failed",
                "power_state": "on",
                "access_technologies": [],
                "signal_quality": {
                  "recent": "yes",
                  "value": "0"
                },
                "current_capabilities": [
                  "gsm-umts, lte"
                ],
                "supported_capabilities": [
                  "gsm-umts, lte"
                ],
                "operator_code": "--",
                "operator_name": "--",
                "registration_state": "--",
                "packet_service_state": "--",
                "sim_path": null
              }
            ],
            "network_interfaces": [
              {
                "interface": "wwan0",
                "available": true,
                "status": "down",
                "operstate": "down",
                "admin_up": false,
                "carrier": null,
                "mtu": 1500,
                "type": 65534,
                "link_kind": null,
                "mac_address": null,
                "ipv4": [],
                "ipv6": [],
                "network_manager": null
              }
            ]
          },
          "eth0": {
            "interface": "eth0",
            "available": true,
            "status": "connected",
            "operstate": "up",
            "admin_up": true,
            "carrier": true,
            "mtu": 1500,
            "type": 1,
            "link_kind": null,
            "mac_address": "2c:cf:67:fd:60:3f",
            "ipv4": [
              {
                "address": "172.16.20.57",
                "prefixlen": 24,
                "scope": "global",
                "dynamic": true
              }
            ],
            "ipv6": [
              {
                "address": "fe80::7fc1:f65f:5729:d234",
                "prefixlen": 64,
                "scope": "link",
                "dynamic": false
              }
            ],
            "network_manager": {
              "device": "eth0",
              "type": "ethernet",
              "state": "connected",
              "connection": "wired-ip-dynamic"
            }
          },
          "eth1": {
            "interface": "eth1",
            "available": true,
            "status": "unavailable",
            "operstate": "down",
            "admin_up": true,
            "carrier": false,
            "mtu": 1500,
            "type": 1,
            "link_kind": null,
            "mac_address": "2c:cf:67:fd:60:41",
            "ipv4": [],
            "ipv6": [],
            "network_manager": {
              "device": "eth1",
              "type": "ethernet",
              "state": "unavailable",
              "connection": null
            }
          },
          "tunnel": {
            "available": false,
            "interfaces": []
          }
        }
      }
    }
  }
}
Field Type Description
id string/number Request/response identifier used to correlate therequest with the response.
origin string Origin of the message. In the response, this is normallythe SystemHealth actor name.
task.action string Executed action. For this feature, the value is list_connectivity_specs.
task.taskResult.connectivity.sources.sysfs string Linux sysfs path used to discover network interfaces, usually/sys/class/net.
task.taskResult.connectivity.sources.ip_link.available boolean Indicates whether the ip command was available andexecuted successfully.
task.taskResult.connectivity.sources.ip_link.command string Command used to retrieve detailed link information,for example ip -j -d link show.
task.taskResult.connectivity.sources.ip_link.error string/null Error returned by the ip command, or null if no erroroccurred.
task.taskResult.connectivity.sources.network_manager.available boolean Indicates whether NetworkManager / nmcli was available and executed successfully.
task.taskResult.connectivity.sources.network_manager.command string Command used to retrieve NetworkManager device status.
task.taskResult.connectivity.sources.network_manager.error string/null Error returned by nmcli, or null if no error occurred.
task.taskResult.connectivity.interfaces.wifi.available boolean Indicates whether at least one Wi-Fi interface was found.
task.taskResult.connectivity.interfaces.wifi.interfaces[ ] array List of detected Wi-Fi interfaces, usually including wlan0 when Wi-Fi exists.
wifi.interfaces[ ].interface string Linux interface name, for example wlan0.
wifi.interfaces[ ].available boolean Indicates whether the Wi-Fi interface exists in the system.
wifi.interfaces[ ].status string Normalized interface status, for example connected, down, unavailable, no_carrier, or not_available.
wifi.interfaces[ ].operstate string / null Operational state reported by Linux, for example up, down, or unknown.
wifi.interfaces[ ].admin_up boolean / null Indicates whether the interface is administratively enabled.
wifi.interfaces[ ].carrier boolean / null Indicates whether carrier/link is detected.
wifi.interfaces[ ].mtu number / null Maximum Transmission Unit of the interface.
wifi.interfaces[ ].type number / null Linux interface type.
wifi.interfaces[ ].link_kind string / null Special link type, used mainly for virtual/tunnel interfaces. Usually null for normal Wi-Fi.
wifi.interfaces[ ].mac_address string / null MAC address of the Wi-Fi interface.
wifi.interfaces[ ].ipv4[ ] array List of IPv4 addresses configured on the Wi-Fi interface.
wifi.interfaces[ ].ipv6[ ] array List of IPv6 addresses configured on the Wi-Fi interface.
wifi.interfaces[ ].network_manager.device string NetworkManager device name.
wifi.interfaces[ ].network_manager.type string NetworkManager interface type, usually wifi.
wifi.interfaces[ ].network_manager.state string NetworkManager state, for example connected, disconnected, or unavailable.
wifi.interfaces[ ].network_manager.connection string / null Active NetworkManager profile name, or null if none is active.
wifi.interfaces[ ].wifi.available boolean Indicates whether Wi-Fi details could be queried using iw.
wifi.interfaces[ ].wifi.command string Command used to query Wi-Fi link state, for example iw dev wlan0 link.
wifi.interfaces[ ].wifi.connected boolean / null Indicates whether the Wi-Fi interface is associated with a Wi-Fi network.
wifi.interfaces[ ].wifi.ssid string SSID of the connected Wi-Fi network, when connected.
wifi.interfaces[ ].wifi.bssid string BSSID/MAC address of the connected access point, when connected.
wifi.interfaces[ ].wifi.frequency_mhz number Wi-Fi frequency in MHz, when connected.
wifi.interfaces[ ].wifi.signal_dbm number Wi-Fi signal strength in dBm, when available.
wifi.interfaces[ ].wifi.tx_bitrate string Wi-Fi transmit bitrate, when available.
wifi.interfaces[ ].wifi.rx_bitrate string Wi-Fi receive bitrate, when available.
task.taskResult.connectivity.interfaces.lte_modem.available boolean Indicates whether at least one LTE modem was detected.
task.taskResult.connectivity.interfaces.lte_modem.tool_available boolean Indicates whether mmcli / ModemManager is available.
task.taskResult.connectivity.interfaces.lte_modem.command string Command used to list LTE modems, usually mmcli -L.
task.taskResult.connectivity.interfaces.lte_modem.modems[ ] array List of LTE modems detected by ModemManager.
lte_modem.modems[ ].id string Modem ID in ModemManager, for example 0.
lte_modem.modems[ ].success boolean Indicates whether detailed modem information wasread successfully.
lte_modem.modems[ ].command string Command used to read modem details, for example mmcli -m 0 --output-json.
lte_modem.modems[ ].manufacturer string / null Modem manufacturer.
lte_modem.modems[ ].model string / null Modem model.
lte_modem.modems[ ].revision string / null Modem firmware/software revision.
lte_modem.modems[ ].hardware_revision string / null Modem hardware revision.
lte_modem.modems[ ].device string / null Sysfs/USB path of the modem device.
lte_modem.modems[ ].drivers[ ] array Linux drivers associated with the modem, for example qmi_wwan or option.
lte_modem.modems[ ].plugin string / null ModemManager plugin used to manage the modem.
lte_modem.modems[ ].primary_port string / null Primary modem control port, for example cdc-wdm0.
lte_modem.modems[ ].ports[ ] array List of ports associated with the modem.
lte_modem.modems[ ].ports[ ].name string Port/interface name, for example cdc-wdm0, ttyUSB2, or wwan0.
lte_modem.modems[ ].ports[ ].type string / null Port type, for example qmi, at, gps, audio, net, or ignored.
lte_modem.modems[ ].state string / null General modem state according to ModemManager,for example registered, connected, or failed.
lte_modem.modems[ ].power_state string / null Modem power state, for example on, off, or low.
lte_modem.modems[ ].access_technologies[ ] array Current access technologies in use, for example LTE,UMTS, or GSM.
lte_modem.modems[ ].signal_quality.recent string / null Indicates whether the signal quality value is recent.
lte_modem.modems[ ].signal_quality.value string / number / null Signal quality value reported by the modem.
lte_modem.modems[ ].current_capabilities[ ] array Current modem capabilities.
lte_modem.modems[ ].supported_capabilities[ ] array Capabilities supported by the modem.
lte_modem.modems[ ].operator_code string / null MCC/MNC operator code.
lte_modem.modems[ ].operator_name string / null Operator name.
lte_modem.modems[ ].registration_state string / null Mobile network registration state.
lte_modem.modems[ ].packet_service_state string / null Mobile packet data service state.
lte_modem.modems[ ].sim_path string / null SIM path in ModemManager, when available.
task.taskResult.connectivity.interfaces.lte_modem.network_interfaces[] array List of Linux network interfaces associated with the LTE modem, usually wwan0.
lte_modem.network_interfaces[ ].interface string LTE network interface name, for example wwan0.
lte_modem.network_interfaces[ ].available boolean Indicates whether the LTE network interface exists.
lte_modem.network_interfaces[ ].status string Normalized LTE network interface status.
lte_modem.network_interfaces[ ].operstate string / null Operational state reported by Linux.
lte_modem.network_interfaces[ ].admin_up boolean / null Indicates whether the LTE network interface is administratively enabled.
lte_modem.network_interfaces[ ].carrier boolean / null Indicates whether carrier/link information is availableand active.
lte_modem.network_interfaces[ ].mtu number / null Maximum Transmission Unit of the LTE network interface.
lte_modem.network_interfaces[ ].type number / null Linux interface type.
lte_modem.network_interfaces[ ].link_kind string / null Link kind, when available.
lte_modem.network_interfaces[ ].mac_address string / null MAC address, when available.
lte_modem.network_interfaces[ ].ipv4[ ] array IPv4 addresses configured on the LTE network interface.
lte_modem.network_interfaces[ ].ipv6[ ] array IPv6 addresses configured on the LTE network interface.
lte_modem.network_interfaces[ ].network_manager object / null NetworkManager information for the LTE interface, when available.
task.taskResult.connectivity.interfaces.eth0.interface string Ethernet interface name, eth0.
task.taskResult.connectivity.interfaces.eth0.available boolean Indicates whether eth0 exists.
task.taskResult.connectivity.interfaces.eth0.status string Normalized eth0 status.
task.taskResult.connectivity.interfaces.eth0.operstate string / null Operational state of eth0.
task.taskResult.connectivity.interfaces.eth0.admin_up boolean / null Indicates whether eth0 is administratively enabled.
task.taskResult.connectivity.interfaces.eth0.carrier boolean / null Indicates whether eth0 has physical link.
task.taskResult.connectivity.interfaces.eth0.mtu number / null MTU of eth0.
task.taskResult.connectivity.interfaces.eth0.type number / null Linux interface type of eth0.
task.taskResult.connectivity.interfaces.eth0.link_kind string / null Link kind of eth0, usually null.
task.taskResult.connectivity.interfaces.eth0.mac_address string / null MAC address of eth0.
task.taskResult.connectivity.interfaces.eth0.ipv4[ ] array IPv4 addresses configured on eth0.
task.taskResult.connectivity.interfaces.eth0.ipv6[ ] array IPv6 addresses configured on eth0.
task.taskResult.connectivity.interfaces.eth0.network_manager object / null NetworkManager information for eth0.
task.taskResult.connectivity.interfaces.eth1.interface string Ethernet interface name, eth1.
task.taskResult.connectivity.interfaces.eth1.available boolean Indicates whether eth1 exists.
task.taskResult.connectivity.interfaces.eth1.status string Normalized eth1 status.
task.taskResult.connectivity.interfaces.eth1.operstate string / null Operational state of eth1.
task.taskResult.connectivity.interfaces.eth1.admin_up boolean / null Indicates whether eth1 is administratively enabled.
task.taskResult.connectivity.interfaces.eth1.carrier boolean / null Indicates whether eth1 has physical link.
task.taskResult.connectivity.interfaces.eth1.mtu number / null MTU of eth1.
task.taskResult.connectivity.interfaces.eth1.type number / null Linux interface type of eth1.
task.taskResult.connectivity.interfaces.eth1.link_kind string / null Link kind of eth1, usually null.
task.taskResult.connectivity.interfaces.eth1.mac_address string / null MAC address of eth1.
task.taskResult.connectivity.interfaces.eth1.ipv4[ ] array IPv4 addresses configured on eth1.
task.taskResult.connectivity.interfaces.eth1.ipv6[ ] array IPv6 addresses configured on eth1.
task.taskResult.connectivity.interfaces.eth1.network_manager object / null NetworkManager information for eth1.
task.taskResult.connectivity.interfaces.tunnel.available boolean Indicates whether at least one tunnel interface was detected.
task.taskResult.connectivity.interfaces.tunnel.interfaces[ ] array List of detected tunnel interfaces, for example tun0, tap0, wg0, or tailscale0.
tunnel.interfaces[ ].interface string Tunnel interface name.
tunnel.interfaces[ ].available boolean Indicates whether the tunnel interface exists.
tunnel.interfaces[ ].status string Normalized tunnel interface status.
tunnel.interfaces[ ].operstate string / null Operational state reported by Linux.
tunnel.interfaces[ ].admin_up boolean / null Indicates whether the tunnel interface isadministratively enabled.
tunnel.interfaces[ ].carrier boolean / null Carrier/link information, when available.
tunnel.interfaces[ ].mtu number / null Tunnel interface MTU.
tunnel.interfaces[ ].type number / null Linux interface type.
tunnel.interfaces[ ].link_kind string / null Tunnel link kind, for example tun, tap, or wireguard.
tunnel.interfaces[ ].mac_address string / null MAC address, when available.
tunnel.interfaces[ ].ipv4[ ] array IPv4 addresses configured on the tunnel interface.
tunnel.interfaces[ ].ipv6[ ] array IPv6 addresses configured on the tunnel interface.
tunnel.interfaces[ ].network_manager object / null NetworkManager information for the tunnel interface, when available.
ipv4[ ].address string IPv4 address assigned to the interface.
ipv4[ ].prefixlen number IPv4 network prefix length. Example: 24.
ipv4[ ].scope string IPv4 scope, for example global.
ipv4[ ].dynamic boolean Indicates whether the IPv4 address was dynamically assigned.
ipv6[ ].address string IPv6 address assigned to the interface.
ipv6[ ].prefixlen number IPv6 network prefix length.
ipv6[ ].scope string IPv6 scope, for example link or global.
ipv6[].dynamic boolean Indicates whether the IPv6 address was dynamically assigned.
c) Get hardware info

Req-topic: systemHealth/runtime/in

{
  "id": "<TIMESTAMP>",
  "origin": "Dev",
  "task": {
    "action": "GET_HW_INFO"
  }
}

Reply-topic: systemHealth/runtime/hw/info/out

{
  "id": "<TIMESTAMP>",
  "origin": "system-health",
  "task": {
    "action": "get_hw_info",
    "taskResult": {
      "cpu": {......},
      "ram": {......},
      "emmc": {......},
      "block_devices": {......},
      "filesystems": {......},
      "mmc_sysfs": {......},
      "emmc_extcsd": {......}
    }
  }
}
Section Description
cpu CPU and board model information.
ram RAM total, used, and free memory.
emmc Filtered eMMC device and partition information.
block_devices Complete block device list from lsblk, including eMMC, boot partitions, loop devices, zram, NVMe, USB storage, etc.
filesystems Mounted filesystem usage from df -h.
mmc_sysfs Low-level MMC/eMMC identity fields read from /sys/block/mmcblk*/device.
emmc_extcsd Parsed eMMC EXT_CSD information from mmc extcsd read, including health, revision, RPMB, boot, and partitioning data.
  • CPU

The cpu object describes the detected board and CPU.

{
  "board_model": "Raspberry Pi Compute Module 4 Rev 1.1",
  "cpu": {
    "architecture": "aarch64",
    "op_modes": "32-bit, 64-bit",
    "byte_order": "Little Endian",
    "vendor": "ARM",
    "model_name": "Cortex-A72",
    "model": "3",
    "stepping": "r0p3",
    "cpu_count": 4,
    "online_cpus": "0-3",
    "threads_per_core": 1,
    "cores_per_cluster": 4,
    "clusters": 1,
    "frequency": {
      "scaling_percent": 60.0,
      "min_mhz": 600.0,
      "max_mhz": 1500.0,
      "bogomips": 108.0
    }
  }
}
Field Type Description
board_model string / null Hardware board model read from device-tree.
cpu.architecture string CPU architecture, for example aarch64.
cpu.op_modes string Supported CPU operation modes.
cpu.byte_order string CPU byte order.
cpu.vendor string CPU vendor.
cpu.model_name string CPU model name.
cpu.model string / number CPU model identifier.
cpu.stepping string CPU stepping/revision.
cpu.cpu_count number Number of detected CPU cores.
cpu.online_cpus string Online CPU list.
cpu.threads_per_core number Number of threads per core.
cpu.cores_per_cluster number Number of cores per cluster.
cpu.clusters number Number of CPU clusters.
cpu.frequency.scaling_percent number / null Current CPU frequency scaling percentage.
cpu.frequency.min_mhz number / null Minimum CPU frequency in MHz.
cpu.frequency.max_mhz number / null Maximum CPU frequency in MHz.
cpu.frequency.bogomips number / null BogoMIPS value reported by the system.
  • RAM

The ram object reports system memory usage.

Field Type Description
total string Total system RAM.
used string Currently used RAM.
free string Currently free RAM.
  • EMMC

The emmc object is a filtered eMMC view. It focuses on the main eMMC disk and its partitions.

{
  "devices": [
    {
      "name": "mmcblk0",
      "model": null,
      "serial": "0x121b491e",
      "size": "29.1G",
      "type": "disk",
      "transport": "mmc",
      "filesystem": null,
      "mountpoints": [],
      "partitions": [
        {
          "name": "mmcblk0p1",
          "size": "512M",
          "type": "part",
          "filesystem": "vfat",
          "mountpoints": [
            "/boot/firmware"
          ]
        },
        {
          "name": "mmcblk0p2",
          "size": "28.6G",
          "type": "part",
          "filesystem": "ext4",
          "mountpoints": [
            "/"
          ]
        }
      ]
    }
  ]
}

Device fields

Field Type Description
devices[ ] array List of detected main eMMC devices.
devices[ ].serial string / null eMMC block device name, for example mmcblk0.
devices[ ].size string Device model, when available.
devices[ ].type string Device serial number.
devices[ ].transport string / null Device size.
devices[ ].filesystem string / null Device type, usually disk.
devices[ ].mountpoints array Transport type, usually mmc.
devices[ ].partitions array Filesystem directly on the disk. Usually null when partitions exist.
devices[ ].name string Mountpoints directly associated with the disk.
devices[ ].model string / null Partitions belonging to this eMMC disk.

Partition fields

Field Type Description
name string Partition name, for example mmcblk0p1.
size string Partition size.
type string Partition type, usually part.
filesystem string / null Filesystem type, for example vfat or ext4.
mountpoints array Mountpoints for the partition.
d) block_devices

The block_devices object is the complete storage/device tree returned by lsblk.

{
  "devices": [
    {
      "name": "mmcblk0",
      "model": null,
      "serial": "0x121b491e",
      "size": "29.1G",
      "type": "disk",
      "transport": "mmc",
      "filesystem": null,
      "mountpoints": [],
      "children": [
        {
          "name": "mmcblk0p1",
          "model": null,
          "serial": null,
          "size": "512M",
          "type": "part",
          "transport": "mmc",
          "filesystem": "vfat",
          "mountpoints": [
            "/boot/firmware"
          ],
          "children": []
        }
      ]
    }
  ],
  "stderr": ""
}
Field Type Description
devices array List of block devices.
stderr string Command error output, if any.
devices[index].name string Device name.
devices[index].model string / null Device model.
devices[index].serial string / null Device serial number.
devices[index].size string Device size.
devices[index].type string Device type, for example disk , part , or loop.
devices[index].transport string / null Transport type, for example mmc , nvme , or usb.
devices[index].filesystem string / null Filesystem type, for example ext4 , vfat , or swap.
devices[index].mountpoints array List of mountpoints. Empty if not mounted.
devices[index].children array Child block devices, usually partitions.
e) file_systems

The file_systems object reports mounted filesystem usage, equivalent to df -h.

{
  "filesystems": [
    {
      "source": "/dev/mmcblk0p2",
      "filesystem": "ext4",
      "size": "29G",
      "used": "5.8G",
      "available": "23G",
      "use_percent": "21%",
      "mountpoint": "/",
      "parsed": true
    },
    {
      "source": "/dev/nvme0n1p1",
      "filesystem": "ext4",
      "size": "234G",
      "used": "2.1M",
      "available": "222G",
      "use_percent": "1%",
      "mountpoint": "/mnt/nvme",
      "parsed": true
    }
  ],
  "stderr": ""
}
Field Type Description
filesystems array List of mounted filesystems.
stderr string Command error output, if any.
filesystems[index].source string Filesystem source, for example /dev/mmcblk0p2 , tmpfs , or udev.
filesystems[index].filesystem string Filesystem type, for example ext4 , vfat , tmpfs , or devtmpfs.
filesystems[index].size string Total filesystem size.
filesystems[index].used string Used space.
filesystems[index].available string Available space.
filesystems[index].use_percent string Used percentage.
filesystems[index].mountpoint string Mount location.
filesystems[index].parsed boolean true if the parser successfully parsed this filesystem entry.
f) mmc_sysfs

The mmc_sysfs object exposes low-level MMC/eMMC identity fields read from:

/sys/block/mmcblk*/device/

This is useful for production traceability, device identification and diagnostics.

{
  "source": "/sys/block",
  "fields": [
    "name",
    "cid",
    "csd",
    "date",
    "manfid",
    "oemid",
    "serial"
  ],
  "devices": [
    {
      "device": "mmcblk0",
      "base_path": "/sys/block/mmcblk0/device",
      "available": true,
      "fields": {
        "name": "BJTD4R",
        "cid": "150100424a5444345203121b491e7b00",
        "csd": "d02701320f5903fff6dbffef8e404000",
        "date": "07/2024",
        "manfid": "0x000015",
        "oemid": "0x0100",
        "serial": "0x121b491e"
      }
    }
  ]
}
Field Type Description
source string Base sysfs source path.
fields array List of sysfs fields collected.
devices array List of detected MMC/eMMC devices.
devices[index].device string MMC block device name, for example mmcblk0.
devices[index].base_path string Sysfs path used for this device.
devices[index].available boolean Indicates whether the sysfs path exists.
devices[index].fields.name string / null eMMC product name.
devices[index].fields.cid string / null Card Identification register.
devices[index].fields.csd string / null Card Specific Data register.
devices[index].fields.date string / null Manufacturing date.
devices[index].fields.manfid string / null Manufacturer ID.
devices[index].fields.oemid string / null OEM/application ID.
devices[index].fields.serial string / null eMMC serial number.
e) emmc_extcsd

The emmc_extcsd object contains parsed information from:

mmc extcsd read /dev/mmcblk0

Category Description
revision EXT_CSD and MMC version.
health eMMC lifetime and pre-EOL state.
boot Boot partition/protection configuration.
rpmb Replay Protected Memory Block information.
sector Sector count and capacity information, when available.
partitioning Partitioning and enhanced-area information.

emmc_extcsd.devices[ ].revision

{
  "ext_csd_revision": "1.8",
  "mmc_version": "MMC 5.1"
}
Field Type Description
ext_csd_revision string EXT_CSD revision.
mmc_version string MMC/eMMC standard version.

emmc_extcsd.devices[ ].health

{
  "life_time_estimation_a": {
    "field": {
      "register": "DEVICE_LIFE_TIME_EST_TYP_A",
      "index": null,
      "description": "eMMC Life Time Estimation A",
      "value": "0x01",
      "value_int": 1,
      "value_hex": "0x1"
    },
    "decoded": {
      "state": "normal",
      "used_percent_min": 0,
      "used_percent_max": 10
    }
  },
  "life_time_estimation_b": {
    "field": {
      "register": "DEVICE_LIFE_TIME_EST_TYP_B",
      "index": null,
      "description": "eMMC Life Time Estimation B",
      "value": "0x01",
      "value_int": 1,
      "value_hex": "0x1"
    },
    "decoded": {
      "state": "normal",
      "used_percent_min": 0,
      "used_percent_max": 10
    }
  },
  "pre_eol": {
    "field": {
      "register": "PRE_EOL_INFO",
      "index": null,
      "description": "eMMC Pre EOL information",
      "value": "0x01",
      "value_int": 1,
      "value_hex": "0x1"
    },
    "decoded": {
      "state": "normal"
    }
  }
}
Field Description
life_time_estimation_a Wear estimation for eMMC memory type A.
life_time_estimation_b Wear estimation for eMMC memory type B.
pre_eol Pre-end-of-life state.

Lifetime Decoding

Raw Value Decoded State Meaning
0x00 not_defined Not defined by device.
0x01 normal 0% to 10% estimated lifetime used.
0x02 normal 10% to 20% estimated lifetime used.
0x03 normal 20% to 30% estimated lifetime used.
0x04 normal 30% to 40% estimated lifetime used.
0x05 normal 40% to 50% estimated lifetime used.
0x06 normal 50% to 60% estimated lifetime used
0x07 normal 60% to 70% estimated lifetime used.
0x08 normal 70% to 80% estimated lifetime used.
0x09 normal 80% to 90% estimated lifetime used.
0x0A normal 90% to 100% estimated lifetime used.
0x0B exceeded Estimated maximum lifetime exceeded.

Pre-EOL Decoding

Raw Value Decoded State Meaning
0x00 not_defined Not defined.
0x01 normal Normal condition.
0x02 warning Warning state. Monitor or plan replacement.
0x03 urgent Urgent state. Replacement recommended.

emmc_extcsd.devices[ ].boot

{
  "partition_config": {
    "field": null,
    "decoded": null
  },
  "boot_config_protection": null,
  "boot_bus_conditions": null,
  "boot_write_protection": {
    "register": "BOOT_WP",
    "index": null,
    "description": "Boot Area Write protection",
    "value": "0x00",
    "value_int": 0,
    "value_hex": "0x0"
  },
  "boot_size": {
    "field": null,
    "decoded": null
  }
}
Field Type Description
partition_config object / null Boot partition configuration, if available.
boot_config_protection object / null Boot configuration protection status.
boot_bus_conditions object / null Boot bus width/mode conditions.
boot_write_protection object / null Boot area write protection status.
boot_size object / null Boot partition size, if available.

emmc_extcsd.devices[ ].rpmb

RPMB means Replay Protected Memory Block. It is a protected eMMC area often used for secure storage.

{
  "size": {
    "field": {
      "register": "RPMB_SIZE_MULT",
      "index": null,
      "description": "RPMB Size",
      "value": "0x20",
      "value_int": 32,
      "value_hex": "0x20"
    },
    "decoded": {
      "bytes": 4194304,
      "kb": 4194.3,
      "mb": 4.19,
      "gb": 0.0,
      "kib": 4096.0,
      "mib": 4.0,
      "gib": 0.0
    }
  }
}
Field Type Description
size.field object / null Raw RPMB size register information.
size.decoded.bytes number RPMB size in bytes.
size.decoded.kb number RPMB size in decimal KB.
size.decoded.mb number RPMB size in decimal MB.
size.decoded.gb number RPMB size in decimal GB.
size.decoded.kib number RPMB size in KiB.
size.decoded.mib number RPMB size in MiB.
size.decoded.gib number RPMB size in GiB.

emmc_extcsd.devices[ ].sector

{
  "sector_count": null,
  "sector_size_bytes": 512,
  "user_capacity": null
}
Field Type Description
sector_count object / null Parsed sector count register, if available.
sector_size_bytes number Sector size used for capacity calculation.
user_capacity object / null Calculated user capacity, if sector count is available.

emmc_extcsd.devices[ ].partitioning

{
  "partitioning_support": {
    "register": "PARTITIONING_SUPPORT",
    "index": null,
    "description": "Partitioning Support",
    "value": "0x07",
    "value_int": 7,
    "value_hex": "0x7"
  },
  "partition_setting_completed": {
    "register": "PARTITION_SETTING_COMPLETED",
    "index": null,
    "description": "Partitioning Setting",
    "value": "0x00",
    "value_int": 0,
    "value_hex": "0x0"
  },
  "partition_attribute": {
    "register": "PARTITIONS_ATTRIBUTE",
    "index": null,
    "description": "Partitions attribute",
    "value": "0x00",
    "value_int": 0,
    "value_hex": "0x0"
  },
  "max_enhanced_area_size": {
    "register": "MAX_ENH_SIZE_MULT",
    "index": null,
    "description": "Max Enhanced Area Size",
    "value": "0x000747",
    "value_int": 1863,
    "value_hex": "0x747"
  },
  "enhanced_user_area_start": {
    "register": "ENH_START_ADDR",
    "index": null,
    "description": "Enhanced User Data Start Address",
    "value": "0x00000000",
    "value_int": 0,
    "value_hex": "0x0"
  },
  "enhanced_user_area_size": {
    "register": "ENH_SIZE_MULT",
    "index": null,
    "description": "Enhanced User Data Area Size",
    "value": "0x000000",
    "value_int": 0,
    "value_hex": "0x0"
  }
}
Field Type Description
partitioning_support object / null Supported partitioning features.
partition_setting_completed object / null Indicates whether partition settings were finalized.
user_capacity object / null Partition attribute register.
max_enhanced_area_size object / null Maximum enhanced area size multiplier.
enhanced_user_area_start object / null Enhanced user data area start address.
enhanced_user_area_size object / null Enhanced user data area size.

24.4 TempSensor Actor

24.4.1 App Interfacing

User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credencials.

a) Set temperature sensor configurations

Req-Topic: tempSensor/config/in

ALERT:

  • activate: true(active)/false
  • templow: alert temperature lower limit
  • tempHigh: alert temperature upper limit
{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskParams": {
      "ALERT": {
        "activate": true,
        "tempLow": 0,
        "tempHigh": 80
      }
    }
  }
}

Reply-Topic: tempSensor/config/out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "success": true,
      "ALERT": {
        "activate": true,
        "tempLow": 0,
        "tempHigh": 80
      }
    }
  }
}
b) Read temperature sensor configurations

Req-Topic: tempSensor/config/in

ALERT:

  • activate: true(active)/false

LIMITS:

  • templow: alert temperature lower limit
  • tempHigh: alert temperature upper limit
{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "action": "READ"
  }
}

Reply-Topic: tempSensor/config/out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "success": true,
      "ALERT": {
        "activate": true,
        "tempLow": 0,
        "tempHigh": 80
      }
    }
  }
}
c) Read temperature and alert status
  • unit: Temperature unit of measure
  • alert: true (triggered) or false

Req-Topic: tempSensor/runtime/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "action": "READ"
  }
}

Reply-Topic: tempSensor/runtime/out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "success": true,
      "data": {
        "temperature": <_FLOAT_>,
        "unit": "C",
        "alert": true
      }
    }
  }
}

24.5 TFT Actor

24.5.1 App Interfacing

User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to control and interact with the TFT display, or frontal panel LCD screen. Connecting to the broker for this Area requires no credentials.

24.5.2 TFT Display Actor

  The TFT Actor is responsible for:

  • Rendering static and informative screens on the TFT display
  • Reacting to joystick input (LEFT/ RIGHT/ CENTER/ UP/ DOWN)
  • Managing screen navigation and user confirmation flows
  • Providing feedback to the application via MQTT

The TFT actor maintains an ordered list of screens (carousel).

  • Screens are navigated using the joystick:

- LEFT --> Previous screen

- RIGHT --> Next screen

  • The carousel wraps around:

- LEFT on first screen --> last screen

- RIGHT on last screen --> first screen

b) Screen Types

The TFT actor supports the following screen types:

Image Screen

  • Displays a static JPEG image
  • Default screen shown at boot
  • No user interaction required

Network Information Screen

  • Display a interface with information about the networks of the device
  • Updated on load
  • No user interaction required
c) Joystick Navigation Logic

Carousel Navigation:

Joystick Input Action
LEFT Previous screen
RIGHT Next screen
DOWN Refresh current screen
d) Boot Behavior

At system boot:

  1. TFT actor initializes the display
  2. Last available carousel is loaded
  3. First screen is rendered
  4. Joystick subscriptions are activated
  5. Actor waits for runtime commands
e) Design Notes & Constraints
  • TFT actor does not expose joystick state
  • Joystick actor remains independent
  • TFT actor internally consumes joystick events
  • Carousel state is local to the TFT actor
  • Screen rendering is synchronous; input handling is asynchronous
  • Confirmation screens always require explicit CENTER press
24.5.3 User interaction through MQTT

Enabling interaction with the carousel using the topic tft/runtime/in . Actions available will be public to the user.

Runtime commands

Go to screen

Req-Topic: tft/runtime/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "action": "SET_CAROUSEL",
    "params": {
      "index": 2
    }
  }
}

Reply-Topic: tft/runtime/out

{
  "id": "<TIMESTAMP>",
  "origin": "tft",
  "task": {
    "taskResult": {
      "success": true,
      "index": 2
    }
  }
}

Set TFT Screen Carousel Req-Topic: tft/runtime/in

{
  "id": "TIMESTAMP",
  "origin": "APP",
  "task": {
    "action": "SET_CAROUSEL",
    "params": {
      "startIndex": 0,
      "screens": [
        {
          "type": "image",
          "image": "default.jpg"
        },
        {
          "type": "image",
          "image": "status.jpg"
        },
        {
          "type": "confirm",
          "question": "Do you want to continue?"
        }
      ]
    }
  }
}

Parameters:

Field Description
screens Ordered list of screens
Start lndex Initial active screen (optional, default = 0)

Reply

Reply-Topic: tft/runtime/out

{
  "id": "TIMESTAMP",
  "origin": "tft",
  "task": {
    "taskResult": {
      "success": true,
      "activeIndex": 0,
      "totalScreens": 3
    }
  }
}

24.6 AnalogInputs Actor

24.6.1 App Interfacing

User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credencials.

a) Configurations

  Topic: analogInputs/config/in - Set ADC channels configurations

mode

  • continuous
  • single

type

  • voltage
  • current
{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskParams": {
      "AI1": {
        "mode": "single",
        "type": "voltage"
      },
      "AI2": {
        "mode": "single",
        "type": "voltage"
      },
      "AI3": {
        "mode": "single",
        "type": "current"
      },
      "AI4": {
        "mode": "single",
        "type": "current"
      }
    }
  }
}

Reply-Topic: analogInputs/config/out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "AI1": {
        "success": true
      },
      "AI2": {
        "success": true
      },
      "AI3": {
        "success": true
      },
      "AI4": {
        "success": true
      }
    }
  }
}
b) Runtime Data

Topic: analogInputs/runtime/in.

action:

  • READ
  • PAUSE (only applicable in continuous mode)
  • RESUME (only applicable in continuous mode)
{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskParams": {
      "AI1": {
        "action": "READ"
      },
      "AI2": {
        "action": "READ"
      },
      "AI3": {
        "action": "READ"
      },
      "AI4": {
        "action": "READ"
      }
    }
  }
}

Reply-Topic: analogInputs/runtime/out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "AI1": {
        "success": true,
        "value": <_FLOAT_>
      },
      "AI2": {
        "success": true,
        "value": <_FLOAT_>
      },
      "AI3": {
        "success": true,
        "value": <_FLOAT_>
      },
      "AI4": {
        "success": true,
        "value": <_FLOAT_>
      }
    }
  }
}
24.6.2 Usage Examples

24.7 Analog Outputs Actor

24.7.1 App Interfacing

User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credencials.

a) Set analog outputs signal

Req-Topic: analogOutputs/config/in

Output: current within 0-20 mA

mode: on/off

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskParams": {
      "mode": "on",
      "AO1": {
        "current": <_FLOAT_>
      },
      "AO2": {
        "current": <_FLOAT_>
      }
    }
  }
}

Reply-Topic: analogOutputs/config/out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "mode": "on",
      "AO1": {
        "success": true,
        "current": <_FLOAT_>
      },
      "AO2": {
        "success": true,
        "current": <_FLOAT_>
      }
    }
  }
}
b) Set analog outputs

Req-Topic: analogOutputs/runtime/in

current: current within 0-20 mA

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskParams": {
      "AO1": {
        "action": "SET",
        "current": <_FLOAT_>
      },
      "AO2": {
        "action": "SET",
        "current": <_FLOAT_>
      }
    }
  }
}

Reply-Topic: analoigOutputs/runtime/out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "AO1": {
        "success": true,
        "current": <_FLOAT_>
      },
      "AO2": {
        "success": true,
        "current": <_FLOAT_>
      }
    }
  }
}
c) Read analog outputs settings

Req-Topic: analogOutputs/runtime/in

current: current within 0-20 mA

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskParams": {
      "AO1": {
        "action": "READ"
      },
      "AO2": {
        "action": "READ"
      }
    }
  }
}

Reply-Topic: analogOutputs/runtime/out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "AO1": {
        "success": true,
        "current": <_FLOAT_>
      },
      "AO2": {
        "success": true,
        "current": <_FLOAT_>
      }
    }
  }
}

24.8 Digital Inputs Actor

24.8.1 App Interfacing

User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credentials.

a) Set digital input pin/pins speed fast/slow

The fast speed setting supports edge detection speed up to 100 Hz and the slow speed settings supports up to 10 Hz.

Fast Mode generates a message on every I/O state change, which may result in a high message payload during operation. Fast Mode should therefore only be enabled when strictly required.

Req-Topic: digitalInputs/config/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskParams": {
      "DI1": {
        "speed": "fast"
      },
      "DI2": {
        "speed": "slow"
      },
      "DI3": {
        "speed": "fast"
      },
      "DI4": {
        "speed": "fast"
      }
    }
  }
}

Reply-Topic: digitalInputs/config/out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "DI1": {
        "success": true,
        "speed": "fast"
      },
      "DI2": {
        "success": true,
        "speed": "slow"
      },
      "DI3": {
        "success": true,
        "speed": "fast"
      },
      "DI4": {
        "success": true,
        "speed": "fast"
      }
    }
  }
}
b) Get all digital input pins state

Req-Topic: digitalInputs/runtime/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "action": "READ"
  }
}

Reply-Topic: digitalInputs/runtime/out state: high/low

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "DI1": {
        "success": true,
        "state": "high"
      },
      "DI2": {
        "success": true,
        "state": "low"
      },
      "DI3": {
        "success": true,
        "state": "high"
      },
      "DI4": {
        "success": true,
        "state": "low"
      }
    }
  }
}

24.9 Digital Outputs Actor

24.9.1 App Interfacing

User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this area requires no credencials.

a) Get all digital output pins state

Req-Topic: digitalOutputs/runtime/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "action": "READ"
  }
}

Reply-Topic: digitalOutputs/runtime/out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "DO1": {
        "success": true,
        "state": "low"
      },
      "DO2": {
        "success": true,
        "state": "high"
      },
      "DO3": {
        "success": true,
        "state": "high"
      },
      "DO4": {
        "success": true,
        "state": "low"
      },
      "DO5": {
        "success": true,
        "state": "low"
      },
      "DO6": {
        "success": true,
        "state": "low"
      },
      "DO7": {
        "success": true,
        "state": "low"
      },
      "DO8": {
        "success": true,
        "state": "low"
      }
    }
  }
}
b) Set all digital output pins state

Req-Topic: digitalOutputs/runtime/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskParams": {
      "DO1": {
        "action": "SET",
        "state": "low"
      },
      "DO2": {
        "action": "SET",
        "state": "high"
      },
      "DO3": {
        "action": "SET",
        "state": "high"
      },
      "DO4": {
        "action": "SET",
        "state": "low"
      },
      "DO5": {
        "action": "SET",
        "state": "low"
      },
      "DO6": {
        "action": "SET",
        "state": "low"
      },
      "DO7": {
        "action": "SET",
        "state": "low"
      },
      "DO8": {
        "action": "SET",
        "state": "low"
      }
    }
  }
}

Reply-Topic: digitalOutputs/runtime/out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "D01": {
        "success": true,
        "state": "low"
      },
      "D02": {
        "success": true,
        "state": "high"
      },
      "D03": {
        "success": true,
        "state": "high"
      },
      "D04": {
        "success": true,
        "state": "high"
      },
      "D05": {
        "success": true,
        "state": "high"
      },
      "D06": {
        "success": true,
        "state": "low"
      },
      "D07": {
        "success": true,
        "state": "low"
      },
      "D08": {
        "success": true,
        "state": "low"
      }
    }
  }
}
24.9.2 Notes

If the busi2c-3 is not powered, we will get this:

Topic: digit a lOutputs/runtime/ out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "DO1": {
        "success": false,
        "state": "DO_not_powered"
      },
      "DO2": {
        "success": false,
        "state": "DO_not_powered"
      },
      "DO3": {
        "success": false,
        "state": "DO_not_powered"
      },
      "DO4": {
        "success": false,
        "state": "DO_not_powered"
      },
      "DO5": {
        "success": false,
        "state": "DO_not_powered"
      },
      "DO6": {
        "success": false,
        "state": "DO_not_powered"
      },
      "DO7": {
        "success": false,
        "state": "DO_not_powered"
      },
      "DO8": {
        "success": false,
        "state": "DO_not_powered"
      }
    }
  }
}

24.10 Joystick Actor

24.10.1 App Interfacing

User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credencials.

a) Get all joystick pins state

Req-Topic: joystick/runtime/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "action": "READ"
  }
}

Reply-Topic: joystick//runtime/out state: pressed/released

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "JLEFT": {
        "success": true,
        "state": "pressed"
      },
      "JRIGHT": {
        "success": true,
        "state": "released"
      },
      "JUP": {
        "success": true,
        "state": "released"
      },
      "JDOWN": {
        "success": true,
        "state": "released"
      },
      "JCENTER": {
        "success": true,
        "state": "released"
      }
    }
  }
}

24.11 Buzzer Actor

24.11.1 Overview

The Buzzer Actor is responsible for controlling the onboard buzzer through MQTT commands. It receives runtime commands on an MQTT input topic, validates the requested buzzer operation, drives the buzzerthrough GPIO using libgpiod, and publishes status/final responses on an MQTT output topic.

The actor currently controls GPIO line 25 on /dev/gpiochip0, with ACTIVE_LOW = False. It creates a

GpiodBuzzerDriver instance and routes incoming MQTT actions to runtime handlers.

The supported runtime actions are:

Action Description
BEEP Plays a finite beep sequence, an infinite beep sequence, or a continuous tone
STOP Stops the currently active buzzer playback
24.11.2 MQTT Topics
Topic Direction Description
buzzer/runtime/in Input Receives buzzer commands
buzzer/runtime/out Output Publishes status messages and final command responses

The actor subscribes to buzzer/runtime/in and publishes all status/final replies to buzzer/runtime/out.

24.11.3 Hardware and Datasheet Notes

The buzzer used is the MLT-8530 electro-magnetic SMD buzzer.

According to the datasheet:

Parameter Value
Rated voltage 3.6 Vo-p
Operating voltage 2.5 ~ 4.5 Vo-p
Rated current Max. 95 mA
Rated test frequency 2700 Hz
Duty cycle 50% square wave
Sound output Min. 80 dB at 10 cm
Coil resistance 16 ± 3 Ω
Resonant frequency 2700 Hz
24.11.4 BEEP

The BEEP action supports two modes:

Mode Description
sequence Plays one or more beeps with gaps between them
continuous Plays one continuous tone until STOP is received

If no mode is provided, the default mode is: sequence

All messages should be sent to the topic buzzer/runtime/in

a) Default Datasheet-Aligned Beep
{
"id": <TIMESTAMP>,
"origin": "APP",
"task": {
  "action": "BEEP"
  }
}
b) N Beeps

Play <BEEPS_QUANTITY> beeps at <FREQUENCY> Hz. Each beep lasts <BEEP_DURATION> seconds, with

<GAP_BETWEEN_BEEPS> seconds of silence between beeps.

{
"id": <TIMESTAMP>,
"origin": "APP",
"task": {
   "action": "BEEP",
   "params": {
      "frequency_hz": <FREQUENCY>,
      "duration_s": <BEEP_DURATION>,
      "count": <BEEPS_QUANTITY>,
      "gap_s": <GAP_BETWEEN_BEEPS> 
    }
  }
}

If you want to play repeated beeps forever until a STOP command arrives then you only need to pass the count: 0

c) Continuous Tone

Play one continuous <FREQUENCY> Hz tone until STOP.

{
"id": <TIMESTAMP>,
"origin": "APP",
"task": {
   "action": "BEEP",
   "params": {
      "mode": "continuous",
      "frequency_hz": <FREQUENCY>
    }
  }
}

If frequency_hz is omitted, the handler uses the configured default frequency.

d) Stop Buzzer

If you want to stop the beep sequence, just send this payload to the buzzer/runtime/in

{
"id": <TIMESTAMP>,
"origin": "APP",
"task": {
   "action": "STOP",
  }
}
e) Buzzer payload parameters table
Field Required Type Default Applies to Description
task Yes object - All requests Main task object. Contains the requested action and

optional parameters.

task.action Yes string - All requests Action to execute. Supported values: "BEEP" and

"STOP".

task.params No object {} BEEP Optional parameters for configuring the buzzer

behavior. Not needed for STOP.

task.params.mode No string "sequence" BEEP Playback mode. Supported values: "sequence" and

"continuous".

task.params.frequency_hz No number 2700.0 BEEP Buzzer frequency in Hz. Recommended/default value

is 2700 Hz , matching the buzzer resonant frequency.

task.params.duration_s No number 0.2 BEEP with

mode="sequence"

Duration of each beep, in seconds.
task.params.count No integer 1 BEEP with

mode="sequence"

Number of beeps to play. 0 means repeat forever

until STOP.

task.params.gap_s No number 0.15 BEEP with

mode="sequence"

Silence gap between beeps, in seconds.
task.params.mode ="continuous" No string - BEEP Plays one continuous tone until STOP . In this mode,

duration_s , count , and gap_s are ignored.

24.11.5 Buzzer - diagram
24.11.6 Buzzer Command timing charts - Examples

The following charts represent the command-level buzzer state over time.

They do not show the internal 2700 Hz switching frequency.

Instead, they show when the buzzer is logically:

State Meaning
1 Buzzer active / sound ON
0 Buzzer inactive / silence
a) Default BEEP command
{
"id": <TIMESTAMP>,
"origin": "APP",
"task": {
   "action": "BEEP",
  }
}

Default values used:

Parameter Value
duration_s 0.2 s
count 1
gap_s 0.15 s

Buzzer State

duration_s = 0.2 s

count = 1

b) BEEP Sequence - 5 beeps
{
"id": 1779789836000,
"origin": "APP",
"task": {
    "action": "BEEP",
    "params": {
      "duration_s": 1,
      "count": 5,
      "gap_s": <GAP_BETWEEN_BEEPS>
  } 
 }
}

Buzzer State



duration_s = 1.0s

gap_s = 0.5s

count = 5

c) Infinite BEEP Sequence

This happens when: "count": 0

{
"id": 1779789836000,
"origin": "APP",
"task": {
    "action": "BEEP",
    "params": {
       "duration_s": 1,
       "count": 0,
       "gap_s": 0.5
  }
 }
}

Buzzer State

duration_s = 1.0 gap_s = 0.5

count = 0

d) Continuous BEEP

In continuous mode, the buzzer remains ON until a STOP command is received.

{
"id": 1779789836000,
"origin": "APP",
"task": {
    "action": "BEEP",
    "params": {
       "mode": "continuous",
  }
 }
}

Buzzer State

mode = continuous

e) STOP

The STOP command immediately forces the buzzer to OFF.

Buzzer State

After STOP, the buzzer is forced to OFF.

25. Included Software Stack

26. Hardware Libraries

[IMAGE PLACEHOLDER]

PA Name Requirements
PA000000074 SENSBLUE MONARCH Gateway
Name Firmware v. Requirements
PA000000065 SENSBLUE RS-485 Dissolved Oxygen Probe AT-SB-PROBE-DO-P-C1, w/ 15m cable w/connector
PA000000085 SENSBLUE RS-485 Dissolved Oxygen Probe AT-SB-PROBE-DO-T-C1, w/ 15m cable w/connector 10.70
PA000000091 SENSBLUE RS-485 Dissolved CO2 Sensor Probe AT-SB-PROBE-CO2-P-5000-C1, w/ 15m cable w/connector
PA000000086 SENSBLUE RS-485 Low Conductivity Probe AT-SB-PROBE-LC-P-C1, w/ 15m cable w/connector 10.70
PA000000087 SENSBLUE RS-485 Medium Conductivity Probe AT-SB-PROBE-MC-P-C1, w/ 15m cable w/connector 10.70
PA000000068 SENSBLUE RS-485 High Conductivity Probe AT-SB-PROBE-HC-P-C1, w/ 15m cable w/connector 10.70
PA000000089 SENSBLUE RS-485 Salinity/Conductivity/TDS Probe AT-SB-PROBE-S-P-C1, w/ 15m cable w/connector
PA000000067 SENSBLUE RS-485 pH Probe AT-SB-PROBE-pH-P, w/ 15m cable w/conector 10.70
PA000000088 SENSBLUE RS-485 ORP Probe POM AT-SB-PROBE-ORP-P, w/ 15m cable w/conector
PA000000069 SENSBLUE RS-485 Nitrates (NO3) Probe AT-SB-PROBE-NO3-P, w/ 15m cable w/connector 10.70
PA000000090 SENSBLUE RS-485 Ammonia Nitrogen (NH4-N) Sensor Probe AT-SB-PROBE-NH4-P-C1, w/ 15m cable w/connector
PA000000066 SENSBLUE RS-485 Turbidity Probe AT-SB-PROBE-T-P, w/ 15m cable w/connector 10.70
PA000000073 SENSBLUE RS-485 Multiparameter Probe AT-SB-PROBE-MP-P-C1, w/ 15m cable w/connector 10.71

28. Accessories

PA Name Requirements

29. Document History

Version Description Date
SBADATAv0.1 First version of SENSBLUE ATLAS Datasheet 11/03/2026

30. SENSBLUE ATLAS in-the-field

[IMAGE PLACEHOLDER]