package meshtastic

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

message AdminMessage

admin.proto:23

This message is handled by the Admin module and is responsible for all settings/channel read/write operations. This message is used to do settings operations to both remote AND local nodes. (Prior to 1.2 these operations were done via special ToRadio operations)

enum AdminMessage.BackupLocation

admin.proto:156

Used in: AdminMessage

enum AdminMessage.ConfigType

admin.proto:34

TODO: REPLACE

Used in: AdminMessage

message AdminMessage.InputEvent

admin.proto:171

Input event message to be sent to the node.

Used in: AdminMessage

enum AdminMessage.ModuleConfigType

admin.proto:89

TODO: REPLACE

Used in: AdminMessage

message AirQualityMetrics

telemetry.proto:246

Air quality metrics

Used in: Telemetry

message BackupPreferences

deviceonly.proto:271

The on-disk backup of the node's preferences

message BluetoothConnectionStatus

connection_status.proto:90

Bluetooth connection status

Used in: DeviceConnectionStatus

message CannedMessageModuleConfig

cannedmessages.proto:14

Canned message module configuration.

message Channel

channel.proto:110

A pair of a channel number, mode and the (sharable) settings for that channel

Used in: AdminMessage, ChannelFile, FromRadio

enum Channel.Role

channel.proto:122

