This project contains the hardware and firmware for the PropNuts WizardTracker, an RSSI-based lap timer for drone racing.
The KiCad files can be found under hardware/
.
The current revision (v2) allows for a total of either eight receivers, or six receivers with voltage and temperature monitoring. A voltage regulator and XT60 are mounted onboard to provide power.
You can put together a full system for around ~£65.
- RX5808s (6x or 8x)
- Arduino Nano
- BEC (5V)
- XT60
- LM35
- Resistors (1x 330, 1x 10k, 1x 100k)
- LEDs
- Schottky Diode (1x 1N5817)
- Pin Headers
These are affiliate links.
- Grab the latest version of the Arduino IDE.
- Clone the repository and open
firmware/firmware.ino
. - Edit
Config.h
to your needs. - Compile and flash the code.
- Pray the magic smoke stays in.
On boot, the firmware opens serial at 250000bps
. After a short delay, it will
begin sending RSSI values for each module, seperated by a space, ending in a new
line. Each line is prefixd with r
.
In calibrated output mode, values range between 0
to 255
. In raw output
mode (default), values range between 0
to 1023
.
< r 110 220 150 243 135 254
< r 140 231 143 192 148 244
... etc
If enabled, voltage and temperature values will be sent periodically. Voltage
is prefixed with v
and temperature is prefixed with t
.
< v 16.08
< t 56.33
... etc
The command parser is extremely niave, with little to no error checking. Expect strange results with malformed commands. All command should end in a new line character.
Frequencies can be set by sending f <index> <frequency>
. These frequencies
will be saved and reloaded on startup.
> f 0 5745
< ok
> f 1 5975
< ok
... etc
Modules can be calibrated using n
(minimum) and m
(maximum). These
calibration values will be saved and reloaded on startup. The device must be
rebooted for calibration to take effect.
[all modules set to same frequency]
[transmitter powered down]
> n
< ok
[transmitter powered up]
> m
< ok
Output can be toggled between raw output using r
, and calibration output
using s
. The default mode is raw output. This setting is saved and will be
reloaded on startup.
> r
< ok
< r 395 345 299 405 514 445
< ... etc
> s
< ok
< r 0 5 8 1 10 13
< ... etc
Information about the device can be requested using ?
. The device will respond
in the format ? <module count> <frequency 1>...<frequency n> <raw mode>
.
> ?
< ? 6 5695 5695 5695 5695 5695 5695 1
[6 receivers all on 5695MHz, with raw mode enabled]
< ok
The source code for this project is based on my rx5808-pro-diversity rewrite.
This project is licensed under the terms of the MIT license.