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
An ESP32-based radio orienteering controller. This repo is for
the code. There will be another repo for the schematic and PCB
design.
the code. See below for hardware comments and a link.
## What
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
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
smartphone or tablet).
The [ARRL ARDF page](https://www.arrl.org/amateur-radio-direction-finding)
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
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).
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
included. The RTC runs on a watch battery to track time when the
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
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,
@ -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
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
- **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
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
#### Access Point
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.
The `Submit and Reboot` button only affects these fields.
#### 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
GNU GPLv3. See `LICENSE` file for details, and
@ -63,4 +92,6 @@ for similar design insparation.
## Questions and Contributing
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).