By Eric Anderson
9 min read

An Automated Station With Manners

Auto-CQ and the Auto-Responder in DitStorm™ Cypher™ V3.2

Version 3.2 of the DitStorm Cypher™ can run parts of a QSO for you. It will call CQ on a schedule, listen between calls, and answer a station that comes back to you — filling in the caller’s callsign, a genuine measured signal report, and a contest serial number as it goes. You watch, you log, and you take the contact over whenever you like.

That much you can get from a memory keyer. What took the real work — and what this post is mostly about — was teaching the Cypher when not to transmit. An automated station that keys on a timer is a nuisance, and every CW operator has been annoyed by one. So alongside the automation we built a set of manners: listen before every call, hold when somebody appears near your frequency, stand down rather than talk over a QSO already in progress, ask for a repeat when the copy is too rough — and never, ever answer traffic that was not addressed to you.

1. Why automate at all

Calling CQ is repetitive by nature. You send the same call, you listen, you send it again, sometimes for a long while before anyone answers. That is fine for ten minutes and wearing after an hour.

Think about where it hurts most. A POTA activator is calling CQ while also logging contacts, minding a phone app, and sitting outdoors juggling equipment in weather that does not care about any of it. A contester repeats the same exchange hundreds of times in a weekend, and the only things that change are the callsign, the report, and the serial. A casual operator on a quiet band just wants to call for a while without being chained to the key.

These are exactly the tasks a machine does well, and exactly the tasks that wear an operator down. The point of automation is not to remove you from the contact — it is to hand the repetition to the radio so your attention is free for the parts that actually need a human.

2. Macros that fill themselves in

Automation starts with the macro system. Any macro can now carry tokens — short commands in angle brackets that the Cypher replaces with live values at the moment you transmit. Your callsign. The callsign of the station currently calling you. A signal report. A contest serial. Two custom fields you define yourself for a park number, a section, or a SOTA summit.

So a responder macro written once as <YOU> DE <ME> UR <RST> <RST> NR <COUNT> TU K goes out as KD8OBF DE K5WVA UR 579 579 NR 001 001 TU K — and on the next contact every changing value changes by itself.

Two details in there matter more than they might appear. The serial counts stations, not transmissions, so a repeat or a fill to the same station resends the same number, which is what the operator on the other end expects. And if any token cannot resolve — no station captured, no signal measured yet, a custom field never defined — the macro refuses to transmit at all and tells you why in the log. It will not send you half an exchange with a hole in it.

3. A signal report that is actually a measurement

Nearly every logger and rig on the air fills in 599 whether or not anybody looked. We decided not to do that.

When a macro containing <RST> fires, the Cypher builds the report from what it actually measured: a 5, then the averaged reading of the other station’s last ten transmitted pulses taken from the same calibrated S-meter you see on screen, then a 9. The R is 5 because the Cypher decoded his callsign — if it read the call, it is reading the station. The T is 9 in a world of synthesized rigs. The S is the one honest variable, and it is sampled only while his carrier is actually on the air. The moment his transmission ends, the numbers freeze, so nothing that happens afterward can change the report you are about to send him.

If your contest expects a conventional 599, you simply type 599 in the macro. But when the Cypher sends a number, that number means something.

4. Turning a macro loose

Two directives make a macro automatic. <AUTOCQ> marks it as your CQ caller; <AUTORESPOND> marks it as your automatic reply to a station calling you. Neither ever goes on the air — they are stripped before transmission and exist only to tag the macro’s role.

A tagged macro grows a small run icon in the corner of its button. Tapping the button still sends the macro by hand, exactly as always; it is the corner icon that starts and stops the automation, and the whole button turns red while it is live. Tap the icon again to stop it. STOP, or the Esc key, kills everything instantly, always.

The two roles are independent. Run an auto-CQ with no responder and answer callers yourself. Arm the responder with no CQ running, for when you are the one being called. Or run both together for the full loop. And nothing ever wakes up armed — reload the page or power-cycle the Cypher and every automation returns to off. An automated transmitter should be started deliberately, every session.

5. Three scenarios

Casual calling. Tag your everyday CQ macro, set the repeat count, and let the Cypher call while you pour the coffee. No responder armed — you answer callers yourself. The loop pauses the moment somebody comes back to you and resumes on its own if the band goes quiet again. Plenty of operators will use nothing more than this, and it alone repays the setup time.

POTA activation. Define your park in one of the custom fields and build a responder around it. With the CQ running and the responder armed, the Cypher calls, answers each hunter with a real report and your park number, and yields the moment you want to work someone by hand. Turn on logging and the ADIF file collects the contacts for your upload. Out in the field, the listen-before-every-call check keeps you courteous on a shared frequency without any effort on your part.

