This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[Automatic Packet Reporting System] The APRS TX App sends messages on the selected frequency. The App allows the configuration of the APRS stream. The App is marked as Beta, but it does send decodable messages in AFSK in the correct AX.25 format.
Fields
Source: Your own licensed amateur radio callsign (e.g. W1ABC). The field accepts up to 6 alphanumeric characters. Move the cursor to the right side of the label using the arrow buttons and select each character. Then move to "SSID:" and select a number from 0–15. The most common SSID for a PortaPack is 0.
Dest.: This is not the callsign of a receiving station. In APRS, this field must contain a valid APRS destination address. The recommended value for general use is APRS (which falls under the generic AP* wildcard accepted by all APRS decoders). For experimental or custom software, APZNNN (where NNN is a version number) is the correct choice per the APRS Protocol Reference. Entering a random callsign or leaving this field empty will cause APRS decoders (such as OpenWebRX, Direwolf, or aprs.fi) to ignore or incorrectly parse the packet. Set SSID to 0.
Path: The digipeater path tells the network how far to relay your packet.
- WIDE1-1 — single hop, recommended for most mobile and portable use
- WIDE1-1,WIDE2-1 — two hops, wider area coverage
- Leave empty for direct RF only (no digipeating)
Info field: The message content. Select the "Set" button to enter text (maximum 30 characters). Important: The very first character of the Info field must be a valid APRS Data Type Identifier (DTI). Without it, APRS decoders cannot determine the packet type and will not display the content correctly.
Note: The ! DTI is an exception — it may appear anywhere up to the 40th character position. All other DTIs must be the first character.
APRS Data Type Identifiers
The first character of the Info field defines what kind of data follows. Source: APRS Protocol Reference v1.0, Chapter 5.
| Character | Type | Messaging | Example Info field |
|---|---|---|---|
| > | Status — simplest, no coordinates needed | No | >Hello from PortaPack |
| ! | Position without timestamp | No | !4071.27N/07400.59W-Hello from NYC |
| = | Position without timestamp | Yes | =4071.27N/07400.59W-Hello from NYC |
| / | Position with timestamp | No | /181654z4071.27N/07400.59W-Hello |
| @ | Position with timestamp | Yes | @181654z4071.27N/07400.59W-Hello |
| : | Message to a specific station | Yes | :W1XYZ :Hello there |
| ; | Object report | No | ;OBJECT *181654z4071.27N/07400.59W/ |
| _ | Weather report (no position) | No | _10092345c000s000g000t068 |
| T | Telemetry | No | T#001,100,200,300,400,500,00000000 |
"Messaging" means the packet signals that the station is capable of receiving and acknowledging APRS messages. Use = or @ if you want two-way messaging; use ! or / for position-only beacons.
For beginners, start with > (status). It requires no coordinates, no timestamp, and is decoded by all APRS software.
The ?GPS? placeholder in the Info field is automatically replaced by the current GPS coordinates if a GPS module is active or Manual GPS has been set. Example: !?GPS?-Hello from PortaPack
Timestamp formats
Timestamps appear inside position packets that use the / or @ DTI. The format is always 7 characters.
| Format | Example | Meaning |
|---|---|---|
| DDHHMMz | 181654z | Day 18, 16:54 UTC — recommended |
| DDHHMM/ | 181654/ | Day 18, 16:54 local time |
| HHMMSSh | 165400h | 16:54:00 UTC (hours/minutes/seconds) |
The APRS Protocol Reference recommends always using zulu (z) format for on-air transmissions.
Note: The MDHM format (Month/Day/Hours/Minutes) seen in some older examples is only valid for positionless weather station reports and must not be used in position packets.
Position coordinate format
Latitude: DDmm.hhN or DDmm.hhS (8 characters) Longitude: DDDmm.hhE or DDDmm.hhW (9 characters — always 3 digits for degrees, with leading zero if needed)
Example: 4071.27N/07400.59W = New York City area
- 40 degrees 71.27 minutes North
- 074 degrees 00.59 minutes West (note the leading zero)
The character between latitude and longitude is the Symbol Table Identifier (/ = primary table, \ = alternate table). The character immediately after the longitude is the Symbol Code. Common symbol codes: - = house, > = car, [ = jogger, / = dot/waypoint. See the APRS Symbol Tables for the full list.
Frequency
APRS operates on dedicated frequencies per region. Transmitting on the wrong frequency means nobody will receive your packets.
| Frequency | Region |
|---|---|
| 144.390 MHz | North America (USA, Canada, Mexico), Colombia, Chile, Indonesia, Thailand |
| 144.800 MHz | Europe, Africa, Russia, Middle East |
| 144.575 MHz | New Zealand |
| 144.640 MHz | Japan, Eastern Asia |
| 145.175 MHz | Australia |
| 145.825 MHz | ISS (International Space Station) — worldwide, only when ISS is in range (~10 min passes) |
The default frequency in the app is 144.390 MHz. Change it using the on-screen keypad at the bottom of the screen.
ISS note: Packets sent to 145.825 MHz during an ISS pass are relayed by the onboard APRS digipeater and can be received worldwide. Use ARISS as the path instead of WIDE1-1. Check current ISS pass times for your location before attempting.
⚠️ Transmitting to the ISS requires the same valid amateur radio license as any other APRS operation. Using the ISS digipeater with a fictional callsign is a violation of both national regulations and ITU Radio Regulations Article 25. The ARISS organization monitors activity on 145.825 MHz. See the ARISS website for schedules and guidelines.
Gain settings
At the bottom of the screen:
- Frequency step: select step size with cursor, adjust with rotary encoder (e.g. 12k5)
- Deviation: select with cursor, adjust with rotary encoder (e.g. 5 kHz)
- Gain IF: range 0–47. Color indicates combined output power (IF + AMP): 0–17 green, 18–38 yellow, 39–47 orange, 48–61 red
- Amp: 0 dB or 14 dB (on/off)
Transmission starts with the "Start" button and stops automatically after the packet is sent.
Complete working examples
Some example message formats are as follows. Many more are in the APRS Protocol Reference Manual.
Simplest packet — status message:
- Source: W1ABC, SSID: 0
- Dest.: APRS, SSID: 0
- Path: WIDE1-1
- Info field: >Hello from PortaPack
- Frequency: 144.390 MHz (North America)
Position without timestamp (no messaging):
- Info field: !4071.27N/07400.59W-Hello from NYC
- The - after the longitude is the Symbol Code for a house
Position without timestamp (with messaging enabled):
- Info field: =4071.27N/07400.59W-Hello from NYC
Position with UTC timestamp (no messaging):
- Info field: /181654z4071.27N/07400.59W-Hello from NYC
- Format: /DDHHMMzDDmm.hhN/DDDmm.hhW[symbol][comment]
Position with UTC timestamp (with messaging):
- Info field: @181654z4071.27N/07400.59W-Hello from NYC
Position with GPS placeholder:
- Info field: !?GPS?-Hello from PortaPack
- Requires GPS module active or Manual GPS set
Position with altitude:
- Info field: !4071.27N/07400.59W-Hello from NYC /A=105
- Altitude /A= is always in feet per APRS Protocol Reference
Putting it all together — position, UTC timestamp, altitude and comment:
- Info field: @181654z4071.27N/07400.59W-Hello from NYC /A=105
- April 18th at 16:54 UTC, New York City area, 105 feet altitude
Testing your transmission
A reliable way to verify your packets are correctly decoded is to use a second SDR receiver (e.g. RTL-SDR) with SDR++ and the QTMM AFSK1200 Decoder software, both free. You can also use an online WebSDR or a local OpenWebRX instance. Note that aprs.fi and similar internet-connected receivers will only show your packet if an iGate is within RF range of your transmission.
Legal notice — amateur radio license required
APRS operates on amateur radio frequencies. Transmitting on these frequencies requires a valid amateur radio license in virtually every country.
| Country / Region | Governing body | Regulation | License required |
|---|---|---|---|
| USA | FCC | Part 97 | Technician class or higher |
| Europe (ITU Region 1) | National authority (e.g. BNetzA, Ofcom, ANFR) | ITU Radio Regulations Art. 25 | National amateur license |
| Australia | ACMA | Radiocommunications Act 1992 | Foundation class or higher |
| Japan | MIC | Radio Law of Japan | Operator license + equipment type approval |
| Canada | ISED | RBR-4 | Amateur radio operator certificate |
| Worldwide | ITU | ITU Radio Regulations | National amateur license |
The Source callsign must be your own licensed callsign. Using a fictional, unassigned, or third-party callsign is illegal in all jurisdictions and may result in fines, license revocation, or criminal prosecution depending on local law.
The HackRF One is a test and development device, not a certified amateur radio transceiver. In the USA (FCC Part 97), no equipment certification is required for amateur radio — the licensed operator bears full responsibility for the quality and legality of the transmission. In most European countries, the transmitting equipment must additionally meet national technical requirements (spurious emissions, bandwidth). Ensure your transmission complies with the regulations of your country before transmitting on any amateur frequency.
Further reading
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Start here
Contributors
How to collaborate
Contributing Guidelines
How to ask questions correctly
Hardware
- PortaPack Versions (which one to buy)
- Features
- HackRF Versions
- Description of the hardware
- Enclosure/cases
- Repairs
- Mods
User manual
Intended use and Legality
- Usage cautions
- First steps
- Firmware update procedure
- User interface
- Powering the PortaPack
- Troubleshooting
- Won't boot
- Config Menu
- Firmware upgrade
- Diagnose firmware update in Windows
- Receive Quality Issues
- No TX/RX
- TX Carrier Only
- H2+ speaker modifications
- Dead Coin Cell Battery
- Factory Defaults
- SD card not recognized by PC with the SD-card over USB selected
- DFU overlay
- Full reset
- SolveBoard
- How to Format SDCard
- What if I don't like some of the apps
Applications
- 📥 Receivers
- 📤 Transmitters
- ADS-B(S) TX
- Adult Toys
- APRS TX
- BHT Xy/EP
- BLE TX
- BLESpam
- Burger Pager
- CVS Spam
- EPIRB
- FlipperTX
- GPS Sim
- Hopper
- Jammer
- KeeLoq TX
- Key fob TX
- LGE Tool
- MDC-1200 TX
- Morse TX
- OOK
- OOK Brute
- OOK Editor
- P25 TX
- POCSAG TX
- RDS
- RTTY TX
- SAME TX
- Signal gen
- Soundboard
- Spectrum Painter
- SSTV
- TEDI/LCR
- TouchTunes
- TPMS TX
- 🔄 Transceivers
- 🟡 Recon
- 🔴 Capture
- ▶️ Replay
- 🖲️ Remote
- 🔍 Looking Glass
- 🛠️ Utilities
- 🎮 Games
- ⚙️ Settings
- 💻 HackRF Mode
Misc
Developer Manual
- Compilation of the firmware
- Compile on WSL with ninja
- How to compile on Windows faster with WSL 2
- Using Docker and Kitematic
- Docker command-line reference
- Using Buddyworks and other CI platforms
- Notes for Buddy.Works (and other CI platforms)
- Using ARM on Debian host
- All in one script for ARM on Debian host
- Compile on Arch based distro (exclude Asahi), or other weird distros
- Dev build versions
- Notes About ccache
- Create a custom map
- Code formatting
- PR process
- Description of the Structure
- Software Dev Guides
- Tools
- Research
- UI Screenshots
- Maintaining
- Creating a prod/stable release (Maintainers only)
- Maintaining rules
- Development States Notes
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Note
The wiki is incomplete. Please add content and collaborate.
Important
- This is a public wiki. Everything is visible to everyone. Don't use it for personal notes.
- Avoid linking to external tutorials/articles; they may become outdated or contain false information.