There is already a number of different fox hunting designs out there—both commercial and hobbyist built. Therefore, there is no practical reason to make another design. The design I came up with and shared on this page came about because of a combination of three factors:
The whole design is centered around an ATmega48P but could be easily adapted to other (similar) AVR microcontrollers. The details of the design, its limitations, as well as construction instructions can be found in the manual.
If you wish to build the firmware from source instead of downloading the binary files (see the downloads section below), you must have:
First, you need to get the source code. The code is stored in a Mercurial repository which you can clone to your computer:
$ hg clone https://hg.sr.ht/~jeffpc/fox
Then change to the newly created directory, and run make:
$ cd fox $ make
Note: the system you are on may call the BSD make something else, for example bmake.
When the build completes, you'll have the following files (all targeting the ATmega48P microcontroller):
You can download these instead—see the download section below.
In addition to the firmware itself and the fuses config file, you also need the eeprom contents file. This can be generated using the gen-eeprom.py script in the source directory. For example:
$ ./gen-eeprom.py Usage: /home/jeffpc/src/cwfox/gen-eeprom.py <callsign> <mode> <p. tones> <key on> <key off> <stride delay> <callsign> is used for morse ID <mode> is one of: 0 = fixed tone pattern 1 = linear feedback shift register tone pattern 2 = morse ID only <p. tones> is number of tones to play for in tone pattern <key on> is number of samples to wait between key on and first sample <key off> is number of samples to wait between last sample and key off <stride delay> is the number of seconds between message starts $ ./gen-eeprom.py MYCALL 0 80 65535 4096 60
You should now see a fmfox.eeprom file in the current directory, which will use the fixed tone pattern of 80 tones, followed by MYCALL in Morse code. The key-on delay is 65535 samples (just under 4 seconds) and the key-off delay is 4096 samples (0.25 seconds).
At this point, you can program the microcontroller. I use minipro and a MiniPRO TL866II+ programmer. Because I'm lazy, I added a make target to do the programming for me. It programs the flash with the .bin file, the fuses with the .conf file, and the eeprom with the .eeprom file.
$ make program
The microcontroller is now ready to use in the circuit.
Revision A: manual, schematic, ELF, bin, ihex, fuses
If you have any questions or suggestions please direct them to jeffpc@josefsipek.net or use one of the other contact methods. If you found a bug, either use these contact methods to let me know about it, or file a bug.