Skip to content

Notifications and buzzer profiles ​

Devices MAY surface received messages through haptics, buzzer, screen, or LED. LowMesh separates channel policy from payload type.

Per-channel mute ​

Each configured channel slot (0–15, aligned with lowmesh::nvm::Crypto::channels[] / ChannelPrefs) has:

SettingDescription
muteNotificationsIf true, no user-visible notification for new messages (still MAY log to buffer).
muteBuzzerOnlyIf true, silent on buzzer but allow screen/LED (optional fine control).

These settings are local UI policy stored in device NVM. They do not alter RF behavior.

Buzzer audio profiles ​

To distinguish which channel fired without looking at the screen, each channel binds to a buzzer profile ID (0–15).

Profile record ​

FieldSizeDescription
profileId10–15
patternCount1Number of beep segments
segments4 × NEach segment: onMs (uint16), offMs (uint16)

Example: Configured channel slot 0 → default buzzer profile 0 (single beep); configured channel slot 1 → profile 1 (short-long); configured channel slot 2 → profile 2 (two short pulses). These are local NVM channel slots, not on-air channelHash values — see Channels & security.

Default ​

If buzzerProfileId is not set for a channel, implementations SHOULD use profile 0.

Priority override ​

Payload flag PRIORITY_ALERT MAY force buzzer even when muteBuzzerOnly is set (e.g., SOS). This MUST be user-configurable to avoid abuse.

Emoji and multilingual text ​

Notification title/summary uses the same UTF-8 decoding as Text encoding. Buzzer patterns are not language-dependent.

API exposure ​

See USB & BLE hex API for NOTIFY_POLICY_SET and NOTIFY_POLICY_GET framing examples.

LowMeshOS — always open-source mesh protocol documentation