Difference between revisions of "DriverID Selector Switch"

From Autosport Labs
Jump to: navigation, search
Line 76: Line 76:
function checkDriverSwitch()
function checkDriverSwitch()
   local cDriverID = getChannel("DriverID")
   local cDriverID = math.floor(getChannel("DriverID"))
   if cDriverID~=nil and cDriverID ~= DriverID then
   if cDriverID~=nil and cDriverID ~= DriverID then
     DriverID = cDriverID
     DriverID = cDriverID

Revision as of 01:48, 16 November 2020

DriverID Selector Switch allows you to easily select which driver is driving so that you can quickly and easily see who was driving in the data later by looking at the DriverID channel. Just assign each driver a number, and tell them to turn the switch to their number when they get in. You can also use this switch to automatically reset the session information (Fastest Lap Time, Session Duration, etc) each time a new driver gets in.


Parts Needed:


1 pole Selector Switch (chose one):



You can use any value resister you want, but they all need to be the same value. Recommend 1k-100K range (10k is popular). You need total number of drivers - 1 resisters. Ie if you have a 6 driver switch, you need 5 resistors (all same value). If you have 4 driver switch, you need 3 resistors, etc.




  • Solder a resister between each post on the switch.
  • You will need to alternate soldering the resisters low on the posts and high on the posts in order for them to fit.
  • The resisters that attach to the end posts will have to be low on the posts, so that you can also solder a wire to those posts as well and cover it with shrink tube.
  • It is easier to solder all of the resisters that need to be low first, then solder the resisters that will be high on the posts.
  • Solder Ground wire to switch position 1 post (black wire in pics).
  • Solder 5V Input wire to last switch position post (yellow wire in pics )
  • Solder Voltage Out wire to the center post, this goes to RCP analog input (red or white wire in pics).
  • Use heat shrink tube to protect the wires

DriverSelectorSwitchAnotated2.jpg DriverSelectorSwitch3.jpg

Install the switch and wire the ground wire (black wire connected to the first post in pics above) to ground. The 5V In (yellow wire connected to the last post in pics above), wire it to 5V Ref on the RCP (see below). The wire connected to the center post (white or red wire in pics above) goes to an RCP Analog Input.


Race Capture Settings

Edit the Analog input channel that you wired the DriverID Switch to. Click the gear icon and change the name to DriverID, set Precision to 0, Min to 0, and Max to however many positions your switch has. Set the Sample Rate to 1Hz.


For Mode, select Mapped. 0V gets mapped to 1. 5V gets mapped to however many positions your switch has. It will interpolate in between so you can just use those values.

Here is an example of a 6 position switch.


Write the config to Race Capture and test the switch with the dashboard (see video above).

If it does not work properly, go back to the settings, change Precision to 2 and change the Mode to Raw. Write the config, and test again with the dashboard. Write down the Voltage for each position on the switch. To get an idea of what the mappings should be, take the number of resisters you used and divide 5V by that number to get the voltage spread between the positions on the switch. Set Precision back to 0 and Mode back to Mapped. The first number should always be 0V and the last should always be 5V (unless you swapped the 5Vin and the GND wires), Use the values you found in your testing to map the 2nd position and 2nd from last position and then chose another position in the middle for the middle mapping. Rinse and repeat until you get it working properly.

See the Calibrating Sensors Guide for more info on how to map sensors properly.

Lua Script to Reset Session when DriverID changes

You can have the session information (Session Time, Number of Laps, Best Time, Predicted Time, etc) reset when you select a different driver using the following Lua code in the Scripting Section of the Race Capture Settings.


function checkDriverSwitch()
  local cDriverID = math.floor(getChannel("DriverID"))
  if cDriverID~=nil and cDriverID ~= DriverID then
    DriverID = cDriverID

function onTick()