How this channel is being used (or not). Note: this field is an enum to give us options for the future. In particular, someday we might make a 'SCANNING' option. SCANNING channels could have different frequencies and the radio would occasionally check that freq to see if anything is being transmitted. For devices that have multiple physical radios attached, we could keep multiple PRIMARY/SCANNING channels active at once to allow cross band routing as needed. If a device has only a single radio (the common case) only one channel can be PRIMARY at a time (but any number of SECONDARY channels can't be sent received on that common frequency)

Used in: Channel

message ChannelFile

deviceonly.proto:254

The on-disk saved channels

Used in: BackupPreferences

message ChannelSet

apponly.proto:21

This is the most compact possible representation for a set of channels. It includes only one PRIMARY channel (which must be first) and any SECONDARY channels. No DISABLED channels are included. This abstraction is used only on the the 'app side' of the world (ie python, javascript and android etc) to show a group of Channels as a (long) URL

message ChannelSettings

channel.proto:28

This information can be encoded as a QRcode/url so that other users can configure their radio to join the same channel. A note about how channel names are shown to users: channelname-X poundsymbol is a prefix used to indicate this is a channel name (idea from @professr). Where X is a letter from A-Z (base 26) representing a hash of the PSK for this channel - so that if the user changes anything about the channel (which does force a new PSK) this letter will also change. Thus preventing user confusion if two friends try to type in a channel name of "BobsChan" and then can't talk because their PSKs will be different. The PSK is hashed into this letter by "0x41 + [xor all bytes of the psk ] modulo 26" This also allows the option of someday if people have the PSK off (zero), the users COULD type in a channel name and be able to talk. FIXME: Add description of multi-channel support and how primary vs secondary channels are used. FIXME: explain how apps use channels for security. explain how remote settings and remote gpio are managed as an example

Used in: Channel, ChannelSet

message ChunkedPayload

mesh.proto:2361

message ChunkedPayloadResponse

mesh.proto:2393

Responses to a ChunkedPayload request

message ClientNotification

mesh.proto:2004

A notification message from the device to the client To be used for important messages that should to be displayed to the user in the form of push notifications or validation messages when saving invalid configuration.

Used in: FromRadio

enum CompassMode

device_ui.proto:244

Used in: DeviceUIConfig

message Compressed

mesh.proto:2120

Compressed message payload

message Config

config.proto:13

Used in: AdminMessage, FromRadio

message Config.BluetoothConfig

config.proto:1105

Used in: Config, LocalConfig

enum Config.BluetoothConfig.PairingMode

config.proto:1106

Used in: BluetoothConfig

message Config.DeviceConfig

config.proto:17

Configuration

Used in: Config, LocalConfig

enum Config.DeviceConfig.BuzzerMode

config.proto:165

Defines buzzer behavior for audio feedback

Used in: DeviceConfig

enum Config.DeviceConfig.RebroadcastMode

config.proto:125

Defines the device's behavior for how messages are rebroadcast

Used in: DeviceConfig

enum Config.DeviceConfig.Role

config.proto:21

Defines the device's role on the Mesh network

Used in: DeviceConfig, DeviceMetadata, MapReport, User, UserLite

message Config.DisplayConfig

config.proto:600

Display Config

Used in: Config, LocalConfig

enum Config.DisplayConfig.CompassOrientation

config.proto:728

Used in: DisplayConfig

enum Config.DisplayConfig.DeprecatedGpsCoordinateFormat

config.proto:604

Deprecated in 2.7.4: Unused

Used in: DisplayConfig

enum Config.DisplayConfig.DisplayMode

config.proto:692

Used in: DisplayConfig

enum Config.DisplayConfig.DisplayUnits

config.proto:611

Unit display preference

Used in: DisplayConfig

enum Config.DisplayConfig.OledType

config.proto:626

Override OLED outo detect with this if it fails.

Used in: DisplayConfig

message Config.LoRaConfig

config.proto:791

Lora Config

Used in: ChannelSet, Config, LocalConfig

enum Config.LoRaConfig.ModemPreset

config.proto:933

Standard predefined channel settings Note: these mappings must match ModemPreset Choice in the device code.

Used in: LoRaConfig, MapReport

enum Config.LoRaConfig.RegionCode

config.proto:792

Used in: LoRaConfig, MapReport

message Config.NetworkConfig

config.proto:495

Network Config

Used in: Config, LocalConfig

enum Config.NetworkConfig.AddressMode

config.proto:496

Used in: NetworkConfig

message Config.NetworkConfig.IpV4Config

config.proto:508

Used in: NetworkConfig

enum Config.NetworkConfig.ProtocolFlags

config.proto:584

Available flags auxiliary network protocols

message Config.PositionConfig

config.proto:270

Position Config

Used in: Config, LocalConfig

enum Config.PositionConfig.GpsMode

config.proto:340

Used in: PositionConfig

enum Config.PositionConfig.PositionFlags

config.proto:279

Bit field of boolean configuration options, indicating which optional fields to include when assembling POSITION messages. Longitude, latitude, altitude, speed, heading, and DOP are always included (also time if GPS-synced) NOTE: the more fields are included, the larger the message will be - leading to longer airtime and a higher risk of packet loss

message Config.PowerConfig

config.proto:433

Power Config\ See [Power Config](/docs/settings/config/power) for additional power config details.

Used in: Config, LocalConfig

message Config.SecurityConfig

config.proto:1139

Used in: Config, LocalConfig

message Config.SessionkeyConfig

config.proto:1183

Blank config request, strictly for getting the session key

Used in: Config

(message has no fields)

enum Constants

mesh.proto:1512

Shared constants between device and phone

message Contact

atak.proto:208

ATAK Contact <contact endpoint='0.0.0.0:4242:tcp' phone='+12345678' callsign='FALKE'/>

Used in: TAKPacket

enum CriticalErrorCode

mesh.proto:1645

Error codes for critical errors The device might report these fault codes on the screen. If you encounter a fault code, please post on the meshtastic.discourse.group and we'll try to help.

message Data

mesh.proto:1054

(Formerly called SubPacket) The payload portion fo a packet, this is the actual bytes that are sent inside a radio packet (because from/to are broken out by the comms library)

Used in: MeshPacket

message DeviceConnectionStatus

connection_status.proto:11

Used in: AdminMessage

message DeviceMetadata

mesh.proto:2185

Device metadata response

Used in: AdminMessage, FromRadio

message DeviceMetrics

telemetry.proto:14

Key native device metrics such as battery level

Used in: NodeInfo, NodeInfoLite, Telemetry

message DeviceProfile

clientonly.proto:18

This abstraction is used to contain any configuration for provisioning a node on any client. It is useful for importing and exporting configurations.

message DeviceState

deviceonly.proto:181

This message is never sent over the wire, but it is used for serializing DB state to flash in the device code FIXME, since we write this each time we enter deep sleep (and have infinite flash) it would be better to use some sort of append only data structure for the receive queue and use the preferences store for the other stuff

message DeviceUIConfig

device_ui.proto:15

Used in: AdminMessage, Config, FromRadio

enum DeviceUIConfig.GpsCoordinateFormat

device_ui.proto:100

How the GPS coordinates are displayed on the OLED screen.

Used in: DeviceUIConfig

message DuplicatedPublicKey

mesh.proto:2048

Used in: ClientNotification

(message has no fields)

message EnvironmentMetrics

telemetry.proto:44

Weather station or other environmental metrics

Used in: Telemetry

message EthernetConnectionStatus

connection_status.proto:55

Ethernet connection status

Used in: DeviceConnectionStatus

enum ExcludedModules

mesh.proto:2253

Enum for modules excluded from a device's configuration. Each value represents a ModuleConfigType that can be toggled as excluded by setting its corresponding bit in the `excluded_modules` bitmask field.

message FileInfo

mesh.proto:2054

Individual File info for the device

Used in: FromRadio

enum FirmwareEdition

mesh.proto:1725

Enum to indicate to clients whether this firmware is a special firmware build, like an event. The first 16 values are reserved for non-event special firmwares, like the Smart Citizen use case.

Used in: MyNodeInfo

message FromRadio

mesh.proto:1897

Packets from the radio to the phone will appear on the fromRadio characteristic. It will support READ and NOTIFY. When a new packet arrives the device will BLE notify? It will sit in that descriptor until consumed by the phone, at which point the next item in the FIFO will be populated.

message GeoChat

atak.proto:55

ATAK GeoChat message

Used in: TAKPacket

message GeoPoint

device_ui.proto:210

Used in: Map

message Group

atak.proto:76

ATAK Group <__group role='Team Member' name='Cyan'/>

Used in: TAKPacket

message HamParameters

admin.proto:480

Parameters for setting up Meshtastic for ameteur radio usage

Used in: AdminMessage

message HardwareMessage

remote_hardware.proto:22

An example app to show off the module system. This message is used for REMOTE_HARDWARE_APP PortNums. Also provides easy remote access to any GPIO. In the future other remote hardware operations can be added based on user interest (i.e. serial output, spi/i2c input/output). FIXME - currently this feature is turned on by default which is dangerous because no security yet (beyond the channel mechanism). It should be off by default and then protected based on some TBD mechanism (a special channel once multichannel support is included?)

enum HardwareMessage.Type

remote_hardware.proto:26

TODO: REPLACE

Used in: HardwareMessage

enum HardwareModel

mesh.proto:220

Note: these enum names must EXACTLY match the string used in the device bin/build-all.sh script. Because they will be used to find firmware filenames in the android app for OTA updates. To match the old style filenames, _ is converted to -, p is converted to .

Used in: DeviceMetadata, MapReport, User, UserLite

message HealthMetrics

telemetry.proto:451

Health telemetry metrics

Used in: Telemetry

message Heartbeat

mesh.proto:2339

A heartbeat message is sent to the node from the client to keep the connection alive. This is currently only needed to keep serial connections alive, but can be used by any PhoneAPI.

Used in: ToRadio

message HostMetrics

telemetry.proto:471

Linux host metrics

Used in: Telemetry

message InterdeviceMessage

interdevice.proto:38

message KeyVerification

mesh.proto:1114

The actual over-the-mesh message doing KeyVerification

message KeyVerificationAdmin

admin.proto:539

This message is used by a client to initiate or complete a key verification

Used in: AdminMessage

enum KeyVerificationAdmin.MessageType

admin.proto:543

Three stages of this request.

Used in: KeyVerificationAdmin

message KeyVerificationFinal

mesh.proto:2042

Used in: ClientNotification

message KeyVerificationNumberInform

mesh.proto:2033

Used in: ClientNotification

message KeyVerificationNumberRequest

mesh.proto:2038

Used in: ClientNotification

enum Language

device_ui.proto:279

Localization

Used in: DeviceUIConfig

message LocalConfig

localonly.proto:19

Used in: BackupPreferences, DeviceProfile

message LocalModuleConfig

localonly.proto:68

Used in: BackupPreferences, DeviceProfile

message LocalStats

telemetry.proto:376

Local device mesh statistics

Used in: Telemetry

message LogRecord

mesh.proto:1815

Debug output from the device. To minimize the size of records inside the device code, if a time/source/level is not set on the message it is assumed to be a continuation of the previously sent message. This allows the device code to use fixed maxlen 64 byte strings for messages, and then extend as needed by emitting multiple records.

Used in: FromRadio

enum LogRecord.Level

mesh.proto:1819

Log levels, chosen to match python logging conventions.

Used in: ClientNotification, LogRecord

message LowEntropyKey

mesh.proto:2049

Used in: ClientNotification

(message has no fields)

message Map

device_ui.proto:227

Used in: DeviceUIConfig

message MapReport

mqtt.proto:39

Information about a node intended to be reported unencrypted to a map using MQTT.

enum MemberRole

atak.proto:154

Role of the group member

Used in: Group

message MeshPacket

mesh.proto:1213

A packet envelope sent/received over the mesh only payload_variant is sent in the payload portion of the LORA packet. The other fields are either not sent at all, or sent in the special 16 byte LORA header.

Used in: DeviceState, FromRadio, ServiceEnvelope, ToRadio

enum MeshPacket.Delayed

mesh.proto:1293

Identify if this is a delayed packet

Used in: MeshPacket

enum MeshPacket.Priority

mesh.proto:1234

The priority of this message for sending. Higher priorities are sent first (when managing the transmit queue). This field is never sent over the air, it is only used internally inside of a local device node. API clients (either on the local node or connected directly to the node) can set this parameter if necessary. (values must be <= 127 to keep protobuf field to one byte in size. Detailed background on this field: I noticed a funny side effect of lora being so slow: Usually when making a protocol there isn’t much need to use message priority to change the order of transmission (because interfaces are fairly fast). But for lora where packets can take a few seconds each, it is very important to make sure that critical packets are sent ASAP. In the case of meshtastic that means we want to send protocol acks as soon as possible (to prevent unneeded retransmissions), we want routing messages to be sent next, then messages marked as reliable and finally 'background' packets like periodic position updates. So I bit the bullet and implemented a new (internal - not sent over the air) field in MeshPacket called 'priority'. And the transmission queue in the router object is now a priority queue.

Used in: MeshPacket

enum MeshPacket.TransportMechanism

mesh.proto:1313

Enum to identify which transport mechanism this packet arrived over

Used in: MeshPacket

enum MessageType

interdevice.proto:13

Used in: SensorData

message ModuleConfig

module_config.proto:14

Module Config

Used in: AdminMessage, FromRadio

message ModuleConfig.AmbientLightingConfig

module_config.proto:737

Ambient Lighting Module - Settings for control of onboard LEDs to allow users to adjust the brightness levels and respective color levels. Initially created for the RAK14001 RGB LED module.

Used in: LocalModuleConfig, ModuleConfig

message ModuleConfig.AudioConfig

module_config.proto:219

Audio Config for codec2 voice

Used in: LocalModuleConfig, ModuleConfig

enum ModuleConfig.AudioConfig.Audio_Baud

module_config.proto:223

Baudrate for codec2 voice

Used in: AudioConfig

message ModuleConfig.CannedMessageConfig

module_config.proto:629

Canned Messages Module Config

Used in: LocalModuleConfig, ModuleConfig

enum ModuleConfig.CannedMessageConfig.InputEventChar

module_config.proto:633

TODO: REPLACE

Used in: CannedMessageConfig

message ModuleConfig.DetectionSensorConfig

module_config.proto:150

Detection Sensor Module Config

Used in: LocalModuleConfig, ModuleConfig

enum ModuleConfig.DetectionSensorConfig.TriggerType

module_config.proto:151

Used in: DetectionSensorConfig

message ModuleConfig.ExternalNotificationConfig

module_config.proto:391

External Notifications Config

Used in: LocalModuleConfig, ModuleConfig

message ModuleConfig.MQTTConfig

module_config.proto:18

MQTT Client Config

Used in: LocalModuleConfig, ModuleConfig

message ModuleConfig.MapReportSettings

module_config.proto:88

Settings for reporting unencrypted information about our node to a map via MQTT

Used in: MQTTConfig

message ModuleConfig.NeighborInfoConfig

module_config.proto:128

NeighborInfoModule Config

Used in: LocalModuleConfig, ModuleConfig

message ModuleConfig.PaxcounterConfig

module_config.proto:274

Config for the Paxcounter Module

Used in: LocalModuleConfig, ModuleConfig

message ModuleConfig.RangeTestConfig

module_config.proto:517

Preferences for the RangeTestModule

Used in: LocalModuleConfig, ModuleConfig

message ModuleConfig.RemoteHardwareConfig

module_config.proto:108

RemoteHardwareModule Config

Used in: LocalModuleConfig, ModuleConfig

message ModuleConfig.SerialConfig

module_config.proto:301

Serial Config

Used in: LocalModuleConfig, ModuleConfig

enum ModuleConfig.SerialConfig.Serial_Baud

module_config.proto:305

TODO: REPLACE

Used in: SerialConfig

enum ModuleConfig.SerialConfig.Serial_Mode

module_config.proto:327

TODO: REPLACE

Used in: SerialConfig

message ModuleConfig.StoreForwardConfig

module_config.proto:482

Store and Forward Module Config

Used in: LocalModuleConfig, ModuleConfig

message ModuleConfig.TelemetryConfig

module_config.proto:544

Configuration for both device and environment metrics

Used in: LocalModuleConfig, ModuleConfig

message ModuleSettings

channel.proto:94

This message is specifically for modules to store per-channel configuration data.

Used in: ChannelSettings

message MqttClientProxyMessage

mesh.proto:1181

This message will be proxied over the PhoneAPI for the client to deliver to the MQTT server

Used in: FromRadio, ToRadio

message MyNodeInfo

mesh.proto:1767

Unique local debugging info for this node Note: we don't include position or the user info, because that will come in the Sent to the phone in response to WantNodes.

Used in: DeviceState, FromRadio

message Nau7802Config

telemetry.proto:803

NAU7802 Telemetry configuration, for saving to flash

message Neighbor

mesh.proto:2158

A single edge in the mesh

Used in: NeighborInfo

message NeighborInfo

mesh.proto:2135

Full info on edges for a single node

message NetworkConnectionStatus

connection_status.proto:65

Ethernet or WiFi connection status

Used in: EthernetConnectionStatus, WifiConnectionStatus

message NodeDatabase

deviceonly.proto:237

message NodeFilter

device_ui.proto:146

Used in: DeviceUIConfig

message NodeHighlight

device_ui.proto:183

Used in: DeviceUIConfig

message NodeInfo

mesh.proto:1545

The bluetooth to device link: Old BTLE protocol docs from TODO, merge in above and make real docs... use protocol buffers, and NanoPB messages from device to phone: POSITION_UPDATE (..., time) TEXT_RECEIVED(from, text, time) OPAQUE_RECEIVED(from, payload, time) (for signal messages or other applications) messages from phone to device: SET_MYID(id, human readable long, human readable short) (send down the unique ID string used for this node, a human readable string shown for that id, and a very short human readable string suitable for oled screen) SEND_OPAQUE(dest, payload) (for signal messages or other applications) SEND_TEXT(dest, text) Get all nodes() (returns list of nodes, with full info, last time seen, loc, battery level etc) SET_CONFIG (switches device to a new set of radio params and preshared key, drops all existing nodes, force our node to rejoin this new group) Full information about a node on the mesh

Used in: FromRadio

message NodeInfoLite

deviceonly.proto:103

Used in: NodeDatabase

message NodeRemoteHardwarePin

mesh.proto:2349

RemoteHardwarePins associated with a node

Used in: DeviceState, NodeRemoteHardwarePinsResponse

message NodeRemoteHardwarePinsResponse

admin.proto:507

Response envelope for node_remote_hardware_pins

Used in: AdminMessage

message PLI

atak.proto:236

Position Location Information from ATAK

Used in: TAKPacket

message Paxcount

paxcount.proto:14

TODO: REPLACE

enum PortNum

portnums.proto:25

For any new 'apps' that run on the device or via sister apps on phones/PCs they should pick and use a unique 'portnum' for their application. If you are making a new app using meshtastic, please send in a pull request to add your 'portnum' to this master table. PortNums should be assigned in the following range: 0-63 Core Meshtastic use, do not use for third party apps 64-127 Registered 3rd party apps, send in a pull request that adds a new entry to portnums.proto to register your application 256-511 Use one of these portnums for your private applications that you don't want to register publically All other values are reserved. Note: This was formerly a Type enum named 'typ' with the same id # We have change to this 'portnum' based scheme for specifying app handlers for particular payloads. This change is backwards compatible by treating the legacy OPAQUE/CLEAR_TEXT values identically.

Used in: Compressed, Data

message Position

mesh.proto:22

A GPS Position

Used in: AdminMessage, DeviceProfile, NodeInfo

enum Position.AltSource

mesh.proto:81

How the altitude was acquired: manual, GPS int/ext, etc Default: same as location_source if present

Used in: Position

enum Position.LocSource

mesh.proto:50

How the location was acquired: manual, onboard GPS, external (EUD) GPS

Used in: Position, PositionLite

message PositionLite

deviceonly.proto:22

Position with static location information only for NodeDBLite

Used in: NodeInfoLite

message PowerMetrics

telemetry.proto:161

Power Metrics (voltage / current / etc)

Used in: Telemetry

message PowerMon

powermon.proto:14

Note: There are no 'PowerMon' messages normally in use (PowerMons are sent only as structured logs - slogs). But we wrap our State enum in this message to effectively nest a namespace (without our linter yelling at us)

(message has no fields)

enum PowerMon.State

powermon.proto:18

Any significant power changing event in meshtastic should be tagged with a powermon state transition. If you are making new meshtastic features feel free to add new entries at the end of this definition.

message PowerStressMessage

powermon.proto:57

PowerStress testing support via the C++ PowerStress module

enum PowerStressMessage.Opcode

powermon.proto:63

What operation would we like the UUT to perform. note: senders should probably set want_response in their request packets, so that they can know when the state machine has started processing their request

Used in: PowerStressMessage

message QueueStatus

mesh.proto:1877

Used in: FromRadio

message RTTTLConfig

rtttl.proto:14

Canned message module configuration.

message RemoteHardwarePin

module_config.proto:838

A GPIO pin definition for remote hardware module

Used in: ModuleConfig.RemoteHardwareConfig, NodeRemoteHardwarePin

enum RemoteHardwarePinType

module_config.proto:855

Used in: RemoteHardwarePin

message RouteDiscovery

mesh.proto:910

A message used in a traceroute

Used in: Routing

message Routing

mesh.proto:935

A Routing control Data packet handled by the routing module

enum Routing.Error

mesh.proto:940

A failure in delivering a message (usually used for routing control messages, but might be provided in addition to ack.fail_id to provide details on the type of failure).

Used in: Routing

message SensorData

interdevice.proto:28

Used in: InterdeviceMessage

message SerialConnectionStatus

connection_status.proto:110

Serial connection status

Used in: DeviceConnectionStatus

message ServiceEnvelope

mqtt.proto:17

This message wraps a MeshPacket with extra metadata about the sender and how it arrived.

message SharedContact

admin.proto:514

Used in: AdminMessage

message Status

atak.proto:197

ATAK EUD Status <status battery='100' />

Used in: TAKPacket

message StoreAndForward

storeforward.proto:14

TODO: REPLACE

message StoreAndForward.Heartbeat

storeforward.proto:177

TODO: REPLACE

Used in: StoreAndForward

message StoreAndForward.History

storeforward.proto:156

TODO: REPLACE

Used in: StoreAndForward

enum StoreAndForward.RequestResponse

storeforward.proto:19

001 - 063 = From Router 064 - 127 = From Client

Used in: StoreAndForward

message StoreAndForward.Statistics

storeforward.proto:106

TODO: REPLACE

Used in: StoreAndForward

message TAKPacket

atak.proto:14

Packets for the official ATAK Plugin

enum Team

atak.proto:88

Used in: Group

message Telemetry

telemetry.proto:522

Types of Measurements the telemetry module is equipped to handle

enum TelemetrySensorType

telemetry.proto:569

Supported I2C Sensors for telemetry in Meshtastic

enum Theme

device_ui.proto:261

Used in: DeviceUIConfig

message ToRadio

mesh.proto:2070

Packets/commands to the radio will be written (reliably) to the toRadio characteristic. Once the write completes the phone can assume it is handled.

message User

mesh.proto:848

Broadcast when a newly powered mesh node wants to find a node num it can use Sent from the phone over bluetooth to set the user id for the owner of this node. Also sent from nodes to each other when a new node signs on (so all clients can have this info) The algorithm is as follows: when a node starts up, it broadcasts their user and the normal flow is for all other nodes to reply with their User as well (so the new node can build its nodedb) If a node ever receives a User (not just the first broadcast) message where the sender node number equals our node number, that indicates a collision has occurred and the following steps should happen: If the receiving node (that was already in the mesh)'s macaddr is LOWER than the new User who just tried to sign in: it gets to keep its nodenum. We send a broadcast message of OUR User (we use a broadcast so that the other node can receive our message, considering we have the same id - it also serves to let observers correct their nodedb) - this case is rare so it should be okay. If any node receives a User where the macaddr is GTE than their local macaddr, they have been vetoed and should pick a new random nodenum (filtering against whatever it knows about the nodedb) and rebroadcast their User. A few nodenums are reserved and will never be requested: 0xff - broadcast 0 through 3 - for future use

Used in: AdminMessage, BackupPreferences, DeviceState, NodeInfo, SharedContact

message UserLite

deviceonly.proto:54

Used in: NodeInfoLite

message Waypoint

mesh.proto:1135

Waypoint message, used to share arbitrary locations across the mesh

message WifiConnectionStatus

connection_status.proto:35

WiFi connection status

Used in: DeviceConnectionStatus

message XModem

xmodem.proto:11

Used in: FromRadio, ToRadio

enum XModem.Control

xmodem.proto:12

Used in: XModem

message resend_chunks

mesh.proto:2386

Wrapper message for broken repeated oneof support

Used in: ChunkedPayloadResponse