A small Java program that drives a hidden transmitter ("fox") for amateur radio fox hunts. It transmits a morse-code identifier on a loop with quiet gaps between transmissions — feed the computer's audio output into the transmitter (e.g. through its VOX circuit or a simple audio interface) and hunters can direction-find the signal.
The morse ID is synthesized from your callsign — no recordings needed.
java -jar fox.jar --callsign W1ABCThat transmits W1ABC in morse 5 times, goes quiet for 30 seconds, and
repeats until you stop it (Ctrl-C). Every transmission is logged with a
timestamp.
| Option | Meaning | Default |
|---|---|---|
--callsign <CALL> |
Callsign to send as the morse ID | — |
--morse-file <f> |
Play a recorded WAV as the ID instead | — |
--wpm <n> |
Morse speed in words per minute | 15 |
--tone <hz> |
Morse tone frequency | 700 |
--repeats <n> |
Times the ID plays per cycle | 5 |
--gap <seconds> |
Quiet time between cycles | 30 |
--random-gap <s> |
Add 0–n random extra seconds to each gap | 0 |
--cycles <n> |
Cycles before exiting; 0 = run until stopped |
0 |
--start <HH:mm> |
Wait until this time of day before transmitting | — |
--stop <HH:mm> |
Stop transmitting at this time of day | — |
Examples:
# Faster morse, lower tone, one-minute gaps
java -jar fox.jar --callsign W1ABC --wpm 20 --tone 600 --gap 60
# Harder hunt: gaps vary randomly between 30 and 90 seconds
java -jar fox.jar --callsign W1ABC --random-gap 60
# Run a timed hunt from 09:00 to 12:00
java -jar fox.jar --callsign W1ABC --start 09:00 --stop 12:00
# Use a recorded ID instead of the synthesizer
java -jar fox.jar --morse-file myid.wav--start/--stop are same-day times; the fox waits for the start time,
then exits at the stop time.
Requires Java 26 or newer (e.g. brew install openjdk on macOS).
javac -d out/classes src/fox/*.java
jar --create --file fox.jar --main-class fox.Fox -C out/classes .Or grab fox.jar from the releases page — CI builds it on
every push and attaches it to releases on v* tags.
This software keys a transmitter. Transmitting on amateur radio bands
requires an appropriate license, and you must identify with your own
callsign and follow your local regulations (in the US, FCC Part 97) on
power, frequency, and station identification. Use a callsign you are
licensed to operate under — don't transmit N0CALL or someone else's call.
The authors provide this tool as-is and accept no responsibility for how it
is used.
Contributions are welcome — see CONTRIBUTING.md and the Code of Conduct. Changes are tracked in CHANGELOG.md.
GNU General Public License v3.0 © rbibby53
This program is free software: you can redistribute it and/or modify it under the terms of the GPL as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.