-
Notifications
You must be signed in to change notification settings - Fork 62
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #38 from scottgchin/release-0.5
Release 0.5
- Loading branch information
Showing
54 changed files
with
11,166 additions
and
1,712 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,23 @@ | ||
# Delta 5 Race Timer | ||
|
||
### Description: | ||
<img src="doc/img/delta5racetimer.jpg" align="right" alt="Delta5 Race Timer"/> | ||
|
||
Multi-node radio frequency race timer for drone racing. This timing system uses the 5.8Ghz video signals being broadcast by FPV racing drones to trigger a lap timer; no additional equipment required on the drone. Each receiver node is tuned to the video frequency that a drone is broadcasting on. Each of the receiver nodes are connected to a raspberry pi, which aggregates the data and also provides a simple user interface for the race director. Up to eight video frequencies can be tracked in a race. | ||
Multi-node radio frequency race timing system for FPV drone racing. Uses the 5.8Ghz video signals already being broadcast by each drones to trigger a lap timer; no additional equipment is required on the drone. | ||
|
||
### Facebook Group page: | ||
Have questions? Comments? Join us at the Delta 5 Race Timer Facebook Group page and we'll try to help troubleshoot. | ||
https://www.facebook.com/groups/Delta5RaceTimer/ | ||
|
||
### Video Demo (Note: video shows the shows 4 Receiver Node version): | ||
https://youtu.be/UdelgqwngX4 | ||
Each receiver node is tuned to the video frequency that a drone is broadcasting on and then connected to a raspberry pi. By default, up to eight racing drones can be tracked in a race. | ||
|
||
### Hardware and Software Setup Instructions | ||
[/doc/Hardware and Software Setup Instructions.md](/doc/Hardware%20and%20Software%20Setup%20Instructions.md) | ||
### Major Features | ||
* The system hosts its own web server which is used to control the system, no additional software is needed, any device with a web browser can connect | ||
* Automatic calibration; the system sets triggers at the start of each race | ||
* Manage pilot names, assign them to heats, and after each race save the results to a local database | ||
* Supports the standard 40 FPV video channels | ||
|
||
### Tuning Parameter Explanation | ||
[/doc/Tuning Parameters.md](/doc/Tuning%20Parameters.md) | ||
### Hardware and Software Setup | ||
To build the system, follow the instructions here: [/doc/Hardware and Software Setup Instructions.md](/doc/Hardware%20and%20Software%20Setup%20Instructions.md) | ||
|
||
### User Guide | ||
[/doc/User Guide.md](/doc/User%20Guide.md) | ||
For initial setup and running races, follow these instructions: [/doc/User Guide.md](/doc/User%20Guide.md) | ||
|
||
### Support | ||
Have questions? Comments? Join us at the Delta 5 Race Timer Facebook Group page and we'll try to help troubleshoot. | ||
https://www.facebook.com/groups/Delta5RaceTimer/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,31 @@ | ||
# Tuning parameters | ||
# Auto Calibration and Sensor Tuning Parameters | ||
|
||
There are a few parameters that can be used to tune the behavior of the delta5 nodes. This document will attempt to explain them. | ||
The Delta5 Race Timer will auto-calibrate trigger values for the nodes during the first pass of the timing gate after starting each new race. | ||
|
||
## Auto Calibration | ||
In order for auto-calibration to work, the system has to make a guess about when a quad passes the gate the first time. In theory, the RSSI will go up as you approach the timing gate and then fall as you travel away from it. In practice, there is a lot of noise and the value oscillates quite a bit. | ||
|
||
The delta5 will auto-calibrate the trigger value for the nodes during the first pass of the timing gate. In order for auto-calibration to work, the system has to make a guess about when a quad passes the gate the first time. In theory, the RSSI will go up as you approach the timing gate and then fall as you travel away from it. In practice, there is a lot of noise and the value oscillates quite a bit. | ||
Auto-calibration works best with the launch pads and start gate positioned in the middle of a straight away. You want a clean rise and fall of the RSSI value for the first pass and for each lap after. | ||
|
||
Auto-calibration works best with the launch pads and start gate positioned in the middle of a straight away. You want a clean rise and fall of the RSSI value at the start and for each lap. | ||
### First Pass | ||
To help with this explanation we're going to use some example values talking about one quad passing the gate. Let's assume that with the quad powered off the sensor is getting a background RSSI value of 100. With the quad powered and on the launch pad some distance away the RSSI is 150. | ||
|
||
**Calibration Threshold** - Helps to add a buffer around the fluctuating RSSI value during the first pass. Before a peak in the RSSI value is considered to be a gate pass, it must first fall below *Peak RSSI - Calibration Offset*. Set this value higher if you are getting lower than expected trigger values because the fist pass has been triggered before actually crossing the gate. If you are not getting a pass record for the fist pass (and likely ever), lower this value; The quad has not gotten far enough away from the gate for the RSSI to fall below *Peak RSSI - Calibration Offset*. This value tends to be higher than the **Trigger Threshold** explained below. As the first pass is happening, the trigger value is being pulled up as the quad approaches the gate. A relatively large value is needed to avoid false positives because of noise in the RSSI signal. | ||
After the race start button is pressed and the quad starts moving towards the gate, the RSSI value will begin to increase from its initial value of 150. Eventually the quad passes the gate and the RSSI value starts to fall, let's say the Peak RSSI seen was 300. The trigger is set during this pass by subtracting the Calibration Offset (8) from the Peak RSSI (300), so the Trigger will be 292. | ||
|
||
**Calibration Offset** - Basically "Gate Size". When calibrating on the first pass, this value will be subtracted from the peak RSSI value to act as the trigger value. If you are missing some pass records, raise this value. If you are getting extra pass records when looping close to the start gate at another point in the course, you can try lowering this value. | ||
Now the system is waiting to detect when the quad has left the starting gate to confirm the Peak RSSI and Trigger values detected. It waits for the RSSI value to fall below the Trigger (292) minus Calibration Threshold (95) which is 197. Once the RSSI has dropped below 197 the system considers the first pass to be complete. | ||
|
||
## Other Passes | ||
### Future Passes | ||
|
||
**Trigger Threshold** - Similar to **Calibration Threshold** but used for all passes other than the calibration first pass. During a normal pass, the RSSI must fall below *trigger value - trigger threshold* in order to consider the pass complete. This value helps avoid multiple lap records during a single pass because of noise in the RSSI. Raise this value if you get several pass records while passing the start gate. Lower this value if the quad has to travel very far before a passing event is triggered. | ||
The system is now waiting for the RSSI to rise above the Trigger value of 292 again. Once this happens it will consider the next gate pass to be happening. It will keep track of the Peak RSSI value seen and the time it happened, and continue to do so until the RSSI value falls below Trigger (292) minus Trigger Threshold (40) which is 252. Once the RSSI has dropped below 252, that gate pass is complete and the lap information is sent to the Raspberry Pi. | ||
|
||
**Note**: In all cases, the passing time is taken when the RSSI has reached it peak (when the quad should be closest to the sensor). Even if larger threshold values cause there to be a delay in the lap being reported, the timing information will sill be correct. | ||
Note that the passing time is taken when the RSSI has reached it peak (when the quad should be closest to the sensor). Even if larger threshold values cause there to be a delay in the lap being reported, the timing information will sill be correct. | ||
|
||
### Tuning | ||
|
||
##### Calibration Offset | ||
If you are missing some passes, it means the Calibration Offset value is too small and the quad is not reaching as high a peak RSSI value as was seen on the first pass. Increase Calibration Offset to ensure all laps are captured. | ||
|
||
##### Calibration Threshold | ||
Adds a buffer around the fluctuating RSSI value during the first pass. Increase the value if you are getting lower than expected trigger values because the fist pass has been triggered before actually crossing the gate. If you are not getting a pass record for the fist pass (and likely ever), decrease this value. A relatively large value is needed to avoid false positives because of noise in the RSSI signal. | ||
|
||
##### Trigger Threshold | ||
Increase this value if you get several pass records while passing the start gate. Lower this value if the quad has to travel very far before a passing event is triggered. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,46 +1,50 @@ | ||
# Delta 5 Race Timer User Guide | ||
|
||
### Hardware and Software Setup | ||
1. Follow the instructions here if not done already: [/doc/Hardware and Software Setup Instructions.md](Hardware%20and%20Software%20Setup%20Instructions.md) | ||
Follow the instructions here if not done already: [/doc/Hardware and Software Setup Instructions.md](Hardware%20and%20Software%20Setup%20Instructions.md) | ||
|
||
### Connect to the server | ||
1. Open a browser and type in the ip address of the timing system on your network using port 5000 | ||
### Connect to the Server | ||
Find the ip address of the raspberry pi by opening the 'Clients' list on your routers admin page. | ||
|
||
Open a browser and type in the ip address of the timing system on your network using port 5000 or as configured in 'server.py'. | ||
``` | ||
XXX.XXX.XXX.XXX:5000/ | ||
``` | ||
|
||
### Settings | ||
Pages reserved for the race director are password protected with the default user 'admin' and password 'delta5'. | ||
|
||
### System Settings and Configuration ('Settings' page) | ||
|
||
1. Go to the 'Settings' page | ||
Start by resetting the database at the start of each race event. You have the option of a complete reset 'Reset Database' or if mostly the same pilots are racing 'Reset Keep Pilots'. | ||
|
||
2. Start by resetting the database by clicking 'Reset Database' at the bottom of the page | ||
Frequencies are configured under the Nodes heading. Defaults are IMD for up to 6 nodes or Raceband when 7 or 8 nodes are detected. Use the dropdowns to change frequencies as needed. | ||
|
||
3. Frequencies are defined under the Nodes heading, defaults are IMD for up to 6 nodes or raceband when 7 or 8 nodes are detected | ||
Click 'Add Pilot' until you have an entry for each pilot racing and then update the pilot callsigns and names. | ||
|
||
4. Click 'Add Pilot' until you have an entry for each pilot racing | ||
Click 'Add Heat' until there are enough for all the pilots racing. Assign each pilot to a heat using the drop down buttons. The '-' pilot can be used for blank positions. | ||
|
||
5. Edit the pilot callsigns and names | ||
If you are noticing any missed or multiple laps when passing the gate, the sensor tuning values can be adjusted from defaults with a detailed description found here [/doc/Tuning Parameters.md](Tuning%20Parameters.md) | ||
|
||
6. Click 'Add Heat' until you have enough for all the pilots | ||
### Running Races ('Race' page) | ||
|
||
7. Assign each pilot to a heat using the drop down buttons | ||
The race director will spend most of their time on this page running races. | ||
|
||
### Running Races | ||
Start by selecting the 'Heat' button to set which heat will be racing. | ||
|
||
1. Go to the 'Race' page | ||
Click 'Start Race' for a count up timer starting from zero with no defined end. This is used for heads up racing, first to finish X laps. The race director clicks the 'Stop Race' button after all pilots have completed their laps. | ||
|
||
2. Select the 'Heat' button to select which heat will be racing | ||
Alternatively click the 'Start Race 2min' for a count down timer from two minutes. This is used for most laps racing, each pilot has two minutes to complete as many laps as possible. After the last buzzer and all pilots have completed their last lap, click the 'Stop Race' button. | ||
|
||
3. Click 'Start Race' for a count up timer and 'Start Race 2min' for a count down timer | ||
For each node in a row under the pilot callsigns will be the RSSI values, Current RSSI / Trigger / Peak. This gives the race director immediate sensor feedback for any adjustments that might need to be made. | ||
|
||
6. When the race is complete, click 'Stop Race' | ||
During a race there will be a 'X' button next to each lap. This will discard that lap and move it's time into the next lap if it's not the last lap. It's generally perferable to tune the system to pick up more laps instead of missing laps and this is how the extras are deleted. At the end of the race you may have pilots flying by the start gate when they go to land, this is also how you remove those laps which might get picked up. | ||
|
||
7. Click 'Save Laps' to store the results of a good race or 'Clear Laps' for a false start or as needed | ||
After each race, click 'Save Laps' to store the results of a good race to the database, or 'Clear Laps' for a false start or as needed to discard the current laps. | ||
|
||
### Saved Races | ||
### Saved Races ('Rounds' page) | ||
|
||
1. Saved races can be seen on the 'Rounds' page | ||
This is a public page, previous race results are displayed on this page sorted by heats and rounds. | ||
|
||
### Pilots and Heats | ||
### Pilots and Heats ('Heats' page) | ||
|
||
1. A summary of pilots and their heats is on the 'Heats' page | ||
Also a public page, shows a summary of pilots and their heats with channel assignment. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.