meshtastic/website/docs/developers/device/port-numbers.md
2021-04-26 19:45:26 +01:00

4 KiB

id title sidebar_label
portnum Meshtastic port numbers Port numbers

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 do not 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.

Name Number Description
UNKNOWN_APP 0 Deprecated: do not use in new code (formerly called OPAQUE) A message sent from a device outside of the mesh, in a form the mesh does not understand NOTE: This must be 0, because it is documented in IMeshService.aidl to be so
TEXT_MESSAGE_APP 1 A simple UTF-8 text message, which even the little micros in the mesh can understand and show on their screen eventually in some circumstances even signal might send messages in this form (see below) Formerly called CLEAR_TEXT
REMOTE_HARDWARE_APP 2 A message receive acknowledgment, sent in cleartext - allows radio to show user that a message has been read by the recipient, optional Note: this concept has been removed for now. Once READACK is implemented, use the new packet type/port number stuff? @exclude CLEAR_READACK = 2; Reserved for built-in GPIO/example app. See remote_hardware.proto/HardwareMessage for details on the message sent/received to this port number
POSITION_APP 3 The built-in position messaging app. See Position for details on the message sent to this port number. payload is a Position protobuf
NODEINFO_APP 4 The built-in user info app. See User for details on the message sent to this port number. payload is a User protobuf
ROUTING_APP 5 Protocol control packets for mesh protocol use, payload is a Routing protobuf
ADMIN_APP 6 Admin control packets, payload is a AdminMessage protobuf
REPLY_APP 32 Provides a 'ping' service that replies to any packet it receives. Also this serves as a small example plugin.
IP_TUNNEL_APP 33 Used for the python IP tunnel feature
SERIAL_APP 64 Provides a hardware serial interface to send and receive from the Meshtastic network. Connect to the RX/TX pins of a device with 38400 8N1. Packets received from the Meshtastic network is forwarded to the RX pin while sending a packet to TX will go out to the Mesh network. Maximum packet size of 240 bytes. Plugin is disabled by default can be turned on by setting SERIALPLUGIN_ENABLED = 1 in SerialPlugh.cpp. Maintained by Jm Casler (MC Hamster)
STORE_FORWARD_APP 65 STORE_FORWARD_APP (Work in Progress) Maintained by Jm Casler (MC Hamster)
RANGE_TEST_APP 66 STORE_FORWARD_APP (Work in Progress) Maintained by Jm Casler (MC Hamster)
ENVIRONMENTAL_MEASUREMENT_APP 67 Provides a format to send and receive environmental data from the Meshtastic network. Maintained by Charles Crossan (crossan007)
PRIVATE_APP 256 Private applications should use portnums >= 256. To simplify initial development and testing you can use PRIVATE_APP in your code without needing to rebuild protobuf files (via bin/regin_protos.sh)
ATAK_FORWARDER 257 ATAK Forwarder Plugin https://github.com/paulmandal/atak-forwarder
MAX 511 Currently we limit port nums to no higher than this value