OpenARDF-WB8WFK-ARDF-Foxori.../README.md

9.3 KiB

WB8WFK ARDF Foxoring Transmitter

This is a simple, inexpensive, transmitter controller for conducting ARDF Foxoring competitions and for demonstrating ARDF principles. The software project is an Arduino script that builds for and runs on most Arduino-like products, including AdaFruit's Metro Mini 328, or SparkFun's Arduino Pro Mini 328, and many more.

Controller support for all the common ARDF competition formats is provided: Classic, Sprint, and Foxoring.

<h2>Software</h2>
<p>The software is a proper Arduino script that will open and build without warnings or errors in Arduino IDE version 1.8.12 and later. It has also been shown to work with the online <a href="https://create.arduino.cc/editor">Arduino Web Editor</a>. The Arduino IDE can also be used to program a device that contains a compatible bootloader. Most Arduino products ship with a bootloader pre-installed.</p>

<p>After being programmed, the controller can be configured via a serial port on the board. An Arduino board that includes a USB-to-Serial converter will allow you to configure the controller with a simple USB cable (standard to micro) connected between a USB port on your computer to one on the Arduino board. Less sophisticated Arduino boards lacking a USB-to-Serial converter will require a special FTDI cable like <a href="https://www.adafruit.com/product/70">AdaFruit's FTDI Serial TTL-232 USB Cable</a>, or <a href="https://www.sparkfun.com/products/9718">SparkFun's FTDI Cable 5V</a>.</p>

<p>The controller includes an output pin for controlling a transmitter for sending Morse code characters (high = key down; low = key up) and a separate pin that sends the Morse code as audio tones that can be used to drive a speaker. The controller can also provide a sequence of starting-tones prompting competitors to begin a competition, and can thus serve as an electronic starting "gun" for use in ARDF events.</p>

<h3>Serial Commands</h3>
<p>The controller serial interface operates at 57600 baud that can be accessed using any serial TTY interface program such as PuTTY or Arduino's own Serial Monitor tool. It provides a command prompt > indicating that it is ready to receive any of the following commands.
    <p>

        <pre><p><b>> CAL [num]</b>  <= <i>* Sets the clock calibration for precise timing</i><br>

> CAL <= Displays the clock calibration setting
> DIP [val] <= * Sets the competition format, overriding the DIP switch settings
> DIP <= Displays the competition format setting
> FAC <= Sets saved EEPROM values to their original defaults
> GO <= Starts operation from zero seconds, equivalent to pressing the sync button
> ID [string] <= * Sets the callsign that gets sent
> ID <= Displays the saved callsign setting
> LED [on|off] <= * Turns on/off LED pin
> LED <= Displays the LED pin setting
> RST <= Resets the processor
> SPD ID [num] <= * Sets the ID code speed in WPM
> SPD <= Displays the ID code speed setting
> STA [on|off] <= * Turns on/off the starting tones function
> STA <= Displays the starting tones setting
> SYN [on|off] <= * Turns on/off synchronization using sync button or "GO" command
> SYN <= Displays the synchronization setting
> TEM <= Displays the processor's temperature in C
> VER <= Displays the software version number

        <p>* These values get stored to EEPROM and are retained between power cycles. </p>
        <h2>Hardware</h2>
        <p>Look in the Hardware folder for all hardware-related documents</p>
        <h3>Pinout</h3>
        <pre><p><b>PB1 - Board Pin 9  (Output)</b> <= Audio Out (=Gnd when no tone)<br>

