Skip to content

rbibby53/HAMRadioFoxHuntControllerJava

HAM Radio Fox Hunt Controller

build License: GPL v3 Java 26

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.

Quick start

java -jar fox.jar --callsign W1ABC

That 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.

Options

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.

Build

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.

Operating note

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.

Contributing

Contributions are welcome — see CONTRIBUTING.md and the Code of Conduct. Changes are tracked in CHANGELOG.md.

License

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.

About

Drives a hidden transmitter ("fox") for amateur radio fox hunts — synthesizes a morse-code ID from your callsign, with scheduling and randomized gaps. Java, zero dependencies.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages