What mLink is
mLink is a concurrent global radio mail system: a complete radio messaging system for organised communications, with an HF data network, a mail system and a net-control tool in one package. Concurrent because one frequency carries several exchanges at once instead of one session at a time. Global because any station with internet access is a gateway to a central mailserver, so a mail reaches any callsign on any band anywhere, and ordinary email too. And still a radio mail system: when the internet is gone, stations carry mail for each other by radio alone. It turns an SSB transceiver, a sound interface and a computer into a station that moves messages and mail directly, through other stations, or through the internet, whichever works. Each heading below links to the chapter of the full manual that explains it.
- Nets with accountability. A virtual net with a net control, a roster of up to 127 stations, and a roll call that takes twelve stations about 21 seconds. Bulletins come back with a record of who received them. Standing orders are kept by every member. If net control drops out, a member takes over (Chapter 9).
- Mail to anywhere in the world. Any station with internet access is a gateway to a central mailserver. A station on one frequency can send mail to a station on a different frequency or band, in another region or another country, or to an ordinary email address. Mail waits until it is collected and never expires (Chapter 8).
- Still works when the internet is gone. Stations exchange messages and mail by radio alone. When the recipient cannot hear the sender, a station that hears both delivers the message without being asked (Chapter 7).
- Several exchanges on one frequency at once. Traffic does not queue behind one two-station session. A long transfer, several short exchanges and a distress call can be on the air together (Chapter 6).
- Strong encryption, for services that may use it. AES-256-GCM, with keys agreed between two stations from signed certificates or shared across a group. It is meant for services such as MARS and SHARES whose rules allow it. It does nothing until keys are loaded and an operator asks for it on a message, and keeping it off amateur frequencies is the operator's responsibility, as with any other mode. On every service, a mail carries proof of its author that the mailserver checks (Section 12.5).
- Strong compression. Every message is compressed with Zstandard, helped by a dictionary trained on sample message traffic so that even a one-line message shrinks. Less to send means less time on the air and a better chance of getting through. Something already compressed, such as a photo attachment, is sent as it is.
- A distress call that gets through. A dedicated signal that decodes far below anything else on the frequency, which every station always listens for and passes on (Chapter 10).
- One station, several radios, several operators. Computers on different bands join into one station under one callsign. Operators sign in with their own accounts and roles, and a mail can record who wrote it and from which position (Chapter 11).
- A shared picture. Station positions, tracks, search areas and routes on every operator's map, and weather or other internet data fetched for stations that have no internet (Chapter 12).
One system, top to bottom
mLink is designed as a whole, from the modem on the air to the mailbox on the internet, and is intended as a full replacement for the Winlink network and its several separate programs: the mail client, the modem, the gateway software and the central mail servers. Because every layer is built for the others, nothing has to be configured to match, and no air time is spent on negotiation between them.
- The station daemon runs the station: the modems, the receiver, the database and every decision about the air. It keeps working with nobody watching, so a station can be left unattended to relay and to carry mail. Everything your station has sent, received or overheard is kept in its own database, on your computer.
- The client is what operators use: a desktop program or a web page. It can be on another computer, and several operators can work one station at once.
- The mailserver is a program on the internet with no radio of its own. It keeps a mailbox for each callsign and is central to getting mail delivered: it is where mail waits for a station that is off the air, out of range or on another frequency. Any station with internet access talks to it on behalf of the stations it hears. There is no mailserver at your station.
| Job | Winlink | mLink |
|---|---|---|
| Writing and reading mail | A client program | The client |
| The signal on the air | A separate modem you must also have: VARA, ARDOP, packet, or a Pactor box costing well over a thousand dollars | The daemon's own three modems; a sound interface with a PTT line is the only hardware |
| Choosing when and to whom to transmit | The operator picks a gateway and starts a session | The daemon, from what it has heard |
| Radio to internet | Gateway software at stations set up for it | Any station with internet access |
| Radio only, station to station | A separate network of chosen stations | Every station |
| Holding mail | The central mail servers | The mailserver |
| Nets, distress calls, maps, several bands | Other programs, or not covered | Built in |
mLink is built to beat Pactor, VARA, ARDOP and packet where it counts: mail that arrives, and a frequency that carries everyone's traffic. With those modems an operator keeps a list of gateways, picks one, and hopes it is listening and in range. An mLink network works together: every station is always decoding and always helping, so there is no particular gateway to reach. Several exchanges run at once, there is no session to set up, only what was lost is sent again, weaker stations are reached, and strong compression can put mLink ahead of even the fastest of them for ordinary text. In simulated twelve-station nets running for hours, every mail and every message was delivered.
Full manual: What mLink Is; One system, top to bottom.
The signal
An mLink channel is one SSB voice channel, about 3 kHz wide. Inside it are three kinds of signal, each in its own strip of the audio, each with its own modem. A receiver decodes all of them all the time.
| Strip | Audio | Carries | Sounds like |
|---|---|---|---|
| Emergency | 125–175 Hz | Distress calls only | A low, slow warble |
| Announce, three channels | centred on 400, 800 and 1,200 Hz | Station identification, short messages, acknowledgments, requests and replies | Short buzzy bursts, two thirds of a second each |
| Bulk | 1,500–3,000 Hz | Long messages, mail and attachments | A wide, even hiss, 5.44 seconds per frame |
A fourth announce-type channel, the bulk-control channel, sits in the middle of the bulk strip at 2,250 Hz. It carries only the short frames that open and acknowledge a bulk transfer, and takes turns with the bulk signal. It lives there rather than on an announce channel for a practical reason: most messages and mail compress small enough to go as short frames, so the bulk strip is quiet most of the time, while the announce channels get busier as more stations come on. Keeping a bulk transfer's own openers and replies inside the bulk strip means they are never held up by unrelated chatter, which matters because the two ends of a transfer are working to a reply deadline.
The strips are separated by empty spectrum, and every modem filters its own output, so a signal in one strip does not disturb another. Your radio's filters must pass audio from about 115 Hz to about 2,900 Hz, which is lower at the bottom than many voice settings. The placement of the strips is the result of a year of simulation; it may still move once mLink has been run between several real radios on the real ionosphere.
Four words this document uses carefully. A frame is one block of modulated data, the thing a modem sends and decodes. A transmission is one press of the key: one or more frames, then the radio unkeys. A message is what an operator sends, from one typed line up to about 64,000 bytes, carried by as many frames and transmissions as it takes. Mail is a message with a subject, recipients and attachments, which the mailserver can hold.
Full manual: One Passband, Three Regions; The Transmission Is the Unit.
Modulation and error correction
Each strip has a modem chosen for its job. This page says what they are; the full manual explains how they work.
| Emergency | Announce | Bulk | |
|---|---|---|---|
| Modulation | 8 tones, one at a time (8-FSK), 6.25 Hz apart | QPSK on one carrier | OFDM: 28 carriers 46.875 Hz apart, 24 of QPSK data and 4 pilots |
| Symbol rate | 6.25 baud | 200 baud | 37.5 symbols per second on each carrier |
| Error correction | Reed-Solomon (23,11) | Reed-Solomon (23,11) | LDPC at rate 1/2, 3/4 or 5/6 |
| One frame carries | 11 bytes | 11 bytes | 603, 907 or 1,008 bytes |
| One frame lasts | 10.24 s | 0.64 s | 5.44 s at every rate |
| Useful speed | about 9 bit/s | about 130 bit/s | about 900 to 1,500 bit/s |
| Decodes down to | −15 dB for one frame; a call reaches −17 dB because it repeats | −5 dB | about +3 dB at rate 1/2; rates 3/4 and 5/6 need about 1 and 2 dB more |
Signal levels are signal-to-noise ratios in a 3 kHz bandwidth (the SNR@3k yardstick). A report from FT8 or JS8 for the same signal reads about 0.8 dB higher. "Decodes down to" means the level at which nearly every frame still gets through: 99.7 % of short frames at −5 dB, 96 % of emergency frames at −15, and 19 bulk frames in 20 at +3. All three were measured in steady noise, through the whole receive path; the full manual has the curves.
- The slower the signal, the deeper it reaches. A distress call decodes 12 dB below the short frames and 20 dB below the fast ones.
- Reed-Solomon repairs up to 6 damaged bytes of the 23 in a short frame, and fades out gradually: 99.7 % decode at −5 dB, 95 % at −6, two thirds at −7.
- LDPC works close to the theoretical limit and has a sharp edge: at +3 dB nearly every bulk frame decodes, and 2 dB lower none do. A frame of any kind is either delivered whole or not at all, because every message carries a check; what is special about LDPC is that there is no gradual slope between working and not working. So the station sends bulk only when it estimates the path at +6 dB or better, which leaves 3 dB in hand. The estimate comes from what the other station reports hearing of you, or, failing that, from how well you hear it.
- A bulk frame is the same length at every rate. A better path carries more bytes per frame, not shorter frames. The first frame of a transfer is always rate 1/2.
- Everything is compressed for transmission when doing so makes it smaller, and every message carries a 16-bit check so a damaged one is never delivered.
Full manual: Error Correction: Reed-Solomon and LDPC; The Emergency Modem: NB8FSK; The Announce Modem: QPSK; The Bulk Modem: OFDM.
How a message is sent
You never choose how a message goes out. The station picks from the size of the message and from how well the other station has been hearing you.
| Size after compression | Sent as | Air time |
|---|---|---|
| Up to 156 bytes | A shortburst: up to 16 announce frames in a row | 2 to 12 s |
| 157 to 601 bytes, weak path | A longburst: two to four shortbursts, each acknowledged | 15 to 47 s |
| 100 bytes and up, good path | A bulk transfer: up to 10 bulk frames per transmission, 64 in all | 7 s for one frame, 56 s for ten |
The largest message to one station is about 64,000 bytes after compression; a broadcast to everyone is limited to about 6,000.
5.1 One exchange
- The station waits until it is not in another exchange, nobody has reserved the part of the passband it needs, and its receiver hears nothing. Then it waits a short random time, so stations that were all waiting do not key together.
- It sends one transmission. The first frame, PRESENCE, is the station's callsign and grid square, which is also its identification. The next says what follows and for whom. Then come the data frames.
- Stations that hear the opening stay off that part of the passband until the transfer is over.
- The recipient replies about two thirds of a second after the transmission ends: an acknowledgment if everything arrived, or a map of which frames did not.
- The sender repeats only the missing frames. A fade that destroys one frame in ten costs one frame, not the transfer.
If no reply comes, the sender does not repeat the data. It asks one short question, "did you get that?", and if that is not answered either it looks for a relay (Chapter 7).
Full manual: Mail in mLink; Three Sizes of Message; Getting Every Byte There.
Several conversations at once
Most data modes give the whole channel to one transmission at a time. mLink divides the channel, so stations that are not talking to each other do not have to wait for each other.
- Five places to transmit. Three announce channels, the bulk strip and the emergency strip. A bulk transfer between two stations can run in the top of the passband while stations that are not following it exchange short messages on the announce channels and a distress call goes out underneath.
- Every receiver decodes all of it, all the time. A station is never tuned to one conversation. It hears every frame in every strip, which is how it knows who is on the frequency, how strong they are and what has been sent.
- Reservations cover one strip. The opening of a transfer reserves only the announce channel or the bulk strip it will use, for only as long as the transfer can last. The other strips stay free.
- A new message picks any free announce channel at random, so two stations that start at the same moment usually land on different channels and both get through. A station has no favourite channel.
- Listen before transmitting. A station does not start a new message while its receiver hears an mLink signal anywhere in the passband, so a station that is decoding somebody else's bulk transfer waits for it to end. After the frequency goes quiet it waits a random time that grows with the number of stations it has heard. Replies that are owed and distress calls do not wait.
- Order of precedence: distress traffic, replies that are owed, the exchange already under way, new messages, then automatic traffic such as beacons.
One station still transmits one thing at a time and cannot receive while it transmits. The gain is across stations: on a busy frequency several exchanges proceed side by side, between stations that are out of each other's hearing or that are not following each other's transfers. How well it works is measured on a simulated air. In twelve-station nets running for hours, between none and about two frames in a hundred are overlapped by another station's transmission, and in a deliberately punishing search-and-rescue test on two bands, with many stations that cannot hear one another at all, about one in fifty. With 200 stations on one frequency about a quarter of all frames overlap another and are sent again, and the mail still arrives (Chapter 14).
Full manual: Sharing the Channel; One audio stream, many signals; Operator simulations.
Automatic relay
On HF a station often cannot hear the one it wants, while a third station hears both. mLink uses that third station without anyone asking it to.
- Every station keeps what it overhears. A message sent to someone else is kept by every station that decoded it, for as long as the operator leaves it in the database.
- The sender asks. When a message gets no reply, the sender transmits one short REQUEST naming the recipient and the message. It does not send the message again.
- Stations that can help offer. A station offers only if it holds a copy, has heard the recipient recently, within about half an hour, and has a usable path to it; stations that heard the recipient in the last two minutes answer first. Offers go out in separate time slots so they do not collide, and each says how well that station hears the recipient. When many stations could help, each works out its own place in line, two answer per slot, and normally only the best two answer at all. A station far down the line stays silent and moves up each time a request goes unanswered, so that a crowd does not all answer at once.
- The sender picks one, two seconds after the first good offer: the station with the best path to the recipient.
- The relay delivers its copy in a transfer of its own, with repairs if needed. The recipient files the message under the station that originally sent it, not under the relay.
- The relay reports back, and the sender's outbox shows the message as sent.
If nobody offers, the sender keeps the message and tries again when it next hears any station, first after one minute and then at gaps that double up to 32 minutes. From then on the request also invites a station that hears the recipient but did not overhear the message: such a station answers "I can reach them but I need the message", and the sender hands it the message in a transfer of its own.
Relay is not limited to one hop. A relay that cannot reach the recipient after all asks for a relay of its own, in the same way, and the message keeps the name of the station that originated it. No routes are configured and no station is a designated relay. Each hop is arranged for one message, from what stations have heard in the last few minutes.
Full manual: Relay: Recruiting a Helper; Finding Each Other.
Mail in mLink looks like email: a subject, recipients, copies, replies tied to the mail they answer, and attachments. You write it, send it and walk away.
8.1 How it travels
- By radio, station to station. Directly to the recipient, or through a relay. No internet is involved at either end.
- Through a gateway. A station with internet access says so on the air and becomes a gateway for the stations around it. It puts mail it overhears into the recipient's mailbox on the mailserver, and tells the sender it has taken it.
- Across frequencies, bands and continents. Two stations do not have to share a frequency. The mail goes by radio to a gateway, over the internet to the mailserver, and out by radio from whichever gateway next hears the recipient, anywhere in the world.
- Carried toward the internet. When no gateway is in range, a station that overheard the mail holds it and hands it to the first gateway it meets, or delivers it directly if the recipient turns up first. The mailserver does not have to be reachable for mail to move.
- To and from ordinary email. The mailserver passes mail between callsign mailboxes and internet email addresses, and runs mailing lists.
8.2 How it arrives
You do not have to ask. When a gateway hears your station, it looks in your mailbox and tells your station what is waiting; your station fetches it. Several mails for one station travel together in one transfer. Where many gateways hear the same station they take turns, each looking at most once every fifteen minutes and standing down when it hears another has already answered. A station that no gateway can hear directly can ask through a relay.
8.3 What to know
- Mail never expires. A mail that cannot be delivered now waits, at your station or in the mailbox, until its recipient turns up. In a named net, net control holds it for a member who is away and delivers it at their next check-in. The mailserver keeps a delivered mail too, marked as fetched; nothing is deleted unless its operator sets a retention period.
- One station is responsible for a mail at a time. A gateway claims a mail only after the mailserver has confirmed it holds it, and other stations carrying the same mail then stop.
- Who wrote it. A mail names the station that sent it, and can also carry the operator who wrote it and the position they were working, for a station with several operators.
- The mailserver is what makes delivery dependable. It is where mail waits, and every gateway reaches it. Stations with no internet in reach still exchange mail by radio alone; that is a feature for when the internet is gone, not the usual path.
- Nothing secret is sent by radio. A station proves who it is to the mailserver without transmitting a password.
- Encrypted mail skips the mailserver. For services whose rules allow encryption, an encrypted mail goes over the air to its addressees only. No gateway deposits it and no station carries it, so nothing holds it for a station that is off the air. That is today's limit: help from the mailserver and from stations that cannot read the mail is planned, not built.
- The mailserver is an early version. Today it is one server managed with ordinary SQLite tools. Stronger security, several servers, automatic duplication and management tools are planned, not yet built.
Full manual: Mail Over the Air; The Mailserver.
Virtual nets
Normally an mLink frequency has no net control. An operator who wants a net in the familiar sense can open one, give it a name, and let other stations join. Stations that do not join carry on as before on the same frequency.
- Owner and net control. The net belongs to the station that opened it. Net control runs it. They are usually the same station, and the owner can hand net control to another member.
- Roster. Up to 127 members, numbered in the order they joined. Net control repeats the roster a few entries at a time, so a station that arrives late learns it by listening.
- Roll call. Net control sends one frame. Each member answers in its own 1.2-second slot with a single frame, in roster order, with no prompting. Twelve stations take about 21 seconds. A member that missed its slot gets a second try, and a member can vouch for one it hears that net control does not.
- Bulletins. Up to 200 characters to every member, followed by a roll that shows who received it, and one repeat for those who did not.
- Standing orders. One longer text that every member keeps. A member that does not have the current copy asks for it.
- Mail for a member who is away. When one member mails another who is off the air, net control keeps the mail and hands it over right after that member's next check-in. The sender can switch off. Every roll call tells the net what net control is holding, so a stand-in can deliver it too.
- If net control goes quiet, a member takes over as a stand-in after three and a half cycles of silence, and the owner gets the net back when it returns.
- During a roll call members hold their routine traffic, and stations outside the net keep off that one announce channel. The other channels and the bulk strip stay in use.
A net is a layer of organisation, not a requirement. Messages, mail, relay and distress calls work the same with or without one.
Full manual: Virtual Nets.
Distress calls
Any station can send a distress call, and every station is always listening for one. The call has its own strip at the bottom of the passband and its own modem, built to be heard when nothing else can be.
- It reaches deepest. A single frame decodes at −15 dB, and because the call repeats it gets through at −17, 12 dB below any other mLink signal and well below what you can see on a waterfall.
- It is slow on purpose. One frame takes 10.24 seconds and carries 11 bytes. The first frame alone is a complete alert: a position, how sure it is, what kind of trouble, how bad, how many people. Up to 14 more frames add who is calling and what is happening, 13 characters each.
- It repeats. A call goes out again about every 75 to 90 seconds until someone acknowledges it or the operator cancels it. It survives a restart of the station software.
- It leaves room for an answer. After each pass the calling station listens for at least 15 seconds.
- It does not wait for anyone. Distress traffic ignores reservations, and sending a call cuts off whatever else the station was transmitting; that message is kept in Drafts. No setting, password or missing field can stop a call being sent. An empty call is still a valid call.
10.1 When a station hears one
- It alerts its operator.
- It repeats the call in the announce strip after a short random wait, and stands down if another station does so first.
- A gateway puts the call in a mailbox watched for distress calls, so a person with a telephone can act on it.
- An operator can acknowledge it. The acknowledgment goes out twice: with contact details in the announce strip, and as one frame in the emergency strip, timed for the moment the caller starts listening, so the answer reaches as deep as the call did.
The distress modem exists to raise the alarm, not to hold a conversation. Once a call is acknowledged the repeats stop, and the caller and the station that answered talk as any two stations do, with ordinary messages and mail, through relays and gateways like everything else. That is where the details get sorted out and where a rescue can be called off if it is not needed.
Full manual: The Emergency Modem: NB8FSK; Emergency: The SOS Service.
Clusters: one station, several radios
A station can be more than one radio. Several computers, each running the daemon with its own radio on its own band, join into a cluster that shares one callsign and behaves as one station.
- The link between members is a network, a LAN or the internet. It is never the radio. Up to 16 members.
- Everything heard is shared. A station heard on 40 m by one member appears in the station list of every member, with the band it was heard on.
- Traffic crosses bands. A message for a station that only the 80 m member hears is carried over the link and sent from the 80 m radio.
- One operator view. An operator's client connects to any member and works the whole station. Accounts, passwords and the mail identity are the same everywhere.
- Mail is protected against losing a member. A member with internet access holds a copy of the others' unsent mail and takes it over if its owner has been silent for three minutes.
- Each radio still decides for itself. When to transmit on a band is decided only from what that band's radio hears.
Joining takes a label, the address of one existing member, and approval by an administrator who compares two key fingerprints.
Full manual: Clusters: One Station, Several Radios.
Also built in
12.1 Stations find each other
A new station listens for ten minutes before it identifies itself on its own. If it hears other stations it joins in; if it hears nobody it asks whether anyone can hear it. After that it sends a short beacon now and then, less often on a crowded frequency. A message you send goes out as soon as the air is clear, listening period or not. Every station keeps a list of who it has heard and how strongly, and stations pass each other short notes about who hears whom, which builds a map of the links on the frequency.
12.2 Position and maps
Every station is placed on a world map from its grid square, or exactly with a GPS. Stations can send position reports that leave a trail, and operators can share map objects such as search areas and routes. A message can be addressed to "any station in this area".
12.3 Internet data over the air
A station without internet can ask for data such as a weather report. A station with internet fetches it and sends back a compact answer.
12.4 Operators and roles
Several operators can work one station at once, each with an account. Three roles (operator, technician, administrator) decide who may change the station's settings. Sending a distress call is never restricted.
12.5 Identity and encryption
mLink encrypts with AES-256-GCM. Two stations that each hold a certificate signed by the mLink certificate authority agree a key without sending anything secret, or a group shares one key in advance. A message is compressed first and then sealed. Encryption is for services whose rules allow it, such as MARS and SHARES. Amateur rules forbid hiding what a message says, and mLink does not know what frequency it is on, so it is the operator who keeps it off there: nothing is encrypted unless keys have been loaded and the operator asks for it on that message. Separately, and on every service, a mail carries a short proof of its author that the mailserver checks. Distress calls are never encrypted.
12.6 FM
FmLink is mLink for FM voice radios and repeaters. It works today and has been run on the air between two inexpensive handhelds keyed by VOX, the slowest way a radio can be keyed. Radios the computer controls directly will run a faster tier, and that is where the work is going. The cheap handheld is supported because so many people own one, not because it is a good way to run mLink.
Full manual: Finding Each Other; Position, Maps and Tactical Overlays; Sharing the Internet Over the Air; Accounts, Roles and Shared Stations; Security Under Part 97.
Getting on the air
13.1 What you need
- An SSB transceiver of the kind used for FT8 or JS8, with filters that pass audio from about 115 to 2,900 Hz.
- A sound interface between the radio and the computer that also keys the radio: a Digirig or SignaLink-type box with a PTT line, or a radio with a sound card built in, where one USB cable does both jobs. This is the hardware mLink is built for. mLink can key by VOX, but on HF VOX adds a long and uncertain delay before every transmission, so it is not recommended and may be dropped. Older gear that needs a lot of fiddling to key properly is not a target.
- A Linux computer for the station daemon. The client runs on Linux, on Windows and in any web browser, and can be on another machine.
13.2 Installing and running mLink
mLink is not yet available for distribution. It is still being built and tested, and there is no package or source release to download. When there is, this page will say how to install it and get a first station on the air; until then the full manual's Installing and First Run chapter describes how that will work.
13.3 What to expect
- A sent message may sit in the outbox for a few seconds, sometimes a minute, while the station waits for a free moment. A new station listens for ten minutes before it identifies itself on its own, but a message you send goes out as soon as the air is clear.
- Deferred means the station still has the message and will try again. Failed means it has stopped, and says why. The outbox states are all explained in the manual.
- Before you switch off, look at the outbox count in the status panel: pending or airing means the station still has work to do.
- If you change frequency on a radio mLink does not control, give the station a few minutes to hear what is on the new one. The Stations list shows who has been heard in the last five minutes, so an empty list after that is a fair sign the band is dead or the frequency is wrong.
- Your station also works for others: it relays, repeats distress calls and, with internet access, carries mail. You can limit this in the settings.
- You can close the client. The station keeps running.
Full manual: Installing and First Run; The Operator's Guide to the Client; The Outbox, and Why Your Station Waits.
How demanding is it?
mLink makes heavy use of simulated air time, with real mLink stations sharing one audio baseband and each station given its own handicaps: some are deaf to certain others, some fade in and out, in all sorts of configurations. The stations are the real program; only the sound card is fake.
The most demanding simulation so far is a 20 m frequency with 200 mLink stations on it for six hours, with several things going on at once: a search-and-rescue net looking for a lost vessel, a casual evening net, plenty of ordinary QSOs, and a few disruptive stations constantly calling CQ. The intent is to make sure that a safety-critical net can still perform well despite everything else competing for the frequency.
So far it performs remarkably well, with most messages and mail delivered despite the interference, and the simulation is where most protocol improvement now comes from. The design goal is for mLink to scale to 256 stations on a single frequency while keeping excellent delivery and air-time figures.
On the computer side it is light: a station on that busy frequency used about 3 % of one processor core and 50 MB of memory, before the sound card, rig control and the client.
The full manual's appendix A Busy Frequency: the 200-Station Simulation has every current figure, the current weak spots and their causes, and what the test does not show; How We Know It Works explains the simulated air itself.
Numbers at a glance
| Item | Value |
|---|---|
| Channel | One SSB channel; signals occupy 115 to 2,906 Hz of audio |
| Emergency strip | 125–175 Hz; 8-FSK at 6.25 baud; 10.24 s per frame; one frame decodes to −15 dB, a repeating call to −17 |
| Announce channels | 400, 800 and 1,200 Hz; QPSK at 200 baud; 0.64 s per frame; decodes to −5 dB |
| Bulk strip | 1,500–3,000 Hz; OFDM, 28 carriers at 37.5 symbols per second; 5.44 s per frame; from about +3 dB at rate 1/2, 1 to 2 dB more at the higher rates |
| Bulk control channel | 2,250 Hz, shared in time with the bulk signal |
| Error correction | Reed-Solomon (23,11) on short frames; LDPC rate 1/2, 3/4, 5/6 on bulk frames |
| Bulk frame payload | 603, 907 or 1,008 bytes by rate |
| Useful speed | about 9, 130 and 900–1,500 bit/s (emergency, announce, bulk) |
| Signal levels | Signal-to-noise ratio in 3 kHz; bulk is tried from an estimated +6 dB |
| Shortburst | 1 to 156 bytes, up to 16 announce frames |
| Longburst | 157 to 601 bytes on a weak path |
| Bulk transfer | up to 64 frames, 10 per transmission; about 64,000 bytes |
| Largest broadcast | about 6,000 bytes |
| Reply after a transmission | about two thirds of a second |
| Relay offer conditions | holds a copy; heard the recipient within about 30 minutes, those within 2 minutes first; path of −5 dB or better |
| Relay hops | no fixed limit; one handshake per hop |
| Overheard copies | kept until the operator prunes the database |
| Retry gaps for a waiting message | 1, 2, 4, 8, 16, then 32 minutes |
| Mail lifetime | never expires; the mailserver keeps delivered mail unless a retention period is set |
| Distress call | 1 to 15 frames; up to 182 characters; repeats about every 75 to 90 s |
| Virtual net | up to 127 members; roll-call slot 1.2 s |
| Held mail | net control keeps a member's mail when the member has not been heard for 2 minutes and no relay answers within about 20 seconds; delivered after the next check-in; the net's list names up to 10 |
| Cluster | up to 16 members |
| New station | listens 10 minutes before beaconing; operator messages go out at once |
| Frames overlapped by another station, in simulation | 0 to about 2 % with 12 to 38 stations; about a quarter with 200 on one frequency |
Every figure here is defined, with its source in the code, in Numbers at a Glance of the full manual.