PB5 - Board Pin 13 (Output) <= LED On=+V
PD2 - Board Pin 2 (Output) <= Key/PTT On=+V
PD3 - Board Pin 3 (Input) <= Synchronize (mom. switch to Gnd)
PD4 - Board Pin 4 (Input) <= DIP Switch Bit 0 (switch to Gnd)
PD5 - Board Pin 5 (Input) <= DIP Switch Bit 1 (switch to Gnd)
PD6 - Board Pin 6 (Input) <= DIP Switch Bit 2 (switch to Gnd)

        <h2>Usage</h2>
        <p>The transmitter can be configured using the serial port, or using the DIP switch and sync-button hardware interface. Only a subset of the available configurations is available when using only the hardware interface. Configuring the DIP setting with a serial port command to anything but 0 (zero) will disable the hardware DIP switch.</p>
        <p>
            <table>
                <tr>
                    <th>Configuration</th>
                    <th>Software Commands</th>
                    <th>Hardware Settings</th>
                </tr>
                <tr>
                    <td>Homing Beacon</td>
                    <td>> DIP CLASSIC BEACON<br>[Note: the DIP switch must also be set to 0-0-0]</td>
                    <td>DIP = 0-0-0</td>
                </tr>
                <tr>
                    <td>Classic Fox#1</td>
                    <td>> DIP CLASSIC 1<br>> GO</td>
                    <td>DIP = 0-0-1<br>Sync to start</td>
                </tr>
                <tr>
                    <td>Classic Fox#2</td>
                    <td>> DIP CLASSIC 2<br>> GO</td>
                    <td>DIP = 0-1-0<br>Sync to start</td>
                </tr>
                <tr>
                    <td>Classic Fox#3</td>
                    <td>> DIP CLASSIC 3<br>> GO</td>
                    <td>DIP = 0-1-1<br>Sync to start</td>
                </tr>
                <tr>
                    <td>Classic Fox#4</td>
                    <td>> DIP CLASSIC 4<br>> GO</td>
                    <td>DIP = 1-0-0<br>Sync to start</td>
                </tr>
                <tr>
                    <td>Classic Fox#5</td>
                    <td>> DIP CLASSIC 5<br>> GO</td>
                    <td>DIP = 1-0-1<br>Sync to start</td>
                </tr>
                <tr>
                    <td>Classic Demonstration</td>
                    <td>> DIP CLASSIC DEMO</td>
                    <td>DIP = 1-1-0</td>
                </tr>
                <tr>
                    <td>Foxoring</td>
                    <td>> DIP FOXORING</td>
                    <td>DIP = 1-1-1</td>
                </tr>
                <tr>
                    <td>Spectator Beacon</td>
                    <td>> DIP FOXORING SPEC</td>
                    <td>N/A</td>
                </tr>
                <tr>
                    <td>Sprint Fox Slow #1</td>
                    <td>> DIP SPRINT S1</td>
                    <td>N/A</td>
                </tr>
                <tr>
                    <td>Sprint Fox Slow #2</td>
                    <td>> DIP SPRINT S2</td>
                    <td>N/A</td>
                </tr>
                <tr>
                    <td>Sprint Fox Slow #3</td>
                    <td>> DIP SPRINT S3</td>
                    <td>N/A</td>
                </tr>
                <tr>
                    <td>Sprint Fox Slow #4</td>
                    <td>> DIP SPRINT S4</td>
                    <td>N/A</td>
                </tr>
                <tr>
                    <td>Sprint Fox Slow #5</td>
                    <td>> DIP SPRINT S5</td>
                    <td>N/A</td>
                </tr>
                <tr>
                    <td>Sprint Fox Fast #1</td>
                    <td>> DIP SPRINT F1</td>
                    <td>N/A</td>
                </tr>
                <tr>
                    <td>Sprint Fox Fast #2</td>
                    <td>> DIP SPRINT F2</td>
                    <td>N/A</td>
                </tr>
                <tr>
                    <td>Sprint Fox Fast #3</td>
                    <td>> DIP SPRINT F3</td>
                    <td>N/A</td>
                </tr>
                <tr>
                    <td>Sprint Fox Fast #4</td>
                    <td>> DIP SPRINT F4</td>
                    <td>N/A</td>
                </tr>
                <tr>
                    <td>Sprint Fox Fast #5</td>
                    <td>> DIP SPRINT F5</td>
                    <td>N/A</td>
                </tr>
                <tr>
                    <td>Sprint Demonstration</td>
                    <td>> DIP SPRINT DEMO</td>
                    <td>N/A</td>
                </tr>
                <tr>
                    <td>Starting Tone Generator</td>
                    <td>> DIP [any of the above]<br>> STA ON<br>> GO</td>
                    <td>DIP = any<br>Sync to start<br>[Note: Starting Tone Generator can only be enabled with a serial command.]</td>
                </tr>
            </table>

        </p>