Readme and license #57

Merged
W1CDN merged 11 commits from w1cdn-patch-1 into main 2023-11-02 21:01:17 -05:00
Showing only changes of commit 15cad51881 - Show all commits

View File

@ -1,7 +1,6 @@
# Vulpes # Vulpes
An ESP32-based radio orienteering controller. This repo is for An ESP32-based radio orienteering controller. This repo is for
the code. There will be another repo for the schematic and PCB the code. See below for hardware comments and a link.
design.
## What ## What
Radio orienteering, or amateur radio direction finding (ARDF) is a Radio orienteering, or amateur radio direction finding (ARDF) is a
@ -11,13 +10,14 @@ it when and what to transmit.
This is my attempt at a simple, easy-to-use controller with a low This is my attempt at a simple, easy-to-use controller with a low
parts count. Rather than programming a microcontroller and/or parts count. Rather than programming a microcontroller and/or
using DIP switches, time delays, and sync cables, the ESP32 development using DIP switches, delayed starts, and sync cables, the ESP32 development
board lets you set up each controller using a web browser (e.g., on your board lets you set up each controller using a web browser (e.g., on your
smartphone or tablet). smartphone or tablet).
The [ARRL ARDF page](https://www.arrl.org/amateur-radio-direction-finding) The [ARRL ARDF page](https://www.arrl.org/amateur-radio-direction-finding)
is an OK starting point for learning about radio orienteering, but is an OK starting point for learning about radio orienteering, but
there are probably better ones. there are probably better ones. I've never done an RO event before, but have
experience racing and directing adventure races.
## Hardware ## Hardware
I designed a simple custom printed circuit board (PCB) to make I designed a simple custom printed circuit board (PCB) to make
@ -25,11 +25,15 @@ assumbling this controller easy to do. The repo for schematic and
board design is here: [vulpes_hardware](https://amiok.net/gitea/W1CDN/vulpes_hardware). board design is here: [vulpes_hardware](https://amiok.net/gitea/W1CDN/vulpes_hardware).
Because the ESP32 doesn't track time when it is powered off, and Because the ESP32 doesn't track time when it is powered off, and
I wanted to avoid specific delays (e.g., push a button two hours I wanted to avoid delayed starts (e.g., push a button exactly two hours
before an event starts), an additional real-time clock (RTC) is before an event starts), an additional real-time clock (RTC) is
included. The RTC runs on a watch battery to track time when the included. The RTC runs on a watch battery to track time when the
controller is not powered on. controller is not powered on.
Morse code is sent according to the parameters set up in the UI. The GPIO
pin triggers a transistor that acts as a switch to close the key connection
on the radio. Code is also shown on the onboard LED of the ESP32 dev board.
## Software/Firmware ## Software/Firmware
Power on the controller by plugging in a micro-USB cable to a 5V Power on the controller by plugging in a micro-USB cable to a 5V
source (e.g., computer or battery pack). After the device is powered on, source (e.g., computer or battery pack). After the device is powered on,
@ -41,14 +45,39 @@ to `http://192.168.0.1` (note "http" not "http**s**"). You will see the
settings below. Note that you will not be able to access the Internet while settings below. Note that you will not be able to access the Internet while
connected to this network, and each controller sets up a separate network. connected to this network, and each controller sets up a separate network.
**Web UI**
![screenshot of the Vulpes web UI](doc/vulpes_gui.png)
### General Settings ### General Settings
- **Sending Program**
- Off - nothing is sent
- Continuous - the message in `Message` is sent to the key GPIO and the
onboard LED
- Cycle - the message in `Message` is sent according to the `Cycle Settings`
- **Message**
- Custom Message - a message defined in `Custom Message`
- MOE - transmitter 1 message (dit)
- MOI - transmitter 2 message (dit dit)
- MOS - transmitter 3 message (dit dit dit)
- MOH - transmitter 4 message (dit dit dit dit)
- MO5 - transmitter 5 message (dit dit dit dit dit)
- **Custom Message** - a custom message to be sent when "Custom Message" is selected in `Message`
- **Speed** - speed of Morse code transmission in words per minute (WPM)
### Cycle Settings ### Cycle Settings
These settings only apply when "Cycle" is chosen under `Sending Program`
- **Cycle Start Time** - when to start the next cycle/event (only HH:MM:SS day-of-month matter)
- **Step Length** - how long this transmitter will transmit on each cycle
- **Cycle ID** - what order transmitter is this (1st, 2nd, 3rd, etc.)
- **Number of Transmitters** - how many transmitters there are
### Network Settings ### Network Settings
#### Access Point The `Submit and Reboot` button only affects these fields.
When using as a wireless access point, the network SSID is "vulpes"
with no password. Navigate to http://192.168.0.1 to access webform. #### Network access
- **Access Point** - when using as a wireless access point, the network SSID is "vulpes"
with no password. Connect to wireless network "vulpes" and point your browser to URL http://192.168.0.1 (http, not https)
- **Existing Wireless Network** - connect to the same existing network and use the proper IP address (useful if you have access to the router or a serial connection). If an existing network can't be connected to, an access point will be set up.
## License ## License
GNU GPLv3. See `LICENSE` file for details, and GNU GPLv3. See `LICENSE` file for details, and
@ -63,4 +92,6 @@ for similar design insparation.
## Questions and Contributing ## Questions and Contributing
Until I get Gitea set up completely, please email me at w1cdnQRTw1cdn.net, Until I get Gitea set up completely, please email me at w1cdnQRTw1cdn.net,
but replace "QRT" with @. but replace "QRT" with @.
I developed the C++ code in Visual Studio Code (VSCode).