The Amateur Radio Numeric Callsign Encoding (ARNCE) is a mechanism for any radio callsign of up to 12 characters to be encoded into 8 bytes(or less). These numeric "ham addresses" can also be translated to EUI-48 and EUI-64 addresses, which can be useful when operating consumer Wi-Fi equipment under Amateur Radio rules. It can also be useful for encoding short text identifiers into MAC addresses in non-radio contexts.
Callsign | HamAddr | EUI-48 |
---|---|---|
N6DRC |
5CAC-70F8 |
02:5C:AC:70:F8:00 |
KJ6QOH/P |
4671-6CA0-E9C0 |
C2:46:71:6C:A0:E9 |
AA0XXX/MOBI-4 |
0683-99D8-F5E7 |
EA:06:83:99:D8:F5 |
Callsign | HamAddr | EUI-64 |
---|---|---|
VI2BMARC50 |
8B05-0E89-7118-A8C0 |
C2:8B:05:0E:89:71:18:A8 |
The mechanism for reversibly translating callsigns into numeric identifiers is outlined in the ARNCE technical specification (HAM-64), included in this repository. Also included in this repository are shell scripts which can be used to convert between all of these address formats.
The original source of the specification is in the file n6drc-arnce.md
,
which is formatted in mmark syntax (vaguely
similar to GitHub-flavored Markdown).
The included makefile uses paulej's rfctools to
convert this base format into text, HTML, and XML formats.
This project is hosted on GitHub as arngll/arnce-spec.
This repository also contains reference implementations in various languages. Currently, reference implementations in the following languages are included:
- Standard unix shell sript (
/bin/sh
)
A implementation in Rust is available here.