Skip to content
Joe Cupano edited this page Jul 16, 2022 · 4 revisions

XARPS is a fork of the excellent experimental LARPS protocol.

XARPS stands for Extensible Amateur Radio Payload Specification. It is focused on packet payload format standards on top of data link layer protocols such as AX.25, FSK and LoRa.

Charter

Specification

All Python files are experimental implementations of XARPS

Charter

XARPS expands on existing packet radio systems and initially targets the following services.

These include:

Weather and station positioning
Messaging
Bulletin boards

Operating Theory

XARPS is physical and data-link neutral focusing only on payload standards that include support of source/destination. While initially focused on single (broadcast) domain use, XARPS can be expanded to interact with other domains via XARPS aware gateways. XARPS Gateways

XARPS Gateways will be bastion hosts that are multi-protocol capable.

Specification

XARPS stands for eXtensible Amateur Radio Payload Specification. Referencing the Open Systems Interconnection model (OSI model), XARPS is an application layer protocol with link-level awareness for use by RF systems providing application level connectivity to other networked systems. ASCII (UTF-8) is used throughout the specification

Fields

Src Dest Options Type Data
9 9 1 1 21-255
  • Source and Destination

Each contain callsign/handle with SSID. Field size supports IARU decision for 7 character callsigns. Field are right justified and padded Example source and destination data include W1FCC50, PURPLE53. BEACON99 is a reserved word in the destination field for broadcast messages. You can change the SSID to another number for use in multicast

BEACON-XX Target
99 ALL stations - Broadcast
89 ALL gateways - Multicast
79 ALL RAN - Multicast
69 ALL Local RAN - Multicast
  • Options
Value Option Description
0-5 Reserved
6 ACK Response Response to ACK Request
7 ACK Request Send ACK
  • Data Type
Value payload Type Description
0x00 Reserved Reserved
0x01 Battery Battery voltage update
0x02 Time Current time payload
0x03 Position Update GPS position update
0x04 WX Update Emergency Alert Message
0x05 Telemetry Telemetry
0x06 Binary File Transfer Binary File transfer
0x07 Text Message Text message between stations
0x08 APRS APRS Encapsulated
0x09 Last Seen Stations Digest of recent stations
0x0A - 0x23 RESERVED
0x0C Text File Trasnfer Text File transfer
0x50 HTTP HTTP
0x71 Ident Ident

** 0x00 - Reserved

Not used

** 0x01 - Battery

This payload type provides battery voltage in ASCII numeric format, which may contain a floating point.

** 0x02 - Time

This payload contains the time in epoch UTC

** 0x03 - Position Update

This message is used to provide position updates, such as GPS locations of any station.

[timestamp],[object-type],[latitude],[longitude],[altitude],[altitude-units]

Station types:

Value Object Type
0x00 Static Land Station
0x01 handheld
0x02 pedestrian
0x03 Civilian Vehicle
0x04 Commercial Vehicle
0x05 Police Vehicle
0x06 Medical Vehicle
0x07 Fire Vehicle
0x08 Federal Vehicle
0x09 Command Vehicle
0x0A Marina
0x0B Float
0x0C Swimmer
0x0D Civilian Boat
0x0E Commercial Boat
0x0F Police Boat
0x10 Fire Boat
0x11 Coast Guard Boat
0x12 Command Boat
0x13 RESERVED
0x14 Perimeter Marker
0x15 UAV
0x16 Experimental Manned
0x17 Civilian Helicopter
0x18 Civilian Fixed Wing
0x19 Commercial Fixed Wing
0x1A Police Helicopter
0x1B Medical Helicopter

** 0x04 - WX Update

This message is used to provide position updates, such as GPS locations of any station.

[timestamp],[latitude],[longitude],[temperature],[temp-units],[humidity],[barometer],[wind-direction],[wind-speed],[wind-speed-units]

** 0x05 - Telemetry

** 0x06 - Binary Data

** 0x07 - Text Message

** 0x08 - APRS

** 0x09 - Last Seen Stations

** 0x50 - HTTP

** 0x71 - Ident

Tools

Experimental implementations of XARPS using python can be found in the development directory.

Clone this wiki locally