Contesting. The serial counter, the cut-number option, and the once-per-station rule were built for the running position. Each caller gets the next serial; a repeat request from the same station gets the same number back. Just remember to reset the serial before the contest — it survives power cycles on purpose, so that an overnight break in a two-day event does not lose your place, which also means it will happily start next weekend at 237 if you let it.

6. What makes this different from a memory keyer

Here is the part that is genuinely new. Most station automation is blind: it sends what you stored, on the schedule you set, and has no idea what is happening on the frequency. The Cypher is a decoder first. Its automation is driven by what it is actually copying off the air, and that changes what is possible.

It knows who called whom. It reads position the way an operator does: your callsign leading means the message is for you, and the station named second is the caller. Your callsign after DE is your own transmission coming back through your sidetone, and it never triggers anything — which is why your own CQ cannot set your station answering itself. A callsign sitting in the address slot is never mistaken for the caller, so a W1AW DE KD8OBF that you happen to copy is understood as traffic between two other stations. And because a garbled first character is the most common casualty of a weak signal, a call that arrives with its leading character chewed up still reads as yours — while a callsign that merely resembles yours does not.

It answers each station exactly once, so two automated stations cannot fall into an answering loop with each other. It waits until the caller’s signal has fully ended, plus a second, before it keys. And every single decision it makes is narrated in the internal log with its reason, including every refusal.

7. Manners

This is where most of the engineering went, and it is worth spelling out, because “automated CW station” makes a lot of operators justifiably nervous.

It listens before every call. Three full seconds of channel quiet are required before each automatic CQ. If the frequency is busy, the call simply waits — and a held call is never lost, nor counted against the run.

It holds when a station appears. In QSO Party mode the Cypher watches a window roughly 312 Hz either side of your own tone, because not every operator zero-beats precisely and some deliberately answer a little off frequency to stand out. If a signal turns up in that window after your call, the next call is held rather than keyed on top of him, and the receive pane tells you why. Notice that this works whether or not he decodes: a caller too weak to copy, sending too fast, or drifting at the edge of the window still stops the automation, because the decision is made from the presence of his signal rather than from any successful copy of it.

It stands down from a QSO in progress. Holding is right for a station who may be calling you. It is wrong for two stations having a conversation near your frequency, who will simply keep going. The Cypher tells them apart by duration: a call directed to you is brief, an over is not. If the station it is holding for keeps sending for more than about twelve seconds, the Cypher concludes it has landed in the middle of somebody’s QSO and stands down for thirty seconds rather than transmit over it.

It asks for a repeat — twice, and no more. A station may call you through noise or fading bad enough that his callsign simply cannot be read. Ignoring him would be poor operating; answering a callsign the Cypher never actually copied would be worse. So it sends QRZ DE (your call) K and shows you why. It will do that at most twice in any listening period. If a third attempt still cannot be read, it falls silent — which is exactly the judgement a courteous operator would make.

It does not answer other people’s traffic. A station you can read perfectly well who was not calling you gets no reply at all, and the pane says NOT FOR ME. The responder is a responder, not a hunter: it exists to answer stations calling you, and it will not chase somebody else’s CQ.

8. You are still the control operator

None of this changes who is operating the station. The protections are real and we are proud of them, but they do not replace you. Stay within earshot while automation runs, watch what it sends, and observe the rules that apply to automatic operation where you live. The running narration in the internal log exists precisely so that you always know what your station is doing and why.

If you want to see the whole loop before you take it to the air, you can. Store a fake caller in an ordinary macro — your callsign followed by DE and a made-up call — arm your responder, and send it into a dummy load. The Cypher decodes its own sidetone, captures the caller, and about a second later keys your full response with the measured report and serial in place. It is the entire capture-and-answer cycle in miniature, and it is a good way to proof a new macro from the comfort of the chair.

Conclusion

Automation in V3.2 is not about taking the operator out of the QSO. It is about handing the repetition to the radio — the hundredth CQ of the afternoon, the exchange whose only changing part is a serial number — while the judgement stays with you. And because the Cypher decodes before it transmits, it can make that judgement in ways blind automation simply cannot: it knows whether the frequency is busy, whether the station that just appeared might be calling you, whether somebody else’s QSO is already under way, and whether the call it just heard was addressed to you at all.

The full system — tokens, directives, scenarios, and every one of the protections above — is documented in Section 11 of the V3.2 Operator’s Manual. Version 3.2 is a free over-the-air update for registered Cypher owners.

73, and we will see you on the bands.