Professional Documents
Culture Documents
Getting started
Event Selection
An event is basically a collection of pilots, races and settings that make up a particular race day.
The first time an event is created for you with some default parameters. After that you’ll use the
buttons towards the bottom of the page to make new events / remove events / clone events.
Event Name
Fairly obvious what this does. Names the event so you can find it later. Also when the software
is running it shows up in the top left to the screen so name it something appropriate!
Laps
How many laps to do. In a Race it specifies the end of the race, in TimeTrial it specifies the
number of consecutive laps that pilots will be timed.
PB Laps
The PB stands for Personal Best. This is a timed consecutive lap count that will show up on the
top of a racers screen. In a race you’d typically leave it as 1 lap so that each pilot's best lap time
is shown. In time-trial you’d likely match it to the Laps setting so their best consecutive laps are
shown. When a new PB has been made in this race it will come up in Green lettering. When a
pilot has the best PB of any pilot it will be Purple.
Race Length
At the end of this timer the announcer will call the pilots to finish their laps and land. Each pilot
can only record 1 lap after the timer and the rest will be marked invalid. They can be made valid
from the lap editor.
End of Lap
The first time the pilots fly through the timing gate marks the End of the first lap. Use this
option if your track starts and doesn’t immediately go through the timing system.
Holeshot
The first time the pilots fly through the timing gate marks the Start of the first lap. Use
this option if your track starts and the pilots fly through the timed gate right away. This
first detection will give the system a Holeshot time and is ideal for TimeTrials as the
pilots don’t waste time doing an uncounted first lap.
Race Length
The length of the race timer in seconds. At the end of the timer the announcer will beep, then
call out pilots to finish their lap and then land. However the race continues until the Race
Director presses the Stop Race button.
Main Screen
Once you’ve set up your event and pressed Ok you’ll be brought to the main screen which is
laid out as follows..
● Pilot list on the left. All pilots in this event are shown here. Right click it to add pilots. The
pilot list will hide itself during races to maximise the size of the FPV feeds.
● Event and Race info at the top. Many of these items are clickable for quick changes. For
example laps or race type.
● Tabs are also shown across the top. Allowing you to choose what to display in the main
area of the screen.
● Race controls and settings are on the right hand side. The main way to access the
settings of the following options is the settings button near the top right of the screen. It
looks like 3 horizontal lines.
Timing Settings
Timing system settings are available from the Settings Button. Open up the settings and let's
configure a timing system.
Lap RF 8 way
The Lap RF defaults to an ip of 192.168.1.9. So trackside comes configured to connect
to that ip by default.
Your laptop will also need to be configured to have an IP in the same range, so
192.168.1.X where X is something between 1 and 255. Of course don’t use 9 as that’s
the address of the laprf.
if you’re plugging in directly just give yourself a static IP in windows network settings
within that 192.168.1.X range. Different versions of windows handle this differently, but
you should be able to youtube a guide on how to set it.
If you’re using a router you’ll need to setup your DHCP server to give ip’s in the
192.168.1.10 - 192.168.1.255 range. That way the router can provide an address to your
computer. Making the range start at 10 will stop it from ever conflicting with the LapRF.
Lap RF Puck
The puck is a little trickier to get going. For whatever reason the puck ships in a
communication mode that is incompatible with its own libraries. So to switch its USB
mode you need to use a terminal program (like Putty) to connect to it via the com port
and type the command Upp and press enter. Just Capital U then 2 p’s and enter.
After that give it a full reboot and it should now be in binary mode. If you’re having any
problem check out my biggest competitors youtube video on the subject
https://www.youtube.com/watch?v=14CA9nAUJSw
After that it’s just a matter of selecting LapRF Puck USB and using the drop down list to
select its com port. It should connect and behave just like its bigger brother, just less
accurately.
Video
Video lap detection is in very early stages of development but can actually work
reasonably well. First you need to set up a gate on your track that is a bright colour that
is unlike the surrounding colours. Red / Pink / Magenta are all good choices. The larger
the more colourful the gate is the more likely it is to work.
Then set the colour you’ve chosen into the RGB values of the video settings. For red
you’d put R as 255 (the max value).
Then, make sure “Show Info” is turned on and have someone fly the track. You’ll need to
bring up their pilot video feed. At the top of their feed you’ll see the information of how
much of the colour the timing system can see. The main number to watch is “max” and
see what it peaks at when the drone flies through coloured gate. Also watch how it goes
around the rest of the track. Then, go back into settings and pick an Activity Threshold
value a little less than the max value you saw as they went through the gate. Choose a
Trigger threshold of a value more typical of just cruising the track not near the coloured
gate.
Try it out now, if it isn’t working great try making sure your color is set correctly. You can
also lower the sensitivity to the particular color by changing the Color Sensitivity from its
default 0.9 to 0.8.
You may be able to time via video! Or maybe it won’t work at all. That’s how it is at the
moment!
Dummy
A little random number generator. Can be configured to spit out random times so that
you can debug your OBS feed and layouts with realish looking data.
Multiple Timing Systems
FPVTrackside supports having multiple timing systems. The way it works is there will be one
main timing system that does each Lap, then as many additional split timing systems as you
want to put on your track. Pilots are not required to have triggers on the split timers, if a split
timing system misses a trigger, the lap will count as normal.
When using multiple timing systems just press Add to add as many as you require. The list on
the left will show you in brackets what function each timing system is performing. They can be
dragged around to position them in the right spots.
Video Settings
FPVTrackside is all about video. ‘Video settings’ is accessible from the Settings button on the
main screen. Video to channel mapping is done on a left to right top to bottom order. Add an
additional “device” by using the add button at the bottom and then configuring the following
properties.
No Channel
Un-assigns this video feed. It won’t be used in FPVTrackside
Channel Assignment
Assigns the selected channel to this feed. When a pilot flies on this channel, this feed will be
shown.
Camera
Assign this feed to be a Launch or Commentator camera. Launch is typically pointed at the
launch blocks and commentator at the crowd or the race director. See the section on scenes for
more info.
Split
Splits this feed into multiple feeds. So if you have a 2x2 security system, you’d split it using this
option.
Flipped Vertically
Some devices are inverted. Use this to fix it.
Channel Splits
Generally the video sources used by FPVTrackside come via a security system that divides the
pilots video feeds up into sections of the screen. This is the setting you’d configure to match
your security system. For example, if you security system outputs 9 sub video feeds in a 3x3
grid you would select three by three. For a security system with 4 outputs, you’d choose two by
two. Or if each pilot gets their own video feed just choose Single Channel.
Overlay
For the non-fpv source types a text description will be added to the screen in the specified
position. It can also be disabled and renamed. This is now done on the main FPVTrackside
screen. Right click on the camera feed you want to change and you’ll see the overlay options.
To also stream, you’ll need to run a second OBS instance capturing the FPVTrackside window
as normal.
Theme Settings
The visual theme of the software can be chosen in Theme Settings. There are a number of
defaults you can choose from on the left and a small example on the right. Press Set Theme to
apply it.
Custom Themes
Themes are stored in the themes directory. Each theme will have its own directory with the
name of the theme.
Inside the theme there are a number of images and also the theme.xml that contains all of the
colour/texture data. The images can be modified with club logos etc.
The default included themes will be overwritten when a new version is installed. So before
customizing a theme, copy and rename one of the directories. Name it the name of your new
theme. When you restart trackside it will be there.
Theme.xml
UI elements are grouped together in themes. Below I have an example from themes for the
Editor. Which is the UI element you use to edit settings, events, laps and races.
<Editor>
<Border R="23" G="15" B="25" A="185" />
<Background R="30" G="22" B="32" A="185" TextureFilename="" />
<Foreground R="35" G="27" B="37" A="185" TextureFilename="" />
<Text R="255" G="255" B="255" A="255" />
</Editor>
Each line contains the 4 attributes needed to assign a colour. Red, Green, Blue and Alpha
(Transparency). All values are in the common 0 - 255 scale with 0 being darkest and 255 being
full colour. For Alpha, 0 is invisible and 255 fully visible.
Many elements also include the “TextureFilename” option which will override the color set if a
matching image is found with the given name. Basically, it lets you set the background of
various panels to an image. The image will be stretched and scaled to fit the given panel, so
make sure it’s shaped to match.
Channel Colors
These are also stored in the Theme xml file.
They’re stored in frequency order. So the lowest frequency channel will have the first color.
Second lowest, second color etc.
Channels grouped together that share a common frequency will share the same color.
Scenes
FPVTrackside has 3 scenes that automatically change based on Race state and show the
various input video feeds.
● Pre Race - Launch cam, commentator cam, pit cams
● Race - The normal FPV feeds
● Post Race - Results, commentator cam, next race
Scenes work really well when combined with the Round generation system which you can read
about later in the document. Once you have rounds setup you can move through to the next
race directly from the post race scene. You can effectively run the entire event just by clicking
the next race.
Both Pre race and Post race can be disabled in General Settings. Pre-race will also be
effectively disabled if you have no extra video inputs.
Channels
Channels are editable from the Settings button. It defaults to IMD6c. More channels can be
Added with the Add button.
Each event has its own set of channels. A set of channels can be saved as a new event’s
default using the checkbox in the bottom left of the Channel Settings screen.
Channel Groups
If you add multiple channels on the same frequency (for example HDZero 1 and Raceband 1) it
will automatically group these channels together and combine them as one slot in the Rounds
screen. This is handy when managing digital as detailed below…
This is particularly handy when combined with Channel Groups if you add a pilot to a slot with
both a Digital and an Analog channel. When added, the pilot will automatically be added to the
appropriate type based on their past race, or the channel they’re set to in the left hand pilot list.
To correct any changes or mis-assignments; Right clicking on the pilot in the race will bring up a
channel change menu.
Managing Pilots
Adding pilots
The pilot list is on the left hand side of the screen. Right clicking on it will bring up a menu to
Add, Edit or import the pilots.
● To add one pilot just click add pilot and type their name in the popup window.
● To import an event's worth of pilots go to your spreadsheet and select all your pilot
names and press copy, then in trackside press the “Import from clipboard” menu item.
The pilots will be shown to you in the pilot editor window, to finish the import press save.
Pilots are shared between events based on their lowercase pilot name. So when you add a pilot
that has been in one of your events before the same pilot in the database will be added to this
new event. Eventually the software will have per-pilots statistics across multiple events.
Removing pilots
To just remove one pilot right click on the pilots list and press remove. Pilots will not be deleted
they will just be removed from this event.
Changing Channels
You can change the channel of each pilot by clicking on the channel next to their name. Right
clicking the pilot list in general will give you the option to redistribute the pilots evenly across all
channels.
Running Races
Race
The pilots race to complete the specified number of laps. The announcer will call out the
pilot's position at the end of each lap. At the end of the race the result screen will show
pilots positions within this race.
TimeTrial
The pilots compete on consecutive lap times. However, the pilots can and will do more
than the specified laps and the best of those consecutive laps are chosen. The
announcer will call out consecutive lap times once the pilot has done the required
number of laps. At the end of the time trial when the race director presses stop the
results screen will show each pilot's best laps and their current position within the entire
event.
Practice
Very similar to the time trial in format however none of the times are ever counted
towards results. Basically a time trial that doesn’t count.
Casual Practice
Laps on all frequencies are recorded and there is no time limit. Pilots will be
automatically created with names based on the channel and race/round number, R1 (1-
1) for example. This mode is great if you just have a bunch of people who just want to
plonk down their drone and fly.
Freestyle
Timing system is disabled, lap related parts of the UI are hidden and the video feed is
shown front and center. The only active thing are the timers for Race Length.
If stop is pressed during the pre-start, before the start tone, the announcer will tell pilots to
disarm and the race will not begin.
Clearing pilots
Once pilots have been added to the race a new button appears that Clears all the current pilots
in a race. It looks like a dusting brush. It can only be pressed before a race begins, or after it is
finished.
Once a race has finished it must be pressed to clear the screen ready to run the next race.
Copying Results
Once a race has been completed, a new button appears that looks like a podium going into a
clipboard. Pressing this will copy the results of the current race into the clipboard so you can
paste it back into any spreadsheet you are using to run the event. There are several export
options in General Settings to configure which columns you want.
Reset race
Another icon that appears after a race has finished is the reset button. It looks like an arrow
going back on itself. Pressing it will clear the race results and reset the race back to the start so
you can do a rerun. There is a confirmation popup so you don’t accidentally do it.
Lap Editing
Disqualifying lap(s)
While a race is running the most typical problem you’ll get is an extra lap detection. Right click
on the lap and press Disqualify to remove that lap. As a faster method, you can also hold Ctrl
and left click that lap to disqualify it.
Splitting laps
If a detection has been missed by the timing system, but the lap after the missed detection was
correctly detected. You can split the longer lap into 2 laps with half the original time in each. To
do this right click the lap and select Split into 2.
Adding laps
Another solution to a missed lap is simply adding a lap at the current time. To do that right click
on the lap bar and select add. In a race this can be helpful as it will often give you correct
position information. However at the end of the race it will be worth going through and editing
the laps otherwise the manual add will often give the pilot new record times.
You can also edit the times of laps by clicking on the lap and adjusting the time. Keep in mind
the lap after the adjusted lap will also change in length, in the opposite direction.
Each race will be recorded into a video file in the Videos directory. After the race has ended
you’ll have the option to open the Replay tab. The tab has the video feeds of all pilots with a
playback tracking bar and controls along the bottom.
On the tracking bar are flags marking the start / end of the race and arrows marking each pilot's
lap in their respective channel colour.
If you’re not interested in certain pilots views in a replay you can remove them with the top right
X button on each of their feeds. Bring them all back with the Show All button along the bottom.
Shortcut Keys
Space - Play / Pause
, - Step backwards 1 frame
. - Step forwards 1 frame
Editing Laps
So all the normal lap editing functions work here in Replay as well. With the important extra
feature of laps added Manually will be added at the current video time. So if a pilot's lap was
missed by the timing system you can find the frame they crossed the line and add the lap then.
Generating rounds
If no races have yet been run, opening rounds is enough to generate the first round of the races.
However it is often worth right clicking the pilot list and redistributing all the channels before
starting the first round. That way everyone is nice and spread out over the channel range.
To add more rounds, press the + button and you’ll be given a few options.
Randomise
Nearly all pilots will be given a new channel in such a way to maximise how many new
opportunities there are to race someone they haven’t yet raced. In general you’d
generate 1 round of channel changes around the middle of the days racing and then
you’d go back to keeping their new channels.
Clone
Duplicates the previous round. Races and channels will be identical. Handy for time
trials if you just want the same groups to repeat.
There are a few options that only exist after all the races in the round have been finished. This is
because generating these round types relies on the results of the round.
Final
The results from all the previous rounds will be added up and the pilots will be sorted
into divisions based on their results. Top pilots will be in A, next top in B, and so on.
Unwanted races can be right clicked on and removed.
Double Elimination
For the first round of double elimination you’ll need to auto-fill a normal round and run as
normal.
Then at the end of that round add a new Double Elimination Round. The results from the
previous round will be used to create 2 brackets of pilots, winners and losers. From now
on just keep adding double elimination rounds. The system will automatically eliminate
pilots who have lost twice.
Show Points
Adds a little summary of the points up to this point. Each Sum points only counts back to
the previous sum points (or the start of the event). So they can be used as a divider to
separate different areas of points.
Show PBs
Very similar to Points but it shows the PB’s per pilot instead.
Note: The numbers given as options to you will be multiples of the current channels set
in Channel Settings. So if you have 6 channels you’ll get Top 6, Top 12, Top 18 as
options. 8 channels you’ll get Top 8, Top 16, Top 24, Top 32 etc.
For the explanation below I’m going to assume you have 32 pilots, 8 channels and 4
races.
Ordered Top X
Pilots will be ordered so that the best 8 pilots will be in the first race. Pilots 9-16 will be in
race 2. Pilots 17-24 in race 3. Pilots 25-32 in race 4.
Seeded Top X
Pilots will be seeded into the races. So that the best pilot is in Race 1, Second best pilot
in race 2. Third best in race 3, Fourth best in race 4. Now, it wraps. So fifth best now in
race 1, sixth in race 2 etc.
Round Types
A round’s type can be changed via the hamburger menu on each round. To see the definitions
of what each type means see the round / race types section of the manual.
Removing rounds
To remove the current round press the - button.
Pilots will occasionally be required to change channels. Any channel changes will be highlighted
with a Δ (Delta/Change) symbol.
Pasting in a round
If no races in the current round have been run you can paste a round in from the clipboard using
the paste button next to autosum. The paste format should be each pilot on their own line. Pilots
will be mapped to the channels based on their order, you can skip channels with an empty line.
Re-ordering rounds
Rounds can be dragged around to change their order by grabbing them by their title. Their
round numbers won’t change, just the order they display on screen.
Opening a race
Click on a race's name and number and open it. Once you’ve opened it, it will show all the pilots
in the race and if the race has already been run; the results. If it's a new race you can just press
the Play button to start the race.
Deleting a race
To delete a race right click on it in the rounds screen and select delete. Everything from that
race will be deleted, including best lap times.
The software automatically uses these brackets in features like Double Elimination to handle
groups of pilots. For example, the Winners and Losers brackets.
Please send through any formats you use and I can include them in the installer!
Spreadsheet Setup
In a spreadsheet add a new sheet called “FPVTrackside”. This sheet needs to be formatted in a
specific way for the software to be able to read it and generate the heats.
Sheet details
The very first column contains details about the sheet..
Channels
The channel value should simply contain the number of channels used in this format. This also
defines how many pilots are in each race.
Lock Channels
Lock channels defines whether or not pilots must be on the specific channel shown by the
sheet. If it’s set to false a pilot just needs to be in the right race and will by default the pilot will
stay on their previous channel. This can massively reduce channel changes so unless your
format requires specific channels try to leave it set to FALSE.
Pilots
Because each sheet is a template of the format, pilots need to be referred to by reference as we
don’t yet know which pilots will be in the real event. Once the template is loaded, FPVTrackside
will map “Alfa” = “BMSThomas”, “Bravo” = “BMSPaul” so that everyone is put in the right spot.
So what you need to do in the Pilots column is just put as many unique pilot names as you have
pilots in your event. So in the sample above I have 16 pilots named based on the phonetic
alphabet.
For example, in the above sample… “Alfa” will be the first pilot in Round 1 Race 1 and “Echo”
who is the 5th cell of an event with 4 channels, will be the first pilot in Race 2.
In my sample I’ve drawn borders around the divisions between each race. I find this super
handy for keeping track of everything when designing the sheet.
Result
The cell to the right of the pilots name is where the result will be written. Currently only really work
“position” style races and will write the order in which the pilot finished. So if the pilot “alfa” came first
fpvtrackside will put a “1” in the cell.
=INDEX(C2:C5;MATCH(3;D2:D5; 0))
Pilot names are in C2:C5 and results are in D2:D5. We’re looking for the pilot in position 3.
The MATCH function searches for a specified item in a range of cells, and then returns the
relative position of that item in the range.
So MATCH(3;D2:D5; 0) looks at the cells D2 to D5 for the result of 3. It gives back the index of
that result. Which we put into the INDEX function which because it’s looking one column to the
left at C2 to C5 will return the pilot name.
General Settings
There are a lot more configuration items in General Settings which can be accessed from the
settings button on the main screen.
Both services are accessed by logging in on the event selection screen. But they do work
slightly differently.
FPVTrackside.com
Registration
The login window for FPVTrackside has a register button that will take you straight to the
registration form on the website. Once you’ve registered you’ll receive a confirmation email to
activate your account. This is very often blocked by spam filters so please check your spam
folder. If you’re still having problems email me at dan@fpvtrackside.com and I’ll re-send them.
Creating Events
FPVTrackside.com primarily works as a service you “push” events to. Basically you create
everything locally in the FPVTrackside software, then tick the “Sync” button on the event page
and all results will be synchronised up to our website.
When you’re running an event with Sync turned on, a Sync button will be on the right. And by
default it will also synchronise up the results after each race.
FPVTrackside.com works great as a way for the pilots at your event to see scores, lap times
and results without nagging the race director. The website is basic, but it’s all there.
MultiGP
API Key
MultiGP users will need to create / share their chapters API key. Which can be accessed from
the chapter Management page. As a side note, MultiGP uses the word ‘Chapter’ and we tend to
use the word ‘Club’. So please keep that in mind when using the software.
Once you have the API key it can be pasted into the login menu for MultiGP on the Event
selector. FPVTrackside will now pull down any events created on multigp.com.
Once you’ve pulled down your events just select the one you want to run and everything in that
event will sync down. At the end of each Race results will be synchronised back up. But you can
also press the Sync button on the right.
ZippyQ
ZippyQ works great with FPVTrackside. The synchronisation at the end of the race is generally
very well timed to Sync down the next batch of pilots. If they don’t come through automatically,
just press the Sync button.
Access the webserver on http://localhost:8080 and browse through the tree of objects using the
links provided.
Example
The most common request is the Remaining Time in the race. The remaining time can be
accessed on the address http://localhost:8080/RaceManager/RemainingTime/TotalSeconds/
Turn it on in general settings by setting a URL for the system to POST to and setting it enabled.
{
"Round": 1,
"Race": 1,
"Type": "Race",
"State": "Start"
}
As of 2.0.8.0 there is also a notification for “Cancel” when the race start is aborted.
Detection notification
On each time the timing system is triggered will post the following object.
{
"TimingSystemIndex": 0,
"LapNumber": 1,
"ChannelBand": "Fatshark",
"ChannelNumber": 4,
"Frequency": 5800,
"ChannelColorR": 255,
"ChannelColorG": 255,
"ChannelColorB": 0,
"Time": 20.2364233,
"IsLapEnd": true,
"IsRaceEnd": true,
"PilotName": "BMSThomas"
}
Performance
The FPVTrackside and OBS combination can be a fairly heavy load for the average laptop
sitting in a field at the local drone club. Here are some things to try to improve streaming
performance.
● Use hardware encoding in OBS. Like NVEnc if you have an nvidia graphics chip
● Video recording now defaults to on. It’s definitely the heaviest part of FPVTrackside so if
you’re not using it anyway, this is the first thing to try turning off.
● Lower the Max Frame Rate in FPVTrackside’s General Settings. This defaults to 60, a
value of 30 is fine for FPV.
● Lower the resolution / frame rate of the input devices in FPVTrackside’s video settings.
This is especially important for Commentator / Pits as web cams often default to very
high resolutions.
● Lower the video stream resolution in OBS.
● Set your video input devices to ‘stop feed when not in use’.
● Try different USB ports if you’re losing frames. USB ports are often shared with internal
components or other USB ports on the system. Some devices do not behave well with
others so once it works try to use the same ports every time.
● Make sure the laptop has access to clean cool air. More fans or those little laptop cooler
bases can help!
Logs
The least interesting but most important directory is logs. If things are broken, it’ll write to the log
in there. Send it to me and I’ll fix it! dan@melbournephotos.net.au
Data
Data holds all the important files for configuring trackside plus the actual database where results
are stored. A lot of these files generate on first run, so you may not even see them till after your
first launch.
Most files are .xml and editable in notepad.
Shortcut keys
Space - Start / Stop a race. If pressed during countdown it will cancel start.
Ctrl-C - Copy race results to clipboard (for spreadsheet)
Ctrl-V - Paste pilots into race (from spreadsheet)
Left / Right arrows - Open / Close pilot list on left
Up / Down - Increase or decrease Pilot video feed visibility during a race.
O - Order the pilot video feeds. This happens now, as opposed to next lap.
L / K - Hide show the Lap bar below pilot feed.
F11 - Toggle showing FPS in top right
W - SHOW THE WORM. ALL HAIL THE WORM.
[ - Previous Race
] - Next Race
Recommended Setup
Hardware
● Laptop:
○ At least quad core
○ Dedicated GPU
○ Internal webcam
○ At least 2 USB ports.
○ Ethernet port. Can use USB ethernet device however make sure you have
enough usb ports.
● Video receivers with RCA cables. As many as you plan to have pilots in a race. Typically
6.
● 9 channel analogue camera security system DVR with HDMI output.
● RCA to BNC adapters. One for each receiver.
● Elgato HD60s to capture from security system DVR. Although I’ve been having a great
experience with these unbranded extremely cheap ones like this.
● LapRF 8 way.
● Long Ethernet cables for laprf. 30m at least.
● Launch webcam. Logitech c920 is a good choice.
● Long 15m+ usb for webcam.
Vi Vi Vi
Layout
de diagram
de de
o
Vi o
Vi o
Vi
Re
de Re
de Re
de
ocei ocei ocei
ver Re
Re ver ver
Re El
cei cei cei W
RCA - ga eb
ver Secuver ver to
BNC ca
Compo H
rity H m
DVR
site D D
USB3 USB3
Video M 60
I s
S
WIFI m
Lap
ar
RF
C Laptop tP
8wa
at h
y
6 o
n
e
H
D
M
I
Local TV