https://wiki.autosportlabs.com/api.php?action=feedcontributions&user=Brentp&feedformat=atomAutosport Labs - User contributions [en]2024-03-28T15:15:32ZUser contributionsMediaWiki 1.38.6https://wiki.autosportlabs.com/index.php?title=AnalogX2&diff=10116AnalogX22024-03-05T16:52:28Z<p>Brentp: /* 10 bar / 150 PSI pressure sensor */</p>
<hr />
<div>=Introduction=<br />
AnalogX is a compact 4 channel Analog to CAN I/O expander, specially designed for the harsh automotive electrical environment.<br />
<br />
[[image:analogx2_top.jpg|600px]]<br />
<br />
AnalogX provides 4 buffered and protected 0-5v sensor inputs and can broadcast the sensor values between 1 and 255Hz. It also provides a 0.5A 5v reference for powering sensors. <br />
<br />
==Parts in the Kit==<br />
In the kit you will receive:<br />
* AnalogX2 module<br />
<br />
* '''Note''' Cabling is available separately, depending on how you design your sensor layout.<br />
<br />
==Harness / Cabling==<br />
AnalogX is designed for plug and play connection into Autosport Labs CAN bus networks and sensors. Parts and cables shown are available individually. Refer to the part numbers below to create your own sensor configuration. <br />
<br />
====CAN bus connection to RaceCapture====<br />
[[image:analogX_CAN_connection.jpg]]<br />
<br />
{| class="wikitable"<br />
|-<br />
! SKU !! Description<br />
|-<br />
| ASL_DUAL_CAN_HUB || Powered, 8 port dual CAN bus hub kit <br />
|-<br />
| ASL_M8_CAN_EXT_0.5M<br/>ASL_M8_CAN_EXT_1M<br/>ASL_M8_CAN_EXT_2M<br/>ASL_M8_CAN_EXT_3M<br/>ASL_M8_CAN_EXT_4M || CAN extension cable, M8 4P female to M8 4P male, 0.5 - 4 Meter lengths<br />
|}<br />
<br />
====Sensor Connections====<br />
[[image:analogX_plug_and_play_sensors.jpg]]<br />
<br />
{| class="wikitable"<br />
|-<br />
! SKU !! Description<br />
|-<br />
| ASL_4X_SENSOR_SPLITTER || 4X sensor expander<br />
|-<br />
| ASL_M8_SENSOR_EXTENSION_1M<br/>ASL_M8_SENSOR_EXTENSION_2M<br/>ASL_M8_SENSOR_EXTENSION_3M<br/>ASL_M8_SENSOR_EXTENSION_4M || Single channel sensor extension cable<br />
|-<br />
| ASL_LINEAR_TEMP_M8 || Linear temperature sensor<br />
|-<br />
| ASL_10_BAR_DELPHI3_M8 || 10 bar (150 PSI) pressure sensor<br />
|-<br />
| ASL_150_BAR_DELPHI3_M8 || 150 bar (2175 PSI) pressure sensor<br />
|-<br />
| ASL_M8_SENSOR_PIGTAIL_2M || Single sensor pigtail for custom sensor connection, 2 Meters<br />
|}<br />
<br />
===Bare pigtails===<br />
For a custom or non-plug and play installation, these bare pigtail cables are available for connecting AnalogX:<br />
{| class="wikitable"<br />
|-<br />
! SKU !! Description<br />
|-<br />
| ASL_DEVICE_CAN_PIGTAIL_1M || CAN + power pigtail for connecting device, M8 4P male to bare wires, 1 meter<br />
|-<br />
| ASL_M8_QUAD_SENSOR_PIGTAIL_2M || M8 8P male to bare wire quad sensor pigtail, 1M, 24AWG<br />
|}<br />
See the [[AnalogX2#Wiring|Wiring]] guide for pinout information.<br />
<br />
==Compatible Sensors==<br />
AnalogX is compatible with any 0-5v voltage input; the voltage is broadcast over CAN bus with the value range of 0 - 5000mV. <br />
<br />
Use the capabilities provided by the receiving data system to translate the raw voltage to a meaningful real-world value, such as pressure, temperature, distance, and so on. <br />
<br />
===RaceCapture / PodiumConnect systems===<br />
Setting up AnalogX in RaceCapture is easy: Go to Setup / CAN Channels and select the preset for AnalogX. <br />
<br />
This will bring in the basic mapping with the default 0-5v scaling. From here, you can edit each channel to customize the formula to match your sensor's voltage scaling. <br />
<br />
* '''Note''' - RaceCapture's CAN mapping features currently only supports sensors with a linear (straight-line) response. Sensors with a curved response, such as the Extended Range Temperature sensor is based on a thermistor design, and will not work with the built-in direct CAN mapping. We recommend using a temperature sensor with a linear response, such as the Autosport Labs Linear Temperature Sensor, Texense Liquid Temperature Sensor or similar.<br />
<br />
===Setting CAN baud rate===<br />
The default baud rate for AnalogX is 1M. Ensure this matches the setting under Setup / CAN bus settings.<br />
<br />
===Selecting the AnalogX preset===<br />
Select the starter CAN preset for AnalogX. This will bring in the basic 0-5v mapping, which you can then calibrate further using the CAN mapping conversion formula. <br />
<br />
[[file:analogx2_preset_app.jpg|640px]]<br />
<br />
===Calibrating Sensors attached to AnalogX===<br />
Navigate to Setup / CAN mapping, and edit the channel you wish to customize. <br />
<br />
===Select the channel===<br />
Touch the channel selection drop down and select the channel that matches your sensor.<br />
* '''Note, it's recommended you use the preset name for your channels; if no channel exists that matches your sensor, you can customize the channel name, units, and min/max values directly<br />
<br />
==Sensor Conversion Formulas==<br />
AnalogX reports it's raw value from 0-5000mV. You can use the formula to scale and offset the raw value to a real-world value.<br />
<br />
===Linear Fluid Temperature Sensor===<br />
The Autosport Labs Linear Fluid Temperature (ASL_LINEAR_TEMP_M8) sensor has a 10mV/C scaling, with a 0.5V offset at 0C. <br />
<br />
[[file:linear_temp_sensor_analogx_scaling.png|480px]]<br />
<br />
===10 bar / 150 PSI pressure sensor===<br />
The Autosport Labs 10 bar pressure sensor (ASL_10_BAR_DELPHI3_M8) has the following calibration / range:<br />
<br />
'''(0 - 10 bar / 150 PSI range)'''<br />
* 0.5v 0 bar / = 0 PSI<br />
* 4.5v = 10 bar / 150 PSI<br />
<br />
The sensor has a 4000mV range between min and max values, with a 500mV offset. <br />
<br />
Therefore, <br />
<br />
The offset is calculated based on the 500mV offset of the sensor (500mv * 0.375 = 18.75)<br />
<br />
for 0-150 PSI use the formula: '''RAW * 0.0375 - 18.75'''<br />
<br />
* '''Note:''': The 0.0375 value was derived from the formua: 150 PSI / 4000mV = 0.0375 PSI/mV<br />
<br />
[[file:AnalogX_150PSI_oil_pressure_example_formula.png|480px]]<br />
<br />
===150 Bar / 2175 PSI pressure sensor===<br />
The Autosport Labs 150 bar pressure sensor (ASL_150_BAR_DELPHI3_M8) has the following calibration / range:<br />
<br />
'''(0 - 150 bar / 2175 PSI range)'''<br />
* 0.5v = 0 bar / 0 PSI<br />
* 4.5v = 150 bar / 2175 PSI<br />
<br />
for 0-2175 PSI, use the formula: '''RAW * 0.5437 - 271.85'''<br />
<br />
===Texense Liquid Temperature Sensor===<br />
This sensor has a range of -50 to 150C and has a 22.5mV/C calibration. <br />
<br />
0.25v = -50C<br />
4.75v = 150C<br />
(200C sweep)<br />
<br />
The sensor has a 4500mV range between -50C and 150C, with a 250mV offset. <br />
<br />
Therefore, 200C / 4500mV = 0.04444 C/mV<br />
<br />
The offset is calculated based on the 250mV offset of the sensor (250mV * 0.0444444 = 11.1111)<br />
<br />
The offset is further adjusted by the starting range of the sensor (-50C)<br />
<br />
Resulting formula: '''RAW * 0.04444 - 61.1111'''<br />
<br />
[[image:Texense_Liquid_temperature_sensor_CAN_channel_mapping.png|480px]]<br />
<br />
* '''Note''' you can convert the resulting value to Fahrenheit by selecting the '''C -> F''' option in the Formula Conversions Tab.<br />
<br />
===Other sensors===<br />
Please refer to these manufacturer's user guide on how to map data using the provided AnalogX CAN protocol.<br />
<br />
==Wiring==<br />
===Power and CAN===<br />
* Connector: M8 4P Male, A coding<br />
[[file:M8_4P_male_pinout.jpg|200px]]<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Notes<br />
|-<br />
| 1 || CAN low || <br />
|-<br />
| 2 || Power || Red, 12-14v / 50mA<br />
|-<br />
| 3 || CAN high ||<br />
|-<br />
| 4 || Ground || Black<br />
|}<br />
<br />
Power is standard automotive 12-14v (nominal).<br />
<br />
===Sensor connections===<br />
* Connector: M8 8P Female, A coding<br />
[[file:M8_8P_female_pinout.jpg|200px]]<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Notes<br />
|-<br />
| 1 || Analog/Digital 1 ||<br />
|-<br />
| 2 || Analog/Digital 2 ||<br />
|-<br />
| 3 || Analog/Digital 4 ||<br />
|-<br />
| 4 || Vref || 5v @ 1A max current, combined with pin 6<br />
|-<br />
| 5 || Ground || <br />
|-<br />
| 6 || Vref || 5v @ 1A max current, combined with pin 4<br />
|-<br />
| 7 || Analog/Digital 3 ||<br />
|-<br />
| 8 || Ground || <br />
|}<br />
<br />
* '''Note''': The AnalogX inputs are very high impedance, allowing connection to existing circuits / sensors without affecting the reading of that circuit. As such, no pull-up or pull-down resistors are provided and must be added externally if needed.<br />
<br />
==DIP switch settings==<br />
You can access the DIP switches by removing the end plate on the CAN + power side. These switches enable an number of options:<br />
<br />
{| class="wikitable"<br />
|-<br />
! Switch !! Function || Description<br />
|-<br />
| 1 || Termination || Set to ON to enable CAN termination<br />
|-<br />
| 2 || Address offset 1 || [[AnalogX2#Adjusting_Base_ID|Used to select the base CAN address]]<br />
|-<br />
| 3 || Address offset 2 || [[AnalogX2#Adjusting_Base_ID|Used to select the base CAN address]]<br />
|-<br />
| 4 || CAN Baud Rate || OFF to enable 1M (default), ON to enable 500K<br />
|}<br />
<br />
[[image: analogx2_dip_switch.jpg|600px]]<br />
<br />
===CAN termination===<br />
<br />
AnalogX is not terminated by default. You can enable termination by switching the [[AnalogX2#DIP_switch_settings|termination DIP switch]] to ON.<br />
<br />
==Installation==<br />
You can mount AnalogX2 to any flat mounting service. For best performance and reliability, keep away from sources of heat. <br />
<br />
==Troubleshooting==<br />
<br />
===No CAN data===<br />
* Double check the CAN bus connections<br />
* Verify the CAN baud rate is compatible with the AnalogX configuration (1M by default, 500K enabled with DIP switch)<br />
* Verify your CAN bus termination is correct. (Not terminated by default, enabled with DIP switch)<br />
* Simplify your CAN bus network: Try making AnalogX the only other CAN device on the network, just as a test. <br />
* Check for short circuits / over-current on the 5v reference. If too much current is drawn from the 5v reference, AnalogX may shut down in self-protection mode.<br />
<br />
===Data is being received, but it is incorrect===<br />
<br />
====Basic mapping test====<br />
Try simplifying the mapping to verify the correct data is transmitted. <br />
<br />
* Go into the software for the receiving system, and set the CAN formula to '''multiply by 1''' and '''add 0''' and '''divide by 1''' , and '''unsigned integer'''. and update the software settings. <br />
** This will cause the receiving system to display the raw millivolt (mV) value from AnalogX. <br />
* Disconnect the sensors from AnalogX. <br />
* For each AnalogX input perform the following test:<br />
** Connect the input to AnalogX's ground. Your receiving system should show very close to 0, which is 0 volts. <br />
** Connect the input to AnalogX's 5v reference. Your receiving system should show very close to 5000, which represents 5000mV. <br />
<br />
* '''Note''': The AnalogX inputs are very sensitive and high impedance to prevent affecting the readings of existing circuits. Therefore, if the inputs are disconnected, it will 'float' and may show random readings.<br />
<br />
If you can confirm these readings, then perform the additional steps:<br />
* For each AnalogX input, re-connect your sensor. <br />
** Measure the voltage right where it enters AnalogX. <br />
** Compare that with the reading on the receiving system. The value should be the voltage X 1000, translated to mV. Example: 2.5v measured should show 2500 on the receiving system. <br />
<br />
If you can verify received millivolt value equals the measured voltage at the AnalogX input, then you know the correct value is being transmitted to the system, and you can focus on mapping the raw millivolt value to the real world temperature, pressure, or etc. Consult the sensor manufacturer and the system to determine the proper mapping of the sensor you are using.<br />
<br />
==Specifications==<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Feature<br />
! Description<br />
|-<br />
| Analog sensor input voltage range<br />
| 0 - 5v<br />
|-<br />
| DAC resolution<br />
| 12 bit SAR<br />
|-<br />
| Sample output format<br />
| 0 - 5000mV<br />
|-<br />
| Input impedance<br />
| Greater than 10 Meg Ohm<br />
|-<br />
| Input voltage protection<br />
| 100v<br />
|-<br />
| CAN baud rate<br />
| 1M and 500K, jumper configurable<br />
|-<br />
| Address Space<br />
| 4 separate address spaces allows up to 4 AnalogX modules to operate on the same CAN network. (DIP switch configurable)<br />
|-<br />
| Power input and connections<br />
| 9 - 15volts, protected to 40v (intermittent)<br />
|-<br />
| Harness<br />
| M8 4P Male for power + ground, M8 8P for sensor connection<br />
|-<br />
| Weight<br />
| 100gm (approximately)<br />
|-<br />
| Dimensions <br />
| 60 x 60 (approximately)<br />
|-<br />
| Environmental<br />
| IP65, 0-85C<br />
|}<br />
<br />
=AnalogX CAN bus API=<br />
==Overview==<br />
The CAN bus API provides the configuration and control interface for AnalogX<br />
<br />
==CAN base ID==<br />
<br />
CAN base ID is '''0xE4600 (935424)'''<br />
<br />
====Adjusting Base ID====<br />
The base address is determined by the state of the '''ADR1''' and '''ADR2''' [[AnalogX2#DIP_switch_settings|DIP switches]], accessible behind the power + CAN end plate. By default, the DIP switches are off.<br />
<br />
* Switching on ADR1 will add 256 to the base ID<br />
* Switching on ADR2 will add 512 to the base ID. <br />
<br />
The combination of jumper settings will allow up to 4 AnalogX units to coexist on the same CAN bus.<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! ADR2 switch<br />
! ADR1 switch<br />
! Address<br />
|-<br />
| Off<br />
| Off<br />
| 0xE4600 (935424)<br />
|-<br />
| Off<br />
| On<br />
| 0xE4700 (935680)<br />
|-<br />
| On<br />
| Off<br />
| 0xE4800 (935936)<br />
|-<br />
| On<br />
| On<br />
| 0xE4900 (936192)<br />
|}<br />
<br />
===CAN Baud rate===<br />
<br />
1M and 500K rates are supported<br />
<br />
1M is enabled by default; switch on the '''Baud''' [[AnalogX2#DIP_switch_settings|DIP switch]] to enable 500K data rate.<br />
<br />
==CAN Messages==<br />
<br />
===Announcement===<br />
<br />
The announcement message is broadcast by the AnalogX upon power up. <br />
<br />
====Address====<br />
'''CAN ID:''' Base + 0x0 (0)<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Channel Count<br />
| Total number of channels on device<br />
|-<br />
| 1<br />
| Current sample rate, in Hz<br />
| <br />
|-<br />
| 2<br />
| Reserved<br />
| <br />
|-<br />
| 3<br />
| Reserved<br />
| <br />
|-<br />
| 4<br />
| Reserved<br />
| <br />
|-<br />
| 5<br />
| Major Version<br />
| Firmware Major Version Number<br />
|-<br />
| 6<br />
| Minor Version<br />
| Firmware Minor Version Number<br />
|-<br />
| 7<br />
| Patch Version<br />
| Firmware Patch version number<br />
|}<br />
<br />
===Configuration Group 1===<br />
<br />
Configures options for AnalogX.<br />
<br />
Send this message to AnalogX to configure runtime settings. Settings are saved in flash memory and will be preserved across power cycles.<br />
<br />
* '''Note:''' To read the current settings, broadcast a message with this CAN ID with no data (data length of 0) - AnalogX will reply with the current configuration. <br />
<br />
====Address====<br />
'''CAN ID:''' Base + 0x3 (3)<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Sample Rate<br />
| Rate to report sensor values ( 1 - 255Hz). Default sample rate is 50Hz.<br />
|-<br />
| 1<br />
| Reserved<br />
| <br />
|-<br />
| 2<br />
| Reserved<br />
| <br />
|-<br />
| 3<br />
| Reserved<br />
| <br />
|-<br />
| 4<br />
| Reserved<br />
| <br />
|-<br />
| 5<br />
| Reserved<br />
| <br />
|-<br />
| 6<br />
| Reserved<br />
| <br />
|-<br />
| 7<br />
| Reserved<br />
| <br />
|}<br />
<br />
===Statistics===<br />
<br />
Broadcast by AnalogX every 1 second.<br />
<br />
====Address====<br />
'''CAN ID:''' Base + 0x2 (2)<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Current Sample Rate<br />
| 1 - 255Hz<br />
|-<br />
| 1<br />
| Reserved<br />
| <br />
|-<br />
| 2<br />
| Reserved<br />
| <br />
|-<br />
| 3<br />
| Reserved<br />
| <br />
|-<br />
| 4<br />
| Reserved<br />
| <br />
|-<br />
| 5<br />
| Major Version<br />
| Firmware Major Version Number<br />
|-<br />
| 6<br />
| Minor Version<br />
| Firmware Minor Version Number<br />
|-<br />
| 7<br />
| Patch Version<br />
| Firmware Patch version number<br />
|}<br />
<br />
===Sample Broadcast===<br />
<br />
Sample Broadcast for Analog inputs. The samples are broadcast based on the configured sample rate (default is 50Hz)<br />
<br />
===Scaling and Data format===<br />
* '''Scaling:''' 0-5000mV<br />
* '''Data format:''' Little Endian<br />
<br />
===Address===<br />
* '''CAN ID:''' Base + 0x14 (20)<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Channel 1, low byte <br />
| <br />
|-<br />
| 1<br />
| Channel 1, high byte<br />
| <br />
|-<br />
| 2<br />
| Channel 2, low byte<br />
| <br />
|-<br />
| 3<br />
| Channel 2, high byte<br />
| <br />
|-<br />
| 4<br />
| Channel 3, low byte<br />
| <br />
|-<br />
| 5<br />
| Channel 3, high byte<br />
| <br />
|-<br />
| 6<br />
| Channel 4, low byte<br />
| <br />
|-<br />
| 7<br />
| Channel 4, high byte<br />
| <br />
|}</div>Brentphttps://wiki.autosportlabs.com/index.php?title=PodiumConnect&diff=10115PodiumConnect2024-02-26T17:59:52Z<p>Brentp: /* Hardware integration / custom cable */</p>
<hr />
<div>=Getting Started=<br />
[[Image:PodiumConnect_Quickstart_flyer.jpg|1024px]]<br />
<br />
==Installing the app==<br />
<br />
===Windows / OSX===<br />
Get the latest version of the RaceCapture app from the [http://podium.live/software downloads page ]<br />
<br />
===Android / iOS ===<br />
[[Image:google_play.jpg|link=https://play.google.com/store/apps/details?id=com.autosportlabs.racecapture&hl=en]][[Image:itunes_app_store.jpg|link=https://itunes.apple.com/us/app/racecapture/id1162797255?mt=8]][[Image:amazon_app_store.jpg|link=https://www.amazon.com/Autosport-Labs-Race-Capture/dp/B016ZJM7GE]]<br />
<br />
==Running and Connection==<br />
<br />
===Windows / OSX===<br />
* Connect your PodiumConnect to your computer with the USB cable, <br />
** If you are running Windows older than Windows 10, please install the USB driver, available from the [https://podium.live/software Software Downloads page]<br />
* Start the RaceCapture app. <br />
* The RaceCapture app will launch the first time setup wizard.<br />
<br />
===Android / iOS===<br />
* Power up PodiumConnect with 12v or via USB power (computer or USB power source)<br />
* Go to your device's WiFi settings, and connect to the PodiumConnect WiFi access point.<br />
** Note, the WiFi Access Point is open, with no password - you can set a password and encryption later under Setup.<br />
* Start the RaceCapture app. <br />
* The RaceCapture app will launch the first time setup wizard.<br />
<br />
=First time setup wizard=<br />
The first time setup wizard will guide you through the essential setup of your PodiumConnect<br />
<br />
[[Image:RaceCapture_app_setup_wizard.jpg|640px]]<br />
<br />
==Verifying Connectivity==<br />
* Select your device and verify the RaceCapture app connects. <br />
<br />
[[Image:RaceCapture_app_PodiumConnect_connection_screen.jpg|640px]]<br />
<br />
<br />
==Select your Preset configuration==<br />
* Select the preset configuration matching the data system you have. <br />
<br />
[[Image:RaceCapture_app_PodiumConnect_AIM_preset_selection.jpg|640px]]<br />
<br />
==Select your favorite Tracks==<br />
* Select the tracks you will typically race at so PodiumConnect can detect the track location and calculate lap times.<br />
* '''This is an important step''' to ensure you get valid data and lap times for your telemetry session. <br />
* Note: Only select the one track configuration per race track, to ensure the correct track is auto-selected. <br />
* If you don't see your track listed, [[RaceTracks|please submit your track]]!<br />
<br />
[[Image:RaceCapture_app_select_favorite_tracks.jpg|640px]]<br />
<br />
==Create an account on Podium & Setting Device ID==<br />
* Create an account on Podium http://podium.live - then follow the steps to create a Device. Make a note of the Device ID provided, so you can enter it into the wizard. <br />
<br />
[[image:podium_device_id_screenshot.png]]<br />
<br />
Then, enter this Device ID into the Setup Wizard.<br />
<br />
* '''Note''': You can set the Device ID later under '''Setup / Telemetry'''<br />
<br />
[[Image:RaceCapture_app_setup_podium.jpg|640px]]<br />
<br />
==Select your cell provider==<br />
* Enable the cellular connection and select your cellular provider. <br />
** '''Note:''' If your cellular provider is not in the list, select the custom option and set the APN settings provided by your cellular carrier. <br />
<br />
[[Image:RaceCapture_app_select_cell_service.jpg|640px]]<br />
<br />
===Verizon===<br />
If you have the newer 4G enabled system, you can use a Verizon SIM card (USA). When visiting the store, ask for a '''data only SIM card for a hotspot or tablet'''<br />
<br />
* If your unit was bundled with a SIM card, you can call Wireless Zone at 508-834-3311 for activation and access to special data plan options. <br />
* '''Note''' - If you have a 3G system, Verizon is not available for telemetry. Your best options are AT&T, T-Mobile or FreedomPop. Check your order details if you are not certain which unit you have. <br />
<br />
===AT&T===<br />
You can get an AT&T SIM card at your local AT&T store. Request a '''data SIM''' suitable for a data only tablet or hotspot.<br />
<br />
===Freedom Pop===<br />
If you have a FreedomPop card, activate your card on the [http://freedompop.com/activate FreedomPop activation website]<br />
<br />
====Note about setting up FredomPop's $0/month service====<br />
Please note that FreedomPop is a 3rd party provider; For USA customers we are including a bundled SIM card as an optional convenience. These are the same SIM cards you can order from them separately. <br />
<br />
If your goal is to use the $0/month plan that includes 200MB, follow these steps:<br />
<br />
* Register the SIM card per their web site process<br />
* Go into your account, then downgrade and remove services as needed to get down to the "basic" free plan. There will be a number of steps to follow, with warning messages.<br />
* Be sure to remove any add on paid services.<br />
* When done, your monthly bill should show $0.<br />
<br />
Note, FreedomPop may require you to have a small balance in your account to cover instances if you go over the 200MB monthly allotment. If you don't go over this, then you should not have to pay an additional fee. <br />
<br />
See here fore more detailed info on [[Free_FreedomPop_Sim_Cards|how to get free sim cards and free data from FreedomPop]].<br />
<br />
Any additional questions, please contact FreedomPop support.<br />
<br />
====What if the store is asking for the IMEI?====<br />
Usually the store will set a default IMEI number, especially if you tell them the SIM may be swapped between devices. If they require setting a real number, you can get the IMEI by connecting to RaceCapture/Pro and checking the cellular section of the app's System Status page:<br />
<br />
[[Image: RaceCapture_App_IMEI.png|500px]]<br />
<br />
=Further Setup=<br />
The settings made in the first time setup can also be accessed via the Setup view of the RaceCapture app. <br />
* '''Note''' To re-run the first time setup, launch the RaceCapture app without a connection to the device, go to the setup screen and press the '''First Time Setup''' button. <br />
<br />
=Connecting your Data System=<br />
==Minimum Data required for proper operation==<br />
At minimum, PodiumConnect requires the following data from your data system:<br />
* Speed<br />
* Latitude<br />
* Longitude<br />
<br />
* '''Note''': These channels must be defined exactly as above in the CAN bus mapping<br />
<br />
This minimum data will allow PodiumConnect to calculate lap timing, which creates the context for analysing additional sensor data, such as temperatures, TPS, RPM, oil pressure and so on. <br />
<br />
* '''Important:''' Without these channels, telemetry will not work properly. Please do not change the names of the default channels provided by the presets.<br />
<br />
==Data System Integration Guides==<br />
Use the provided integration cable and connect it to your data system. <br />
<br />
Follow the guide for your specific system:<br />
* [[PodiumConnect_AIM|AIM Smarty Cam]]<br />
* [[PodiumConnect_MoTeC|MoTeC]]<br />
* [[PodiumConnect_RaceLogic_VBOX|Racelogic VBOX]]<br />
* [[PodiumConnect_AEM_CD7_VDM|AEM CD-7 with VDM]]<br />
* [[PodiumConnect_RaceTechnology|Race Technology]]<br />
* [[PodiumConnect_Generic|Generic Cable integration]]<br />
<br />
==Hardware integration / custom cable==<br />
==PodiumConnect MK2==<br />
===AIM integration cable===<br />
If your system was provided with the AIM integration cable, connect it to AIM data hub.<br />
<br />
===Pigtail harness===<br />
* Connector: M8 4P, A coding<br />
[[file:M8_4P_male_pinout.jpg|200px]]<br />
<br />
''Male connector pictured''<br />
<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Notes<br />
|-<br />
| 1 || CAN low || White<br />
|-<br />
| 2 || Power || Red, 9-24v / 1A (~12W)<br />
|-<br />
| 3 || CAN high || Green<br />
|-<br />
| 4 || Ground || Black<br />
|}<br />
<br />
Power is standard automotive 12-14v (nominal).<br />
<br />
The main connector on PodiumConnect is a standard Molex MiniFit Jr connector.<br />
<br />
* Plug Housing: Molex Mini Fit Jr. (8 position) 0039012080<br />
* Compatible Pins: Molex 39000039<br />
<br />
=Adjusting your Channel Mappings=<br />
You may need to adjust or remove unused channels loaded by the preset. <br />
<br />
* Navigate to Setup / CAN Mapping screen. <br />
* Remove or adjust channels as appropriate. <br />
* Press "Write" to write the settings to PodiumConnect<br />
<br />
=Testing Telemetry=<br />
==Install your SIM card==<br />
[[Image:PodiumConnect_SIM_card.jpg|640px]]<br />
* On the rear of the unit, pop the SIM card drawer out of the unit by pressing the ejector button with a ball point pen. <br />
* Install the SIM card into the tray, with the gold contacts facing up.<br />
* Slide the SIM card tray back into the drawer, ensuring you engage the drawer slot carefully. Press gently until the drawer seats.<br />
<br />
==Verifying==<br />
<br />
* Power up PodiumConnect and attach the cellular antenna. Torque the antenna just beyond finger-tight (do not overtighten). 4-6 inch/lbs. <br />
* Watch the telemetry LED on the front of the unit. When it begins to flash regularly, this means telemetry is broadcasting. <br />
* Open your Podium account and navigate to http://podium.live/home<br />
* Refresh this page when telemetry is broadcasting; you will see an '''Ad Hoc event''' listed. <br />
* Click this link, which brings you to a page showing all devices at the event. (yours will be the only one).<br />
* Click the name of your device. This will show the main race dashboard page. <br />
* Here, you will see live data flowing from PodiumConnect.<br />
<br />
===Using an SD card for telemetry buffering==<br />
To enhance telemetry performance, you can optionally use an SD card to buffer data in cases where cellular connectivity temporarily drops while on the race track. <br />
<br />
If this happens, PodiumConnect will save data to the SD card, and then will burst the data upon re-connection. The amount of buffering provided is limited to approximately one lap (3 minutes of data). Therefore, this buffering is optimized for race tracks with small to moderate interruption of cellular coverage. <br />
<br />
====Enabling SD card buffering====<br />
* Obtain a micro SD card, 32 GB or smaller<br />
* Perform a fresh FAT32 format in your computer. This is an important step, even if the SD card is brand new. <br />
* Insert the SD card into the front of the unit, ensure it clicks/latch into place.<br />
<br />
==Installing the unit==<br />
Install PodiumConnect in the passenger compartment, in an area that's protected from moisture and temperature extremes. A good location is an area that offers reasonable access to the unit to observe status LEDs,<br />
* '''Note''' Mounting orientation does not matter.<br />
<br />
==Installing the cellular antenna==<br />
Install the cellular antenna on the roof of the vehicle in a location as far away from receiving antennas as reasonably possible - e.g. opposite side of the roof from the GPS antenna. <br />
<br />
[[Image:RaceCapture_Pro_MK3_antenna_install.png]]<br />
<br />
'''Temporary alternative (reduced performance)''': You can also install the antenna to the windshield using a suction cup, or in the passenger compartment using zip ties, ensuring the antenna body of the antenna is 8" separated from metal structures.<br />
<br />
=Using Podium=<br />
[https://wiki.autosportlabs.com/Podium_Driver_Data_Analysis Visit the guide on using Podium], which includes a video tour of the essential features. <br />
<br />
[[Image:Podium_telemetry_dashboard_animated.gif|800px]]<br />
<br/><br />
[[Image:Podium_telemetry_chart_averages.gif|800px]]<br />
<br />
=Updating Firmware=<br />
Below are the steps for updating your firmware. <br />
===Backup your configuration===<br />
Updating firmware can cause your PodiumConnect system to be restored to factory settings. Before updating firmware, save your settings to a file. <br />
<br />
Steps:<br />
* Connect to PodiumConnect using the RaceCapture app - using USB, or WiFi. <br />
* Navigate to '''Setup''' and press the '''Read''' button to read the current settings from PodiumConnect. <br />
* Press '''Save''' to save your settings to a file. These will be later restored after firmware is updated. <br />
<br />
===Download the PodiumConnect Firmware===<br />
* Download the latest PodiumConnect firmware from [http://podium.live/software http://podium.live/software]<br />
* Unzip the archive to a location on your computer.<br />
<br />
===Update the PodiumConnect Firmware===<br />
* Connect PodiumConnect via USB (Windows or OSX only)<br />
* In the RaceCapture app, navigate to '''Setup''' and press the '''Firmware''' menu option. <br />
* Press the Update Firmware button<br />
* Navigate to the PodiumConnect firmware you unzipped. The file will end with the extension '.ihex'. Example: ''PodiumConnect_2.15.2.ihex''<br />
* Press Open<br />
<br />
The firmware update process will begin, and will complete when the gauge is 100%<br />
<br />
After re-connecting, the firmware version should be updated in the connection message at the upper right-hand corner.<br />
<br />
===Restore your settings===<br />
* Navigate to '''Setup''' and press '''Open'''. <br />
* Select the previously saved settings file, and open the file. <br />
* Press '''Write''' to write the settings back to PodiumConnect.<br />
<br />
=Recommended Cellular Services by country=<br />
* UK: Telefonica O2 <br />
* Italy: Vodafone Italy<br />
<br />
=Additional Guides and How-Tos=<br />
<br />
=Guides=<br />
<!-- * [[RaceCapture_App_User%27s_Guide|RaceCapture App user's guide]] --><br />
* [[RaceCaptureLoggingData|Logging Data]]<br />
* [[AIM_Integration_CAN_Mapping|AIM Integration guide using CAN Mapping]]<br />
* [[RaceCapture_real_time_telemetry|Real-time Telemetry guide]]<br />
*[[RaceCapturePro_Lua_Scripting|Lua scripting guide]]<br />
*[[RaceCapturePro_Lua_Scripting_Examples|Lua script examples]]<br />
*[[RaceCapturePro2_GoProWiFi|GoPro control guide]]<br />
*[[RaceCapture_troubleshooting|General troubleshooting guide]]<br />
*[[RaceCapture_DashWare_Guide|Creating video with RCP data overlay using DashWare]]<br />
*[[RaceCapture_RaceRender_Guide|Exporting to RaceRender guide]]<br />
*[[Podium_Driver_Data_Analysis|Data Analysis in Podium to become a faster driver]]<br />
*[[RaceCapture_Dashboard_Tablet_Automation|Automating Tablets/Phones for use as Dashboards Guide]]<br />
*[[Add_TPMS_Data|Add TPMS data for $225]]<br />
<br />
=How To=<br />
*[[RaceCapturePro2_Enable_Predictive_Timing|How to: enable Predictive Timing]]<br />
*[[Podium_Live_Gauges|How to control which gauges show up on Podium.live]]<br />
*[[RaceCapture-Pro_MK3#RaceCapture_App_Tour|How to: Use Race Capture App]] (some features are specific to Race Capture Pro)<br />
*[[RaceTracks|How to: Submit a new race track]]<br />
*[[RaceCapturePro2_OBD2|How to: enable OBD2 channels]]<br />
*[[RaceCapturePro_How_To_Update_Firmware|How to update firmware]]<br />
*[[Add_Video_To_Podium|How to add video to Podium.live]]<br />
*[[RaceCapturePro_FAQ|More FAQs and How-To's]]<br />
*[https://www.youtube.com/watch?v=jAgFQ9k6VIw&list=PLZdfZf8eVujn2VSIXR5I-PPQSYS25xW5j How To Videos]<br />
<br />
=Specifications=<br />
<table class="alignleft" style="background-color: #e0e0e0;" width="100%"><br />
<tr><br />
<td colspan="2"><strong>Analog Inputs</strong></td><br />
</tr><br />
<tr><br />
<td>Channels</td><br />
<td>1 (Battery Voltage, Internally connected (0-20v))</td><br />
</tr><br />
<tr><br />
<td colspan="2"><strong>CAN Bus</strong></td><br />
</tr><br />
<tr><br />
<td>CAN Channels</td><br />
<td>2</td><br />
</tr><br />
<tr><br />
<td>CAN baud rate</td><br />
<td>125K, 250K, 500K, 1M Baud</td><br />
</tr><br />
<tr><br />
<td>CAN filters</td><br />
<td>14 per channel</td><br />
</tr><br />
<tr><br />
<td>Protocol Support</td><br />
<td>OBDII PID, custom CAN mapping</td><br />
</tr><br />
<tr><br />
<td>CAN Bus</td><br />
<td>CAN 2.0 compatible, 1M baud</td><br />
</tr><br />
<tr><br />
<td>CAN termination</td><br />
<td>Software controlled</td><br />
</tr><br />
<tr><br />
<td>CAN channels supported</td><br />
<td>100</td><br />
</tr><br />
<tr><br />
<td colspan="2"><strong>Serial</strong></td><br />
</tr><br />
<tr><br />
<td>Aux Serial</td><br />
<td>RS232</td><br />
</tr><br />
<tr><br />
<td>Max Baud Rate</td><br />
<td>230400</td><br />
</tr><br />
<tr><br />
<td colspan="2"><strong>Cellular Telemetry (Optional)</strong></td><br />
</tr><br />
<tr><br />
<td>Cellular</td><br />
<td>3.5G GSM worldwide compatible</td><br />
</tr><br />
<tr><br />
<td>Maximum Sample Rate</td><br />
<td>10Hz (1/5/10Hz supported)</td><br />
</tr><br />
<tr><br />
<td colspan="2"><strong>Wireless</strong></td><br />
</tr><br />
<tr><br />
<td>WiFi</td><br />
<td>802.11bgn</td><br />
</tr><br />
<tr><br />
<td>WiFi Modes</td><br />
<td>Access Point, Infrastructure</td><br />
</tr><br />
<tr><br />
<td>Maximum Sample Rate (dashboard link)</td><br />
<td>50Hz</td><br />
</tr><br />
<tr><br />
<td colspan="2"><strong>Storage</strong></td><br />
</tr><br />
<tr><br />
<td>Micro SD</td><br />
<td>Up to 32GB (SDHC)</td><br />
</tr><br />
<tr><br />
<td>Maximum Sample Rate</td><br />
<td>100Hz</td><br />
</tr><br />
<tr><br />
<td>Predictive Lap Timing</td><br />
<td>Built-in</td><br />
</tr><br />
<tr><br />
<td>Track Mapping</td><br />
<td>Circut and point-point</td><br />
</tr><br />
<tr><br />
<td>Track maps</td><br />
<td>200 built in for autonomous auto-detection</td><br />
</tr><br />
<tr><br />
<td>Sectors per track</td><br />
<td>20</td><br />
</tr><br />
<tr><br />
<td>Analysis</td><br />
<td>Included in the RaceCapture App, and on Podium</td><br />
</tr><br />
<tr><br />
<td>Export data format</td><br />
<td>Plain CSV (RaceRender compatible)</td><br />
</tr><br />
<tr><br />
<td colspan="2"><strong>Scripting / Customization</strong></td><br />
</tr><br />
<tr><br />
<td>Real-time virtual (math) channels / custom channel mapping</td><br />
<td>Via on-board Lua scripting</td><br />
</tr><br />
<tr><br />
<td>Virtual Channels</td><br />
<td>100</td><br />
</tr><br />
<tr><br />
<td colspan="2"><strong>Physical</strong></td><br />
</tr><br />
<tr><br />
<td>Dimensions</td><br />
<td>85 x 85 x 36mm (3.35 x 3.35 x 1.41in)</td><br />
</tr><br />
<tr><br />
<td>Temperature range</td><br />
<td>0 to 65c</td><br />
</tr><br />
<tr><br />
<td>Environmental</td><br />
<td>IP50 rated</td><br />
</tr><br />
<tr><br />
<td>Weight</td><br />
<td>170g (6 oz)</td><br />
</tr><br />
<tr><br />
<td>Physical</td><br />
<td>Molex Connector, 8 pins<br />
SMA for cellular module</td><br />
</tr><br />
<tr><br />
<td>Power Consumption (max)</td><br />
<td>Main System: 0.6W<br />
With Wireless: 1.6W<br />
With Cellular Telemetry: 8.6W<br />
With Cellular Telemetry and Wireless active: 9.6W</td><br />
</tr><br />
</table></div>Brentphttps://wiki.autosportlabs.com/index.php?title=RaceCapture_on_Raspberry_Pi&diff=10114RaceCapture on Raspberry Pi2024-02-21T14:55:46Z<p>Brentp: /* Launch the app */</p>
<hr />
<div>=Introduction=<br />
<br />
We designed the RaceCapture app to run nearly anywhere - even a Raspberry Pi. And now, for about $100 you can create a hardwired, dedicated dash for your RaceCapture system. <br />
<br />
[[image:racecapture_raspberry_pi.jpg|1024px]]<br />
<br />
==Benefits==<br />
You get all of the benefits of a dedicated dash:<br />
* '''Automatically runs upon power up''' - you can configure the dash to automatically launch the RaceCapture App - just as you'd expect it to work.<br />
* '''Hard-wired data connection to RaceCapture''' - no wireless connections to configure, with the reliability of a direct wire.<br />
* '''Runs on the bare metal''' - The RaceCapture app runs without Android or iOS; there's no other apps competing for resources, or compromising system stability. <br />
* '''Overheating resistance''' - Your typical mobile device requires extra care in very hot weather to prevent damage to it's internal battery, and will shut down if overheated. With proper heat-sinking, the Raspberry Pi should handle the heat.<br />
<br />
==Compatibility==<br />
The RaceCapture app running on the Raspberry Pi is compatible with any hardware version of RaceCapture or PodiumConnect. <br />
<br />
[[image:racecapture_raspberry_pi_backside.jpg|1024px]]<br />
<br />
==Experimental!==<br />
While the results are pretty great, these instructions are ''currently'' for those adventurous race car hackers who know their away around a command line, comfortable working with hardware and want to dig in. '''Think it's cool, but too much to tackle?''' Rope in your nearest computer/electronics geek - you need one on your race team, anyway. :) '''Or, just use the plug and play option''' and use an Android or iOS device via Bluetooth or WiFi.<br />
<br />
==Current status and future plans==<br />
Even though this is brand new and officially experimental in nature, we still made it as easy as reasonably possible: we wrapped up the RaceCapture App into as close to a self-running installer, that can run on a bone stock Raspberry Pi image - only a few changes are required to the default image, detailed below.<br />
<br />
'''However''', in the near future we will create a dedicated Raspberry Pi image that you can burn to an SD card and simply boot up, and move towards more official support as we iron out the issues. <br />
<br />
<br />
===Reporting issues and getting support===<br />
Chances are you'll encounter an issue you'll want to report. Before you do that, [https://github.com/autosportlabs/RaceCapture_App/issues?q=is%3Aopen+is%3Aissue+label%3A%22raspberry+pi%22 check the issue log] to see if it's already known.<br />
<br />
Otherwise - the best place for support, feedback and sharing success stories is [http://forum.autosportlabs.com on the forums] . Drop us a note there so we can see the progress of your project!<br />
<br />
=Hardware Selection=<br />
===Raspberry Pi===<br />
The RaceCapture app is compatible with Raspberry Pi 5, 4 and 3.<br />
We recommend the Raspberry Pi 4 2GB and higher for best performance and support.<br />
<br />
===Display===<br />
The RaceCapture app package is designed to recognize the following screens:<br />
<br />
* [https://www.raspberrypi.org/products/raspberry-pi-touch-display/ Official Raspberry Pi display] with capacitive touch screen;<br />
* Displays supporting the AR1100 resistive touch screen controller. <br />
<br />
<br />
Other displays can work as well, and additional work may be needed to support the screen's touch controller. If unsure, just pick the [https://www.raspberrypi.org/products/raspberry-pi-touch-display/ Official Raspberry Pi display]<br />
===Enclosure===<br />
A recommended enclosure is the [http://https://www.amazon.com/dp/B01HV97F64 Smart Pi Touch Case]<br />
<br />
You can 3D print a sun shade for this enclosure [[file:P001 Raspberry Pi Display Sun Shade.stl.zip|download the .stl file]] (''Courtesy of Michael Lee'')<br />
<br />
[[image:SmartPi_touch_case.jpg|400px]] [[image:RaceCapture_Sun_shade_3dprinted_preview.jpg|400px]]<br />
<br />
[[image:RaceCapture_RaspberryPi_sun_shade_dashboard.jpg|800px]]<br />
<br />
Installed on Dashboard<br />
<br />
===Power Supply===<br />
The Raspberry Pi dashboard requires its own power supply. You'll need a high quality 5v power supply with 2 amps minimum capacity; 3 amps is highly recommended, and ideally one with a low drop out voltage, so power is not cut to the Raspberry Pi when you're loading the main battery, such as when cranking the engine.<br />
<br />
'''Suggested Power Supplies'''<br />
* [https://www.amazon.com/Jabinco-LM2596-Converter-3-0-40V-1-5-35V/dp/B0817P8BGB/ Buck Converter based on the LM2596]<br />
<br />
====Powering RaceCapture====<br />
After you have power to the Raspberry Pi dashboard, you may notice your RaceCapture device will be powered by the USB cable connected to the Pi, just as if you're powering RaceCapture from your laptop. '''You will still want to power your RaceCapture via 12v'''; see the respective installation guides for information on how to power your device.<br />
<br />
===Heat sinking===<br />
If you're running in hot weather, we recommend the standard Raspberry Pi heatsink kit to keep your system cool.<br />
<br />
For Pi4 users, we recommend active fan cooling in addition to the heat sink.<br />
<br />
=Installation=<br />
==Installing Raspberry Pi OS==<br />
We currently recommend Raspberry Pi OS Lite, Debian Version 12 (bookworm) and require a 64bit version for app versions 2.9.0 and newer. <br />
<br />
Download from [https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit the official site] or use the [https://www.raspberrypi.com/software/ Raspberry Pi imager] and choose "Raspberry Pi OS (other)->Raspberry Pi OS Lite (64-bit)" for the operating system, following the instructions for burning to an SD card. <br />
<br />
Once you've created your image, boot up your Raspberry Pi and follow the prompts to set your keyboard language and create a username and password.<br />
<br />
You should now be able to login as that user and will be greeted with a command prompt like `user@raspberrypi:~ $`<br />
<br />
===Wifi Setup===<br />
Unless you are using a network cable you will need to setup Wifi before proceeding. To do this you need to run the command `sudo raspi-config`,<br />
this will bring up a window with several options. To configure Wifi you will want to select `1 System Options` followed by `S1 Wireless LAN`. It will ask you to select your Wifi country and set your network SSID and network password.<br />
<br />
===Timezone===<br />
It is advisable to set the system's timezone before proceeding. This is also accomplished by using raspi-config which is run with the command `sudo raspi-config`. If you are also setting up Wifi you can configure your timezone at the same time you are configuring Wifi. <br />
<br />
The timezone setting is configured in `5 Localization Options`->`L2 Timezone`. This will allow you to set the timezone by first selecting your region and a major city in your timezone. When done setting the timezone you can back out of raspi-config by hitting escape until you are back at the command prompt.<br />
<br />
===Checking your network===<br />
At this point it is good to make sure your Raspberry Pi is connected to your network. Without this none of the remaining steps will be successful. <br />
<br />
An easy way to check that you are connected to the network is to use the command `hostname -I`, this will print out the IP address of your<br />
Raspberry Pi, or a blank line if you are not connected.<br />
<pre><br />
user@raspberrypi:~ $ hostname -I<br />
192.168.1.183 2601:601:d07f:c107:dfb6:823:b21d:6dff<br />
</pre><br />
<br />
===Updating to latest packages===<br />
It is always good form to update the latest packages after a fresh install. Enter this at the command line:<br />
<pre><br />
sudo apt update<br />
sudo apt dist-upgrade<br />
</pre><br />
<br />
==RaceCapture App Installation==<br />
For those wanting an installation that automatically launches the dashboard upon login, we have developed<br />
an installation script. The installation script allows for the selection of either running against the <br />
framebuffer or X11, and helps in setting up standard Raspberry Pi configuration settings. As a bonus the installation<br />
script also includes optional features such as Wifi auto reconnect, USB drive automounting and GPIO based shutdown<br />
reboot support.<br />
<br />
If you want a more custom installation, such as running in a full Desktop environment, manual instructions are also provided. <br />
===Via Installation Script===<br />
From a command prompt simply run<br />
<pre>sudo sh -c "curl -sL bit.ly/3yTbPyZ | bash"</pre><br />
<br />
The installation script will setup the system configuration files so that screen blanking is disabled and GPU memory is set to 256MB.<br />
It will then prompt with a series of questions and configuration options, allowing you to customize the installation.<br />
====Configuration Options====<br />
The installation script prompts for the following:<br />
=====Auto Login=====<br />
* Whether to enable auto login upon startup, if not already enabled (Recommendation: Yes)<br />
** This allows the RPi to login as the current user and launch the RaceCapture App upon startup of your Raspberry Pi. Without this you will need to login every time your Raspberry Pi is powered up.<br />
=====RPi3 Official Display Support=====<br />
* If running an RPi3, whether you are running an Official RPi display.<br />
** Only select yes if you are using a RPi3 with an Official RPi display plugged into the LCD/MIPI connector on the board. Enabling this will disable HDMI support as the RPi3 doesn't appear to automatically detect LCD screens properly.<br />
=====Installation Type=====<br />
* Which type of installation you want, Framebuffer (traditional installation), or X11 which enables the option of VNC support<br />
* If X11 was chosen:<br />
** Whether to enable VNC and if so prompts for entering a VNC password<br />
=====App Features=====<br />
* Watchdog: Enables automatically restarting the RaceCapture App should it crash/exit unexpectedly<br />
* Cursor: Enables a visual mouse pointer (Not recommended for touchscreens)<br />
* Keyboard: Enables an onscreen virtual keyboard for touch screens<br />
=====Extra Features=====<br />
* Wifi Auto Reconnect: Enables a script that detects if your wifi connection is down and attempts to reconnect<br />
* USB Automounting: Enables automatic mounting of USB thumbdrives under /media/usb#, useful for exporting session data or saving configs off the device<br />
* GPIO Reboot/Shutdown: Enables the ability to add a button or switch between GPIO21 and a ground pin, with a short press causing a reboot and a long press causing a graceful shutdown<br />
<br />
====Post Configuration Steps====<br />
After you have selected your configuration options the installation script will proceed to download the latest RaceCapture App bundle from<br />
[http://podium.live/software the Podium website], placing it in /opt. If the latest version is already present in /opt it will skip this step.<br />
<br />
Next it will unpack the App into /opt/racecapture, prompting you to overwrite and existing installation if one exists.<br />
<br />
Finally, the script will modify some files, .bashrc and .xinitrc for X11 installations, so that the Race Capture app launches upon login.<br />
<br />
===Manual Installation===<br />
If you choose to install the RaceCapture App manually it's assumed that you have an understanding of the different configuration and installation<br />
options available for the Raspberry Pi. Below is the minimal requirements to run the RaceCapture App via the Framebuffer. <br />
If running in an X11/desktop environment the same instructions should be adequate for running the app in that environment also.<br />
<br />
====Install package dependencies====<br />
<pre><br />
sudo apt install mesa-utils libgles2 libegl1-mesa libegl-mesa0 mtdev-tools<br />
</pre><br />
<br />
====User Permissions====<br />
Ensure that the user is in the dialout, render, video and input groups. It appears these are added by default but to be sure you should run:<br />
<pre><br />
sudo adduser $USER render<br />
sudo adduser $USER video<br />
sudo adduser $USER input<br />
sudo adduser $USER dialout<br />
</pre><br />
<br />
====Installing the RaceCapture app package====<br />
<br />
Download the latest [http://podium.live/software RaceCapture app package for Raspberry Pi] and place it in the /opt/ directory of the Raspberry Pi.<br />
<br />
* '''Directly downloading to the Raspberry Pi'''<br />
You can download it directly by getting the URL of the package by right-clicking the download link and copying the URL to your clipboard. Then, use it in the command below:<br />
<br />
<pre><br />
cd /opt<br />
sudo wget <package URL><br />
</pre><br />
<br />
=====Extract the package=====<br />
Now extract the downloaded package :<br />
<br />
<pre><br />
sudo tar -xjvf <downloaded file><br />
</pre><br />
<br />
====Launch the app====<br />
Launch the RaceCapture app by running the following command:<br />
<br />
<pre><br />
/opt/racecapture/run_racecapture_rpi.sh<br />
</pre><br />
<br />
====Launching with Watchdog====<br />
You can enable an automatic watchdog that re-launches the app in case a crash occurs. <br />
<br />
<pre><br />
/opt/racecapture/run_racecapture.sh -w 1<br />
</pre><br />
<br />
<br />
* '''Note:''' You can break out of the application by issuing '''Alt + PrntScn + k''' to the application. <br />
<br />
You can further stop all racecapture processes by issuing the following command (e.g. via ssh)<br />
<pre><br />
killall -9 run_racecapture<br />
</pre><br />
<br />
====Enabling on screen keyboard====<br />
If you don't have a wireless keyboard attached via usb, you can enable an on-screen keyboard.<br />
<br />
Edit the kivy config.ini file with:<br />
<pre><br />
sudo nano ~/.kivy/config.ini<br />
</pre><br />
<br />
and update the keyboard_mode line with:<br />
<br />
keyboard_mode = multi<br />
<br />
<br />
=Connecting to your RaceCapture system=<br />
[[image:racecapture_raspberry_pi_connections.jpg|900px]]<br />
===Powering up===<br />
* Connect your RaceCapture/Pro or RaceCapture/Track to the Raspberry Pi using the USB cable. <br />
* Connect the power to your display and power up. <br />
<br />
====Installed via Script====<br />
If you installed via the setup script and enabled autologin, simply let it start upon power-up. <br />
Without autologin you will need to first login as your default user.<br />
<br />
====Manual Installation====<br />
See [[#Launch_the_app]]<br />
<br />
===Connection and usage===<br />
<br />
Once the RaceCapture App is running, it will connect automatically over USB. You can use the app just as you would on Android or iOS.<br />
<br />
=Extra Features=<br />
<br />
===Hardwire buttons===<br />
<br />
The RaceCapture app responds to keyboard commands for certain behaviors. You can use a USB keyboard - or a device that emulates keyboard commands - to control the RaceCapture App.<br />
<br />
Currently there are keyboard commands for the following:<br />
* '''Navigating dashboard screens''' - Use the left and right arrow keys to switch between screens<br />
* '''Escaping from screens / menus''' - The Escape key can be used to exit out of screens and options, just like the 'back' button on Android.<br />
* '''Acknowledging alerts''' - Use the following keys to acknowledge alerts, including responding to pit-to-car alerts:<br />
** K : to indicate 'Yes' or 'OK'<br />
** N : to indicate 'No"<br />
<br />
<br />
=Additional Tips=<br />
See this link for additional tips on how to setup the Pi and speed up the boot times. This should be especially helpful for beginners.<br />
<br />
https://wiki.autosportlabs.com/Raspberry_Pi_Tips<br />
<br />
Logfiles for troubleshooting can be found at<br />
<br />
/home/pi</div>Brentphttps://wiki.autosportlabs.com/index.php?title=RaceCapture_App_User%27s_Guide&diff=10097RaceCapture App User's Guide2024-02-07T21:42:40Z<p>Brentp: /* Anywhere in app */</p>
<hr />
<div>[[image:racecapture_app_home_page.jpg|800px]]<br />
<br />
=Overview=<br />
==About the guide==<br />
This is a comprehensive user guide that contains complete instructions about the services and functions of the RaceCapture app. The app is designed to be easy to use across multiple devices. The RaceCapture app allows you to integrate your devices with the RaceCapture modules and get instant access to the endless functionalities of RaceCapture modules. Using this app, customers can access all the features of the RaceCapture modules, monitor, store, and analyze the real-time data, and users can also provide customized commands to the RaceCapture modules using Lua scripts. Further details about the app are given in the respective sections.<br><br />
<br />
'''Note:''' It is recommended that this guide be read thoroughly to familiarize with the RaceCapture app, and perform tasks efficiently and effectively.<br />
<br />
==Navigation==<br />
===Home View===<br />
Upon launching the Racecapture app, the Home View serves as the starting point, presenting users with three primary icon options:<br />
* Analysis<br />
* Dashboard<br />
* Setup<br />
<br />
===Navigate through the app===<br />
[[File:Navigation .gif|800px]]<br><br />
<br />
<br />
To explore additional functionalities of the app, users can access the navigation menu by tapping the hamburger button located at the top left corner. Upon clicking the hamburger button, a tab bar appears on the left, and Users can switch between different sections by tapping on the respective icons on this tab bar.<br />
<br />
==Compatible OS [[File:Good to Know.png|20px]]==<br />
Racecapture app is compatible with all the advanced operating systems. However, it is not functional on a few old versions of tablets and on Windows XP, 7, and 8 due to their outdated video drivers.<br />
* '''Not sure what tablet to use? ''' [[RaceCapture_App_recommended_tablets|See our list of recommended tablets]]<br />
<br />
==How to Install==<br />
Installing the recapture app is simple and straightforward. You simply need to download the app and install it. No complicated steps are required. The download links and installation instructions for desktop and mobile devices are given below.<br />
===On Desktop===<br />
* '''Download :'''For desktop, download the recapture app from the following link [https://podium.live/software Windows and OSX]<br />
* '''Installation in Windows 10/11:''' Windows 10/11 has built in USB drivers that support Recapture; no separate driver installation needed.<br />
* '''Installation in XP, 7, and 8:''' In Window XP,7, & 8 will require USB drivers for installation. Users can download USB driver from following link "[[RaceCapture-Track_MK2#Microsoft_Windows_7.2F8_Driver_installation|Click here.]]"<br />
===On Mobile===<br />
[[image:google_play_amazon_itunes_app_store.png]]<br><br />
<br />
Mobile user (Android/iOS) can simply install form the link given below.<br />
<br />
* [https://play.google.com/store/apps/details?id=com.autosportlabs.racecapture&hl=en Google Play]<br />
* [https://www.amazon.com/Autosport-Labs-Race-Capture/dp/B016ZJM7GE Amazon App Store]<br />
* [https://itunes.apple.com/us/app/racecapture/id1162797255?mt=8 iTunes]<br />
===On Raspberry Pi===<br />
[[image:Racecapture_raspberry_pi.jpg|400px]]<br />
<br />
More advanced users can run the RaceCapture App on a Raspberry pi for a more dedicated dashboard experience. <br />
* Learn more in the [[RaceCapture_on_Raspberry_Pi|Raspberry Pi Guide]]<br />
==Icons Used in Manual==<br />
Throughout this document, the pictograms below are used to underline points or important notions.<br />
<br />
{| class="wikitable"<br />
|+ <br />
|-<br />
! Icon !! Description<br />
|-<br />
| <br />
[[File:Important Symbol.png|20px|center]]<br />
|| Important information<br />
|-<br />
| <br />
[[File:Good to Know.png|20px|center]]<br />
|| Good to Know<br />
|-<br />
| <br />
[[File:Mandatory Action.jpg|20px|center]]<br />
|| Mandatory action <br />
|}<br />
==Intellectual Property and Usage Rights==<br />
The information contained in this document is the intellectual property of Autosport Labs, and No one can use it without the prior permission of Autosport Labs.<br />
==Help==<br />
For additional help, we encourage you to visit one of our support communities:<br />
<br />
* [https://discord.gg/JbKUyFw Discord Server]<br />
* [https://forum.autosportlabs.com Forums]<br />
* [https://www.facebook.com/groups/1288770887817789/ Facebook group]<br />
<br />
=Setup Wizard= <br />
[[image:racecapture_app_first_time_setup.gif|800px]]<br><br />
<br />
Upon running the RaceCapture app for the first time, you are presented with a first time setup wizard. Follow the steps given below to configure your device..[[File:Mandatory Action.jpg|20px]] <br><br />
'''Welcome Page:'''<br />
* Click 'Next' on the welcome page to proceed to the device setup.<br><br />
<br />
<br />
'''Device Selection:'''<br />
* Choose your RaceCapture device from the provided list.<br />
* Click 'Next' to move to the connection page.<br><br />
<br />
<br />
'''Connection Setup:'''<br />
* Connect your system to the USB port.<br />
* Wait for the connection to establish; your device will be recognized once connected.<br><br />
<br />
<br />
'''Note'''[[File:Good to Know.png|20px]]: You can access first time setup again by navigating to the main Setup page and selecting First time setup (as shown in the instruction below)<br><br><br />
[[File:First Time setup.gif|800px]]<br><br />
<br />
=System Status=<br />
Access the system status pages through the top left menu. The system status offers information on GPS status, current WiFi state and more. You can also get a copy of the RaceCapture application log for diagnostics.<br />
<br />
[[image:racecapture_app_status_page.jpg|800px]]<br />
<br />
=Dashboard Mode=<br />
To view your dashboard, press the dashboard option on the main screen.<br />
<br />
[[image:racecapture_app_dashboard_screen.gif|800px]]<br />
<br />
==Navigating Dashboard Pages==<br />
Multiple dashboard pages are supported. To move to a different page:<br />
* Swipe left or right on the screen<br />
* Press the left or right arrow buttons at the bottom of the screen<br />
* Press the left/right keyboard keys<br />
<br />
[[image:racecapture_app_dashboard_navigation.gif|800px]]<br />
<br />
==Importing a new dashboard==<br />
[[image:racecapture_app_import_dashboard.gif|800px]]<br><br />
<br />
To customize your experience, you can import additional dashboard pages either from the system-provided templates or from those created by fellow racers. Follow the steps below to import a new dashboard:<br />
* Click on the gear icon located at the top right corner, and select the rectangular 'Add' icon.<br />
* In the 'Add' icon, you'll find three options:<br />
**System<br />
**Your<br />
**Shared<br />
* Choose your preferred option and scroll down to explore the available dashboard templates.<br />
* Press 'Select' next to the desired dashboard template to import it.<br />
<br />
By following these steps, you can easily enhance your dashboard with a variety of templates tailored to your preferences.<br />
<br />
==Customizing a gauge==<br />
[[image:racecapture_customize_gauge.gif|800px]]<br><br />
<br />
RaceCapture app provides, plenty of options for customizing gauges, and designing your own attractive gauges.<br />
<br />
To edit a gauge:<br />
* Unlock the dashboard<br />
* Press the gear button on the gauge to customize its settings. Depending on the gauge, you can edit:<br />
** Display channel<br />
** Color<br />
** Min/Max range<br />
** Precision (number of digits to the right of the decimal point)<br />
** Other settings depending on the gauge<br />
<br />
===Customizing Analog and Digital Gauges[[File:Good to Know.png|20px]]=== <br />
<br />
For Analog and Digital gauges, the Racepcapture app provides advanced options for customizing all the features of the Analog and Digital gauges ranging from the design of gauge, dial, color, and background, to font size, markers size, and precision using it using its super flexible analog and digital gauge editor.<br />
<br />
'''Analog Gauges'''<br><br />
<br />
[[File:Customizing Analog Gauges (3).gif|800px]]<br><br />
<br />
For customizing Analog gauges, follow the instructions given below<br />
* Unlock the dashboard<br />
* Press the gear button on the gauge and select the edit option<br />
* From the top bar, select the Channel and change the channel as per your requirement.<br />
* After selecting channel, select the setting option at the top bar and select Analog Gauge editor.<br />
* In Analog Gauge editor, there are tons of customizable options, with a handy preview area.<br />
'''Note :''' For more information, [https://www.autosportlabs.com/racecapture-app-2-12-0-next-generation-analog-gauges/ Click here] [[File:Good to Know.png|20px]]<br />
<br />
'''Digital Gauges'''<br><br />
<br />
[[File:Customizing Digital Gauges.gif|800px]]<br />
For customizing Digital gauges, follow the instructions given below<br />
* Unlock the dashboard<br />
* Press the gear button on the gauge and select the edit option<br />
* From the top bar, select the Channel and change the channel as per your requirement.<br />
* After selecting channel, select the setting option at the top bar and select Digital Gauge editor.<br />
* In Digital Gauge editor, there numerous customizable options available<br />
'''Note :''' For more information, [https://www.autosportlabs.com/racecapture-app-2-13-0-next-gen-digital-gauges/ Click here] [[File:Good to Know.png|20px]]<br />
<br />
==Dashboard Alerts==<br />
You can create dashboard alerts for any channel.<br />
<br />
[[image:racecapture_app_gauge_alerts.gif|800px]]<br />
<br />
There are two ways to create a gauge alert:<br />
# Use the central alerts editor<br />
# Edit alerts from gauges<br />
<br />
===Use the central alerts editor===<br />
[[File:Dashboard Alert .gif|800px]]<br />
* Access the dashboard settings by clicking on the gear icon.<br />
* Select More Settings and navigate to the Alerts tab<br />
* Select the channel you wish to create alerts for, or press the (+) icon to create a new alert<br />
* In the Alert rule tab, users can configure the alert active range, alert active after time, alert deactivate after time, and can also select the notification methods (Popup "Alert" or "Set Gauge color"). <br><br />
<br />
'''Customize Notification'''<br><br />
<br />
[[File:Popup Notification.gif|800px]]<br />
* '''Popup Alert notification:''' users can customize the message and color of alert by clicking on " add new action> selecting Popup: "Alert" > and change the message and color as per their need. <br />
* '''In Set Gauge color:''' users can customize the color of gauge by clicking on " add new action> selecting Set Gauge Color > Color<br />
<br />
===Edit alerts from gauges<br>===<br />
<br />
[[File:Dashboard Alert using gauge edit.gif|800px]]<br />
* Edit a gauge<br />
* Switch to the Channels tab and press the customization gear icon for the selected channel<br />
* Switch to the Alerts tab and customize your alerts<br />
<br />
==Customizing your dashboard==<br />
[[image:racecapture_app_dashboard_designer.gif|800px]]<br><br />
<br />
Users have the flexibility to modify an existing dashboard or create a new one from scratch by firstly unlocking the dashboard page and then adding/modifying gauges to create the design they want.<br><br />
<br />
Users can add new gauges by following the steps given below:<br />
# Unlock the dashboard page by unlocking the gear icon present at the top right corner<br />
# After unlocking the gauge icon, open the gauge icon by clicking the gear icon.<br />
# In the add gauge option, select the gauge type, channel type, and configure the gauge setting as per your requirements.<br />
<br />
'''Note :''' For create a data-driven color-changing dashboard background [https://www.youtube.com/watch?v=vyo2WoF1iHo&t=1s Check Here] [[File:Good to Know.png|20px]]<br />
<br />
==Saving your dashboard==<br />
[[image:racecapture_app_save_dashboard.gif|800px]]<br><br />
<br />
Once you have customized your dashboard to your liking, you can save it to the cloud, allowing easy sharing with other racers or access from different devices. Follow these steps to save your dashboard:<br />
<br />
* Click the gear icon at the top right corner to unlock the dashboard.<br />
* Click the save icon.<br />
* Under the "Create New" tab, press "New."<br />
* Provide a name for your dashboard and save it.<br />
<br><br />
By following these steps, your customized dashboard will be saved to the cloud, accessible for sharing and convenient use across various devices.<br />
<br />
==Predictive Lap timing[[File:Good to Know.png|20px]]==<br />
RaceCapture/Pro offers predictive lap timing, which relies on a robust track detection system leveraging hundreds of track maps worldwide. <br />
<br />
[[image:racecapture_app_dashboard_predictive_timer.gif|800px]]<br />
<br />
===How it works===<br />
* When GPS receives a lock, RaceCapture will search for a nearby track. <br />
* If a track is detected with one configuration, it is automatically selected.<br />
* If a track is detected with multiple configurations, the RaceCapture app will prompt you for which configuration you're using.<br />
* If no tracks are detected nearby, the RaceCapture app will offer the ability to create a track on the spot. <br />
** If you're not able to immediately create the track, you can do so later under '''Setup'''.<br />
* '''Track not found?''' [[RaceTracks|Submit the track to us]] and we'll get it into our online database. [[File:Good to Know.png|20px]]<br />
<br />
[[image:RaceCapture_create_custom_track.png|640px]]<br />
<br />
=Analysis=<br />
The RaceCapture app automatically record users session when triggered by the threshold they have configure under '''Setup / Automatic Control'''<br><br />
<br />
'''Note [[File:Important Symbol.png|20px]]''' : The system default is to trigger on Speed<br />
<br />
To view the data, enter the '''Analysis''' mode and load an existing session. The session will be automatically named with the local track or with a timestamp. <br />
<br />
'''Loading a Session:'''<br><br />
<br />
[[image:racecapture_app_analysis_load_session.gif|800px]]<br><br />
<br />
Users can load sessions by:<br />
<br />
* Pressing the (+) button at the bottom of the pop-out list of laps.<br />
* Alternatively, press the gear icon on the dashboard and select 'Sessions'.<br />
<br><br />
<br />
'''Importing a Session:'''<br><br><br />
[[File:Importing log files...gif|800px]]<br />
<br />
For advanced analysis, users can import log files of sessions. For importing sessions, users can follow the steps given below.<br />
* On the home screen, click on the 'Analysis' option.<br />
* Press the (+) button at the bottom of the pop-out list of laps.<br />
* A new tab will open; in this new tab, select the 'Import Log' option.<br />
* Under 'Import Log,' press the 'Select' option under Datalog file and import the log file.<br />
<br />
'''Note [[File:Good to Know.png|20px]]:''' Users can also import datalog video files by clicking the 'Select' option under Datalog Video file.<br />
<br />
==Navigating data==<br />
Racepcapture app provides plenty of flexible options for navigating data.<br />
===Cursor across line chart===<br />
Users can swipe across the line chart to correlate different points with the position on the track map.<br />
===Playback Control===<br />
User can use the controls at the bottom to automatically play back the selected lap(s). Using the playback control option, user can also control the speed of laps.<br><br />
<br />
Swipe across the data to compare various points correlated with the position on the track map.<br />
<br />
'''Zooming'''<br />
<br />
Users can zoom on the line charts data using a two-finger pinch gesture, or using the mouse scroll wheel or your laptop's trackpad scroll gesture. For the map, users can also zoom in, and zoom-out using the designated buttons present at the top right corner.<br />
<br />
==Reviewing Laps==<br />
Within the RaceCapture app, users have the ability to conduct a thorough analysis, and comprehensive comparison of laps for performance evaluation. This section guides you through various tools and features available for a detailed and comprehensive approach to lap analysis<br />
<br />
===Performance Metrics===<br />
Racecapture app provides users with plenty of performance metrics options to comprehensively analyze the performance of your cars and optimize your driving strategy. The table below provides a detailed explanation of a few important available metric:<br />
<br />
{| class="wikitable"<br />
|+ Performance Metrics<br />
|-<br />
! Matric !! Description<br />
|-<br />
| AccelX, AccelY, AccelZ || Lateral, Longitudinal & Vertical acceleration in X, Y and Z axis<br />
|-<br />
| Battery || Battery voltage level<br />
|-<br />
| Brake || Brake position <br />
|-<br />
| CurrentLap || Current lap number <br />
|-<br />
| ElapsedTime || Time elapsed since the start of the session<br />
|-<br />
| EngineTemp || Temperature of Engine<br />
|-<br />
| GPSQual || GPS quality status<br />
|-<br />
| Gear || Current gear position<br />
|-<br />
| LapCount || Total laps completed<br />
|-<br />
| LapTime || Time taken for the current lap<br />
|-<br />
| MAP || Manifold absolute pressure<br />
|-<br />
| MaxRpm || Maximum RPM reached<br />
|-<br />
| OilPress || Engine oil pressure<br />
|-<br />
| Pitch || Angular orientation around the X-axis<br />
|-<br />
| PredTime || Predicted lap time based on the current performance<br />
|-<br />
| RPM || Engine revolutions per minute<br />
|-<br />
| Roll || Angular orientation around the Y-axis<br />
|-<br />
| ShiftLight || Status of the shift light<br />
|-<br />
| SessionTime || Total time elapsed in the current session<br />
|-<br />
| TPMSVoltLF, TPMSVoltLR, TPMSVoltRF, & TPMSVoltRR || Tire Pressure Monitoring System voltages of Left front, Left Rear, Right front & Right rear tires respectively<br />
|-<br />
| TPressLF, TPressLR, TPressRF, & TPressRR || Tires Pressure of Left front, Left Rear, Right front & Right rear tires respectively<br />
|-<br />
| TireITmpLF, TireITmpLR, TireITmpRF, & TireTmpRR || Internal tires temperature of Left front, Left Rear, Right front & Right rear tires respectively<br />
|-<br />
| Utc || Coordinated Universal Time<br />
|-<br />
|}<br />
<br />
In addition to the previously mentioned metrics, offers a diverse range of performance metrics for a comprehensive analysis of your vehicle's dynamics. These include:<br><br />
<br />
'''Position and Timing Metrics:'''<br />
* CurrentLap<br />
* Distance<br />
* SessionTime<br />
* TnSlapTime<br />
<br />
'''Geospatial Metrics:'''<br />
* Latitude<br />
* Longitude<br />
* GPSQual (GPS Quality)<br />
* GPSSATS (Number of GPS Satellites)<br><br />
<br />
'''Competition Metrics:'''<br />
* CompAhead (Comparison Ahead)<br />
* CompBehind (Comparison Behind)<br />
* CompFlag (Competition Flag)<br />
* GapAhead<br />
* LapsAhead<br />
* LapsBehind<br />
<br />
'''Dynamic Metrics:'''<br />
* GsumMax (Maximum G-force)<br />
* GsumPct (Percentage of Maximum G-force)<br />
* Interval<br />
<br />
'''Predictive Metrics:'''<br />
* PredTime (Predicted Lap Time)<br />
<br />
<br />
'''Built-in Default Sensors [[File:Important Symbol.png|20px]]'''<br><br />
<br />
It's important to note that many of these metrics become available when related sensors are connected to the system. The RaceCapture app comes equipped with built-in default sensors, providing a foundational set of metrics:<br />
<br />
* '''Position (Latitude / Longitude):''' Derived from the GPS sensor, offering accurate location data.<br />
* '''Speed:''' Provided by the GPS sensor, delivering real-time speed information.<br />
* '''IMU (Accelerometer and Gyro):''' Three channels each, offering essential data on acceleration and rotation.<br />
* '''Battery:''' Monitors the voltage level, providing insights into the power status of the system.<br />
* '''OBDII Channels:''' When plugged into a vehicle with OBDII support, additional channels become available. These channels may vary based on the vehicle, but by default, TPS (Throttle Position Sensor), EngineTemp (Engine Temperature), and RPM (Revolutions Per Minute) are consistently accessible.<br />
<br><br />
<br />
Each metric provides a unique perspective on your vehicle's performance, allowing for a nuanced analysis to refine your racing strategy.<br />
<br />
====Selecting Performance Metrics====<br />
[[File:Metrice.gif|800px]]<br />
<br />
To choose and display specific performance metrics on your dashboard, follow these steps:<br />
'''<br />
* Unlock the gear icon present at the top right corner<br />
* Click on the gear icon and select the add gauge option<br />
* Pick the gauge type that suits your analysis needs (e.g., digital, analog, linear chart).<br />
* Within the chosen gauge type, select the "Channel" representing the performance metric you want to analyze.<br />
* Fine-tune the settings to align with your requirements. Adjust parameters such as scale, range, or units based on your preferences.<br />
* Save your gauge configuration to apply the selected performance metrics to your dashboard.<br />
<br><br />
By following these steps, you can tailor your dashboard to showcase the specific performance metrics that matter most to your racing analysis.<br />
<br />
===Data Visualization===<br />
Racecapture app provides innovative data visualization features, empowering users with advanced features for in-depth analysis. The table below provides a detailed explanation of available gauges:<br />
{| class="wikitable"<br />
|+ Data Visualization Options<br />
|-<br />
! Gauge Type !! Description<br />
|-<br />
| Analog || Visualize data with analog-style gauges for a real-time, dynamic display.<br />
|-<br />
| Bargraph || Use bar graphs to represent data discretely, providing a clear insight of data.<br />
|-<br />
| Bitmap || Display custom images or icons to enhance the visual representation of your data.<br />
|-<br />
| Digital || Showcase numerical data in a clear and precise digital format for quick reference.<br />
|-<br />
| Heat Chart || Gain insights into data patterns using color gradients to represent varying intensities.<br />
|-<br />
| Histogram || Understand data distribution through histogram charts, ideal for analyzing frequency.<br />
|-<br />
| LapTime || Focus on lap-specific metrics with dedicated gauges for lap time analysis.<br />
|-<br />
| Line Chart || Track trends and variations over time using line charts for comprehensive data analysis<br />
|-<br />
| Overview || Get a holistic view of your racing data with overview gauges summarizing key metrics.<br />
|-<br />
| Raw Channel || Provides an unfiltered analysis of individual parameters.<br />
|-<br />
| Scatter Plot || Identify correlations and relationships between two variables using scatter plots.<br />
|-<br />
| Thermal Image || Visualize temperature variations with thermal image gauges for heat-sensitive data.<br />
|-<br />
| Time Delta || Analyze time differentials between specific data points using time delta gauges.<br />
|-<br />
| Time Gap || Evaluate time gaps for strategic decision-making.<br />
|-<br />
| Track Map || Navigate your racing data on a track map, providing a spatial context to your analysis.<br />
|-<br />
| Video || Integrate video data seamlessly with dedicated video gauges for synchronized analysis.<br />
|}<br />
<br />
Users can explore the above mentioned gauge types to enhance their data visualization experience and get valuable insights.<br />
<br />
====Selecting Gauge Type====<br />
[[File:Data Visualization.gif|800px]]<br><br />
<br />
Users can select the desired gauge type by following the steps given below:<br />
* Unlock the gear icon present at the top right corner<br />
* Click on the gear icon and select the add gauge option<br />
* Pick the gauge type that suits your analysis needs (e.g., digital, analog, heart chart).<br />
<br />
===Customizing Views===<br />
The RaceCapture app provides numerous customization options, allowing users to configure the app interface as per their preferences. Explore the key customization features below:<br />
<br />
'''Gauge Customization'''<br />
* Size, Shape, Type: Modify the size, shape, and type of available gauges to suit your visual preferences.<br />
* Color and Appearance: Personalize the color scheme and appearance of each gauge for a customized display.<br />
<br />
'''Gauge Placement'''<br />
* Location Customization: Users can move gauges to their preferred locations on the display<br />
* Position Setting: Set gauges precisely where you need them for an intuitive and efficient layout.<br />
<br />
'''Layer Management'''<br />
* Bring to Front or Send to Back: Adjust the layering of gauges with options to raise or lower their appearance.<br />
* Raise to Top or Lower to Bottom: Adjust the visibility of gauges by bringing them to the forefront or placing them at the back.<br />
<br />
'''Zoom Functionality'''<br />
* Zoom In & Zoom Out: For enhancing focus, users can Zoom-in and Zoom out gauge as per requirement.<br />
<br />
'''Alert Customization'''<br />
* Set Custom Alerts: Define alerts based on specific conditions or events during your race.<br />
* Threshold Adjustments: Configured alert thresholds to match your required value.<br />
<br />
'''Advanced Features Exploration'''<br />
* Video Integration: Seamlessly integrate video data for synchronized analysis with racing telemetry.<br />
* Thermal Imaging: Users can use the advance feature of thermal imaging for a more comprehensive understanding of your racing data.<br />
<br />
'''Regular Upgradation'''<br />
* Continuous Refinement: Users can regularly assess and fine-tune their dashboard layout and configurations based on changing preferences and real-time racing needs.<br />
<br />
User can experiment with different configurations to find the setup that enhances their racing strategy and overall performance.<br />
<br />
===Comparative Analysis===<br />
[[File:Comparative Analysis.gif|800px]]<br />
<br />
RaceCapture app also provides advance comparative analysis options which help users to gain deeper insights into their performance over multiple laps. If your data includes lap times, this feature becomes a valuable tool in refining your racing strategy. Here's how users can take the advantage of the Comparative Analysis option:<br />
<br />
'''Navigate to Comparative Analysis:'''<br />
* Access the Comparative Analysis feature by selecting the laps dropdown list on the right side of the interface.<br />
<br />
'''Select Laps for Comparison:'''<br />
* Choose the laps you wish to compare from the available dropdown list.<br />
* Users can compare up to 4 laps simultaneously, whether they are from the same session or different sessions.<br />
<br />
'''Comprehensive Lap Comparison:'''<br />
* Use the Comparative Analysis option to comprehensively assess different laps.<br />
* Identify trends, analyze variations, and pinpoint areas for improvement in your driving performance.<br />
<br />
'''Performance Shortcomings Analysis'''<br />
* Uncover performance shortcomings by comparing key metrics across selected laps.<br />
<br />
'''Session-to-Session Comparison:'''<br />
* Compare laps from different sessions to track your progress over time.<br />
<br />
'''Advance Analysis Tools:'''<br />
* Users can use advance gauges and video playback, for a holistic understanding of their racing performance.<br />
<br />
==Reviewing raw data==<br />
If your data contains no laps, such as data from a static test or dyno pull, the data will be present in one entry under the loaded session. Select this entry to view the data. The RaceCapture app will auto-select the '''Time''' dimension if it detects no significant distance traveled within the data.<br />
<br />
==Exporting Data==<br />
You can export your sessions from your list of saved sessions.<br />
<br />
===Android===<br />
* Press the gear icon to access your session list<br />
* Select the session you wish to export - Android will let you save it to a file, share to email, or any other app that accepts files.<br />
* '''Note:''' - if you save it to your local device, you can download it to your computer using a USB cable when your Android device is set up in File Transfer mode<br />
<br />
===iOS===<br />
* Press the gear icon to access your session list<br />
* Export this to your local iOS device storage. <br />
* Connect your iOS device to your computer using a USB cable. <br />
* Access the iOS device using the iTunes file sharing capability. We recommend [http://www.i-funbox.com/en/index.html iFunBox] as an easy to use tool.<br />
* Copy the exported log file from your iOS device to your computer.<br />
<br />
===Importing to 3rd party software===<br />
The RaceCapture log file format is plain CSV, which can be imported into 3rd party software. <br />
<br />
* '''RaceRender''' provides native support for the RaceCapture log file format. See the [[RaceCapture_RaceRender_Guide|exporting to RaceRender guide]].<br />
* '''DashWare''' has been used by RaceCapture customers - Rowan Hick has a write-up on [https://www.rowanhick.com/2016/01/07/racecapture-pro-dashware-win Dashware integration].<br />
<br />
=System Setup=<br />
You can configure all of RaceCapture's options under Setup. <br />
<br />
When the RaceCapture app detects the connected hardware, it will read the current setup from the device.<br />
* The setup information is presented as a series of pages, by topic. <br />
* When you change something on a setup page, you'll need to '''Write''' the changes back to the RaceCapture device before they take effect.<br />
<br />
[[Image:racecapture_setup_buttons.png]]<br />
<br />
==Explanation of buttons==<br />
* '''Save''': Save the current RaceCapture setup to a file, for backup.<br />
* '''Open''': Load a previously saved setup file. <br />
* '''Read''': Read the current setup from the RaceCapture device. <br />
* '''Write''': Writes any updated changes back to the RaceCapture device. '''Note: when you see the write button glowing / pulsing, it means there are pending changes to write back to the RaceCapture device'''<br />
<br />
==App Preferences==<br />
[[File:App Prederences 1.png|800px]]<br><br />
<br />
On the App preferences section, users can customize various settings as per their requirements. The setting options are as follows:<br />
<br />
* '''Startup Screen:''' From the startup screen option, users can select any of the following as the startup screen " Homepage, dashboard, Setup & Analysis.<br />
<br />
* '''Record Session:''' Users can toggle the recording of sessions on or off based on their preference.<br />
<br />
* '''Send Telemetry:''' Control the transmission of telemetry to the Podium app (App will not send the telemetry if the device built-in telemetry module in on)<br />
<br />
* '''Connection Type:''' Switch between USB and Wifi as the RaceCapture device connection type.<br />
<br />
* '''Full Screen''' Users can enable the full screen mode of the app by turning on the full screen option present at the bottom<br />
<br />
==Race Tracks==<br />
[[File:Racetrack..gif|800px]]<br />
<br />
On the Race Tracks page you can create a custom track, which will be included in the library of track maps for automatic detection. Follow these steps to set up your custom track:<br />
<br />
'''Disable Automatic Race Track Detection:'''<br />
* To create a custom track, turn off 'Automatic race track detection' option present at the top right corner<br><br />
<br />
<br />
'''Add a New Track'''<br />
* Press the add (+) button, present at the bottom left corner, to begin the process of adding a new track to the library.<br><br />
<br />
<br />
'''Choose Track Style'''<br />
* Upon selecting to add a new track, opt for either a circuit or Autocross (point-to-point) style course.<br><br />
<br />
<br />
'''Select Start and Finish points'''<br />
* Follow the prompts to choose the start and finish points of your track. Drive to the desired start line and press start. You can either finish immediately to create a simple track map with a single start/finish point or proceed to create more complex configurations.<br><br />
<br />
<br />
'''Drive Through the Track'''<br />
* Drive through the track as you've configured, ensuring to drive a sufficient distance away from the start/finish point before returning.<br><br />
<br />
<br />
'''Confirm Track Creation'''<br />
* Confirm your track creation by following on-screen instructions. You may choose to create a minimal track with just a start/finish point<br><br />
<br />
<br />
'''Name Your Track'''<br />
* Give your track a name and finish the setup process<br />
<br />
<br />
By following the above mentioned simple steps, you can easily set up a custom track and can optimize your racing performance.<br />
<br />
'''Note[[File:Good to Know.png|20px]]:''' For further details, [https://www.youtube.com/watch?v=-q3YzFa6LQM Click Here]<br />
<br />
==GPS==<br />
[[File:GPS.png| 800px ]]<br />
<br />
The GPS page allows user to configure different parameters according to their preferences. Here's a guide on adjusting GPS settings:<br><br />
<br />
'''GPS Sample Rate'''<br />
* Adjust the GPS sample rate according to your preference. Options include 1Hz, 5Hz, 10Hz (default), 25Hz, and Disable. [[File:Important Symbol.png|20px]] A 10Hz sample rate is recommended for the best balance of performance and accuracy.<br />
<br><br />
'''Units Selection'''<br />
* Choose between imperial and metric units based on user's measurement preferences.<br />
<br><br />
'''Channel Configuration'''<br />
* Enable or disable specific GPS channels as per user's requirements. Channels include Position, Speed, Altitude, Satellite, GPS Fix Quality, and Dilution of Precision (DOP).<br />
<br><br />
'''Important Note [[File:Mandatory Action.jpg|20px]]'''<br />
* We strongly recommend keeping the default channels enabled for proper operation of analysis and lap timing [[RaceCapturePro2_GPS|Getting the best GPS performance]].<br />
<br><br />
By customizing these GPS settings, users can ensure accurate data capture and enhance the overall precision of their RaceCapture system.<br />
<br />
==Race Timing==<br />
[[File:Race Timing.png|800px]]<br><br />
<br />
In this section, users can customize the behavior of the lap timer and predictive lap timer. Also, there's an option to choose between metric and imperial units for calculating distance. Follow these instructions to set your race timing preferences:<br />
<br />
'''Enable/Disable Lap Timer'''<br />
* Toggle the lap timer on or off based on your preference.<br />
<br><br />
'''Enable/Disable Predictive Lap Timer'''<br />
* Choose to activate or deactivate the predictive lap timer as desired.<br />
<br><br />
'''Distance Unit Selection'''<br />
* Opt for metric or imperial units for calculating the distance channel.<br />
<br><br />
'''Note [[File:Important Symbol.png|20px]]:''' It is recommended to leave these features 'on' to fully utilize the capabilities of the lap timer and predictive lap timer.<br />
<br />
By configuring these settings, users can customize the race timing features according to their specific needs and preferences.<br />
<br />
==Analog Sensors==<br />
[[file:racecapture_app_setup_analog_sensors.jpg|800px]]<br />
<br />
This section empowers users to configure and calibrate their analog sensors as per their specific requirements. To set up analog sensors, follow these straightforward steps:<br />
<br><br />
* '''Channel Selection:''' Begin by selecting the desired channel type (sensor) for configuration<br />
* '''Sample Rate Configuration:''' Configure the sample rate to suit your preferences and data acquisition needs.<br />
* '''Mode Selection:''' Choose from three available modes: Raw, Linear, or Mapped, based on your intended use.<br />
* '''Linear Formula or Interpolated Mode:''' In the selected mode, input values in either linear formula or interpolated mode, depending on your Mode Selection.<br><br />
<br />
By following these steps, users can configure and calibrate analog sensors to optimize their performance within the RaceCapture system<br />
<br><br />
<br />
'''Note [[File:Good to Know.png|20px]]:''' For more details regarding the calibration of analog sensors, please visit [https://wiki.autosportlabs.com/RaceCapturePro_Sensors#Calibrating_Analog_Sensors Calibrating Analog Sensors]<br />
<br />
==Pulse/RPM sensors==<br />
[[file:racecapture_app_setup_pulse_rpm_sensors.jpg|800px]]<br />
<br />
This section provide user the option to configure and calibrate RPM and pulse-type sensors, including those for wheel speed. Similar to the analog sensor configuration, this section allows users to:<br />
<br />
'''Channel Selection'''<br />
* Choose the appropriate channel for the RPM or pulse-type sensor configuration.<br />
<br><br />
'''Sample Rate Configuration'''<br />
* Configure the sample rate according to your specific requirements for accurate data capture.<br />
<br><br />
'''Channel Mode Options'''<br />
* Select the desired channel mode from RPM, Frequency, and Period (in milliseconds and microseconds).<br />
<br><br />
'''Timer Speed Adjustment'''<br />
* Adjust timer speed with options such as slow, medium, and fast to match your sensor's characteristics.<br />
<br><br />
'''Pulses Per Revolution'''<br />
* Specify the number of pulses per revolution for precise sensor calibration.<br />
<br><br />
By utilizing these configuration options, users can effectively calibrate RPM and pulse-type sensors as per their specific needa.<br />
<br />
==Digital In/Out==<br />
[[file:racecapture_app_setup_gpio_sensors.jpg|800px]]<br />
<br />
This section provide user the option to configure the General Purpose Input/Outputs (GPIOs) for their RaceCapture system. In this section users can adjust the sample rate and specify whether the mode should be set to input or output.<br />
<br />
By following these straightforward steps, users can configure the digital input/output settings to meet their specific requirements within the RaceCapture system.<br />
<br />
==Accel / Gyro==<br />
[[image:racecapture_app_setup_accel_gyro_sensors.jpg|800px]]<br />
<br />
For optimal performance, it is recommended to mount RaceCapture square with the chassis, ensuring that the harness connectors face the front of the vehicle.<br />
<br />
'''Channel Remapping'''<br />
* Users have the flexibility to re-map channels by reassigning the physical axis to the mapped channel, offering customization based on specific needs.<br />
<br />
'''Calibration Process'''<br />
* Define the desired channel mappings<br />
* Calibrate the accelerometer and gyro by pressing the dedicated calibrate button.<br />
* Confirm the calibration by pressing the write button to save the settings back to RaceCapture.<br />
<br />
==CAN bus==<br />
To enable CAN bus communications, set the CAN bus setting to '''ON'''. <br />
CAN bus baud rates are configurable; common rates are 250K, 500K and 1MB. RaceCapture defaults to:<br />
* 500K for CAN1, which is common for OEM and aftermarket ECUs<br />
* 1MB for CAN2, which matches the standard for our CAN bus accessories.<br />
<br />
[[image:racecapture_setup_can_bus_network.jpg|800px]]<br />
<br />
==CAN bus mapping==<br />
RaceCapture offers a powerful CAN bus mapping capability, allowing you to map CAN bus data frames to real-world sensor values. <br />
<br />
See our comprehensive guide on [[CAN_Bus_Integration|Using and mapping CAN bus sensor data]] [[File:Good to Know.png|20px]]<br />
<br />
[[image:racecapture_app_can_bus_mapping.jpg|800px]]<br />
<br />
==OBDII==<br />
<br />
[[File:OBDII.gif|800px]]<br />
<br />
User can configure the OBDII channels setting and add a new OBDII channel within this section. To add a new OBDII channel To add a new OBDII channel, follow the instructions below:<br />
===Adding OBDII Channel===<br />
* To add a new OBDII channel, click on the + button present at the bottom<br />
<br><br />
'''Selecting OBDII channels'''<br />
* Access the channel menu and choose the desired OBDII channel from the standard list available on the OBDII configuration screen.<br />
<br><br />
'''Selecting sample rates'''<br />
* Select the sample rates from the Rate icon present in the Channel menu. <br />
* '''Note [[File:Good to Know.png|20px]]:''' For channels that require a faster response rate, like RPM and TPS, we recommend 10, 25 or 50Hz. More slowly changing channels like EngineTemperature should be set to 1 or 5Hz.<br />
<br><br />
'''Note about unsupported channels [[File:Mandatory Action.jpg|20px]]''' <br />
<br />
If your ECU does not support a channel, the value will remain at 0. RaceCapture will time-out waiting for a response from the ECU, which will affect the performance of other channels. We recommend removing all unsupported channels to ensure optimal OBDII performance.<br />
<br />
The OBDII section offers extensive customization options, including unit conversions, mode, and PID customization. For additional information, visit [https://wiki.autosportlabs.com/RC_OBDII Here] [[File:Good to Know.png|20px]]<br />
<br />
==Automatic Control==<br />
<br />
[[image:racecapture_setup_automatic_control.jpg|800px]]<br />
<br />
The automatic control section provides user with various options to customize their RaceCapture system's behavior. Within this section, users can:<br />
<br />
'''Start/Stop Trigger Time'''<br />
* Set the trigger time for starting and stopping <br />
<br><br />
<br />
'''Logging Triggers'''<br />
* Enable or disable SD card and app logging triggers.<br />
<br><br />
<br />
'''Camera Control'''<br />
* Toggle camera on/off as per the requirements<br />
<br><br />
<br />
Camera Type Selection<br />
* Choose the desired camera type directly from this section<br />
<br />
By utilizing these options, users can configure the automatic control settings to suit their specific requirements within the RaceCapture system.<br />
<br />
==Wireless==<br />
[[image:racecapture_app_setup_wireless.jpg|800px]]<br />
<br />
The Wireless section offers a range of configuration options for Bluetooth, WiFi, and cellular settings.<br />
<br />
===Bluetooth===<br />
In the Bluetooth section, users can toggle Bluetooth on/off, and customize the Bluetooth name and passcode.<br />
<br />
===WiFi===<br />
<br />
In wireless section, users can enable / disable wireless support and can configure RaceCapture's WiFi for both '''Access Point''' and '''Client''' mode.<br />
<br />
'''Client Mode:'''<br />
To enable client mode, specify the SSID and password for the network you wish to connect to and turn the client mode switch to on<br />
<br />
'''Access Point Mode:'''<br />
To enable the RaceCapture access point, specify the SSID and a password.<br />
<br />
'''Note [[File:Mandatory Action.jpg|20px]] :''' If specified, passwords must be minimum of 8 characters. Leave the field blank to create an open network.<br />
<br />
===Cellular Configuration===<br />
This section enables users to enable/disable the on-board cellular option, select the designated regional profile, and configure the Access Point Name (APN).<br />
<br />
By utilizing these wireless configuration options, users can configure their RaceCapture system to integrate with various networks.<br />
<br />
==Real-time Telemetry==<br />
With the real-time telemetry feature you can live-stream your data to [http://podium.live Podium] so you can compare and share laps and runs with your friends. Enable by setting your Podium Device ID provided by your [http://podium.live Podium Account] [[File:Good to Know.png|20px]]<br />
<br />
See the [[RaceCapture_real_time_telemetry|RaceCapture real time telemetry setup guide]] [[File:Good to Know.png|20px]]for details on setting up this feature.<br />
<br />
[[image:racecapture_app_setup_telemetry.jpg|800px]]<br />
<br />
[[image:podium.png|thumb|200px]]<br />
<br />
http://i.imgur.com/WzHsdU1.gif<br />
<br />
==Scripting==<br />
You can customize the behavior of your system by writing small Lua scripts; you can do things like:<br />
* Create live math (virtual) channels that are calculated on the fly<br />
* Broadcast Custom CAN bus messages<br />
* Control a fan based on the temperature of an analog channel (e.g. EngineTemp)<br />
<br><br />
See the [[RaceCapturePro_Lua_Scripting|Lua scripting guide]] [[File:Good to Know.png|20px]] for a complete how-to, including helpful examples.<br />
<br />
[[image:racecapture_app_setup_lua_scripting.jpg|800px]]<br />
<br />
===Diagnostic Logs===<br />
To view the log messages provided by the RaceCapture unit, you can enable the '''Poll log''' check box. You can copy the current log to the clipboard by pressing the '''Copy''' button.<br />
<br />
'''Note [[File:Good to Know.png|20px]]:''' These logs are useful for diagnosing issues with your RaceCapture unit, as well as seeing messages printed by your Lua script.<br />
<br />
==Firmware==<br />
Here you can update your system's firmware, perform a factory reset, which restores the system to its original settings, or perform a reboot of the unit without needing to do a power-cycle. <br />
* '''Note [[File:Mandatory Action.jpg|20px]] :''' Before updating your firmware, be sure to save your current configuration to a file. <br />
<br />
<br />
[[file:racecapture_app_setup_firmware.jpg|800px]]<br />
<br />
=Keyboard shortcuts=<br />
The following keyboard sequences can be used to control the app:<br />
==Most anywhere in app==<br />
* ESC - exit / go up a level<br />
<br />
==Only active from home page==<br />
* "a" - Enter Analysis view<br />
* "d" - Enter Dashboard view<br />
* "s" - Enter Setup View<br />
* "t" - Enter Status view<br />
* "ctrl-q" - quit application<br />
<br />
==Dashboard view or Analysis view==<br />
* left arrow - Navigate left<br />
* right arrow - Navigate right<br />
<br />
==On Dashboard view==<br />
* "k" - Send "OK" response to pit-to-car alert<br />
* "y" - Send "Yes" response to pit-to-car alert<br />
* "n" - Send "No" response to pit-to-car alert<br />
<br />
=Troubleshooting=<br />
==Recovering from mis-configured WiFi or Bluetooth [[File:Good to Know.png|20px]]==<br />
If you're unable to connect via mobile due to a Wireless configuration issue - for example:<br />
* You forgot the password you set for RaceCapture's Access Point or Bluetooth link<br />
* If RaceCapture's WiFi client needs to be re-configured for a new WiFi network<br />
<br />
You can recover by re-configuring RaceCatpure's WiFi settings via the USB connection and the Windows or OSX app. <br />
<br />
Steps to recover:<br />
* Launch the RaceCapture app on Windows or OSX<br />
* Connect RaceCapture via USB<br />
* Allow the software to connect and read the configuration<br />
* Under Setup, adjust the WiFi or Bluetooth settings as needed<br />
* Write the configuration back to RaceCapture<br />
<br />
Once you update the settings, it's recommended you test the WiFi connection using your mobile device while still connected over USB so you can further adjust settings as needed.<br />
<br />
=Extra Information=<br />
==Microsoft Windows 7/8 Driver installation [[File:Good to Know.png|20px]]==<br />
* Download and unzip drivers: [https://autosportlabs-software.s3-us-west-2.amazonaws.com/RaceCapturePro_drivers_winXPVista7_V2.zip Windows XP/Vista/7/8 Drivers V2]<br />
** '''Note for Windows 8 users''' - These drivers are unsigned. You will need to disable the driver signing requirement for Windows 8, or upgrade to Windows 10. [https://learn.sparkfun.com/tutorials/disabling-driver-signature-on-windows-8/disabling-signed-driver-enforcement-on-windows-8 Instructions]<br />
*** [http://www.howtogeek.com/167723/how-to-disable-driver-signature-verification-on-64-bit-windows-8.1-so-that-you-can-install-unsigned-drivers/ Win8 64bit unsigned driver instructions]<br />
* Plug RaceCapture/Pro in to the computer. <br />
* If prompted to install a driver, direct Windows to the folder where you unzipped the RaceCapture/Pro drivers.<br />
* If not prompted, manually update driver:<br />
** Open Windows Device Manager and find the '''Ports (COM and LPT)''' section. RaceCapture/Pro should be listed there, possibly with a yellow (!) over the icon. <br />
** Right click and select 'Update Driver'.<br />
** Follow the instructions and direct Windows to the folder where you unzipped the RaceCapture/Pro drivers.</div>Brentphttps://wiki.autosportlabs.com/index.php?title=RaceCapture_App_User%27s_Guide&diff=10096RaceCapture App User's Guide2024-02-07T21:41:50Z<p>Brentp: /* Troubleshooting */</p>
<hr />
<div>[[image:racecapture_app_home_page.jpg|800px]]<br />
<br />
=Overview=<br />
==About the guide==<br />
This is a comprehensive user guide that contains complete instructions about the services and functions of the RaceCapture app. The app is designed to be easy to use across multiple devices. The RaceCapture app allows you to integrate your devices with the RaceCapture modules and get instant access to the endless functionalities of RaceCapture modules. Using this app, customers can access all the features of the RaceCapture modules, monitor, store, and analyze the real-time data, and users can also provide customized commands to the RaceCapture modules using Lua scripts. Further details about the app are given in the respective sections.<br><br />
<br />
'''Note:''' It is recommended that this guide be read thoroughly to familiarize with the RaceCapture app, and perform tasks efficiently and effectively.<br />
<br />
==Navigation==<br />
===Home View===<br />
Upon launching the Racecapture app, the Home View serves as the starting point, presenting users with three primary icon options:<br />
* Analysis<br />
* Dashboard<br />
* Setup<br />
<br />
===Navigate through the app===<br />
[[File:Navigation .gif|800px]]<br><br />
<br />
<br />
To explore additional functionalities of the app, users can access the navigation menu by tapping the hamburger button located at the top left corner. Upon clicking the hamburger button, a tab bar appears on the left, and Users can switch between different sections by tapping on the respective icons on this tab bar.<br />
<br />
==Compatible OS [[File:Good to Know.png|20px]]==<br />
Racecapture app is compatible with all the advanced operating systems. However, it is not functional on a few old versions of tablets and on Windows XP, 7, and 8 due to their outdated video drivers.<br />
* '''Not sure what tablet to use? ''' [[RaceCapture_App_recommended_tablets|See our list of recommended tablets]]<br />
<br />
==How to Install==<br />
Installing the recapture app is simple and straightforward. You simply need to download the app and install it. No complicated steps are required. The download links and installation instructions for desktop and mobile devices are given below.<br />
===On Desktop===<br />
* '''Download :'''For desktop, download the recapture app from the following link [https://podium.live/software Windows and OSX]<br />
* '''Installation in Windows 10/11:''' Windows 10/11 has built in USB drivers that support Recapture; no separate driver installation needed.<br />
* '''Installation in XP, 7, and 8:''' In Window XP,7, & 8 will require USB drivers for installation. Users can download USB driver from following link "[[RaceCapture-Track_MK2#Microsoft_Windows_7.2F8_Driver_installation|Click here.]]"<br />
===On Mobile===<br />
[[image:google_play_amazon_itunes_app_store.png]]<br><br />
<br />
Mobile user (Android/iOS) can simply install form the link given below.<br />
<br />
* [https://play.google.com/store/apps/details?id=com.autosportlabs.racecapture&hl=en Google Play]<br />
* [https://www.amazon.com/Autosport-Labs-Race-Capture/dp/B016ZJM7GE Amazon App Store]<br />
* [https://itunes.apple.com/us/app/racecapture/id1162797255?mt=8 iTunes]<br />
===On Raspberry Pi===<br />
[[image:Racecapture_raspberry_pi.jpg|400px]]<br />
<br />
More advanced users can run the RaceCapture App on a Raspberry pi for a more dedicated dashboard experience. <br />
* Learn more in the [[RaceCapture_on_Raspberry_Pi|Raspberry Pi Guide]]<br />
==Icons Used in Manual==<br />
Throughout this document, the pictograms below are used to underline points or important notions.<br />
<br />
{| class="wikitable"<br />
|+ <br />
|-<br />
! Icon !! Description<br />
|-<br />
| <br />
[[File:Important Symbol.png|20px|center]]<br />
|| Important information<br />
|-<br />
| <br />
[[File:Good to Know.png|20px|center]]<br />
|| Good to Know<br />
|-<br />
| <br />
[[File:Mandatory Action.jpg|20px|center]]<br />
|| Mandatory action <br />
|}<br />
==Intellectual Property and Usage Rights==<br />
The information contained in this document is the intellectual property of Autosport Labs, and No one can use it without the prior permission of Autosport Labs.<br />
==Help==<br />
For additional help, we encourage you to visit one of our support communities:<br />
<br />
* [https://discord.gg/JbKUyFw Discord Server]<br />
* [https://forum.autosportlabs.com Forums]<br />
* [https://www.facebook.com/groups/1288770887817789/ Facebook group]<br />
<br />
=Setup Wizard= <br />
[[image:racecapture_app_first_time_setup.gif|800px]]<br><br />
<br />
Upon running the RaceCapture app for the first time, you are presented with a first time setup wizard. Follow the steps given below to configure your device..[[File:Mandatory Action.jpg|20px]] <br><br />
'''Welcome Page:'''<br />
* Click 'Next' on the welcome page to proceed to the device setup.<br><br />
<br />
<br />
'''Device Selection:'''<br />
* Choose your RaceCapture device from the provided list.<br />
* Click 'Next' to move to the connection page.<br><br />
<br />
<br />
'''Connection Setup:'''<br />
* Connect your system to the USB port.<br />
* Wait for the connection to establish; your device will be recognized once connected.<br><br />
<br />
<br />
'''Note'''[[File:Good to Know.png|20px]]: You can access first time setup again by navigating to the main Setup page and selecting First time setup (as shown in the instruction below)<br><br><br />
[[File:First Time setup.gif|800px]]<br><br />
<br />
=System Status=<br />
Access the system status pages through the top left menu. The system status offers information on GPS status, current WiFi state and more. You can also get a copy of the RaceCapture application log for diagnostics.<br />
<br />
[[image:racecapture_app_status_page.jpg|800px]]<br />
<br />
=Dashboard Mode=<br />
To view your dashboard, press the dashboard option on the main screen.<br />
<br />
[[image:racecapture_app_dashboard_screen.gif|800px]]<br />
<br />
==Navigating Dashboard Pages==<br />
Multiple dashboard pages are supported. To move to a different page:<br />
* Swipe left or right on the screen<br />
* Press the left or right arrow buttons at the bottom of the screen<br />
* Press the left/right keyboard keys<br />
<br />
[[image:racecapture_app_dashboard_navigation.gif|800px]]<br />
<br />
==Importing a new dashboard==<br />
[[image:racecapture_app_import_dashboard.gif|800px]]<br><br />
<br />
To customize your experience, you can import additional dashboard pages either from the system-provided templates or from those created by fellow racers. Follow the steps below to import a new dashboard:<br />
* Click on the gear icon located at the top right corner, and select the rectangular 'Add' icon.<br />
* In the 'Add' icon, you'll find three options:<br />
**System<br />
**Your<br />
**Shared<br />
* Choose your preferred option and scroll down to explore the available dashboard templates.<br />
* Press 'Select' next to the desired dashboard template to import it.<br />
<br />
By following these steps, you can easily enhance your dashboard with a variety of templates tailored to your preferences.<br />
<br />
==Customizing a gauge==<br />
[[image:racecapture_customize_gauge.gif|800px]]<br><br />
<br />
RaceCapture app provides, plenty of options for customizing gauges, and designing your own attractive gauges.<br />
<br />
To edit a gauge:<br />
* Unlock the dashboard<br />
* Press the gear button on the gauge to customize its settings. Depending on the gauge, you can edit:<br />
** Display channel<br />
** Color<br />
** Min/Max range<br />
** Precision (number of digits to the right of the decimal point)<br />
** Other settings depending on the gauge<br />
<br />
===Customizing Analog and Digital Gauges[[File:Good to Know.png|20px]]=== <br />
<br />
For Analog and Digital gauges, the Racepcapture app provides advanced options for customizing all the features of the Analog and Digital gauges ranging from the design of gauge, dial, color, and background, to font size, markers size, and precision using it using its super flexible analog and digital gauge editor.<br />
<br />
'''Analog Gauges'''<br><br />
<br />
[[File:Customizing Analog Gauges (3).gif|800px]]<br><br />
<br />
For customizing Analog gauges, follow the instructions given below<br />
* Unlock the dashboard<br />
* Press the gear button on the gauge and select the edit option<br />
* From the top bar, select the Channel and change the channel as per your requirement.<br />
* After selecting channel, select the setting option at the top bar and select Analog Gauge editor.<br />
* In Analog Gauge editor, there are tons of customizable options, with a handy preview area.<br />
'''Note :''' For more information, [https://www.autosportlabs.com/racecapture-app-2-12-0-next-generation-analog-gauges/ Click here] [[File:Good to Know.png|20px]]<br />
<br />
'''Digital Gauges'''<br><br />
<br />
[[File:Customizing Digital Gauges.gif|800px]]<br />
For customizing Digital gauges, follow the instructions given below<br />
* Unlock the dashboard<br />
* Press the gear button on the gauge and select the edit option<br />
* From the top bar, select the Channel and change the channel as per your requirement.<br />
* After selecting channel, select the setting option at the top bar and select Digital Gauge editor.<br />
* In Digital Gauge editor, there numerous customizable options available<br />
'''Note :''' For more information, [https://www.autosportlabs.com/racecapture-app-2-13-0-next-gen-digital-gauges/ Click here] [[File:Good to Know.png|20px]]<br />
<br />
==Dashboard Alerts==<br />
You can create dashboard alerts for any channel.<br />
<br />
[[image:racecapture_app_gauge_alerts.gif|800px]]<br />
<br />
There are two ways to create a gauge alert:<br />
# Use the central alerts editor<br />
# Edit alerts from gauges<br />
<br />
===Use the central alerts editor===<br />
[[File:Dashboard Alert .gif|800px]]<br />
* Access the dashboard settings by clicking on the gear icon.<br />
* Select More Settings and navigate to the Alerts tab<br />
* Select the channel you wish to create alerts for, or press the (+) icon to create a new alert<br />
* In the Alert rule tab, users can configure the alert active range, alert active after time, alert deactivate after time, and can also select the notification methods (Popup "Alert" or "Set Gauge color"). <br><br />
<br />
'''Customize Notification'''<br><br />
<br />
[[File:Popup Notification.gif|800px]]<br />
* '''Popup Alert notification:''' users can customize the message and color of alert by clicking on " add new action> selecting Popup: "Alert" > and change the message and color as per their need. <br />
* '''In Set Gauge color:''' users can customize the color of gauge by clicking on " add new action> selecting Set Gauge Color > Color<br />
<br />
===Edit alerts from gauges<br>===<br />
<br />
[[File:Dashboard Alert using gauge edit.gif|800px]]<br />
* Edit a gauge<br />
* Switch to the Channels tab and press the customization gear icon for the selected channel<br />
* Switch to the Alerts tab and customize your alerts<br />
<br />
==Customizing your dashboard==<br />
[[image:racecapture_app_dashboard_designer.gif|800px]]<br><br />
<br />
Users have the flexibility to modify an existing dashboard or create a new one from scratch by firstly unlocking the dashboard page and then adding/modifying gauges to create the design they want.<br><br />
<br />
Users can add new gauges by following the steps given below:<br />
# Unlock the dashboard page by unlocking the gear icon present at the top right corner<br />
# After unlocking the gauge icon, open the gauge icon by clicking the gear icon.<br />
# In the add gauge option, select the gauge type, channel type, and configure the gauge setting as per your requirements.<br />
<br />
'''Note :''' For create a data-driven color-changing dashboard background [https://www.youtube.com/watch?v=vyo2WoF1iHo&t=1s Check Here] [[File:Good to Know.png|20px]]<br />
<br />
==Saving your dashboard==<br />
[[image:racecapture_app_save_dashboard.gif|800px]]<br><br />
<br />
Once you have customized your dashboard to your liking, you can save it to the cloud, allowing easy sharing with other racers or access from different devices. Follow these steps to save your dashboard:<br />
<br />
* Click the gear icon at the top right corner to unlock the dashboard.<br />
* Click the save icon.<br />
* Under the "Create New" tab, press "New."<br />
* Provide a name for your dashboard and save it.<br />
<br><br />
By following these steps, your customized dashboard will be saved to the cloud, accessible for sharing and convenient use across various devices.<br />
<br />
==Predictive Lap timing[[File:Good to Know.png|20px]]==<br />
RaceCapture/Pro offers predictive lap timing, which relies on a robust track detection system leveraging hundreds of track maps worldwide. <br />
<br />
[[image:racecapture_app_dashboard_predictive_timer.gif|800px]]<br />
<br />
===How it works===<br />
* When GPS receives a lock, RaceCapture will search for a nearby track. <br />
* If a track is detected with one configuration, it is automatically selected.<br />
* If a track is detected with multiple configurations, the RaceCapture app will prompt you for which configuration you're using.<br />
* If no tracks are detected nearby, the RaceCapture app will offer the ability to create a track on the spot. <br />
** If you're not able to immediately create the track, you can do so later under '''Setup'''.<br />
* '''Track not found?''' [[RaceTracks|Submit the track to us]] and we'll get it into our online database. [[File:Good to Know.png|20px]]<br />
<br />
[[image:RaceCapture_create_custom_track.png|640px]]<br />
<br />
=Analysis=<br />
The RaceCapture app automatically record users session when triggered by the threshold they have configure under '''Setup / Automatic Control'''<br><br />
<br />
'''Note [[File:Important Symbol.png|20px]]''' : The system default is to trigger on Speed<br />
<br />
To view the data, enter the '''Analysis''' mode and load an existing session. The session will be automatically named with the local track or with a timestamp. <br />
<br />
'''Loading a Session:'''<br><br />
<br />
[[image:racecapture_app_analysis_load_session.gif|800px]]<br><br />
<br />
Users can load sessions by:<br />
<br />
* Pressing the (+) button at the bottom of the pop-out list of laps.<br />
* Alternatively, press the gear icon on the dashboard and select 'Sessions'.<br />
<br><br />
<br />
'''Importing a Session:'''<br><br><br />
[[File:Importing log files...gif|800px]]<br />
<br />
For advanced analysis, users can import log files of sessions. For importing sessions, users can follow the steps given below.<br />
* On the home screen, click on the 'Analysis' option.<br />
* Press the (+) button at the bottom of the pop-out list of laps.<br />
* A new tab will open; in this new tab, select the 'Import Log' option.<br />
* Under 'Import Log,' press the 'Select' option under Datalog file and import the log file.<br />
<br />
'''Note [[File:Good to Know.png|20px]]:''' Users can also import datalog video files by clicking the 'Select' option under Datalog Video file.<br />
<br />
==Navigating data==<br />
Racepcapture app provides plenty of flexible options for navigating data.<br />
===Cursor across line chart===<br />
Users can swipe across the line chart to correlate different points with the position on the track map.<br />
===Playback Control===<br />
User can use the controls at the bottom to automatically play back the selected lap(s). Using the playback control option, user can also control the speed of laps.<br><br />
<br />
Swipe across the data to compare various points correlated with the position on the track map.<br />
<br />
'''Zooming'''<br />
<br />
Users can zoom on the line charts data using a two-finger pinch gesture, or using the mouse scroll wheel or your laptop's trackpad scroll gesture. For the map, users can also zoom in, and zoom-out using the designated buttons present at the top right corner.<br />
<br />
==Reviewing Laps==<br />
Within the RaceCapture app, users have the ability to conduct a thorough analysis, and comprehensive comparison of laps for performance evaluation. This section guides you through various tools and features available for a detailed and comprehensive approach to lap analysis<br />
<br />
===Performance Metrics===<br />
Racecapture app provides users with plenty of performance metrics options to comprehensively analyze the performance of your cars and optimize your driving strategy. The table below provides a detailed explanation of a few important available metric:<br />
<br />
{| class="wikitable"<br />
|+ Performance Metrics<br />
|-<br />
! Matric !! Description<br />
|-<br />
| AccelX, AccelY, AccelZ || Lateral, Longitudinal & Vertical acceleration in X, Y and Z axis<br />
|-<br />
| Battery || Battery voltage level<br />
|-<br />
| Brake || Brake position <br />
|-<br />
| CurrentLap || Current lap number <br />
|-<br />
| ElapsedTime || Time elapsed since the start of the session<br />
|-<br />
| EngineTemp || Temperature of Engine<br />
|-<br />
| GPSQual || GPS quality status<br />
|-<br />
| Gear || Current gear position<br />
|-<br />
| LapCount || Total laps completed<br />
|-<br />
| LapTime || Time taken for the current lap<br />
|-<br />
| MAP || Manifold absolute pressure<br />
|-<br />
| MaxRpm || Maximum RPM reached<br />
|-<br />
| OilPress || Engine oil pressure<br />
|-<br />
| Pitch || Angular orientation around the X-axis<br />
|-<br />
| PredTime || Predicted lap time based on the current performance<br />
|-<br />
| RPM || Engine revolutions per minute<br />
|-<br />
| Roll || Angular orientation around the Y-axis<br />
|-<br />
| ShiftLight || Status of the shift light<br />
|-<br />
| SessionTime || Total time elapsed in the current session<br />
|-<br />
| TPMSVoltLF, TPMSVoltLR, TPMSVoltRF, & TPMSVoltRR || Tire Pressure Monitoring System voltages of Left front, Left Rear, Right front & Right rear tires respectively<br />
|-<br />
| TPressLF, TPressLR, TPressRF, & TPressRR || Tires Pressure of Left front, Left Rear, Right front & Right rear tires respectively<br />
|-<br />
| TireITmpLF, TireITmpLR, TireITmpRF, & TireTmpRR || Internal tires temperature of Left front, Left Rear, Right front & Right rear tires respectively<br />
|-<br />
| Utc || Coordinated Universal Time<br />
|-<br />
|}<br />
<br />
In addition to the previously mentioned metrics, offers a diverse range of performance metrics for a comprehensive analysis of your vehicle's dynamics. These include:<br><br />
<br />
'''Position and Timing Metrics:'''<br />
* CurrentLap<br />
* Distance<br />
* SessionTime<br />
* TnSlapTime<br />
<br />
'''Geospatial Metrics:'''<br />
* Latitude<br />
* Longitude<br />
* GPSQual (GPS Quality)<br />
* GPSSATS (Number of GPS Satellites)<br><br />
<br />
'''Competition Metrics:'''<br />
* CompAhead (Comparison Ahead)<br />
* CompBehind (Comparison Behind)<br />
* CompFlag (Competition Flag)<br />
* GapAhead<br />
* LapsAhead<br />
* LapsBehind<br />
<br />
'''Dynamic Metrics:'''<br />
* GsumMax (Maximum G-force)<br />
* GsumPct (Percentage of Maximum G-force)<br />
* Interval<br />
<br />
'''Predictive Metrics:'''<br />
* PredTime (Predicted Lap Time)<br />
<br />
<br />
'''Built-in Default Sensors [[File:Important Symbol.png|20px]]'''<br><br />
<br />
It's important to note that many of these metrics become available when related sensors are connected to the system. The RaceCapture app comes equipped with built-in default sensors, providing a foundational set of metrics:<br />
<br />
* '''Position (Latitude / Longitude):''' Derived from the GPS sensor, offering accurate location data.<br />
* '''Speed:''' Provided by the GPS sensor, delivering real-time speed information.<br />
* '''IMU (Accelerometer and Gyro):''' Three channels each, offering essential data on acceleration and rotation.<br />
* '''Battery:''' Monitors the voltage level, providing insights into the power status of the system.<br />
* '''OBDII Channels:''' When plugged into a vehicle with OBDII support, additional channels become available. These channels may vary based on the vehicle, but by default, TPS (Throttle Position Sensor), EngineTemp (Engine Temperature), and RPM (Revolutions Per Minute) are consistently accessible.<br />
<br><br />
<br />
Each metric provides a unique perspective on your vehicle's performance, allowing for a nuanced analysis to refine your racing strategy.<br />
<br />
====Selecting Performance Metrics====<br />
[[File:Metrice.gif|800px]]<br />
<br />
To choose and display specific performance metrics on your dashboard, follow these steps:<br />
'''<br />
* Unlock the gear icon present at the top right corner<br />
* Click on the gear icon and select the add gauge option<br />
* Pick the gauge type that suits your analysis needs (e.g., digital, analog, linear chart).<br />
* Within the chosen gauge type, select the "Channel" representing the performance metric you want to analyze.<br />
* Fine-tune the settings to align with your requirements. Adjust parameters such as scale, range, or units based on your preferences.<br />
* Save your gauge configuration to apply the selected performance metrics to your dashboard.<br />
<br><br />
By following these steps, you can tailor your dashboard to showcase the specific performance metrics that matter most to your racing analysis.<br />
<br />
===Data Visualization===<br />
Racecapture app provides innovative data visualization features, empowering users with advanced features for in-depth analysis. The table below provides a detailed explanation of available gauges:<br />
{| class="wikitable"<br />
|+ Data Visualization Options<br />
|-<br />
! Gauge Type !! Description<br />
|-<br />
| Analog || Visualize data with analog-style gauges for a real-time, dynamic display.<br />
|-<br />
| Bargraph || Use bar graphs to represent data discretely, providing a clear insight of data.<br />
|-<br />
| Bitmap || Display custom images or icons to enhance the visual representation of your data.<br />
|-<br />
| Digital || Showcase numerical data in a clear and precise digital format for quick reference.<br />
|-<br />
| Heat Chart || Gain insights into data patterns using color gradients to represent varying intensities.<br />
|-<br />
| Histogram || Understand data distribution through histogram charts, ideal for analyzing frequency.<br />
|-<br />
| LapTime || Focus on lap-specific metrics with dedicated gauges for lap time analysis.<br />
|-<br />
| Line Chart || Track trends and variations over time using line charts for comprehensive data analysis<br />
|-<br />
| Overview || Get a holistic view of your racing data with overview gauges summarizing key metrics.<br />
|-<br />
| Raw Channel || Provides an unfiltered analysis of individual parameters.<br />
|-<br />
| Scatter Plot || Identify correlations and relationships between two variables using scatter plots.<br />
|-<br />
| Thermal Image || Visualize temperature variations with thermal image gauges for heat-sensitive data.<br />
|-<br />
| Time Delta || Analyze time differentials between specific data points using time delta gauges.<br />
|-<br />
| Time Gap || Evaluate time gaps for strategic decision-making.<br />
|-<br />
| Track Map || Navigate your racing data on a track map, providing a spatial context to your analysis.<br />
|-<br />
| Video || Integrate video data seamlessly with dedicated video gauges for synchronized analysis.<br />
|}<br />
<br />
Users can explore the above mentioned gauge types to enhance their data visualization experience and get valuable insights.<br />
<br />
====Selecting Gauge Type====<br />
[[File:Data Visualization.gif|800px]]<br><br />
<br />
Users can select the desired gauge type by following the steps given below:<br />
* Unlock the gear icon present at the top right corner<br />
* Click on the gear icon and select the add gauge option<br />
* Pick the gauge type that suits your analysis needs (e.g., digital, analog, heart chart).<br />
<br />
===Customizing Views===<br />
The RaceCapture app provides numerous customization options, allowing users to configure the app interface as per their preferences. Explore the key customization features below:<br />
<br />
'''Gauge Customization'''<br />
* Size, Shape, Type: Modify the size, shape, and type of available gauges to suit your visual preferences.<br />
* Color and Appearance: Personalize the color scheme and appearance of each gauge for a customized display.<br />
<br />
'''Gauge Placement'''<br />
* Location Customization: Users can move gauges to their preferred locations on the display<br />
* Position Setting: Set gauges precisely where you need them for an intuitive and efficient layout.<br />
<br />
'''Layer Management'''<br />
* Bring to Front or Send to Back: Adjust the layering of gauges with options to raise or lower their appearance.<br />
* Raise to Top or Lower to Bottom: Adjust the visibility of gauges by bringing them to the forefront or placing them at the back.<br />
<br />
'''Zoom Functionality'''<br />
* Zoom In & Zoom Out: For enhancing focus, users can Zoom-in and Zoom out gauge as per requirement.<br />
<br />
'''Alert Customization'''<br />
* Set Custom Alerts: Define alerts based on specific conditions or events during your race.<br />
* Threshold Adjustments: Configured alert thresholds to match your required value.<br />
<br />
'''Advanced Features Exploration'''<br />
* Video Integration: Seamlessly integrate video data for synchronized analysis with racing telemetry.<br />
* Thermal Imaging: Users can use the advance feature of thermal imaging for a more comprehensive understanding of your racing data.<br />
<br />
'''Regular Upgradation'''<br />
* Continuous Refinement: Users can regularly assess and fine-tune their dashboard layout and configurations based on changing preferences and real-time racing needs.<br />
<br />
User can experiment with different configurations to find the setup that enhances their racing strategy and overall performance.<br />
<br />
===Comparative Analysis===<br />
[[File:Comparative Analysis.gif|800px]]<br />
<br />
RaceCapture app also provides advance comparative analysis options which help users to gain deeper insights into their performance over multiple laps. If your data includes lap times, this feature becomes a valuable tool in refining your racing strategy. Here's how users can take the advantage of the Comparative Analysis option:<br />
<br />
'''Navigate to Comparative Analysis:'''<br />
* Access the Comparative Analysis feature by selecting the laps dropdown list on the right side of the interface.<br />
<br />
'''Select Laps for Comparison:'''<br />
* Choose the laps you wish to compare from the available dropdown list.<br />
* Users can compare up to 4 laps simultaneously, whether they are from the same session or different sessions.<br />
<br />
'''Comprehensive Lap Comparison:'''<br />
* Use the Comparative Analysis option to comprehensively assess different laps.<br />
* Identify trends, analyze variations, and pinpoint areas for improvement in your driving performance.<br />
<br />
'''Performance Shortcomings Analysis'''<br />
* Uncover performance shortcomings by comparing key metrics across selected laps.<br />
<br />
'''Session-to-Session Comparison:'''<br />
* Compare laps from different sessions to track your progress over time.<br />
<br />
'''Advance Analysis Tools:'''<br />
* Users can use advance gauges and video playback, for a holistic understanding of their racing performance.<br />
<br />
==Reviewing raw data==<br />
If your data contains no laps, such as data from a static test or dyno pull, the data will be present in one entry under the loaded session. Select this entry to view the data. The RaceCapture app will auto-select the '''Time''' dimension if it detects no significant distance traveled within the data.<br />
<br />
==Exporting Data==<br />
You can export your sessions from your list of saved sessions.<br />
<br />
===Android===<br />
* Press the gear icon to access your session list<br />
* Select the session you wish to export - Android will let you save it to a file, share to email, or any other app that accepts files.<br />
* '''Note:''' - if you save it to your local device, you can download it to your computer using a USB cable when your Android device is set up in File Transfer mode<br />
<br />
===iOS===<br />
* Press the gear icon to access your session list<br />
* Export this to your local iOS device storage. <br />
* Connect your iOS device to your computer using a USB cable. <br />
* Access the iOS device using the iTunes file sharing capability. We recommend [http://www.i-funbox.com/en/index.html iFunBox] as an easy to use tool.<br />
* Copy the exported log file from your iOS device to your computer.<br />
<br />
===Importing to 3rd party software===<br />
The RaceCapture log file format is plain CSV, which can be imported into 3rd party software. <br />
<br />
* '''RaceRender''' provides native support for the RaceCapture log file format. See the [[RaceCapture_RaceRender_Guide|exporting to RaceRender guide]].<br />
* '''DashWare''' has been used by RaceCapture customers - Rowan Hick has a write-up on [https://www.rowanhick.com/2016/01/07/racecapture-pro-dashware-win Dashware integration].<br />
<br />
=System Setup=<br />
You can configure all of RaceCapture's options under Setup. <br />
<br />
When the RaceCapture app detects the connected hardware, it will read the current setup from the device.<br />
* The setup information is presented as a series of pages, by topic. <br />
* When you change something on a setup page, you'll need to '''Write''' the changes back to the RaceCapture device before they take effect.<br />
<br />
[[Image:racecapture_setup_buttons.png]]<br />
<br />
==Explanation of buttons==<br />
* '''Save''': Save the current RaceCapture setup to a file, for backup.<br />
* '''Open''': Load a previously saved setup file. <br />
* '''Read''': Read the current setup from the RaceCapture device. <br />
* '''Write''': Writes any updated changes back to the RaceCapture device. '''Note: when you see the write button glowing / pulsing, it means there are pending changes to write back to the RaceCapture device'''<br />
<br />
==App Preferences==<br />
[[File:App Prederences 1.png|800px]]<br><br />
<br />
On the App preferences section, users can customize various settings as per their requirements. The setting options are as follows:<br />
<br />
* '''Startup Screen:''' From the startup screen option, users can select any of the following as the startup screen " Homepage, dashboard, Setup & Analysis.<br />
<br />
* '''Record Session:''' Users can toggle the recording of sessions on or off based on their preference.<br />
<br />
* '''Send Telemetry:''' Control the transmission of telemetry to the Podium app (App will not send the telemetry if the device built-in telemetry module in on)<br />
<br />
* '''Connection Type:''' Switch between USB and Wifi as the RaceCapture device connection type.<br />
<br />
* '''Full Screen''' Users can enable the full screen mode of the app by turning on the full screen option present at the bottom<br />
<br />
==Race Tracks==<br />
[[File:Racetrack..gif|800px]]<br />
<br />
On the Race Tracks page you can create a custom track, which will be included in the library of track maps for automatic detection. Follow these steps to set up your custom track:<br />
<br />
'''Disable Automatic Race Track Detection:'''<br />
* To create a custom track, turn off 'Automatic race track detection' option present at the top right corner<br><br />
<br />
<br />
'''Add a New Track'''<br />
* Press the add (+) button, present at the bottom left corner, to begin the process of adding a new track to the library.<br><br />
<br />
<br />
'''Choose Track Style'''<br />
* Upon selecting to add a new track, opt for either a circuit or Autocross (point-to-point) style course.<br><br />
<br />
<br />
'''Select Start and Finish points'''<br />
* Follow the prompts to choose the start and finish points of your track. Drive to the desired start line and press start. You can either finish immediately to create a simple track map with a single start/finish point or proceed to create more complex configurations.<br><br />
<br />
<br />
'''Drive Through the Track'''<br />
* Drive through the track as you've configured, ensuring to drive a sufficient distance away from the start/finish point before returning.<br><br />
<br />
<br />
'''Confirm Track Creation'''<br />
* Confirm your track creation by following on-screen instructions. You may choose to create a minimal track with just a start/finish point<br><br />
<br />
<br />
'''Name Your Track'''<br />
* Give your track a name and finish the setup process<br />
<br />
<br />
By following the above mentioned simple steps, you can easily set up a custom track and can optimize your racing performance.<br />
<br />
'''Note[[File:Good to Know.png|20px]]:''' For further details, [https://www.youtube.com/watch?v=-q3YzFa6LQM Click Here]<br />
<br />
==GPS==<br />
[[File:GPS.png| 800px ]]<br />
<br />
The GPS page allows user to configure different parameters according to their preferences. Here's a guide on adjusting GPS settings:<br><br />
<br />
'''GPS Sample Rate'''<br />
* Adjust the GPS sample rate according to your preference. Options include 1Hz, 5Hz, 10Hz (default), 25Hz, and Disable. [[File:Important Symbol.png|20px]] A 10Hz sample rate is recommended for the best balance of performance and accuracy.<br />
<br><br />
'''Units Selection'''<br />
* Choose between imperial and metric units based on user's measurement preferences.<br />
<br><br />
'''Channel Configuration'''<br />
* Enable or disable specific GPS channels as per user's requirements. Channels include Position, Speed, Altitude, Satellite, GPS Fix Quality, and Dilution of Precision (DOP).<br />
<br><br />
'''Important Note [[File:Mandatory Action.jpg|20px]]'''<br />
* We strongly recommend keeping the default channels enabled for proper operation of analysis and lap timing [[RaceCapturePro2_GPS|Getting the best GPS performance]].<br />
<br><br />
By customizing these GPS settings, users can ensure accurate data capture and enhance the overall precision of their RaceCapture system.<br />
<br />
==Race Timing==<br />
[[File:Race Timing.png|800px]]<br><br />
<br />
In this section, users can customize the behavior of the lap timer and predictive lap timer. Also, there's an option to choose between metric and imperial units for calculating distance. Follow these instructions to set your race timing preferences:<br />
<br />
'''Enable/Disable Lap Timer'''<br />
* Toggle the lap timer on or off based on your preference.<br />
<br><br />
'''Enable/Disable Predictive Lap Timer'''<br />
* Choose to activate or deactivate the predictive lap timer as desired.<br />
<br><br />
'''Distance Unit Selection'''<br />
* Opt for metric or imperial units for calculating the distance channel.<br />
<br><br />
'''Note [[File:Important Symbol.png|20px]]:''' It is recommended to leave these features 'on' to fully utilize the capabilities of the lap timer and predictive lap timer.<br />
<br />
By configuring these settings, users can customize the race timing features according to their specific needs and preferences.<br />
<br />
==Analog Sensors==<br />
[[file:racecapture_app_setup_analog_sensors.jpg|800px]]<br />
<br />
This section empowers users to configure and calibrate their analog sensors as per their specific requirements. To set up analog sensors, follow these straightforward steps:<br />
<br><br />
* '''Channel Selection:''' Begin by selecting the desired channel type (sensor) for configuration<br />
* '''Sample Rate Configuration:''' Configure the sample rate to suit your preferences and data acquisition needs.<br />
* '''Mode Selection:''' Choose from three available modes: Raw, Linear, or Mapped, based on your intended use.<br />
* '''Linear Formula or Interpolated Mode:''' In the selected mode, input values in either linear formula or interpolated mode, depending on your Mode Selection.<br><br />
<br />
By following these steps, users can configure and calibrate analog sensors to optimize their performance within the RaceCapture system<br />
<br><br />
<br />
'''Note [[File:Good to Know.png|20px]]:''' For more details regarding the calibration of analog sensors, please visit [https://wiki.autosportlabs.com/RaceCapturePro_Sensors#Calibrating_Analog_Sensors Calibrating Analog Sensors]<br />
<br />
==Pulse/RPM sensors==<br />
[[file:racecapture_app_setup_pulse_rpm_sensors.jpg|800px]]<br />
<br />
This section provide user the option to configure and calibrate RPM and pulse-type sensors, including those for wheel speed. Similar to the analog sensor configuration, this section allows users to:<br />
<br />
'''Channel Selection'''<br />
* Choose the appropriate channel for the RPM or pulse-type sensor configuration.<br />
<br><br />
'''Sample Rate Configuration'''<br />
* Configure the sample rate according to your specific requirements for accurate data capture.<br />
<br><br />
'''Channel Mode Options'''<br />
* Select the desired channel mode from RPM, Frequency, and Period (in milliseconds and microseconds).<br />
<br><br />
'''Timer Speed Adjustment'''<br />
* Adjust timer speed with options such as slow, medium, and fast to match your sensor's characteristics.<br />
<br><br />
'''Pulses Per Revolution'''<br />
* Specify the number of pulses per revolution for precise sensor calibration.<br />
<br><br />
By utilizing these configuration options, users can effectively calibrate RPM and pulse-type sensors as per their specific needa.<br />
<br />
==Digital In/Out==<br />
[[file:racecapture_app_setup_gpio_sensors.jpg|800px]]<br />
<br />
This section provide user the option to configure the General Purpose Input/Outputs (GPIOs) for their RaceCapture system. In this section users can adjust the sample rate and specify whether the mode should be set to input or output.<br />
<br />
By following these straightforward steps, users can configure the digital input/output settings to meet their specific requirements within the RaceCapture system.<br />
<br />
==Accel / Gyro==<br />
[[image:racecapture_app_setup_accel_gyro_sensors.jpg|800px]]<br />
<br />
For optimal performance, it is recommended to mount RaceCapture square with the chassis, ensuring that the harness connectors face the front of the vehicle.<br />
<br />
'''Channel Remapping'''<br />
* Users have the flexibility to re-map channels by reassigning the physical axis to the mapped channel, offering customization based on specific needs.<br />
<br />
'''Calibration Process'''<br />
* Define the desired channel mappings<br />
* Calibrate the accelerometer and gyro by pressing the dedicated calibrate button.<br />
* Confirm the calibration by pressing the write button to save the settings back to RaceCapture.<br />
<br />
==CAN bus==<br />
To enable CAN bus communications, set the CAN bus setting to '''ON'''. <br />
CAN bus baud rates are configurable; common rates are 250K, 500K and 1MB. RaceCapture defaults to:<br />
* 500K for CAN1, which is common for OEM and aftermarket ECUs<br />
* 1MB for CAN2, which matches the standard for our CAN bus accessories.<br />
<br />
[[image:racecapture_setup_can_bus_network.jpg|800px]]<br />
<br />
==CAN bus mapping==<br />
RaceCapture offers a powerful CAN bus mapping capability, allowing you to map CAN bus data frames to real-world sensor values. <br />
<br />
See our comprehensive guide on [[CAN_Bus_Integration|Using and mapping CAN bus sensor data]] [[File:Good to Know.png|20px]]<br />
<br />
[[image:racecapture_app_can_bus_mapping.jpg|800px]]<br />
<br />
==OBDII==<br />
<br />
[[File:OBDII.gif|800px]]<br />
<br />
User can configure the OBDII channels setting and add a new OBDII channel within this section. To add a new OBDII channel To add a new OBDII channel, follow the instructions below:<br />
===Adding OBDII Channel===<br />
* To add a new OBDII channel, click on the + button present at the bottom<br />
<br><br />
'''Selecting OBDII channels'''<br />
* Access the channel menu and choose the desired OBDII channel from the standard list available on the OBDII configuration screen.<br />
<br><br />
'''Selecting sample rates'''<br />
* Select the sample rates from the Rate icon present in the Channel menu. <br />
* '''Note [[File:Good to Know.png|20px]]:''' For channels that require a faster response rate, like RPM and TPS, we recommend 10, 25 or 50Hz. More slowly changing channels like EngineTemperature should be set to 1 or 5Hz.<br />
<br><br />
'''Note about unsupported channels [[File:Mandatory Action.jpg|20px]]''' <br />
<br />
If your ECU does not support a channel, the value will remain at 0. RaceCapture will time-out waiting for a response from the ECU, which will affect the performance of other channels. We recommend removing all unsupported channels to ensure optimal OBDII performance.<br />
<br />
The OBDII section offers extensive customization options, including unit conversions, mode, and PID customization. For additional information, visit [https://wiki.autosportlabs.com/RC_OBDII Here] [[File:Good to Know.png|20px]]<br />
<br />
==Automatic Control==<br />
<br />
[[image:racecapture_setup_automatic_control.jpg|800px]]<br />
<br />
The automatic control section provides user with various options to customize their RaceCapture system's behavior. Within this section, users can:<br />
<br />
'''Start/Stop Trigger Time'''<br />
* Set the trigger time for starting and stopping <br />
<br><br />
<br />
'''Logging Triggers'''<br />
* Enable or disable SD card and app logging triggers.<br />
<br><br />
<br />
'''Camera Control'''<br />
* Toggle camera on/off as per the requirements<br />
<br><br />
<br />
Camera Type Selection<br />
* Choose the desired camera type directly from this section<br />
<br />
By utilizing these options, users can configure the automatic control settings to suit their specific requirements within the RaceCapture system.<br />
<br />
==Wireless==<br />
[[image:racecapture_app_setup_wireless.jpg|800px]]<br />
<br />
The Wireless section offers a range of configuration options for Bluetooth, WiFi, and cellular settings.<br />
<br />
===Bluetooth===<br />
In the Bluetooth section, users can toggle Bluetooth on/off, and customize the Bluetooth name and passcode.<br />
<br />
===WiFi===<br />
<br />
In wireless section, users can enable / disable wireless support and can configure RaceCapture's WiFi for both '''Access Point''' and '''Client''' mode.<br />
<br />
'''Client Mode:'''<br />
To enable client mode, specify the SSID and password for the network you wish to connect to and turn the client mode switch to on<br />
<br />
'''Access Point Mode:'''<br />
To enable the RaceCapture access point, specify the SSID and a password.<br />
<br />
'''Note [[File:Mandatory Action.jpg|20px]] :''' If specified, passwords must be minimum of 8 characters. Leave the field blank to create an open network.<br />
<br />
===Cellular Configuration===<br />
This section enables users to enable/disable the on-board cellular option, select the designated regional profile, and configure the Access Point Name (APN).<br />
<br />
By utilizing these wireless configuration options, users can configure their RaceCapture system to integrate with various networks.<br />
<br />
==Real-time Telemetry==<br />
With the real-time telemetry feature you can live-stream your data to [http://podium.live Podium] so you can compare and share laps and runs with your friends. Enable by setting your Podium Device ID provided by your [http://podium.live Podium Account] [[File:Good to Know.png|20px]]<br />
<br />
See the [[RaceCapture_real_time_telemetry|RaceCapture real time telemetry setup guide]] [[File:Good to Know.png|20px]]for details on setting up this feature.<br />
<br />
[[image:racecapture_app_setup_telemetry.jpg|800px]]<br />
<br />
[[image:podium.png|thumb|200px]]<br />
<br />
http://i.imgur.com/WzHsdU1.gif<br />
<br />
==Scripting==<br />
You can customize the behavior of your system by writing small Lua scripts; you can do things like:<br />
* Create live math (virtual) channels that are calculated on the fly<br />
* Broadcast Custom CAN bus messages<br />
* Control a fan based on the temperature of an analog channel (e.g. EngineTemp)<br />
<br><br />
See the [[RaceCapturePro_Lua_Scripting|Lua scripting guide]] [[File:Good to Know.png|20px]] for a complete how-to, including helpful examples.<br />
<br />
[[image:racecapture_app_setup_lua_scripting.jpg|800px]]<br />
<br />
===Diagnostic Logs===<br />
To view the log messages provided by the RaceCapture unit, you can enable the '''Poll log''' check box. You can copy the current log to the clipboard by pressing the '''Copy''' button.<br />
<br />
'''Note [[File:Good to Know.png|20px]]:''' These logs are useful for diagnosing issues with your RaceCapture unit, as well as seeing messages printed by your Lua script.<br />
<br />
==Firmware==<br />
Here you can update your system's firmware, perform a factory reset, which restores the system to its original settings, or perform a reboot of the unit without needing to do a power-cycle. <br />
* '''Note [[File:Mandatory Action.jpg|20px]] :''' Before updating your firmware, be sure to save your current configuration to a file. <br />
<br />
<br />
[[file:racecapture_app_setup_firmware.jpg|800px]]<br />
<br />
=Keyboard shortcuts=<br />
The following keyboard sequences can be used to control the app:<br />
==Anywhere in app==<br />
* ESC - exit / go up a level<br />
<br />
==Only active from home page==<br />
* "a" - Enter Analysis view<br />
* "d" - Enter Dashboard view<br />
* "s" - Enter Setup View<br />
* "t" - Enter Status view<br />
* "ctrl-q" - quit application<br />
<br />
==Dashboard view or Analysis view==<br />
* left arrow - Navigate left<br />
* right arrow - Navigate right<br />
<br />
==On Dashboard view==<br />
* "k" - Send "OK" response to pit-to-car alert<br />
* "y" - Send "Yes" response to pit-to-car alert<br />
* "n" - Send "No" response to pit-to-car alert<br />
<br />
=Troubleshooting=<br />
==Recovering from mis-configured WiFi or Bluetooth [[File:Good to Know.png|20px]]==<br />
If you're unable to connect via mobile due to a Wireless configuration issue - for example:<br />
* You forgot the password you set for RaceCapture's Access Point or Bluetooth link<br />
* If RaceCapture's WiFi client needs to be re-configured for a new WiFi network<br />
<br />
You can recover by re-configuring RaceCatpure's WiFi settings via the USB connection and the Windows or OSX app. <br />
<br />
Steps to recover:<br />
* Launch the RaceCapture app on Windows or OSX<br />
* Connect RaceCapture via USB<br />
* Allow the software to connect and read the configuration<br />
* Under Setup, adjust the WiFi or Bluetooth settings as needed<br />
* Write the configuration back to RaceCapture<br />
<br />
Once you update the settings, it's recommended you test the WiFi connection using your mobile device while still connected over USB so you can further adjust settings as needed.<br />
<br />
=Extra Information=<br />
==Microsoft Windows 7/8 Driver installation [[File:Good to Know.png|20px]]==<br />
* Download and unzip drivers: [https://autosportlabs-software.s3-us-west-2.amazonaws.com/RaceCapturePro_drivers_winXPVista7_V2.zip Windows XP/Vista/7/8 Drivers V2]<br />
** '''Note for Windows 8 users''' - These drivers are unsigned. You will need to disable the driver signing requirement for Windows 8, or upgrade to Windows 10. [https://learn.sparkfun.com/tutorials/disabling-driver-signature-on-windows-8/disabling-signed-driver-enforcement-on-windows-8 Instructions]<br />
*** [http://www.howtogeek.com/167723/how-to-disable-driver-signature-verification-on-64-bit-windows-8.1-so-that-you-can-install-unsigned-drivers/ Win8 64bit unsigned driver instructions]<br />
* Plug RaceCapture/Pro in to the computer. <br />
* If prompted to install a driver, direct Windows to the folder where you unzipped the RaceCapture/Pro drivers.<br />
* If not prompted, manually update driver:<br />
** Open Windows Device Manager and find the '''Ports (COM and LPT)''' section. RaceCapture/Pro should be listed there, possibly with a yellow (!) over the icon. <br />
** Right click and select 'Update Driver'.<br />
** Follow the instructions and direct Windows to the folder where you unzipped the RaceCapture/Pro drivers.</div>Brentphttps://wiki.autosportlabs.com/index.php?title=RaceCapturePro_Lua_Scripting_Examples&diff=10032RaceCapturePro Lua Scripting Examples2024-01-25T19:50:43Z<p>Brentp: /* Average two sensor values and set to a virtual channel */</p>
<hr />
<div>==How to set a script in the RaceCapture app==<br />
<br />
[https://youtu.be/SuHDvt3W9jc HowTo video: set custom script]<br />
<br />
==API Reference==<br />
'''[[RaceCapturePro_Lua_Scripting|Complete API Reference]]'''<br />
<br />
=OBDII tricks=<br />
[https://en.wikipedia.org/wiki/OBD-II_PIDs Complete OBDII PID reference]<br />
<br />
==Clear current trouble codes==<br />
This script clears any current trouble codes every 10 seconds. Clearing the code requires transmitting an OBDII command to ID 0x7DF with mode 4 specified. No other parameters are specified.<br />
<br />
<pre><br />
setTickRate(1) <br />
count = 0<br />
function onTick()<br />
checkClearCodes()<br />
end<br />
<br />
function checkClearCodes()<br />
if count % 10 == 0 then<br />
print('clearing codes')<br />
txCAN(0, 0x7df, 0, {1,4})<br />
end<br />
end<br />
</pre><br />
<br />
==Query and Decode Diagnostic Trouble Code==<br />
This script queries for a DTC, and if found, prints the decoded trouble code and the raw data. <br />
<pre><br />
--This example queries for and reads the first available DTC, if present. <br />
<br />
setTickRate(1)<br />
<br />
--P=Powertrain, C=Chassis, B=Body, U=Network<br />
prefixes = {'P','C','B','U'}<br />
digits = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'} <br />
<br />
function toDigit(v)<br />
return digits[v+1]<br />
end<br />
<br />
function printDTC(data)<br />
local dtc<br />
local a = data[3]<br />
local b = data[4]<br />
local prefix = prefixes[bit.band(bit.rshift(a, 6), 0x03) + 1]<br />
local c2 = bit.band(bit.rshift(a, 4), 0x03)<br />
local c3 = bit.band(a, 0x0f)<br />
local c4 = bit.band(bit.rshift(b, 4), 0x0F)<br />
local c5 = bit.band(b, 0x0F)<br />
<br />
local code = prefix ..toDigit(c2) ..toDigit(c3) ..toDigit(c4) ..toDigit(c5)<br />
println('Found DTC: ' ..code) <br />
end<br />
<br />
function printRawDTC(data)<br />
print('Raw DTC bytes: ')<br />
--print the remaining 6 bytes, <br />
--this raw data holds the trouble codes<br />
for i=1, #data do print(' ' ..data[i]) end<br />
println('')<br />
end<br />
<br />
function checkDTCResponse()<br />
local attempts = 0<br />
while attempts < 50 do<br />
local id,ext, data = rxCAN(0, 10)<br />
if id ~= nil and ext == 0 and id == 0x7e8 then<br />
if data[2] == 0x43 then<br />
if data[1] > 2 then<br />
printRawDTC(data)<br />
printDTC(data)<br />
else<br />
println('No DTC Found')<br />
end <br />
return<br />
end<br />
end<br />
attempts = attempts + 1<br />
end<br />
end<br />
<br />
function sendCheckDTC()<br />
println('Sending check DTC')<br />
txCAN(0, 0x7df, 0, {1,3})<br />
end<br />
<br />
function onTick() <br />
sendCheckDTC()<br />
checkDTCResponse()<br />
end<br />
</pre><br />
<br />
==Display OBDII Codes as a channel and allow driver to reset the OBDII Codes with a button==<br />
This script creates a virtual channel called ''OBDIICodes'' and sets it to the first OBDII Trouble Code found (It will not have the alpha prefix (Ie P, C , B, or U), but will just have up to 4 digits. You can then use these digits to figure out the P code. Ie, if 155 is returned, your OBDII code would be P0155. If -1 is shown for the ''OBDIICodes'' channel that means RaceCapture has not received any codes from the ECU yet. If 0 is shown for ''OBDIICodes'' channel that means the ECU sent back P0000 which means there are no OBDII trouble codes in the ECU. This channel will be logged and sent via telemetry just like a regular channel. If more than one OBDII code is found, it will cycle setting the ''OBDIICodes'' channel to the first 2-3 OBDII codes that were returned. It will cycle to the next code every couple of seconds. <br />
<br />
I also added the ability for the driver to reset the OBDII Trouble codes using an external button. This button needs to be mapped to an Analog or GPIO channel called ''ClearOBD''. It will reset the vehicle's OBDII codes and reset the ''OBDIICodes'' channel to -1.<br />
<br />
[[Image:ClearOBDChannel.png|500px]]<br />
<br />
Here is a [https://www.youtube.com/watch?v=uLqjKFXaF8c video of the functionality in action.]<br />
<br />
<pre><br />
--Modified by Scott Barton of ProFormance Coaching for Autosport Labs Community<br />
<br />
tickRate = 5<br />
setTickRate(tickRate)<br />
counter=0<br />
<br />
--P=Powertrain, C=Chassis, B=Body, U=Network<br />
prefixes = {'P','C','B','U'}<br />
digits = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'} <br />
OBDCodes = {'-1'}<br />
currCode = 1<br />
<br />
addChannel("OBDIICodes", 1, 0)<br />
setChannel("OBDIICodes", -1)-- Some car manufactures send P0000 if there are no fault codes; therefore we will use -1 to know that no codes have been returned yet<br />
<br />
<br />
<br />
function clearOBDCodes()<br />
for i=#OBDCodes, 1, -1 do<br />
OBDCodes[i] = nil<br />
end<br />
OBDCodes[1] = '-1'<br />
end <br />
<br />
<br />
function addOBDCode(code)<br />
local codeFound = false<br />
for i=1, #OBDCodes do<br />
if OBDCodes[i] == '-1' or OBDCodes[i] == 0 then OBDCodes[i] = nil end<br />
if OBDCodes[i] == code then codeFound=true end<br />
end<br />
if not codeFound then <br />
OBDCodes[#OBDCodes+1] = code<br />
println(#OBDCodes ..' Total OBDII Codes Found So Far') <br />
end <br />
end<br />
<br />
function displayOBDCodes()<br />
counter = counter+1<br />
if counter == 3*tickRate then --seconds since last update<br />
currCode = currCode+1<br />
if currCode>#OBDCodes then currCode=1 end<br />
--println('Updating OBDII Code ' ..currCode ..' ' ..OBDCodes[currCode])<br />
counter = 0<br />
end<br />
setChannel("OBDIICodes", OBDCodes[currCode])<br />
end <br />
<br />
function checkClearCodes(canChan)<br />
local ClrOBD = getChannel("ClearOBD ") --Must create an analog or GPIO channel called ClearOBD in your settings and map it to read 1 or higher when you push the external button wired to that input <br />
if ClrOBD ~= nil and ClrOBD > 0 then<br />
println('Clearing OBDII codes')<br />
txCAN(canChan, 0x7df, 0, {1,4}) --sends reset OBDII codes command to ECU<br />
clearOBDCodes()<br />
setChannel("OBDIICodes", -1)<br />
end<br />
end<br />
<br />
<br />
function toDigit(v)<br />
return digits[v+1]<br />
end<br />
<br />
function printDTC(data)<br />
local dtc<br />
local a = data[3]<br />
local b = data[4]<br />
local prefix = prefixes[bit.band(bit.rshift(a, 6), 0x03) + 1]<br />
local c2 = bit.band(bit.rshift(a, 4), 0x03)<br />
local c3 = bit.band(a, 0x0f)<br />
local c4 = bit.band(bit.rshift(b, 4), 0x0F)<br />
local c5 = bit.band(b, 0x0F)<br />
<br />
<br />
local code = toDigit(c2) ..toDigit(c3) ..toDigit(c4) ..toDigit(c5)<br />
addOBDCode(code)<br />
--setChannel("OBDIICodes", code)<br />
code = prefix ..code<br />
println('Found DTC: ' ..code)<br />
<br />
<br />
a = data[5]<br />
b = data[6]<br />
local d2 = bit.band(bit.rshift(a, 4), 0x03)<br />
local d3 = bit.band(a, 0x0f)<br />
local d4 = bit.band(bit.rshift(b, 4), 0x0F)<br />
local d5 = bit.band(b, 0x0F)<br />
<br />
local code2 = toDigit(d2) ..toDigit(d3) ..toDigit(d4) ..toDigit(d5)<br />
if tonumber(code2) ~= nil and tonumber(code2)>1 then <br />
addOBDCode(code2)<br />
code2 = prefix ..code2<br />
println('Found 2nd DTC: ' ..code2)<br />
end<br />
<br />
a = data[7]<br />
b = data[8]<br />
local e2 = bit.band(bit.rshift(a, 4), 0x03)<br />
local e3 = bit.band(a, 0x0f)<br />
local e4 = bit.band(bit.rshift(b, 4), 0x0F)<br />
local e5 = bit.band(b, 0x0F)<br />
<br />
local code3 = toDigit(e2) ..toDigit(e3) ..toDigit(e4) ..toDigit(e5)<br />
if tonumber(code3) ~= nil and tonumber(code3)>1 then <br />
addOBDCode(code3)<br />
code3 = prefix ..code3<br />
println('Found 3rd DTC: ' ..code3)<br />
end<br />
end<br />
<br />
function printRawDTC(data)<br />
print('Raw DTC bytes: ')<br />
--print the remaining 6 bytes, <br />
--this raw data holds the trouble codes<br />
for i=1, #data do print(' ' ..data[i]) end<br />
println('')<br />
end<br />
<br />
function checkDTCResponse(canChan)<br />
local attempts = 0<br />
while attempts < 50 do<br />
local id,ext, data = rxCAN(canChan, 10)<br />
if id ~= nil and ext == 0 and id == 0x7e8 then<br />
if data[2] == 0x43 then<br />
if data[1] > 2 then<br />
printRawDTC(data)<br />
printDTC(data)<br />
else<br />
--println('No DTC Found')<br />
end <br />
return<br />
end<br />
end<br />
attempts = attempts + 1<br />
end<br />
end<br />
<br />
function sendCheckDTC(canChan)<br />
--println('Sending check DTC')<br />
txCAN(canChan, 0x7df, 0, {1,3})<br />
end<br />
<br />
function onTick() <br />
sendCheckDTC(1) --0=OBDII is on CAN Channel 1; 1=OBD is on CAN Channel 2<br />
checkDTCResponse(1)<br />
displayOBDCodes()<br />
checkClearCodes(1)<br />
end<br />
</pre><br />
<br />
=Data filtering=<br />
<br />
==Simple RPM Filter==<br />
<br />
Got a noisy RPM signal where big spikes show up? This will reject RPM values above a sane threshold.<br />
<br />
'''Important''' - make sure the RPM channel in the main RaceCapture/Pro config is '''disabled''', since this virtual channel replaces it.<br />
<pre><br />
--sample RPM at 10Hz<br />
setTickRate(10)<br />
<br />
--set this value to be your sane upper limit<br />
rpmLimit = 10000<br />
<br />
--In the RCP config, ensure the timer channels are disabled<br />
--we will create the virtual channel here<br />
rpmId = addChannel( "RPM", 10, 0, 0, rpmLimit)<br />
rpm = 0<br />
<br />
function doRPM()<br />
local r = getTimerRpm(0)<br />
if r < rpmLimit then <br />
rpm = r<br />
end<br />
setChannel(rpmId, rpm)<br />
end<br />
<br />
<br />
function onTick()<br />
doRPM()<br />
end<br />
</pre><br />
<br />
=Automatic logging control=<br />
==Automatically Start Logging When Powered On==<br />
This script will automatically start logging the moment RaceCapture/Pro turns on <br />
* Note, this will create a file with an incorrect timestamp if GPS lock is not established. <br />
** To get a properly time-stamped file, use the GPS speed triggered approach.<br />
<br />
function onTick()<br />
startLogging()<br />
end<br />
<br />
==Automatically Start Logging based on GPS Speed==<br />
This script will automatically start logging to SD card when speed exceeds 10MPH and stop when it falls below.<br />
<br />
<pre><br />
function onTick()<br />
if getGpsSpeed() > 10 then<br />
startLogging()<br />
else<br />
stopLogging()<br />
end<br />
end<br />
</pre><br />
<br />
==Automatically Start Logging when engine is running==<br />
This script will automatically start logging to SD card when battery voltage shows that the engine is running<br />
* When battery voltage is greater than 13 volts, we assume engine is running.<br />
* System battery voltage is tied to the last Analog channel (8) (Note, change this to 7 if RaceCapture/Pro MK2)<br />
<br />
<pre><br />
function onTick()<br />
if getAnalog(8) > 13 then<br />
startLogging()<br />
else<br />
stopLogging()<br />
end<br />
end<br />
</pre><br />
<br />
==Automatically start Logging upon Launch (AutoX / Rally / Hill Climb)==<br />
This script will start Logging when a dash mounted "ARM" switch is activated via an input and G-force exceeds a threshold<br />
Given:<br />
* GPIO 0 configured as input and connected to dash mounted "Arm" switch<br />
* Default RaceCapture/Pro mounting orientation (terminal block facing forward, mounted upright)<br />
* G-force launch threshold is -0.1 G<br />
* flipping the ARM switch to 'Off' will stop logging<br />
<br />
<pre><br />
setTickRate(30)<br />
overRevId = addChannel("OverRev", 10)<br />
<br />
<br />
function onTick()<br />
local arm = getGpio(0)<br />
local g = getAccel(1)<br />
if arm == 0 then<br />
stopLogging()<br />
end<br />
if arm == 1 and g < 0.1 then<br />
startLogging()<br />
end<br />
end<br />
</pre><br />
<br />
=Virtual Channels (AKA Math Channels)=<br />
<br />
==Averaging a fuel level reading or other sensor==<br />
<br />
This script calculates a moving average to account for fuel slosh.<br />
Assumptions:<br />
* Fuel level is connected to the first analog channel and is calibrated; modify the script to base the reading on other channels as appropriate.<br />
<br />
<pre><br />
--The real analog channel should be named<br />
--something other than FuelLevel<br />
fuel2Id = addChannel("FuelLevel", 10, 0, 0,100,"%")<br />
<br />
--change this to make a bigger averaging window<br />
maxAvg = 600 <br />
--600 = 20 seconds averaging at 30Hz tick rate<br />
<br />
--do not change<br />
fuelAvg={}<br />
fuel2Index = 1<br />
<br />
function updateFuelAvg(value)<br />
local i<br />
if #fuelAvg == 0 then<br />
--initialize averaging table<br />
for i = 1, maxAvg do fuelAvg[i]=0 end<br />
end<br />
fuelAvg[fuel2Index] = value<br />
fuel2Index = fuel2Index + 1<br />
if fuel2Index > maxAvg then fuel2Index = 1 end<br />
local sum = 0<br />
for i = 1, #fuelAvg do<br />
sum = sum + fuelAvg[i]<br />
end<br />
setChannel(fuel2Id, sum / maxAvg)<br />
end<br />
<br />
<br />
setTickRate(30)<br />
function onTick()<br />
updateFuelAvg(getAnalog(0))<br />
end<br />
</pre><br />
<br />
==Average two sensor values and set to a virtual channel==<br />
<br />
<pre><br />
--10Hz update<br />
setTickRate(10)<br />
<br />
--Create channel: "SensorAvg"<br />
--Sample rate: 10Hz<br />
--Logging precision: 2 decimal points<br />
--min/max: 0/5<br />
--Units: "Volts"<br />
avgId = addChannel("SensorAvg", 10, 2, 0, 5, "Volts")<br />
<br />
function onTick()<br />
local a1 = getChannel("ch1")<br />
local a2 = getChannel("ch2")<br />
setChannel(avgId, (a1 + a2) / 2)<br />
end<br />
</pre><br />
<br />
==Gear Calculation==<br />
Calculate gear position based on drive train ratios, RPM channel and gear. <br />
''Requires firmware 2.5.0''<br />
<br />
Edit the gear ratios to match your vehicle. Assumes Speed is available on "Speed" channel, RPM is available on "RPM" channel. <br />
<br />
More details under the [[RaceCapturePro_Lua_Scripting#calcGear.28.29|calcGear API documentation]]. <br />
<br />
<pre><br />
setTickRate(30)<br />
<br />
--create gear channel<br />
gearId = addChannel("Gear", 10, 0, 0, 6)<br />
<br />
function onTick()<br />
-- calculate gear: tire diameter(cm), final gear ratio, individual gear ratios 1-6<br />
local gear = calcGear(62.7, 3.45, 4.23, 2.52, 1.66, 1.22, 1.0, 0.8)<br />
if gear == nil then gear = 0 end<br />
setChannel(gearId,gear)<br />
end <br />
</pre><br />
''Also available as a preset''<br />
<br />
==Throttle Position Calculation==<br />
Estimate throttle position based on G-Forces. 0-100%<br />
<br />
<pre><br />
--Developed by Scott Barton of ProFormance Coaching for use by Autosport Labs Community<br />
<br />
MaxAccelG = 0.30 -- Look at your logs and see what your max acceleration is in 3rd or 4th gear. Note that full acceleration in 5th will not show 100% throttle.<br />
chThrottle = addChannel("vThrottle", 10, 0, 0, 100,'')<br />
<br />
function updatevThrottle()<br />
--AccelG = getChannel(LongAccel) --2.13 Firmware and up<br />
AccelG = getImu(0) --Prior to 2.13 Firmware<br />
TPS = (AccelG/MaxAccelG)*100<br />
<br />
if TPS < 0 then TPS = 0 end<br />
TPS = math.abs(TPS)<br />
if TPS > 99 then TPS = 100 end<br />
setChannel(chThrottle, TPS)<br />
<br />
end<br />
<br />
--10Hz update<br />
setTickRate(10)<br />
<br />
function onTick()<br />
updatevThrottle()<br />
end<br />
<br />
</pre><br />
<br />
==Brake Position Calculation==<br />
Estimate brake pedal position based on G-Forces. 0-100%.<br />
<br />
<pre><br />
--Developed by Scott Barton of ProFormance Coaching for use by Autosport Labs Community<br />
<br />
MaxDecelG = 1.20 --Look at your logs and see what your maximum g-forces under straight line braking is and round down. <br />
chBrake = addChannel("vBrake", 10, 0, 0, 100, '')<br />
<br />
function updatevBrake()<br />
--BrakeG = getChannel(LongAccel) -- 2.13 Firmware and up<br />
BrakeG = getImu(0) --Prior to 2.13 Firmware<br />
--if ReverseAccel then <br />
BrakeG = BrakeG *-1<br />
--BrakeG = -1.1<br />
BrakePos = (BrakeG/MaxDecelG)*100<br />
<br />
if BrakePos < 10 then BrakePos = 0 end<br />
BrakePos = math.abs(BrakePos)<br />
if BrakePos > 99 then BrakePos=100 end<br />
setChannel(chBrake, BrakePos)<br />
end<br />
<br />
--10Hz update<br />
setTickRate(10)<br />
<br />
function onTick()<br />
updatevBrake()<br />
end<br />
<br />
</pre><br />
<br />
==Max RPM detection with GPIO reset==<br />
This script detects the peak RPM detected and stores it in a virtual channel. A GPIO is used to reset the channel to zero via a push button. <br />
<pre><br />
maxRpmId = addChannel("MaxRPM", 10)<br />
maxRpm = 0<br />
<br />
function rpmReset()<br />
local rpm = getTimerRpm(0)<br />
local clear = getGpio(0)<br />
if rpm > maxRpm then<br />
maxRpm = rpm<br />
setChannel(maxRpmId, maxRpm)<br />
end<br />
if clear == 0 then<br />
maxRpm = 0<br />
setChannel(maxRpmId, maxRpm)<br />
<br />
end<br />
end<br />
<br />
function onTick()<br />
rpmReset()<br />
end <br />
</pre><br />
<br />
=Alerts/Notifications=<br />
==Create an over-rev marker==<br />
This script will mark the datalog with an over-rev alert marker whenever RPMs are above a certain threshold. It will insert the current lap number to the OverRev channel. If multiple occurrences happen, you can take a look the event summary page and then look at each of those lap to see where and when it happened. <br />
<br />
Given:<br />
* RPM is connected a timer channel called RPM<br />
* RPM over-rev condition is 8000<br />
<pre><br />
setTickRate(10)<br />
overRevId = addChannel("OverRev", 10)<br />
<br />
function onTick()<br />
local rpm = getChannel("RPM")<br />
if rpm ~= nil and rpm > 8000 then <br />
setChannel(overRevId, getLapCount()) <br />
end<br />
</pre><br />
<br />
==Create an Impact marker==<br />
This script will mark the datalog with an impact occurs (very high G-Forces). It will insert the current lap number to the Impact channel. If multiple occurrences happen, you can take a look the event summary page and then look at each of those lap to see where and when it happened. <br />
<pre><br />
setTickRate(10)<br />
impactId = addChannel("Impact", 10)<br />
<br />
function onTick()<br />
local gsum = getChannel("Gsum")<br />
if gsum ~= nil and gsum > 2.0 then --Assumes anything over 2.0G's is an impact. Change to suit your needs.<br />
setChannel(impactId, getLapCount()) <br />
end<br />
end<br />
</pre><br />
==Control a Fan or Pump switch based on Temp==<br />
<pre><br />
function updateDiffSwitch()<br />
local diffTemp = getChannel("DiffTemp") --Change to your temperature channel name<br />
if diffTemp ~=nil and diffTemp > 180 then --update temp to turn on at<br />
setGpio(2,1) <br />
elseif diffTemp ~=nil and diffTemp < 160 then --update temp to turn off at<br />
setGpio(2,0) --Uses GPIO3 for output. Increase SampleRate or TickRate if it isn't turning on<br />
end<br />
end<br />
</pre><br />
<br />
<br />
==Alert driver via electro-shock if oil pressure below safe threshold==<br />
This will alert driver via a shock (using pet scat mat) if oil pressure drops below threshold while engine is running above certain RPM<br />
<br />
[[Image:scat_mat_box.jpg]]<br />
<br />
Script will check at 10Hz (10 times/sec) for threshold condition<br />
<br />
Given:<br />
* Oil pressure on analog channel 0, and calibrated<br />
* Seat mounted pet scat mat installed in seat and controlled by GPIO 0 (GPIO switches ground when active)<br />
* GPIO 0 is configured for output mode<br />
* RPM is connected to timer input 0<br />
<br />
<pre><br />
--onTick() is called at 10Hz<br />
setTickRate(10)<br />
<br />
<br />
rpmThreshold = 2000<br />
lowOilPressure = 15<br />
<br />
function onTick()<br />
local shockDriver = 0<br />
if getTimerRpm(0) > rpmThreshold and getAnalog(0) < lowOilPressure then<br />
shockDriver = 1<br />
end<br />
setGpio(0, shockDriver)<br />
end<br />
</pre><br />
<br />
==Track Max RPM / Value==<br />
This script will track a channel's maximum value and set a new channel with that maximum.<br />
Given:<br />
* RPM is connected to the first Timer input channel<br />
<br />
setTickRate(10)<br />
maxRpmId = addChannel("MaxRPM", 10)<br />
maxRpm = 0<br />
<br />
function onTick()<br />
local rpm = getTimerRpm(0)<br />
if rpm > maxRpm then<br />
maxRpm = rpm<br />
setChannel(maxRpmId, maxRpm)<br />
end<br />
end<br />
<br />
==Activate a GPIO when start finish line is crossed==<br />
This script will pulse one of the GPIO outputs when the start/finish line is detected.<br />
First, the onTick rate is set to 10hz, then [[RaceCapturePro_Lua_Scripting#setGpio_.28_channel.2C_state_.29|setGpio()]] is called with the result of the call to [[RaceCapturePro_Lua_Scripting#getAtStartFinish.28.29|getAtStartFinish()]]<br />
<br />
setTickRate(10)<br />
<br />
function onTick()<br />
if getAtStartFinish() == 1 then<br />
setGpio(0, 1)<br />
else<br />
setGpio(0, 0)<br />
end<br />
end<br />
<br />
or <br />
<br />
setTickRate(10)<br />
<br />
function onTick()<br />
setGpio(0, getAtStartFinish())<br />
end<br />
<br />
==Temperature Warning Indicator Light==<br />
This script will activate an output if an analog input exceeds a threshold. <br />
It's assumed a temperature sensor is connected to the Analog input channel 0 and is calibrated.<br />
<br />
More information: [[RaceCapturePro_installation_guide|Installation Guide]], [[RaceCapturePro_Sensors|Sensor Guide]], [[RaceCapturePro_SoftwareOperation|Operation Guide]]<br />
<br />
<pre><br />
function onTick()<br />
if getAnalog(0) > 212 then<br />
setGpio(0, 1)<br />
else<br />
setGpio(0, 0)<br />
end<br />
end<br />
</pre><br />
==Multi warning light==<br />
A script to trigger a warning light if at least one condition occurs. This will activate the output if the engine temperature is greater than 212 or if oil pressure drops below 10.<br />
* '''Note''' Actual temperature and pressure sensors must be connected to the appropriate analog inputs and correctly calibrated.<br />
<br />
<pre><br />
--Analog 0 is engine temp, in degrees F<br />
--Analog 1 is oil pressure, in PSI<br />
<br />
function onTick()<br />
if getAnalog(0) > 212 or getAnalog(1) < 10 then<br />
setGpio(0, 1)<br />
else<br />
setGpio(0, 0)<br />
end<br />
end<br />
</pre><br />
<br />
==Enable an LED if fuel level drops below 10%==<br />
* '''Using PWM/Analog output'''<br />
''only available on RaceCapture/Pro MK1 and MK2''<br />
** Fuel sensor is on Analog 0, scaled 0-100%<br />
** LED indicator connected to PWM 0. When fuel level drops below 10%, Analog/PWM output 0 will show 5v; 0v if fuel level is higher<br />
** PWM channel settings are set to factory default<br />
<br />
function onTick()<br />
local p = 0<br />
if getAnalog(0) < 10 then p = 100 end<br />
setPwmDutyCycle(0,p)<br />
end<br />
<br />
* '''Using GPIO in output mode'''<br />
** When fuel level drops below 10%, the GPIO is activated (output is grounded). Can be used to drive a relay or other device up to 1A load<br />
** GPIO jumper set to output mode<br />
** GPIO setting in firmware set to match jumper setting<br />
<br />
function onTick()<br />
local p = 0<br />
if getAnalog(0) < 10 then p = 1 end<br />
setGpio(0, p)<br />
end<br />
<br />
==3 stage Sequential Shift Light==<br />
Activates a 3 stage sequential shift light. Also see the [[Sequential_shift_light|Sequential Shift Light]] project<br />
<br />
Given:<br />
* RPM sensor on timer input 0<br />
* GPIO channels are configured in output mode under '''Setup/GPIO'''<br />
<br />
<br />
setTickRate(15)<br />
<br />
function onTick() <br />
local r = getTimerRpm(0) <br />
if r > 5000 then setGpio(2,1) else setGpio(2,0) end <br />
if r > 6000 then setGpio(1,1) else setGpio(1,0) end <br />
if r > 7000 then setGpio(0,1) else setGpio(0,0) end<br />
end<br />
<br />
==ProFormance Meter==<br />
Uses ShiftX to show you how much available grip you are using and how much is left. It also creates and updates the ProFormace channel which is an integer from 0-9. Closer to 9 you are the closer you are to max available grip.<br />
<br />
Instead of just using GSum, this takes into account that your MaxLatG's will be different than your MaxLongG's and gives you a more accurate representation of what you can do based on whether you are braking, turning, or accelerating. <br />
<br />
It also has 2 different models. 1) for an Advanced Driver and 2) for a Pro Driver. This is based on typical friction circles of Advanced Drivers vs Pro Drivers respectively. See the OnTick funtion to change DriverLevel.<br />
<br />
It also has an Oversteer Alert feature for ShiftX. Change the YawThreshold value to suit your needs. <br />
<br />
<pre><br />
setTickRate(25)<br />
sxSetConfig(1)<br />
<br />
yawThreshold = 25 --At what yaw rate do you want the oversteer alarm lights to trigger' Check normal max yaw on your Podium.live race summaries to get a better idea of what value you should use <br />
<br />
maxGsumId = addChannel("MaxGsum", 25, 2, -2.0, 2.0)<br />
pctGsumMaxId = addChannel("PctMaxGsum", 25, 0, 0, 100)<br />
maxLatGId = addChannel("MaxLatG", 25, 2, -2.0, 2.0)<br />
maxBrakeGId = addChannel("MaxBrakeG", 25, 2, -2.0, 2.0)<br />
maxAccelGId = addChannel("MaxAccelG", 25, 2, -2.0, 2.0)<br />
ProFormanceRatingId = addChannel("ProFormance", 25, 0, 9)<br />
<br />
maxGsum = .3<br />
maxLatG = .2<br />
maxBrakeG = .2<br />
maxAccelG = .1<br />
currLatG = 0<br />
longG = 0<br />
lastLongG = 0<br />
lastLatG = 0<br />
<br />
function updateGStats()<br />
local gsum = getChannel("Gsum")<br />
if gsum ~= nil and gsum > 0 then<br />
if gsum > maxGsum then <br />
maxGsum = gsum <br />
setChannel(maxGsumId, maxGsum) <br />
end<br />
setChannel(pctGsumMaxId, (gsum / maxGsum) * 100)<br />
end<br />
<br />
local latG = getChannel("AccelY")<br />
if latG ~= nil then<br />
latG = math.abs(latG)<br />
if latG > maxLatG then <br />
maxLatG = latG <br />
setChannel(maxLatGId, maxLatG)<br />
end<br />
end<br />
<br />
local currLongG = getChannel("AccelX")<br />
if currLongG ~= nil then<br />
if currLongG>0 then<br />
if currLongG > maxBrakeG then <br />
maxBrakeG = currLongG <br />
setChannel(maxBrakeGId, maxBrakeG)<br />
end<br />
elseif currLongG<0 then<br />
currLongG = math.abs(currLongG)<br />
if currLongG>maxAccelG then<br />
maxAccelG = currLongG<br />
setChannel(maxAccelGId, maxAccelG)<br />
end<br />
end<br />
end<br />
<br />
end<br />
<br />
<br />
function alertYaw(Yaw) --Light up the side ShiftX lights in case of an Oversteer event<br />
if Yaw >= yawThreshold+20 then<br />
sxSetLed(7,2,255,255,255,9)<br />
elseif Yaw >= yawThreshold+10 then<br />
sxSetLed(7,2,255,255,255,5)<br />
elseif Yaw >= yawThreshold then<br />
sxSetLed(7,2,255,255,255,3)<br />
else<br />
sxSetLed(7,2,0,0,0,0)<br />
end<br />
<br />
end<br />
<br />
<br />
function resetSxLeds() --resets all the ShiftX lights to off<br />
sxSetLed(0,0,0,0,0,0)<br />
end<br />
<br />
<br />
function getProFormanceRating(driverLevel) --Calculate how much grip they are using and how much is left<br />
--driverLevel: 1=Advanced, 2=Pro<br />
<br />
local cLatG = getChannel("AccelY")<br />
if cLatG ~= nil then currLatG = math.abs(cLatG) end<br />
local cLongG = getChannel("AccelX")<br />
if cLongG ~= nil then <br />
longG = cLongG<br />
end<br />
<br />
local BrakeAccel = "Braking"<br />
local maxLongG = maxBrakeG<br />
<br />
--may not want to do this<br />
--if longG <= -0.01 then --Calculate Accel G's seperate from Braking G's<br />
-- BrakeAccel = "Accelerating" <br />
-- maxLongG = maxAccelG<br />
--end<br />
<br />
local currLongG = math.abs(longG)<br />
<br />
local latGAvail = 0<br />
local longGAvail = 0<br />
if driverLevel==1 then --Advanced driver<br />
latGAvail = maxLatG*(1-(currLongG/maxLongG))<br />
longGAvail = maxLongG*(1-(currLatG/maxLatG))<br />
else --Pro Driver<br />
latGAvail = math.sqrt(((maxLatG - ((maxLatG-maxLongG)*(currLongG/maxLongG)))^2)-(currLongG^2))<br />
longGAvail = math.sqrt(((maxLongG - ((maxLongG-maxLatG)*(currLatG/maxLatG)))^2)-(currLatG^2))<br />
end<br />
<br />
local percGUsedLat<br />
if latGAvail <= 0 then<br />
percGUsedLat = 1<br />
else<br />
percGUsedLat = currLatG/latGAvail<br />
end<br />
<br />
local percGUsedLong<br />
if longGAvail <= 0 then<br />
percGUsedLong = 1<br />
else<br />
percGUsedLong = currLongG/longGAvail<br />
end <br />
<br />
local ProFormanceRating<br />
if currLongG-lastLongG > currLatG-lastLatG then<br />
local TotalPot2<br />
if (math.sqrt((currLatG^2)+(longGAvail^2))) <= 0 then<br />
TotalPot2 = 1<br />
else<br />
TotalPot2 = (math.sqrt((currLatG^2)+(currLongG^2)))/(math.sqrt((currLatG^2)+(longGAvail^2)))<br />
end<br />
local TotalPot3<br />
if (currLatG+longGAvail) <= 0 then<br />
TotalPot3 = 1<br />
else<br />
TotalPot3 = (currLatG+currLongG)/(currLatG+longGAvail)<br />
end<br />
local avgTotPot = (((percGUsedLat+((1-(currLatG/maxLatG))*percGUsedLong))*2)+TotalPot2+TotalPot3)/4<br />
ProFormanceRating = math.floor(avgTotPot*10)<br />
else<br />
local TotalPot2<br />
if (math.sqrt((currLongG^2)+(latGAvail^2))) <= 0 then<br />
TotalPot2 = 1<br />
else<br />
TotalPot2 = (math.sqrt((currLatG^2)+(currLongG^2)))/(math.sqrt((currLongG^2)+(latGAvail^2)))<br />
end<br />
local TotalPot3<br />
if (currLongG+latGAvail) <= 0 then<br />
TotalPot3 = 1<br />
else<br />
TotalPot3 = (currLatG+currLongG)/(currLongG+latGAvail)<br />
end<br />
local avgTotPot = (((percGUsedLong+((1-(currLongG/maxLongG))*percGUsedLat))*2)+TotalPot2+TotalPot3)/4<br />
ProFormanceRating = math.floor(avgTotPot*10)<br />
end<br />
<br />
if ProFormanceRating<0 then ProFormanceRating=0 end<br />
if ProFormanceRating>9 then ProFormanceRating=9 end<br />
setChannel(ProFormanceRatingId, ProFormanceRating)<br />
lastLongG = currLongG<br />
lastLatG = currLatG<br />
return ProFormanceRating<br />
end<br />
<br />
<br />
function showProFormanceSx(rating) --Show ProFormanceRating on ShiftX<br />
local numLeds=7 --How many LEDs on the ShiftX do you want to use for the ProFormance meter. Default is 7; the 7 in the middle<br />
resetSxLeds()<br />
sxSetLed(0,numLeds,255,0,0,0)<br />
local percLeds = (.1*rating*(numLeds+1))<br />
local greenLeds =math.floor(percLeds)<br />
if greenLeds>0 then sxSetLed(0,greenLeds,0,255,0,0) end<br />
if percLeds-greenLeds>0.61 then<br />
sxSetLed(greenLeds,1,100,100,0,2)<br />
end<br />
sxSetDisplay(0,rating)<br />
end<br />
<br />
<br />
function onTick()<br />
resetSxLeds()<br />
updateGStats()<br />
--ProFormance driver level: 1=Advanced, 2=Pro<br />
local driverLevel = 1<br />
local ProFormanceRating = getProFormanceRating(driverLevel)<br />
showProFormanceSx(ProFormanceRating)--Show ProFormance Rating on ShiftX<br />
<br />
if getChannel("Yaw")~=nil then Yaw = getChannel("Yaw") end<br />
if math.abs(Yaw)>yawThreshold-5 then alertYaw(math.abs(Yaw)) end<br />
collectgarbage()<br />
end<br />
</pre><br />
<br />
=CAN bus scripts=<br />
<br />
==Receive a CAN message on one bus and re-transmit on a different bus==<br />
<br />
setTickRate(30)<br />
function onTick()<br />
id, ext, data = rxCAN(0)<br />
if (id ~= nil) then<br />
txCAN(1, id, ext, data)<br />
end<br />
end<br />
<br />
==Send A CAN message with current GPS speed==<br />
Given:<br />
* Destination CAN device is looking for a message with ID 1234<br />
* Standard (11 bit) CAN identifer<br />
* CAN1 channel is used<br />
<br />
function onTick()<br />
local speed = getGpsSpeed()<br />
--format the speed in a CAN message. Speed is in the first byte<br />
local msg = {speed} <br />
txCAN(0, 1234, 0, msg)<br />
end<br />
<br />
<br />
==Send A CAN message with a temperature value==<br />
''available in future Firmware version 2.0''<br />
<br />
Given:<br />
* Analog 0 reads a calibrated temperature value between 0 and 255<br />
* Destination CAN device is looking for a message with ID 1234<br />
* Standard (11 bit) CAN identifer<br />
* CAN1 channel is used<br />
<br />
function onTick()<br />
local tmp = getAnalog(0)<br />
local msg = {tmp}<br />
txCAN(0, 1234, 0, msg)<br />
end<br />
<br />
<br />
==Use RCP as a general purpose CAN data logger==<br />
The following script will output any received CAN bus message to the log window.<br />
* You can access the log window by enabling polling in the script window under the RaceCapture app configuration view<br />
* You can also access the log window by connecting to RaceCapture/Pro from a terminal program (hyperterminal, Minicom, etc) and issuing the command: viewLog<br />
<br />
<pre><br />
setTickRate(30) --30Hz<br />
<br />
function onTick()<br />
repeat --will drain CAN buffer on each tick<br />
id, e, data = rxCAN(0)<br />
if id ~= nil then<br />
print(id ..':')<br />
for i=1,#data do<br />
print(data[i] ..' ')<br />
end<br />
println('')<br />
end<br />
until id == nil<br />
end<br />
</pre><br />
<br />
==Receive a CAN message and set a virtual channel==<br />
Given:<br />
<br />
* creates a channel named "MyChannel" that logs at 10Hz<br />
* Sets tick rate to 10Hz<br />
* Receive a CAN message on CAN1 channel, with 100ms timeout<br />
* if data received is valid (by checking the CAN message ID is not nil), then set the virtual channel with the first element in the CAN message data<br />
<br />
channelId = addChannel("MyChannel", 10)<br />
setTickRate(10)<br />
<br />
function onTick()<br />
id, ext, data = rxCAN(0, 100)<br />
if id ~= nil then<br />
setChannel(channelId, data[1])<br />
end<br />
end<br />
<br />
'''Note''': To map real CAN bus data, consult your CAN bus protocol documentation for correctly mapping CAN bus data to virtual channels.<br />
<br />
==CAN bus loopback test==<br />
Use This script to test functionality of your CAN bus. <br />
===Wiring / Setup ===<br />
* Connect CAN1 high -> CAN2 high and CAN1 low -> CAN2 low. This can either be done though the main wiring harness or the RJ45 connector.<br />
** '''Note''' if your unit has CAN on the wiring harness and the RJ45 connector, you only need to bridge the connections on one harness, since they are internally wired together. <br />
* Set the CAN baud rates to the same value for CAN1 and CAN 2. <br />
<br />
[[image:CAN_loopback_test.png]]<br />
<br />
<pre><br />
-- CAN loopback test<br />
-- * Wire CAN1 high -> CAN2 high and CAN 1 low -> CAN 2 low<br />
-- * Ensure baud rate is identical for both CAN1 and CAN2<br />
can_id = 1234<br />
count = 0<br />
function onTick() <br />
count = count + 1<br />
-- transmit a CAN message on CAN1 with count as the first byte<br />
local tx_result = txCAN(0, can_id, 0, {count})<br />
println('transmit result ' ..tx_result)<br />
<br />
-- receive a CAN message on CAN2 <br />
local id, ext, data = rxCAN(1)<br />
<br />
if id == nil then<br />
println('No CAN message received!')<br />
else<br />
println('Got CAN message ID: ' ..id ..' data: ' ..data[1])<br />
end<br />
end<br />
</pre><br />
<br />
<br />
==Integrate with RaceVoice via CAN==<br />
[https://www.racevoice.com/ RaceVoice] integrates with your data logger to audibly tell you info like high engine temp, low oil pressure, overrev, low battery, wheel lockup warnings as well as Pit to Car messages and soon Timing and Scoring data. It can also tell you things like rolling MPH at the end of a straight, max g-forces through a turn, lap segment delta, lap times, etc in order to be a more consistent and faster driver. <br />
You can find a list of [https://www.racevoice.com/features/ Race Voice Features here].<br />
Take a look at this video for more info. <br />
{{#evu:https://www.youtube.com/watch?v=9aWVu1JyiZo}}<br />
''Please note that [https://podium.live/software Firmware 2.18] or greater is required for the Pit to Car messaging to work with RaceVoice.'' <br />
<br />
<br />
''Please look at the RCP channel names in the getChannel('ChannelName') functions below and make sure that your channel names match. If you aren't using a channel, don't worry about it. But if you are using a channel but it is named differently in your configuration, please either rename it in your config or rename it in the script below so that they match.'' <br />
<br />
<pre><br />
--Created by Scott Barton of ProFormance Coaching for Autosport Labs Community<br />
tickRate = 10<br />
setTickRate(tickRate)<br />
<br />
TPS = 100<br />
RPM = 0<br />
Speed = 0<br />
AccelY = 0<br />
AccelX = 0<br />
ECT = 0<br />
OilP = 0<br />
Volts = 0<br />
BrakeP = 0<br />
WheelSpdLF = 0<br />
WheelSpdRF = 0<br />
WheelSpdLR = 0<br />
WheelSpdRR = 0<br />
LapNum = 0<br />
LapTime = 0<br />
BestTime = 0<br />
LapDelta = 0<br />
Lat = 0<br />
Long = 0 <br />
<br />
<br />
function toDec(msg, char)<br />
if string.byte (msg, char) == nil then <br />
return 0<br />
else<br />
return string.byte (msg, char)<br />
end<br />
end<br />
<br />
function txRVMessage(msg, channel)<br />
txCAN(channel, 0xA100, 1, {toDec(msg, 1), toDec(msg, 2), toDec(msg, 3), toDec(msg, 4), toDec(msg, 5), toDec(msg, 6), toDec(msg, 7), toDec(msg, 8)})<br />
txCAN(channel, 0xA101, 1, {toDec(msg, 9), toDec(msg, 10), toDec(msg, 11), toDec(msg, 12), toDec(msg, 13), toDec(msg, 14), toDec(msg, 15), toDec(msg, 16)}) <br />
end<br />
<br />
function split16(val)<br />
return bit.band(val, 0xFF), bit.band(bit.rshift(val,8), 0xFF)<br />
end<br />
<br />
function split32(val)<br />
return bit.band(val, 0xFF), bit.band(bit.rshift(val,8), 0xFF), bit.band(bit.rshift(val,16),0xFF),bit.band(bit.rshift(val,24),0xFF)<br />
end<br />
<br />
function txRVCANData(channel)<br />
<br />
local lTPS = getChannel('TPS')<br />
if lTPS ~= nil then TPS = lTPS end<br />
local TPS1, TPS2 = split16(TPS)<br />
<br />
local lRPM = getChannel('RPM')<br />
if lRPM ~= nil then RPM = lRPM end<br />
local RPM1, RPM2 = split16(RPM)<br />
<br />
local lSpeed = getChannel('Speed')<br />
if lSpeed ~= nil then Speed = lSpeed end<br />
local Speed1, Speed2 = split16(Speed)<br />
<br />
local lAccelX = getChannel('AccelX')<br />
if lAccelX ~= nil then AccelX = lAccelX end<br />
local AccelX1, AccelX2 = split16(AccelX*100)<br />
<br />
local lAccelY = getChannel('AccelY')<br />
if lAccelY ~= nil then AccelY = lAccelY end<br />
local AccelY1, AccelY2 = split16(AccelY*100)<br />
<br />
local lECT = getChannel('EngineTemp')<br />
if lECT ~= nil then ECT = lECT end<br />
local ECT1, ECT2 = split16(ECT)<br />
<br />
local lOilP = getChannel('OilPress')<br />
if lOilP ~= nil then OilP = lOilP end<br />
local OilP1, OilP2 = split16(OilP)<br />
<br />
local lVolts = getChannel('Battery')<br />
if lVolts ~= nil then Volts = lVolts end<br />
local Volts1, Volts2 = split16(Volts*10)<br />
<br />
local lBrakeP = getChannel('BrakeF')<br />
if lBrakeP ~= nil then BrakeP = lBrakeP end<br />
local BrakeP1, BrakeP2 = split16(BrakeP)<br />
<br />
local lWheelSpdLF = getChannel('WhlSpeedLF')<br />
if lWheelSpdLF ~= nil then WheelSpdLF = lWheelSpdLF end<br />
local WheelSpdLF1, WheelSpdLF2 = split16(WheelSpdLF)<br />
<br />
local lWheelSpdRF = getChannel('WhlSpeedRF')<br />
if lWheelSpdRF ~= nil then WheelSpdRF = lWheelSpdRF end<br />
local WheelSpdRF1, WheelSpdRF2 = split16(WheelSpdRF)<br />
<br />
local lWheelSpdLR = getChannel('WhlSpeedLR')<br />
if lWheelSpdLR ~= nil then WheelSpdLR = lWheelSpdLR end<br />
local WheelSpdLR1, WheelSpdLR2 = split16(WheelSpdLR)<br />
<br />
local lWheelSpdRR = getChannel('WhlSpeedRR')<br />
if lWheelSpdRR ~= nil then WheelSpdRR = lWheelSpdRR end<br />
local WheelSpdRR1, WheelSpdRR2 = split16(WheelSpdRR)<br />
<br />
local lLapNum = getChannel('CurrrentLap')<br />
if lLapNum ~= nil then LapNum = lLapNum end<br />
local LapNum1, LapNum2 = split16(LapNum)<br />
<br />
local lLapTime = getChannel('LapTime')<br />
if lLapTime ~= nil then LapTime = lLapTime end<br />
local LapTime1, LapTime2 = split16(LapTime*10000)<br />
<br />
local lBestTime = getChannel('Bestlap')<br />
if lBestTime ~= nil then BestTime = lBestTime end<br />
local BestTime1, BestTime2 = split16(BestTime*10000)<br />
<br />
local lLapDelta = getChannel('LapDelta')<br />
if lLapDelta ~= nil then LapDelta = lLapDelta end<br />
local LapDelt11, LapDelta2 = split16(LapDelta*1000)<br />
<br />
local lLat = getChannel('Latitude')<br />
if lLat ~= nil then Lat = lLat end<br />
local Lat1, Lat2, Lat3, Lat4 = split32(Lat*10000000)<br />
<br />
local lLong = getChannel('Longitude')<br />
if lLong ~= nil then Long = lLong end<br />
local Long1, Long2, Long3, Long4 = split32(Long*10000000)<br />
<br />
txCAN(channel, 0x50, 0, {TPS2, TPS1, RPM2, RPM1, Speed2, Speed1, BrakeP2, BrakeP1})<br />
txCAN(channel, 0x53, 0, {AccelX2, AccelX1, AccelY2, AccelY1})<br />
txCAN(channel, 0x55, 0, {ECT2, ECT1, OilP2, OilP1, Volts2, Volts1})<br />
txCAN(channel, 0x5A, 0, {LapNum2, LapNum1, LapTime2, LapTime1, BestTime2, BestTime1, LapDelta2, LapDelta1})<br />
txCAN(channel, 0x56, 0, {Lat4, Lat3, Lat2, Lat1, Long4, Long3, Long2, Long1})<br />
txCAN(channel, 0x51, 0, {WheelSpdLF2, WheelSpdLF1, WheelSpdRF2, WheelSpdRF1, WheelSpdLR2, WheelSpdLR1, WheelSpdRR2, WheelSpdRR1})<br />
end<br />
<br />
counter = 0<br />
<br />
function onTick() <br />
canChannel = 0 --0=CANChannel1; 1=CANChannel2<br />
txRVCANData(canChannel)<br />
counter = counter+1<br />
if counter > 300 then --Change this section to send custom messages to RaceVoice<br />
counter = 0<br />
txRVMessage("Hello World!", canChannel)<br />
end<br />
collectgarbage()<br />
end<br />
</pre><br />
<br />
<br />
''Be sure to change the this section in the onTick() function so that it sends your custom message to RaceVoice that you want under the conditions you want. Ie. Low tire pressures, etc. ''<br />
<pre> if counter > 300 then --Change this section to send custom messages to RaceVoice<br />
counter = 0<br />
txRVMessage("Hello World!", canChannel)<br />
end<br />
</pre><br />
''otherwise it will just keep saying Hello World! every 30 seconds. Delete that section if you don't want to send custom alerts or messages to RaceVoice.''<br />
<br />
''Note: the custom message is limited to 16 characters. Only the first 16 characters will be spoken. You can send multiple messages if needed.''<br />
<br />
==Spoof AIM data logger in order to use AIM SmartyCam alone with Race Capture ==<br />
If you want to add video with automatic data overlay, you can use an [https://www.bimmerworld.com/AiM-SmartyCam-HD-Camera-System-84-Deg-Lens.html AIM SmartyCam]. Normally this has to be connected to an AIM data logging system in order for it to get the data to overlay onto the video. <br />
We will use the CAN transmit ability of the Race Capture devices to spoof an AIM data logger and send our RCP sensor data (or RCT OBDII data) over to the AIM SmartyCam. <br />
<br />
Note: For the AIM SmartyCAM HD Rev 1 with 5 pin connector you will just need an [https://www.autosportlabs.com/product/aim-dashboard-telemetry-cable/ ASL AIM to RCP cable]. If you have an original AIM SmartyCam or SmartyCam HD Rev 2 which have 7 pin connectors, you will also need an [https://www.bimmerworld.com/AiM-4-Way-Data-Hub.html AIM Data Hub]. You will plug your 7 pin to 5 pin cable you got with your original SmartyCam or SmartyCam HDrev2 into your SmartyCam and the other end (5 pin end) into the AIM Data Hub. You would then plug your ASL AIM to RCP cable into the RCP and the AIM Data Hub. <br />
These will communicate on CAN Channel 1 with a baud rate of 1M. Make those settings in the CAN Bus settings.<br />
<br />
<pre><br />
--Created by Scott Barton of ProFormance Coaching for Autosport Labs Community<br />
tickRate = 10<br />
setTickRate(tickRate)<br />
<br />
TPS = 0<br />
RPM = 0<br />
Speed = 0<br />
Gear = 0<br />
AccelY = 0<br />
AccelX = 0<br />
ECT = 0<br />
EGT = 0<br />
Coolant = 0<br />
OilT = 0<br />
OilP = 0<br />
Volts = 0<br />
AFR = 0<br />
Fuel = 0<br />
Brake = 0<br />
BrakeP = 0<br />
Steering = 0<br />
ClutchP = 0<br />
Lat = 0<br />
Long = 0 <br />
<br />
function split16(val)<br />
return bit.band(val, 0xFF), bit.band(bit.rshift(val,8), 0xFF)<br />
end<br />
<br />
function split32(val)<br />
return bit.band(val, 0xFF), bit.band(bit.rshift(val,8), 0xFF), bit.band(bit.rshift(val,16),0xFF),bit.band(bit.rshift(val,24),0xFF)<br />
end<br />
<br />
function txSCCANData(channel)<br />
<br />
local lTPS = getChannel('TPS')<br />
if lTPS ~= nil then TPS = lTPS end<br />
local TPS1, TPS2 = split16(TPS)<br />
<br />
local lRPM = getChannel('RPM')<br />
if lRPM ~= nil then RPM = lRPM end<br />
local RPM1, RPM2 = split16(RPM)<br />
<br />
local lSpeed = getChannel('Speed')<br />
if lSpeed ~= nil then Speed = lSpeed end<br />
local Speed1, Speed2 = split16(Speed)<br />
<br />
local lAccelX = getChannel('AccelX')<br />
if lAccelX ~= nil then AccelX = lAccelX end<br />
local AccelX1, AccelX2 = split16(AccelX*100)<br />
<br />
local lAccelY = getChannel('AccelY')<br />
if lAccelY ~= nil then AccelY = lAccelY end<br />
local AccelY1, AccelY2 = split16(AccelY*100)<br />
<br />
local lECT = getChannel('EngineTemp')<br />
if lECT ~= nil then ECT = lECT end<br />
local ECT1, ECT2 = split16(ECT)<br />
<br />
local lCoolant = getChannel('Coolant')<br />
if lCoolant ~= nil then Coolant = lCoolant end<br />
local Coolant1, Coolant2 = split16(Coolant)<br />
<br />
local lEGT = getChannel('EGT')<br />
if lEGT ~= nil then EGT = lEGT end<br />
local EGT1, EGT2 = split16(EGT)<br />
<br />
local lOilT = getChannel('OilTemp')<br />
if lOilT ~= nil then OilT = lOilT end<br />
local OilT1, OilT2 = split16(OilT)<br />
<br />
local lOilP = getChannel('OilPress')<br />
if lOilP ~= nil then OilP = lOilP end<br />
local OilP1, OilP2 = split16(OilP)<br />
<br />
local lFuel = getChannel('FuelLevel')<br />
if lFuel ~= nil then Fuel = lFuel end<br />
local Fuel1, Fuel2 = split16(Fuel)<br />
<br />
local lAFR = getChannel('AFR')<br />
if lAFR ~= nil then AFR = lAFR end<br />
local AFR1, AFR2 = split16(AFR)<br />
<br />
local lVolts = getChannel('Battery')<br />
if lVolts ~= nil then Volts = lVolts end<br />
local Volts1, Volts2 = split16(Volts*10)<br />
<br />
local lBrake = getChannel('Brake_F')<br />
if lBrake ~= nil then Brake = lBrake end<br />
local Brake1, Brake2 = split16(Brake)<br />
<br />
local lBrakeP = getChannel('Brake')<br />
if lBrakeP ~= nil then BrakeP = lBrakeP end<br />
local BrakeP1, BrakeP2 = split16(BrakeP)<br />
<br />
local lClutchP = getChannel('Clutch')<br />
if lClutchP ~= nil then ClutchP = lClutchP end<br />
local ClutchP1, ClutchP2 = split16(ClutchP)<br />
<br />
local lSteering = getChannel('Steering')<br />
if lSteering ~= nil then Steering = lSteering end<br />
local Steering1, Steering2 = split16(Steering)<br />
<br />
local lGear = getChannel('Gear')<br />
if lGear ~= nil then Gear = lGear end<br />
local Gear1, Gear2 = split16(Gear)<br />
<br />
local lLapNum = getChannel('CurrrentLap')<br />
if lLapNum ~= nil then LapNum = lLapNum end<br />
local LapNum1, LapNum2 = split16(LapNum)<br />
<br />
local lLapTime = getChannel('LapTime')<br />
if lLapTime ~= nil then LapTime = lLapTime end<br />
local LapTime1, LapTime2 = split16(LapTime*10000)<br />
<br />
local lBestTime = getChannel('Bestlap')<br />
if lBestTime ~= nil then BestTime = lBestTime end<br />
local BestTime1, BestTime2 = split16(BestTime*10000)<br />
<br />
local lLapDelta = getChannel('LapDelta')<br />
if lLapDelta ~= nil then LapDelta = lLapDelta end<br />
local LapDelt11, LapDelta2 = split16(LapDelta*1000)<br />
<br />
local lLat = getChannel('Latitude')<br />
if lLat ~= nil then Lat = lLat end<br />
local Lat1, Lat2, Lat3, Lat4 = split32(Lat*10000000)<br />
<br />
local lLong = getChannel('Longitude')<br />
if lLong ~= nil then Long = lLong end<br />
local Long1, Long2, Long3, Long4 = split32(Long*10000000)<br />
<br />
txCAN(channel, 40, 0, {0, Long1, Long2, Long3, Long4})<br />
txCAN(channel, 40, 0, {1, Lat1, Lat2, Lat3, Lat4})<br />
txCAN(channel, 1056, 0, {RPM1, RPM2, Speed1, Speed2, Gear1, Gear2, Coolant1, Coolant2})<br />
txCAN(channel, 1057, 0, {ECT1, ECT2, EGT1, EGT2, OilT1, OilT2, OilP1, OilP2})<br />
txCAN(channel, 1058, 0, {Brake1, Brake2, TPS1, TPS2, BrakeP1, BrakeP2, ClutchP1, ClutchP2})<br />
txCAN(channel, 1059, 0, {Steering1, Steering2, AFR1, AFR2, AccelY1, AccelY2, AccelX1, AccelX2})<br />
txCAN(channel, 1060, 0, {Fuel1, Fuel2, Volts1, Volts2})<br />
<br />
end<br />
<br />
<br />
function onTick() <br />
txSCCANData(0) --0=CAN Channel 1; 1=CAN Channel 2<br />
collectgarbage()<br />
end<br />
</pre><br />
<br />
=Serial Port=<br />
<br />
==Read an analog sensor value and output it to the auxiliary serial port==<br />
This example reads an analog sensor and writes a string containing the value to the Auxiliary serial port. Repeats once per second.<br />
<br />
<pre><br />
--initialize Aux serial port to 115200, 8, N, 1<br />
initSer(4, 115200, 8, 0, 1)<br />
<br />
function onTick()<br />
value = getAnalog(0)<br />
writeSer(4, 'A=' ..value)<br />
end<br />
<br />
</pre><br />
<br />
==Read a line of serial data==<br />
This example reads a line of serial data and writes it to the internal RaceCapture log. <br />
* '''Note''': You can monitor the log by enabling the log polling in the script configuration view.<br />
<pre><br />
--initialize Aux serial port to 115200, 8, N, 1<br />
initSer(4, 115200, 8, 0, 1)<br />
<br />
function onTick()<br />
--read a line from the aux serial port with a 100ms timeout<br />
value = readSer(4, 100)<br />
if value ~= nil then<br />
println('read value: ' ..value)<br />
end<br />
end<br />
<br />
</pre><br />
<br />
=Demo Scripts=<br />
<br />
==RPM Sweep==<br />
<br />
This sweeps an RPM channel up and down through a pre-defined range. Edit the range at the top of the script. <br />
<br />
<pre><br />
-- 05 Jan 2016 RPM demo<br />
-- F.Mirandola - B.Picasso<br />
-- This code will show a demo RPM sweep on RaceCapturePro<br />
<br />
thrRpmLo = 3000<br />
--Low RPM threshold for change direction<br />
<br />
thrRpmHi = 10000<br />
--Hi RPM threshold for change direction<br />
incrementRpm = 300<br />
--Step between each RPM increment/decrement, will affect the speed, higher = faster<br />
<br />
-- Do not edit after this!!<br />
<br />
setTickRate(10)<br />
<br />
rpm = 0<br />
<br />
direction = 0<br />
<br />
rpmId = addChannel("RPM", 10, 0, 0, 10000)<br />
<br />
function onTick()<br />
setChannel(rpmId, rpm)<br />
<br />
if (rpm<=thrRpmHi and direction == 0 ) then rpm = rpm + incrementRpm <br />
elseif (rpm>=thrRpmLo and direction == 1 ) then rpm = rpm - incrementRpm<br />
end<br />
<br />
if (rpm>thrRpmHi) then direction = 1<br />
elseif (rpm<thrRpmLo) then direction = 0<br />
end<br />
<br />
end<br />
</pre><br />
<br />
==Simulating Laps==<br />
<br />
Here's a neat script that can simulate lap times and predicted times. We've used it to develop dashboard features for the app. Especially interesting is the use of the accelerometer to generate a bit of noise and variability in the data.<br />
<br />
<pre><br />
--Script to simulate lap and predicted times<br />
--Without needing a moving car on race track!<br />
--To use, disable Race Timing in RaceCapture/Pro configuration and<br />
--use this script<br />
etid = addChannel("ElapsedTime", 10, 4)<br />
ltid = addChannel("LapTime", 10, 4)<br />
ptid = addChannel("PredTime", 10, 4)<br />
clid = addChannel("CurrentLap", 10, 0)<br />
lcid = addChannel("LapCount", 10, 0)<br />
<br />
et = 0 --ElapsedTime value<br />
lt = 0 --LapTime value<br />
pt = 0 --PredTime value<br />
cl = 0 --CurrentLap value<br />
lc = 0 --LapCount value<br />
<br />
targetTime = 0.5 --target time for our fake laps<br />
<br />
setTickRate(10)<br />
function onTick()<br />
<br />
local rnd = getImu(0) --use the IMU to create a random-ish number<br />
<br />
--simulate a predicted time if we've already<br />
--completed a lap<br />
--rnd value makes the predicted time jiggle<br />
if lc > 0 then <br />
pt = targetTime + rnd<br />
setChannel(ptid, pt)<br />
end<br />
<br />
--increment elapsed time by 1/10 second<br />
et = et + 0.00166666667<br />
setChannel(etid, et)<br />
<br />
if et > targetTime + rnd then<br />
lt = et<br />
setChannel(ltid, lt)<br />
et = 0<br />
cl = cl + 1<br />
setChannel(clid, cl)<br />
if cl > 1 then<br />
lc = lc + 1<br />
setChannel(lcid, lc)<br />
end<br />
end<br />
<br />
<br />
end<br />
</pre></div>Brentphttps://wiki.autosportlabs.com/index.php?title=RaceCapture_App_User%27s_Guide&diff=10031RaceCapture App User's Guide2024-01-22T17:41:22Z<p>Brentp: /* Data Visualization */</p>
<hr />
<div>[[image:racecapture_app_home_page.jpg|800px]]<br />
<br />
=Overview=<br />
==About the guide==<br />
This is a comprehensive user guide that contains complete instructions about the services and functions of the RaceCapture app. The app is designed to be easy to use across multiple devices. The RaceCapture app allows you to integrate your devices with the RaceCapture modules and get instant access to the endless functionalities of RaceCapture modules. Using this app, customers can access all the features of the RaceCapture modules, monitor, store, and analyze the real-time data, and users can also provide customized commands to the RaceCapture modules using Lua scripts. Further details about the app are given in the respective sections.<br><br />
<br />
'''Note:''' It is recommended that this guide be read thoroughly to familiarize with the RaceCapture app, and perform tasks efficiently and effectively.<br />
<br />
==Navigation==<br />
===Home View===<br />
Upon launching the Racecapture app, the Home View serves as the starting point, presenting users with three primary icon options:<br />
* Analysis<br />
* Dashboard<br />
* Setup<br />
<br />
===Navigate through the app===<br />
[[File:Navigation .gif|800px]]<br><br />
<br />
<br />
To explore additional functionalities of the app, users can access the navigation menu by tapping the hamburger button located at the top left corner. Upon clicking the hamburger button, a tab bar appears on the left, and Users can switch between different sections by tapping on the respective icons on this tab bar.<br />
<br />
==Compatible OS==<br />
Racecapture app is compatible with all the advanced operating systems. However, it is not functional on a few old versions of tablets and on Windows XP, 7, and 8 due to their outdated video drivers.<br />
* '''Not sure what tablet to use? ''' [[RaceCapture_App_recommended_tablets|See our list of recommended tablets]]<br />
==How to Install==<br />
Installing the recapture app is simple and straightforward. You simply need to download the app and install it. No complicated steps are required. The download links and installation instructions for desktop and mobile devices are given below.<br />
===On Desktop===<br />
* '''Download :'''For desktop, download the recapture app from the following link [https://podium.live/software Windows and OSX]<br />
* '''Installation in Windows 10/11:''' Windows 10/11 has built in USB drivers that support Recapture; no separate driver installation needed.<br />
* '''Installation in XP, 7, and 8:''' In Window XP,7, & 8 will require USB drivers for installation. Users can download USB driver from following link "[[RaceCapture-Track_MK2#Microsoft_Windows_7.2F8_Driver_installation|Click here.]]"<br />
===On Mobile===<br />
[[image:google_play_amazon_itunes_app_store.png]]<br><br />
<br />
Mobile user (Android/iOS) can simply install form the link given below.<br />
<br />
* [https://play.google.com/store/apps/details?id=com.autosportlabs.racecapture&hl=en Google Play]<br />
* [https://www.amazon.com/Autosport-Labs-Race-Capture/dp/B016ZJM7GE Amazon App Store]<br />
* [https://itunes.apple.com/us/app/racecapture/id1162797255?mt=8 iTunes]<br />
===On Raspberry Pi===<br />
[[image:Racecapture_raspberry_pi.jpg|400px]]<br />
<br />
More advanced users can run the RaceCapture App on a Raspberry pi for a more dedicated dashboard experience. <br />
* Learn more in the [[RaceCapture_on_Raspberry_Pi|Raspberry Pi Guide]]<br />
==Icons Used in Manual==<br />
Throughout this document, the pictograms below are used to underline points or important notions.<br />
<br />
{| class="wikitable"<br />
|+ <br />
|-<br />
! Icon !! Description<br />
|-<br />
| <br />
[[File:Important Symbol.png|20px|center]]<br />
|| Important information<br />
|-<br />
| <br />
[[File:Good to Know.png|20px|center]]<br />
|| Good to Know<br />
|-<br />
| <br />
[[File:Mandatory Action.jpg|20px|center]]<br />
|| Mandatory action <br />
|}<br />
==Intellectual Property and Usage Rights==<br />
The information contained in this document is the intellectual property of Autosport Labs, and No one can use it without the prior permission of Autosport Labs.<br />
==Help==<br />
For additional help, we encourage you to visit one of our support communities:<br />
<br />
* [https://discord.gg/JbKUyFw Discord Server]<br />
* [https://forum.autosportlabs.com Forums]<br />
* [https://www.facebook.com/groups/1288770887817789/ Facebook group]<br />
<br />
=Setup Wizard= <br />
[[image:racecapture_app_first_time_setup.gif|800px]]<br><br />
<br />
Upon running the RaceCapture app for the first time, you are presented with a first time setup wizard. Follow the steps given below to configure your device..[[File:Mandatory Action.jpg|20px]] <br><br />
'''Welcome Page:'''<br />
* Click 'Next' on the welcome page to proceed to the device setup.<br><br />
<br />
<br />
'''Device Selection:'''<br />
* Choose your RaceCapture device from the provided list.<br />
* Click 'Next' to move to the connection page.<br><br />
<br />
<br />
'''Connection Setup:'''<br />
* Connect your system to the USB port.<br />
* Wait for the connection to establish; your device will be recognized once connected.<br><br />
<br />
<br />
'''Note'''[[File:Good to Know.png|20px]]: You can access first time setup again by navigating to the main Setup page and selecting First time setup (as shown in the instruction below)<br><br><br />
[[File:First Time setup.gif|800px]]<br><br />
<br />
=System Status=<br />
Access the system status pages through the top left menu. The system status offers information on GPS status, current WiFi state and more. You can also get a copy of the RaceCapture application log for diagnostics.<br />
<br />
[[image:racecapture_app_status_page.jpg|800px]]<br />
<br />
=Dashboard Mode=<br />
To view your dashboard, press the dashboard option on the main screen.<br />
<br />
[[image:racecapture_app_dashboard_screen.gif|800px]]<br />
<br />
==Navigating Dashboard Pages==<br />
Multiple dashboard pages are supported. To move to a different page:<br />
* Swipe left or right on the screen<br />
* Press the left or right arrow buttons at the bottom of the screen<br />
* Press the left/right keyboard keys<br />
<br />
[[image:racecapture_app_dashboard_navigation.gif|800px]]<br />
<br />
==Importing a new dashboard==<br />
[[image:racecapture_app_import_dashboard.gif|800px]]<br><br />
<br />
To customize your experience, you can import additional dashboard pages either from the system-provided templates or from those created by fellow racers. Follow the steps below to import a new dashboard:<br />
* Click on the gear icon located at the top right corner, and select the rectangular 'Add' icon.<br />
* In the 'Add' icon, you'll find three options:<br />
**System<br />
**Your<br />
**Shared<br />
* Choose your preferred option and scroll down to explore the available dashboard templates.<br />
* Press 'Select' next to the desired dashboard template to import it.<br />
<br />
By following these steps, you can easily enhance your dashboard with a variety of templates tailored to your preferences.<br />
<br />
==Customizing a gauge==<br />
[[image:racecapture_customize_gauge.gif|800px]]<br><br />
<br />
RaceCapture app provides, plenty of options for customizing gauges, and designing your own attractive gauges.<br />
<br />
To edit a gauge:<br />
* Unlock the dashboard<br />
* Press the gear button on the gauge to customize its settings. Depending on the gauge, you can edit:<br />
** Display channel<br />
** Color<br />
** Min/Max range<br />
** Precision (number of digits to the right of the decimal point)<br />
** Other settings depending on the gauge<br />
<br />
===Customizing Analog and Digital Gauges===<br />
For Analog and Digital gauges, the Racepcapture app provides advanced options for customizing all the features of the Analog and Digital gauges ranging from the design of gauge, dial, color, and background, to font size, markers size, and precision using it using its super flexible analog and digital gauge editor.<br />
<br />
'''Analog Gauges'''<br><br />
<br />
[[File:Customizing Analog Gauges (3).gif|800px]]<br><br />
<br />
For customizing Analog gauges, follow the instructions given below<br />
* Unlock the dashboard<br />
* Press the gear button on the gauge and select the edit option<br />
* From the top bar, select the Channel and change the channel as per your requirement.<br />
* After selecting channel, select the setting option at the top bar and select Analog Gauge editor.<br />
* In Analog Gauge editor, there are tons of customizable options, with a handy preview area.<br />
'''Note :''' For more information, [https://www.autosportlabs.com/racecapture-app-2-12-0-next-generation-analog-gauges/ Click here]<br />
<br />
'''Digital Gauges'''<br><br />
<br />
[[File:Customizing Digital Gauges.gif|800px]]<br />
For customizing Digital gauges, follow the instructions given below<br />
* Unlock the dashboard<br />
* Press the gear button on the gauge and select the edit option<br />
* From the top bar, select the Channel and change the channel as per your requirement.<br />
* After selecting channel, select the setting option at the top bar and select Digital Gauge editor.<br />
* In Digital Gauge editor, there numerous customizable options available<br />
'''Note :''' For more information, [https://www.autosportlabs.com/racecapture-app-2-13-0-next-gen-digital-gauges/ Click here]<br />
<br />
==Dashboard Alerts==<br />
You can create dashboard alerts for any channel.<br />
<br />
[[image:racecapture_app_gauge_alerts.gif|800px]]<br />
<br />
There are two ways to create a gauge alert:<br />
# Use the central alerts editor<br />
# Edit alerts from gauges<br />
<br />
===Use the central alerts editor===<br />
[[File:Dashboard Alert .gif|800px]]<br />
* Access the dashboard settings by clicking on the gear icon.<br />
* Select More Settings and navigate to the Alerts tab<br />
* Select the channel you wish to create alerts for, or press the (+) icon to create a new alert<br />
* In the Alert rule tab, users can configure the alert active range, alert active after time, alert deactivate after time, and can also select the notification methods (Popup "Alert" or "Set Gauge color"). <br><br />
<br />
'''Customize Notification'''<br><br />
<br />
[[File:Popup Notification.gif|800px]]<br />
* '''Popup Alert notification:''' users can customize the message and color of alert by clicking on " add new action> selecting Popup: "Alert" > and change the message and color as per their need. <br />
* '''In Set Gauge color:''' users can customize the color of gauge by clicking on " add new action> selecting Set Gauge Color > Color<br />
<br />
===Edit alerts from gauges<br>===<br />
<br />
[[File:Dashboard Alert using gauge edit.gif|800px]]<br />
* Edit a gauge<br />
* Switch to the Channels tab and press the customization gear icon for the selected channel<br />
* Switch to the Alerts tab and customize your alerts<br />
<br />
==Customizing your dashboard==<br />
[[image:racecapture_app_dashboard_designer.gif|800px]]<br><br />
<br />
Users have the flexibility to modify an existing dashboard or create a new one from scratch by firstly unlocking the dashboard page and then adding/modifying gauges to create the design they want.<br><br />
<br />
Users can add new gauges by following the steps given below:<br />
# Unlock the dashboard page by unlocking the gear icon present at the top right corner<br />
# After unlocking the gauge icon, open the gauge icon by clicking the gear icon.<br />
# In the add gauge option, select the gauge type, channel type, and configure the gauge setting as per your requirements.<br />
<br />
'''Note :''' For create a data-driven color-changing dashboard background [https://www.youtube.com/watch?v=vyo2WoF1iHo&t=1s Check Here]<br />
<br />
==Saving your dashboard==<br />
[[image:racecapture_app_save_dashboard.gif|800px]]<br><br />
<br />
Once you have customized your dashboard to your liking, you can save it to the cloud, allowing easy sharing with other racers or access from different devices. Follow these steps to save your dashboard:<br />
<br />
* Click the gear icon at the top right corner to unlock the dashboard.<br />
* Click the save icon.<br />
* Under the "Create New" tab, press "New."<br />
* Provide a name for your dashboard and save it.<br />
By following these steps, your customized dashboard will be saved to the cloud, accessible for sharing and convenient use across various devices.<br />
<br />
==Predictive Lap timing==<br />
RaceCapture/Pro offers predictive lap timing, which relies on a robust track detection system leveraging hundreds of track maps worldwide. <br />
<br />
[[image:racecapture_app_dashboard_predictive_timer.gif|800px]]<br />
<br />
===How it works===<br />
* When GPS receives a lock, RaceCapture will search for a nearby track. <br />
* If a track is detected with one configuration, it is automatically selected.<br />
* If a track is detected with multiple configurations, the RaceCapture app will prompt you for which configuration you're using.<br />
* If no tracks are detected nearby, the RaceCapture app will offer the ability to create a track on the spot. <br />
** If you're not able to immediately create the track, you can do so later under '''Setup'''.<br />
* '''Track not found?''' [[RaceTracks|Submit the track to us]] and we'll get it into our online database.<br />
<br />
[[image:RaceCapture_create_custom_track.png|640px]]<br />
<br />
=Analysis=<br />
The RaceCapture app automatically record users session when triggered by the threshold they have configure under '''Setup / Automatic Control'''<br><br />
<br />
'''Note''': The system default is to trigger on Speed<br />
<br />
To view the data, enter the '''Analysis''' mode and load an existing session. The session will be automatically named with the local track or with a timestamp. <br />
<br />
'''Loading a Session:'''<br><br />
<br />
[[image:racecapture_app_analysis_load_session.gif|800px]]<br><br />
<br />
Users can load sessions by:<br />
<br />
* Pressing the (+) button at the bottom of the pop-out list of laps.<br />
* Alternatively, press the gear icon on the dashboard and select 'Sessions'.<br />
<br />
'''Importing a Session:'''<br><br><br />
[[File:Importing log files...gif|800px]]<br />
<br />
For advanced analysis, users can import log files of sessions. For importing sessions, users can follow the steps given below.<br />
* On the home screen, click on the 'Analysis' option.<br />
* Press the (+) button at the bottom of the pop-out list of laps.<br />
* A new tab will open; in this new tab, select the 'Import Log' option.<br />
* Under 'Import Log,' press the 'Select' option under Datalog file and import the log file.<br />
<br />
'''Note:''' Users can also import datalog video files by clicking the 'Select' option under Datalog Video file.<br />
<br />
==Navigating data==<br />
Racepcapture app provides plenty of flexible options for navigating data.<br />
===Cursor across line chart===<br />
Users can swipe across the line chart to correlate different points with the position on the track map.<br />
===Playback Control===<br />
User can use the controls at the bottom to automatically play back the selected lap(s). Using the playback control option, user can also control the speed of laps.<br><br />
<br />
Swipe across the data to compare various points correlated with the position on the track map.<br />
<br />
'''Zooming'''<br />
<br />
Users can zoom on the line charts data using a two-finger pinch gesture, or using the mouse scroll wheel or your laptop's trackpad scroll gesture. For the map, users can also zoom in, and zoom-out using the designated buttons present at the top right corner.<br />
<br />
==Reviewing Laps==<br />
Within the RaceCapture app, users have the ability to conduct a meticulous review, thorough analysis, and comprehensive comparison of laps for performance evaluation. This section guides you through various tools and features available for a detailed and comprehensive approach to lap analysis<br />
<br />
===Performance Metrics===<br />
Racecapture app provides users with plenty of performance metrics options to comprehensively analyze the performance of your cars and optimize your driving strategy. The table below provides a detailed explanation of a few important available metric:<br />
<br />
{| class="wikitable"<br />
|+ Performance Metrics<br />
|-<br />
! Matric !! Description<br />
|-<br />
| AccelX, AccelY, AccelZ || Lateral, Longitudinal & Vertical acceleration in X, Y and Z axis<br />
|-<br />
| Battery || Battery voltage level<br />
|-<br />
| Brake || Brake position <br />
|-<br />
| CurrentLap || Current lap number <br />
|-<br />
| ElapsedTime || Time elapsed since the start of the session<br />
|-<br />
| EngineTemp || Temperature of Engine<br />
|-<br />
| GPSQual || GPS quality status<br />
|-<br />
| Gear || Current gear position<br />
|-<br />
| LapCount || Total laps completed<br />
|-<br />
| LapTime || Time taken for the current lap<br />
|-<br />
| MAP || Manifold absolute pressure<br />
|-<br />
| MaxRpm || Maximum RPM reached<br />
|-<br />
| OilPress || Engine oil pressure<br />
|-<br />
| Pitch || Angular orientation around the X-axis<br />
|-<br />
| PredTime || Predicted lap time based on the current performance<br />
|-<br />
| RPM || Engine revolutions per minute<br />
|-<br />
| Roll || Angular orientation around the Y-axis<br />
|-<br />
| ShiftLight || Status of the shift light<br />
|-<br />
| SessionTime || Total time elapsed in the current session<br />
|-<br />
| TPMSVoltLF, TPMSVoltLR, TPMSVoltRF, & TPMSVoltRR || Tire Pressure Monitoring System voltages of Left front, Left Rear, Right front & Right rear tires respectively<br />
|-<br />
| TPressLF, TPressLR, TPressRF, & TPressRR || Tires Pressure of Left front, Left Rear, Right front & Right rear tires respectively<br />
|-<br />
| TireITmpLF, TireITmpLR, TireITmpRF, & TireTmpRR || Internal tires temperature of Left front, Left Rear, Right front & Right rear tires respectively<br />
|-<br />
| Utc || Coordinated Universal Time<br />
|-<br />
|}<br />
<br />
In addition to the previously mentioned metrics, offers a diverse range of performance metrics for a comprehensive analysis of your vehicle's dynamics. These include:<br><br />
<br />
'''Position and Timing Metrics:'''<br />
* CurrentLap<br />
* Distance<br />
* SessionTime<br />
* TnSlapTime<br />
<br />
'''Geospatial Metrics:'''<br />
* Latitude<br />
* Longitude<br />
* GPSQual (GPS Quality)<br />
* GPSSATS (Number of GPS Satellites)<br><br />
<br />
'''Competition Metrics:'''<br />
* CompAhead (Comparison Ahead)<br />
* CompBehind (Comparison Behind)<br />
* CompFlag (Competition Flag)<br />
* GapAhead<br />
* LapsAhead<br />
* LapsBehind<br />
<br />
'''Dynamic Metrics:'''<br />
* GsumMax (Maximum G-force)<br />
* GsumPct (Percentage of Maximum G-force)<br />
* Interval<br />
<br />
'''Predictive Metrics:'''<br />
* PredTime (Predicted Lap Time)<br />
<br />
Each metric provides a unique perspective on your vehicle's performance, allowing for a nuanced analysis to refine your racing strategy.<br />
<br />
====Selecting Performance Metrics====<br />
[[File:Metrice.gif|800px]]<br />
<br />
To choose and display specific performance metrics on your dashboard, follow these steps:<br />
'''<br />
* Unlock the gear icon present at the top right corner<br />
* Click on the gear icon and select the add gauge option<br />
* Pick the gauge type that suits your analysis needs (e.g., digital, analog, linear chart).<br />
* Within the chosen gauge type, select the "Channel" representing the performance metric you want to analyze.<br />
* Fine-tune the settings to align with your requirements. Adjust parameters such as scale, range, or units based on your preferences.<br />
* Save your gauge configuration to apply the selected performance metrics to your dashboard.<br />
<br><br />
By following these steps, you can tailor your dashboard to showcase the specific performance metrics that matter most to your racing analysis.<br />
<br />
===Data Visualization===<br />
Racecapture app provides innovative data visualization features, empowering users with advanced features for in-depth analysis. The table below provides a detailed explanation of available gauges:<br />
{| class="wikitable"<br />
|+ Data Visualization Options<br />
|-<br />
! Gauge Type !! Description<br />
|-<br />
| Analog || Visualize data with analog-style gauges for a real-time, dynamic display.<br />
|-<br />
| Bargraph || Use bar graphs to represent data discretely, providing a clear insight of data.<br />
|-<br />
| Bitmap || Display custom images or icons to enhance the visual representation of your data.<br />
|-<br />
| Digital || Showcase numerical data in a clear and precise digital format for quick reference.<br />
|-<br />
| Heat Chart || Gain insights into data patterns using color gradients to represent varying intensities.<br />
|-<br />
| Histogram || Understand data distribution through histogram charts, ideal for analyzing frequency.<br />
|-<br />
| LapTime || Focus on lap-specific metrics with dedicated gauges for lap time analysis.<br />
|-<br />
| Line Chart || Track trends and variations over time using line charts for comprehensive data analysis<br />
|-<br />
| Overview || Get a holistic view of your racing data with overview gauges summarizing key metrics.<br />
|-<br />
| Raw Channel || Provides an unfiltered analysis of individual parameters.<br />
|-<br />
| Scatter Plot || Identify correlations and relationships between two variables using scatter plots.<br />
|-<br />
| Thermal Image || Visualize temperature variations with thermal image gauges for heat-sensitive data.<br />
|-<br />
| Time Delta || Analyze time differentials between specific data points using time delta gauges.<br />
|-<br />
| Time Gap || Evaluate time gaps for strategic decision-making.<br />
|-<br />
| Track Map || Navigate your racing data on a track map, providing a spatial context to your analysis.<br />
|-<br />
| Video || Integrate video data seamlessly with dedicated video gauges for synchronized analysis.<br />
|}<br />
<br />
Users can explore the above mentioned gauge types to enhance their data visualization experience and get valuable insights.<br />
<br />
====Selecting Gauge Type====<br />
[[File:Data Visualization.gif|800px]]<br><br />
<br />
Users can select the desired gauge type by following the steps given below:<br />
* Unlock the gear icon present at the top right corner<br />
* Click on the gear icon and select the add gauge option<br />
* Pick the gauge type that suits your analysis needs (e.g., digital, analog, heart chart).<br />
<br />
===Customizing Views===<br />
The RaceCapture app provides numerous customization options, allowing users to configure the app interface as per their preferences. Explore the key customization features below:<br />
<br />
'''Gauge Customization'''<br />
* Size, Shape, Type: Modify the size, shape, and type of available gauges to suit your visual preferences.<br />
* Color and Appearance: Personalize the color scheme and appearance of each gauge for a customized display.<br />
<br />
'''Gauge Placement'''<br />
* Location Customization: Users can move gauges to their preferred locations on the display<br />
* Position Setting: Set gauges precisely where you need them for an intuitive and efficient layout.<br />
<br />
'''Layer Management'''<br />
* Bring to Front or Send to Back: Adjust the layering of gauges with options to raise or lower their appearance.<br />
* Raise to Top or Lower to Bottom: Adjust the visibility of gauges by bringing them to the forefront or placing them at the back.<br />
<br />
'''Zoom Functionality'''<br />
* Zoom In & Zoom Out: For enhancing focus, users can Zoom-in and Zoom out gauge as per requirement.<br />
<br />
'''Alert Customization'''<br />
* Set Custom Alerts: Define alerts based on specific conditions or events during your race.<br />
* Threshold Adjustments: Configured alert thresholds to match your required value.<br />
<br />
'''Advanced Features Exploration'''<br />
* Video Integration: Seamlessly integrate video data for synchronized analysis with racing telemetry.<br />
* Thermal Imaging: Users can use the advance feature of thermal imaging for a more comprehensive understanding of your racing data.<br />
<br />
'''Regular Upgradation'''<br />
* Continuous Refinement: Users can regularly assess and fine-tune their dashboard layout and configurations based on changing preferences and real-time racing needs.<br />
<br />
User can experiment with different configurations to find the setup that enhances their racing strategy and overall performance.<br />
<br />
===Comparative Analysis===<br />
<br />
RaceCapture app also provides advance comparative analysis options. If the data contains lap times, the laps will be shown in the dropdown list on the right. Select the laps you wish to compare; users can compare up to 4 laps at once from the same session or different sessions.<br />
<br />
==Selecting time vs distance==<br />
You can switch between time and distance data comparison by accessing the chart options, or pressing the -> or clock icon in the line chart.<br />
<br />
==Reviewing raw data==<br />
If your data contains no laps, such as data from a static test or dyno pull, the data will be present in one entry under the loaded session. Select this entry to view the data. The RaceCapture app will auto-select the '''Time''' dimension if it detects no significant distance traveled within the data.<br />
<br />
==Comparing laps / runs between sessions(Comparative Analysis)==<br />
You can compare data between sessions if they are in a coinciding location - just load multiple sessions and select laps between those sessions.<br />
<br />
==Advanced Analysis Tools==<br />
<br />
==Exporting Data==<br />
You can export your sessions from your list of saved sessions.<br />
<br />
===Android===<br />
* Press the gear icon to access your session list<br />
* Select the session you wish to export - Android will let you save it to a file, share to email, or any other app that accepts files.<br />
* '''Note:''' - if you save it to your local device, you can download it to your computer using a USB cable when your Android device is set up in File Transfer mode<br />
<br />
===iOS===<br />
* Press the gear icon to access your session list<br />
* Export this to your local iOS device storage. <br />
* Connect your iOS device to your computer using a USB cable. <br />
* Access the iOS device using the iTunes file sharing capability. We recommend [http://www.i-funbox.com/en/index.html iFunBox] as an easy to use tool.<br />
* Copy the exported log file from your iOS device to your computer.<br />
<br />
===Importing to 3rd party software===<br />
The RaceCapture log file format is plain CSV, which can be imported into 3rd party software. <br />
<br />
* '''RaceRender''' provides native support for the RaceCapture log file format. See the [[RaceCapture_RaceRender_Guide|exporting to RaceRender guide]].<br />
* '''DashWare''' has been used by RaceCapture customers - Rowan Hick has a write-up on [https://www.rowanhick.com/2016/01/07/racecapture-pro-dashware-win Dashware integration].<br />
<br />
=System Setup=<br />
You can configure all of RaceCapture's options under Setup. <br />
<br />
When the RaceCapture app detects the connected hardware, it will read the current setup from the device.<br />
* The setup information is presented as a series of pages, by topic. <br />
* When you change something on a setup page, you'll need to '''Write''' the changes back to the RaceCapture device before they take effect.<br />
<br />
[[Image:racecapture_setup_buttons.png]]<br />
<br />
==Explanation of buttons==<br />
* '''Save''': Save the current RaceCapture setup to a file, for backup.<br />
* '''Open''': Load a previously saved setup file. <br />
* '''Read''': Read the current setup from the RaceCapture device. <br />
* '''Write''': Writes any updated changes back to the RaceCapture device. '''Note: when you see the write button glowing / pulsing, it means there are pending changes to write back to the RaceCapture device'''<br />
<br />
==Race Tracks==<br />
On the Race Tracks page you can create a custom track, which will be included in the library of track maps for automatic detection. To create a custom track, turn off 'Automatic race track detection' and then press the add (+) button. You will be presented with an option to create a circuit or Autocross (point-point) style course. Follow the on-screen instructions to create your track.<br />
<br />
[[image:RaceCapture_select_track_type.png|640px]]<br />
<br />
==GPS==<br />
The GPS page allows you to adjust the GPS sample rate and enable/disable various channels. <br />
* '''Note:''' We highly recommend you keep the default channels enabled for proper operation of analysis and lap timing.<br />
* 10Hz is the recommended sample rate for the best balance of performance / accuracy. [[RaceCapturePro2_GPS|Getting the best GPS performance]]<br />
<br />
==Race Timing==<br />
These enable the lap timer and predictive lap timer. Leave these 'on' to enable these features.<br />
<br />
==Analog Sensors==<br />
Here you can configure and calibrate your analog sensors. <br />
<br />
[[file:racecapture_app_setup_analog_sensors.jpg|800px]]<br />
<br />
==Pulse/RPM sensors==<br />
Here you can configure and calibrate RPM and pulse-type sensors, such as wheel speed. <br />
<br />
[[file:racecapture_app_setup_pulse_rpm_sensors.jpg|800px]]<br />
<br />
==Digital In/Out==<br />
Here you can configure the General Purpose Input/Outputs (GPIOs) for your RaceCapture system. <br />
<br />
[[file:racecapture_app_setup_gpio_sensors.jpg|800px]]<br />
<br />
==Accel / Gyro==<br />
The recommended mounting orientation for RaceCapture is square with the chassis, with the harness connectors facing the front of the vehicle.<br />
* You can re-map channels by re-assigning the physical axis to the mapped channel.<br />
* Once defined, you can calibrate the accelerometer + gyro by pressing the calibrate button, and then pressing the '''write''' button to write the calibration back to RaceCapture.<br />
<br />
[[image:racecapture_app_setup_accel_gyro_sensors.jpg|800px]]<br />
<br />
==CAN bus==<br />
To enable CAN bus communications, set the CAN bus setting to '''ON'''. <br />
CAN bus baud rates are configurable; common rates are 250K, 500K and 1MB. RaceCapture defaults to:<br />
* 500K for CAN1, which is common for OEM and aftermarket ECUs<br />
* 1MB for CAN2, which matches the standard for our CAN bus accessories.<br />
<br />
[[image:racecapture_setup_can_bus_network.jpg|800px]]<br />
<br />
==CAN bus mapping==<br />
RaceCapture offers a powerful CAN bus mapping capability, allowing you to map CAN bus data frames to real-world sensor values. <br />
<br />
See our comprehensive guide on [[CAN_Bus_Integration|Using and mapping CAN bus sensor data]]<br />
<br />
[[image:racecapture_app_can_bus_mapping.jpg|800px]]<br />
<br />
==OBDII==<br />
You can select from a standard list of OBDII channels on the OBDII configuration screen. <br />
<br />
[[image:racecapture_app_setup_obdii.jpg|800px]]<br />
<br />
===Selecting sample rates===<br />
For channels that require a faster response rate, like RPM and TPS, we recommend 10, 25 or 50Hz. More slowly changing channels like EngineTemperature should be set to 1 or 5Hz.<br />
<br />
* '''Note about unsupported channels:''' If your ECU does not support a channel, the value will remain at 0. RaceCapture will time-out waiting for a response from the ECU, which will affect the performance of other channels. We recommend removing all unsupported channels to ensure optimal OBDII performance.<br />
<br />
==Automatic Control==<br />
<br />
[[image:racecapture_setup_automatic_control.jpg|800px]]<br />
<br />
===Wireless===<br />
You can configure RaceCapture's WiFi for both '''Access Point''' and '''Client''' mode.<br />
<br />
[[image:racecapture_app_setup_wireless.jpg|800px]]<br />
<br />
<br />
===Client Mode===<br />
To enable client mode, specify the SSID and password for the network you wish to connect to and turn the client mode switch to '''on'''<br />
<br />
===Access Point Mode===<br />
To enable the RaceCapture access point, specify the SSID and a password.<br />
* '''Note:''' If specified, passwords must be minimum of 8 characters. Leave the field blank to create an open network.<br />
<br />
==Real-time Telemetry==<br />
With the real-time telemetry feature you can live-stream your data to [http://podium.live Podium] so you can compare and share laps and runs with your friends. Enable by setting your Podium Device ID provided by your [http://podium.live Podium Account]<br />
<br />
See the [[RaceCapture_real_time_telemetry|RaceCapture real time telemetry setup guide]] for details on setting up this feature.<br />
<br />
[[image:racecapture_app_setup_telemetry.jpg|800px]]<br />
<br />
[[image:podium.png|thumb|200px]]<br />
<br />
http://i.imgur.com/WzHsdU1.gif<br />
<br />
==Scripting==<br />
You can customize the behavior of your system by writing small Lua scripts; you can do things like:<br />
* Create live math (virtual) channels that are calculated on the fly<br />
* Broadcast Custom CAN bus messages<br />
* Control a fan based on the temperature of an analog channel (e.g. EngineTemp)<br />
See the [[RaceCapturePro_Lua_Scripting|Lua scripting guide]] for a complete how-to, including helpful examples.<br />
<br />
[[image:racecapture_app_setup_lua_scripting.jpg|800px]]<br />
<br />
===Diagnostic Logs===<br />
To view the log messages provided by the RaceCapture unit, you can enable the '''Poll log''' check box. You can copy the current log to the clipboard by pressing the '''Copy''' button.<br />
* '''Note:''' These logs are useful for diagnosing issues with your RaceCapture unit, as well as seeing messages printed by your Lua script.<br />
<br />
==Firmware==<br />
Here you can update your system's firmware, perform a factory reset, which restores the system to its original settings, or perform a reboot of the unit without needing to do a power-cycle. <br />
* '''Note:''' Before updating your firmware, be sure to save your current configuration to a file. <br />
<br />
[[file:racecapture_app_setup_firmware.jpg|800px]]<br />
<br />
=Troubleshooting=<br />
==Recovering from mis-configured WiFi or Bluetooth==<br />
If you're unable to connect via mobile due to a Wireless configuration issue - for example:<br />
* You forgot the password you set for RaceCapture's Access Point or Bluetooth link<br />
* If RaceCapture's WiFi client needs to be re-configured for a new WiFi network<br />
<br />
You can recover by re-configuring RaceCatpure's WiFi settings via the USB connection and the Windows or OSX app. <br />
<br />
Steps to recover:<br />
* Launch the RaceCapture app on Windows or OSX<br />
* Connect RaceCapture via USB<br />
* Allow the software to connect and read the configuration<br />
* Under Setup, adjust the WiFi or Bluetooth settings as needed<br />
* Write the configuration back to RaceCapture<br />
<br />
Once you update the settings, it's recommended you test the WiFi connection using your mobile device while still connected over USB so you can further adjust settings as needed.<br />
<br />
=Extra Information=<br />
==Microsoft Windows 7/8 Driver installation==<br />
* Download and unzip drivers: [https://autosportlabs-software.s3-us-west-2.amazonaws.com/RaceCapturePro_drivers_winXPVista7_V2.zip Windows XP/Vista/7/8 Drivers V2]<br />
** '''Note for Windows 8 users''' - These drivers are unsigned. You will need to disable the driver signing requirement for Windows 8, or upgrade to Windows 10. [https://learn.sparkfun.com/tutorials/disabling-driver-signature-on-windows-8/disabling-signed-driver-enforcement-on-windows-8 Instructions]<br />
*** [http://www.howtogeek.com/167723/how-to-disable-driver-signature-verification-on-64-bit-windows-8.1-so-that-you-can-install-unsigned-drivers/ Win8 64bit unsigned driver instructions]<br />
* Plug RaceCapture/Pro in to the computer. <br />
* If prompted to install a driver, direct Windows to the folder where you unzipped the RaceCapture/Pro drivers.<br />
* If not prompted, manually update driver:<br />
** Open Windows Device Manager and find the '''Ports (COM and LPT)''' section. RaceCapture/Pro should be listed there, possibly with a yellow (!) over the icon. <br />
** Right click and select 'Update Driver'.<br />
** Follow the instructions and direct Windows to the folder where you unzipped the RaceCapture/Pro drivers.</div>Brentphttps://wiki.autosportlabs.com/index.php?title=RaceCapture_App_User%27s_Guide&diff=10030RaceCapture App User's Guide2024-01-22T17:40:12Z<p>Brentp: /* Performance Metrics */</p>
<hr />
<div>[[image:racecapture_app_home_page.jpg|800px]]<br />
<br />
=Overview=<br />
==About the guide==<br />
This is a comprehensive user guide that contains complete instructions about the services and functions of the RaceCapture app. The app is designed to be easy to use across multiple devices. The RaceCapture app allows you to integrate your devices with the RaceCapture modules and get instant access to the endless functionalities of RaceCapture modules. Using this app, customers can access all the features of the RaceCapture modules, monitor, store, and analyze the real-time data, and users can also provide customized commands to the RaceCapture modules using Lua scripts. Further details about the app are given in the respective sections.<br><br />
<br />
'''Note:''' It is recommended that this guide be read thoroughly to familiarize with the RaceCapture app, and perform tasks efficiently and effectively.<br />
<br />
==Navigation==<br />
===Home View===<br />
Upon launching the Racecapture app, the Home View serves as the starting point, presenting users with three primary icon options:<br />
* Analysis<br />
* Dashboard<br />
* Setup<br />
<br />
===Navigate through the app===<br />
[[File:Navigation .gif|800px]]<br><br />
<br />
<br />
To explore additional functionalities of the app, users can access the navigation menu by tapping the hamburger button located at the top left corner. Upon clicking the hamburger button, a tab bar appears on the left, and Users can switch between different sections by tapping on the respective icons on this tab bar.<br />
<br />
==Compatible OS==<br />
Racecapture app is compatible with all the advanced operating systems. However, it is not functional on a few old versions of tablets and on Windows XP, 7, and 8 due to their outdated video drivers.<br />
* '''Not sure what tablet to use? ''' [[RaceCapture_App_recommended_tablets|See our list of recommended tablets]]<br />
==How to Install==<br />
Installing the recapture app is simple and straightforward. You simply need to download the app and install it. No complicated steps are required. The download links and installation instructions for desktop and mobile devices are given below.<br />
===On Desktop===<br />
* '''Download :'''For desktop, download the recapture app from the following link [https://podium.live/software Windows and OSX]<br />
* '''Installation in Windows 10/11:''' Windows 10/11 has built in USB drivers that support Recapture; no separate driver installation needed.<br />
* '''Installation in XP, 7, and 8:''' In Window XP,7, & 8 will require USB drivers for installation. Users can download USB driver from following link "[[RaceCapture-Track_MK2#Microsoft_Windows_7.2F8_Driver_installation|Click here.]]"<br />
===On Mobile===<br />
[[image:google_play_amazon_itunes_app_store.png]]<br><br />
<br />
Mobile user (Android/iOS) can simply install form the link given below.<br />
<br />
* [https://play.google.com/store/apps/details?id=com.autosportlabs.racecapture&hl=en Google Play]<br />
* [https://www.amazon.com/Autosport-Labs-Race-Capture/dp/B016ZJM7GE Amazon App Store]<br />
* [https://itunes.apple.com/us/app/racecapture/id1162797255?mt=8 iTunes]<br />
===On Raspberry Pi===<br />
[[image:Racecapture_raspberry_pi.jpg|400px]]<br />
<br />
More advanced users can run the RaceCapture App on a Raspberry pi for a more dedicated dashboard experience. <br />
* Learn more in the [[RaceCapture_on_Raspberry_Pi|Raspberry Pi Guide]]<br />
==Icons Used in Manual==<br />
Throughout this document, the pictograms below are used to underline points or important notions.<br />
<br />
{| class="wikitable"<br />
|+ <br />
|-<br />
! Icon !! Description<br />
|-<br />
| <br />
[[File:Important Symbol.png|20px|center]]<br />
|| Important information<br />
|-<br />
| <br />
[[File:Good to Know.png|20px|center]]<br />
|| Good to Know<br />
|-<br />
| <br />
[[File:Mandatory Action.jpg|20px|center]]<br />
|| Mandatory action <br />
|}<br />
==Intellectual Property and Usage Rights==<br />
The information contained in this document is the intellectual property of Autosport Labs, and No one can use it without the prior permission of Autosport Labs.<br />
==Help==<br />
For additional help, we encourage you to visit one of our support communities:<br />
<br />
* [https://discord.gg/JbKUyFw Discord Server]<br />
* [https://forum.autosportlabs.com Forums]<br />
* [https://www.facebook.com/groups/1288770887817789/ Facebook group]<br />
<br />
=Setup Wizard= <br />
[[image:racecapture_app_first_time_setup.gif|800px]]<br><br />
<br />
Upon running the RaceCapture app for the first time, you are presented with a first time setup wizard. Follow the steps given below to configure your device..[[File:Mandatory Action.jpg|20px]] <br><br />
'''Welcome Page:'''<br />
* Click 'Next' on the welcome page to proceed to the device setup.<br><br />
<br />
<br />
'''Device Selection:'''<br />
* Choose your RaceCapture device from the provided list.<br />
* Click 'Next' to move to the connection page.<br><br />
<br />
<br />
'''Connection Setup:'''<br />
* Connect your system to the USB port.<br />
* Wait for the connection to establish; your device will be recognized once connected.<br><br />
<br />
<br />
'''Note'''[[File:Good to Know.png|20px]]: You can access first time setup again by navigating to the main Setup page and selecting First time setup (as shown in the instruction below)<br><br><br />
[[File:First Time setup.gif|800px]]<br><br />
<br />
=System Status=<br />
Access the system status pages through the top left menu. The system status offers information on GPS status, current WiFi state and more. You can also get a copy of the RaceCapture application log for diagnostics.<br />
<br />
[[image:racecapture_app_status_page.jpg|800px]]<br />
<br />
=Dashboard Mode=<br />
To view your dashboard, press the dashboard option on the main screen.<br />
<br />
[[image:racecapture_app_dashboard_screen.gif|800px]]<br />
<br />
==Navigating Dashboard Pages==<br />
Multiple dashboard pages are supported. To move to a different page:<br />
* Swipe left or right on the screen<br />
* Press the left or right arrow buttons at the bottom of the screen<br />
* Press the left/right keyboard keys<br />
<br />
[[image:racecapture_app_dashboard_navigation.gif|800px]]<br />
<br />
==Importing a new dashboard==<br />
[[image:racecapture_app_import_dashboard.gif|800px]]<br><br />
<br />
To customize your experience, you can import additional dashboard pages either from the system-provided templates or from those created by fellow racers. Follow the steps below to import a new dashboard:<br />
* Click on the gear icon located at the top right corner, and select the rectangular 'Add' icon.<br />
* In the 'Add' icon, you'll find three options:<br />
**System<br />
**Your<br />
**Shared<br />
* Choose your preferred option and scroll down to explore the available dashboard templates.<br />
* Press 'Select' next to the desired dashboard template to import it.<br />
<br />
By following these steps, you can easily enhance your dashboard with a variety of templates tailored to your preferences.<br />
<br />
==Customizing a gauge==<br />
[[image:racecapture_customize_gauge.gif|800px]]<br><br />
<br />
RaceCapture app provides, plenty of options for customizing gauges, and designing your own attractive gauges.<br />
<br />
To edit a gauge:<br />
* Unlock the dashboard<br />
* Press the gear button on the gauge to customize its settings. Depending on the gauge, you can edit:<br />
** Display channel<br />
** Color<br />
** Min/Max range<br />
** Precision (number of digits to the right of the decimal point)<br />
** Other settings depending on the gauge<br />
<br />
===Customizing Analog and Digital Gauges===<br />
For Analog and Digital gauges, the Racepcapture app provides advanced options for customizing all the features of the Analog and Digital gauges ranging from the design of gauge, dial, color, and background, to font size, markers size, and precision using it using its super flexible analog and digital gauge editor.<br />
<br />
'''Analog Gauges'''<br><br />
<br />
[[File:Customizing Analog Gauges (3).gif|800px]]<br><br />
<br />
For customizing Analog gauges, follow the instructions given below<br />
* Unlock the dashboard<br />
* Press the gear button on the gauge and select the edit option<br />
* From the top bar, select the Channel and change the channel as per your requirement.<br />
* After selecting channel, select the setting option at the top bar and select Analog Gauge editor.<br />
* In Analog Gauge editor, there are tons of customizable options, with a handy preview area.<br />
'''Note :''' For more information, [https://www.autosportlabs.com/racecapture-app-2-12-0-next-generation-analog-gauges/ Click here]<br />
<br />
'''Digital Gauges'''<br><br />
<br />
[[File:Customizing Digital Gauges.gif|800px]]<br />
For customizing Digital gauges, follow the instructions given below<br />
* Unlock the dashboard<br />
* Press the gear button on the gauge and select the edit option<br />
* From the top bar, select the Channel and change the channel as per your requirement.<br />
* After selecting channel, select the setting option at the top bar and select Digital Gauge editor.<br />
* In Digital Gauge editor, there numerous customizable options available<br />
'''Note :''' For more information, [https://www.autosportlabs.com/racecapture-app-2-13-0-next-gen-digital-gauges/ Click here]<br />
<br />
==Dashboard Alerts==<br />
You can create dashboard alerts for any channel.<br />
<br />
[[image:racecapture_app_gauge_alerts.gif|800px]]<br />
<br />
There are two ways to create a gauge alert:<br />
# Use the central alerts editor<br />
# Edit alerts from gauges<br />
<br />
===Use the central alerts editor===<br />
[[File:Dashboard Alert .gif|800px]]<br />
* Access the dashboard settings by clicking on the gear icon.<br />
* Select More Settings and navigate to the Alerts tab<br />
* Select the channel you wish to create alerts for, or press the (+) icon to create a new alert<br />
* In the Alert rule tab, users can configure the alert active range, alert active after time, alert deactivate after time, and can also select the notification methods (Popup "Alert" or "Set Gauge color"). <br><br />
<br />
'''Customize Notification'''<br><br />
<br />
[[File:Popup Notification.gif|800px]]<br />
* '''Popup Alert notification:''' users can customize the message and color of alert by clicking on " add new action> selecting Popup: "Alert" > and change the message and color as per their need. <br />
* '''In Set Gauge color:''' users can customize the color of gauge by clicking on " add new action> selecting Set Gauge Color > Color<br />
<br />
===Edit alerts from gauges<br>===<br />
<br />
[[File:Dashboard Alert using gauge edit.gif|800px]]<br />
* Edit a gauge<br />
* Switch to the Channels tab and press the customization gear icon for the selected channel<br />
* Switch to the Alerts tab and customize your alerts<br />
<br />
==Customizing your dashboard==<br />
[[image:racecapture_app_dashboard_designer.gif|800px]]<br><br />
<br />
Users have the flexibility to modify an existing dashboard or create a new one from scratch by firstly unlocking the dashboard page and then adding/modifying gauges to create the design they want.<br><br />
<br />
Users can add new gauges by following the steps given below:<br />
# Unlock the dashboard page by unlocking the gear icon present at the top right corner<br />
# After unlocking the gauge icon, open the gauge icon by clicking the gear icon.<br />
# In the add gauge option, select the gauge type, channel type, and configure the gauge setting as per your requirements.<br />
<br />
'''Note :''' For create a data-driven color-changing dashboard background [https://www.youtube.com/watch?v=vyo2WoF1iHo&t=1s Check Here]<br />
<br />
==Saving your dashboard==<br />
[[image:racecapture_app_save_dashboard.gif|800px]]<br><br />
<br />
Once you have customized your dashboard to your liking, you can save it to the cloud, allowing easy sharing with other racers or access from different devices. Follow these steps to save your dashboard:<br />
<br />
* Click the gear icon at the top right corner to unlock the dashboard.<br />
* Click the save icon.<br />
* Under the "Create New" tab, press "New."<br />
* Provide a name for your dashboard and save it.<br />
By following these steps, your customized dashboard will be saved to the cloud, accessible for sharing and convenient use across various devices.<br />
<br />
==Predictive Lap timing==<br />
RaceCapture/Pro offers predictive lap timing, which relies on a robust track detection system leveraging hundreds of track maps worldwide. <br />
<br />
[[image:racecapture_app_dashboard_predictive_timer.gif|800px]]<br />
<br />
===How it works===<br />
* When GPS receives a lock, RaceCapture will search for a nearby track. <br />
* If a track is detected with one configuration, it is automatically selected.<br />
* If a track is detected with multiple configurations, the RaceCapture app will prompt you for which configuration you're using.<br />
* If no tracks are detected nearby, the RaceCapture app will offer the ability to create a track on the spot. <br />
** If you're not able to immediately create the track, you can do so later under '''Setup'''.<br />
* '''Track not found?''' [[RaceTracks|Submit the track to us]] and we'll get it into our online database.<br />
<br />
[[image:RaceCapture_create_custom_track.png|640px]]<br />
<br />
=Analysis=<br />
The RaceCapture app automatically record users session when triggered by the threshold they have configure under '''Setup / Automatic Control'''<br><br />
<br />
'''Note''': The system default is to trigger on Speed<br />
<br />
To view the data, enter the '''Analysis''' mode and load an existing session. The session will be automatically named with the local track or with a timestamp. <br />
<br />
'''Loading a Session:'''<br><br />
<br />
[[image:racecapture_app_analysis_load_session.gif|800px]]<br><br />
<br />
Users can load sessions by:<br />
<br />
* Pressing the (+) button at the bottom of the pop-out list of laps.<br />
* Alternatively, press the gear icon on the dashboard and select 'Sessions'.<br />
<br />
'''Importing a Session:'''<br><br><br />
[[File:Importing log files...gif|800px]]<br />
<br />
For advanced analysis, users can import log files of sessions. For importing sessions, users can follow the steps given below.<br />
* On the home screen, click on the 'Analysis' option.<br />
* Press the (+) button at the bottom of the pop-out list of laps.<br />
* A new tab will open; in this new tab, select the 'Import Log' option.<br />
* Under 'Import Log,' press the 'Select' option under Datalog file and import the log file.<br />
<br />
'''Note:''' Users can also import datalog video files by clicking the 'Select' option under Datalog Video file.<br />
<br />
==Navigating data==<br />
Racepcapture app provides plenty of flexible options for navigating data.<br />
===Cursor across line chart===<br />
Users can swipe across the line chart to correlate different points with the position on the track map.<br />
===Playback Control===<br />
User can use the controls at the bottom to automatically play back the selected lap(s). Using the playback control option, user can also control the speed of laps.<br><br />
<br />
Swipe across the data to compare various points correlated with the position on the track map.<br />
<br />
'''Zooming'''<br />
<br />
Users can zoom on the line charts data using a two-finger pinch gesture, or using the mouse scroll wheel or your laptop's trackpad scroll gesture. For the map, users can also zoom in, and zoom-out using the designated buttons present at the top right corner.<br />
<br />
==Reviewing Laps==<br />
Within the RaceCapture app, users have the ability to conduct a meticulous review, thorough analysis, and comprehensive comparison of laps for performance evaluation. This section guides you through various tools and features available for a detailed and comprehensive approach to lap analysis<br />
<br />
===Performance Metrics===<br />
Racecapture app provides users with plenty of performance metrics options to comprehensively analyze the performance of your cars and optimize your driving strategy. The table below provides a detailed explanation of a few important available metric:<br />
<br />
{| class="wikitable"<br />
|+ Performance Metrics<br />
|-<br />
! Matric !! Description<br />
|-<br />
| AccelX, AccelY, AccelZ || Lateral, Longitudinal & Vertical acceleration in X, Y and Z axis<br />
|-<br />
| Battery || Battery voltage level<br />
|-<br />
| Brake || Brake position <br />
|-<br />
| CurrentLap || Current lap number <br />
|-<br />
| ElapsedTime || Time elapsed since the start of the session<br />
|-<br />
| EngineTemp || Temperature of Engine<br />
|-<br />
| GPSQual || GPS quality status<br />
|-<br />
| Gear || Current gear position<br />
|-<br />
| LapCount || Total laps completed<br />
|-<br />
| LapTime || Time taken for the current lap<br />
|-<br />
| MAP || Manifold absolute pressure<br />
|-<br />
| MaxRpm || Maximum RPM reached<br />
|-<br />
| OilPress || Engine oil pressure<br />
|-<br />
| Pitch || Angular orientation around the X-axis<br />
|-<br />
| PredTime || Predicted lap time based on the current performance<br />
|-<br />
| RPM || Engine revolutions per minute<br />
|-<br />
| Roll || Angular orientation around the Y-axis<br />
|-<br />
| ShiftLight || Status of the shift light<br />
|-<br />
| SessionTime || Total time elapsed in the current session<br />
|-<br />
| TPMSVoltLF, TPMSVoltLR, TPMSVoltRF, & TPMSVoltRR || Tire Pressure Monitoring System voltages of Left front, Left Rear, Right front & Right rear tires respectively<br />
|-<br />
| TPressLF, TPressLR, TPressRF, & TPressRR || Tires Pressure of Left front, Left Rear, Right front & Right rear tires respectively<br />
|-<br />
| TireITmpLF, TireITmpLR, TireITmpRF, & TireTmpRR || Internal tires temperature of Left front, Left Rear, Right front & Right rear tires respectively<br />
|-<br />
| Utc || Coordinated Universal Time<br />
|-<br />
|}<br />
<br />
In addition to the previously mentioned metrics, offers a diverse range of performance metrics for a comprehensive analysis of your vehicle's dynamics. These include:<br><br />
<br />
'''Position and Timing Metrics:'''<br />
* CurrentLap<br />
* Distance<br />
* SessionTime<br />
* TnSlapTime<br />
<br />
'''Geospatial Metrics:'''<br />
* Latitude<br />
* Longitude<br />
* GPSQual (GPS Quality)<br />
* GPSSATS (Number of GPS Satellites)<br><br />
<br />
'''Competition Metrics:'''<br />
* CompAhead (Comparison Ahead)<br />
* CompBehind (Comparison Behind)<br />
* CompFlag (Competition Flag)<br />
* GapAhead<br />
* LapsAhead<br />
* LapsBehind<br />
<br />
'''Dynamic Metrics:'''<br />
* GsumMax (Maximum G-force)<br />
* GsumPct (Percentage of Maximum G-force)<br />
* Interval<br />
<br />
'''Predictive Metrics:'''<br />
* PredTime (Predicted Lap Time)<br />
<br />
Each metric provides a unique perspective on your vehicle's performance, allowing for a nuanced analysis to refine your racing strategy.<br />
<br />
====Selecting Performance Metrics====<br />
[[File:Metrice.gif|800px]]<br />
<br />
To choose and display specific performance metrics on your dashboard, follow these steps:<br />
'''<br />
* Unlock the gear icon present at the top right corner<br />
* Click on the gear icon and select the add gauge option<br />
* Pick the gauge type that suits your analysis needs (e.g., digital, analog, linear chart).<br />
* Within the chosen gauge type, select the "Channel" representing the performance metric you want to analyze.<br />
* Fine-tune the settings to align with your requirements. Adjust parameters such as scale, range, or units based on your preferences.<br />
* Save your gauge configuration to apply the selected performance metrics to your dashboard.<br />
<br><br />
By following these steps, you can tailor your dashboard to showcase the specific performance metrics that matter most to your racing analysis.<br />
<br />
===Data Visualization===<br />
Racecapture app provides innovative data visualization features, empowering users with advanced features for in-depth analysis. The table below provides a detailed explanation of available gauges:<br />
{| class="wikitable"<br />
|+ Data Visualization Options<br />
|-<br />
! Gauge Type !! Description<br />
|-<br />
| Analog || Visualize data with analog-style gauges for a real-time, dynamic display.<br />
|-<br />
| Bargraph || Use bar graphs to represent data discretely, providing a clear insight of data.<br />
|-<br />
| Bitmap || Display custom images or icons to enhance the visual representation of your data.<br />
|-<br />
| Digital || Showcase numerical data in a clear and precise digital format for quick reference.<br />
|-<br />
| Heat Chart || Gain insights into data patterns using color gradients to represent varying intensities.<br />
|-<br />
| Histogram || Understand data distribution through histogram charts, ideal for analyzing frequency.<br />
|-<br />
| LapTime || Focus on lap-specific metrics with dedicated gauges for lap time analysis.<br />
|-<br />
| Line Chart || Track trends and variations over time using line charts for comprehensive data analysis<br />
|-<br />
| Overview || Get a holistic view of your racing data with overview gauges summarizing key metrics.<br />
|-<br />
| Raw Channel || Provides an unfiltered analysis of individual parameters.<br />
|-<br />
| Scatter Plot || Identify correlations and relationships between two variables using scatter plots.<br />
|-<br />
| Thermal Image || Visualize temperature variations with thermal image gauges for heat-sensitive data.<br />
|-<br />
| Time Delta || Analyze time differentials between specific data points using time delta gauges.<br />
|-<br />
| Time Gap || Evaluate time gaps for strategic decision-making.<br />
|-<br />
| Tiny Digital || Optimize screen space with compact digital gauges for focused data representation.<br />
|-<br />
| Track Map || Navigate your racing data on a track map, providing a spatial context to your analysis.<br />
|-<br />
| Video || Integrate video data seamlessly with dedicated video gauges for synchronized analysis.<br />
|}<br />
<br />
Users can explore the above mentioned gauge types to enhance their data visualization experience and get valuable insights.<br />
<br />
====Selecting Gauge Type====<br />
[[File:Data Visualization.gif|800px]]<br><br />
<br />
Users can select the desired gauge type by following the steps given below:<br />
* Unlock the gear icon present at the top right corner<br />
* Click on the gear icon and select the add gauge option<br />
* Pick the gauge type that suits your analysis needs (e.g., digital, analog, heart chart).<br />
===Customizing Views===<br />
The RaceCapture app provides numerous customization options, allowing users to configure the app interface as per their preferences. Explore the key customization features below:<br />
<br />
'''Gauge Customization'''<br />
* Size, Shape, Type: Modify the size, shape, and type of available gauges to suit your visual preferences.<br />
* Color and Appearance: Personalize the color scheme and appearance of each gauge for a customized display.<br />
<br />
'''Gauge Placement'''<br />
* Location Customization: Users can move gauges to their preferred locations on the display<br />
* Position Setting: Set gauges precisely where you need them for an intuitive and efficient layout.<br />
<br />
'''Layer Management'''<br />
* Bring to Front or Send to Back: Adjust the layering of gauges with options to raise or lower their appearance.<br />
* Raise to Top or Lower to Bottom: Adjust the visibility of gauges by bringing them to the forefront or placing them at the back.<br />
<br />
'''Zoom Functionality'''<br />
* Zoom In & Zoom Out: For enhancing focus, users can Zoom-in and Zoom out gauge as per requirement.<br />
<br />
'''Alert Customization'''<br />
* Set Custom Alerts: Define alerts based on specific conditions or events during your race.<br />
* Threshold Adjustments: Configured alert thresholds to match your required value.<br />
<br />
'''Advanced Features Exploration'''<br />
* Video Integration: Seamlessly integrate video data for synchronized analysis with racing telemetry.<br />
* Thermal Imaging: Users can use the advance feature of thermal imaging for a more comprehensive understanding of your racing data.<br />
<br />
'''Regular Upgradation'''<br />
* Continuous Refinement: Users can regularly assess and fine-tune their dashboard layout and configurations based on changing preferences and real-time racing needs.<br />
<br />
User can experiment with different configurations to find the setup that enhances their racing strategy and overall performance.<br />
<br />
===Comparative Analysis===<br />
<br />
RaceCapture app also provides advance comparative analysis options. If the data contains lap times, the laps will be shown in the dropdown list on the right. Select the laps you wish to compare; users can compare up to 4 laps at once from the same session or different sessions.<br />
<br />
==Selecting time vs distance==<br />
You can switch between time and distance data comparison by accessing the chart options, or pressing the -> or clock icon in the line chart.<br />
<br />
==Reviewing raw data==<br />
If your data contains no laps, such as data from a static test or dyno pull, the data will be present in one entry under the loaded session. Select this entry to view the data. The RaceCapture app will auto-select the '''Time''' dimension if it detects no significant distance traveled within the data.<br />
<br />
==Comparing laps / runs between sessions(Comparative Analysis)==<br />
You can compare data between sessions if they are in a coinciding location - just load multiple sessions and select laps between those sessions.<br />
<br />
==Advanced Analysis Tools==<br />
<br />
==Exporting Data==<br />
You can export your sessions from your list of saved sessions.<br />
<br />
===Android===<br />
* Press the gear icon to access your session list<br />
* Select the session you wish to export - Android will let you save it to a file, share to email, or any other app that accepts files.<br />
* '''Note:''' - if you save it to your local device, you can download it to your computer using a USB cable when your Android device is set up in File Transfer mode<br />
<br />
===iOS===<br />
* Press the gear icon to access your session list<br />
* Export this to your local iOS device storage. <br />
* Connect your iOS device to your computer using a USB cable. <br />
* Access the iOS device using the iTunes file sharing capability. We recommend [http://www.i-funbox.com/en/index.html iFunBox] as an easy to use tool.<br />
* Copy the exported log file from your iOS device to your computer.<br />
<br />
===Importing to 3rd party software===<br />
The RaceCapture log file format is plain CSV, which can be imported into 3rd party software. <br />
<br />
* '''RaceRender''' provides native support for the RaceCapture log file format. See the [[RaceCapture_RaceRender_Guide|exporting to RaceRender guide]].<br />
* '''DashWare''' has been used by RaceCapture customers - Rowan Hick has a write-up on [https://www.rowanhick.com/2016/01/07/racecapture-pro-dashware-win Dashware integration].<br />
<br />
=System Setup=<br />
You can configure all of RaceCapture's options under Setup. <br />
<br />
When the RaceCapture app detects the connected hardware, it will read the current setup from the device.<br />
* The setup information is presented as a series of pages, by topic. <br />
* When you change something on a setup page, you'll need to '''Write''' the changes back to the RaceCapture device before they take effect.<br />
<br />
[[Image:racecapture_setup_buttons.png]]<br />
<br />
==Explanation of buttons==<br />
* '''Save''': Save the current RaceCapture setup to a file, for backup.<br />
* '''Open''': Load a previously saved setup file. <br />
* '''Read''': Read the current setup from the RaceCapture device. <br />
* '''Write''': Writes any updated changes back to the RaceCapture device. '''Note: when you see the write button glowing / pulsing, it means there are pending changes to write back to the RaceCapture device'''<br />
<br />
==Race Tracks==<br />
On the Race Tracks page you can create a custom track, which will be included in the library of track maps for automatic detection. To create a custom track, turn off 'Automatic race track detection' and then press the add (+) button. You will be presented with an option to create a circuit or Autocross (point-point) style course. Follow the on-screen instructions to create your track.<br />
<br />
[[image:RaceCapture_select_track_type.png|640px]]<br />
<br />
==GPS==<br />
The GPS page allows you to adjust the GPS sample rate and enable/disable various channels. <br />
* '''Note:''' We highly recommend you keep the default channels enabled for proper operation of analysis and lap timing.<br />
* 10Hz is the recommended sample rate for the best balance of performance / accuracy. [[RaceCapturePro2_GPS|Getting the best GPS performance]]<br />
<br />
==Race Timing==<br />
These enable the lap timer and predictive lap timer. Leave these 'on' to enable these features.<br />
<br />
==Analog Sensors==<br />
Here you can configure and calibrate your analog sensors. <br />
<br />
[[file:racecapture_app_setup_analog_sensors.jpg|800px]]<br />
<br />
==Pulse/RPM sensors==<br />
Here you can configure and calibrate RPM and pulse-type sensors, such as wheel speed. <br />
<br />
[[file:racecapture_app_setup_pulse_rpm_sensors.jpg|800px]]<br />
<br />
==Digital In/Out==<br />
Here you can configure the General Purpose Input/Outputs (GPIOs) for your RaceCapture system. <br />
<br />
[[file:racecapture_app_setup_gpio_sensors.jpg|800px]]<br />
<br />
==Accel / Gyro==<br />
The recommended mounting orientation for RaceCapture is square with the chassis, with the harness connectors facing the front of the vehicle.<br />
* You can re-map channels by re-assigning the physical axis to the mapped channel.<br />
* Once defined, you can calibrate the accelerometer + gyro by pressing the calibrate button, and then pressing the '''write''' button to write the calibration back to RaceCapture.<br />
<br />
[[image:racecapture_app_setup_accel_gyro_sensors.jpg|800px]]<br />
<br />
==CAN bus==<br />
To enable CAN bus communications, set the CAN bus setting to '''ON'''. <br />
CAN bus baud rates are configurable; common rates are 250K, 500K and 1MB. RaceCapture defaults to:<br />
* 500K for CAN1, which is common for OEM and aftermarket ECUs<br />
* 1MB for CAN2, which matches the standard for our CAN bus accessories.<br />
<br />
[[image:racecapture_setup_can_bus_network.jpg|800px]]<br />
<br />
==CAN bus mapping==<br />
RaceCapture offers a powerful CAN bus mapping capability, allowing you to map CAN bus data frames to real-world sensor values. <br />
<br />
See our comprehensive guide on [[CAN_Bus_Integration|Using and mapping CAN bus sensor data]]<br />
<br />
[[image:racecapture_app_can_bus_mapping.jpg|800px]]<br />
<br />
==OBDII==<br />
You can select from a standard list of OBDII channels on the OBDII configuration screen. <br />
<br />
[[image:racecapture_app_setup_obdii.jpg|800px]]<br />
<br />
===Selecting sample rates===<br />
For channels that require a faster response rate, like RPM and TPS, we recommend 10, 25 or 50Hz. More slowly changing channels like EngineTemperature should be set to 1 or 5Hz.<br />
<br />
* '''Note about unsupported channels:''' If your ECU does not support a channel, the value will remain at 0. RaceCapture will time-out waiting for a response from the ECU, which will affect the performance of other channels. We recommend removing all unsupported channels to ensure optimal OBDII performance.<br />
<br />
==Automatic Control==<br />
<br />
[[image:racecapture_setup_automatic_control.jpg|800px]]<br />
<br />
===Wireless===<br />
You can configure RaceCapture's WiFi for both '''Access Point''' and '''Client''' mode.<br />
<br />
[[image:racecapture_app_setup_wireless.jpg|800px]]<br />
<br />
<br />
===Client Mode===<br />
To enable client mode, specify the SSID and password for the network you wish to connect to and turn the client mode switch to '''on'''<br />
<br />
===Access Point Mode===<br />
To enable the RaceCapture access point, specify the SSID and a password.<br />
* '''Note:''' If specified, passwords must be minimum of 8 characters. Leave the field blank to create an open network.<br />
<br />
==Real-time Telemetry==<br />
With the real-time telemetry feature you can live-stream your data to [http://podium.live Podium] so you can compare and share laps and runs with your friends. Enable by setting your Podium Device ID provided by your [http://podium.live Podium Account]<br />
<br />
See the [[RaceCapture_real_time_telemetry|RaceCapture real time telemetry setup guide]] for details on setting up this feature.<br />
<br />
[[image:racecapture_app_setup_telemetry.jpg|800px]]<br />
<br />
[[image:podium.png|thumb|200px]]<br />
<br />
http://i.imgur.com/WzHsdU1.gif<br />
<br />
==Scripting==<br />
You can customize the behavior of your system by writing small Lua scripts; you can do things like:<br />
* Create live math (virtual) channels that are calculated on the fly<br />
* Broadcast Custom CAN bus messages<br />
* Control a fan based on the temperature of an analog channel (e.g. EngineTemp)<br />
See the [[RaceCapturePro_Lua_Scripting|Lua scripting guide]] for a complete how-to, including helpful examples.<br />
<br />
[[image:racecapture_app_setup_lua_scripting.jpg|800px]]<br />
<br />
===Diagnostic Logs===<br />
To view the log messages provided by the RaceCapture unit, you can enable the '''Poll log''' check box. You can copy the current log to the clipboard by pressing the '''Copy''' button.<br />
* '''Note:''' These logs are useful for diagnosing issues with your RaceCapture unit, as well as seeing messages printed by your Lua script.<br />
<br />
==Firmware==<br />
Here you can update your system's firmware, perform a factory reset, which restores the system to its original settings, or perform a reboot of the unit without needing to do a power-cycle. <br />
* '''Note:''' Before updating your firmware, be sure to save your current configuration to a file. <br />
<br />
[[file:racecapture_app_setup_firmware.jpg|800px]]<br />
<br />
=Troubleshooting=<br />
==Recovering from mis-configured WiFi or Bluetooth==<br />
If you're unable to connect via mobile due to a Wireless configuration issue - for example:<br />
* You forgot the password you set for RaceCapture's Access Point or Bluetooth link<br />
* If RaceCapture's WiFi client needs to be re-configured for a new WiFi network<br />
<br />
You can recover by re-configuring RaceCatpure's WiFi settings via the USB connection and the Windows or OSX app. <br />
<br />
Steps to recover:<br />
* Launch the RaceCapture app on Windows or OSX<br />
* Connect RaceCapture via USB<br />
* Allow the software to connect and read the configuration<br />
* Under Setup, adjust the WiFi or Bluetooth settings as needed<br />
* Write the configuration back to RaceCapture<br />
<br />
Once you update the settings, it's recommended you test the WiFi connection using your mobile device while still connected over USB so you can further adjust settings as needed.<br />
<br />
=Extra Information=<br />
==Microsoft Windows 7/8 Driver installation==<br />
* Download and unzip drivers: [https://autosportlabs-software.s3-us-west-2.amazonaws.com/RaceCapturePro_drivers_winXPVista7_V2.zip Windows XP/Vista/7/8 Drivers V2]<br />
** '''Note for Windows 8 users''' - These drivers are unsigned. You will need to disable the driver signing requirement for Windows 8, or upgrade to Windows 10. [https://learn.sparkfun.com/tutorials/disabling-driver-signature-on-windows-8/disabling-signed-driver-enforcement-on-windows-8 Instructions]<br />
*** [http://www.howtogeek.com/167723/how-to-disable-driver-signature-verification-on-64-bit-windows-8.1-so-that-you-can-install-unsigned-drivers/ Win8 64bit unsigned driver instructions]<br />
* Plug RaceCapture/Pro in to the computer. <br />
* If prompted to install a driver, direct Windows to the folder where you unzipped the RaceCapture/Pro drivers.<br />
* If not prompted, manually update driver:<br />
** Open Windows Device Manager and find the '''Ports (COM and LPT)''' section. RaceCapture/Pro should be listed there, possibly with a yellow (!) over the icon. <br />
** Right click and select 'Update Driver'.<br />
** Follow the instructions and direct Windows to the folder where you unzipped the RaceCapture/Pro drivers.</div>Brentphttps://wiki.autosportlabs.com/index.php?title=RaceCapture_App_User%27s_Guide&diff=9964RaceCapture App User's Guide2024-01-12T14:09:34Z<p>Brentp: </p>
<hr />
<div>[[image:racecapture_app_home_page.jpg|800px]]<br />
<br />
=Overview=<br />
==About the guide==<br />
This is a comprehensive user guide that contains complete instructions about the services and functions of the RaceCapture app. The app is designed to be easy to use across multiple devices. The RaceCapture app allows you to integrate your devices with the RaceCapture modules and get instant access to the endless functionalities of RaceCapture modules. Using this app, customers can access all the features of the RaceCapture modules, monitor, store, and analyze the real-time data, and users can also provide customized commands to the RaceCapture modules using Lua scripts. Further details about the app are given in the respective sections.<br><br />
<br />
'''Note:''' It is recommended that this guide be read thoroughly to familiarize with the RaceCapture app, and perform tasks efficiently and effectively.<br />
<br />
==Navigation==<br />
===Home View===<br />
Upon launching the Racecapture app, the Home View serves as the starting point, presenting users with three primary icon options:<br />
* Analysis<br />
* Dashboard<br />
* Setup<br />
<br />
===Navigate through the app===<br />
[[File:Navigation .gif|800px]]<br><br />
<br />
<br />
To explore additional functionalities of the app, users can access the navigation menu by tapping the hamburger button located at the top left corner. Upon clicking the hamburger button, a tab bar appears on the left, and Users can switch between different sections by tapping on the respective icons on this tab bar.<br />
<br />
==Compatible OS==<br />
Racecapture app is compatible with all the advanced operating systems. However, it is not functional on a few old versions of tablets and on Windows XP, 7, and 8 due to their outdated video drivers.<br />
* '''Not sure what tablet to use? ''' [[RaceCapture_App_recommended_tablets|See our list of recommended tablets]]<br />
==How to Install==<br />
Installing the recapture app is simple and straightforward. You simply need to download the app and install it. No complicated steps are required. The download links and installation instructions for desktop and mobile devices are given below.<br />
===On Desktop===<br />
* '''Download :'''For desktop, download the recapture app from the following link [https://podium.live/software Windows and OSX]<br />
* '''Installation in Windows 10/11:''' Windows 10/11 has built in USB drivers that support Recapture; no separate driver installation needed.<br />
* '''Installation in XP, 7, and 8:''' In Window XP,7, & 8 will require USB drivers for installation. Users can download USB driver from following link "[[RaceCapture-Track_MK2#Microsoft_Windows_7.2F8_Driver_installation|Click here.]]"<br />
===On Mobile===<br />
[[image:google_play_amazon_itunes_app_store.png]]<br><br />
<br />
Mobile user (Android/iOS) can simply install form the link given below.<br />
<br />
* [https://play.google.com/store/apps/details?id=com.autosportlabs.racecapture&hl=en Google Play]<br />
* [https://www.amazon.com/Autosport-Labs-Race-Capture/dp/B016ZJM7GE Amazon App Store]<br />
* [https://itunes.apple.com/us/app/racecapture/id1162797255?mt=8 iTunes]<br />
===On Raspberry Pi===<br />
[[image:Racecapture_raspberry_pi.jpg|400px]]<br />
<br />
More advanced users can run the RaceCapture App on a Raspberry pi for a more dedicated dashboard experience. <br />
* Learn more in the [[RaceCapture_on_Raspberry_Pi|Raspberry Pi Guide]]<br />
==Icons Used in Manual==<br />
Throughout this document, the pictograms below are used to underline points or important notions.<br />
<br />
{| class="wikitable"<br />
|+ <br />
|-<br />
! Icon !! Description<br />
|-<br />
| <br />
[[File:Important Symbol.png|20px|center]]<br />
|| Important information<br />
|-<br />
| <br />
[[File:Good to Know.png|20px|center]]<br />
|| Good to Know<br />
|-<br />
| <br />
[[File:Mandatory Action.jpg|20px|center]]<br />
|| Mandatory action <br />
|}<br />
==Intellectual Property and Usage Rights==<br />
The information contained in this document is the intellectual property of Autosport Labs, and No one can use it without the prior permission of Autosport Labs.<br />
==Help==<br />
For additional help, we encourage you to visit one of our support communities:<br />
<br />
* [https://discord.gg/JbKUyFw Discord Server]<br />
* [https://forum.autosportlabs.com Forums]<br />
* [https://www.facebook.com/groups/1288770887817789/ Facebook group]<br />
<br />
=Setup Wizard= <br />
[[image:racecapture_app_first_time_setup.gif|800px]]<br><br />
<br />
Upon running the RaceCapture app for the first time, you are presented with a first time setup wizard. Follow the steps given below to configure your device..[[File:Mandatory Action.jpg|20px]] <br><br />
'''Welcome Page:'''<br />
* Click 'Next' on the welcome page to proceed to the device setup.<br><br />
<br />
<br />
'''Device Selection:'''<br />
* Choose your RaceCapture device from the provided list.<br />
* Click 'Next' to move to the connection page.<br><br />
<br />
<br />
'''Connection Setup:'''<br />
* Connect your system to the USB port.<br />
* Wait for the connection to establish; your device will be recognized once connected.<br><br />
<br />
<br />
'''Note'''[[File:Good to Know.png|20px]]: You can access first time setup again by navigating to the main Setup page and selecting First time setup (as shown in the instruction below)<br><br><br />
[[File:First Time setup.gif|800px]]<br><br />
<br />
=System Status=<br />
Access the system status pages through the top left menu. The system status offers information on GPS status, current WiFi state and more. You can also get a copy of the RaceCapture application log for diagnostics.<br />
<br />
[[image:racecapture_app_status_page.jpg|800px]]<br />
<br />
=Dashboard Mode=<br />
To view your dashboard, press the dashboard option on the main screen.<br />
<br />
[[image:racecapture_app_dashboard_screen.gif|800px]]<br />
<br />
==Navigating Dashboard Pages==<br />
Multiple dashboard pages are supported. To move to a different page:<br />
* Swipe left or right on the screen<br />
* Press the left or right arrow buttons at the bottom of the screen<br />
* Press the left/right keyboard keys<br />
<br />
[[image:racecapture_app_dashboard_navigation.gif|800px]]<br />
<br />
==Importing a new dashboard==<br />
[[image:racecapture_app_import_dashboard.gif|800px]]<br><br />
<br />
To customize your experience, you can import additional dashboard pages either from the system-provided templates or from those created by fellow racers. Follow the steps below to import a new dashboard:<br />
* Click on the gear icon located at the top right corner, and select the rectangular 'Add' icon.<br />
* In the 'Add' icon, you'll find three options:<br />
**System<br />
**Your<br />
**Shared<br />
* Choose your preferred option and scroll down to explore the available dashboard templates.<br />
* Press 'Select' next to the desired dashboard template to import it.<br />
<br />
By following these steps, you can easily enhance your dashboard with a variety of templates tailored to your preferences.<br />
<br />
==Customizing a gauge==<br />
Most gauges can be customized for the channel, setting a color, and display parameters.<br />
<br />
[[image:racecapture_customize_gauge.gif|800px]]<br />
<br />
To edit a gauge:<br />
* Unlock the dashboard<br />
* Press the gear button on the gauge to customize its settings. Depending on the gauge, you can edit:<br />
** Display channel<br />
** Color<br />
** Min/Max range<br />
** Precision (number of digits to the right of the decimal point)<br />
** Other settings depending on the gauge<br />
<br />
==Dashboard Alerts==<br />
You can create dashboard alerts for any channel.<br />
<br />
[[image:racecapture_app_gauge_alerts.gif|800px]]<br />
<br />
There are two ways to create a gauge alert:<br />
<br />
'''Use the central alerts editor:'''<br />
* Access the dashboard settings by clicking on the gear icon.<br />
* Select More Settings and navigate to the Alerts tab<br />
* Select the channel you wish to create alerts for, or press the (+) icon to create a new alert<br />
* In the Alert rule tab, users can configure the alert active range, alert active after time, alert deactivate after time, and can also select the notification methods (Popup "Alert" or "Set Gauge color"). <br />
'''Customize Notification'''<br />
* '''Popup Alert notification:''' users can customize the message and color of alert by clicking on " add new action> selecting Popup: "Alert" > and change the message and color as per their need. <br />
* '''In Set Gauge color:''' users can customize the color of gauge by clicking on " add new action> selecting Set Gauge Color > Color<br />
<br><br />
'''Edit alerts from a gauge:'''<br />
* Edit a gauge<br />
* Switch to the Channels tab and press the customization gear icon for the selected channel<br />
* Switch to the Alerts tab and customize your alerts<br />
<br />
==Customizing your dashboard==<br />
You can modify an existing dashboard or create a new one from scratch by first unlocking the dashboard page, then add / modify gauges to create the design you want. <br />
<br />
[[image:racecapture_app_dashboard_designer.gif|800px]]<br />
<br />
==Saving your dashboard==<br />
When you are done, you can save your dashboard to the cloud (requires [http://podium.live Podium login]) so it can be shared with other racers, or across your other devices.<br />
<br />
[[image:racecapture_app_save_dashboard.gif|800px]]<br />
<br />
==Predictive Lap timing==<br />
RaceCapture/Pro offers predictive lap timing, which relies on a robust track detection system leveraging hundreds of track maps worldwide. <br />
<br />
[[image:racecapture_app_dashboard_predictive_timer.gif|800px]]<br />
<br />
===How it works===<br />
* When GPS receives a lock, RaceCapture will search for a nearby track. <br />
* If a track is detected with one configuration, it is automatically selected.<br />
* If a track is detected with multiple configurations, the RaceCapture app will prompt you for which configuration you're using.<br />
* If no tracks are detected nearby, the RaceCapture app will offer the ability to create a track on the spot. <br />
** If you're not able to immediately create the track, you can do so later under '''Setup'''.<br />
* '''Track not found?''' [[RaceTracks|Submit the track to us]] and we'll get it into our online database.<br />
<br />
[[image:RaceCapture_create_custom_track.png|640px]]<br />
<br />
=Analysis=<br />
The RaceCapture app will automatically record your session when triggered by the threshold you configure under '''Setup / Automatic Control'''.<br />
* '''Note''': The system default is to trigger on Speed<br />
<br />
To view the data, enter the '''Analysis''' mode and load an existing session. The session will be automatically named with the local track or with a timestamp. <br />
<br />
You can load a session by pressing the (+) button at the bottom of the pop-out list of laps, or by pressing the gear icon on the dashboard and selecting Sessions.<br />
<br />
[[image:racecapture_app_analysis_load_session.gif|800px]]<br />
<br />
==Reviewing Laps==<br />
If the data contains lap times, the laps will be shown in the dropdown list on the right. Select the laps you wish to compare; up to 4 laps can be compared at once from the same session or different sessions.<br />
<br />
==Navigating data==<br />
===Cursor across line chart===<br />
Swipe across the line chart to correlate different points with the position on the track map.<br />
===Playback Control===<br />
You can also use the controls at the bottom to automatically play back the selected lap(s).<br />
<br />
Swipe across the data to compare various points correlated with the position on the track map.<br />
* '''Zooming''' For line charts, you can zoom on the data using a two-finger pinch gesture, or using the mouse scroll wheel or your laptop's trackpad scroll gesture.<br />
<br />
==Selecting time vs distance==<br />
You can switch between time and distance data comparison by accessing the chart options, or pressing the -> or clock icon in the line chart.<br />
<br />
==Reviewing raw data==<br />
If your data contains no laps, such as data from a static test or dyno pull, the data will be present in one entry under the loaded session. Select this entry to view the data. The RaceCapture app will auto-select the '''Time''' dimension if it detects no significant distance traveled within the data. <br />
<br />
==Comparing laps / runs between sessions==<br />
You can compare data between sessions if they are in a coinciding location - just load multiple sessions and select laps between those sessions.<br />
<br />
==Exporting Data==<br />
You can export your sessions from your list of saved sessions.<br />
<br />
===Android===<br />
* Press the gear icon to access your session list<br />
* Select the session you wish to export - Android will let you save it to a file, share to email, or any other app that accepts files.<br />
* '''Note:''' - if you save it to your local device, you can download it to your computer using a USB cable when your Android device is set up in File Transfer mode<br />
<br />
===iOS===<br />
* Press the gear icon to access your session list<br />
* Export this to your local iOS device storage. <br />
* Connect your iOS device to your computer using a USB cable. <br />
* Access the iOS device using the iTunes file sharing capability. We recommend [http://www.i-funbox.com/en/index.html iFunBox] as an easy to use tool.<br />
* Copy the exported log file from your iOS device to your computer.<br />
<br />
===Importing to 3rd party software===<br />
The RaceCapture log file format is plain CSV, which can be imported into 3rd party software. <br />
<br />
* '''RaceRender''' provides native support for the RaceCapture log file format. See the [[RaceCapture_RaceRender_Guide|exporting to RaceRender guide]].<br />
* '''DashWare''' has been used by RaceCapture customers - Rowan Hick has a write-up on [https://www.rowanhick.com/2016/01/07/racecapture-pro-dashware-win Dashware integration].<br />
<br />
=System Setup=<br />
You can configure all of RaceCapture's options under Setup. <br />
<br />
When the RaceCapture app detects the connected hardware, it will read the current setup from the device.<br />
* The setup information is presented as a series of pages, by topic. <br />
* When you change something on a setup page, you'll need to '''Write''' the changes back to the RaceCapture device before they take effect.<br />
<br />
[[Image:racecapture_setup_buttons.png]]<br />
<br />
==Explanation of buttons==<br />
* '''Save''': Save the current RaceCapture setup to a file, for backup.<br />
* '''Open''': Load a previously saved setup file. <br />
* '''Read''': Read the current setup from the RaceCapture device. <br />
* '''Write''': Writes any updated changes back to the RaceCapture device. '''Note: when you see the write button glowing / pulsing, it means there are pending changes to write back to the RaceCapture device'''<br />
<br />
==Race Tracks==<br />
On the Race Tracks page you can create a custom track, which will be included in the library of track maps for automatic detection. To create a custom track, turn off 'Automatic race track detection' and then press the add (+) button. You will be presented with an option to create a circuit or Autocross (point-point) style course. Follow the on-screen instructions to create your track.<br />
<br />
[[image:RaceCapture_select_track_type.png|640px]]<br />
<br />
==GPS==<br />
The GPS page allows you to adjust the GPS sample rate and enable/disable various channels. <br />
* '''Note:''' We highly recommend you keep the default channels enabled for proper operation of analysis and lap timing.<br />
* 10Hz is the recommended sample rate for the best balance of performance / accuracy. [[RaceCapturePro2_GPS|Getting the best GPS performance]]<br />
<br />
==Race Timing==<br />
These enable the lap timer and predictive lap timer. Leave these 'on' to enable these features.<br />
<br />
==Analog Sensors==<br />
Here you can configure and calibrate your analog sensors. <br />
<br />
[[file:racecapture_app_setup_analog_sensors.jpg|800px]]<br />
<br />
==Pulse/RPM sensors==<br />
Here you can configure and calibrate RPM and pulse-type sensors, such as wheel speed. <br />
<br />
[[file:racecapture_app_setup_pulse_rpm_sensors.jpg|800px]]<br />
<br />
==Digital In/Out==<br />
Here you can configure the General Purpose Input/Outputs (GPIOs) for your RaceCapture system. <br />
<br />
[[file:racecapture_app_setup_gpio_sensors.jpg|800px]]<br />
<br />
==Accel / Gyro==<br />
The recommended mounting orientation for RaceCapture is square with the chassis, with the harness connectors facing the front of the vehicle.<br />
* You can re-map channels by re-assigning the physical axis to the mapped channel.<br />
* Once defined, you can calibrate the accelerometer + gyro by pressing the calibrate button, and then pressing the '''write''' button to write the calibration back to RaceCapture.<br />
<br />
[[image:racecapture_app_setup_accel_gyro_sensors.jpg|800px]]<br />
<br />
==CAN bus==<br />
To enable CAN bus communications, set the CAN bus setting to '''ON'''. <br />
CAN bus baud rates are configurable; common rates are 250K, 500K and 1MB. RaceCapture defaults to:<br />
* 500K for CAN1, which is common for OEM and aftermarket ECUs<br />
* 1MB for CAN2, which matches the standard for our CAN bus accessories.<br />
<br />
[[image:racecapture_setup_can_bus_network.jpg|800px]]<br />
<br />
==CAN bus mapping==<br />
RaceCapture offers a powerful CAN bus mapping capability, allowing you to map CAN bus data frames to real-world sensor values. <br />
<br />
See our comprehensive guide on [[CAN_Bus_Integration|Using and mapping CAN bus sensor data]]<br />
<br />
[[image:racecapture_app_can_bus_mapping.jpg|800px]]<br />
<br />
==OBDII==<br />
You can select from a standard list of OBDII channels on the OBDII configuration screen. <br />
<br />
[[image:racecapture_app_setup_obdii.jpg|800px]]<br />
<br />
===Selecting sample rates===<br />
For channels that require a faster response rate, like RPM and TPS, we recommend 10, 25 or 50Hz. More slowly changing channels like EngineTemperature should be set to 1 or 5Hz.<br />
<br />
* '''Note about unsupported channels:''' If your ECU does not support a channel, the value will remain at 0. RaceCapture will time-out waiting for a response from the ECU, which will affect the performance of other channels. We recommend removing all unsupported channels to ensure optimal OBDII performance.<br />
<br />
==Automatic Control==<br />
<br />
[[image:racecapture_setup_automatic_control.jpg|800px]]<br />
<br />
===Wireless===<br />
You can configure RaceCapture's WiFi for both '''Access Point''' and '''Client''' mode.<br />
<br />
[[image:racecapture_app_setup_wireless.jpg|800px]]<br />
<br />
<br />
===Client Mode===<br />
To enable client mode, specify the SSID and password for the network you wish to connect to and turn the client mode switch to '''on'''<br />
<br />
===Access Point Mode===<br />
To enable the RaceCapture access point, specify the SSID and a password.<br />
* '''Note:''' If specified, passwords must be minimum of 8 characters. Leave the field blank to create an open network.<br />
<br />
==Real-time Telemetry==<br />
With the real-time telemetry feature you can live-stream your data to [http://podium.live Podium] so you can compare and share laps and runs with your friends. Enable by setting your Podium Device ID provided by your [http://podium.live Podium Account]<br />
<br />
See the [[RaceCapture_real_time_telemetry|RaceCapture real time telemetry setup guide]] for details on setting up this feature.<br />
<br />
[[image:racecapture_app_setup_telemetry.jpg|800px]]<br />
<br />
[[image:podium.png|thumb|200px]]<br />
<br />
http://i.imgur.com/WzHsdU1.gif<br />
<br />
==Scripting==<br />
You can customize the behavior of your system by writing small Lua scripts; you can do things like:<br />
* Create live math (virtual) channels that are calculated on the fly<br />
* Broadcast Custom CAN bus messages<br />
* Control a fan based on the temperature of an analog channel (e.g. EngineTemp)<br />
See the [[RaceCapturePro_Lua_Scripting|Lua scripting guide]] for a complete how-to, including helpful examples.<br />
<br />
[[image:racecapture_app_setup_lua_scripting.jpg|800px]]<br />
<br />
===Diagnostic Logs===<br />
To view the log messages provided by the RaceCapture unit, you can enable the '''Poll log''' check box. You can copy the current log to the clipboard by pressing the '''Copy''' button.<br />
* '''Note:''' These logs are useful for diagnosing issues with your RaceCapture unit, as well as seeing messages printed by your Lua script.<br />
<br />
==Firmware==<br />
Here you can update your system's firmware, perform a factory reset, which restores the system to its original settings, or perform a reboot of the unit without needing to do a power-cycle. <br />
* '''Note:''' Before updating your firmware, be sure to save your current configuration to a file. <br />
<br />
[[file:racecapture_app_setup_firmware.jpg|800px]]<br />
<br />
=Troubleshooting=<br />
==Recovering from mis-configured WiFi or Bluetooth==<br />
If you're unable to connect via mobile due to a Wireless configuration issue - for example:<br />
* You forgot the password you set for RaceCapture's Access Point or Bluetooth link<br />
* If RaceCapture's WiFi client needs to be re-configured for a new WiFi network<br />
<br />
You can recover by re-configuring RaceCatpure's WiFi settings via the USB connection and the Windows or OSX app. <br />
<br />
Steps to recover:<br />
* Launch the RaceCapture app on Windows or OSX<br />
* Connect RaceCapture via USB<br />
* Allow the software to connect and read the configuration<br />
* Under Setup, adjust the WiFi or Bluetooth settings as needed<br />
* Write the configuration back to RaceCapture<br />
<br />
Once you update the settings, it's recommended you test the WiFi connection using your mobile device while still connected over USB so you can further adjust settings as needed.<br />
<br />
=Extra Information=<br />
==Microsoft Windows 7/8 Driver installation==<br />
* Download and unzip drivers: [https://autosportlabs-software.s3-us-west-2.amazonaws.com/RaceCapturePro_drivers_winXPVista7_V2.zip Windows XP/Vista/7/8 Drivers V2]<br />
** '''Note for Windows 8 users''' - These drivers are unsigned. You will need to disable the driver signing requirement for Windows 8, or upgrade to Windows 10. [https://learn.sparkfun.com/tutorials/disabling-driver-signature-on-windows-8/disabling-signed-driver-enforcement-on-windows-8 Instructions]<br />
*** [http://www.howtogeek.com/167723/how-to-disable-driver-signature-verification-on-64-bit-windows-8.1-so-that-you-can-install-unsigned-drivers/ Win8 64bit unsigned driver instructions]<br />
* Plug RaceCapture/Pro in to the computer. <br />
* If prompted to install a driver, direct Windows to the folder where you unzipped the RaceCapture/Pro drivers.<br />
* If not prompted, manually update driver:<br />
** Open Windows Device Manager and find the '''Ports (COM and LPT)''' section. RaceCapture/Pro should be listed there, possibly with a yellow (!) over the icon. <br />
** Right click and select 'Update Driver'.<br />
** Follow the instructions and direct Windows to the folder where you unzipped the RaceCapture/Pro drivers.</div>Brentphttps://wiki.autosportlabs.com/index.php?title=TireX&diff=9923TireX2023-12-27T20:37:36Z<p>Brentp: /* Disassembly and replacing harness */</p>
<hr />
<div>=Introduction=<br />
TireX is a powerful and versatile multi-zone tire temperature sensor designed for motorsports applications. <br />
<br/><br />
[[file:tirex_3quarter.jpg|600px]]<br />
<br />
==Features==<br />
===High Performance===<br />
TireX can be configured to report up to 16 temperature zones, supporting sample rates up to 64Hz via CAN bus with the powerful embedded 32 bit processor.<br />
===Rugged and Compact===<br />
TireX features a rugged, low profile design with a wide field of view for space constrained environments. <br />
===Flexible Setup===<br />
* Temperature zones and sensor calibration is customizable by the end user<br />
* Sensor position can be assigned to provide consistent data reporting between left and right sides of vehicle. <br />
* CAN bus can be set for 1MB or 500K (default is 1MB)<br />
<br />
=Quick Setup Guide=<br />
The following setup assumes you have the following:<br />
* RaceCapture system<br />
* Plug and play wiring harness<br />
* Powered CAN hub kit<br />
* RaceCapture to hub integration cable<br />
<br />
==Hardware Setup==<br />
===TireX 4-corner plug and play harness===<br />
We recommend using the TireX 4-corner plug and play harness for the easiest installation.<br/><br />
https://www.autosportlabs.com/product/tirex-4-corner-plug-and-play-harness/<br />
===By System===<br />
===For newer plug and play RaceCapture and PodiumConnect systems===<br />
You have two plug and play options for connecting the TireX harness:<br />
====Using the Dual CAN hub====<br />
Get the 8 port hub and dual CAN link cable<br/><br />
https://www.autosportlabs.com/product/powered-8-port-dual-can-bus-hub-kit/<br/><br />
https://www.autosportlabs.com/product/racecapture-m8-to-dual-can-bus-link-cable/<br/><br />
The cable connects the hub to your system, and then the TireX harness plugs into the hub. <br />
====Minimal installation using the Dual CAN splitter====<br />
For a minimal installation, use the Dual CAN splitter<br/><br />
https://www.autosportlabs.com/product/can1-can2-dual-can-splitter/<br/><br />
This splitter connects to the dual CAN port of your system, and TireX connects to the CAN2 branch on the splitter.<br />
===For older generation RaceCapture systems with RJ45 connector===<br />
====Plug and Play option====<br />
Get the 8 port hub and dual CAN link cable -> RJ45<br/><br />
https://www.autosportlabs.com/product/powered-8-port-dual-can-bus-hub-kit/<br/><br />
https://www.autosportlabs.com/product/racecapture-rj45-to-dual-can-bus-link-cable/<br/><br />
The cable plugs into the RJ45 port of your RaceCapture/Pro, and then plugs into the hub. Then, the TireX harness plugs into the hub. <br />
====Minimal installation (requires some custom wiring)====<br />
Get the Device CAN pigtail<br/><br />
https://www.autosportlabs.com/product/can-power-pigtail-for-device/<br/><br />
This will plug into the TireX harness, and then on the pigtail side you will connect it to CAN2 on your system (molex or RJ45 port) and then connect it to the same 12v power used for your system.<br />
<br />
===For other data systems===<br />
Get the Device CAN pigtail. <br />
https://www.autosportlabs.com/product/can-power-pigtail-for-device/<br/><br />
This will plug into the TireX harness, and then on the pigtail side you will connect it to your system's CAN bus and 12v, on the same circuit powering your data system.<br />
==TireX Connection==<br />
===Connect Each TireX sensor to the Wiring harness===<br />
* Connect each TireX sensor to one of the Y-splitter connections of the TireX plug and play harness.<br />
* Connect the last TireX sensor to the end of the harness chain, where the CAN terminator is attached.<br />
<br />
==Software Setup==<br />
https://i.imgur.com/rDiKXpC.gif<br />
<br />
===Enable CAN bus and set CAN2 to 1MB===<br />
Connect the RaceCapture app to your RaceCapture system. <br />
<br />
* Go to Setup/CAN bus and ensure the CAN bus is turned '''ON'''<br />
* Ensure CAN2 is set to 1M Baud<br />
<br />
===Enable the TireX CAN mapping===<br />
* Go to '''Setup/CAN mapping'''<br />
<br />
* Ensure CAN Channels are set to '''ON'''<br />
<br />
* Press the Presets button, then select the TireX 4 zone preset.<br />
** '''Note''' - you may need to press the cloud update button to fetch the newest presets.<br />
<br />
===Write the settings back to your RaceCapture System===<br />
* Press the '''Write''' button to write your new settings to the system. <br />
<br />
===Verify the TireX data on the dashboard===<br />
====Using the overview gauge====<br />
* Switch to the RaceCapture dashboard mode.<br />
* Create a new Dashboard screen by pressing the gear icon in the upper right of the screen. <br />
* Select the TireX test dashboard preset<br />
** '''Note''' - you may need to press the cloud update button to fetch the newest presets.<br />
<br />
====Using the raw channels view====<br />
* Navigate to the Raw Channels view of the dashboard by pressing the left or right arrows on the dashboard screen.<br />
<br />
* You can observe all of the available telemetry channels, including the individual channels for the TireX sensors.<br />
<br />
=Specifications=<br />
''Specifications are preliminary and subject to change''<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Feature<br />
! Description<br />
|-<br />
| Sensor type<br />
| Thermal array<br />
|-<br />
| Sensor Resolution<br />
| 16 x 12 (196 pixels)<br />
|-<br />
| Object temperature range<br />
| 0 - 127.5C (tire temperature mode (factory default)) / 0 - 255C (full frame mode)<br />
|-<br />
| Field of view<br />
| 110 x 75 degrees<br />
|-<br />
| Accuracy<br />
| 1C<br />
|-<br />
| Temperature zones (tire)<br />
| 1 / 2 / 4 (factory default) / 8 / 16<br />
|-<br />
| Sample rate<br />
| 0.5 - 64Hz (Tire temperature mode, 16Hz factory default) 0.5 - 10Hz (Full frame mode)<br />
|-<br />
| Processing Engine<br />
| 32 bit<br />
|-<br />
| Configurable positions<br />
| 4 (Left-Front (factory default), Right-Front, Left-Rear, Right-Rear); Reversible orientation<br />
|-<br />
| Emissivity<br />
| Configurable (0.95 default)<br />
|-<br />
| Ambient temperature compensation<br />
| Automatic (adjustable offset)<br />
|-<br />
! Electrical<br />
! <br />
|-<br />
| Interface<br />
| CAN 2.0<br />
|-<br />
| Supply voltage<br />
| 6 - 14v (automotive power)<br />
|-<br />
| Power<br />
| 200mW<br />
|-<br />
| Harness<br />
| M8 4P Male, 250mm length<br />
|-<br />
! CAN bus<br />
!<br />
|-<br />
| CAN baud rate<br />
| 500K and 1M, jumper configurable (1M default)<br />
|-<br />
| Address space<br />
| 4 separate address spaces (configurable via jumper)<br />
|-<br />
| Termination<br />
| No Termination (configurable via jumper)<br />
|-<br />
|-<br />
! Physical / Environmental<br />
!<br />
|-<br />
| Construction<br />
| CNC aluminum<br />
|-<br />
| Dimensions <br />
| 64 x 46 x 12.5mm<br />
|-<br />
| Weight<br />
| 10 grams<br />
|-<br />
| Operating temperature<br />
| -40 - 85C<br />
|-<br />
| IP rating<br />
| IP65<br />
|}<br />
<br />
=Dimensions / Mounting=<br />
[[image:TireX_dimensions.png]]<br />
<br />
==Mounting Orientation==<br />
We recommend mounting TireX above the tire, with the cable pointing towards the rear of the vehicle.<br />
* '''Note:''' you can clock the mounting point so the sensor is mounted at the front or rear of the wheel well; just ensure the orientation remains the same. <br />
[[Image:tirex_mounting_orientation.jpg]]<br />
==Mounting Distance==<br />
TireX has a wide aspect ratio of 110 degrees, so you can use some trigonometry to calculate the distance. Here are some examples:<br />
<br />
* 205 width = 71mm<br />
* 225 width = 79mm<br />
* 235 width = 82mm<br />
* 245 width = 85mm<br />
* 255 width = 89mm<br />
* 275 width = 96mm<br />
* 315 width = 110mm<br />
<br />
[https://www.triangle-calculator.com/?what=iso&a=C%3D110%2C+b%3D245&submit=Solve Here's a convenient online calculator]<br />
<br />
Tip: you can mount TireX at a further distance if you use the middle channels. Example:<br />
<br />
* if only using 8 channel, you can mount 2x the distance<br />
* If only using 16 channels, you can mount 4x the distance<br />
<br />
* '''Note:''' 4 channels is often the resolution of choice to reduce the bulk of data generated, and gives perfectly adequate results for determining tire performance.<br />
<br />
=Electrical / CAN connection=<br />
* Connection is provided by a standard industrial M8 4P male plug. [[Harness_specifications#Power_.2B_CAN_Single_interconnect|Pigtails and connectors are available from Autosport Labs, or 3rd parties]]<br />
* TireX is designed to connect to regular automotive 12-14v per our [[Harness_specifications#Power_.2B_CAN_Single_interconnect|Standard Power interconnect]]<br />
<br />
<br/><br />
[[image:M8_4P_male.png]]<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Pin<br />
! Connecton<br />
! Wire Color<br />
|-<br />
| Pin 1<br />
| CAN Low<br />
| Brown<br />
|-<br />
| Pin 2<br />
| Voltage supply (6-14v)<br />
| White<br />
|-<br />
| Pin 3<br />
| CAN High<br />
| Blue<br />
|-<br />
| Pin 4<br />
| Ground<br />
| Black<br />
|}<br />
<br />
== CAN termination ==<br />
By default, TireX is not terminated. We recommend using the external termination adapter, connected inline on the last sensor of the chain.<br />
<br />
[[image:autosport_labs_inline_can_terminator.jpg]]<br />
<br />
This terminator is [https://www.autosportlabs.com/product/inline-can-terminator/ available separately] or [https://www.autosportlabs.com/product/tirex-4-corner-plug-and-play-harness/ included with the TireX plug and play harness].<br />
<br />
=== Customizing Termination === <br />
CAN termination can be enabled on TireX by disassembling the sensor and closing the jumper on the TireX circuit board. <br />
<br />
[[image:tirex_jumpers_can_termination.png|500px]]<br />
* '''Note''': See the [[TireX#Hardware_configuration|Hardware configuration section]] for details on making this modification.<br />
<br />
=Zone Configuration=<br />
===Up to 16 configurable temperature zones===<br />
TireX can be configured to report up to 16 temperature zones across the sensor's entire field of vision.<br />
<br />
When configured for 2 or more zones, temperature for zones are reported in the order of inside through outside edge.<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Zones<br />
! Coverage<br />
|-<br />
| 1<br />
| Averaged across the entire field of vision<br />
|-<br />
| 2<br />
| Each zone averaged across 1/2 the field of vision<br />
|-<br />
| 4<br />
| Each zone averaged across 1/4 the field of vision<br />
|-<br />
| 8<br />
| Each zone averaged across 1/8 the field of vision<br />
|}<br />
===Reversible orientation based on sensor position===<br />
TireX zones are reversed based on the configured sensor position (left vs right side) to allow identical physical sensor mounting orientation between sides.<br />
[[file:TireX_zones.jpg|800px]]<br />
<br />
=CAN bus protocol=<br />
<br />
==CAN protocol files==<br />
DBC File for standard 4 corner, 4 zone configuration: [[file:TireX_standard.dbc.zip]]<br />
<br />
==Overview==<br />
The CAN bus API provides the configuration, control and sensor broadcast interface for TireX<br />
<br />
==Conventions==<br />
===Formula===<br />
* Conversion formulas are expressed as converting the CAN encoded value to real-world value.<br />
<br />
* Example:<br />
** Encoded value in CAN message: 95<br />
** Formula: A / 100<br />
** Real-world value: 0.95<br />
<br />
===Data encoding===<br />
====Endian====<br />
16 and 32 bit values are encoded as little endian.<br />
<br />
====Single and mulit-byte values====<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Value<br />
! Symbol Reference<br />
|-<br />
| 8 Bit values<br />
| A<br />
|-<br />
| 16 bit values<br />
| A (low byte) / B (high byte)<br />
|-<br />
| 32 Bit values<br />
| A (low byte) / B / C / D (high byte)<br />
|}<br />
<br />
==CAN Baud rate==<br />
<br />
1M and 500K rates are supported. <br />
<br />
1M is enabled by default; cut the jumper labeled '''BAUD''' on the bottom of TireX to enable 500K rate.<br />
<br />
[[image:tirex_jumpers_can_term.png|500px]]<br />
* '''Note''': See the [[TireX#Hardware_configuration|Hardware configuration section]] for details on making this modification.<br />
<br />
==CAN base ID==<br />
<br />
A configured TireX sensor will have a CAN base address that is a combination of the '''Main Base ID''' + '''Position Offset''' based on the installed position of the sensor on the vehicle. This combination creates a final '''Sensor Base ID'''.<br />
<br />
All broadcast and configuration CAN messages is offset from the final calculated '''Sensor Base ID'''.<br />
<br />
===Default Main Base ID===<br />
Default Main CAN base ID is '''0xA100 (41216)'''<br />
<br />
====Adjusting Main Base ID====<br />
The base address is determined by the state of the '''ADR1''' and '''ADR2''' jumpers. By default, the jumpers are closed (bridged); the jumper can be opened by cutting the trace between the pads. To re-close the jumper, add a small amount of solder to bridge the gap between the pads you want to close.<br />
* '''Note:''' In the vast majority of the cases you can use the default Main Base ID of 0xA100.<br />
<br />
[[image:tirex_jumpers_base_id.png|500px]]<br />
* '''Note''': See the [[TireX#Hardware_configuration|Hardware configuration section]] for details on making this modification.<br />
<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! ADR2 Jumper<br />
! ADR1 Jumper<br />
! Address<br />
|-<br />
| Closed<br />
| Closed<br />
| 0xA100 (41216)<br />
|-<br />
| Closed<br />
| Open<br />
| 0xB100 (45312)<br />
|-<br />
| Open<br />
| Closed<br />
| 0xC100 (49408)<br />
|-<br />
| Open<br />
| Open<br />
| 0xD100 (53504)<br />
|}<br />
* Opening the jumper ADR1 will add (0x1000) 4096 to the base ID<br />
* Opening the jumper ADR2 will add (0x2000) 8192 to the base ID<br />
* Opening both jumpers ADR1 and ADR2 will add (0x3000) 12288 to the base ID.<br />
<br />
==Sensor Position Offset==<br />
The sensor position will offset the '''Main Base ID''' by the position of the sensor as defined in the table, to set the final '''Sensor Base ID'''.<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Position ID<br />
! Sensor Position<br />
! Offset<br />
|-<br />
| 0<br />
| Left-Front<br />
| 0x0 (0)<br />
|-<br />
| 1<br />
| Right-Front<br />
| 0x100 (256)<br />
|-<br />
| 2<br />
| Left-Rear<br />
| 0x200 (512)<br />
|-<br />
| 3<br />
| Right-Rear<br />
| 0x300 (768)<br />
|}<br />
<br />
===Example: default base address (0xA100)===<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Sensor Position<br />
! Final Sensor Base ID<br />
|-<br />
| Left-Front<br />
| 0xA100<br />
|-<br />
| Right-Front<br />
| 0xA200<br />
|-<br />
| Left-Rear<br />
| 0xA300<br />
|-<br />
| Right-Rear<br />
| 0xA400<br />
|}<br />
<br />
* '''Note:''' Single sensor kits are configured as left-front tire position. This can be changed by sending the appropriate configuration message.<br />
<br />
==CAN Messages==<br />
The announcement message is broadcast by TireX once per second for 10 seconds upon power up.<br />
<br />
===Announcement===<br />
'''CAN ID:''' Sensor Base ID + 0<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Sample Rate<br />
| unsigned<br />
| A * 1<br />
| 0.5 - 64Hz (0 = 0.5Hz)<br />
|-<br />
| 1<br />
| Temperature Zones<br />
| unsigned<br />
| A * 1<br />
| Number of configured temperature zones (1 / 2 / 4 / 8 / 16) (factory default is 4)<br />
|-<br />
| 2<br />
| Sensor Position<br />
| Unsigned<br />
| A * 1<br />
| Configured sensor position (0=Left-Front / 1=Right-Front / 2=Left-Rear / 3=Right-Rear)<br />
|-<br />
| 3<br />
| Reserved<br />
|<br />
|<br />
| <br />
|-<br />
| 4<br />
| Reserved<br />
|<br />
|<br />
|<br />
|-<br />
| 5<br />
| Major Version<br />
| unsigned<br />
| A * 1<br />
| Firmware Major Version Number<br />
|-<br />
| 6<br />
| Minor Version<br />
| unsigned<br />
| A * 1<br />
| Firmware Minor Version Number<br />
|-<br />
| 7<br />
| Patch Version<br />
| unsigned<br />
| A * 1<br />
| Firmware Patch version number<br />
|}<br />
<br />
===Statistics===<br />
<br />
Broadcast by TireX every 10 seconds.<br />
<br />
'''CAN ID:''' Sensor Base ID + 2<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Sensor Ambient Temperature<br />
| unsigned<br />
| A * 1<br />
| 0 - 255C<br />
|-<br />
| 1<br />
| Reserved<br />
| <br />
| <br />
| <br />
|-<br />
| 2<br />
| Reserved<br />
| <br />
| <br />
| <br />
|-<br />
| 3<br />
| Reserved<br />
| <br />
| <br />
| <br />
|-<br />
| 4<br />
| Reserved<br />
| <br />
| <br />
| <br />
|-<br />
| 5<br />
| Major Version<br />
| unsigned<br />
| A * 1<br />
| Firmware Major Version Number<br />
|-<br />
| 6<br />
| Minor Version<br />
| unsigned<br />
| A * 1<br />
| Firmware Minor Version Number<br />
|-<br />
| 7<br />
| Patch Version<br />
| unsigned<br />
| A * 1<br />
| Firmware Patch version number<br />
|}<br />
<br />
===Configuration Preferences===<br />
<br />
This message is broadcasted to TireX to configure the sensor's preferences. The settings are persisted in TireX's flash memory.<br />
<br />
'''CAN ID:''' Sensor Base ID + 3<br />
<br />
* '''Note:''' To read the current settings, broadcast a message with this CAN ID with no data (data length of 0) - TireX will reply with the current configuration. <br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Sample Rate<br />
| unsigned<br />
| A * 1<br />
| Rate to report sensor values ( 0.5 - 64Hz) <br/><br/>Valid sample rates: 0 (0.5Hz) / 1 (1Hz) / 2 (2Hz) / 4 (4Hz) / 8 (8Hz) / 16 (16Hz) / 32 (32Hz) / 64 (64Hz).<br/><br/>Specifying an invalid value will select the default value of 16<br />
|-<br />
| 1<br />
| Temperature zones <br />
| unsigned<br />
| A * 1<br />
| Number of temperature zones. Valid zones: 1 / 2 / 4 / 8 / 16.<br/><br/>Specifying an invalid value will select the default value of 4.<br />
|-<br />
| 2<br />
| Sensor Position<br />
| unsigned<br />
| A * 1<br />
| Location of the sensor on the vehicle. This position adjusts the '''Sensor Base ID'''. <br/><br/>Valid Positions 0 (Left-Front) / 1 (Right-Front) / 2 (Left-Rear) / 3 (Right-Rear).<br/><br/>Specifying an invalid value will select the default value of 0 (Left-Front). <br/><br/>'''Note:''' The sensor position affects the orientation of the sensor zones. Sensor Position 1 and 3 will report temperature zones left - right; Position 0 and 2 will report temperature zones right - left.<br/><br />
'''Note''': When in full frame mode, this setting is ignored.<br />
|-<br />
| 3<br />
| Frame mode<br />
| unsigned<br />
| A * 1<br />
| 0 = Standard (Tire Temperature) mode; 1 = Full Frame mode<br />
|-<br />
| 4<br />
| Reserved<br />
|<br />
|<br />
| <br />
|-<br />
| 5<br />
| Reserved<br />
|<br />
|<br />
| <br />
|-<br />
| 6<br />
| Reserved<br />
|<br />
|<br />
| <br />
|-<br />
| 7<br />
| Reserved<br />
|<br />
|<br />
| <br />
|}<br />
<br />
===Calibration Preferences===<br />
<br />
This message is broadcasted to TireX to configure the sensor's calibration. The settings are persisted in TireX's flash memory.<br />
<br />
'''TireX is calibrated at the factory and normally these values will not need to be changed.'''<br />
<br />
'''CAN ID:''' Sensor Base ID + 4<br />
<br />
* '''Note:''' To read the current settings, broadcast a message with this CAN ID with no data (data length of 0) - TireX will reply with the current configuration. <br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Emissivity<br />
| unsigned<br />
| A / 100<br />
| Emissivity of the target. Default is 0.95<br />
|-<br />
| 1<br />
| Ambient temperature compensation<br />
| unsigned<br />
| A * 1<br />
| Value in C. Default is 2<br />
|-<br />
| 2<br />
| Sensor Resolution<br />
| unsigned<br />
| 16-19<br />
| Sensor ADC resolution, in bits. Default is 18<br />
|-<br />
| 3<br />
| Reserved<br />
| <br />
|<br />
|<br />
|-<br />
| 4<br />
| Reserved<br />
| <br />
|<br />
|<br />
|-<br />
| 5<br />
| Reserved<br />
| <br />
|<br />
|<br />
|-<br />
| 6<br />
| Reserved<br />
| <br />
|<br />
|<br />
|-<br />
| 7<br />
| Reserved<br />
| <br />
|<br />
|<br />
|}<br />
<br />
===Sensor Temperature Value Broadcast===<br />
The following messages will contain the temperature values based on the number of temperature zones configured, broadcast at the currently configured sample rate.<br />
<br />
* '''Note:''' The sensor position affects the orientation of the sensor zones:<br />
** Position 1 and 3 will report temperature zones left - right;<br />
** Position 0 and 2 will report temperature zones right - left. <br />
====1 Zone====<br />
'''CAN ID:''' Sensor Base ID + 0x20 (32)<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Zone 1 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|}<br />
<br />
====2 Zones====<br />
'''CAN ID:''' Sensor Base ID + 0x20 (32)<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Zone 1 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 1<br />
| Zone 2 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|}<br />
<br />
====4 Zones====<br />
'''CAN ID:''' Sensor Base ID + 0x20 (32)<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Zone 1 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 1<br />
| Zone 2 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 2<br />
| Zone 3 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 3<br />
| Zone 4 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|}<br />
<br />
====8 Zones====<br />
'''CAN ID:''' Sensor Base ID + 0x20 (32)<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Zone 1 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 1<br />
| Zone 2 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 2<br />
| Zone 3 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 3<br />
| Zone 4 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 4<br />
| Zone 5 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 5<br />
| Zone 6 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 6<br />
| Zone 7 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 7<br />
| Zone 8 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|}<br />
====16 Zones====<br />
'''CAN ID:''' Sensor Base ID + 0x20 (32)<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Zone 1 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 1<br />
| Zone 2 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 2<br />
| Zone 3 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 3<br />
| Zone 4 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 4<br />
| Zone 5 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 5<br />
| Zone 6 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 6<br />
| Zone 7 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 7<br />
| Zone 8 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|}<br />
<br />
'''CAN ID:''' Sensor Base ID + 0x21 (33)<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Zone 9 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 1<br />
| Zone 10 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 2<br />
| Zone 11 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 3<br />
| Zone 12 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 4<br />
| Zone 13 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 5<br />
| Zone 14 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 6<br />
| Zone 15 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 7<br />
| Zone 16 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|}<br />
<br />
====Full Frame Mode====<br />
'''CAN ID:''' Sensor Base ID + 0x40 (64)<br />
<br />
* '''Note:''' Pixels increment linearly by row x column<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Pixel 0 value<br />
| unsigned<br />
| A<br />
| 0 - 255C<br />
|-<br />
| ...<br />
| ...<br />
| ...<br />
| ...<br />
| ...<br />
|-<br />
| 191<br />
| Pixel 191 value<br />
| unsigned<br />
| A<br />
| 0 - 255C<br />
|}<br />
= Hardware configuration =<br />
Hardware defaults can be altered by disassembling TireX and adjusting jumpers on the bottom of the circuit board. <br />
<br />
* To break a jumper: scrape the space between the jumper pads using a sharp tool, such as a razor blade or very small screwdriver. <br />
* To re-close a jumper: use a fine tip soldering iron and add solder between the jumper pads. <br />
<br />
[[image:tirex_jumper_settings.png|500px]]<br />
<br />
When re-assembling the sensor, ensure the sensor and enclosure seals are correctly seated, and torque the enclosure screws evenly.<br />
<br />
= Disassembly and replacing harness = <br />
In the event the TireX pigtail is damaged, it can be replaced by the end user relatively easily. <br />
<br />
Disassembly steps:<br />
* Use a small screwdriver to remove the 4 outer screws.<br />
* Remove the black gasket, and set aside<br />
* Gently pry away the old harness from the notch of the enclosure<br />
* Remove the circuit board by pressing the sensor from the outside of the enclosure. <br />
* Remove the red seal around the sensor, and set aside.<br />
* Using a small flat bladed screwdriver, '''carefully''' unplug the the harness from the circuit board. Gently pry away the harness connection from each side until it pops out of the connector. <br />
<br />
<br />
Re-assembly steps:<br />
* Re-insert the red sensor seal into the back of the main enclosure, so that it is installed and flush with the outside of the enclosure<br />
* Plug the new harness into the circuit board. The connector mounts only one direction, and it should press in with just finger pressure. Ensure it is fully seated.<br />
* Locate the cable notch on the enclosure. Press the harness into this notch, centered on the thick section near the end of the harness, close to the PCB connector. You may use finger / thumb pressure, or gently with a pair of cushioned pliers to prevent marring the enclosure. (you can wrap tape around the jaws of the pliers). Press it in until it is fully inserted into the notch.<br />
* Press the PCB into the enclosure, focusing on pressing the sensor into the red seal.<br />
* Inspect the opposite side of the enclosure, ensuring the sensor is properly seated into the seal, and no edges are caught. <br />
* On the PCB, ensure the silicone pad is still mounted opposite of the sensor. <br />
* Re-attach the black gasket onto the back lid of the enclosure, making sure the notch in the gasket matches the relief made in the lid to allow cable exit.<br />
* Mount the back lid of onto the main body of the enclosure, ensuring the black gasket is properly inserted into the enclosure, with no pinching or caught edges. The stepped design of the gasket is designed to sure the back lid is perfectly centered. '''Ensure the cable relief of the bottom lid is installed in the direction where the cable exits'''<br />
* Re-attach the 4 screws, torquing evenly until there is slight compression of the gasket.<br />
* Test for proper operation before re-attaching it to the vehicle.<br />
*</div>Brentphttps://wiki.autosportlabs.com/index.php?title=TireX&diff=9922TireX2023-12-27T20:25:19Z<p>Brentp: /* Replacing harness */</p>
<hr />
<div>=Introduction=<br />
TireX is a powerful and versatile multi-zone tire temperature sensor designed for motorsports applications. <br />
<br/><br />
[[file:tirex_3quarter.jpg|600px]]<br />
<br />
==Features==<br />
===High Performance===<br />
TireX can be configured to report up to 16 temperature zones, supporting sample rates up to 64Hz via CAN bus with the powerful embedded 32 bit processor.<br />
===Rugged and Compact===<br />
TireX features a rugged, low profile design with a wide field of view for space constrained environments. <br />
===Flexible Setup===<br />
* Temperature zones and sensor calibration is customizable by the end user<br />
* Sensor position can be assigned to provide consistent data reporting between left and right sides of vehicle. <br />
* CAN bus can be set for 1MB or 500K (default is 1MB)<br />
<br />
=Quick Setup Guide=<br />
The following setup assumes you have the following:<br />
* RaceCapture system<br />
* Plug and play wiring harness<br />
* Powered CAN hub kit<br />
* RaceCapture to hub integration cable<br />
<br />
==Hardware Setup==<br />
===TireX 4-corner plug and play harness===<br />
We recommend using the TireX 4-corner plug and play harness for the easiest installation.<br/><br />
https://www.autosportlabs.com/product/tirex-4-corner-plug-and-play-harness/<br />
===By System===<br />
===For newer plug and play RaceCapture and PodiumConnect systems===<br />
You have two plug and play options for connecting the TireX harness:<br />
====Using the Dual CAN hub====<br />
Get the 8 port hub and dual CAN link cable<br/><br />
https://www.autosportlabs.com/product/powered-8-port-dual-can-bus-hub-kit/<br/><br />
https://www.autosportlabs.com/product/racecapture-m8-to-dual-can-bus-link-cable/<br/><br />
The cable connects the hub to your system, and then the TireX harness plugs into the hub. <br />
====Minimal installation using the Dual CAN splitter====<br />
For a minimal installation, use the Dual CAN splitter<br/><br />
https://www.autosportlabs.com/product/can1-can2-dual-can-splitter/<br/><br />
This splitter connects to the dual CAN port of your system, and TireX connects to the CAN2 branch on the splitter.<br />
===For older generation RaceCapture systems with RJ45 connector===<br />
====Plug and Play option====<br />
Get the 8 port hub and dual CAN link cable -> RJ45<br/><br />
https://www.autosportlabs.com/product/powered-8-port-dual-can-bus-hub-kit/<br/><br />
https://www.autosportlabs.com/product/racecapture-rj45-to-dual-can-bus-link-cable/<br/><br />
The cable plugs into the RJ45 port of your RaceCapture/Pro, and then plugs into the hub. Then, the TireX harness plugs into the hub. <br />
====Minimal installation (requires some custom wiring)====<br />
Get the Device CAN pigtail<br/><br />
https://www.autosportlabs.com/product/can-power-pigtail-for-device/<br/><br />
This will plug into the TireX harness, and then on the pigtail side you will connect it to CAN2 on your system (molex or RJ45 port) and then connect it to the same 12v power used for your system.<br />
<br />
===For other data systems===<br />
Get the Device CAN pigtail. <br />
https://www.autosportlabs.com/product/can-power-pigtail-for-device/<br/><br />
This will plug into the TireX harness, and then on the pigtail side you will connect it to your system's CAN bus and 12v, on the same circuit powering your data system.<br />
==TireX Connection==<br />
===Connect Each TireX sensor to the Wiring harness===<br />
* Connect each TireX sensor to one of the Y-splitter connections of the TireX plug and play harness.<br />
* Connect the last TireX sensor to the end of the harness chain, where the CAN terminator is attached.<br />
<br />
==Software Setup==<br />
https://i.imgur.com/rDiKXpC.gif<br />
<br />
===Enable CAN bus and set CAN2 to 1MB===<br />
Connect the RaceCapture app to your RaceCapture system. <br />
<br />
* Go to Setup/CAN bus and ensure the CAN bus is turned '''ON'''<br />
* Ensure CAN2 is set to 1M Baud<br />
<br />
===Enable the TireX CAN mapping===<br />
* Go to '''Setup/CAN mapping'''<br />
<br />
* Ensure CAN Channels are set to '''ON'''<br />
<br />
* Press the Presets button, then select the TireX 4 zone preset.<br />
** '''Note''' - you may need to press the cloud update button to fetch the newest presets.<br />
<br />
===Write the settings back to your RaceCapture System===<br />
* Press the '''Write''' button to write your new settings to the system. <br />
<br />
===Verify the TireX data on the dashboard===<br />
====Using the overview gauge====<br />
* Switch to the RaceCapture dashboard mode.<br />
* Create a new Dashboard screen by pressing the gear icon in the upper right of the screen. <br />
* Select the TireX test dashboard preset<br />
** '''Note''' - you may need to press the cloud update button to fetch the newest presets.<br />
<br />
====Using the raw channels view====<br />
* Navigate to the Raw Channels view of the dashboard by pressing the left or right arrows on the dashboard screen.<br />
<br />
* You can observe all of the available telemetry channels, including the individual channels for the TireX sensors.<br />
<br />
=Specifications=<br />
''Specifications are preliminary and subject to change''<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Feature<br />
! Description<br />
|-<br />
| Sensor type<br />
| Thermal array<br />
|-<br />
| Sensor Resolution<br />
| 16 x 12 (196 pixels)<br />
|-<br />
| Object temperature range<br />
| 0 - 127.5C (tire temperature mode (factory default)) / 0 - 255C (full frame mode)<br />
|-<br />
| Field of view<br />
| 110 x 75 degrees<br />
|-<br />
| Accuracy<br />
| 1C<br />
|-<br />
| Temperature zones (tire)<br />
| 1 / 2 / 4 (factory default) / 8 / 16<br />
|-<br />
| Sample rate<br />
| 0.5 - 64Hz (Tire temperature mode, 16Hz factory default) 0.5 - 10Hz (Full frame mode)<br />
|-<br />
| Processing Engine<br />
| 32 bit<br />
|-<br />
| Configurable positions<br />
| 4 (Left-Front (factory default), Right-Front, Left-Rear, Right-Rear); Reversible orientation<br />
|-<br />
| Emissivity<br />
| Configurable (0.95 default)<br />
|-<br />
| Ambient temperature compensation<br />
| Automatic (adjustable offset)<br />
|-<br />
! Electrical<br />
! <br />
|-<br />
| Interface<br />
| CAN 2.0<br />
|-<br />
| Supply voltage<br />
| 6 - 14v (automotive power)<br />
|-<br />
| Power<br />
| 200mW<br />
|-<br />
| Harness<br />
| M8 4P Male, 250mm length<br />
|-<br />
! CAN bus<br />
!<br />
|-<br />
| CAN baud rate<br />
| 500K and 1M, jumper configurable (1M default)<br />
|-<br />
| Address space<br />
| 4 separate address spaces (configurable via jumper)<br />
|-<br />
| Termination<br />
| No Termination (configurable via jumper)<br />
|-<br />
|-<br />
! Physical / Environmental<br />
!<br />
|-<br />
| Construction<br />
| CNC aluminum<br />
|-<br />
| Dimensions <br />
| 64 x 46 x 12.5mm<br />
|-<br />
| Weight<br />
| 10 grams<br />
|-<br />
| Operating temperature<br />
| -40 - 85C<br />
|-<br />
| IP rating<br />
| IP65<br />
|}<br />
<br />
=Dimensions / Mounting=<br />
[[image:TireX_dimensions.png]]<br />
<br />
==Mounting Orientation==<br />
We recommend mounting TireX above the tire, with the cable pointing towards the rear of the vehicle.<br />
* '''Note:''' you can clock the mounting point so the sensor is mounted at the front or rear of the wheel well; just ensure the orientation remains the same. <br />
[[Image:tirex_mounting_orientation.jpg]]<br />
==Mounting Distance==<br />
TireX has a wide aspect ratio of 110 degrees, so you can use some trigonometry to calculate the distance. Here are some examples:<br />
<br />
* 205 width = 71mm<br />
* 225 width = 79mm<br />
* 235 width = 82mm<br />
* 245 width = 85mm<br />
* 255 width = 89mm<br />
* 275 width = 96mm<br />
* 315 width = 110mm<br />
<br />
[https://www.triangle-calculator.com/?what=iso&a=C%3D110%2C+b%3D245&submit=Solve Here's a convenient online calculator]<br />
<br />
Tip: you can mount TireX at a further distance if you use the middle channels. Example:<br />
<br />
* if only using 8 channel, you can mount 2x the distance<br />
* If only using 16 channels, you can mount 4x the distance<br />
<br />
* '''Note:''' 4 channels is often the resolution of choice to reduce the bulk of data generated, and gives perfectly adequate results for determining tire performance.<br />
<br />
=Electrical / CAN connection=<br />
* Connection is provided by a standard industrial M8 4P male plug. [[Harness_specifications#Power_.2B_CAN_Single_interconnect|Pigtails and connectors are available from Autosport Labs, or 3rd parties]]<br />
* TireX is designed to connect to regular automotive 12-14v per our [[Harness_specifications#Power_.2B_CAN_Single_interconnect|Standard Power interconnect]]<br />
<br />
<br/><br />
[[image:M8_4P_male.png]]<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Pin<br />
! Connecton<br />
! Wire Color<br />
|-<br />
| Pin 1<br />
| CAN Low<br />
| Brown<br />
|-<br />
| Pin 2<br />
| Voltage supply (6-14v)<br />
| White<br />
|-<br />
| Pin 3<br />
| CAN High<br />
| Blue<br />
|-<br />
| Pin 4<br />
| Ground<br />
| Black<br />
|}<br />
<br />
== CAN termination ==<br />
By default, TireX is not terminated. We recommend using the external termination adapter, connected inline on the last sensor of the chain.<br />
<br />
[[image:autosport_labs_inline_can_terminator.jpg]]<br />
<br />
This terminator is [https://www.autosportlabs.com/product/inline-can-terminator/ available separately] or [https://www.autosportlabs.com/product/tirex-4-corner-plug-and-play-harness/ included with the TireX plug and play harness].<br />
<br />
=== Customizing Termination === <br />
CAN termination can be enabled on TireX by disassembling the sensor and closing the jumper on the TireX circuit board. <br />
<br />
[[image:tirex_jumpers_can_termination.png|500px]]<br />
* '''Note''': See the [[TireX#Hardware_configuration|Hardware configuration section]] for details on making this modification.<br />
<br />
=Zone Configuration=<br />
===Up to 16 configurable temperature zones===<br />
TireX can be configured to report up to 16 temperature zones across the sensor's entire field of vision.<br />
<br />
When configured for 2 or more zones, temperature for zones are reported in the order of inside through outside edge.<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Zones<br />
! Coverage<br />
|-<br />
| 1<br />
| Averaged across the entire field of vision<br />
|-<br />
| 2<br />
| Each zone averaged across 1/2 the field of vision<br />
|-<br />
| 4<br />
| Each zone averaged across 1/4 the field of vision<br />
|-<br />
| 8<br />
| Each zone averaged across 1/8 the field of vision<br />
|}<br />
===Reversible orientation based on sensor position===<br />
TireX zones are reversed based on the configured sensor position (left vs right side) to allow identical physical sensor mounting orientation between sides.<br />
[[file:TireX_zones.jpg|800px]]<br />
<br />
=CAN bus protocol=<br />
<br />
==CAN protocol files==<br />
DBC File for standard 4 corner, 4 zone configuration: [[file:TireX_standard.dbc.zip]]<br />
<br />
==Overview==<br />
The CAN bus API provides the configuration, control and sensor broadcast interface for TireX<br />
<br />
==Conventions==<br />
===Formula===<br />
* Conversion formulas are expressed as converting the CAN encoded value to real-world value.<br />
<br />
* Example:<br />
** Encoded value in CAN message: 95<br />
** Formula: A / 100<br />
** Real-world value: 0.95<br />
<br />
===Data encoding===<br />
====Endian====<br />
16 and 32 bit values are encoded as little endian.<br />
<br />
====Single and mulit-byte values====<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Value<br />
! Symbol Reference<br />
|-<br />
| 8 Bit values<br />
| A<br />
|-<br />
| 16 bit values<br />
| A (low byte) / B (high byte)<br />
|-<br />
| 32 Bit values<br />
| A (low byte) / B / C / D (high byte)<br />
|}<br />
<br />
==CAN Baud rate==<br />
<br />
1M and 500K rates are supported. <br />
<br />
1M is enabled by default; cut the jumper labeled '''BAUD''' on the bottom of TireX to enable 500K rate.<br />
<br />
[[image:tirex_jumpers_can_term.png|500px]]<br />
* '''Note''': See the [[TireX#Hardware_configuration|Hardware configuration section]] for details on making this modification.<br />
<br />
==CAN base ID==<br />
<br />
A configured TireX sensor will have a CAN base address that is a combination of the '''Main Base ID''' + '''Position Offset''' based on the installed position of the sensor on the vehicle. This combination creates a final '''Sensor Base ID'''.<br />
<br />
All broadcast and configuration CAN messages is offset from the final calculated '''Sensor Base ID'''.<br />
<br />
===Default Main Base ID===<br />
Default Main CAN base ID is '''0xA100 (41216)'''<br />
<br />
====Adjusting Main Base ID====<br />
The base address is determined by the state of the '''ADR1''' and '''ADR2''' jumpers. By default, the jumpers are closed (bridged); the jumper can be opened by cutting the trace between the pads. To re-close the jumper, add a small amount of solder to bridge the gap between the pads you want to close.<br />
* '''Note:''' In the vast majority of the cases you can use the default Main Base ID of 0xA100.<br />
<br />
[[image:tirex_jumpers_base_id.png|500px]]<br />
* '''Note''': See the [[TireX#Hardware_configuration|Hardware configuration section]] for details on making this modification.<br />
<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! ADR2 Jumper<br />
! ADR1 Jumper<br />
! Address<br />
|-<br />
| Closed<br />
| Closed<br />
| 0xA100 (41216)<br />
|-<br />
| Closed<br />
| Open<br />
| 0xB100 (45312)<br />
|-<br />
| Open<br />
| Closed<br />
| 0xC100 (49408)<br />
|-<br />
| Open<br />
| Open<br />
| 0xD100 (53504)<br />
|}<br />
* Opening the jumper ADR1 will add (0x1000) 4096 to the base ID<br />
* Opening the jumper ADR2 will add (0x2000) 8192 to the base ID<br />
* Opening both jumpers ADR1 and ADR2 will add (0x3000) 12288 to the base ID.<br />
<br />
==Sensor Position Offset==<br />
The sensor position will offset the '''Main Base ID''' by the position of the sensor as defined in the table, to set the final '''Sensor Base ID'''.<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Position ID<br />
! Sensor Position<br />
! Offset<br />
|-<br />
| 0<br />
| Left-Front<br />
| 0x0 (0)<br />
|-<br />
| 1<br />
| Right-Front<br />
| 0x100 (256)<br />
|-<br />
| 2<br />
| Left-Rear<br />
| 0x200 (512)<br />
|-<br />
| 3<br />
| Right-Rear<br />
| 0x300 (768)<br />
|}<br />
<br />
===Example: default base address (0xA100)===<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Sensor Position<br />
! Final Sensor Base ID<br />
|-<br />
| Left-Front<br />
| 0xA100<br />
|-<br />
| Right-Front<br />
| 0xA200<br />
|-<br />
| Left-Rear<br />
| 0xA300<br />
|-<br />
| Right-Rear<br />
| 0xA400<br />
|}<br />
<br />
* '''Note:''' Single sensor kits are configured as left-front tire position. This can be changed by sending the appropriate configuration message.<br />
<br />
==CAN Messages==<br />
The announcement message is broadcast by TireX once per second for 10 seconds upon power up.<br />
<br />
===Announcement===<br />
'''CAN ID:''' Sensor Base ID + 0<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Sample Rate<br />
| unsigned<br />
| A * 1<br />
| 0.5 - 64Hz (0 = 0.5Hz)<br />
|-<br />
| 1<br />
| Temperature Zones<br />
| unsigned<br />
| A * 1<br />
| Number of configured temperature zones (1 / 2 / 4 / 8 / 16) (factory default is 4)<br />
|-<br />
| 2<br />
| Sensor Position<br />
| Unsigned<br />
| A * 1<br />
| Configured sensor position (0=Left-Front / 1=Right-Front / 2=Left-Rear / 3=Right-Rear)<br />
|-<br />
| 3<br />
| Reserved<br />
|<br />
|<br />
| <br />
|-<br />
| 4<br />
| Reserved<br />
|<br />
|<br />
|<br />
|-<br />
| 5<br />
| Major Version<br />
| unsigned<br />
| A * 1<br />
| Firmware Major Version Number<br />
|-<br />
| 6<br />
| Minor Version<br />
| unsigned<br />
| A * 1<br />
| Firmware Minor Version Number<br />
|-<br />
| 7<br />
| Patch Version<br />
| unsigned<br />
| A * 1<br />
| Firmware Patch version number<br />
|}<br />
<br />
===Statistics===<br />
<br />
Broadcast by TireX every 10 seconds.<br />
<br />
'''CAN ID:''' Sensor Base ID + 2<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Sensor Ambient Temperature<br />
| unsigned<br />
| A * 1<br />
| 0 - 255C<br />
|-<br />
| 1<br />
| Reserved<br />
| <br />
| <br />
| <br />
|-<br />
| 2<br />
| Reserved<br />
| <br />
| <br />
| <br />
|-<br />
| 3<br />
| Reserved<br />
| <br />
| <br />
| <br />
|-<br />
| 4<br />
| Reserved<br />
| <br />
| <br />
| <br />
|-<br />
| 5<br />
| Major Version<br />
| unsigned<br />
| A * 1<br />
| Firmware Major Version Number<br />
|-<br />
| 6<br />
| Minor Version<br />
| unsigned<br />
| A * 1<br />
| Firmware Minor Version Number<br />
|-<br />
| 7<br />
| Patch Version<br />
| unsigned<br />
| A * 1<br />
| Firmware Patch version number<br />
|}<br />
<br />
===Configuration Preferences===<br />
<br />
This message is broadcasted to TireX to configure the sensor's preferences. The settings are persisted in TireX's flash memory.<br />
<br />
'''CAN ID:''' Sensor Base ID + 3<br />
<br />
* '''Note:''' To read the current settings, broadcast a message with this CAN ID with no data (data length of 0) - TireX will reply with the current configuration. <br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Sample Rate<br />
| unsigned<br />
| A * 1<br />
| Rate to report sensor values ( 0.5 - 64Hz) <br/><br/>Valid sample rates: 0 (0.5Hz) / 1 (1Hz) / 2 (2Hz) / 4 (4Hz) / 8 (8Hz) / 16 (16Hz) / 32 (32Hz) / 64 (64Hz).<br/><br/>Specifying an invalid value will select the default value of 16<br />
|-<br />
| 1<br />
| Temperature zones <br />
| unsigned<br />
| A * 1<br />
| Number of temperature zones. Valid zones: 1 / 2 / 4 / 8 / 16.<br/><br/>Specifying an invalid value will select the default value of 4.<br />
|-<br />
| 2<br />
| Sensor Position<br />
| unsigned<br />
| A * 1<br />
| Location of the sensor on the vehicle. This position adjusts the '''Sensor Base ID'''. <br/><br/>Valid Positions 0 (Left-Front) / 1 (Right-Front) / 2 (Left-Rear) / 3 (Right-Rear).<br/><br/>Specifying an invalid value will select the default value of 0 (Left-Front). <br/><br/>'''Note:''' The sensor position affects the orientation of the sensor zones. Sensor Position 1 and 3 will report temperature zones left - right; Position 0 and 2 will report temperature zones right - left.<br/><br />
'''Note''': When in full frame mode, this setting is ignored.<br />
|-<br />
| 3<br />
| Frame mode<br />
| unsigned<br />
| A * 1<br />
| 0 = Standard (Tire Temperature) mode; 1 = Full Frame mode<br />
|-<br />
| 4<br />
| Reserved<br />
|<br />
|<br />
| <br />
|-<br />
| 5<br />
| Reserved<br />
|<br />
|<br />
| <br />
|-<br />
| 6<br />
| Reserved<br />
|<br />
|<br />
| <br />
|-<br />
| 7<br />
| Reserved<br />
|<br />
|<br />
| <br />
|}<br />
<br />
===Calibration Preferences===<br />
<br />
This message is broadcasted to TireX to configure the sensor's calibration. The settings are persisted in TireX's flash memory.<br />
<br />
'''TireX is calibrated at the factory and normally these values will not need to be changed.'''<br />
<br />
'''CAN ID:''' Sensor Base ID + 4<br />
<br />
* '''Note:''' To read the current settings, broadcast a message with this CAN ID with no data (data length of 0) - TireX will reply with the current configuration. <br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Emissivity<br />
| unsigned<br />
| A / 100<br />
| Emissivity of the target. Default is 0.95<br />
|-<br />
| 1<br />
| Ambient temperature compensation<br />
| unsigned<br />
| A * 1<br />
| Value in C. Default is 2<br />
|-<br />
| 2<br />
| Sensor Resolution<br />
| unsigned<br />
| 16-19<br />
| Sensor ADC resolution, in bits. Default is 18<br />
|-<br />
| 3<br />
| Reserved<br />
| <br />
|<br />
|<br />
|-<br />
| 4<br />
| Reserved<br />
| <br />
|<br />
|<br />
|-<br />
| 5<br />
| Reserved<br />
| <br />
|<br />
|<br />
|-<br />
| 6<br />
| Reserved<br />
| <br />
|<br />
|<br />
|-<br />
| 7<br />
| Reserved<br />
| <br />
|<br />
|<br />
|}<br />
<br />
===Sensor Temperature Value Broadcast===<br />
The following messages will contain the temperature values based on the number of temperature zones configured, broadcast at the currently configured sample rate.<br />
<br />
* '''Note:''' The sensor position affects the orientation of the sensor zones:<br />
** Position 1 and 3 will report temperature zones left - right;<br />
** Position 0 and 2 will report temperature zones right - left. <br />
====1 Zone====<br />
'''CAN ID:''' Sensor Base ID + 0x20 (32)<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Zone 1 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|}<br />
<br />
====2 Zones====<br />
'''CAN ID:''' Sensor Base ID + 0x20 (32)<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Zone 1 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 1<br />
| Zone 2 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|}<br />
<br />
====4 Zones====<br />
'''CAN ID:''' Sensor Base ID + 0x20 (32)<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Zone 1 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 1<br />
| Zone 2 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 2<br />
| Zone 3 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 3<br />
| Zone 4 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|}<br />
<br />
====8 Zones====<br />
'''CAN ID:''' Sensor Base ID + 0x20 (32)<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Zone 1 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 1<br />
| Zone 2 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 2<br />
| Zone 3 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 3<br />
| Zone 4 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 4<br />
| Zone 5 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 5<br />
| Zone 6 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 6<br />
| Zone 7 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 7<br />
| Zone 8 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|}<br />
====16 Zones====<br />
'''CAN ID:''' Sensor Base ID + 0x20 (32)<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Zone 1 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 1<br />
| Zone 2 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 2<br />
| Zone 3 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 3<br />
| Zone 4 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 4<br />
| Zone 5 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 5<br />
| Zone 6 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 6<br />
| Zone 7 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 7<br />
| Zone 8 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|}<br />
<br />
'''CAN ID:''' Sensor Base ID + 0x21 (33)<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Zone 9 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 1<br />
| Zone 10 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 2<br />
| Zone 11 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 3<br />
| Zone 12 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 4<br />
| Zone 13 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 5<br />
| Zone 14 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 6<br />
| Zone 15 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 7<br />
| Zone 16 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|}<br />
<br />
====Full Frame Mode====<br />
'''CAN ID:''' Sensor Base ID + 0x40 (64)<br />
<br />
* '''Note:''' Pixels increment linearly by row x column<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Pixel 0 value<br />
| unsigned<br />
| A<br />
| 0 - 255C<br />
|-<br />
| ...<br />
| ...<br />
| ...<br />
| ...<br />
| ...<br />
|-<br />
| 191<br />
| Pixel 191 value<br />
| unsigned<br />
| A<br />
| 0 - 255C<br />
|}<br />
= Hardware configuration =<br />
Hardware defaults can be altered by disassembling TireX and adjusting jumpers on the bottom of the circuit board. <br />
<br />
* To break a jumper: scrape the space between the jumper pads using a sharp tool, such as a razor blade or very small screwdriver. <br />
* To re-close a jumper: use a fine tip soldering iron and add solder between the jumper pads. <br />
<br />
[[image:tirex_jumper_settings.png|500px]]<br />
<br />
When re-assembling the sensor, ensure the sensor and enclosure seals are correctly seated, and torque the enclosure screws evenly.<br />
<br />
= Disassembly and replacing harness = <br />
In the event the TireX pigtail is damaged, it can be replaced by the end user relatively easily. <br />
<br />
Disassembly steps:<br />
* Use a small screwdriver to remove the 4 outer screws.<br />
* Remove the black gasket, and set aside<br />
* Gently pry away the old harness from the notch of the enclosure<br />
* Remove the circuit board by pressing the sensor from the outside of the enclosure. <br />
* Remove the red seal around the sensor, and set aside.<br />
* Using a small flat bladed screwdriver, '''carefully'' unplug the the harness from the circuit board. Gently pry away the harness connection from each side until it pops out of the connector. <br />
<br />
Re-assembly steps:<br />
* Re-insert the red sensor seal into the back of the main enclosure, so that it is installed and flush with the outside of the enclosure<br />
* Plug the new harness into the circuit board. The connector mounts only one direction, and it should press in with just finger pressure. Ensure it is fully seated.<br />
* Locate the cable notch on the enclosure. Press the harness into this notch, centered on the thick section near the end of the harness, close to the PCB connector. You may use finger / thumb pressure, or gently with a pair of cushioned pliers to prevent marring the enclosure. (you can wrap tape around a pair of pliers). Press it in until it is fully inserted into the notch.<br />
* Press the PCB into the enclosure, focusing on pressing the sensor into the red seal.<br />
* Inspect the opposite side of the enclosure, ensuring the sensor is properly seated into the seal, and no edges are caught. <br />
* On the PCB, ensure the silicone pad is still mounted opposite of the sensor. <br />
* Re-attach the black gasket onto the back lid of the enclosure, making sure the notch in the gasket matches the relief made in the lid to allow cable exit.<br />
* Mount the back lid of onto the main body of the enclosure, ensuring the black gasket is properly inserted into the enclosure, with no pinching or caught edges. The stepped design of the gasket is designed to sure the back lid is perfectly centered.<br />
* Re-attach the 4 screws, torquing evenly until there is slight compression of the gasket.<br />
* Test for proper operation before re-attaching it to the vehicle.<br />
*</div>Brentphttps://wiki.autosportlabs.com/index.php?title=TireX&diff=9921TireX2023-12-27T20:24:38Z<p>Brentp: /* Hardware configuration */</p>
<hr />
<div>=Introduction=<br />
TireX is a powerful and versatile multi-zone tire temperature sensor designed for motorsports applications. <br />
<br/><br />
[[file:tirex_3quarter.jpg|600px]]<br />
<br />
==Features==<br />
===High Performance===<br />
TireX can be configured to report up to 16 temperature zones, supporting sample rates up to 64Hz via CAN bus with the powerful embedded 32 bit processor.<br />
===Rugged and Compact===<br />
TireX features a rugged, low profile design with a wide field of view for space constrained environments. <br />
===Flexible Setup===<br />
* Temperature zones and sensor calibration is customizable by the end user<br />
* Sensor position can be assigned to provide consistent data reporting between left and right sides of vehicle. <br />
* CAN bus can be set for 1MB or 500K (default is 1MB)<br />
<br />
=Quick Setup Guide=<br />
The following setup assumes you have the following:<br />
* RaceCapture system<br />
* Plug and play wiring harness<br />
* Powered CAN hub kit<br />
* RaceCapture to hub integration cable<br />
<br />
==Hardware Setup==<br />
===TireX 4-corner plug and play harness===<br />
We recommend using the TireX 4-corner plug and play harness for the easiest installation.<br/><br />
https://www.autosportlabs.com/product/tirex-4-corner-plug-and-play-harness/<br />
===By System===<br />
===For newer plug and play RaceCapture and PodiumConnect systems===<br />
You have two plug and play options for connecting the TireX harness:<br />
====Using the Dual CAN hub====<br />
Get the 8 port hub and dual CAN link cable<br/><br />
https://www.autosportlabs.com/product/powered-8-port-dual-can-bus-hub-kit/<br/><br />
https://www.autosportlabs.com/product/racecapture-m8-to-dual-can-bus-link-cable/<br/><br />
The cable connects the hub to your system, and then the TireX harness plugs into the hub. <br />
====Minimal installation using the Dual CAN splitter====<br />
For a minimal installation, use the Dual CAN splitter<br/><br />
https://www.autosportlabs.com/product/can1-can2-dual-can-splitter/<br/><br />
This splitter connects to the dual CAN port of your system, and TireX connects to the CAN2 branch on the splitter.<br />
===For older generation RaceCapture systems with RJ45 connector===<br />
====Plug and Play option====<br />
Get the 8 port hub and dual CAN link cable -> RJ45<br/><br />
https://www.autosportlabs.com/product/powered-8-port-dual-can-bus-hub-kit/<br/><br />
https://www.autosportlabs.com/product/racecapture-rj45-to-dual-can-bus-link-cable/<br/><br />
The cable plugs into the RJ45 port of your RaceCapture/Pro, and then plugs into the hub. Then, the TireX harness plugs into the hub. <br />
====Minimal installation (requires some custom wiring)====<br />
Get the Device CAN pigtail<br/><br />
https://www.autosportlabs.com/product/can-power-pigtail-for-device/<br/><br />
This will plug into the TireX harness, and then on the pigtail side you will connect it to CAN2 on your system (molex or RJ45 port) and then connect it to the same 12v power used for your system.<br />
<br />
===For other data systems===<br />
Get the Device CAN pigtail. <br />
https://www.autosportlabs.com/product/can-power-pigtail-for-device/<br/><br />
This will plug into the TireX harness, and then on the pigtail side you will connect it to your system's CAN bus and 12v, on the same circuit powering your data system.<br />
==TireX Connection==<br />
===Connect Each TireX sensor to the Wiring harness===<br />
* Connect each TireX sensor to one of the Y-splitter connections of the TireX plug and play harness.<br />
* Connect the last TireX sensor to the end of the harness chain, where the CAN terminator is attached.<br />
<br />
==Software Setup==<br />
https://i.imgur.com/rDiKXpC.gif<br />
<br />
===Enable CAN bus and set CAN2 to 1MB===<br />
Connect the RaceCapture app to your RaceCapture system. <br />
<br />
* Go to Setup/CAN bus and ensure the CAN bus is turned '''ON'''<br />
* Ensure CAN2 is set to 1M Baud<br />
<br />
===Enable the TireX CAN mapping===<br />
* Go to '''Setup/CAN mapping'''<br />
<br />
* Ensure CAN Channels are set to '''ON'''<br />
<br />
* Press the Presets button, then select the TireX 4 zone preset.<br />
** '''Note''' - you may need to press the cloud update button to fetch the newest presets.<br />
<br />
===Write the settings back to your RaceCapture System===<br />
* Press the '''Write''' button to write your new settings to the system. <br />
<br />
===Verify the TireX data on the dashboard===<br />
====Using the overview gauge====<br />
* Switch to the RaceCapture dashboard mode.<br />
* Create a new Dashboard screen by pressing the gear icon in the upper right of the screen. <br />
* Select the TireX test dashboard preset<br />
** '''Note''' - you may need to press the cloud update button to fetch the newest presets.<br />
<br />
====Using the raw channels view====<br />
* Navigate to the Raw Channels view of the dashboard by pressing the left or right arrows on the dashboard screen.<br />
<br />
* You can observe all of the available telemetry channels, including the individual channels for the TireX sensors.<br />
<br />
=Specifications=<br />
''Specifications are preliminary and subject to change''<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Feature<br />
! Description<br />
|-<br />
| Sensor type<br />
| Thermal array<br />
|-<br />
| Sensor Resolution<br />
| 16 x 12 (196 pixels)<br />
|-<br />
| Object temperature range<br />
| 0 - 127.5C (tire temperature mode (factory default)) / 0 - 255C (full frame mode)<br />
|-<br />
| Field of view<br />
| 110 x 75 degrees<br />
|-<br />
| Accuracy<br />
| 1C<br />
|-<br />
| Temperature zones (tire)<br />
| 1 / 2 / 4 (factory default) / 8 / 16<br />
|-<br />
| Sample rate<br />
| 0.5 - 64Hz (Tire temperature mode, 16Hz factory default) 0.5 - 10Hz (Full frame mode)<br />
|-<br />
| Processing Engine<br />
| 32 bit<br />
|-<br />
| Configurable positions<br />
| 4 (Left-Front (factory default), Right-Front, Left-Rear, Right-Rear); Reversible orientation<br />
|-<br />
| Emissivity<br />
| Configurable (0.95 default)<br />
|-<br />
| Ambient temperature compensation<br />
| Automatic (adjustable offset)<br />
|-<br />
! Electrical<br />
! <br />
|-<br />
| Interface<br />
| CAN 2.0<br />
|-<br />
| Supply voltage<br />
| 6 - 14v (automotive power)<br />
|-<br />
| Power<br />
| 200mW<br />
|-<br />
| Harness<br />
| M8 4P Male, 250mm length<br />
|-<br />
! CAN bus<br />
!<br />
|-<br />
| CAN baud rate<br />
| 500K and 1M, jumper configurable (1M default)<br />
|-<br />
| Address space<br />
| 4 separate address spaces (configurable via jumper)<br />
|-<br />
| Termination<br />
| No Termination (configurable via jumper)<br />
|-<br />
|-<br />
! Physical / Environmental<br />
!<br />
|-<br />
| Construction<br />
| CNC aluminum<br />
|-<br />
| Dimensions <br />
| 64 x 46 x 12.5mm<br />
|-<br />
| Weight<br />
| 10 grams<br />
|-<br />
| Operating temperature<br />
| -40 - 85C<br />
|-<br />
| IP rating<br />
| IP65<br />
|}<br />
<br />
=Dimensions / Mounting=<br />
[[image:TireX_dimensions.png]]<br />
<br />
==Mounting Orientation==<br />
We recommend mounting TireX above the tire, with the cable pointing towards the rear of the vehicle.<br />
* '''Note:''' you can clock the mounting point so the sensor is mounted at the front or rear of the wheel well; just ensure the orientation remains the same. <br />
[[Image:tirex_mounting_orientation.jpg]]<br />
==Mounting Distance==<br />
TireX has a wide aspect ratio of 110 degrees, so you can use some trigonometry to calculate the distance. Here are some examples:<br />
<br />
* 205 width = 71mm<br />
* 225 width = 79mm<br />
* 235 width = 82mm<br />
* 245 width = 85mm<br />
* 255 width = 89mm<br />
* 275 width = 96mm<br />
* 315 width = 110mm<br />
<br />
[https://www.triangle-calculator.com/?what=iso&a=C%3D110%2C+b%3D245&submit=Solve Here's a convenient online calculator]<br />
<br />
Tip: you can mount TireX at a further distance if you use the middle channels. Example:<br />
<br />
* if only using 8 channel, you can mount 2x the distance<br />
* If only using 16 channels, you can mount 4x the distance<br />
<br />
* '''Note:''' 4 channels is often the resolution of choice to reduce the bulk of data generated, and gives perfectly adequate results for determining tire performance.<br />
<br />
=Electrical / CAN connection=<br />
* Connection is provided by a standard industrial M8 4P male plug. [[Harness_specifications#Power_.2B_CAN_Single_interconnect|Pigtails and connectors are available from Autosport Labs, or 3rd parties]]<br />
* TireX is designed to connect to regular automotive 12-14v per our [[Harness_specifications#Power_.2B_CAN_Single_interconnect|Standard Power interconnect]]<br />
<br />
<br/><br />
[[image:M8_4P_male.png]]<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Pin<br />
! Connecton<br />
! Wire Color<br />
|-<br />
| Pin 1<br />
| CAN Low<br />
| Brown<br />
|-<br />
| Pin 2<br />
| Voltage supply (6-14v)<br />
| White<br />
|-<br />
| Pin 3<br />
| CAN High<br />
| Blue<br />
|-<br />
| Pin 4<br />
| Ground<br />
| Black<br />
|}<br />
<br />
== CAN termination ==<br />
By default, TireX is not terminated. We recommend using the external termination adapter, connected inline on the last sensor of the chain.<br />
<br />
[[image:autosport_labs_inline_can_terminator.jpg]]<br />
<br />
This terminator is [https://www.autosportlabs.com/product/inline-can-terminator/ available separately] or [https://www.autosportlabs.com/product/tirex-4-corner-plug-and-play-harness/ included with the TireX plug and play harness].<br />
<br />
=== Customizing Termination === <br />
CAN termination can be enabled on TireX by disassembling the sensor and closing the jumper on the TireX circuit board. <br />
<br />
[[image:tirex_jumpers_can_termination.png|500px]]<br />
* '''Note''': See the [[TireX#Hardware_configuration|Hardware configuration section]] for details on making this modification.<br />
<br />
=Zone Configuration=<br />
===Up to 16 configurable temperature zones===<br />
TireX can be configured to report up to 16 temperature zones across the sensor's entire field of vision.<br />
<br />
When configured for 2 or more zones, temperature for zones are reported in the order of inside through outside edge.<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Zones<br />
! Coverage<br />
|-<br />
| 1<br />
| Averaged across the entire field of vision<br />
|-<br />
| 2<br />
| Each zone averaged across 1/2 the field of vision<br />
|-<br />
| 4<br />
| Each zone averaged across 1/4 the field of vision<br />
|-<br />
| 8<br />
| Each zone averaged across 1/8 the field of vision<br />
|}<br />
===Reversible orientation based on sensor position===<br />
TireX zones are reversed based on the configured sensor position (left vs right side) to allow identical physical sensor mounting orientation between sides.<br />
[[file:TireX_zones.jpg|800px]]<br />
<br />
=CAN bus protocol=<br />
<br />
==CAN protocol files==<br />
DBC File for standard 4 corner, 4 zone configuration: [[file:TireX_standard.dbc.zip]]<br />
<br />
==Overview==<br />
The CAN bus API provides the configuration, control and sensor broadcast interface for TireX<br />
<br />
==Conventions==<br />
===Formula===<br />
* Conversion formulas are expressed as converting the CAN encoded value to real-world value.<br />
<br />
* Example:<br />
** Encoded value in CAN message: 95<br />
** Formula: A / 100<br />
** Real-world value: 0.95<br />
<br />
===Data encoding===<br />
====Endian====<br />
16 and 32 bit values are encoded as little endian.<br />
<br />
====Single and mulit-byte values====<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Value<br />
! Symbol Reference<br />
|-<br />
| 8 Bit values<br />
| A<br />
|-<br />
| 16 bit values<br />
| A (low byte) / B (high byte)<br />
|-<br />
| 32 Bit values<br />
| A (low byte) / B / C / D (high byte)<br />
|}<br />
<br />
==CAN Baud rate==<br />
<br />
1M and 500K rates are supported. <br />
<br />
1M is enabled by default; cut the jumper labeled '''BAUD''' on the bottom of TireX to enable 500K rate.<br />
<br />
[[image:tirex_jumpers_can_term.png|500px]]<br />
* '''Note''': See the [[TireX#Hardware_configuration|Hardware configuration section]] for details on making this modification.<br />
<br />
==CAN base ID==<br />
<br />
A configured TireX sensor will have a CAN base address that is a combination of the '''Main Base ID''' + '''Position Offset''' based on the installed position of the sensor on the vehicle. This combination creates a final '''Sensor Base ID'''.<br />
<br />
All broadcast and configuration CAN messages is offset from the final calculated '''Sensor Base ID'''.<br />
<br />
===Default Main Base ID===<br />
Default Main CAN base ID is '''0xA100 (41216)'''<br />
<br />
====Adjusting Main Base ID====<br />
The base address is determined by the state of the '''ADR1''' and '''ADR2''' jumpers. By default, the jumpers are closed (bridged); the jumper can be opened by cutting the trace between the pads. To re-close the jumper, add a small amount of solder to bridge the gap between the pads you want to close.<br />
* '''Note:''' In the vast majority of the cases you can use the default Main Base ID of 0xA100.<br />
<br />
[[image:tirex_jumpers_base_id.png|500px]]<br />
* '''Note''': See the [[TireX#Hardware_configuration|Hardware configuration section]] for details on making this modification.<br />
<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! ADR2 Jumper<br />
! ADR1 Jumper<br />
! Address<br />
|-<br />
| Closed<br />
| Closed<br />
| 0xA100 (41216)<br />
|-<br />
| Closed<br />
| Open<br />
| 0xB100 (45312)<br />
|-<br />
| Open<br />
| Closed<br />
| 0xC100 (49408)<br />
|-<br />
| Open<br />
| Open<br />
| 0xD100 (53504)<br />
|}<br />
* Opening the jumper ADR1 will add (0x1000) 4096 to the base ID<br />
* Opening the jumper ADR2 will add (0x2000) 8192 to the base ID<br />
* Opening both jumpers ADR1 and ADR2 will add (0x3000) 12288 to the base ID.<br />
<br />
==Sensor Position Offset==<br />
The sensor position will offset the '''Main Base ID''' by the position of the sensor as defined in the table, to set the final '''Sensor Base ID'''.<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Position ID<br />
! Sensor Position<br />
! Offset<br />
|-<br />
| 0<br />
| Left-Front<br />
| 0x0 (0)<br />
|-<br />
| 1<br />
| Right-Front<br />
| 0x100 (256)<br />
|-<br />
| 2<br />
| Left-Rear<br />
| 0x200 (512)<br />
|-<br />
| 3<br />
| Right-Rear<br />
| 0x300 (768)<br />
|}<br />
<br />
===Example: default base address (0xA100)===<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Sensor Position<br />
! Final Sensor Base ID<br />
|-<br />
| Left-Front<br />
| 0xA100<br />
|-<br />
| Right-Front<br />
| 0xA200<br />
|-<br />
| Left-Rear<br />
| 0xA300<br />
|-<br />
| Right-Rear<br />
| 0xA400<br />
|}<br />
<br />
* '''Note:''' Single sensor kits are configured as left-front tire position. This can be changed by sending the appropriate configuration message.<br />
<br />
==CAN Messages==<br />
The announcement message is broadcast by TireX once per second for 10 seconds upon power up.<br />
<br />
===Announcement===<br />
'''CAN ID:''' Sensor Base ID + 0<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Sample Rate<br />
| unsigned<br />
| A * 1<br />
| 0.5 - 64Hz (0 = 0.5Hz)<br />
|-<br />
| 1<br />
| Temperature Zones<br />
| unsigned<br />
| A * 1<br />
| Number of configured temperature zones (1 / 2 / 4 / 8 / 16) (factory default is 4)<br />
|-<br />
| 2<br />
| Sensor Position<br />
| Unsigned<br />
| A * 1<br />
| Configured sensor position (0=Left-Front / 1=Right-Front / 2=Left-Rear / 3=Right-Rear)<br />
|-<br />
| 3<br />
| Reserved<br />
|<br />
|<br />
| <br />
|-<br />
| 4<br />
| Reserved<br />
|<br />
|<br />
|<br />
|-<br />
| 5<br />
| Major Version<br />
| unsigned<br />
| A * 1<br />
| Firmware Major Version Number<br />
|-<br />
| 6<br />
| Minor Version<br />
| unsigned<br />
| A * 1<br />
| Firmware Minor Version Number<br />
|-<br />
| 7<br />
| Patch Version<br />
| unsigned<br />
| A * 1<br />
| Firmware Patch version number<br />
|}<br />
<br />
===Statistics===<br />
<br />
Broadcast by TireX every 10 seconds.<br />
<br />
'''CAN ID:''' Sensor Base ID + 2<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Sensor Ambient Temperature<br />
| unsigned<br />
| A * 1<br />
| 0 - 255C<br />
|-<br />
| 1<br />
| Reserved<br />
| <br />
| <br />
| <br />
|-<br />
| 2<br />
| Reserved<br />
| <br />
| <br />
| <br />
|-<br />
| 3<br />
| Reserved<br />
| <br />
| <br />
| <br />
|-<br />
| 4<br />
| Reserved<br />
| <br />
| <br />
| <br />
|-<br />
| 5<br />
| Major Version<br />
| unsigned<br />
| A * 1<br />
| Firmware Major Version Number<br />
|-<br />
| 6<br />
| Minor Version<br />
| unsigned<br />
| A * 1<br />
| Firmware Minor Version Number<br />
|-<br />
| 7<br />
| Patch Version<br />
| unsigned<br />
| A * 1<br />
| Firmware Patch version number<br />
|}<br />
<br />
===Configuration Preferences===<br />
<br />
This message is broadcasted to TireX to configure the sensor's preferences. The settings are persisted in TireX's flash memory.<br />
<br />
'''CAN ID:''' Sensor Base ID + 3<br />
<br />
* '''Note:''' To read the current settings, broadcast a message with this CAN ID with no data (data length of 0) - TireX will reply with the current configuration. <br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Sample Rate<br />
| unsigned<br />
| A * 1<br />
| Rate to report sensor values ( 0.5 - 64Hz) <br/><br/>Valid sample rates: 0 (0.5Hz) / 1 (1Hz) / 2 (2Hz) / 4 (4Hz) / 8 (8Hz) / 16 (16Hz) / 32 (32Hz) / 64 (64Hz).<br/><br/>Specifying an invalid value will select the default value of 16<br />
|-<br />
| 1<br />
| Temperature zones <br />
| unsigned<br />
| A * 1<br />
| Number of temperature zones. Valid zones: 1 / 2 / 4 / 8 / 16.<br/><br/>Specifying an invalid value will select the default value of 4.<br />
|-<br />
| 2<br />
| Sensor Position<br />
| unsigned<br />
| A * 1<br />
| Location of the sensor on the vehicle. This position adjusts the '''Sensor Base ID'''. <br/><br/>Valid Positions 0 (Left-Front) / 1 (Right-Front) / 2 (Left-Rear) / 3 (Right-Rear).<br/><br/>Specifying an invalid value will select the default value of 0 (Left-Front). <br/><br/>'''Note:''' The sensor position affects the orientation of the sensor zones. Sensor Position 1 and 3 will report temperature zones left - right; Position 0 and 2 will report temperature zones right - left.<br/><br />
'''Note''': When in full frame mode, this setting is ignored.<br />
|-<br />
| 3<br />
| Frame mode<br />
| unsigned<br />
| A * 1<br />
| 0 = Standard (Tire Temperature) mode; 1 = Full Frame mode<br />
|-<br />
| 4<br />
| Reserved<br />
|<br />
|<br />
| <br />
|-<br />
| 5<br />
| Reserved<br />
|<br />
|<br />
| <br />
|-<br />
| 6<br />
| Reserved<br />
|<br />
|<br />
| <br />
|-<br />
| 7<br />
| Reserved<br />
|<br />
|<br />
| <br />
|}<br />
<br />
===Calibration Preferences===<br />
<br />
This message is broadcasted to TireX to configure the sensor's calibration. The settings are persisted in TireX's flash memory.<br />
<br />
'''TireX is calibrated at the factory and normally these values will not need to be changed.'''<br />
<br />
'''CAN ID:''' Sensor Base ID + 4<br />
<br />
* '''Note:''' To read the current settings, broadcast a message with this CAN ID with no data (data length of 0) - TireX will reply with the current configuration. <br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Emissivity<br />
| unsigned<br />
| A / 100<br />
| Emissivity of the target. Default is 0.95<br />
|-<br />
| 1<br />
| Ambient temperature compensation<br />
| unsigned<br />
| A * 1<br />
| Value in C. Default is 2<br />
|-<br />
| 2<br />
| Sensor Resolution<br />
| unsigned<br />
| 16-19<br />
| Sensor ADC resolution, in bits. Default is 18<br />
|-<br />
| 3<br />
| Reserved<br />
| <br />
|<br />
|<br />
|-<br />
| 4<br />
| Reserved<br />
| <br />
|<br />
|<br />
|-<br />
| 5<br />
| Reserved<br />
| <br />
|<br />
|<br />
|-<br />
| 6<br />
| Reserved<br />
| <br />
|<br />
|<br />
|-<br />
| 7<br />
| Reserved<br />
| <br />
|<br />
|<br />
|}<br />
<br />
===Sensor Temperature Value Broadcast===<br />
The following messages will contain the temperature values based on the number of temperature zones configured, broadcast at the currently configured sample rate.<br />
<br />
* '''Note:''' The sensor position affects the orientation of the sensor zones:<br />
** Position 1 and 3 will report temperature zones left - right;<br />
** Position 0 and 2 will report temperature zones right - left. <br />
====1 Zone====<br />
'''CAN ID:''' Sensor Base ID + 0x20 (32)<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Zone 1 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|}<br />
<br />
====2 Zones====<br />
'''CAN ID:''' Sensor Base ID + 0x20 (32)<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Zone 1 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 1<br />
| Zone 2 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|}<br />
<br />
====4 Zones====<br />
'''CAN ID:''' Sensor Base ID + 0x20 (32)<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Zone 1 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 1<br />
| Zone 2 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 2<br />
| Zone 3 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 3<br />
| Zone 4 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|}<br />
<br />
====8 Zones====<br />
'''CAN ID:''' Sensor Base ID + 0x20 (32)<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Zone 1 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 1<br />
| Zone 2 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 2<br />
| Zone 3 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 3<br />
| Zone 4 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 4<br />
| Zone 5 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 5<br />
| Zone 6 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 6<br />
| Zone 7 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 7<br />
| Zone 8 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|}<br />
====16 Zones====<br />
'''CAN ID:''' Sensor Base ID + 0x20 (32)<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Zone 1 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 1<br />
| Zone 2 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 2<br />
| Zone 3 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 3<br />
| Zone 4 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 4<br />
| Zone 5 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 5<br />
| Zone 6 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 6<br />
| Zone 7 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 7<br />
| Zone 8 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|}<br />
<br />
'''CAN ID:''' Sensor Base ID + 0x21 (33)<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Zone 9 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 1<br />
| Zone 10 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 2<br />
| Zone 11 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 3<br />
| Zone 12 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 4<br />
| Zone 13 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 5<br />
| Zone 14 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 6<br />
| Zone 15 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|-<br />
| 7<br />
| Zone 16 value<br />
| unsigned<br />
| A / 2<br />
| 0 - 127.5C<br />
|}<br />
<br />
====Full Frame Mode====<br />
'''CAN ID:''' Sensor Base ID + 0x40 (64)<br />
<br />
* '''Note:''' Pixels increment linearly by row x column<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Data Type<br />
! Formula<br />
! Value<br />
|-<br />
| 0<br />
| Pixel 0 value<br />
| unsigned<br />
| A<br />
| 0 - 255C<br />
|-<br />
| ...<br />
| ...<br />
| ...<br />
| ...<br />
| ...<br />
|-<br />
| 191<br />
| Pixel 191 value<br />
| unsigned<br />
| A<br />
| 0 - 255C<br />
|}<br />
= Hardware configuration =<br />
Hardware defaults can be altered by disassembling TireX and adjusting jumpers on the bottom of the circuit board. <br />
<br />
* To break a jumper: scrape the space between the jumper pads using a sharp tool, such as a razor blade or very small screwdriver. <br />
* To re-close a jumper: use a fine tip soldering iron and add solder between the jumper pads. <br />
<br />
[[image:tirex_jumper_settings.png|500px]]<br />
<br />
When re-assembling the sensor, ensure the sensor and enclosure seals are correctly seated, and torque the enclosure screws evenly.<br />
<br />
= Replacing harness = <br />
In the event the TireX pigtail is damaged, it can be replaced by the end user relatively easily. <br />
<br />
Disassembly steps:<br />
* Use a small screwdriver to remove the 4 outer screws.<br />
* Remove the black gasket, and set aside<br />
* Gently pry away the old harness from the notch of the enclosure<br />
* Remove the circuit board by pressing the sensor from the outside of the enclosure. <br />
* Remove the red seal around the sensor, and set aside.<br />
* Using a small flat bladed screwdriver, '''carefully'' unplug the the harness from the circuit board. Gently pry away the harness connection from each side until it pops out of the connector. <br />
<br />
Re-assembly steps:<br />
* Re-insert the red sensor seal into the back of the main enclosure, so that it is installed and flush with the outside of the enclosure<br />
* Plug the new harness into the circuit board. The connector mounts only one direction, and it should press in with just finger pressure. Ensure it is fully seated.<br />
* Locate the cable notch on the enclosure. Press the harness into this notch, centered on the thick section near the end of the harness, close to the PCB connector. You may use finger / thumb pressure, or gently with a pair of cushioned pliers to prevent marring the enclosure. (you can wrap tape around a pair of pliers). Press it in until it is fully inserted into the notch.<br />
* Press the PCB into the enclosure, focusing on pressing the sensor into the red seal.<br />
* Inspect the opposite side of the enclosure, ensuring the sensor is properly seated into the seal, and no edges are caught. <br />
* On the PCB, ensure the silicone pad is still mounted opposite of the sensor. <br />
* Re-attach the black gasket onto the back lid of the enclosure, making sure the notch in the gasket matches the relief made in the lid to allow cable exit.<br />
* Mount the back lid of onto the main body of the enclosure, ensuring the black gasket is properly inserted into the enclosure, with no pinching or caught edges. The stepped design of the gasket is designed to sure the back lid is perfectly centered.<br />
* Re-attach the 4 screws, torquing evenly until there is slight compression of the gasket.<br />
* Test for proper operation before re-attaching it to the vehicle.<br />
*</div>Brentphttps://wiki.autosportlabs.com/index.php?title=RaceCapturePro2_logfile_reference&diff=9889RaceCapturePro2 logfile reference2023-12-10T20:04:48Z<p>Brentp: /* Utc */</p>
<hr />
<div>=Log file format=<br />
<br />
RaceCapture/Pro logs data onto SD cards using a sparsely populated comma separated value (CSV) format.<br />
<br />
==File naming==<br />
RaceCapture/Pro names files in an ascending order in a pattern of RC_XX.LOG where XX represents a number. When a new log file is created, RaceCapture/Pro will create the next log file where XX is the next available number, preventing duplicate or overwritten log files.<br />
<br />
==Header==<br />
The log file header defines the information present in the data segment of the log file.<br />
<br />
===Format===<br />
Each sampled channel is represented by a comma separated column. The column in the file is defined as a data structure with the following format:<br />
<br />
* Channel Name<br />
* Units Label<br />
* Min value<br />
* Max value<br />
* Sample Rate (Hz)<br />
<br />
The data structure is defined as follows:<br />
"<Name>"|"<Units>"|<Min value>|<Max Value>|<Sample Rate><br />
<br />
Example:<br />
<br />
"Battery"|"Volts"|0.0|50.0<br />
<br />
Each data structure describing a segment is separated with a comma.<br />
<br />
===Special Columns===<br />
<br />
The following columns are system defined and will appear on every log file sample, regardless of the indicated sample rate.<br />
<br />
====Interval====<br />
Interval represents the milliseconds uptime of the system, and will reflect the number of milliseconds elapsed between samples.<br />
<br />
====Utc====<br />
Utc is sourced from GPS data and will be a valid, non zero value representing UTC time in milliseconds, using the Unix time epoch of 1/1/1970 (number of milliseconds since 1/1/1970)<br />
<br />
When there is no GPS lock, UTC will be zero.<br />
<br />
==Data segment==<br />
<br />
Within the data segment, sample values appear at the frequency defined in the header file. Channels logged at lower sample rates will appear sparsely within the file, with empty values appearing in the space between samples.<br />
<br />
==Example==<br />
<pre><br />
"Interval"|"ms"|0|0|1,"Utc"|"ms"|0|0|1,"Battery"|"Volts"|0.0|50.0|1,"AccelX"|"G"|0.0|0.0|25,"AccelY"|"G"|0.0|0.0|25,"AccelZ"|"G"|0.0|0.0|25,"Yaw"|"Deg/Sec"|0.0|0.0|25,"Pitch"|"$<br />
402,0,,-0.02,-0.03,0.93,0.5,-6.2,-0.2,,,,,,,,,,,,,,,,,,,,<br />
442,0,,-0.02,-0.03,0.95,0.2,-6.0,-0.3,0,,,979,26,0.0,0.0,0.0,0.0,0.0,0,0,0.0,0,0.0,-1,0.0,0.0,0.0,0<br />
482,0,,-0.01,-0.03,0.97,0.1,-5.5,-0.2,,,,,,,,,,,,,,,,,,,,<br />
522,0,,-0.01,-0.03,0.99,0.0,-5.0,-0.2,,,,,,,,,,,,,,,,,,,,<br />
542,0,,,,,,,,0,,,986,26,0.0,0.0,0.0,0.0,0.0,0,0,0.0,0,0.0,-1,0.0,,0.0,0<br />
<br />
</pre><br />
<br />
==Sample Logs==<br />
Sample log files can be downloaded [https://www.dropbox.com/sh/my8uocu3yp8bseb/AAA7Qa4tFOjaWlCx24VtkSK1a?dl=0 here]<br />
<br />
==Troubleshooting==<br />
<br />
It's best to use a freshly formatted FAT16 or FAT32 file. If you log a file and the data looks scrambled, encrypted, do a fresh re-format and try again.</div>Brentphttps://wiki.autosportlabs.com/index.php?title=Video_plus_data_streaming_with_racecapture&diff=9888Video plus data streaming with racecapture2023-12-09T02:46:44Z<p>Brentp: /* Microphone */</p>
<hr />
<div>=Introduction=<br />
This guide shows you how to add video+data livestreaming to your existing RaceCapture system.<br />
<br />
After following this guide, you will have:<br />
* 2-camera video with picture-in-picture<br />
* Rich, realtime graphics overlay<br />
* Broadcast to youtube or your preferred streaming provider via an in-vehicle cellular hotspot<br />
* Local video recording<br />
<br />
=System Overview=<br />
Video+data streaming is enabled by using a separate streaming/encoding device. As RaceCapture supports multiple simultaneous connections, an existing dashboard can be retained.<br />
[[image:RaceCapture video+data livestreaming system diagram.png]]<br />
<br />
==Cost==<br />
The cost for adding video+data livestreaming to your RaceCapture system can range '''between 0 and 800 USD''', depending on the parts you may already have on hand.<br />
<br />
==How hard is it to setup?==<br />
'''This project requires following instructions''', including:<br />
* Installing an operating system<br />
* Typing computer commands<br />
* Plugging in cables<br />
* Editing configuration files<br />
* Selecting options in an application<br />
<br />
This ability is within the realm of someone with moderate computer skills. If the instructions seem daunting, find someone to help you along.<br />
<br />
* For those who crave convenience, we will also be offering a pre-packaged setup that take care of most of the setup steps.<br />
<br />
==Production State==<br />
Since it is based on existing RaceCapture technology (RaceCapture hardware and RaceCapture app), the core of the system is very stable.<br />
<br />
New components that add video rendering, encoding, and streaming will be improved through your testing feedback and rounds of updates.<br />
<br />
As of this writing, several existing RaceCapture users have put the system through it's paces with great results. <br />
<br />
So far we were very pleased with the stability and performance, and we will continue to improve the system through software updates.<br />
<br />
===A demonstration===<br />
Here's the Session from the inaugural test (with sub optimal camera exposure settings and low quality microphone)<br />
<br />
<youtube>zVUJwnGoCnI&t=2990s</youtube><br />
<br />
===Experimental===<br />
While we consider this '''experimental''' - it is also a free software upgrade for a system that was never originally designed for this purpose. <br />
<br />
With your testing help we can steadily improve it and ultimately provide an incredibly cost effective yet very full-featured and high performance system that rivals solutions costing upwards of $5000 USD.<br />
<br />
=Parts you will need=<br />
==Your existing RaceCapture system==<br />
The RaceCapture system will provide access to your car's sensor data (CAN bus or analog sensors), high performance GPS, Accelerometer / Gyro sensors, lap timing and other motorsport related statistics.<br />
===Compatible Systems===<br />
* Any current or previous RaceCapture or PodiumConnect system will work.<br />
[[image:racecapture_pro_mk4_connectors_1024.jpg|520px]]<br />
[[Image:PodiumConnect_MK2_3quarter_1024.jpg|270px]]<br />
[[Image:rct_mk3_3quarter.jpg|300px]]<br />
<br />
==Rendering/Streaming computer==<br />
A tiny form-factor computer is used to receive data from RaceCapture and is responsible for video+data overlay, encoding, and broadcasting the video to youtube or similar streaming platform.<br />
===Recommended===<br />
* [https://www.amazon.com/gp/product/B0BCVCZDH3 Beelink SER5]<br />
The Beelink SER5 is our recommended choice as it is powerful, cost effective, and provided in a compact and lightweight form factor.<br />
<br />
[[image:beelink_ser5_micro_pc.jpg|500px]]<br />
<br />
===Alternatives===<br />
A micro system with an Intel I5-6500 through I5-7600 + SSD + 8GB RAM is an acceptable option as well. This may be a system you already have or a surplus system you can get at minimum cost.<br />
* Look for these options:<br />
** SSD (required for ruggedness - smallest size is fine).<br />
** Smallest RAM option is fine (typically 8GB)<br />
** Included WiFi - for connection versatility<br />
====Candidates====<br />
* Dell Optiplex 7050 micro desktop: [https://www.ebay.com/sch/i.html?_nkw=Dell+Optiplex+7050+Micro+Desktop+Computer&_sacat=0 Ebay search] (nice because most have wifi)<br />
[[image:dell-optiplex-7050.jpg|510px]]<br />
* HP EliteDesk 800 G3 Mini: [https://www.ebay.com/sch/i.html?_nkw=HP+EliteDesk+800+G3+Desktop+Mini&_sacat=0 Ebay search]<br />
[[image:HP-elitedesk-800.jpg|550px]]<br />
<br />
==12v DC to DC converter==<br />
A 12v-19v DC to DC converter is needed to power the rendering/broadcasting computer in the vehicle. This converter avoids needing an AC inverter in the car, making for a clean installation.<br />
* '''Tips''':<br />
** Choose a device that has sufficient power capacity (100W minimum)<br />
===Recommended===<br />
These have been tested to work:<br />
* [https://www.amazon.com/gp/product/B07TT2F95L KFD 100W universal car charger]<br />
[[image:KFD-100W-DC-to-DC-converter-12v-to-19v.jpg|500px]]<br />
* '''Tips''':<br />
** We recommend cutting the cigar lighter connection and hard-wiring the power to a 15A circuit. (center conductor is positive).<br />
<br />
==Cameras==<br />
You will need 1 or 2 cameras for capturing and rendering video. <br />
===Recommended Camera Kit===<br />
Autosport Labs will soon provide a camera kit that provides high quality imaging, a compact and ruggedized IP65 form-factor, and the perfect 110 degree field of view.<br />
<br />
[[image:RaceCapture_video+data_livestreaming_windshield_mount.jpg|600px]]<br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount.jpg|600px]]<br />
<br />
===Assembling the Camera Kit===<br />
Using the supplied hardware, insert the nut into the camera clamp using a pair of small pliers. Then, use the included screw to clamp the camera to the mount. <br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_insert_nut.jpg|600px]]<br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_screw_attached.jpg|600px]]<br />
<br />
Then, assemble the camera clamp into ball and socket windshield mount, or the GoPro mount. (1 of each style is included in the kit)<br />
<br />
====Ball and Socket windshield mount====<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_ball_and_socket_mount.jpg|600px]]<br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_ball_and_socket_mount_assembled.jpg|600px]]<br />
<br />
====GoPro style mount====<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount.jpg|600px]]<br />
<br />
===Alternatives===<br />
Most any USB camera (such as a webcam) can be used. These are commonly found on [https://www.amazon.com/s?k=usb+webcam Amazon] or [https://www.ebay.com/sch/i.html?_nkw=usb+webcam&_sacat=0 Ebay].<br />
* '''Tips''':<br />
** Logitech is a good, high quality option<br />
** Find a camera that offers a 1/4-20 threaded camera mount for a secure rollbar attachment to minimize vibration.<br />
<br />
==Microphone==<br />
A microphone is needed for capturing audio.<br />
* Candidates:<br />
** USB microphone - you can use a separate USB microphone, especially if you get one that offers higher quality.<br />
** Analog microphone - you can use an analog microphone that attaches to the front headset input of the micro PC. Make sure you get a microphone that has the 4-ring connector for proper operation.<br />
** Microphone embedded in one of the cameras - if one of your your cameras has its own microphone, you can use that as an audio source.<br />
<br />
===Using the Microphone included with the kit===<br />
The kit provides a USB microphone with good audio quality. <br />
[[image:RaceCapture_video+data_livestreaming_microphone.jpg|600px]]<br />
<br />
==Display Emulator==<br />
You'll need a display emulator to plug into the streamer while running on track. This tricks the computer into thinking a monitor is attached, allowing the streamer to run. <br />
<br />
[[image:hdmi_display_emulator.jpg|300px]]<br />
<br />
The following have been tested:<br />
* [https://www.amazon.com/gp/product/B06XSY9THQ HDMI emulator] - use this for the Beelink Micro PC<br />
* [https://www.amazon.com/gp/product/B075PTQ4NH DisplayPort emulator] - use this for the HP or Dell Micro PCs<br />
<br />
==Hotspot/Router==<br />
Most any hostspot should work, but for the best performance and reliability, these options should be considered:<br />
* Hard-wired ethernet connection, for direct connection to the micro computer.<br />
* External antenna connection - a hotspot that offers external antenna will boost performance by allowing you to use a high-gain roof-mount antenna.<br />
<br />
Suggested units that offer direct hardwired connection:<br />
* [https://www.amazon.com/NETGEAR-Broadband-Modem-LM1300-Always/dp/B0BKTSMQFF Netgear LM1300]<br />
* [https://www.amazon.com/Teltonika-RUT950-LTE-4G-Router/dp/B00TKFKLCI Teltonika RUT950]<br />
* [https://www.amazon.com/Peplink-Pepwave-Cellular-Router-MAX-BR1-MINI-LTE-US-T/dp/B01MR5YKF9 Pepwave BR1]<br />
<br />
=Setup=<br />
Connect a keyboard, mouse, and monitor to the rendering/streaming computer and prepare to install Ubuntu:<br />
==Install ubuntu 22 LTS==<br />
[https://ubuntu.com/download/desktop/thank-you?version=22.04.2&architecture=amd64 Download Ubuntu Desktop] and follow the instructions to install to a USB flash drive.<br />
* '''Notes''' To install, you will need to configure the system's BIOS to boot first from the USB flash drive. <br />
** Beelink: Repeatedly press 'delete' on the keyboard right after power up.<br />
** HP: Repeatedly press F10 after power up<br />
** Dell: Repeatedly press F2 after power up<br />
<br />
===OS configuration options===<br />
* '''Important -''' Install Ubuntu with the following options<br />
** During installation, choose the option to download / install updates, including "third-party software for graphics, WiFi, and additional media formats"<br />
** Choose the option to erase the hard drive and perform a complete install.<br />
** Select Login Automatically<br />
** When prompted for your account's username, make sure you specify a password. This will allow you to easily switch between streaming mode and maintenance mode.<br />
<br />
[[image:ubunut_setup_options.jpg]]<br />
<br />
After the installation is complete, the computer will reboot into the standard desktop.<br />
<br />
==Disable keyring popup==<br />
From the desktop: log out, and log back in using with the password you created during the installation step. <br />
<br />
Then, [https://linuxconfig.org/how-to-disable-keyring-popup-on-ubuntu Disable the keyring popup] using these instructions. Observe the security notes in this guide.<br />
* '''Notes'''<br />
** The log-out/log-in step is important - don't skip it!<br />
** Disabling the keyring is important; it prevents a popup dialog when the RaceCapture app automatically starts.<br />
<br />
==Run the installer==<br />
From the Ubuntu desktop, open a terminal and enter the following commands, pressing <enter> after each line:<br />
<pre><br />
sudo apt install curl<br />
curl -sL bit.ly/3RL9Yoj | bash<br />
</pre><br />
<br />
This will automatically install the RaceCapture app and video streamer, related software dependencies, and set up configuration file templates.<br />
<br />
==Reboot==<br />
Reboot the computer once it is complete with the installation. It should automatically launch the RaceCapture app.<br />
<br />
==Edit RaceCapture settings==<br />
Edit these RaceCapture settings for proper operation when streaming<br />
===App Preferences===<br />
Navigate to Setup / App Preferences:<br />
* set Fullscreen -> ON<br />
* Set Startup Screen -> Dashboard<br />
* Turn off Session Recording<br />
[[image:racecapture-video-data-livestreaming-app-settings.jpg]]<br />
<br />
===Dashboard Preferences===<br />
Navigate to the Dashboard, then press the gear icon in the upper right of the dashboard, select "More Settings" and set the following:<br />
* Turn off Pit stop timer<br />
* Turn off pit-to-car alerts<br />
* Turn off remote dashboard navigation (scroll to bottom)<br />
[[image:racecapture-video-data-livestreaming-dashboard-settings.jpg]]<br />
<br />
[[image:racecapture-video-data-livestreaming-disable-remote-dashboard-navigation.jpg]]<br />
<br />
==Plug in camera(s)==<br />
Plug in 1 or 2 cameras into the USB port<br />
<br />
* '''Note:''' Remember the ports the cameras are plugged into, and keep this consistent during use.<br />
<br />
==Plug in USB microphone==<br />
* Plug USB microphone into a USB port. <br />
<br />
Note: if using the Beelink, plug into one of the USB ports on the rear of the system.<br />
<br />
==Connect RaceCapture==<br />
Your current RaceCapture system already supports multiple connections, so you can continue using your dashboard (e.g. Android tablet via Bluetooth) when adding this video+data streaming capability.<br />
===Via USB (overall best option)===<br />
This is the best option for connecting RaceCapture to the streaming computer. Just connect a USB cable between the rendering/streaming system and RaceCapture. RaceCapture will automatically connect.<br />
===Via WiFi===<br />
If you're already using the USB connection for a Raspberry Pi dash, you can configure the rendering/streaming system to connect to RaceCapture via WiFi.<br />
====Configure as Client====<br />
If you are already using WiFi to connect the rendering/streaming system to your hotspot, you will need to configure RaceCapture to connect to the same hotspot via the WiFi client settings. In this configuration, everything shares the same network created by the hotspot.<br />
* '''Note''': Due to system limitations, your hotspot must be up and running before RaceCapture attempts to connect to it via WiFi.<br />
====Access Point connection (best WiFi option)====<br />
If you are connecting the rendering/streaming system to the hotspot via ethernet, then you can connect the rendering/streaming system directly to RaceCapture's WiFi Access Point. The system will receive data from RaceCapture via WiFi, and broadcast the video+data stream to the hotspot via ethernet.<br />
<br />
==Configure dashboard video options==<br />
* Press Settings Gear Icon, go to More Settings / Camera Preferences<br />
<br />
Select /dev/video0 for Camera #1, and /dev/video2 for Camera #2<br />
<br />
[[image:racecapture-video-data-livestreaming-camera-settings.jpg]]<br />
<br />
==Create a test dashboard==<br />
* Press the Settings gear icon, select Add Gauge<br />
* create a video gauge, and select Camera 1 as the source. <br />
* Resize to fit the dashboard. <br />
* create another video gauge, and select Camera 2 as the source.<br />
* Resize to be the picture-in-picture video window. <br />
* Add additional gauges as you see fit, such as an analog speed gauge, track map, etc. <br />
<br />
* '''Note''' If the cameras are reversed, you can swap the camera mappings in the main dashboard settings under More Settings / Camera Preferences<br />
<br />
Editing the dashboard is very easy - see this demo for an example:<br />
<br />
<youtube>r4mxA-fhJn0</youtube><br />
<br />
==Exiting the RaceCapture app==<br />
To get back to the regular Ubuntu desktop, press ctrl-t, type :quit and press <enter>. <br />
<br />
At the login screen, select your username and press the small gear icon in the lower right to select the Ubuntu desktop. <br />
<br />
To switch back to streaming mode, log out, press the small gear icon in the lower right and select the RaceCapture streaming option. Log in, and you will be streaming again. <br />
* '''Note''': The system will persist the last option you pick - so if you reboot or power cycle, it will automatically enter streaming mode.<br />
<br />
=Video Streaming / recording=<br />
To configure your streaming settings, switch back to the regular Ubuntu Desktop.<br />
<br />
Then, edit the video-config.ini - you'll find the file on the desktop. Edit this with the standard text editor by double-clicking it.<br />
<br />
==Streaming Key / URL==<br />
If using Youtube: Set the streaming key as provided by youtube. Or, you can specify a custom URL.<br />
==Local recording==<br />
If video_dir is set and points to a valid directory, local video recording will also be enabled.<br />
<br />
Videos for the current session are stored in a timestamped directory name under the configured video directory. Videos are saved as fixed-length segments to protect against file corruption due to sudden power loss, similar to how dashcams operate.<br />
<br />
If the system experiences sudden power loss, the video currently being written to will be corrupt and unreadable. Therefore, it is important to keep the video segment length reasonably short. <br />
<br />
After the session is complete, a full video can be made by using commonly available software to assemble all of the files.<br />
<br />
===video-config.ini===<br />
<pre><br />
[local_recording]<br />
video_dir=$HOME/Videos<br />
segment_length_sec=60<br />
</pre><br />
<br />
===Notes===<br />
* Configure video_dir to the location where you want to save your video files. <br />
* Configure segment_length_sec for the desired segment length size. If not specified, the default is 60 seconds '''Note, keep this value reasonably short''' - sudden power loss will result in corruption in the last written file.<br />
<br />
==Microphone==<br />
If using a USB microphone (recommended) use the default audio_device=1<br />
<br />
* Note, you can change this to different sources:<br />
** 0 = microphone connected to built-in headset port;<br />
** 1,2,3... = represents additional microphones found on the system, typically USB microphones.<br />
<br />
You can look under Ubuntu's system settings to discover available microphones and set their respective recording levels.<br />
<br />
Example default config file<br />
<pre><br />
[capture]<br />
audio_device=1<br />
<br />
[local_recording]<br />
video_dir=$HOME/Videos<br />
<br />
[streaming]<br />
streaming_url=rtmp://a.rtmp.youtube.com/live2/<streaming key> <br />
</pre><br />
<br />
==Video Bitrate==<br />
Specify the video bitrate, in kbps, in video-config.ini<br />
<br />
<pre><br />
[streaming]<br />
streaming_url=rtmp://a.rtmp.youtube.com/live2/<streaming key> <br />
bitrate=2500<br />
</pre><br />
<br />
=First Test=<br />
Once your streaming key has been set and saved, log out and log back into the streamer by selecting the RaceCapture streaming mode on the login page using the gear icon in the lower right.<br />
<br />
Check your youtube livestream to see if you are receiving video. If not, try restarting the system and let the streamer launch cleanly after a fresh reboot.<br />
<br />
=Maintenance/Troubleshooting=<br />
==Open a terminal window==<br />
(advanced mode) You can open a terminal window while RaceCapture is streaming by entering the following command.<br />
* Press ctrl+t, then type c, then press <enter><br />
<br />
The screen will split into two equal windows; the new window will be a terminal where you can perform debugging steps, such as viewing log files, etc.<br />
<br />
* '''Note''': The more user-friendly alternative is to just log out and log back in to the Ubuntu desktop.<br />
<br />
==Log out==<br />
You can log out of the current session to access the original Ubuntu desktop to perform additional maintenance.<br />
* Press ctrl-t, then type :quit, then press <enter><br />
<br />
Once you've logged out, you can log back into the Ubuntu desktop by pressing the gear icon in the lower right, and select Ubuntu. <br />
<br />
To get back to the RaceCapture full-screen app mode, select "RaceCapture livestreaming" from this menu; this is the window manager that is configured to run RaceCapture in full-screen mode.<br />
<br />
==Inspecting Logfiles==<br />
Log files are located in the logs directory under the user's home directory. Log files are named with the date they were created.<br />
===Video streamer log file===<br />
The log files for the video streamer agent have information about the video streamer's connection and activity. You can open it to see any helpful error messages regarding streaming.<br />
===RaceCapture log file===<br />
The RaceCapture log file will have potentially useful information for debugging the operation of the RaceCapture app.<br />
<br />
=Extras=<br />
==Mount for Beelink micro PC==<br />
<br />
We have designed a cage-style mount for the Beelink Micro PC. This allows convenient surface mounting of the PC.<br />
* Download STL file for 3D printing: [[file:Beelink_SER5_mount.zip]]<br />
<br />
[[image:beelink_cage_mount.jpg]]</div>Brentphttps://wiki.autosportlabs.com/index.php?title=ESP32-CAN-X2&diff=9830ESP32-CAN-X22023-12-05T20:29:07Z<p>Brentp: </p>
<hr />
<div>=Introduction=<br />
<br />
ESP32-CAN-X2 is an ESP32-based development board specifically designed for CAN communication. This board has all the features of a modern ESP32 development board, integrated Wi-Fi and Bluetooth, along with the extended CAN controller. Autosport Labs has specifically designed it for CAN communication along with fast processing and computation options. <br />
<br />
This is a complete how-to-use guide and this user guide will describe each and every step to use the board and harness the maximum potential of the board.<br />
<br />
=Features=<br />
<br />
Features of ESP32-CAN-X2 development board:<br />
<br />
* Based on ESP32-SE-WROOM-1-N8R8 microcontroller powerful dual-core Xtensa LX6 CPU running at up to 240 MHz.<br />
* 384 KB ROM, 512 KB SRAM, 16 KB SRAM in RTC, 8 MB PSRAM<br />
* Two LED’s : LED PWM & LED communication<br />
* Integrated Wi-Fi (802.11b/g/n) and Bluetooth capabilities<br />
* Reset and Boot push button<br />
* USB-C type socket for flashing, and power supply<br />
* Integrated antenna for long range communication<br />
* Additional CAN communication controller CAN using MCP2515<br />
* 6-pin header is strategically positioned at the top for CAN communication<br />
* Easy-to-interface programming. Required no external debugger for flashing<br />
* Integrated CAN transceivers<br />
* Configurable CAN termination resistors, which can be disabled via breakable jumpers<br />
* Flexible power supply options<br />
* Support of a wide choice of commonly used Integrated Development Environments (IDEs)<br />
* Comprehensive free software libraries and examples for CAN communication<br />
<br />
=Getting started=<br />
<br />
This section will provide you with comprehensive information about the ESP32-CAN-X2 development board's key components, mechanical layout, power rating, & requirements. This detailed information helps you to use the board effectively and efficiently in your projects.<br />
<br />
== Key Components of ESP32-CAN-X2 Development Board ==<br />
<br />
<br />
<br />
Figure 1 given below indicates the important key components of the ESP32-CAN-X2 Development Board and their location on the board.<br />
<br />
[[File:Development Board Key Components.png|Figure 1]]<br />
<br />
=== Microcontroller ===<br />
<br />
The ESP32-CAN-X2 Development Board is designed around the ESP32-S3-WROOM-1-N8R8 microcontroller in a 40-pin package. The connections between the development board and the microcontroller is straightforward, where the majority of GPIO pins are directly connected with the external headers, SV1 & SV2, and some pins are reserved internal connections between the board and CAN controllers. The internal connections between the microcontroller and CAN controllers are shown in the CAN controller heading given below. The microcontroller pin layout is shown in Figure 2 given below.<br />
<br />
[[File:Microcontroller pin layout.png|Figure 2]]<br />
<br />
=== External Connection Header ===<br />
<br />
External headers, SV1 & SV2, are the two other important components of this development board. SV1 is the left side dual row header and the SV2 is the right side dual row header. Both of these headers have 20 pins available for connection. These headers provide connections for GPIOs, power output, ground (GND), power input, and CAN communication pins. Both of these header pinouts have standard size, allowing users to connect them using jumper wires, a breadboard, or even solder wires permanently onto the development board. However, while doing the wire connection the customer must make sure that none of them get short circuit. The details regarding the pin's names, numbers, outputs, and functions are given in the Board Pinout section below.<br />
<br />
=== CAN Controllers ===<br />
<br />
The MCP2515 external connected CAN communication controller, and ESP-32 built-in CAN communication controller are two other main components of this development board.<br />
<br />
The MCP2515, operating as the second external CAN controller in this development board, is a specialized component designed for Controller Area Network (CAN) applications. Its features include:<br />
<br />
* Implements CAN V2.0B at up to 1 Mb/s.<br />
* High-Speed SPI Interface (10 MHz)<br />
* Interrupt Output Pin with selectable enables<br />
* Multiple receive and transmit buffers <br />
* Low-Power CMOS Technology: - Operates from 2.7V-5.5V, 5 mA active current (typical), 1 μA standby current<br />
<br><br />
The internal CAN controller also works at CAN V2.0. The internal CAN supports two message formats:<br />
<br />
* Base frame format (11-bit ID)<br />
* Extended frame format (29-bit ID)<br />
<br><br />
'''Internal pinout connection between the CAN controllers and ESP32'''<br />
<br />
* CAN 1: This is a built-in CAN controller and its RX is connected to IO6 of the microcontroller and TX is connected to IO7 of the microcontroller. The connections are shown in Figure 3 given below<br />
* CAN 2: This is the externally connected controller and its CS, MOSI, CLK, and MISO are connected at pin numbers 1O10, 1011, 1012, and 1O13 respectively. The connections are shown in Figure 3 given below<br />
<br />
[[File:Internal connection.png|Figure 3]]<br />
<br />
=== 6 pin JST-PH Connector ===<br />
<br />
The ESP32-CAN-X2 development board provides an additional 6-pin connector header at the top of the board to supports CAN communication. This header makes wiring the device more convenient and robust. The CAN communication connection pinout details are given in the pinout section below.<br />
<br />
=== USB-C Socket ===<br />
<br />
The ESP32-CAN-X2 development board has one USB-C port. This port is used for multiple functions: it powers the board, allows programming, and facilitates serial communication both ways.<br />
However, it is important to note that when powering the board through the USB-C port, please ensure the voltage does not exceed 5V @ 2A or 3.3V @ 1A.<br />
<br />
== Board Layout ==<br />
<br />
Mechanical board outline physical dimensions:<br />
<br />
* Width : 42.10 mm<br />
* Length : 72 mm<br />
<br><br />
The board top view is shown in the Figure 4 given below.<br />
<br />
[[File:Board top view.png|Figure 4]]<br />
<br />
== Power Ratings & Environmental Requirements ==<br />
<br />
'''Power Options'''<br />
<br />
The ESP32-CAN-X2 development board is flexible in its power input, and it provides multiple power input options. Power can either be supplied via the VIN pin, or via USB-C connector. Any voltage input either via USB or VIN is stepped down to 3.3 V via a voltage regulator. <br />
<br />
'''Pin Voltage'''<br />
<br />
All digital & analog pins on the ESP32-CAN-X2 development board are 3.3 V. Do not connect any higher voltage devices to any of the pins as it will risk damaging the board.<br />
<br />
'''VIN Rating'''<br />
<br />
The nominal input voltage rating for the development board is 6-20v, with a 40v max input. Please do not attempt to power the board with a voltage outside the recommended range.<br />
<br />
'''Operating Current'''<br />
<br />
The typical operating current of ESP32-CAN-X2 development board is 105mA and maximum operating current is 500mA ( peak, during transmission )<br />
<br />
'''Power Consumption'''<br />
<br />
The normal power consumption of the board is 330mW and peak power consumption is 1.65W <br />
<br />
'''Operating Temperature'''<br />
<br />
Temperate rating is -40°C to +85°C<br />
<br />
=CAN bus information=<br />
<br />
CAN, also known as Control area networking, is a serial communication protocol that is widely used in Automotive applications. CAN bus communication protocol utilizes differential signaling methods in which data is transferred as a voltage difference between High and low voltage. Can Bus communication provides various advantages over other communication methods which makes it the most important communication protocol in automotive. A few features are follows<br />
<br />
'''Multimaster system'''<br />
<br />
In CAN Bus communication, multiple controllers can act as a master, and multiple devices can act as a node. Each node can share data with other nodes via the CAN bus. In modern cars, there are more than 70 ECUs, and using CAN communication each ECU acts as a node and can transfer the data to the CAN bus, this data is then available to all the ECUs, and ECU can then check the data and decide whether to receive or ignore it.<br />
<br />
For details, visit: https://www.csselectronics.com/pages/can-bus-simple-intro-tutorial<br />
<br />
'''Lossless communication'''<br />
<br />
CAN communication uses a bitwise arbitration method that avoids the contentions of data on the bus. When two nodes simultaneously try to send the data, then the node with the high priority ( lower identifier ) gets priority and continues transmitting. The identifier message can be 11-bit ( standard CAN ) or 29-bit ( extended CAN) in length.<br />
<br />
For details, visit: https://dewesoft.com/blog/what-is-can-bus<br />
<br />
'''Simple and cheap'''<br />
<br />
The CAN communication between the ECUs is done through a single CAN system instead of direct complex analog signal lines which makes it extremely simple and reduces errors.<br />
<br />
For details, visit: https://www.autopi.io/blog/can-bus-explained/<br />
<br />
'''Errorless communication'''<br />
<br />
CAN incorporates different built-in error detection mechanisms including cyclic redundancy checks (CRC), and frame check sequences (FCS) to detect errors during data transmission.<br />
<br />
'''CAN network types'''<br />
<br><br />
Prominent CAN network types are as follows.<br />
<br />
* High-speed CAN bus ( Supports bit rates between 40 kbit/s and 1 Mbit/s )<br />
* Low-Speed CAN bus ( Supports bit rates between 40 kbit/s and 125 kbit/s )<br />
* CAN FD ( Supports bit rates between 1 Mbps to 8 Mbps )<br />
<br><br />
For details, visit:https://dewesoft.com/blog/what-is-can-bus<br />
<br />
'''Data transmission'''<br />
<br />
In CAN, data is transferred between two nodes in messages known as CAN frames. There are four types of CAN frames.<br />
* Data frame ( Used to transfer data between two node )<br />
* Remote frame ( request data from other node )<br />
* Error frame ( report errors )<br />
* Overload frame ( report overload )<br />
<br><br />
For details, visit:https://www.autopi.io/blog/can-bus-explained/<br />
<br />
== CAN Termination ==<br />
<br />
CAN termination is a process of terminating the CAN bus to prevent the signal reflection at the end of the bus and to ensure the correct DC level of the bus. The CAN BUS is bidirectional, and both ends of the bus must be properly terminated to prevent errors in communication. CAN termination is achieved by placing the termination resistance, which is normally 120 ohm, that matches the nominal resistance of the cable. ISO 11898 requires normally required CAN BUS cable of impedance 120 ohm; therefore, the CAN 120 ohm resistance is used for CAN termination. However, while doing the CAN termination, it must be kept in mind that the nodes from the far two ends of the cable only require termination resistors. <br />
<br />
Figure 5 given below explain the CAN termination.<br />
<br />
[[File:CAN BUS TERMINATION.png]]<br />
<br />
Note :The low-speed CAN, single wire CAN, may not require the CAN bus termination.<br />
<br />
'''How to enable & disable CAN termination in ESP-32-X2 ?'''<br />
<br />
The ESP-32-X2 development board has given two separate CAN termination pads at the top of the development board adjacent to the 6-PIN CAN communication header. The CAN termination jumpers are shown in the figure 6 given below.<br />
<br />
[[File:CAN BUS TERMINATION DISABLE JUMPERS.png]]<br />
<br />
* Enable termination : In ESP-32-X2 development board, CAN termination is enabled by default.<br />
* Disable termination : Scratch the copper trace between the pads, TERM1 & TERM2. <br />
* Re-enable termination : Re-solder the traces between the pads<br />
<br />
Note : Proper termination is necessary for ensuring errorless communication and signal integrity. Please follow the above given instruction carefully.<br />
<br />
=Board Pinout=<br />
<br />
The ESP32-CAN-X2 board has 40 pins across its two headers, SV1 & SV2 headers, and a 6-pin header at the top. This guide explains the pin functionalities of the board. The pin configuration of development board shown in Figure 7 given below.<br />
<br />
[[File:Pin Configuration 1.png|Figure 7]]<br />
<br />
'''Left Header (SV2) Pinout (Top to Bottom)'''<br />
<br />
The pin count start from the top of the left header, and the pin details are as following :<br />
<br />
{| class="wikitable"<br />
|+<br />
|-<br />
! Pin !! Function !! Description<br />
|-<br />
| 1 || CAN1H/2.7D || high-level signal for the first CAN channel.<br />
|-<br />
| 2 || CAN1L/2.7D || low-level signal for the first CAN channel<br />
|-<br />
| 3 || CAN2H/2.7C || high-level signal for the second CAN channel<br />
|-<br />
| 4 || CAN2L/2.7C || low-level signal for the second CAN channel<br />
|-<br />
| 5 || RX Pin || USART RX<br />
|-<br />
| 6 || TX Pin || USART TX<br />
|-<br />
| 7-20|| GPIO Pins || GPIO's<br />
|-<br />
|}<br />
<br />
'''Right Header (SV1) Pinout (Bottom to Top )'''<br />
<br />
The pin count start from bottom to top and details are as following :<br />
<br />
{| class="wikitable"<br />
|+ <br />
|-<br />
! Pin !! Function !! Description<br />
|-<br />
| 1-11 || GPIO Pins || GPIO's<br />
|-<br />
| 12-13 || Vin || Voltage Input<br />
|-<br />
| 14-15 || 5V || 5 Voltage Output<br />
|-<br />
| 16-18 || GND || Ground<br />
|-<br />
| 19-20 || 12 Vin || 12 Voltage Input<br />
|}<br />
<br />
'''Top Header Pinout'''<br />
<br />
The header supports CAN communication. Pin count start at the left viewing the board from the top. Pinout configuration of header is shown in Figure 8 given below.<br />
<br />
[[File:HEADER.png|fIGURE 8]]<br />
<br />
{| class="wikitable"<br />
|+ <br />
|-<br />
! Pin !! Function !! Description<br />
|-<br />
| 1 || CAN1L/2.7A || low-level signal for the first CAN channel<br />
|-<br />
| 2 || CAN2L/2.7B || low-level signal for the second CAN channel <br />
|-<br />
| 3 || CAN2H/2.7B || high-level signal for the second CAN channel<br />
|-<br />
| 4 || GND || Ground<br />
|-<br />
| 5 || CAN2H/2.7A || high-level signal for the first CAN channel<br />
|-<br />
| 6 || +12V_ Aux || 6-12v power supply<br />
|}<br />
<br />
=Flashing Firmware=<br />
<br />
Firmware flashing in this development board is straightforward. The following components are required for firmware flashings.<br />
<br />
'''Hardware Components'''<br />
<br />
* USB-C cable <br />
* Computer running Windows, Linux, or macOS <br />
<br><br />
<br />
'''Software Components'''<br />
<br />
* Updated Arduino IDE to compile code for ESP-32-X2.<br />
<br><br />
Note : Link to download Arduino IDE : https://www.arduino.cc/en/software<br />
<br />
== Step by step instruction ==<br />
<br />
Step-by-step instructions for flashing ESP-32-X2 are as follows.<br />
<br />
'''Install ESP-32-X2 Board Support:'''<br />
<br />
Adding ESP-32-X2 in Arduino Ide is a single-time process and its steps are as follows.<br />
<br />
* Open Arduino Ide<br />
* Go to File > Preferences<br />
<br><br />
<br />
[[File:Flashing1.png| Figure 7]]<br />
<br />
* Add the below given Json URL in the Additional board manager URL<br />
<br />
Json URL : ( )<br />
<br><br />
<br />
[[File:Flashing2.png|Figure 8]]<br />
<br />
* Go to Tools > Board > Boards Manager<br />
<br><br />
<br />
[[File:Flashing3.png|Figure 9]]<br />
<br />
* In the Board Manager search bar, type ESP-32-X2 and click on install to install the board<br />
<br><br />
<br />
[[File:Flashing4.png|Figure 10]]<br />
<br />
* After installing, click on Tool > Boards and select ESP-32-X2<br />
<br><br />
'''Flashing'''<br />
<br />
* Connect the ESP-32-X2 board to your computer using a USB-C cable with your Arduino IDE open<br />
<br />
* Select ESP-32-X2 in Tools > Board menu<br />
<br />
* Go to Tools > Port and select the COM port to which ESP-32-X2 is connected.<br />
<br />
<br><br />
Note : If you don’t see the COM Port in your Arduino IDE, you need to install the CP210x USB to UART Bridge VCP Drivers: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers<br />
<br><br />
<br />
* Write your firmware code or add an existing sketch that you want to upload to your custom board.<br />
<br />
* Go to Sketch > Click upload to compile and upload the code<br />
<br />
* After successful uploading, you should see a “Done uploading.” message at the bottom console. This console will also show error messages if there is any error.<br />
<br />
[[File:Flashing5.png|Figure 11]]<br />
<br />
If any issues occur during upload, double-check the board selection, COM port, and your code for errors.<br />
<br><br />
<br />
'''Endless Opportunities'''<br />
<br />
Now you are ready to explore the endless opportunities.<br />
<br />
=Sample Arduino Project=<br />
https://github.com/autosportlabs/ESP32-CAN-X2</div>Brentphttps://wiki.autosportlabs.com/index.php?title=RaceCapture-Track_MK3&diff=9827RaceCapture-Track MK32023-12-05T00:24:06Z<p>Brentp: /* How To */</p>
<hr />
<div>[[image:RaceCaptureTrack_Mk3_promo.jpg|800px]]<br />
<br />
=Start it up=<br />
<br />
==Plug it in==<br />
Unpackage the RaceCapture system and included OBDII cable and GPS antenna.<br />
<br />
* Plug one end of the OBDII cable into the RaceCapture Power/CAN port.<br />
* Plug the other end of the cable into your car's OBDII port.<br />
<br />
==LED status==<br />
Your RaceCapture system has a status LED that will indicate the current status of the system:<br />
<br />
* '''CAN''' - Shows activity on OBDII / CAN bus network, indicating data from your ECU and sensors is being received. <br />
* '''GPS''' - Shows GPS activity. Slow flash indicates acquiring a lock; rapid flash indicates GPS is locked. <br />
* '''Error''' - Indicates an error condition with the unit - see the RaceCapture app status page for details. It can also indicate an error with your Lua script (an optional feature of the system)<br />
* '''Power''' - Illuminates when the unit has power via 12v or USB. <br />
<br />
'''Notes''':<br />
* '''Very fast green flash''': Very rapid green flash indicates the unit is in bootloader mode, during firmware updates. If you see this when the the unit powers up and you cannot connect with the RaceCapture app, it usually means a failed firmware upgrade. You can resolve the issue by going through the firmware update process again. <br />
<br />
==Mounting==<br />
Place the RaceCapture system on a level surface in your car, with connectors facing the front of the vehicle. This is the factory orientation for the accelerometers and gyro. <br />
<br />
'''Note''' If you must install the unit in a different orientation, install with 90 degree orientation to the plane of the vehicle; e.g. flat/upright, on-edge, upside down - etc. Avoid installing at an angle. <br />
If installed in a non-standard orientation, you can go into '''Setup''' and re-map the accelerometer and gyro channels to match your changes. <br />
<br />
Ideally, install the unit in a hidden location, shielded from heat and moisture. You can attach the unit with hook and loop fastener, if that is convenient.<br />
<br />
==Attach GNSS antenna==<br />
<br />
Attach the GNSS (AKA GPS) antenna connector to RaceCapture and screw to 5-6 '''inch lbs''' - just beyond finger tight to prevent the connector from vibrating loose. '''Do not overtighten'''. <br />
<br />
===Locating Antenna===<br />
* '''Ideal''': Mount the antenna on the roof of the vehicle, using the magnetic mount. Place the antenna with minimum 3 feet spacing from other transmitting antennas (car radios, cellular antennas, etc).<br />
* '''Alternate Mounting''': You can mount it on the dashboard in clear view of the sky, or on the rear parcel tray under the back window. Note, this may degrade your GPS performance vs. roof mounting. <br />
<br />
[[file:RaceCapture_Pro_MK3_antenna_install.png]]<br />
<br />
==Download the app==<br />
===On Mobile===<br />
* [https://play.google.com/store/apps/details?id=com.autosportlabs.racecapture&hl=en Google Play]<br />
* [https://www.amazon.com/Autosport-Labs-Race-Capture/dp/B016ZJM7GE Amazon App Store]<br />
* [https://itunes.apple.com/us/app/racecapture/id1162797255?mt=8 iOS App Store]<br />
<br />
* '''Not sure what tablet to use? ''' [[RaceCapture_App_recommended_tablets|See our list of recommended tablets]]<br />
<br />
===Windows / OSX===<br />
Download the Windows or OSX app from [http://podium.live/software the downloads site]<br />
*''' Windows 10 and OSX''': No USB drivers are needed for OSX or Windows 10. <br />
*'''Windows XP, 7, 8''': Not supported due to outdated video drivers, but may work depending on the video hardware used. USB drivers will require installation [[RaceCapture_App_User%27s_Guide#Microsoft_Windows_7.2F8_Driver_installation|instructions below.]]<br />
<br />
=First Time Setup=<br />
==Windows / OSX ==<br />
Connect the RaceCapture device to your computer via the supplied USB cable; this will also provide power to the unit. This is a good way to set up and test your RaceCapture system on the bench.<br />
<br />
==Android==<br />
We recommend connecting with Bluetooth when using Android devices.<br />
<br />
===Connecting with Bluetooth===<br />
* Ensure RaceCapture is powered.<br />
* Under your phone/tablet's Android Settings, navigate to the Bluetooth section. <br />
* Select the option to pair a device. Your phone/tablet will search for available devices. <br />
* Once the RaceCapture device is found, select it to pair. <br />
** '''Note''': The default password is '''1234''' - you can change this later under '''Setup'''.<br />
<br />
===Connecting with WiFi===<br />
* Ensure RaceCapture is powered.<br />
* Under Android settings, navigate to the WiFi section. <br />
* Wait until you see the RaceCapture WiFi network. <br />
* Select this network to connect.<br />
** '''Note:''' No password is required for the initial connection - you can set a password for your WiFi network later under '''Setup'''.<br />
<br />
==iOS==<br />
Due to iOS's limitation for Bluetooth connectivity, only WiFi connection is supported for RaceCapture. <br />
<br />
===Connecting with WiFi===<br />
* Ensure RaceCapture is powered.<br />
* Under your iOS settings, navigate to the WiFi section. <br />
* Wait until you see the RaceCapture WiFi network. <br />
* Select this network to connect.<br />
** '''Note:''' No password is required for the initial connection - you can set a password for your WiFi network later under '''Setup'''.<br />
<br />
===Automatic Setup and Verifying Connectivity===<br />
The RaceCapture app will guide you through a brief automated setup and tour. During this process the connection to RaceCapture/Pro will be verified.<br />
<br />
[[image:racecapture_app_first_time_setup.gif|800px]]<br />
==Using the RaceCapture app==<br />
See the [[RaceCapture_App_User%27s_Guide|RaceCapture App User's guide]] for a full tour of using the app and setting up your system.<br />
<br />
=Extended Setup Guide=<br />
==Automating use of Tablets/Phones for a Dashboard display==<br />
See this guide here: [[RaceCapture_Dashboard_Tablet_Automation|Automating Tablets/Phones for use as Dashboards Guide]]<br />
<br />
=Alternative ways to power=<br />
===USB===<br />
You can power RaceCapture using the included USB cable, plugged into your car's USB charger. <br />
* You can optionally power RaceCapture from a battery like the kind you would use to recharge a phone (1000 mAh or higher recommended)<br />
<br />
* '''Note:''' OBDII is enabled by default on CAN1; CAN2 is recommended for secondary sensor networks. <br />
<br />
=How To=<br />
* [[Vehicle_Specific_Guides|Vehicle Specific Guides]]<br />
* '''[[Harness_specifications|Plug and play harness system for sensors and devices]]'''<br />
* '''[[RCP_CAN|CAN bus / ECU sensor guide]]'''<br />
* '''[[RaceCapture_real_time_telemetry|Real-time Telemetry guide]]'''<br />
* '''[[RC_OBDII|OBDII Guide]]'''<br />
* '''[[RaceCaptureLoggingData|Logging Data]]'''<br />
*'''[[RaceCapture_troubleshooting|General troubleshooting guide]]'''<br />
*[[RaceCapturePro2_Enable_Predictive_Timing|How to: enable Predictive Timing]]<br />
*[[Podium_Live_Gauges|How to control which gauges show up on Podium.live]]<br />
*[[RaceTracks|How to: Submit a new race track]]<br />
*[[RaceCapturePro2_GPS|How to: get best GPS data]]<br />
*[[RaceCapturePro_How_To_Update_Firmware|How to update firmware]]<br />
*[[Add_Video_To_Podium|How to add video to Podium.live]]<br />
*[[Remote_Coaching_with_Race_Capture|Remote Coaching with Race Capture and Streaming Video]]<br />
*[https://www.youtube.com/watch?v=jAgFQ9k6VIw&list=PLZdfZf8eVujn2VSIXR5I-PPQSYS25xW5j How To Videos]<br />
*[[RaceCapture_Dashboard_Tablet_Automation|Automating Tablets/Phones for use as Dashboards Guide]]<br />
*[[AutomaticCameraControl|Automatic Camera control guide]]<br />
<br />
=Specifications=<br />
{| class="alignleft" style="background-color: #e0e0e0" width="100%"<br />
| colspan="2" | '''Analog Inputs'''<br />
|-<br />
| Channels<br />
| Battery Voltage (Internally connected) (0-20v)<br />
|-<br />
| colspan="2" | '''CAN Bus'''<br />
|-<br />
| CAN Channels<br />
| 2<br />
|-<br />
| CAN baud rate<br />
| 125K, 250K, 500K, 1M Baud<br />
|-<br />
| CAN filters<br />
| 14 per channel<br />
|-<br />
| Protocol Support<br />
| OBDII PID, custom CAN mapping<br />
|-<br />
| CAN Bus<br />
| CAN 2.0 compatible, 1M baud<br />
|-<br />
| CAN termination<br />
| Internal jumper controlled; termination disabled by default<br />
|-<br />
| CAN channels supported<br />
| 100<br />
|-<br />
| colspan="2" | '''Cellular Telemetry'''<br />
|-<br />
| Via RaceCapture App<br />
| 3G/4G depending on mobile device's capability (phone) or connected tablet + hotspot<br />
|-<br />
| Maximum Sample Rate<br />
| 10Hz (1/5/10Hz supported)<br />
|-<br />
| colspan="2" | '''GPS/GNSS'''<br />
|-<br />
| GNSS (GPS) Engine<br />
| 1/5/10/25Hz native<br />
|-<br />
| Supported Constellations<br />
| GPS, GLONASS, Beidou, Galileo<br />
|-<br />
| GNSS Antenna<br />
| Triple band External / Magnetic roof mount<br />
|-<br />
| colspan="2" | '''Wireless (WiFI)'''<br />
|-<br />
| WiFi<br />
| 802.11bgn<br />
|-<br />
| WiFi Modes<br />
| Access Point, Infrastructure<br />
|-<br />
| Maximum Sample Rate (dashboard link)<br />
| 50Hz<br />
|-<br />
| colspan="2" | '''Wireless (Bluetooth)'''<br />
|-<br />
| Bluetooth (high speed)<br />
| 2.0/2.1 EDR<br />
|-<br />
| Maximum Sample Rate (dashboard link)<br />
| 50Hz<br />
|-<br />
| colspan="2" | '''General Features'''<br />
|-<br />
| Maximum Sample Rate<br />
| 50Hz<br />
|-<br />
| Predictive Lap Timing<br />
| Built-in<br />
|-<br />
| Track Mapping<br />
| Circuit and point-point<br />
|-<br />
| Track maps<br />
| Unlimited - update from cloud<br />
|-<br />
| Sectors per track<br />
| 20<br />
|-<br />
| Analysis<br />
|<br />
Included in the RaceCapture App + [http://podium.live podium.live]<br />
|-<br />
| Export data format<br />
| Plain CSV (RaceRender and Dashware compatible)<br />
|-<br />
| colspan="2" | '''Scripting / Customization'''<br />
|-<br />
| Real-time virtual (math) channels / custom channel mapping<br />
| Via on-board Lua scripting<br />
|-<br />
| Virtual Channels<br />
| 100<br />
|-<br />
| colspan="2" | '''Physical'''<br />
|-<br />
| Dimensions<br />
| 85 x 90 x 35mm (3.34 x 3.54 x 1.37in)<br />
|-<br />
| Temperature range<br />
| -40 to 85c<br />
|-<br />
| Environmental<br />
| IP50 rated<br />
|-<br />
| Weight<br />
| 150g (5 oz)<br />
|-<br />
| Physical<br />
| M8 4P connector for Power and CAN1 to ECU; M8 6P connection for CAN1 / CAN2 expansion to sensor networks<br />
|-<br />
| Power Consumption (max)<br />
| 1.6W<br />
|}</div>Brentphttps://wiki.autosportlabs.com/index.php?title=ESP32-CAN-X2&diff=9826ESP32-CAN-X22023-12-04T15:54:07Z<p>Brentp: /* Features */ removed redundant feature</p>
<hr />
<div>=Introduction=<br />
<br />
ESP32-CAN-X2 is an ESP32-based development board specifically designed for CAN communication. This board has all the features of a modern ESP32 development board, integrated Wi-Fi and Bluetooth, along with the extended CAN controller. Autosport Labs has specifically designed it for CAN communication along with fast processing and computation options. <br />
<br />
This is a complete how-to-use guide and this user guide will describe each and every step to use the board and harness the maximum potential of the board.<br />
<br />
=Features=<br />
<br />
Features of ESP32-CAN-X2 development board:<br />
<br />
* Based on ESP32-SE-WROOM-1-N8R8 microcontroller powerful dual-core Xtensa LX6 CPU running at up to 240 MHz.<br />
* 384 KB ROM, 512 KB SRAM, 16 KB SRAM in RTC, 8 MB PSRAM<br />
* Two LED’s : LED PWM & LED communication<br />
* Integrated Wi-Fi (802.11b/g/n) and Bluetooth capabilities<br />
* Reset and Boot push button<br />
* USB-C type socket for flashing, and power supply<br />
* Integrated antenna for long range communication<br />
* Additional CAN communication controller CAN using MCP2515<br />
* 6-pin header is strategically positioned at the top for CAN communication<br />
* Easy-to-interface programming. Required no external debugger for flashing<br />
* Integrated CAN transceivers<br />
* Configurable CAN termination resistors, which can be disabled via breakable jumpers<br />
* Flexible power supply options<br />
* Support of a wide choice of commonly used Integrated Development Environments (IDEs)<br />
* Comprehensive free software libraries and examples for CAN communication<br />
<br />
=Getting started=<br />
<br />
This section will provide you with comprehensive information about the ESP32-CAN-X2 development board's key components, mechanical layout, power rating, & requirements. This detailed information helps you to use the board effectively and efficiently in your projects.<br />
<br />
== Key Components of ESP32-CAN-X2 Development Board ==<br />
<br />
<br />
<br />
Figure 1 given below indicates the important key components of the ESP32-CAN-X2 Development Board and their location on the board.<br />
<br />
[[File:Development Board Key Components.png|Figure 1]]<br />
<br />
=== Microcontroller ===<br />
<br />
The ESP32-CAN-X2 Development Board is designed around the ESP32-S3-WROOM-1-N8R8 microcontroller in a 40-pin package. The connections between the development board and the microcontroller is straightforward, where the majority of GPIO pins are directly connected with the external headers, SV1 & SV2, and some pins are reserved internal connections between the board and CAN controllers. The internal connections between the microcontroller and CAN controllers are shown in the CAN controller heading given below. The microcontroller pin layout is shown in Figure 2 given below.<br />
<br />
[[File:Microcontroller pin layout.png|Figure 2]]<br />
<br />
=== External Connection Header ===<br />
<br />
External headers, SV1 & SV2, are the two other important components of this development board. SV1 is the left side dual row header and the SV2 is the right side dual row header. Both of these headers have 20 pins available for connection. These headers provide connections for GPIOs, power output, ground (GND), power input, and CAN communication pins. Both of these header pinouts have standard size, allowing users to connect them using jumper wires, a breadboard, or even solder wires permanently onto the development board. However, while doing the wire connection the customer must make sure that none of them get short circuit. The details regarding the pin's names, numbers, outputs, and functions are given in the Board Pinout section below.<br />
<br />
=== CAN Controllers ===<br />
<br />
The MCP2515 external connected CAN communication controller, and ESP-32 built-in CAN communication controller are two other main components of this development board.<br />
<br />
The MCP2515, operating as the second external CAN controller in this development board, is a specialized component designed for Controller Area Network (CAN) applications. Its features include:<br />
<br />
* Implements CAN V2.0B at up to 1 Mb/s.<br />
* High-Speed SPI Interface (10 MHz)<br />
* Interrupt Output Pin with selectable enables<br />
* Multiple receive and transmit buffers <br />
* Low-Power CMOS Technology: - Operates from 2.7V-5.5V, 5 mA active current (typical), 1 μA standby current<br />
<br><br />
The internal CAN controller also works at CAN V2.0. The internal CAN supports two message formats:<br />
<br />
* Base frame format (11-bit ID)<br />
* Extended frame format (29-bit ID)<br />
<br><br />
'''Internal pinout connection between the CAN controllers and ESP32'''<br />
<br />
* CAN 1: This is a built-in CAN controller and its RX is connected to IO6 of the microcontroller and TX is connected to IO7 of the microcontroller. The connections are shown in Figure 3 given below<br />
* CAN 2: This is the externally connected controller and its CS, MOSI, CLK, and MISO are connected at pin numbers 1O10, 1011, 1012, and 1O13 respectively. The connections are shown in Figure 3 given below<br />
<br />
[[File:Internal connection.png|Figure 3]]<br />
<br />
=== 6 pin JST-PH Connector ===<br />
<br />
The ESP32-CAN-X2 development board provides an additional 6-pin connector header at the top of the board to supports CAN communication. This header makes wiring the device more convenient and robust. The CAN communication connection pinout details are given in the pinout section below.<br />
<br />
=== USB-C Socket ===<br />
<br />
The ESP32-CAN-X2 development board has one USB-C port. This port is used for multiple functions: it powers the board, allows programming, and facilitates serial communication both ways.<br />
However, it is important to note that when powering the board through the USB-C port, please ensure the voltage does not exceed 5V @ 2A or 3.3V @ 1A.<br />
<br />
== Board Layout ==<br />
<br />
Mechanical board outline physical dimensions:<br />
<br />
* Width : 42.10 mm<br />
* Length : 72 mm<br />
<br><br />
The board top view is shown in the Figure 4 given below.<br />
<br />
[[File:Board top view.png|Figure 4]]<br />
<br />
== Power Ratings & Environmental Requirements ==<br />
<br />
'''Power Options'''<br />
<br />
The ESP32-CAN-X2 development board is flexible in its power input, and it provides multiple power input options. Power can either be supplied via the VIN pin, or via USB-C connector. Any voltage input either via USB or VIN is stepped down to 3.3 V via a voltage regulator. <br />
<br />
'''Pin Voltage'''<br />
<br />
All digital & analog pins on the ESP32-CAN-X2 development board are 3.3 V. Do not connect any higher voltage devices to any of the pins as it will risk damaging the board.<br />
<br />
'''VIN Rating'''<br />
<br />
The recommended input voltage rating for the development board is 3-12V. Please do not attempt to power the board with a voltage outside the recommended range, particularly not higher than 12V.<br />
<br />
'''Operating Current'''<br />
<br />
The typical operating current of ESP32-CAN-X2 development board is 105mA and maximum operating current is 500mA ( peak, during transmission )<br />
<br />
'''Power Consumption'''<br />
<br />
The normal power consumption of the board is 330mW and peak power consumption is 1.65W <br />
<br />
'''Operating Temperature'''<br />
<br />
Temperate rating is -40°C to +85°C<br />
<br />
=CAN bus information=<br />
<br />
CAN, also known as Control area networking, is a serial communication protocol that is widely used in Automotive applications. CAN bus communication protocol utilizes differential signaling methods in which data is transferred as a voltage difference between High and low voltage. Can Bus communication provides various advantages over other communication methods which makes it the most important communication protocol in automotive. A few features are follows<br />
<br />
'''Multimaster system'''<br />
<br />
In CAN Bus communication, multiple controllers can act as a master, and multiple devices can act as a node. Each node can share data with other nodes via the CAN bus. In modern cars, there are more than 70 ECUs, and using CAN communication each ECU acts as a node and can transfer the data to the CAN bus, this data is then available to all the ECUs, and ECU can then check the data and decide whether to receive or ignore it.<br />
<br />
For details, visit: https://www.csselectronics.com/pages/can-bus-simple-intro-tutorial<br />
<br />
'''Lossless communication'''<br />
<br />
CAN communication uses a bitwise arbitration method that avoids the contentions of data on the bus. When two nodes simultaneously try to send the data, then the node with the high priority ( lower identifier ) gets priority and continues transmitting. The identifier message can be 11-bit ( standard CAN ) or 29-bit ( extended CAN) in length.<br />
<br />
For details, visit: https://dewesoft.com/blog/what-is-can-bus<br />
<br />
'''Simple and cheap'''<br />
<br />
The CAN communication between the ECUs is done through a single CAN system instead of direct complex analog signal lines which makes it extremely simple and reduces errors.<br />
<br />
For details, visit: https://www.autopi.io/blog/can-bus-explained/<br />
<br />
'''Errorless communication'''<br />
<br />
CAN incorporates different built-in error detection mechanisms including cyclic redundancy checks (CRC), and frame check sequences (FCS) to detect errors during data transmission.<br />
<br />
'''CAN network types'''<br />
<br><br />
Prominent CAN network types are as follows.<br />
<br />
* High-speed CAN bus ( Supports bit rates between 40 kbit/s and 1 Mbit/s )<br />
* Low-Speed CAN bus ( Supports bit rates between 40 kbit/s and 125 kbit/s )<br />
* CAN FD ( Supports bit rates between 1 Mbps to 8 Mbps )<br />
<br><br />
For details, visit:https://dewesoft.com/blog/what-is-can-bus<br />
<br />
'''Data transmission'''<br />
<br />
In CAN, data is transferred between two nodes in messages known as CAN frames. There are four types of CAN frames.<br />
* Data frame ( Used to transfer data between two node )<br />
* Remote frame ( request data from other node )<br />
* Error frame ( report errors )<br />
* Overload frame ( report overload )<br />
<br><br />
For details, visit:https://www.autopi.io/blog/can-bus-explained/<br />
<br />
== CAN Termination ==<br />
<br />
CAN termination is a process of terminating the CAN bus to prevent the signal reflection at the end of the bus and to ensure the correct DC level of the bus. The CAN BUS is bidirectional, and both ends of the bus must be properly terminated to prevent errors in communication. CAN termination is achieved by placing the termination resistance, which is normally 120 ohm, that matches the nominal resistance of the cable. ISO 11898 requires normally required CAN BUS cable of impedance 120 ohm; therefore, the CAN 120 ohm resistance is used for CAN termination. However, while doing the CAN termination, it must be kept in mind that the nodes from the far two ends of the cable only require termination resistors. <br />
<br />
Figure 5 given below explain the CAN termination.<br />
<br />
[[File:CAN BUS TERMINATION.png]]<br />
<br />
Note :The low-speed CAN, single wire CAN, may not require the CAN bus termination.<br />
<br />
'''How to enable & disable CAN termination in ESP-32-X2 ?'''<br />
<br />
The ESP-32-X2 development board has given two separate CAN termination pads at the top of the development board adjacent to the 6-PIN CAN communication header. The CAN termination jumpers are shown in the figure 6 given below.<br />
<br />
[[File:CAN BUS TERMINATION DISABLE JUMPERS.png]]<br />
<br />
* Enable termination : In ESP-32-X2 development board, CAN termination is enabled by default.<br />
* Disable termination : Scratch the copper trace between the pads, TERM1 & TERM2. <br />
* Re-enable termination : Re-solder the traces between the pads<br />
<br />
Note : Proper termination is necessary for ensuring errorless communication and signal integrity. Please follow the above given instruction carefully.<br />
<br />
=Board Pinout=<br />
<br />
The ESP32-CAN-X2 board has 40 pins across its two headers, SV1 & SV2 headers, and a 6-pin header at the top. This guide explains the pin functionalities of the board. The pin configuration of development board shown in Figure 7 given below.<br />
<br />
[[File:Pin Configuration 1.png|Figure 7]]<br />
<br />
'''Left Header (SV2) Pinout (Top to Bottom)'''<br />
<br />
The pin count start from the top of the left header, and the pin details are as following :<br />
<br />
{| class="wikitable"<br />
|+<br />
|-<br />
! Pin !! Function !! Description<br />
|-<br />
| 1 || CAN1H/2.7D || high-level signal for the first CAN channel.<br />
|-<br />
| 2 || CAN1L/2.7D || low-level signal for the first CAN channel<br />
|-<br />
| 3 || CAN2H/2.7C || high-level signal for the second CAN channel<br />
|-<br />
| 4 || CAN2L/2.7C || low-level signal for the second CAN channel<br />
|-<br />
| 5 || RX Pin || USART RX<br />
|-<br />
| 6 || TX Pin || USART TX<br />
|-<br />
| 7-20|| GPIO Pins || GPIO's<br />
|-<br />
|}<br />
<br />
'''Right Header (SV1) Pinout (Bottom to Top )'''<br />
<br />
The pin count start from bottom to top and details are as following :<br />
<br />
{| class="wikitable"<br />
|+ <br />
|-<br />
! Pin !! Function !! Description<br />
|-<br />
| 1-11 || GPIO Pins || GPIO's<br />
|-<br />
| 12-13 || Vin || Voltage Input<br />
|-<br />
| 14-15 || 5V || 5 Voltage Output<br />
|-<br />
| 16-18 || GND || Ground<br />
|-<br />
| 19-20 || 12 Vin || 12 Voltage Input<br />
|}<br />
<br />
'''Top Header Pinout'''<br />
<br />
The header supports CAN communication. Pin count start at the left viewing the board from the top. Pinout configuration of header is shown in Figure 8 given below.<br />
<br />
[[File:HEADER.png|fIGURE 8]]<br />
<br />
{| class="wikitable"<br />
|+ <br />
|-<br />
! Pin !! Function !! Description<br />
|-<br />
| 1 || CAN1L/2.7A || low-level signal for the first CAN channel<br />
|-<br />
| 2 || CAN2L/2.7B || low-level signal for the second CAN channel <br />
|-<br />
| 3 || CAN2H/2.7B || high-level signal for the second CAN channel<br />
|-<br />
| 4 || GND || Ground<br />
|-<br />
| 5 || CAN2H/2.7A || high-level signal for the first CAN channel<br />
|-<br />
| 6 || +12V_ Aux || 6-12v power supply<br />
|}<br />
<br />
=Flashing Firmware=<br />
<br />
Firmware flashing in this development board is straightforward. The following components are required for firmware flashings.<br />
<br />
'''Hardware Components'''<br />
<br />
* USB-C cable <br />
* Computer running Windows, Linux, or macOS <br />
<br><br />
<br />
'''Software Components'''<br />
<br />
* Updated Arduino IDE to compile code for ESP-32-X2.<br />
<br><br />
Note : Link to download Arduino IDE : https://www.arduino.cc/en/software<br />
<br />
== Step by step instruction ==<br />
<br />
Step-by-step instructions for flashing ESP-32-X2 are as follows.<br />
<br />
'''Install ESP-32-X2 Board Support:'''<br />
<br />
Adding ESP-32-X2 in Arduino Ide is a single-time process and its steps are as follows.<br />
<br />
* Open Arduino Ide<br />
* Go to File > Preferences<br />
<br><br />
<br />
[[File:Flashing1.png| Figure 7]]<br />
<br />
* Add the below given Json URL in the Additional board manager URL<br />
<br />
Json URL : ( )<br />
<br><br />
<br />
[[File:Flashing2.png|Figure 8]]<br />
<br />
* Go to Tools > Board > Boards Manager<br />
<br><br />
<br />
[[File:Flashing3.png|Figure 9]]<br />
<br />
* In the Board Manager search bar, type ESP-32-X2 and click on install to install the board<br />
<br><br />
<br />
[[File:Flashing4.png|Figure 10]]<br />
<br />
* After installing, click on Tool > Boards and select ESP-32-X2<br />
<br><br />
'''Flashing'''<br />
<br />
* Connect the ESP-32-X2 board to your computer using a USB-C cable with your Arduino IDE open<br />
<br />
* Select ESP-32-X2 in Tools > Board menu<br />
<br />
* Go to Tools > Port and select the COM port to which ESP-32-X2 is connected.<br />
<br />
<br><br />
Note : If you don’t see the COM Port in your Arduino IDE, you need to install the CP210x USB to UART Bridge VCP Drivers: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers<br />
<br><br />
<br />
* Write your firmware code or add an existing sketch that you want to upload to your custom board.<br />
<br />
* Go to Sketch > Click upload to compile and upload the code<br />
<br />
* After successful uploading, you should see a “Done uploading.” message at the bottom console. This console will also show error messages if there is any error.<br />
<br />
[[File:Flashing5.png|Figure 11]]<br />
<br />
If any issues occur during upload, double-check the board selection, COM port, and your code for errors.<br />
<br><br />
<br />
'''Endless Opportunities'''<br />
<br />
Now you are ready to explore the endless opportunities.<br />
<br />
=Sample Arduino Project=<br />
https://github.com/autosportlabs/ESP32-CAN-X2</div>Brentphttps://wiki.autosportlabs.com/index.php?title=ESP32-CAN-X2&diff=9749ESP32-CAN-X22023-11-01T01:05:27Z<p>Brentp: Made more concise</p>
<hr />
<div>=Introduction=<br />
<br />
ESP32-CAN-X2 is an ESP32-based development board specifically designed for CAN communication. This board has all the features of a modern ESP32 development board, integrated Wi-Fi and Bluetooth, along with the extended CAN controller. Autosport Labs has specifically designed it for CAN communication along with fast processing and computation options. <br />
<br />
This is a complete how-to-use guide and this user guide will describe each and every step to use the board and harness the maximum potential of the board.<br />
<br />
=Features=<br />
<br />
Features of ESP32-CAN-X2 development board:<br />
<br />
* Based on ESP32-SE-WROOM-1-N8R8 microcontroller powerful dual-core Xtensa LX6 CPU running at up to 240 MHz.<br />
* 384 KB ROM, 512 KB SRAM, 16 KB SRAM in RTC, 8 MB PSRAM<br />
* Two LED’s : LED PWM & LED communication<br />
* Integrated Wi-Fi (802.11b/g/n) and Bluetooth capabilities<br />
* Reset and Boot push button<br />
* USB-C type socket for flashing, and power supply<br />
* Integrated antenna for long range communication<br />
* Additional CAN communication controller CAN using MCP2515<br />
* 6-pin header is strategically positioned at the top for CAN communication<br />
* ESP32-CAN-X2 supports an additional external CAN transceiver<br />
* Easy-to-interface programming. Required no external debugger for flashing<br />
* Integrated CAN transceivers<br />
* Configurable CAN termination resistors, which can be disabled via breakable jumpers<br />
* Flexible power supply options<br />
* Support of a wide choice of commonly used Integrated Development Environments (IDEs)<br />
* Comprehensive free software libraries and examples for CAN communication<br />
<br />
='''Getting started'''=<br />
<br />
This section will provide you with comprehensive information about the ESP32-CAN-X2 development board's key components, mechanical layout, power rating, & requirements. This detailed information helps you to use the board effectively and efficiently in your projects.<br />
<br />
== '''Key Components of ESP32-CAN-X2 Development Board''' ==<br />
<br />
<br />
<br />
Figure 1 given below indicates the important key components of the ESP32-CAN-X2 Development Board and their location on the board.<br />
<br />
[[File:Development Board Key Components.png|Figure 1]]<br />
<br />
=== '''Microcontroller''' ===<br />
<br />
The ESP32-CAN-X2 Development Board is designed around the ESP32-S3-WROOM-1-N8R8 microcontroller in a 40-pin package. The connections between the development board and the microcontroller is straightforward, where the majority of GPIO pins are directly connected with the external headers, SV1 & SV2, and some pins are reserved internal connections between the board and CAN controllers. The internal connections between the microcontroller and CAN controllers are shown in the CAN controller heading given below. The microcontroller pin layout is shown in Figure 2 given below.<br />
<br />
[[File:Microcontroller pin layout.png|Figure 2]]<br />
<br />
=== '''External Connection Header''' ===<br />
<br />
In addition to the microcontroller, external headers, SV1 & SV2, are the two other important components of this development board. SV1 is the left side dual row header and the SV2 is the right side dual row header. Both of these headers have 20 pins available for connection. These headers provide connections for GPIOs, power output, ground (GND), power input, and CAN communication pins. Both of these header pinouts have standard size, allowing users to connect them using jumper wires, a breadboard, or even solder wires permanently onto the development board. However, while doing the wire connection the customer must make sure that none of them get short circuit. The details regarding the pin's names, numbers, outputs, and functions are given in the Board Pinout section below.<br />
<br />
=== '''CAN Controllers''' ===<br />
<br />
The MCP2515 external connected CAN communication controller, and ESP-32 built-in CAN communication controller are two other main components of this development board.<br />
<br />
The MCP2515, operating as the second external CAN controller in this development board, is a specialized component designed for Controller Area Network (CAN) applications. Its features include:<br />
<br />
* Implements CAN V2.0B at up to 1 Mb/s.<br />
* High-Speed SPI Interface (10 MHz)<br />
* Interrupt Output Pin with selectable enables<br />
* Multiple receive and transmit buffers <br />
* Low-Power CMOS Technology: - Operates from 2.7V-5.5V, 5 mA active current (typical), 1 μA standby current<br />
<br />
The internal CAN controller also works at CAN V2.0. The internal CAN supports two message formats:<br />
<br />
* Base frame format (11-bit ID)<br />
* Extended frame format (29-bit ID)<br />
<br />
'''Internal pinout connection between the CAN controllers and ESP32'''<br />
<br />
Internal pinout connections of the CAN controllers:<br />
* CAN 1: This is a built-in CAN controller and its RX is connected to IO6 of the microcontroller and TX is connected to IO7 of the microcontroller. The connections are shown in Figure 3 given below<br />
* CAN 2: This is the externally connected controller and this controller CS, MOSI, CLK, and MISO are connected at pin numbers 1O10, 1011, 1012, and 1O13 respectively. The connections are shown in Figure 3 given below<br />
<br />
[[File:Internal connection.png|Figure 3]]<br />
<br />
=== '''6 pin JST-PH Connector''' ===<br />
<br />
In addition to the 40 pinouts of the Header SV1 and SV2, the ESP32-CAN-X2 development board also provides an additional 6-pin connector header at the top of the board to supports CAN communication. This header makes wiring the device more convenient and robust. The CAN communication connection pinout details are given in the pinout section below.<br />
<br />
=== '''USB-C Socket''' ===<br />
<br />
The ESP32-CAN-X2 development board has one USB-C port. This port is used for multiple functions: it powers the board, allows programming, and facilitates serial communication both ways.<br />
However, it is important to note that when powering the board through the USB-C port, please ensure the voltage does not exceed 5V @ 2A or 3.3V @ 1A.<br />
<br />
== '''Board Layout''' ==<br />
<br />
Mechanical board outline physical dimensions:<br />
<br />
* Width : 42.10 mm<br />
* Length : 72 mm<br />
<br />
The board top view is shown in the Figure 4 given below.<br />
<br />
[[File:Board top view.png|Figure 4]]<br />
<br />
== '''Power Ratings & Environmental Requirements''' ==<br />
<br />
'''Power Options'''<br />
<br />
The ESP32-CAN-X2 development board is flexible in its power input, and it provides multiple power input options. Power can either be supplied via the VIN pin, or via USB-C connector. Any voltage input either via USB or VIN is stepped down to 3.3 V via a voltage regulator. <br />
<br />
'''Pin Voltage'''<br />
<br />
All digital & analog pins on the ESP32-CAN-X2 development board are 3.3 V. Do not connect any higher voltage devices to any of the pins as it will risk damaging the board.<br />
<br />
'''VIN Rating'''<br />
<br />
The recommended input voltage rating for the development board is 3-12V. Please do not attempt to power the board with a voltage outside the recommended range, particularly not higher than 12V.<br />
<br />
'''Operating Current'''<br />
<br />
The typical operating current of ESP32-CAN-X2 development board is 105mA and maximum operating current is 500mA ( peak, during transmission )<br />
<br />
'''Power Consumption'''<br />
<br />
The normal power consumption of the board is 330mW and peak power consumption is 1.65W <br />
<br />
'''Operating Temperature'''<br />
<br />
Temperate rating is -40°C to +85°C<br />
<br />
=CAN bus information=<br />
...brief information about what CAN bus is all about, links to external resources...<br />
<br />
=Board Pinout=<br />
...a visually appealing graphic showing the board pinout...<br />
<br />
=Flashing firmware=<br />
...how to flash the firmware...<br />
<br />
=Sample Arduino Project=<br />
https://github.com/autosportlabs/ESP32-CAN-X2</div>Brentphttps://wiki.autosportlabs.com/index.php?title=Video_plus_data_streaming_with_racecapture&diff=9726Video plus data streaming with racecapture2023-10-28T19:53:18Z<p>Brentp: /* Inspecting Logfiles */</p>
<hr />
<div>=Introduction=<br />
This guide shows you how to add video+data livestreaming to your existing RaceCapture system.<br />
<br />
After following this guide, you will have:<br />
* 2-camera video with picture-in-picture<br />
* Rich, realtime graphics overlay<br />
* Broadcast to youtube or your preferred streaming provider via an in-vehicle cellular hotspot<br />
* Local video recording<br />
<br />
=System Overview=<br />
Video+data streaming is enabled by using a separate streaming/encoding device. As RaceCapture supports multiple simultaneous connections, an existing dashboard can be retained.<br />
[[image:RaceCapture video+data livestreaming system diagram.png]]<br />
<br />
==Cost==<br />
The cost for adding video+data livestreaming to your RaceCapture system can range '''between 0 and 800 USD''', depending on the parts you may already have on hand.<br />
<br />
==How hard is it to setup?==<br />
'''This project requires following instructions''', including:<br />
* Installing an operating system<br />
* Typing computer commands<br />
* Plugging in cables<br />
* Editing configuration files<br />
* Selecting options in an application<br />
<br />
This ability is within the realm of someone with moderate computer skills. If the instructions seem daunting, find someone to help you along.<br />
<br />
* For those who crave convenience, we will also be offering a pre-packaged setup that take care of most of the setup steps.<br />
<br />
==Production State==<br />
Since it is based on existing RaceCapture technology (RaceCapture hardware and RaceCapture app), the core of the system is very stable.<br />
<br />
New components that add video rendering, encoding, and streaming will be improved through your testing feedback and rounds of updates.<br />
<br />
As of this writing, several existing RaceCapture users have put the system through it's paces with great results. <br />
<br />
So far we were very pleased with the stability and performance, and we will continue to improve the system through software updates.<br />
<br />
===A demonstration===<br />
Here's the Session from the inaugural test (with sub optimal camera exposure settings and low quality microphone)<br />
<br />
<youtube>zVUJwnGoCnI&t=2990s</youtube><br />
<br />
===Experimental===<br />
While we consider this '''experimental''' - it is also a free software upgrade for a system that was never originally designed for this purpose. <br />
<br />
With your testing help we can steadily improve it and ultimately provide an incredibly cost effective yet very full-featured and high performance system that rivals solutions costing upwards of $5000 USD.<br />
<br />
=Parts you will need=<br />
==Your existing RaceCapture system==<br />
The RaceCapture system will provide access to your car's sensor data (CAN bus or analog sensors), high performance GPS, Accelerometer / Gyro sensors, lap timing and other motorsport related statistics.<br />
===Compatible Systems===<br />
* Any current or previous RaceCapture or PodiumConnect system will work.<br />
[[image:racecapture_pro_mk4_connectors_1024.jpg|520px]]<br />
[[Image:PodiumConnect_MK2_3quarter_1024.jpg|270px]]<br />
[[Image:rct_mk3_3quarter.jpg|300px]]<br />
<br />
==Rendering/Streaming computer==<br />
A tiny form-factor computer is used to receive data from RaceCapture and is responsible for video+data overlay, encoding, and broadcasting the video to youtube or similar streaming platform.<br />
===Recommended===<br />
* [https://www.amazon.com/gp/product/B0BCVCZDH3 Beelink SER5]<br />
The Beelink SER5 is our recommended choice as it is powerful, cost effective, and provided in a compact and lightweight form factor.<br />
<br />
[[image:beelink_ser5_micro_pc.jpg|500px]]<br />
<br />
===Alternatives===<br />
A micro system with an Intel I5-6500 through I5-7600 + SSD + 8GB RAM is an acceptable option as well. This may be a system you already have or a surplus system you can get at minimum cost.<br />
* Look for these options:<br />
** SSD (required for ruggedness - smallest size is fine).<br />
** Smallest RAM option is fine (typically 8GB)<br />
** Included WiFi - for connection versatility<br />
====Candidates====<br />
* Dell Optiplex 7050 micro desktop: [https://www.ebay.com/sch/i.html?_nkw=Dell+Optiplex+7050+Micro+Desktop+Computer&_sacat=0 Ebay search] (nice because most have wifi)<br />
[[image:dell-optiplex-7050.jpg|510px]]<br />
* HP EliteDesk 800 G3 Mini: [https://www.ebay.com/sch/i.html?_nkw=HP+EliteDesk+800+G3+Desktop+Mini&_sacat=0 Ebay search]<br />
[[image:HP-elitedesk-800.jpg|550px]]<br />
<br />
==12v DC to DC converter==<br />
A 12v-19v DC to DC converter is needed to power the rendering/broadcasting computer in the vehicle. This converter avoids needing an AC inverter in the car, making for a clean installation.<br />
* '''Tips''':<br />
** Choose a device that has sufficient power capacity (100W minimum)<br />
===Recommended===<br />
These have been tested to work:<br />
* [https://www.amazon.com/gp/product/B07TT2F95L KFD 100W universal car charger]<br />
[[image:KFD-100W-DC-to-DC-converter-12v-to-19v.jpg|500px]]<br />
* '''Tips''':<br />
** We recommend cutting the cigar lighter connection and hard-wiring the power to a 15A circuit. (center conductor is positive).<br />
<br />
==Cameras==<br />
You will need 1 or 2 cameras for capturing and rendering video. <br />
===Recommended Camera Kit===<br />
Autosport Labs will soon provide a camera kit that provides high quality imaging, a compact and ruggedized IP65 form-factor, and the perfect 110 degree field of view.<br />
<br />
[[image:RaceCapture_video+data_livestreaming_windshield_mount.jpg|600px]]<br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount.jpg|600px]]<br />
<br />
===Assembling the Camera Kit===<br />
Using the supplied hardware, insert the nut into the camera clamp using a pair of small pliers. Then, use the included screw to clamp the camera to the mount. <br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_insert_nut.jpg|600px]]<br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_screw_attached.jpg|600px]]<br />
<br />
Then, assemble the camera clamp into ball and socket windshield mount, or the GoPro mount. (1 of each style is included in the kit)<br />
<br />
====Ball and Socket windshield mount====<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_ball_and_socket_mount.jpg|600px]]<br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_ball_and_socket_mount_assembled.jpg|600px]]<br />
<br />
====GoPro style mount====<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount.jpg|600px]]<br />
<br />
===Alternatives===<br />
Most any USB camera (such as a webcam) can be used. These are commonly found on [https://www.amazon.com/s?k=usb+webcam Amazon] or [https://www.ebay.com/sch/i.html?_nkw=usb+webcam&_sacat=0 Ebay].<br />
* '''Tips''':<br />
** Logitech is a good, high quality option<br />
** Find a camera that offers a 1/4-20 threaded camera mount for a secure rollbar attachment to minimize vibration.<br />
<br />
==Microphone==<br />
A microphone is needed for capturing audio.<br />
* Candidates:<br />
** USB microphone - you can use a separate USB microphone, especially if you get one that offers higher quality.<br />
** Analog microphone - you can use an analog microphone that attaches to the front headset input of the micro PC. Make sure you get a microphone that has the 4-ring connector for proper operation.<br />
** Microphone embedded in one of the cameras - if one of your your cameras has its own microphone, you can use that as an audio source.<br />
<br />
===Using the Microphone included with the kit===<br />
The kit provides a USB microphone with good audio quality. <br />
[[image:RaceCapture_video+data_livestreaming_microphone.jpg|600px]]<br />
<br />
==Display Emulator==<br />
You'll need a display emulator to plug into the streamer while running on track. This tricks the computer into thinking a monitor is attached, allowing the streamer to run. <br />
<br />
[[image:hdmi_display_emulator.jpg|300px]]<br />
<br />
The following have been tested:<br />
* [https://www.amazon.com/gp/product/B06XSY9THQ HDMI emulator] - use this for the Beelink Micro PC<br />
* [https://www.amazon.com/gp/product/B075PTQ4NH DisplayPort emulator] - use this for the HP or Dell Micro PCs<br />
<br />
==Hotspot/Router==<br />
Most any hostspot should work, but for the best performance and reliability, these options should be considered:<br />
* Hard-wired ethernet connection, for direct connection to the micro computer.<br />
* External antenna connection - a hotspot that offers external antenna will boost performance by allowing you to use a high-gain roof-mount antenna.<br />
<br />
Suggested units that offer direct hardwired connection:<br />
* [https://www.amazon.com/NETGEAR-Broadband-Modem-LM1300-Always/dp/B0BKTSMQFF Netgear LM1300]<br />
* [https://www.amazon.com/Teltonika-RUT950-LTE-4G-Router/dp/B00TKFKLCI Teltonika RUT950]<br />
* [https://www.amazon.com/Peplink-Pepwave-Cellular-Router-MAX-BR1-MINI-LTE-US-T/dp/B01MR5YKF9 Pepwave BR1]<br />
<br />
=Setup=<br />
Connect a keyboard, mouse, and monitor to the rendering/streaming computer and prepare to install Ubuntu:<br />
==Install ubuntu 22 LTS==<br />
[https://ubuntu.com/download/desktop/thank-you?version=22.04.2&architecture=amd64 Download Ubuntu Desktop] and follow the instructions to install to a USB flash drive.<br />
* '''Notes''' To install, you will need to configure the system's BIOS to boot first from the USB flash drive. <br />
** Beelink: Repeatedly press 'delete' on the keyboard right after power up.<br />
** HP: Repeatedly press F10 after power up<br />
** Dell: Repeatedly press F2 after power up<br />
<br />
===OS configuration options===<br />
* '''Important -''' Install Ubuntu with the following options<br />
** During installation, choose the option to download / install updates, including "third-party software for graphics, WiFi, and additional media formats"<br />
** Choose the option to erase the hard drive and perform a complete install.<br />
** Select Login Automatically<br />
** When prompted for your account's username, make sure you specify a password. This will allow you to easily switch between streaming mode and maintenance mode.<br />
<br />
[[image:ubunut_setup_options.jpg]]<br />
<br />
After the installation is complete, the computer will reboot into the standard desktop.<br />
<br />
==Disable keyring popup==<br />
From the desktop: log out, and log back in using with the password you created during the installation step. <br />
<br />
Then, [https://linuxconfig.org/how-to-disable-keyring-popup-on-ubuntu Disable the keyring popup] using these instructions. Observe the security notes in this guide.<br />
* '''Notes'''<br />
** The log-out/log-in step is important - don't skip it!<br />
** Disabling the keyring is important; it prevents a popup dialog when the RaceCapture app automatically starts.<br />
<br />
==Run the installer==<br />
From the Ubuntu desktop, open a terminal and enter the following commands, pressing <enter> after each line:<br />
<pre><br />
sudo apt install curl<br />
curl -sL bit.ly/3RL9Yoj | bash<br />
</pre><br />
<br />
This will automatically install the RaceCapture app and video streamer, related software dependencies, and set up configuration file templates.<br />
<br />
==Reboot==<br />
Reboot the computer once it is complete with the installation. It should automatically launch the RaceCapture app.<br />
<br />
==Edit RaceCapture settings==<br />
Edit these RaceCapture settings for proper operation when streaming<br />
===App Preferences===<br />
Navigate to Setup / App Preferences:<br />
* set Fullscreen -> ON<br />
* Set Startup Screen -> Dashboard<br />
* Turn off Session Recording<br />
[[image:racecapture-video-data-livestreaming-app-settings.jpg]]<br />
<br />
===Dashboard Preferences===<br />
Navigate to the Dashboard, then press the gear icon in the upper right of the dashboard, select "More Settings" and set the following:<br />
* Turn off Pit stop timer<br />
* Turn off pit-to-car alerts<br />
* Turn off remote dashboard navigation (scroll to bottom)<br />
[[image:racecapture-video-data-livestreaming-dashboard-settings.jpg]]<br />
<br />
[[image:racecapture-video-data-livestreaming-disable-remote-dashboard-navigation.jpg]]<br />
<br />
==Plug in camera(s)==<br />
Plug in 1 or 2 cameras into the USB port<br />
<br />
* '''Note:''' Remember the ports the cameras are plugged into, and keep this consistent during use.<br />
<br />
==Plug in USB microphone==<br />
* Plug USB microphone into a USB port. <br />
<br />
Note: if using the Beelink, plug into one of the USB ports on the rear of the system.<br />
<br />
==Connect RaceCapture==<br />
Your current RaceCapture system already supports multiple connections, so you can continue using your dashboard (e.g. Android tablet via Bluetooth) when adding this video+data streaming capability.<br />
===Via USB (overall best option)===<br />
This is the best option for connecting RaceCapture to the streaming computer. Just connect a USB cable between the rendering/streaming system and RaceCapture. RaceCapture will automatically connect.<br />
===Via WiFi===<br />
If you're already using the USB connection for a Raspberry Pi dash, you can configure the rendering/streaming system to connect to RaceCapture via WiFi.<br />
====Configure as Client====<br />
If you are already using WiFi to connect the rendering/streaming system to your hotspot, you will need to configure RaceCapture to connect to the same hotspot via the WiFi client settings. In this configuration, everything shares the same network created by the hotspot.<br />
* '''Note''': Due to system limitations, your hotspot must be up and running before RaceCapture attempts to connect to it via WiFi.<br />
====Access Point connection (best WiFi option)====<br />
If you are connecting the rendering/streaming system to the hotspot via ethernet, then you can connect the rendering/streaming system directly to RaceCapture's WiFi Access Point. The system will receive data from RaceCapture via WiFi, and broadcast the video+data stream to the hotspot via ethernet.<br />
<br />
==Configure dashboard video options==<br />
* Press Settings Gear Icon, go to More Settings / Camera Preferences<br />
<br />
Select /dev/video0 for Camera #1, and /dev/video2 for Camera #2<br />
<br />
[[image:racecapture-video-data-livestreaming-camera-settings.jpg]]<br />
<br />
==Create a test dashboard==<br />
* Press the Settings gear icon, select Add Gauge<br />
* create a video gauge, and select Camera 1 as the source. <br />
* Resize to fit the dashboard. <br />
* create another video gauge, and select Camera 2 as the source.<br />
* Resize to be the picture-in-picture video window. <br />
* Add additional gauges as you see fit, such as an analog speed gauge, track map, etc. <br />
<br />
* '''Note''' If the cameras are reversed, you can swap the camera mappings in the main dashboard settings under More Settings / Camera Preferences<br />
<br />
Editing the dashboard is very easy - see this demo for an example:<br />
<br />
<youtube>r4mxA-fhJn0</youtube><br />
<br />
==Exiting the RaceCapture app==<br />
To get back to the regular Ubuntu desktop, press ctrl-t, type :quit and press <enter>. <br />
<br />
At the login screen, select your username and press the small gear icon in the lower right to select the Ubuntu desktop. <br />
<br />
To switch back to streaming mode, log out, press the small gear icon in the lower right and select the RaceCapture streaming option. Log in, and you will be streaming again. <br />
* '''Note''': The system will persist the last option you pick - so if you reboot or power cycle, it will automatically enter streaming mode.<br />
<br />
=Video Streaming / recording=<br />
To configure your streaming settings, switch back to the regular Ubuntu Desktop.<br />
<br />
Then, edit the video-config.ini - you'll find the file on the desktop. Edit this with the standard text editor by double-clicking it.<br />
<br />
==Streaming Key / URL==<br />
If using Youtube: Set the streaming key as provided by youtube. Or, you can specify a custom URL.<br />
==Local recording==<br />
If video_dir is set and points to a valid directory, local video recording will also be enabled.<br />
<br />
Videos for the current session are stored in a timestamped directory name under the configured video directory. Videos are saved as fixed-length segments to protect against file corruption due to sudden power loss, similar to how dashcams operate.<br />
<br />
If the system experiences sudden power loss, the video currently being written to will be corrupt and unreadable. Therefore, it is important to keep the video segment length reasonably short. <br />
<br />
After the session is complete, a full video can be made by using commonly available software to assemble all of the files.<br />
<br />
===video-config.ini===<br />
<pre><br />
[local_recording]<br />
video_dir=$HOME/Videos<br />
segment_length_sec=60<br />
</pre><br />
<br />
===Notes===<br />
* Configure video_dir to the location where you want to save your video files. <br />
* Configure segment_length_sec for the desired segment length size. If not specified, the default is 60 seconds '''Note, keep this value reasonably short''' - sudden power loss will result in corruption in the last written file.<br />
<br />
==Microphone==<br />
If using a USB microphone (recommended) use the default audio_device=1<br />
<br />
* Note, you can change this to different sources:<br />
** 0 = microphone connected to built-in headset port;<br />
** 1,2,3... = represents additional microphones found on the system, typically USB microphones.<br />
<br />
You can look under Ubuntu's system settings to discover available microphones and set their respective recording levels.<br />
<br />
Example default config file<br />
<pre><br />
[capture]<br />
audio_device=1<br />
<br />
[local_recording]<br />
video_dir=$HOME/Videos<br />
<br />
[streaming]<br />
streaming_url=rtmp://a.rtmp.youtube.com/live2/<streaming key> <br />
</pre><br />
<br />
=First Test=<br />
Once your streaming key has been set and saved, log out and log back into the streamer by selecting the RaceCapture streaming mode on the login page using the gear icon in the lower right.<br />
<br />
Check your youtube livestream to see if you are receiving video. If not, try restarting the system and let the streamer launch cleanly after a fresh reboot.<br />
<br />
=Maintenance/Troubleshooting=<br />
==Open a terminal window==<br />
(advanced mode) You can open a terminal window while RaceCapture is streaming by entering the following command.<br />
* Press ctrl+t, then type c, then press <enter><br />
<br />
The screen will split into two equal windows; the new window will be a terminal where you can perform debugging steps, such as viewing log files, etc.<br />
<br />
* '''Note''': The more user-friendly alternative is to just log out and log back in to the Ubuntu desktop.<br />
<br />
==Log out==<br />
You can log out of the current session to access the original Ubuntu desktop to perform additional maintenance.<br />
* Press ctrl-t, then type :quit, then press <enter><br />
<br />
Once you've logged out, you can log back into the Ubuntu desktop by pressing the gear icon in the lower right, and select Ubuntu. <br />
<br />
To get back to the RaceCapture full-screen app mode, select "RaceCapture livestreaming" from this menu; this is the window manager that is configured to run RaceCapture in full-screen mode.<br />
<br />
==Inspecting Logfiles==<br />
Log files are located in the logs directory under the user's home directory. Log files are named with the date they were created.<br />
===Video streamer log file===<br />
The log files for the video streamer agent have information about the video streamer's connection and activity. You can open it to see any helpful error messages regarding streaming.<br />
===RaceCapture log file===<br />
The RaceCapture log file will have potentially useful information for debugging the operation of the RaceCapture app.<br />
<br />
=Extras=<br />
==Mount for Beelink micro PC==<br />
<br />
We have designed a cage-style mount for the Beelink Micro PC. This allows convenient surface mounting of the PC.<br />
* Download STL file for 3D printing: [[file:Beelink_SER5_mount.zip]]<br />
<br />
[[image:beelink_cage_mount.jpg]]</div>Brentphttps://wiki.autosportlabs.com/index.php?title=ESP32-CAN-X2&diff=9725ESP32-CAN-X22023-10-27T05:21:37Z<p>Brentp: Created page with "=Introduction= ...introduction about this device... =Features= ...Features of the board... =Getting started= ...what's in the kit... =CAN bus information= ...brief information about what CAN bus is all about, links to external resources... =Board Pinout= ...a visually appealing graphic showing the board pinout... =Flashing firmware= ...how to flash the firmware... =Sample Arduino Project= https://github.com/autosportlabs/ESP32-CAN-X2"</p>
<hr />
<div>=Introduction=<br />
...introduction about this device...<br />
<br />
=Features=<br />
...Features of the board...<br />
<br />
=Getting started=<br />
...what's in the kit...<br />
<br />
=CAN bus information=<br />
...brief information about what CAN bus is all about, links to external resources...<br />
<br />
=Board Pinout=<br />
...a visually appealing graphic showing the board pinout...<br />
<br />
=Flashing firmware=<br />
...how to flash the firmware...<br />
<br />
=Sample Arduino Project=<br />
https://github.com/autosportlabs/ESP32-CAN-X2</div>Brentphttps://wiki.autosportlabs.com/index.php?title=CAN_Bus_Integration&diff=9723CAN Bus Integration2023-10-04T16:19:44Z<p>Brentp: /* Preset configurations */</p>
<hr />
<div>=Introduction=<br />
Mapping an existing CAN bus system can be easy with basic knowledge of CAN mapping, and most importantly - if CAN technical documentation is available for the device in question. Fortunately, ECU and sensor manufacturers are keen on providing documentation as they naturally want their devices as inter-operable as possible. <br />
<br />
If documentation isn't available, the problem is just more interesting to someone with the time and skills, and it helps that the CAN bus system is open in terms of it's messaging format and provides simple 8 byte message packets with a numeric identifier, much like an internet IP address.<br />
<br />
=Prerequisites=<br />
To successfully perform a custom CAN integration, it's helpful to have the following knowledge before you get started. <br />
* Basic understanding of math<br />
* Basic understanding of data represented as [https://computer.howstuffworks.com/bytes.htm bits and bytes]<br />
* Basic knowledge of CAN bus technology. [https://www.google.com/webhp?&ion=1#q=can+bus+tutorial Here are some some helpful links.]<br />
<br />
If this appears challenging, get a friend to help and / or [http://forum.autosportlabs.com jump onto the forums] and ask for assistance - another forum member might have mapped the same system as you're working with, or can help you with your particular project.<br />
<br />
=Preset configurations=<br />
Fortunately, we have a [[RCP_CAN|growing library of pre-set configurations for different ECUs and sensors]]. As time goes on, the chances grow that you'll be able to simply click a button and have a quickly working CAN integration.<br />
<br />
[[image:racecapture_select_can_preset.gif]]<br />
==Wiring CAN bus==<br />
<br />
===Plug and Play connector system===<br />
* Applies to<br />
** RaceCapture/Track MK3<br />
** RaceCapture/Pro MK4<br />
** PodiumConnect MK2<br />
[[Harness_specifications|See the full plug and play harness specification]]<br />
<br />
====Power + CAN Single interconnect====<br />
* Connector: M8 4P, A coding<br />
[[file:M8_4P_male_pinout.jpg|200px]]<br />
<br />
''Male connector pictured''<br />
<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Notes<br />
|-<br />
| 1 || CAN low || White<br />
|-<br />
| 2 || Power || Red, 9-24v / 1A (~12W)<br />
|-<br />
| 3 || CAN high || Green<br />
|-<br />
| 4 || Ground || Black<br />
|}<br />
<br />
==Dual CAN + power interconnect==<br />
* Connector: M8 6P, A coding<br />
[[file:M8_6P_male_connector.png]]<br />
<br />
''Male connector pictured''<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Notes<br />
|-<br />
| 1 || CAN1 low ||<br />
|-<br />
| 2 || CAN2 low ||<br />
|-<br />
| 3 || CAN2 high ||<br />
|-<br />
| 4 || Ground ||<br />
|-<br />
| 5 || CAN1 high ||<br />
|-<br />
| 6 || Power || 9-24v / 1A (~12W)<br />
|}<br />
<br />
<br />
===Molex connector===<br />
* Applies to<br />
** RaceCapture/Pro MK3<br />
<br />
<br />
Both CAN ports are available on the molex connector:<br />
<br />
[[file:RaceCapture_Pro_MK3_Molex_CAN_pinout.png]]<br />
<br />
===RJ45 connector===<br />
* Applies to<br />
** RaceCapture/Pro MK3<br />
** RaceCapture/Pro MK2<br />
<br />
<br />
This port is typically used for the optional CAN-OBDII interface cable, but can also be used for custom integrations. Both CAN channels are available on the RJ45 connection. <br />
<br />
====Cabling====<br />
You can custom crimp an RJ45 cable, or you can use a standard CAT-5 ethernet cable with RJ45 connectors to integrate with RaceCapture/Pro.<br />
{| class="wikitable" style="text-align:center; width:700px; height:200px;"<br />
|+ RJ45 Power, ground and CAN bus connections to RaceCapture/Pro <br />
|+ EIA-T568B RJ45 cable color codes (check printing on the cable to confirm)<br />
|-<br />
! Connection<br />
! RaceCapture/Pro (RJ45 cable)<br />
|-<br />
| +12v<br />
| Brown<br />
|-<br />
| Ground<br />
| Orange/White<br />
|-<br />
| CAN 1 High<br />
| Orange<br />
|-<br />
| CAN 1 Low<br />
| Green/White<br />
|-<br />
| CAN 2 High<br />
| Blue<br />
|-<br />
| CAN 2 Low<br />
| Blue/White<br />
|}<br />
<br />
<br />
[[File:RaceCapturePro_MK3_RJ45_pinout.png]]<br />
* '''Important note for MK2:''' The +12v connection on the RJ45 is connected internally to the +12v on the terminal block on RaceCapture/Pro MK2. It's recommended you only power via one source - RJ45 or terminal block - if you have both connected at the same time, you may cause back-feeding of power through RaceCapture/Pro, which may cause damage to the unit. '''Note: RaceCapture/Pro MK3 has internal protection diodes which avoids this issue.'''<br />
<br />
==Researching CAN Bus protocol==<br />
If you are working to integrate an ECU, first ask the manufacturer for their CAN bus specification. This documentation will provide a breakdown of channels - such as RPM, temperatures and pressures and describe how they appear in the CAN message stream. A good example is the [http://www.msextra.com/doc/pdf/Megasquirt_CAN_Broadcast.pdf Megasquirt CAN Broadcast Specification].<br />
<br />
===CAN Bus documentation===<br />
The manufacturer provided document will show for each channel the following information:<br />
* '''Channel''': (RPM, Engine Temperature, Throttle Position, etc)<br />
* '''CAN Identifier''': The CAN Identifier for each channel. This may appear in either 11 or the extended 29 bit format. Typically 11 bits are used.<br />
* '''Offset''': where the data starts within the 8 byte CAN message. An offset of 0 means the data starts on the first byte.<br />
* '''Length''': Typically 1 or two bytes<br />
* '''Scaling''': The raw value from the message is often scaled to a real world value. Typically this is provided as a multiplier and adder value, but may also specify a divider.<br />
<br />
===Big Endian or Little Endian mode===<br />
Additionally, the manufacturer will specify if multi-byte (16, 24 or 32 bit) values are presented in '''Big Endian''' (MSB (Most Significant Bit)) or '''Little Endian''' (LSB (Least Significant Bit)) mode. <br />
<br />
BigEndian mode data will have the high byte presented first in the data packet and is typically the most common format.<br />
<br />
Big Endian / Little Endian Example:<br />
* Decimal value: 1000<br />
* Hex Value in Big Endian: 0x03E8<br />
* Hex Value in Little Endian: 0xE803<br />
<br />
If provided in a CAN message, it might show up as follows in this hypothetical message:<br />
<br />
MSB format:<br />
* Offset 1<br />
* Length 2<br />
* Data:<br />
(Hex) [xx] [03] [E8] [xx] [xx] [xx] [xx] [xx]<br />
(Decimal) [xx] [3] [232] [xx] [xx] [xx] [xx] [xx]<br />
<br />
LSB format:<br />
* Offset 1<br />
* Length 2<br />
* Data:<br />
(Hex) [xx] [E8] [03] [xx] [xx] [xx] [xx] [xx]<br />
(Decimal) [xx] [232] [3] [xx] [xx] [xx] [xx] [xx]<br />
<br />
=Enabling CAN bus=<br />
Once you have the CAN connections wired, you can enable CAN bus on your RaceCapture system. This provides the ability to turn on the CAN bus connectivity at the global level, and allows you to set the baud rate for the individual CAN bus channels. <br />
<br />
[[file:RaceCapture_CAN_bus_settings.png|640px]]<br />
<br />
After making changes, be sure to '''write''' your configuration back to your RaceCapture device.<br />
<br />
=Mapping CAN data to channels=<br />
<br />
==Direct CAN mapping==<br />
The direct CAN mapping capabilities will allow easy mapping of 99% of existing CAN based ECUs and sensors. For the outliers, you can map CAN data using the [[CAN_Bus_Integration#Lua_scripting|on-board Lua Scripting]], allowing for any custom formula or logic. <br />
<br />
===Adding a channel===<br />
* To start, connect to your RaceCapture device and ensure the current configuration is read, or open a previously saved configuration. <br />
* Navigate to the CAN Mapping page.<br />
* Ensure '''CAN channels''' is set to '''on'''<br />
* Press the (+) button to add your first channel. <br />
<br />
[[file:RaceCapture_CAN_mapping.png|640px]]<br />
<br />
====Defining the Channel====<br />
The first tab will let you define the channel name and sample rate. <br />
<br />
[[file:RaceCapture_CAN_mapping_channel_tab.png]]<br />
<br />
* '''Channel Name''': selecting a channel name from the drop-down will pre-set the units, min, max and precision to typical values. <br />
<br />
You can customize this by pressing the gear icon to customize:<br />
** '''Channel Name''' - Specify the channel name. We recommend formatting the name with CamelCase with a leading capital letter, and no spaces or underscores. <br />
** '''Units''' - The unit of measurement for the channel<br />
** '''Min''' - The minimum value for the channel<br />
** '''Max''' - The maximum value for the channel<br />
** '''Precision''' - Sets the number of decimal places for logged and displayed numbers.<br />
<br />
<br />
* '''Rate''': This sets the rate that RaceCapture will log or broadcast the data for this channel. This rate is independent of the actual rate the CAN data is received. Select a rate that mirrors the expected update rate of the sensor. Example: Engine temperature changes slowly, so select 1Hz. RPM changes quickly; 10-50Hz is ideal.<br />
<br />
====Defining the CAN ID and bus====<br />
The CAN ID match tab lets you define the CAN ID to match upon, and the CAN bus the data is expected to appear upon. The manufacturer will specify the CAN ID for the channel you are mapping.<br />
<br />
[[file:RaceCapture_CAN_mapping_can_id_tab.png|486px]]<br />
<br />
* '''CAN ID''': this is the ID of the CAN bus message, in decimal format. <br />
* '''Mask''': This is an optional mask, in decimal format. If set to greater than zero, the Mask will be logically AND'd with the CAN ID for further matching and filtering. <br />
** ''If uncertain, leave this unchanged''<br />
* '''Sub ID''': If the CAN message specifies the first byte as an additional ID to differentiate messages, specify the value to match here.<br />
* '''CAN Bus''': Select the CAN bus your data is appearing on - CAN 1 or 2, depending on the available CAN ports of your RaceCapture device.<br />
<br />
====Defining the mapping====<br />
The Raw Value Mapping tab lets you define how to extract the data from the 8 byte CAN message. The manufacturer's CAN documentation will identify this information for channel you are mapping.<br />
<br />
[[file:RaceCapture_CAN_mapping_raw_value_mapping.png]]<br />
<br />
* '''Offset''': this is the offset where the data appears in the CAN message. An offset of 0 would be used to start at the first byte of the CAN message. <br />
* '''Length''': this represents the length of the value. A length of 1 would be one byte, 2 would represent a two byte or 16 bit word, and so on. <br />
* '''Source Type''': this represents the native encoding of the data. Most typically this is represented as a plain unsigned value, but can appear in other formats. The manufacturer's CAN documentation will identify the data type. Supported native data types:<br />
** Unsigned: the data is provided as an unsigned value. <br />
** Signed: the data is provided as a [https://en.wikipedia.org/wiki/Two%27s_complement two's compliment] signed value. <br />
** Float: the data is provided as a [https://en.wikipedia.org/wiki/IEEE_floating_point IEEE-754 encoded] floating point value<br />
** Sign-Magnitude: the data is provided as a [https://en.wikipedia.org/wiki/Signed_number_representations#Signed_magnitude_representation sign-magnitude] encoded value. <br />
<br />
* '''Endian''': This defines Big Endian (Most significant bit / MSB) or Little Endian (Least Significant Bit / LSB) mode, and applies to values where the data length is 2 or higher. The manufacturer's documentation will identify whether the data is encoded in big or little endian format. <br />
<br />
* '''Bit Mode''': This allows mapping in cases where the data does not fall on even byte boundaries. For example, you may want to extract a single bit at the offset of 11; in which case you would enable bit mode, then set your offset to 11 with a length of 1. <br />
** ''If uncertain, leave this unchecked, or check the manufacturer's documentation''<br />
<br />
====Defining the Formula====<br />
The Formula tab lets you define how to convert the extracted raw value into a meaningful real-world value. <br />
<br />
[[file:RaceCapture_CAN_mapping_formula_tab.png]]<br />
<br />
The formula is defined as:<br />
Extracted Raw Value X '''multiplier''' ÷ '''divider''' + '''adder'''<br />
<br />
Use these fields to specify the conversion formula you wish to apply to the raw value extracted from the CAN message. The manufacturer's documentation will specify the conversion formula. <br />
<br />
====Units Conversion====<br />
[[file:RaceCapture_CAN_mapping_units_conversion_tab.png]]<br />
<br />
You can optionally apply a common units conversion to the value after it has been processed by the formula. Often the manufacturer will provide the mapping in one form of units - this allows you to retain the original mapping and then convert the units to the desired format.<br />
<br />
===Testing your channel===<br />
When complete with the mapping, press the (check) button and then '''Write''' your configuration back to RaceCapture. You can then go to the dashboard to monitor the current channels and verify you are receiving data as expected. <br />
<br />
===Not getting the expected data?===<br />
See the [[CAN_Bus_Integration#Troubleshooting|Troubleshooting Guide]] to help understand and identify problems in your CAN mapping and connectivity.<br />
<br />
==Lua scripting==<br />
* Applies to:<br />
** RaceCapture/Pro MK2 and newer<br />
** RaceCapture/Apex<br />
** RaceCapture/Track MK2 and newer<br />
<br />
For custom mapping that cannot be handled by the direct CAN mapping capabilities, you can map data using the on-board Lua scripting runtime. Here you will be able to apply any formula or custom logic to the data before mapping it to a channel in RaceCapture. <br />
<br />
===Reading a CAN message===<br />
You can use the Lua scripting to read and process data from a CAN message. See the [[RaceCapturePro_Lua_Scripting#CAN_Bus_functions|Lua Scripting reference]] for a list of CAN bus functions.<br />
<br />
Example reading and printing the ID and first byte of a CAN message:<br />
<br />
id, ext, data = rxCAN(0, 100)<br />
print("ID: " ..id .."Data: " ..data[1])<br />
<br />
===Mapping to a Virtual Channel===<br />
<br />
You can create a virtual channel by using the ''[[RaceCapturePro_Lua_Scripting#Virtual_Channels|addChannel()]]'' lua function. The typical approach involves:<br />
<br />
* Set up the channel. Example "EngineTemp"<br />
<br />
* Read a CAN message<br />
* Extract a value from the data fields<br />
* Scale the extracted value to a real world value (Example: Degrees F)<br />
* Set the virtual channel with the scaled value<br />
<br />
* Example: Set '''MyChannel''' from CAN ID 1234. Data is in the first byte of the message.<br />
<pre><br />
channelId = addChannel("MyChannel", 10)<br />
setTickRate(10)<br />
<br />
function onTick()<br />
id, ext, data = rxCAN(0)<br />
if id == 1234 then<br />
setChannel(channelId, data[1])<br />
end<br />
end<br />
</pre><br />
<br />
==CAN integration framework==<br />
Below is a script framework to ease mapping of CAN bus data to virtual channels. You can copy the script and modify as you need. This example showcases mapping some of the BMW E46 CAN bus channels.<br />
<br />
To create your own integration, edit the top portion of the file to match your system's CAN bus configuration and data mapping.<br />
<br />
<pre><br />
--This example configured for E46 CAN<br />
<br />
--how frequently we poll for CAN messages<br />
tickRate = 30<br />
--the CAN baud rate<br />
CAN_baud = 500000<br />
--CAN channel to listen on. 0=first CAN channel, 1=second<br />
CAN_chan = 0<br />
--1 for Big Endian (MSB) mode; 0 for Little Endian mode (LSB)<br />
be_mode = 0<br />
<br />
--add your virtual channels here<br />
tpsId = addChannel("TPS", 10, 0, 0, 100, "%")<br />
tempId = addChannel("EngineTemp", 1, 0, 0, 200, 'C')<br />
oilTempId = addChannel("OilTemp", 1, 0, 0, 200, 'C')<br />
rpmId = addChannel("RPM", 10, 0, 0, 10000)<br />
<br />
--customize here for CAN channel mapping<br />
--format is: [CAN Id] = function(data) map_chan(<channel id>, data, <CAN offset>, <CAN length>, <multiplier>, <adder>)<br />
CAN_map = {<br />
[809] = function(data) map_chan(tpsId, data, 6, 1 , 0.392156863, 0) map_chan_le(tempId, data, 2, 1 , 0.75, -48.373) end,<br />
[1349] = function(data) map_chan(oilTempId, data, 5, 1, 1, -48.373) end,<br />
[790] = function(data) map_chan(rpmId, data, 3, 2, 0.15625, 0) end<br />
}<br />
<br />
function onTick()<br />
processCAN(CAN_chan)<br />
end<br />
<br />
--===========do not edit below===========<br />
function processCAN(chan)<br />
repeat<br />
local id, e, data = rxCAN(chan)<br />
if id ~= nil then<br />
local map = CAN_map[id]<br />
if map ~= nil then<br />
map(data) <br />
end<br />
end<br />
until id == nil<br />
end<br />
<br />
--Map CAN channel, little endian format<br />
function map_chan_le(cid, data, offset, len, mult, add)<br />
offset = offset + 1<br />
local value = 0<br />
local shift = 1<br />
while len > 0 do<br />
value = value + (data[offset] * shift)<br />
shift = shift * 256<br />
offset = offset + 1<br />
len = len - 1<br />
end<br />
setChannel(cid, (value * mult) + add)<br />
end<br />
<br />
--Map CAN channel, big endian format<br />
function map_chan_be(cid, data, offset, len, mult, add)<br />
offset = offset + 1<br />
local value = 0<br />
while len > 0 do<br />
value = (value * 256) + data[offset]<br />
offset = offset + 1<br />
len = len - 1<br />
end<br />
setChannel(cid, (value * mult) + add)<br />
end<br />
<br />
map_chan = (be_mode == 1) and map_chan_be or map_chan_le<br />
initCAN(CAN_chan, CAN_baud)<br />
setTickRate(tickRate)<br />
</pre><br />
<br />
==Reverse Engineering==<br />
Reverse engineering can be a rewarding experience, providing you can log the CAN data stream from the device and compare it against direct measurements on the system.<br />
<br />
===Common Approach===<br />
* Log all messages from the CAN bus<br />
* Directly measure or observe a sensor channel and compare it against changes in the CAN bus data, watching for patterns.<br />
<br />
===Example===<br />
An example for decoding RPM: To detect which CAN message contains RPM, log all CAN messages while simultaneously directly logging RPM, synchronizing the messages and the direct RPM measurement in time. Watch for patterns in the CAN data: any data changing in sync with the direct RPM measurements will be a strong indicator of which CAN message contains RPM data.<br />
<br />
Repeat with other sensors of interest, such as steering angle, tempertures, etc.<br />
<br />
===Logging Data===<br />
You can use a commercial CAN data logger, or simply use RaceCapture/Pro's [[CAN_Bus_logger|CAN bus logger script]] to output all messages to the logging window.<br />
<br />
=Troubleshooting=<br />
==Check the CAN bus settings==<br />
* Ensure the global CAN enabled option is turned '''on'' on the CAN settings page<br />
* Ensure the baud rate matches the network you're connecting to. <br />
** If you're not certain, check the documentation of the device you're integrating with (ECU, sensor network, etc)<br />
* Ensure the CAN termination is correct for the network you are on. <br />
** Termination is required at both ends of the network; check your manufacturer if termination is enabled inside the device, or if an external jumper is needed.<br />
** '''Note:'''<br />
*** RaceCapture/Pro MK3, RaceCapture/Apex, PodiumConnect, RaceCapture/Track MK3: Termination is software controlled; enabled by default. It can be enabled/disabled in the CAN Bus settings page.<br />
*** RaceCapture/Pro MK2 has termination enabled by default, it can be disabled by disabling the internal jumper<br />
*** RaceCapture/Track (MK1, MK2) - Termination is disabled by default. Termination can be enabled by enabling an internal jumper.<br />
<br />
==Check the CAN activity LED==<br />
The CAN activity LED will indicate if CAN data is being received by your RaceCapture system. If it's illuminated, that means RaceCapture is receiving CAN data. <br />
* Applies to:<br />
** RaceCapture/Apex<br />
** RaceCapture/Pro MK3<br />
<br />
==Check the CAN bus you are using (CAN1 or CAN2)==<br />
If you're using a preset, check if the CAN bus you wired matches the CAN bus selected for each channel in the preset. <br />
* Most presets are configured to use CAN1. If you wired your CAN but to CAN2, you will need to switch each channel under presets to CAN2.<br />
<br />
==Check the wiring==<br />
* Ensure you have CAN High and CAN Low of the other CAN device wired to the equivalent CAN high and CAN low of RaceCapture. <br />
** If the wires are reversed, try swapping them. <br />
* Check that you have the wires connected correctly per the pinout of your system.<br />
<br />
==Check termination on the bus==<br />
Ideally, you should have termination at each end of the bus. Due to the robustness of CAN bus, often termination at one end of the bus is sufficient for correct data transmission. <br />
** RaceCapture/Pro, RaceCapture/Apex and PodiumConnect: Software-controlled termination can be accessed under Setup/CAN bus.<br />
** RaceCapture/Track MK1 and MK2 have no termination on board - termination can be added near the connector. <br />
<br />
Ensure that the device at the opposite end of the CAN bus has termination enabled. <br />
<br />
* To enable termination, connect a 120 ohm resistor (1/8 to 1/4 W) across the CAN high and CAN low wires. <br />
<br />
==Check the other device==<br />
Ensure the setup is correct on the device. Check their manual and software to ensure: <br />
* CAN broadcasting is enabled<br />
* CAN baud rate matches the CAN baud rate your system<br />
** Typical baud rates are 250K, 500K and 1M<br />
* CAN IDs match the IDs you have defined under the CAN channels. <br />
** Some devices have the ability to set an alternate addressing scheme; their documentation will indicate if this is possible.<br />
** Use the [[CAN_Bus_logger|simple logging script]] to display all CAN traffic in the logging window to see if what you are receiving is what you expect.<br />
<br />
==CAN bus logger==<br />
* Try using the [[CAN_Bus_logger|simple logging script]] to show any incoming data and that it matches what you expect vs the manufacturer's specifications.</div>Brentphttps://wiki.autosportlabs.com/index.php?title=File:Racecapture_select_can_preset.gif&diff=9722File:Racecapture select can preset.gif2023-10-04T16:19:27Z<p>Brentp: </p>
<hr />
<div></div>Brentphttps://wiki.autosportlabs.com/index.php?title=RaceCapture-Pro_MK4&diff=9721RaceCapture-Pro MK42023-10-02T14:56:08Z<p>Brentp: /* Specifications */</p>
<hr />
<div>=Overview=<br />
RaceCapture/Pro MK4 is our latest generation motorsports telemetry system, packed with features for Endurance Racing, Sprint Racing, Autocross, Time Attack and more.<br />
<br />
<br />
[[image:racecapture_pro_mk4_front_1024.jpg|800px]] [[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/racecapture-pro-mk4-lap-timer-data-logger-telemetry-system/]]<br />
<br />
[[image:racecapture_pro_mk4_connectors_1024.jpg|800px]]<br />
<br />
=Guides=<br />
* '''[[RaceCapture-Pro_MK4#Quick_Start|Jump to quick start guide]]'''<br />
* '''[[RaceCapture_App_User%27s_Guide|RaceCapture App user's guide]]'''<br />
* '''[[Harness_specifications|Plug and play harness system for sensors and devices]]'''<br />
* [[Vehicle_Specific_Guides|Vehicle Specific Guides]]<br />
* [[RacecapturePro_MK4_hardware_install|Jump to Hardware guide]]<br />
* [[RaceCapture_real_time_telemetry|Real-time Telemetry guide]]<br />
* [[RaceCaptureLoggingData|Logging Data]]<br />
* [[RCP_CAN|CAN bus / ECU sensor guide]]<br />
* [[RC_OBDII|OBDII Guide]]<br />
*[[RaceCapturePro_Sensors|Sensor guide]]<br />
*[[RaceCapturePro_Lua_Scripting|Lua scripting guide]]<br />
*[[RaceCapturePro_Lua_Scripting_Examples|Lua script examples]]<br />
*[[CoilX|CoilX Tach interface to ignition coils guide]]<br />
*[[AutomaticCameraControl|Automatic Camera control guide]]<br />
*[[RaceCapture_RaceRender_Guide|Exporting to RaceRender guide]]<br />
*[[RaceCapture_DashWare_Guide|Creating video with RCP data overlay using DashWare]]<br />
*[[Podium_Driver_Data_Analysis|Data Analysis in Podium to become a faster driver]]<br />
*[[RaceCapture_Dashboard_Tablet_Automation|Automating Tablets/Phones for use as Dashboards Guide]]<br />
*[[Add_TPMS_Data|TPMS guide]]<br />
*'''[[RaceCapture_troubleshooting|General troubleshooting guide]]'''<br />
<br />
=How To=<br />
*[[RaceCapturePro2_Enable_Predictive_Timing|How to: enable Predictive Timing]]<br />
*[[RaceTracks|How to: Submit a new race track]]<br />
*[[RaceCapturePro2_Calibrate_Sensor|How to: calibrate and configure an analog sensor]]<br />
*[[RaceCapturePro2_OBD2|How to: enable OBD2 channels]]<br />
*[[RaceCapturePro2_ShiftLights|How to: enable sequential shift lights]]<br />
*[[GPIO_Output|How to control switches, relays, LEDS, etc from GPIO of Race Capture Pro]]<br />
*[[RaceCapturePro2_GPS|How to: get best GPS data]]<br />
*[[RaceCapturePro_How_To_Update_Firmware|How to update firmware]]<br />
*[[Multiple_CAN_Systems|How to use multiple CAN systems with one ASL device]]<br />
*[[Cool_Projects_and_Success_Stories|Cool Projects, Cool Features, and Success Stories using Race Capture devices]]<br />
*[[RaceCapturePro_FAQ|More FAQs and How-To's]]<br />
*[https://www.youtube.com/autosportlabs How To Videos]<br />
<br />
==Reference==<br />
*[[RaceCapturePro2_logfile_reference|Log file reference]]<br />
<br />
=Quick Start=<br />
==Powering Up==<br />
[[Image:RaceCapturePro_MK4_powering_options.jpg]]<br />
===Using optional OBDII cable (2008+ vehicles)===<br />
* Plug one end of the cable into the RaceCapture unit<br />
* Plug the other end of the cable into your car's OBDII port.<br />
* Power and OBDII data will be provided to RaceCapture/Pro.<br />
<br />
===Powering via 12v===<br />
Plug the supplied power + CAN data pigtail into the RaceCapture system. <br />
* Connect Red to 12v<br />
* Connect Black to Ground<br />
<br />
===Testing on the Bench===<br />
You can power RaceCapture/Pro with just the included USB cable. Simply plug one end into your computer, and the other end into the USB connection on the front of the unit. <br />
* '''Note''': When powering only with USB, the voltage reference output will only be at approximately 4.7 volts, which can cause a mis-reading of sensor values. When precise sensor readings are required, provide 12v power to RaceCapture.<br />
<br />
==Install the RaceCapture app==<br />
===On Desktop===<br />
*[https://podium.live/software Windows and OSX]<br />
<br />
=====USB Drivers=====<br />
*''' Windows 10/11''': Windows 10 has built in USB drivers that support RaceCapture; no separate driver installation needed.<br />
*'''Windows XP, 7, 8''': Not supported due to outdated video drivers, but may work depending on the video hardware used. USB drivers will require installation [[RaceCapture_App_User%27s_Guide#Microsoft_Windows_7.2F8_Driver_installation|instructions below.]]<br />
<br />
<br />
===On Mobile===<br />
[[image:google_play_amazon_itunes_app_store.png]]<br />
<br />
* [https://play.google.com/store/apps/details?id=com.autosportlabs.racecapture&hl=en Google Play]<br />
* [https://www.amazon.com/Autosport-Labs-Race-Capture/dp/B016ZJM7GE Amazon App Store]<br />
* [https://itunes.apple.com/us/app/racecapture/id1162797255?mt=8 iTunes]<br />
<br />
* '''Not sure what tablet to use? ''' [[RaceCapture_App_recommended_tablets|See our list of recommended tablets]]<br />
<br />
===On Raspberry Pi===<br />
[[image:Racecapture_raspberry_pi.jpg|400px]]<br />
<br />
More advanced users can run the RaceCapture App on a Raspberry pi for a more dedicated dashboard experience. <br />
* Learn more in the [[RaceCapture_on_Raspberry_Pi|Raspberry Pi Guide]]<br />
<br />
==Connect to your RaceCapture system (dashboard)==<br />
Use an Android, iOS or Raspberry Pi device as a dashboard in the car:<br />
<br />
===Bluetooth (Android Only)===<br />
In Android Settings, pair your device with the RaceCapture system.<br />
* '''Note''': Default bluetooth pin is 1234. You can change this later under Setup / Wireless in the app.<br />
<br />
===WiFi (iOS or Android)===<br />
In your mobile device WiFI settings, connect to the RaceCapture WiFi network.<br />
* By default, RaceCapture will setup a WiFi network starting with 'RaceCapture', with no password. You can immediately connect to this network.<br />
* '''Note''': You can change the WiFi password later under Setup / Wireless in the app.<br />
<br />
===Launch the RaceCapture app===<br />
Once you've linked the Bluetooth or WiFi (Mobile), or USB (Windows or OSX) launch the RaceCapture app.<br />
<br />
===Automatic Setup and Verifying Connectivity===<br />
The RaceCapture app will guide you through a brief automated setup and tour. During this process the connection to RaceCapture/Pro will be verified.<br />
<br />
[[image:racecapture_app_first_time_setup.gif|800px]]<br />
<br />
==Next Steps==<br />
===Using the RaceCapture app===<br />
See the [[RaceCapture_App_User%27s_Guide|RaceCapture App User's guide]] for a full tour of using the app and setting up your system.<br />
<br />
===Connecting sensors and accessories===<br />
See the [[Harness_specifications|Plug and Play harness guide]] to learn how sensors and devices connect to your system<br />
<br />
=Specifications=<br />
<br />
{| width="100%"<br />
| style="text-align: center" colspan="2" | '''Sensors'''<br />
|-<br />
| style="text-align: center" colspan="2" | '''Analog Inputs'''<br />
|-<br />
| Channels<br />
| 9 (8 external + 1 internal battery/supply voltage)<br />
|-<br />
| Voltage range<br />
| 0-5v<br />
|-<br />
| Input impedance<br />
| Greater than 1M ohm<br />
|-<br />
| Voltage Protection<br />
| 400v (intermittent)<br />
|-<br />
| ADC precision<br />
| 12 bit<br />
|-<br />
| Maximum sample rate<br />
| 1000Hz<br />
|-<br />
| Mapping<br />
| Raw / linear formula / interpolated map<br />
|-<br />
| style="text-align: center" colspan="2" | '''Digital I/O'''<br />
|-<br />
| Channels<br />
| 4<br />
|-<br />
| Output mode type<br />
| Open Drain<br />
|-<br />
| Output current capacity<br />
| 1A, inductively clamped<br />
|-<br />
| Input mode voltage range<br />
| 0-12v<br />
|-<br />
| Input voltage protection<br />
| 0-40v<br />
|-<br />
| Maximum sample rate<br />
| 1000Hz<br />
|-<br />
| style="text-align: center" colspan="2" | '''Timer inputs (RPM / Frequency)'''<br />
|-<br />
| Channels<br />
| 4<br />
|-<br />
| Voltage Protection<br />
| 400v (intermittent)<br />
|-<br />
| Maximum sample rate<br />
| 1000Hz<br />
|-<br />
| Mapping<br />
| RPM, Frequency<br />
|-<br />
| style="text-align: center" colspan="2" | '''Voltage Reference'''<br />
|-<br />
| Output Voltage / Capacity<br />
| 5v / 500mA<br />
|-<br />
| style="text-align: center" colspan="2" | '''CAN Bus'''<br />
|-<br />
| CAN Channels<br />
| 2<br />
|-<br />
| CAN baud rate<br />
| 125K, 250K, 500K, 1M Baud<br />
|-<br />
| CAN filters<br />
| 14 per channel<br />
|-<br />
| Protocol Support<br />
| OBDII PID, custom CAN mapping<br />
|-<br />
| CAN Bus<br />
| CAN 2.0 compatible, 1M baud<br />
|-<br />
| CAN termination<br />
| Software controlled<br />
|-<br />
| style="text-align: center" colspan="2" | '''Cellular Telemetry (Optional)'''<br />
|-<br />
| Optional Cellular<br />
| 4G LTE worldwide compatible<br />
|-<br />
| Maximum Sample Rate<br />
| 10Hz<br />
|-<br />
| style="text-align: center" colspan="2" | '''Wireless'''<br />
|-<br />
| WiFi<br />
| 802.11bgn<br />
|-<br />
| WiFi Modes<br />
| Access Point, Infrastructure<br />
|-<br />
| Bluetooth<br />
| Bluetooth 2.0 EDR<br />
|-<br />
| Maximum Sample Rate<br />
| 50Hz (Bluetooth and WiFi)<br />
|-<br />
| style="text-align: center" colspan="2" | '''GNSS'''<br />
|-<br />
| Constellations Supported<br />
| GPS, GLONASS, BeiDou, Galileo<br />
|-<br />
| Antenna Type<br />
| External active antenna<br />
|-<br />
| Sample Rates supported<br />
| 1 / 5 / 10 / 25Hz<br />
|-<br />
| Accuracy<br />
| 2.5M CEP<br />
|-<br />
| style="text-align: center" colspan="2" | '''Inertial Motion Unit'''<br />
|-<br />
| Accelerometer Channels<br />
| 3 (X/Y/Z) (2G, 4G capable)<br />
|-<br />
| Gyro Channels<br />
| 3 (Yaw/Pitch/Roll) (1000 degrees/sec)<br />
|-<br />
| style="text-align: center" colspan="2" | '''Storage'''<br />
|-<br />
| Micro SD<br />
| Up to 32GB (SDHC)<br />
|-<br />
| CAN bus direct mapping<br />
| 100 direct CAN mapping channels<br />
|-<br />
| style="text-align: center" colspan="2" | '''Capabilities'''<br />
|-<br />
| Channel Support<br />
| 200<br />
|-<br />
| Predictive Lap Timing<br />
| Built-in<br />
|-<br />
| Track Mapping<br />
| Circut and point-point<br />
|-<br />
| Track maps<br />
| 200 built in for autonomous auto-detection; unlimited via RaceCapture app with interactive track map builder<br />
|-<br />
| Sectors per track<br />
| 20<br />
|-<br />
| Logging file format<br />
| Plain CSV<br />
|-<br />
| style="text-align: center" colspan="2" | '''Physical'''<br />
|-<br />
| Dimensions<br />
| 150 x 100 x 30mm (5.9 x 3.35 x 1.18in) enclosure; 5mm mounting ears on 140mm centers; Enclosure body 85mm (connectors extend 15mm beyond main enclosure body). <br />
|-<br />
| Temperature range<br />
| -40 to 85c<br />
|-<br />
| Environmental<br />
| Connectors: IP67 / enclosure IP51<br />
|-<br />
| Weight<br />
| 255g (12 oz)<br />
|-<br />
| Connectors<br />
| M12 12P female (Analog inputs); M12 12P female (Digital / RPM inputs); M8 6P female (CAN1/CAN2/Power); M8 4P female (CAN1/Power); SMA (GPS); RP-SMA (Cellular)<br />
|-<br />
| Power supply and Consumption (max)<br />
| System voltage: 9 - 24v (40v surge protection) / Power: Main System: 0.6W With Wireless: 1.6W With Cellular Telemetry: 8.6W With Cellular Telemetry and Wireless active: 9.6W<br />
|-<br />
| Recommended Fuse<br />
| 5A<br />
|}</div>Brentphttps://wiki.autosportlabs.com/index.php?title=PodiumConnect&diff=9720PodiumConnect2023-09-28T16:12:33Z<p>Brentp: /* Additional Guides and How-Tos */</p>
<hr />
<div>=Getting Started=<br />
[[Image:PodiumConnect_Quickstart_flyer.jpg|1024px]]<br />
<br />
==Installing the app==<br />
<br />
===Windows / OSX===<br />
Get the latest version of the RaceCapture app from the [http://podium.live/software downloads page ]<br />
<br />
===Android / iOS ===<br />
[[Image:google_play.jpg|link=https://play.google.com/store/apps/details?id=com.autosportlabs.racecapture&hl=en]][[Image:itunes_app_store.jpg|link=https://itunes.apple.com/us/app/racecapture/id1162797255?mt=8]][[Image:amazon_app_store.jpg|link=https://www.amazon.com/Autosport-Labs-Race-Capture/dp/B016ZJM7GE]]<br />
<br />
==Running and Connection==<br />
<br />
===Windows / OSX===<br />
* Connect your PodiumConnect to your computer with the USB cable, <br />
** If you are running Windows older than Windows 10, please install the USB driver, available from the [https://podium.live/software Software Downloads page]<br />
* Start the RaceCapture app. <br />
* The RaceCapture app will launch the first time setup wizard.<br />
<br />
===Android / iOS===<br />
* Power up PodiumConnect with 12v or via USB power (computer or USB power source)<br />
* Go to your device's WiFi settings, and connect to the PodiumConnect WiFi access point.<br />
** Note, the WiFi Access Point is open, with no password - you can set a password and encryption later under Setup.<br />
* Start the RaceCapture app. <br />
* The RaceCapture app will launch the first time setup wizard.<br />
<br />
=First time setup wizard=<br />
The first time setup wizard will guide you through the essential setup of your PodiumConnect<br />
<br />
[[Image:RaceCapture_app_setup_wizard.jpg|640px]]<br />
<br />
==Verifying Connectivity==<br />
* Select your device and verify the RaceCapture app connects. <br />
<br />
[[Image:RaceCapture_app_PodiumConnect_connection_screen.jpg|640px]]<br />
<br />
<br />
==Select your Preset configuration==<br />
* Select the preset configuration matching the data system you have. <br />
<br />
[[Image:RaceCapture_app_PodiumConnect_AIM_preset_selection.jpg|640px]]<br />
<br />
==Select your favorite Tracks==<br />
* Select the tracks you will typically race at so PodiumConnect can detect the track location and calculate lap times.<br />
* '''This is an important step''' to ensure you get valid data and lap times for your telemetry session. <br />
* Note: Only select the one track configuration per race track, to ensure the correct track is auto-selected. <br />
* If you don't see your track listed, [[RaceTracks|please submit your track]]!<br />
<br />
[[Image:RaceCapture_app_select_favorite_tracks.jpg|640px]]<br />
<br />
==Create an account on Podium & Setting Device ID==<br />
* Create an account on Podium http://podium.live - then follow the steps to create a Device. Make a note of the Device ID provided, so you can enter it into the wizard. <br />
<br />
[[image:podium_device_id_screenshot.png]]<br />
<br />
Then, enter this Device ID into the Setup Wizard.<br />
<br />
* '''Note''': You can set the Device ID later under '''Setup / Telemetry'''<br />
<br />
[[Image:RaceCapture_app_setup_podium.jpg|640px]]<br />
<br />
==Select your cell provider==<br />
* Enable the cellular connection and select your cellular provider. <br />
** '''Note:''' If your cellular provider is not in the list, select the custom option and set the APN settings provided by your cellular carrier. <br />
<br />
[[Image:RaceCapture_app_select_cell_service.jpg|640px]]<br />
<br />
===Verizon===<br />
If you have the newer 4G enabled system, you can use a Verizon SIM card (USA). When visiting the store, ask for a '''data only SIM card for a hotspot or tablet'''<br />
<br />
* If your unit was bundled with a SIM card, you can call Wireless Zone at 508-834-3311 for activation and access to special data plan options. <br />
* '''Note''' - If you have a 3G system, Verizon is not available for telemetry. Your best options are AT&T, T-Mobile or FreedomPop. Check your order details if you are not certain which unit you have. <br />
<br />
===AT&T===<br />
You can get an AT&T SIM card at your local AT&T store. Request a '''data SIM''' suitable for a data only tablet or hotspot.<br />
<br />
===Freedom Pop===<br />
If you have a FreedomPop card, activate your card on the [http://freedompop.com/activate FreedomPop activation website]<br />
<br />
====Note about setting up FredomPop's $0/month service====<br />
Please note that FreedomPop is a 3rd party provider; For USA customers we are including a bundled SIM card as an optional convenience. These are the same SIM cards you can order from them separately. <br />
<br />
If your goal is to use the $0/month plan that includes 200MB, follow these steps:<br />
<br />
* Register the SIM card per their web site process<br />
* Go into your account, then downgrade and remove services as needed to get down to the "basic" free plan. There will be a number of steps to follow, with warning messages.<br />
* Be sure to remove any add on paid services.<br />
* When done, your monthly bill should show $0.<br />
<br />
Note, FreedomPop may require you to have a small balance in your account to cover instances if you go over the 200MB monthly allotment. If you don't go over this, then you should not have to pay an additional fee. <br />
<br />
See here fore more detailed info on [[Free_FreedomPop_Sim_Cards|how to get free sim cards and free data from FreedomPop]].<br />
<br />
Any additional questions, please contact FreedomPop support.<br />
<br />
====What if the store is asking for the IMEI?====<br />
Usually the store will set a default IMEI number, especially if you tell them the SIM may be swapped between devices. If they require setting a real number, you can get the IMEI by connecting to RaceCapture/Pro and checking the cellular section of the app's System Status page:<br />
<br />
[[Image: RaceCapture_App_IMEI.png|500px]]<br />
<br />
=Further Setup=<br />
The settings made in the first time setup can also be accessed via the Setup view of the RaceCapture app. <br />
* '''Note''' To re-run the first time setup, launch the RaceCapture app without a connection to the device, go to the setup screen and press the '''First Time Setup''' button. <br />
<br />
=Connecting your Data System=<br />
==Minimum Data required for proper operation==<br />
At minimum, PodiumConnect requires the following data from your data system:<br />
* Speed<br />
* Latitude<br />
* Longitude<br />
<br />
* '''Note''': These channels must be defined exactly as above in the CAN bus mapping<br />
<br />
This minimum data will allow PodiumConnect to calculate lap timing, which creates the context for analysing additional sensor data, such as temperatures, TPS, RPM, oil pressure and so on. <br />
<br />
* '''Important:''' Without these channels, telemetry will not work properly. Please do not change the names of the default channels provided by the presets.<br />
<br />
==Data System Integration Guides==<br />
Use the provided integration cable and connect it to your data system. <br />
<br />
Follow the guide for your specific system:<br />
* [[PodiumConnect_AIM|AIM Smarty Cam]]<br />
* [[PodiumConnect_MoTeC|MoTeC]]<br />
* [[PodiumConnect_RaceLogic_VBOX|Racelogic VBOX]]<br />
* [[PodiumConnect_AEM_CD7_VDM|AEM CD-7 with VDM]]<br />
* [[PodiumConnect_RaceTechnology|Race Technology]]<br />
* [[PodiumConnect_Generic|Generic Cable integration]]<br />
<br />
==Hardware integration / custom cable==<br />
The main connector on PodiumConnect is a standard Molex MiniFit Jr connector.<br />
<br />
* Plug Housing: Molex Mini Fit Jr. (8 position) 0039012080<br />
* Compatible Pins: Molex 39000039<br />
<br />
=Adjusting your Channel Mappings=<br />
You may need to adjust or remove unused channels loaded by the preset. <br />
<br />
* Navigate to Setup / CAN Mapping screen. <br />
* Remove or adjust channels as appropriate. <br />
* Press "Write" to write the settings to PodiumConnect<br />
<br />
=Testing Telemetry=<br />
==Install your SIM card==<br />
[[Image:PodiumConnect_SIM_card.jpg|640px]]<br />
* On the rear of the unit, pop the SIM card drawer out of the unit by pressing the ejector button with a ball point pen. <br />
* Install the SIM card into the tray, with the gold contacts facing up.<br />
* Slide the SIM card tray back into the drawer, ensuring you engage the drawer slot carefully. Press gently until the drawer seats.<br />
<br />
==Verifying==<br />
<br />
* Power up PodiumConnect and attach the cellular antenna. Torque the antenna just beyond finger-tight (do not overtighten). 4-6 inch/lbs. <br />
* Watch the telemetry LED on the front of the unit. When it begins to flash regularly, this means telemetry is broadcasting. <br />
* Open your Podium account and navigate to http://podium.live/home<br />
* Refresh this page when telemetry is broadcasting; you will see an '''Ad Hoc event''' listed. <br />
* Click this link, which brings you to a page showing all devices at the event. (yours will be the only one).<br />
* Click the name of your device. This will show the main race dashboard page. <br />
* Here, you will see live data flowing from PodiumConnect.<br />
<br />
===Using an SD card for telemetry buffering==<br />
To enhance telemetry performance, you can optionally use an SD card to buffer data in cases where cellular connectivity temporarily drops while on the race track. <br />
<br />
If this happens, PodiumConnect will save data to the SD card, and then will burst the data upon re-connection. The amount of buffering provided is limited to approximately one lap (3 minutes of data). Therefore, this buffering is optimized for race tracks with small to moderate interruption of cellular coverage. <br />
<br />
====Enabling SD card buffering====<br />
* Obtain a micro SD card, 32 GB or smaller<br />
* Perform a fresh FAT32 format in your computer. This is an important step, even if the SD card is brand new. <br />
* Insert the SD card into the front of the unit, ensure it clicks/latch into place.<br />
<br />
==Installing the unit==<br />
Install PodiumConnect in the passenger compartment, in an area that's protected from moisture and temperature extremes. A good location is an area that offers reasonable access to the unit to observe status LEDs,<br />
* '''Note''' Mounting orientation does not matter.<br />
<br />
==Installing the cellular antenna==<br />
Install the cellular antenna on the roof of the vehicle in a location as far away from receiving antennas as reasonably possible - e.g. opposite side of the roof from the GPS antenna. <br />
<br />
[[Image:RaceCapture_Pro_MK3_antenna_install.png]]<br />
<br />
'''Temporary alternative (reduced performance)''': You can also install the antenna to the windshield using a suction cup, or in the passenger compartment using zip ties, ensuring the antenna body of the antenna is 8" separated from metal structures.<br />
<br />
=Using Podium=<br />
[https://wiki.autosportlabs.com/Podium_Driver_Data_Analysis Visit the guide on using Podium], which includes a video tour of the essential features. <br />
<br />
[[Image:Podium_telemetry_dashboard_animated.gif|800px]]<br />
<br/><br />
[[Image:Podium_telemetry_chart_averages.gif|800px]]<br />
<br />
=Updating Firmware=<br />
Below are the steps for updating your firmware. <br />
===Backup your configuration===<br />
Updating firmware can cause your PodiumConnect system to be restored to factory settings. Before updating firmware, save your settings to a file. <br />
<br />
Steps:<br />
* Connect to PodiumConnect using the RaceCapture app - using USB, or WiFi. <br />
* Navigate to '''Setup''' and press the '''Read''' button to read the current settings from PodiumConnect. <br />
* Press '''Save''' to save your settings to a file. These will be later restored after firmware is updated. <br />
<br />
===Download the PodiumConnect Firmware===<br />
* Download the latest PodiumConnect firmware from [http://podium.live/software http://podium.live/software]<br />
* Unzip the archive to a location on your computer.<br />
<br />
===Update the PodiumConnect Firmware===<br />
* Connect PodiumConnect via USB (Windows or OSX only)<br />
* In the RaceCapture app, navigate to '''Setup''' and press the '''Firmware''' menu option. <br />
* Press the Update Firmware button<br />
* Navigate to the PodiumConnect firmware you unzipped. The file will end with the extension '.ihex'. Example: ''PodiumConnect_2.15.2.ihex''<br />
* Press Open<br />
<br />
The firmware update process will begin, and will complete when the gauge is 100%<br />
<br />
After re-connecting, the firmware version should be updated in the connection message at the upper right-hand corner.<br />
<br />
===Restore your settings===<br />
* Navigate to '''Setup''' and press '''Open'''. <br />
* Select the previously saved settings file, and open the file. <br />
* Press '''Write''' to write the settings back to PodiumConnect.<br />
<br />
=Recommended Cellular Services by country=<br />
* UK: Telefonica O2 <br />
* Italy: Vodafone Italy<br />
<br />
=Additional Guides and How-Tos=<br />
<br />
=Guides=<br />
<!-- * [[RaceCapture_App_User%27s_Guide|RaceCapture App user's guide]] --><br />
* [[RaceCaptureLoggingData|Logging Data]]<br />
* [[AIM_Integration_CAN_Mapping|AIM Integration guide using CAN Mapping]]<br />
* [[RaceCapture_real_time_telemetry|Real-time Telemetry guide]]<br />
*[[RaceCapturePro_Lua_Scripting|Lua scripting guide]]<br />
*[[RaceCapturePro_Lua_Scripting_Examples|Lua script examples]]<br />
*[[RaceCapturePro2_GoProWiFi|GoPro control guide]]<br />
*[[RaceCapture_troubleshooting|General troubleshooting guide]]<br />
*[[RaceCapture_DashWare_Guide|Creating video with RCP data overlay using DashWare]]<br />
*[[RaceCapture_RaceRender_Guide|Exporting to RaceRender guide]]<br />
*[[Podium_Driver_Data_Analysis|Data Analysis in Podium to become a faster driver]]<br />
*[[RaceCapture_Dashboard_Tablet_Automation|Automating Tablets/Phones for use as Dashboards Guide]]<br />
*[[Add_TPMS_Data|Add TPMS data for $225]]<br />
<br />
=How To=<br />
*[[RaceCapturePro2_Enable_Predictive_Timing|How to: enable Predictive Timing]]<br />
*[[Podium_Live_Gauges|How to control which gauges show up on Podium.live]]<br />
*[[RaceCapture-Pro_MK3#RaceCapture_App_Tour|How to: Use Race Capture App]] (some features are specific to Race Capture Pro)<br />
*[[RaceTracks|How to: Submit a new race track]]<br />
*[[RaceCapturePro2_OBD2|How to: enable OBD2 channels]]<br />
*[[RaceCapturePro_How_To_Update_Firmware|How to update firmware]]<br />
*[[Add_Video_To_Podium|How to add video to Podium.live]]<br />
*[[RaceCapturePro_FAQ|More FAQs and How-To's]]<br />
*[https://www.youtube.com/watch?v=jAgFQ9k6VIw&list=PLZdfZf8eVujn2VSIXR5I-PPQSYS25xW5j How To Videos]<br />
<br />
=Specifications=<br />
<table class="alignleft" style="background-color: #e0e0e0;" width="100%"><br />
<tr><br />
<td colspan="2"><strong>Analog Inputs</strong></td><br />
</tr><br />
<tr><br />
<td>Channels</td><br />
<td>1 (Battery Voltage, Internally connected (0-20v))</td><br />
</tr><br />
<tr><br />
<td colspan="2"><strong>CAN Bus</strong></td><br />
</tr><br />
<tr><br />
<td>CAN Channels</td><br />
<td>2</td><br />
</tr><br />
<tr><br />
<td>CAN baud rate</td><br />
<td>125K, 250K, 500K, 1M Baud</td><br />
</tr><br />
<tr><br />
<td>CAN filters</td><br />
<td>14 per channel</td><br />
</tr><br />
<tr><br />
<td>Protocol Support</td><br />
<td>OBDII PID, custom CAN mapping</td><br />
</tr><br />
<tr><br />
<td>CAN Bus</td><br />
<td>CAN 2.0 compatible, 1M baud</td><br />
</tr><br />
<tr><br />
<td>CAN termination</td><br />
<td>Software controlled</td><br />
</tr><br />
<tr><br />
<td>CAN channels supported</td><br />
<td>100</td><br />
</tr><br />
<tr><br />
<td colspan="2"><strong>Serial</strong></td><br />
</tr><br />
<tr><br />
<td>Aux Serial</td><br />
<td>RS232</td><br />
</tr><br />
<tr><br />
<td>Max Baud Rate</td><br />
<td>230400</td><br />
</tr><br />
<tr><br />
<td colspan="2"><strong>Cellular Telemetry (Optional)</strong></td><br />
</tr><br />
<tr><br />
<td>Cellular</td><br />
<td>3.5G GSM worldwide compatible</td><br />
</tr><br />
<tr><br />
<td>Maximum Sample Rate</td><br />
<td>10Hz (1/5/10Hz supported)</td><br />
</tr><br />
<tr><br />
<td colspan="2"><strong>Wireless</strong></td><br />
</tr><br />
<tr><br />
<td>WiFi</td><br />
<td>802.11bgn</td><br />
</tr><br />
<tr><br />
<td>WiFi Modes</td><br />
<td>Access Point, Infrastructure</td><br />
</tr><br />
<tr><br />
<td>Maximum Sample Rate (dashboard link)</td><br />
<td>50Hz</td><br />
</tr><br />
<tr><br />
<td colspan="2"><strong>Storage</strong></td><br />
</tr><br />
<tr><br />
<td>Micro SD</td><br />
<td>Up to 32GB (SDHC)</td><br />
</tr><br />
<tr><br />
<td>Maximum Sample Rate</td><br />
<td>100Hz</td><br />
</tr><br />
<tr><br />
<td>Predictive Lap Timing</td><br />
<td>Built-in</td><br />
</tr><br />
<tr><br />
<td>Track Mapping</td><br />
<td>Circut and point-point</td><br />
</tr><br />
<tr><br />
<td>Track maps</td><br />
<td>200 built in for autonomous auto-detection</td><br />
</tr><br />
<tr><br />
<td>Sectors per track</td><br />
<td>20</td><br />
</tr><br />
<tr><br />
<td>Analysis</td><br />
<td>Included in the RaceCapture App, and on Podium</td><br />
</tr><br />
<tr><br />
<td>Export data format</td><br />
<td>Plain CSV (RaceRender compatible)</td><br />
</tr><br />
<tr><br />
<td colspan="2"><strong>Scripting / Customization</strong></td><br />
</tr><br />
<tr><br />
<td>Real-time virtual (math) channels / custom channel mapping</td><br />
<td>Via on-board Lua scripting</td><br />
</tr><br />
<tr><br />
<td>Virtual Channels</td><br />
<td>100</td><br />
</tr><br />
<tr><br />
<td colspan="2"><strong>Physical</strong></td><br />
</tr><br />
<tr><br />
<td>Dimensions</td><br />
<td>85 x 85 x 36mm (3.35 x 3.35 x 1.41in)</td><br />
</tr><br />
<tr><br />
<td>Temperature range</td><br />
<td>0 to 65c</td><br />
</tr><br />
<tr><br />
<td>Environmental</td><br />
<td>IP50 rated</td><br />
</tr><br />
<tr><br />
<td>Weight</td><br />
<td>170g (6 oz)</td><br />
</tr><br />
<tr><br />
<td>Physical</td><br />
<td>Molex Connector, 8 pins<br />
SMA for cellular module</td><br />
</tr><br />
<tr><br />
<td>Power Consumption (max)</td><br />
<td>Main System: 0.6W<br />
With Wireless: 1.6W<br />
With Cellular Telemetry: 8.6W<br />
With Cellular Telemetry and Wireless active: 9.6W</td><br />
</tr><br />
</table></div>Brentphttps://wiki.autosportlabs.com/index.php?title=Video_plus_data_streaming_with_racecapture&diff=9719Video plus data streaming with racecapture2023-09-21T16:29:37Z<p>Brentp: /* Using the Microphone included with the kit */</p>
<hr />
<div>=Introduction=<br />
This guide shows you how to add video+data livestreaming to your existing RaceCapture system.<br />
<br />
After following this guide, you will have:<br />
* 2-camera video with picture-in-picture<br />
* Rich, realtime graphics overlay<br />
* Broadcast to youtube or your preferred streaming provider via an in-vehicle cellular hotspot<br />
* Local video recording<br />
<br />
=System Overview=<br />
Video+data streaming is enabled by using a separate streaming/encoding device. As RaceCapture supports multiple simultaneous connections, an existing dashboard can be retained.<br />
[[image:RaceCapture video+data livestreaming system diagram.png]]<br />
<br />
==Cost==<br />
The cost for adding video+data livestreaming to your RaceCapture system can range '''between 0 and 800 USD''', depending on the parts you may already have on hand.<br />
<br />
==How hard is it to setup?==<br />
'''This project requires following instructions''', including:<br />
* Installing an operating system<br />
* Typing computer commands<br />
* Plugging in cables<br />
* Editing configuration files<br />
* Selecting options in an application<br />
<br />
This ability is within the realm of someone with moderate computer skills. If the instructions seem daunting, find someone to help you along.<br />
<br />
* For those who crave convenience, we will also be offering a pre-packaged setup that take care of most of the setup steps.<br />
<br />
==Production State==<br />
Since it is based on existing RaceCapture technology (RaceCapture hardware and RaceCapture app), the core of the system is very stable.<br />
<br />
New components that add video rendering, encoding, and streaming will be improved through your testing feedback and rounds of updates.<br />
<br />
As of this writing, several existing RaceCapture users have put the system through it's paces with great results. <br />
<br />
So far we were very pleased with the stability and performance, and we will continue to improve the system through software updates.<br />
<br />
===A demonstration===<br />
Here's the Session from the inaugural test (with sub optimal camera exposure settings and low quality microphone)<br />
<br />
<youtube>zVUJwnGoCnI&t=2990s</youtube><br />
<br />
===Experimental===<br />
While we consider this '''experimental''' - it is also a free software upgrade for a system that was never originally designed for this purpose. <br />
<br />
With your testing help we can steadily improve it and ultimately provide an incredibly cost effective yet very full-featured and high performance system that rivals solutions costing upwards of $5000 USD.<br />
<br />
=Parts you will need=<br />
==Your existing RaceCapture system==<br />
The RaceCapture system will provide access to your car's sensor data (CAN bus or analog sensors), high performance GPS, Accelerometer / Gyro sensors, lap timing and other motorsport related statistics.<br />
===Compatible Systems===<br />
* Any current or previous RaceCapture or PodiumConnect system will work.<br />
[[image:racecapture_pro_mk4_connectors_1024.jpg|520px]]<br />
[[Image:PodiumConnect_MK2_3quarter_1024.jpg|270px]]<br />
[[Image:rct_mk3_3quarter.jpg|300px]]<br />
<br />
==Rendering/Streaming computer==<br />
A tiny form-factor computer is used to receive data from RaceCapture and is responsible for video+data overlay, encoding, and broadcasting the video to youtube or similar streaming platform.<br />
===Recommended===<br />
* [https://www.amazon.com/gp/product/B0BCVCZDH3 Beelink SER5]<br />
The Beelink SER5 is our recommended choice as it is powerful, cost effective, and provided in a compact and lightweight form factor.<br />
<br />
[[image:beelink_ser5_micro_pc.jpg|500px]]<br />
<br />
===Alternatives===<br />
A micro system with an Intel I5-6500 through I5-7600 + SSD + 8GB RAM is an acceptable option as well. This may be a system you already have or a surplus system you can get at minimum cost.<br />
* Look for these options:<br />
** SSD (required for ruggedness - smallest size is fine).<br />
** Smallest RAM option is fine (typically 8GB)<br />
** Included WiFi - for connection versatility<br />
====Candidates====<br />
* Dell Optiplex 7050 micro desktop: [https://www.ebay.com/sch/i.html?_nkw=Dell+Optiplex+7050+Micro+Desktop+Computer&_sacat=0 Ebay search] (nice because most have wifi)<br />
[[image:dell-optiplex-7050.jpg|510px]]<br />
* HP EliteDesk 800 G3 Mini: [https://www.ebay.com/sch/i.html?_nkw=HP+EliteDesk+800+G3+Desktop+Mini&_sacat=0 Ebay search]<br />
[[image:HP-elitedesk-800.jpg|550px]]<br />
<br />
==12v DC to DC converter==<br />
A 12v-19v DC to DC converter is needed to power the rendering/broadcasting computer in the vehicle. This converter avoids needing an AC inverter in the car, making for a clean installation.<br />
* '''Tips''':<br />
** Choose a device that has sufficient power capacity (100W minimum)<br />
===Recommended===<br />
These have been tested to work:<br />
* [https://www.amazon.com/gp/product/B07TT2F95L KFD 100W universal car charger]<br />
[[image:KFD-100W-DC-to-DC-converter-12v-to-19v.jpg|500px]]<br />
* '''Tips''':<br />
** We recommend cutting the cigar lighter connection and hard-wiring the power to a 15A circuit. (center conductor is positive).<br />
<br />
==Cameras==<br />
You will need 1 or 2 cameras for capturing and rendering video. <br />
===Recommended Camera Kit===<br />
Autosport Labs will soon provide a camera kit that provides high quality imaging, a compact and ruggedized IP65 form-factor, and the perfect 110 degree field of view.<br />
<br />
[[image:RaceCapture_video+data_livestreaming_windshield_mount.jpg|600px]]<br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount.jpg|600px]]<br />
<br />
===Assembling the Camera Kit===<br />
Using the supplied hardware, insert the nut into the camera clamp using a pair of small pliers. Then, use the included screw to clamp the camera to the mount. <br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_insert_nut.jpg|600px]]<br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_screw_attached.jpg|600px]]<br />
<br />
Then, assemble the camera clamp into ball and socket windshield mount, or the GoPro mount. (1 of each style is included in the kit)<br />
<br />
====Ball and Socket windshield mount====<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_ball_and_socket_mount.jpg|600px]]<br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_ball_and_socket_mount_assembled.jpg|600px]]<br />
<br />
====GoPro style mount====<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount.jpg|600px]]<br />
<br />
===Alternatives===<br />
Most any USB camera (such as a webcam) can be used. These are commonly found on [https://www.amazon.com/s?k=usb+webcam Amazon] or [https://www.ebay.com/sch/i.html?_nkw=usb+webcam&_sacat=0 Ebay].<br />
* '''Tips''':<br />
** Logitech is a good, high quality option<br />
** Find a camera that offers a 1/4-20 threaded camera mount for a secure rollbar attachment to minimize vibration.<br />
<br />
==Microphone==<br />
A microphone is needed for capturing audio.<br />
* Candidates:<br />
** USB microphone - you can use a separate USB microphone, especially if you get one that offers higher quality.<br />
** Analog microphone - you can use an analog microphone that attaches to the front headset input of the micro PC. Make sure you get a microphone that has the 4-ring connector for proper operation.<br />
** Microphone embedded in one of the cameras - if one of your your cameras has its own microphone, you can use that as an audio source.<br />
<br />
===Using the Microphone included with the kit===<br />
The kit provides a USB microphone with good audio quality. <br />
[[image:RaceCapture_video+data_livestreaming_microphone.jpg|600px]]<br />
<br />
==Display Emulator==<br />
You'll need a display emulator to plug into the streamer while running on track. This tricks the computer into thinking a monitor is attached, allowing the streamer to run. <br />
<br />
[[image:hdmi_display_emulator.jpg|300px]]<br />
<br />
The following have been tested:<br />
* [https://www.amazon.com/gp/product/B06XSY9THQ HDMI emulator] - use this for the Beelink Micro PC<br />
* [https://www.amazon.com/gp/product/B075PTQ4NH DisplayPort emulator] - use this for the HP or Dell Micro PCs<br />
<br />
==Hotspot/Router==<br />
Most any hostspot should work, but for the best performance and reliability, these options should be considered:<br />
* Hard-wired ethernet connection, for direct connection to the micro computer.<br />
* External antenna connection - a hotspot that offers external antenna will boost performance by allowing you to use a high-gain roof-mount antenna.<br />
<br />
Suggested units that offer direct hardwired connection:<br />
* [https://www.amazon.com/NETGEAR-Broadband-Modem-LM1300-Always/dp/B0BKTSMQFF Netgear LM1300]<br />
* [https://www.amazon.com/Teltonika-RUT950-LTE-4G-Router/dp/B00TKFKLCI Teltonika RUT950]<br />
* [https://www.amazon.com/Peplink-Pepwave-Cellular-Router-MAX-BR1-MINI-LTE-US-T/dp/B01MR5YKF9 Pepwave BR1]<br />
<br />
=Setup=<br />
Connect a keyboard, mouse, and monitor to the rendering/streaming computer and prepare to install Ubuntu:<br />
==Install ubuntu 22 LTS==<br />
[https://ubuntu.com/download/desktop/thank-you?version=22.04.2&architecture=amd64 Download Ubuntu Desktop] and follow the instructions to install to a USB flash drive.<br />
* '''Notes''' To install, you will need to configure the system's BIOS to boot first from the USB flash drive. <br />
** Beelink: Repeatedly press 'delete' on the keyboard right after power up.<br />
** HP: Repeatedly press F10 after power up<br />
** Dell: Repeatedly press F2 after power up<br />
<br />
===OS configuration options===<br />
* '''Important -''' Install Ubuntu with the following options<br />
** During installation, choose the option to download / install updates, including "third-party software for graphics, WiFi, and additional media formats"<br />
** Choose the option to erase the hard drive and perform a complete install.<br />
** Select Login Automatically<br />
** When prompted for your account's username, make sure you specify a password. This will allow you to easily switch between streaming mode and maintenance mode.<br />
<br />
[[image:ubunut_setup_options.jpg]]<br />
<br />
After the installation is complete, the computer will reboot into the standard desktop.<br />
<br />
==Disable keyring popup==<br />
From the desktop: log out, and log back in using with the password you created during the installation step. <br />
<br />
Then, [https://linuxconfig.org/how-to-disable-keyring-popup-on-ubuntu Disable the keyring popup] using these instructions. Observe the security notes in this guide.<br />
* '''Notes'''<br />
** The log-out/log-in step is important - don't skip it!<br />
** Disabling the keyring is important; it prevents a popup dialog when the RaceCapture app automatically starts.<br />
<br />
==Run the installer==<br />
From the Ubuntu desktop, open a terminal and enter the following commands, pressing <enter> after each line:<br />
<pre><br />
sudo apt install curl<br />
curl -sL bit.ly/3RL9Yoj | bash<br />
</pre><br />
<br />
This will automatically install the RaceCapture app and video streamer, related software dependencies, and set up configuration file templates.<br />
<br />
==Reboot==<br />
Reboot the computer once it is complete with the installation. It should automatically launch the RaceCapture app.<br />
<br />
==Edit RaceCapture settings==<br />
Edit these RaceCapture settings for proper operation when streaming<br />
===App Preferences===<br />
Navigate to Setup / App Preferences:<br />
* set Fullscreen -> ON<br />
* Set Startup Screen -> Dashboard<br />
* Turn off Session Recording<br />
[[image:racecapture-video-data-livestreaming-app-settings.jpg]]<br />
<br />
===Dashboard Preferences===<br />
Navigate to the Dashboard, then press the gear icon in the upper right of the dashboard, select "More Settings" and set the following:<br />
* Turn off Pit stop timer<br />
* Turn off pit-to-car alerts<br />
* Turn off remote dashboard navigation (scroll to bottom)<br />
[[image:racecapture-video-data-livestreaming-dashboard-settings.jpg]]<br />
<br />
[[image:racecapture-video-data-livestreaming-disable-remote-dashboard-navigation.jpg]]<br />
<br />
==Plug in camera(s)==<br />
Plug in 1 or 2 cameras into the USB port<br />
<br />
* '''Note:''' Remember the ports the cameras are plugged into, and keep this consistent during use.<br />
<br />
==Plug in USB microphone==<br />
* Plug USB microphone into a USB port. <br />
<br />
Note: if using the Beelink, plug into one of the USB ports on the rear of the system.<br />
<br />
==Connect RaceCapture==<br />
Your current RaceCapture system already supports multiple connections, so you can continue using your dashboard (e.g. Android tablet via Bluetooth) when adding this video+data streaming capability.<br />
===Via USB (overall best option)===<br />
This is the best option for connecting RaceCapture to the streaming computer. Just connect a USB cable between the rendering/streaming system and RaceCapture. RaceCapture will automatically connect.<br />
===Via WiFi===<br />
If you're already using the USB connection for a Raspberry Pi dash, you can configure the rendering/streaming system to connect to RaceCapture via WiFi.<br />
====Configure as Client====<br />
If you are already using WiFi to connect the rendering/streaming system to your hotspot, you will need to configure RaceCapture to connect to the same hotspot via the WiFi client settings. In this configuration, everything shares the same network created by the hotspot.<br />
* '''Note''': Due to system limitations, your hotspot must be up and running before RaceCapture attempts to connect to it via WiFi.<br />
====Access Point connection (best WiFi option)====<br />
If you are connecting the rendering/streaming system to the hotspot via ethernet, then you can connect the rendering/streaming system directly to RaceCapture's WiFi Access Point. The system will receive data from RaceCapture via WiFi, and broadcast the video+data stream to the hotspot via ethernet.<br />
<br />
==Configure dashboard video options==<br />
* Press Settings Gear Icon, go to More Settings / Camera Preferences<br />
<br />
Select /dev/video0 for Camera #1, and /dev/video2 for Camera #2<br />
<br />
[[image:racecapture-video-data-livestreaming-camera-settings.jpg]]<br />
<br />
==Create a test dashboard==<br />
* Press the Settings gear icon, select Add Gauge<br />
* create a video gauge, and select Camera 1 as the source. <br />
* Resize to fit the dashboard. <br />
* create another video gauge, and select Camera 2 as the source.<br />
* Resize to be the picture-in-picture video window. <br />
* Add additional gauges as you see fit, such as an analog speed gauge, track map, etc. <br />
<br />
* '''Note''' If the cameras are reversed, you can swap the camera mappings in the main dashboard settings under More Settings / Camera Preferences<br />
<br />
Editing the dashboard is very easy - see this demo for an example:<br />
<br />
<youtube>r4mxA-fhJn0</youtube><br />
<br />
==Exiting the RaceCapture app==<br />
To get back to the regular Ubuntu desktop, press ctrl-t, type :quit and press <enter>. <br />
<br />
At the login screen, select your username and press the small gear icon in the lower right to select the Ubuntu desktop. <br />
<br />
To switch back to streaming mode, log out, press the small gear icon in the lower right and select the RaceCapture streaming option. Log in, and you will be streaming again. <br />
* '''Note''': The system will persist the last option you pick - so if you reboot or power cycle, it will automatically enter streaming mode.<br />
<br />
=Video Streaming / recording=<br />
To configure your streaming settings, switch back to the regular Ubuntu Desktop.<br />
<br />
Then, edit the video-config.ini - you'll find the file on the desktop. Edit this with the standard text editor by double-clicking it.<br />
<br />
==Streaming Key / URL==<br />
If using Youtube: Set the streaming key as provided by youtube. Or, you can specify a custom URL.<br />
==Local recording==<br />
If video_dir is set and points to a valid directory, local video recording will also be enabled.<br />
<br />
Videos for the current session are stored in a timestamped directory name under the configured video directory. Videos are saved as fixed-length segments to protect against file corruption due to sudden power loss, similar to how dashcams operate.<br />
<br />
If the system experiences sudden power loss, the video currently being written to will be corrupt and unreadable. Therefore, it is important to keep the video segment length reasonably short. <br />
<br />
After the session is complete, a full video can be made by using commonly available software to assemble all of the files.<br />
<br />
===video-config.ini===<br />
<pre><br />
[local_recording]<br />
video_dir=$HOME/Videos<br />
segment_length_sec=60<br />
</pre><br />
<br />
===Notes===<br />
* Configure video_dir to the location where you want to save your video files. <br />
* Configure segment_length_sec for the desired segment length size. If not specified, the default is 60 seconds '''Note, keep this value reasonably short''' - sudden power loss will result in corruption in the last written file.<br />
<br />
==Microphone==<br />
If using a USB microphone (recommended) use the default audio_device=1<br />
<br />
* Note, you can change this to different sources:<br />
** 0 = microphone connected to built-in headset port;<br />
** 1,2,3... = represents additional microphones found on the system, typically USB microphones.<br />
<br />
You can look under Ubuntu's system settings to discover available microphones and set their respective recording levels.<br />
<br />
Example default config file<br />
<pre><br />
[capture]<br />
audio_device=1<br />
<br />
[local_recording]<br />
video_dir=$HOME/Videos<br />
<br />
[streaming]<br />
streaming_url=rtmp://a.rtmp.youtube.com/live2/<streaming key> <br />
</pre><br />
<br />
=First Test=<br />
Once your streaming key has been set and saved, log out and log back into the streamer by selecting the RaceCapture streaming mode on the login page using the gear icon in the lower right.<br />
<br />
Check your youtube livestream to see if you are receiving video. If not, try restarting the system and let the streamer launch cleanly after a fresh reboot.<br />
<br />
=Maintenance/Troubleshooting=<br />
==Open a terminal window==<br />
(advanced mode) You can open a terminal window while RaceCapture is streaming by entering the following command.<br />
* Press ctrl+t, then type c, then press <enter><br />
<br />
The screen will split into two equal windows; the new window will be a terminal where you can perform debugging steps, such as viewing log files, etc.<br />
<br />
* '''Note''': The more user-friendly alternative is to just log out and log back in to the Ubuntu desktop.<br />
<br />
==Log out==<br />
You can log out of the current session to access the original Ubuntu desktop to perform additional maintenance.<br />
* Press ctrl-t, then type :quit, then press <enter><br />
<br />
Once you've logged out, you can log back into the Ubuntu desktop by pressing the gear icon in the lower right, and select Ubuntu. <br />
<br />
To get back to the RaceCapture full-screen app mode, select "RaceCapture livestreaming" from this menu; this is the window manager that is configured to run RaceCapture in full-screen mode.<br />
<br />
==Inspecting Logfiles==<br />
===Video streamer log file===<br />
The log file for the video streamer agent is located in the user's home directory. You can open it to see any helpful error messages regarding streaming.<br />
===RaceCapture log file===<br />
The RaceCapture log file is also located in the user's home directory. This will have potentially useful information for debugging the operation of the RaceCapture app.<br />
<br />
=Extras=<br />
==Mount for Beelink micro PC==<br />
<br />
We have designed a cage-style mount for the Beelink Micro PC. This allows convenient surface mounting of the PC.<br />
* Download STL file for 3D printing: [[file:Beelink_SER5_mount.zip]]<br />
<br />
[[image:beelink_cage_mount.jpg]]</div>Brentphttps://wiki.autosportlabs.com/index.php?title=Video_plus_data_streaming_with_racecapture&diff=9718Video plus data streaming with racecapture2023-09-21T16:29:22Z<p>Brentp: /* Plug in USB microphone */</p>
<hr />
<div>=Introduction=<br />
This guide shows you how to add video+data livestreaming to your existing RaceCapture system.<br />
<br />
After following this guide, you will have:<br />
* 2-camera video with picture-in-picture<br />
* Rich, realtime graphics overlay<br />
* Broadcast to youtube or your preferred streaming provider via an in-vehicle cellular hotspot<br />
* Local video recording<br />
<br />
=System Overview=<br />
Video+data streaming is enabled by using a separate streaming/encoding device. As RaceCapture supports multiple simultaneous connections, an existing dashboard can be retained.<br />
[[image:RaceCapture video+data livestreaming system diagram.png]]<br />
<br />
==Cost==<br />
The cost for adding video+data livestreaming to your RaceCapture system can range '''between 0 and 800 USD''', depending on the parts you may already have on hand.<br />
<br />
==How hard is it to setup?==<br />
'''This project requires following instructions''', including:<br />
* Installing an operating system<br />
* Typing computer commands<br />
* Plugging in cables<br />
* Editing configuration files<br />
* Selecting options in an application<br />
<br />
This ability is within the realm of someone with moderate computer skills. If the instructions seem daunting, find someone to help you along.<br />
<br />
* For those who crave convenience, we will also be offering a pre-packaged setup that take care of most of the setup steps.<br />
<br />
==Production State==<br />
Since it is based on existing RaceCapture technology (RaceCapture hardware and RaceCapture app), the core of the system is very stable.<br />
<br />
New components that add video rendering, encoding, and streaming will be improved through your testing feedback and rounds of updates.<br />
<br />
As of this writing, several existing RaceCapture users have put the system through it's paces with great results. <br />
<br />
So far we were very pleased with the stability and performance, and we will continue to improve the system through software updates.<br />
<br />
===A demonstration===<br />
Here's the Session from the inaugural test (with sub optimal camera exposure settings and low quality microphone)<br />
<br />
<youtube>zVUJwnGoCnI&t=2990s</youtube><br />
<br />
===Experimental===<br />
While we consider this '''experimental''' - it is also a free software upgrade for a system that was never originally designed for this purpose. <br />
<br />
With your testing help we can steadily improve it and ultimately provide an incredibly cost effective yet very full-featured and high performance system that rivals solutions costing upwards of $5000 USD.<br />
<br />
=Parts you will need=<br />
==Your existing RaceCapture system==<br />
The RaceCapture system will provide access to your car's sensor data (CAN bus or analog sensors), high performance GPS, Accelerometer / Gyro sensors, lap timing and other motorsport related statistics.<br />
===Compatible Systems===<br />
* Any current or previous RaceCapture or PodiumConnect system will work.<br />
[[image:racecapture_pro_mk4_connectors_1024.jpg|520px]]<br />
[[Image:PodiumConnect_MK2_3quarter_1024.jpg|270px]]<br />
[[Image:rct_mk3_3quarter.jpg|300px]]<br />
<br />
==Rendering/Streaming computer==<br />
A tiny form-factor computer is used to receive data from RaceCapture and is responsible for video+data overlay, encoding, and broadcasting the video to youtube or similar streaming platform.<br />
===Recommended===<br />
* [https://www.amazon.com/gp/product/B0BCVCZDH3 Beelink SER5]<br />
The Beelink SER5 is our recommended choice as it is powerful, cost effective, and provided in a compact and lightweight form factor.<br />
<br />
[[image:beelink_ser5_micro_pc.jpg|500px]]<br />
<br />
===Alternatives===<br />
A micro system with an Intel I5-6500 through I5-7600 + SSD + 8GB RAM is an acceptable option as well. This may be a system you already have or a surplus system you can get at minimum cost.<br />
* Look for these options:<br />
** SSD (required for ruggedness - smallest size is fine).<br />
** Smallest RAM option is fine (typically 8GB)<br />
** Included WiFi - for connection versatility<br />
====Candidates====<br />
* Dell Optiplex 7050 micro desktop: [https://www.ebay.com/sch/i.html?_nkw=Dell+Optiplex+7050+Micro+Desktop+Computer&_sacat=0 Ebay search] (nice because most have wifi)<br />
[[image:dell-optiplex-7050.jpg|510px]]<br />
* HP EliteDesk 800 G3 Mini: [https://www.ebay.com/sch/i.html?_nkw=HP+EliteDesk+800+G3+Desktop+Mini&_sacat=0 Ebay search]<br />
[[image:HP-elitedesk-800.jpg|550px]]<br />
<br />
==12v DC to DC converter==<br />
A 12v-19v DC to DC converter is needed to power the rendering/broadcasting computer in the vehicle. This converter avoids needing an AC inverter in the car, making for a clean installation.<br />
* '''Tips''':<br />
** Choose a device that has sufficient power capacity (100W minimum)<br />
===Recommended===<br />
These have been tested to work:<br />
* [https://www.amazon.com/gp/product/B07TT2F95L KFD 100W universal car charger]<br />
[[image:KFD-100W-DC-to-DC-converter-12v-to-19v.jpg|500px]]<br />
* '''Tips''':<br />
** We recommend cutting the cigar lighter connection and hard-wiring the power to a 15A circuit. (center conductor is positive).<br />
<br />
==Cameras==<br />
You will need 1 or 2 cameras for capturing and rendering video. <br />
===Recommended Camera Kit===<br />
Autosport Labs will soon provide a camera kit that provides high quality imaging, a compact and ruggedized IP65 form-factor, and the perfect 110 degree field of view.<br />
<br />
[[image:RaceCapture_video+data_livestreaming_windshield_mount.jpg|600px]]<br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount.jpg|600px]]<br />
<br />
===Assembling the Camera Kit===<br />
Using the supplied hardware, insert the nut into the camera clamp using a pair of small pliers. Then, use the included screw to clamp the camera to the mount. <br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_insert_nut.jpg|600px]]<br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_screw_attached.jpg|600px]]<br />
<br />
Then, assemble the camera clamp into ball and socket windshield mount, or the GoPro mount. (1 of each style is included in the kit)<br />
<br />
====Ball and Socket windshield mount====<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_ball_and_socket_mount.jpg|600px]]<br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_ball_and_socket_mount_assembled.jpg|600px]]<br />
<br />
====GoPro style mount====<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount.jpg|600px]]<br />
<br />
===Alternatives===<br />
Most any USB camera (such as a webcam) can be used. These are commonly found on [https://www.amazon.com/s?k=usb+webcam Amazon] or [https://www.ebay.com/sch/i.html?_nkw=usb+webcam&_sacat=0 Ebay].<br />
* '''Tips''':<br />
** Logitech is a good, high quality option<br />
** Find a camera that offers a 1/4-20 threaded camera mount for a secure rollbar attachment to minimize vibration.<br />
<br />
==Microphone==<br />
A microphone is needed for capturing audio.<br />
* Candidates:<br />
** USB microphone - you can use a separate USB microphone, especially if you get one that offers higher quality.<br />
** Analog microphone - you can use an analog microphone that attaches to the front headset input of the micro PC. Make sure you get a microphone that has the 4-ring connector for proper operation.<br />
** Microphone embedded in one of the cameras - if one of your your cameras has its own microphone, you can use that as an audio source.<br />
<br />
===Using the Microphone included with the kit===<br />
The kit provides a USB microphone with good audio quality. Plug this into one of the rear USB connections on the Beelink computer.<br />
[[image:RaceCapture_video+data_livestreaming_microphone.jpg|600px]]<br />
<br />
==Display Emulator==<br />
You'll need a display emulator to plug into the streamer while running on track. This tricks the computer into thinking a monitor is attached, allowing the streamer to run. <br />
<br />
[[image:hdmi_display_emulator.jpg|300px]]<br />
<br />
The following have been tested:<br />
* [https://www.amazon.com/gp/product/B06XSY9THQ HDMI emulator] - use this for the Beelink Micro PC<br />
* [https://www.amazon.com/gp/product/B075PTQ4NH DisplayPort emulator] - use this for the HP or Dell Micro PCs<br />
<br />
==Hotspot/Router==<br />
Most any hostspot should work, but for the best performance and reliability, these options should be considered:<br />
* Hard-wired ethernet connection, for direct connection to the micro computer.<br />
* External antenna connection - a hotspot that offers external antenna will boost performance by allowing you to use a high-gain roof-mount antenna.<br />
<br />
Suggested units that offer direct hardwired connection:<br />
* [https://www.amazon.com/NETGEAR-Broadband-Modem-LM1300-Always/dp/B0BKTSMQFF Netgear LM1300]<br />
* [https://www.amazon.com/Teltonika-RUT950-LTE-4G-Router/dp/B00TKFKLCI Teltonika RUT950]<br />
* [https://www.amazon.com/Peplink-Pepwave-Cellular-Router-MAX-BR1-MINI-LTE-US-T/dp/B01MR5YKF9 Pepwave BR1]<br />
<br />
=Setup=<br />
Connect a keyboard, mouse, and monitor to the rendering/streaming computer and prepare to install Ubuntu:<br />
==Install ubuntu 22 LTS==<br />
[https://ubuntu.com/download/desktop/thank-you?version=22.04.2&architecture=amd64 Download Ubuntu Desktop] and follow the instructions to install to a USB flash drive.<br />
* '''Notes''' To install, you will need to configure the system's BIOS to boot first from the USB flash drive. <br />
** Beelink: Repeatedly press 'delete' on the keyboard right after power up.<br />
** HP: Repeatedly press F10 after power up<br />
** Dell: Repeatedly press F2 after power up<br />
<br />
===OS configuration options===<br />
* '''Important -''' Install Ubuntu with the following options<br />
** During installation, choose the option to download / install updates, including "third-party software for graphics, WiFi, and additional media formats"<br />
** Choose the option to erase the hard drive and perform a complete install.<br />
** Select Login Automatically<br />
** When prompted for your account's username, make sure you specify a password. This will allow you to easily switch between streaming mode and maintenance mode.<br />
<br />
[[image:ubunut_setup_options.jpg]]<br />
<br />
After the installation is complete, the computer will reboot into the standard desktop.<br />
<br />
==Disable keyring popup==<br />
From the desktop: log out, and log back in using with the password you created during the installation step. <br />
<br />
Then, [https://linuxconfig.org/how-to-disable-keyring-popup-on-ubuntu Disable the keyring popup] using these instructions. Observe the security notes in this guide.<br />
* '''Notes'''<br />
** The log-out/log-in step is important - don't skip it!<br />
** Disabling the keyring is important; it prevents a popup dialog when the RaceCapture app automatically starts.<br />
<br />
==Run the installer==<br />
From the Ubuntu desktop, open a terminal and enter the following commands, pressing <enter> after each line:<br />
<pre><br />
sudo apt install curl<br />
curl -sL bit.ly/3RL9Yoj | bash<br />
</pre><br />
<br />
This will automatically install the RaceCapture app and video streamer, related software dependencies, and set up configuration file templates.<br />
<br />
==Reboot==<br />
Reboot the computer once it is complete with the installation. It should automatically launch the RaceCapture app.<br />
<br />
==Edit RaceCapture settings==<br />
Edit these RaceCapture settings for proper operation when streaming<br />
===App Preferences===<br />
Navigate to Setup / App Preferences:<br />
* set Fullscreen -> ON<br />
* Set Startup Screen -> Dashboard<br />
* Turn off Session Recording<br />
[[image:racecapture-video-data-livestreaming-app-settings.jpg]]<br />
<br />
===Dashboard Preferences===<br />
Navigate to the Dashboard, then press the gear icon in the upper right of the dashboard, select "More Settings" and set the following:<br />
* Turn off Pit stop timer<br />
* Turn off pit-to-car alerts<br />
* Turn off remote dashboard navigation (scroll to bottom)<br />
[[image:racecapture-video-data-livestreaming-dashboard-settings.jpg]]<br />
<br />
[[image:racecapture-video-data-livestreaming-disable-remote-dashboard-navigation.jpg]]<br />
<br />
==Plug in camera(s)==<br />
Plug in 1 or 2 cameras into the USB port<br />
<br />
* '''Note:''' Remember the ports the cameras are plugged into, and keep this consistent during use.<br />
<br />
==Plug in USB microphone==<br />
* Plug USB microphone into a USB port. <br />
<br />
Note: if using the Beelink, plug into one of the USB ports on the rear of the system.<br />
<br />
==Connect RaceCapture==<br />
Your current RaceCapture system already supports multiple connections, so you can continue using your dashboard (e.g. Android tablet via Bluetooth) when adding this video+data streaming capability.<br />
===Via USB (overall best option)===<br />
This is the best option for connecting RaceCapture to the streaming computer. Just connect a USB cable between the rendering/streaming system and RaceCapture. RaceCapture will automatically connect.<br />
===Via WiFi===<br />
If you're already using the USB connection for a Raspberry Pi dash, you can configure the rendering/streaming system to connect to RaceCapture via WiFi.<br />
====Configure as Client====<br />
If you are already using WiFi to connect the rendering/streaming system to your hotspot, you will need to configure RaceCapture to connect to the same hotspot via the WiFi client settings. In this configuration, everything shares the same network created by the hotspot.<br />
* '''Note''': Due to system limitations, your hotspot must be up and running before RaceCapture attempts to connect to it via WiFi.<br />
====Access Point connection (best WiFi option)====<br />
If you are connecting the rendering/streaming system to the hotspot via ethernet, then you can connect the rendering/streaming system directly to RaceCapture's WiFi Access Point. The system will receive data from RaceCapture via WiFi, and broadcast the video+data stream to the hotspot via ethernet.<br />
<br />
==Configure dashboard video options==<br />
* Press Settings Gear Icon, go to More Settings / Camera Preferences<br />
<br />
Select /dev/video0 for Camera #1, and /dev/video2 for Camera #2<br />
<br />
[[image:racecapture-video-data-livestreaming-camera-settings.jpg]]<br />
<br />
==Create a test dashboard==<br />
* Press the Settings gear icon, select Add Gauge<br />
* create a video gauge, and select Camera 1 as the source. <br />
* Resize to fit the dashboard. <br />
* create another video gauge, and select Camera 2 as the source.<br />
* Resize to be the picture-in-picture video window. <br />
* Add additional gauges as you see fit, such as an analog speed gauge, track map, etc. <br />
<br />
* '''Note''' If the cameras are reversed, you can swap the camera mappings in the main dashboard settings under More Settings / Camera Preferences<br />
<br />
Editing the dashboard is very easy - see this demo for an example:<br />
<br />
<youtube>r4mxA-fhJn0</youtube><br />
<br />
==Exiting the RaceCapture app==<br />
To get back to the regular Ubuntu desktop, press ctrl-t, type :quit and press <enter>. <br />
<br />
At the login screen, select your username and press the small gear icon in the lower right to select the Ubuntu desktop. <br />
<br />
To switch back to streaming mode, log out, press the small gear icon in the lower right and select the RaceCapture streaming option. Log in, and you will be streaming again. <br />
* '''Note''': The system will persist the last option you pick - so if you reboot or power cycle, it will automatically enter streaming mode.<br />
<br />
=Video Streaming / recording=<br />
To configure your streaming settings, switch back to the regular Ubuntu Desktop.<br />
<br />
Then, edit the video-config.ini - you'll find the file on the desktop. Edit this with the standard text editor by double-clicking it.<br />
<br />
==Streaming Key / URL==<br />
If using Youtube: Set the streaming key as provided by youtube. Or, you can specify a custom URL.<br />
==Local recording==<br />
If video_dir is set and points to a valid directory, local video recording will also be enabled.<br />
<br />
Videos for the current session are stored in a timestamped directory name under the configured video directory. Videos are saved as fixed-length segments to protect against file corruption due to sudden power loss, similar to how dashcams operate.<br />
<br />
If the system experiences sudden power loss, the video currently being written to will be corrupt and unreadable. Therefore, it is important to keep the video segment length reasonably short. <br />
<br />
After the session is complete, a full video can be made by using commonly available software to assemble all of the files.<br />
<br />
===video-config.ini===<br />
<pre><br />
[local_recording]<br />
video_dir=$HOME/Videos<br />
segment_length_sec=60<br />
</pre><br />
<br />
===Notes===<br />
* Configure video_dir to the location where you want to save your video files. <br />
* Configure segment_length_sec for the desired segment length size. If not specified, the default is 60 seconds '''Note, keep this value reasonably short''' - sudden power loss will result in corruption in the last written file.<br />
<br />
==Microphone==<br />
If using a USB microphone (recommended) use the default audio_device=1<br />
<br />
* Note, you can change this to different sources:<br />
** 0 = microphone connected to built-in headset port;<br />
** 1,2,3... = represents additional microphones found on the system, typically USB microphones.<br />
<br />
You can look under Ubuntu's system settings to discover available microphones and set their respective recording levels.<br />
<br />
Example default config file<br />
<pre><br />
[capture]<br />
audio_device=1<br />
<br />
[local_recording]<br />
video_dir=$HOME/Videos<br />
<br />
[streaming]<br />
streaming_url=rtmp://a.rtmp.youtube.com/live2/<streaming key> <br />
</pre><br />
<br />
=First Test=<br />
Once your streaming key has been set and saved, log out and log back into the streamer by selecting the RaceCapture streaming mode on the login page using the gear icon in the lower right.<br />
<br />
Check your youtube livestream to see if you are receiving video. If not, try restarting the system and let the streamer launch cleanly after a fresh reboot.<br />
<br />
=Maintenance/Troubleshooting=<br />
==Open a terminal window==<br />
(advanced mode) You can open a terminal window while RaceCapture is streaming by entering the following command.<br />
* Press ctrl+t, then type c, then press <enter><br />
<br />
The screen will split into two equal windows; the new window will be a terminal where you can perform debugging steps, such as viewing log files, etc.<br />
<br />
* '''Note''': The more user-friendly alternative is to just log out and log back in to the Ubuntu desktop.<br />
<br />
==Log out==<br />
You can log out of the current session to access the original Ubuntu desktop to perform additional maintenance.<br />
* Press ctrl-t, then type :quit, then press <enter><br />
<br />
Once you've logged out, you can log back into the Ubuntu desktop by pressing the gear icon in the lower right, and select Ubuntu. <br />
<br />
To get back to the RaceCapture full-screen app mode, select "RaceCapture livestreaming" from this menu; this is the window manager that is configured to run RaceCapture in full-screen mode.<br />
<br />
==Inspecting Logfiles==<br />
===Video streamer log file===<br />
The log file for the video streamer agent is located in the user's home directory. You can open it to see any helpful error messages regarding streaming.<br />
===RaceCapture log file===<br />
The RaceCapture log file is also located in the user's home directory. This will have potentially useful information for debugging the operation of the RaceCapture app.<br />
<br />
=Extras=<br />
==Mount for Beelink micro PC==<br />
<br />
We have designed a cage-style mount for the Beelink Micro PC. This allows convenient surface mounting of the PC.<br />
* Download STL file for 3D printing: [[file:Beelink_SER5_mount.zip]]<br />
<br />
[[image:beelink_cage_mount.jpg]]</div>Brentphttps://wiki.autosportlabs.com/index.php?title=Video_plus_data_streaming_with_racecapture&diff=9717Video plus data streaming with racecapture2023-09-21T16:26:50Z<p>Brentp: /* Microphone */</p>
<hr />
<div>=Introduction=<br />
This guide shows you how to add video+data livestreaming to your existing RaceCapture system.<br />
<br />
After following this guide, you will have:<br />
* 2-camera video with picture-in-picture<br />
* Rich, realtime graphics overlay<br />
* Broadcast to youtube or your preferred streaming provider via an in-vehicle cellular hotspot<br />
* Local video recording<br />
<br />
=System Overview=<br />
Video+data streaming is enabled by using a separate streaming/encoding device. As RaceCapture supports multiple simultaneous connections, an existing dashboard can be retained.<br />
[[image:RaceCapture video+data livestreaming system diagram.png]]<br />
<br />
==Cost==<br />
The cost for adding video+data livestreaming to your RaceCapture system can range '''between 0 and 800 USD''', depending on the parts you may already have on hand.<br />
<br />
==How hard is it to setup?==<br />
'''This project requires following instructions''', including:<br />
* Installing an operating system<br />
* Typing computer commands<br />
* Plugging in cables<br />
* Editing configuration files<br />
* Selecting options in an application<br />
<br />
This ability is within the realm of someone with moderate computer skills. If the instructions seem daunting, find someone to help you along.<br />
<br />
* For those who crave convenience, we will also be offering a pre-packaged setup that take care of most of the setup steps.<br />
<br />
==Production State==<br />
Since it is based on existing RaceCapture technology (RaceCapture hardware and RaceCapture app), the core of the system is very stable.<br />
<br />
New components that add video rendering, encoding, and streaming will be improved through your testing feedback and rounds of updates.<br />
<br />
As of this writing, several existing RaceCapture users have put the system through it's paces with great results. <br />
<br />
So far we were very pleased with the stability and performance, and we will continue to improve the system through software updates.<br />
<br />
===A demonstration===<br />
Here's the Session from the inaugural test (with sub optimal camera exposure settings and low quality microphone)<br />
<br />
<youtube>zVUJwnGoCnI&t=2990s</youtube><br />
<br />
===Experimental===<br />
While we consider this '''experimental''' - it is also a free software upgrade for a system that was never originally designed for this purpose. <br />
<br />
With your testing help we can steadily improve it and ultimately provide an incredibly cost effective yet very full-featured and high performance system that rivals solutions costing upwards of $5000 USD.<br />
<br />
=Parts you will need=<br />
==Your existing RaceCapture system==<br />
The RaceCapture system will provide access to your car's sensor data (CAN bus or analog sensors), high performance GPS, Accelerometer / Gyro sensors, lap timing and other motorsport related statistics.<br />
===Compatible Systems===<br />
* Any current or previous RaceCapture or PodiumConnect system will work.<br />
[[image:racecapture_pro_mk4_connectors_1024.jpg|520px]]<br />
[[Image:PodiumConnect_MK2_3quarter_1024.jpg|270px]]<br />
[[Image:rct_mk3_3quarter.jpg|300px]]<br />
<br />
==Rendering/Streaming computer==<br />
A tiny form-factor computer is used to receive data from RaceCapture and is responsible for video+data overlay, encoding, and broadcasting the video to youtube or similar streaming platform.<br />
===Recommended===<br />
* [https://www.amazon.com/gp/product/B0BCVCZDH3 Beelink SER5]<br />
The Beelink SER5 is our recommended choice as it is powerful, cost effective, and provided in a compact and lightweight form factor.<br />
<br />
[[image:beelink_ser5_micro_pc.jpg|500px]]<br />
<br />
===Alternatives===<br />
A micro system with an Intel I5-6500 through I5-7600 + SSD + 8GB RAM is an acceptable option as well. This may be a system you already have or a surplus system you can get at minimum cost.<br />
* Look for these options:<br />
** SSD (required for ruggedness - smallest size is fine).<br />
** Smallest RAM option is fine (typically 8GB)<br />
** Included WiFi - for connection versatility<br />
====Candidates====<br />
* Dell Optiplex 7050 micro desktop: [https://www.ebay.com/sch/i.html?_nkw=Dell+Optiplex+7050+Micro+Desktop+Computer&_sacat=0 Ebay search] (nice because most have wifi)<br />
[[image:dell-optiplex-7050.jpg|510px]]<br />
* HP EliteDesk 800 G3 Mini: [https://www.ebay.com/sch/i.html?_nkw=HP+EliteDesk+800+G3+Desktop+Mini&_sacat=0 Ebay search]<br />
[[image:HP-elitedesk-800.jpg|550px]]<br />
<br />
==12v DC to DC converter==<br />
A 12v-19v DC to DC converter is needed to power the rendering/broadcasting computer in the vehicle. This converter avoids needing an AC inverter in the car, making for a clean installation.<br />
* '''Tips''':<br />
** Choose a device that has sufficient power capacity (100W minimum)<br />
===Recommended===<br />
These have been tested to work:<br />
* [https://www.amazon.com/gp/product/B07TT2F95L KFD 100W universal car charger]<br />
[[image:KFD-100W-DC-to-DC-converter-12v-to-19v.jpg|500px]]<br />
* '''Tips''':<br />
** We recommend cutting the cigar lighter connection and hard-wiring the power to a 15A circuit. (center conductor is positive).<br />
<br />
==Cameras==<br />
You will need 1 or 2 cameras for capturing and rendering video. <br />
===Recommended Camera Kit===<br />
Autosport Labs will soon provide a camera kit that provides high quality imaging, a compact and ruggedized IP65 form-factor, and the perfect 110 degree field of view.<br />
<br />
[[image:RaceCapture_video+data_livestreaming_windshield_mount.jpg|600px]]<br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount.jpg|600px]]<br />
<br />
===Assembling the Camera Kit===<br />
Using the supplied hardware, insert the nut into the camera clamp using a pair of small pliers. Then, use the included screw to clamp the camera to the mount. <br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_insert_nut.jpg|600px]]<br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_screw_attached.jpg|600px]]<br />
<br />
Then, assemble the camera clamp into ball and socket windshield mount, or the GoPro mount. (1 of each style is included in the kit)<br />
<br />
====Ball and Socket windshield mount====<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_ball_and_socket_mount.jpg|600px]]<br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_ball_and_socket_mount_assembled.jpg|600px]]<br />
<br />
====GoPro style mount====<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount.jpg|600px]]<br />
<br />
===Alternatives===<br />
Most any USB camera (such as a webcam) can be used. These are commonly found on [https://www.amazon.com/s?k=usb+webcam Amazon] or [https://www.ebay.com/sch/i.html?_nkw=usb+webcam&_sacat=0 Ebay].<br />
* '''Tips''':<br />
** Logitech is a good, high quality option<br />
** Find a camera that offers a 1/4-20 threaded camera mount for a secure rollbar attachment to minimize vibration.<br />
<br />
==Microphone==<br />
A microphone is needed for capturing audio.<br />
* Candidates:<br />
** USB microphone - you can use a separate USB microphone, especially if you get one that offers higher quality.<br />
** Analog microphone - you can use an analog microphone that attaches to the front headset input of the micro PC. Make sure you get a microphone that has the 4-ring connector for proper operation.<br />
** Microphone embedded in one of the cameras - if one of your your cameras has its own microphone, you can use that as an audio source.<br />
<br />
===Using the Microphone included with the kit===<br />
The kit provides a USB microphone with good audio quality. Plug this into one of the rear USB connections on the Beelink computer.<br />
[[image:RaceCapture_video+data_livestreaming_microphone.jpg|600px]]<br />
<br />
==Display Emulator==<br />
You'll need a display emulator to plug into the streamer while running on track. This tricks the computer into thinking a monitor is attached, allowing the streamer to run. <br />
<br />
[[image:hdmi_display_emulator.jpg|300px]]<br />
<br />
The following have been tested:<br />
* [https://www.amazon.com/gp/product/B06XSY9THQ HDMI emulator] - use this for the Beelink Micro PC<br />
* [https://www.amazon.com/gp/product/B075PTQ4NH DisplayPort emulator] - use this for the HP or Dell Micro PCs<br />
<br />
==Hotspot/Router==<br />
Most any hostspot should work, but for the best performance and reliability, these options should be considered:<br />
* Hard-wired ethernet connection, for direct connection to the micro computer.<br />
* External antenna connection - a hotspot that offers external antenna will boost performance by allowing you to use a high-gain roof-mount antenna.<br />
<br />
Suggested units that offer direct hardwired connection:<br />
* [https://www.amazon.com/NETGEAR-Broadband-Modem-LM1300-Always/dp/B0BKTSMQFF Netgear LM1300]<br />
* [https://www.amazon.com/Teltonika-RUT950-LTE-4G-Router/dp/B00TKFKLCI Teltonika RUT950]<br />
* [https://www.amazon.com/Peplink-Pepwave-Cellular-Router-MAX-BR1-MINI-LTE-US-T/dp/B01MR5YKF9 Pepwave BR1]<br />
<br />
=Setup=<br />
Connect a keyboard, mouse, and monitor to the rendering/streaming computer and prepare to install Ubuntu:<br />
==Install ubuntu 22 LTS==<br />
[https://ubuntu.com/download/desktop/thank-you?version=22.04.2&architecture=amd64 Download Ubuntu Desktop] and follow the instructions to install to a USB flash drive.<br />
* '''Notes''' To install, you will need to configure the system's BIOS to boot first from the USB flash drive. <br />
** Beelink: Repeatedly press 'delete' on the keyboard right after power up.<br />
** HP: Repeatedly press F10 after power up<br />
** Dell: Repeatedly press F2 after power up<br />
<br />
===OS configuration options===<br />
* '''Important -''' Install Ubuntu with the following options<br />
** During installation, choose the option to download / install updates, including "third-party software for graphics, WiFi, and additional media formats"<br />
** Choose the option to erase the hard drive and perform a complete install.<br />
** Select Login Automatically<br />
** When prompted for your account's username, make sure you specify a password. This will allow you to easily switch between streaming mode and maintenance mode.<br />
<br />
[[image:ubunut_setup_options.jpg]]<br />
<br />
After the installation is complete, the computer will reboot into the standard desktop.<br />
<br />
==Disable keyring popup==<br />
From the desktop: log out, and log back in using with the password you created during the installation step. <br />
<br />
Then, [https://linuxconfig.org/how-to-disable-keyring-popup-on-ubuntu Disable the keyring popup] using these instructions. Observe the security notes in this guide.<br />
* '''Notes'''<br />
** The log-out/log-in step is important - don't skip it!<br />
** Disabling the keyring is important; it prevents a popup dialog when the RaceCapture app automatically starts.<br />
<br />
==Run the installer==<br />
From the Ubuntu desktop, open a terminal and enter the following commands, pressing <enter> after each line:<br />
<pre><br />
sudo apt install curl<br />
curl -sL bit.ly/3RL9Yoj | bash<br />
</pre><br />
<br />
This will automatically install the RaceCapture app and video streamer, related software dependencies, and set up configuration file templates.<br />
<br />
==Reboot==<br />
Reboot the computer once it is complete with the installation. It should automatically launch the RaceCapture app.<br />
<br />
==Edit RaceCapture settings==<br />
Edit these RaceCapture settings for proper operation when streaming<br />
===App Preferences===<br />
Navigate to Setup / App Preferences:<br />
* set Fullscreen -> ON<br />
* Set Startup Screen -> Dashboard<br />
* Turn off Session Recording<br />
[[image:racecapture-video-data-livestreaming-app-settings.jpg]]<br />
<br />
===Dashboard Preferences===<br />
Navigate to the Dashboard, then press the gear icon in the upper right of the dashboard, select "More Settings" and set the following:<br />
* Turn off Pit stop timer<br />
* Turn off pit-to-car alerts<br />
* Turn off remote dashboard navigation (scroll to bottom)<br />
[[image:racecapture-video-data-livestreaming-dashboard-settings.jpg]]<br />
<br />
[[image:racecapture-video-data-livestreaming-disable-remote-dashboard-navigation.jpg]]<br />
<br />
==Plug in camera(s)==<br />
Plug in 1 or 2 cameras into the USB port<br />
<br />
* '''Note:''' Remember the ports the cameras are plugged into, and keep this consistent during use.<br />
<br />
==Plug in USB microphone==<br />
* Plug USB microphone into a USB port<br />
<br />
==Connect RaceCapture==<br />
Your current RaceCapture system already supports multiple connections, so you can continue using your dashboard (e.g. Android tablet via Bluetooth) when adding this video+data streaming capability.<br />
===Via USB (overall best option)===<br />
This is the best option for connecting RaceCapture to the streaming computer. Just connect a USB cable between the rendering/streaming system and RaceCapture. RaceCapture will automatically connect.<br />
===Via WiFi===<br />
If you're already using the USB connection for a Raspberry Pi dash, you can configure the rendering/streaming system to connect to RaceCapture via WiFi.<br />
====Configure as Client====<br />
If you are already using WiFi to connect the rendering/streaming system to your hotspot, you will need to configure RaceCapture to connect to the same hotspot via the WiFi client settings. In this configuration, everything shares the same network created by the hotspot.<br />
* '''Note''': Due to system limitations, your hotspot must be up and running before RaceCapture attempts to connect to it via WiFi.<br />
====Access Point connection (best WiFi option)====<br />
If you are connecting the rendering/streaming system to the hotspot via ethernet, then you can connect the rendering/streaming system directly to RaceCapture's WiFi Access Point. The system will receive data from RaceCapture via WiFi, and broadcast the video+data stream to the hotspot via ethernet.<br />
<br />
==Configure dashboard video options==<br />
* Press Settings Gear Icon, go to More Settings / Camera Preferences<br />
<br />
Select /dev/video0 for Camera #1, and /dev/video2 for Camera #2<br />
<br />
[[image:racecapture-video-data-livestreaming-camera-settings.jpg]]<br />
<br />
==Create a test dashboard==<br />
* Press the Settings gear icon, select Add Gauge<br />
* create a video gauge, and select Camera 1 as the source. <br />
* Resize to fit the dashboard. <br />
* create another video gauge, and select Camera 2 as the source.<br />
* Resize to be the picture-in-picture video window. <br />
* Add additional gauges as you see fit, such as an analog speed gauge, track map, etc. <br />
<br />
* '''Note''' If the cameras are reversed, you can swap the camera mappings in the main dashboard settings under More Settings / Camera Preferences<br />
<br />
Editing the dashboard is very easy - see this demo for an example:<br />
<br />
<youtube>r4mxA-fhJn0</youtube><br />
<br />
==Exiting the RaceCapture app==<br />
To get back to the regular Ubuntu desktop, press ctrl-t, type :quit and press <enter>. <br />
<br />
At the login screen, select your username and press the small gear icon in the lower right to select the Ubuntu desktop. <br />
<br />
To switch back to streaming mode, log out, press the small gear icon in the lower right and select the RaceCapture streaming option. Log in, and you will be streaming again. <br />
* '''Note''': The system will persist the last option you pick - so if you reboot or power cycle, it will automatically enter streaming mode.<br />
<br />
=Video Streaming / recording=<br />
To configure your streaming settings, switch back to the regular Ubuntu Desktop.<br />
<br />
Then, edit the video-config.ini - you'll find the file on the desktop. Edit this with the standard text editor by double-clicking it.<br />
<br />
==Streaming Key / URL==<br />
If using Youtube: Set the streaming key as provided by youtube. Or, you can specify a custom URL.<br />
==Local recording==<br />
If video_dir is set and points to a valid directory, local video recording will also be enabled.<br />
<br />
Videos for the current session are stored in a timestamped directory name under the configured video directory. Videos are saved as fixed-length segments to protect against file corruption due to sudden power loss, similar to how dashcams operate.<br />
<br />
If the system experiences sudden power loss, the video currently being written to will be corrupt and unreadable. Therefore, it is important to keep the video segment length reasonably short. <br />
<br />
After the session is complete, a full video can be made by using commonly available software to assemble all of the files.<br />
<br />
===video-config.ini===<br />
<pre><br />
[local_recording]<br />
video_dir=$HOME/Videos<br />
segment_length_sec=60<br />
</pre><br />
<br />
===Notes===<br />
* Configure video_dir to the location where you want to save your video files. <br />
* Configure segment_length_sec for the desired segment length size. If not specified, the default is 60 seconds '''Note, keep this value reasonably short''' - sudden power loss will result in corruption in the last written file.<br />
<br />
==Microphone==<br />
If using a USB microphone (recommended) use the default audio_device=1<br />
<br />
* Note, you can change this to different sources:<br />
** 0 = microphone connected to built-in headset port;<br />
** 1,2,3... = represents additional microphones found on the system, typically USB microphones.<br />
<br />
You can look under Ubuntu's system settings to discover available microphones and set their respective recording levels.<br />
<br />
Example default config file<br />
<pre><br />
[capture]<br />
audio_device=1<br />
<br />
[local_recording]<br />
video_dir=$HOME/Videos<br />
<br />
[streaming]<br />
streaming_url=rtmp://a.rtmp.youtube.com/live2/<streaming key> <br />
</pre><br />
<br />
=First Test=<br />
Once your streaming key has been set and saved, log out and log back into the streamer by selecting the RaceCapture streaming mode on the login page using the gear icon in the lower right.<br />
<br />
Check your youtube livestream to see if you are receiving video. If not, try restarting the system and let the streamer launch cleanly after a fresh reboot.<br />
<br />
=Maintenance/Troubleshooting=<br />
==Open a terminal window==<br />
(advanced mode) You can open a terminal window while RaceCapture is streaming by entering the following command.<br />
* Press ctrl+t, then type c, then press <enter><br />
<br />
The screen will split into two equal windows; the new window will be a terminal where you can perform debugging steps, such as viewing log files, etc.<br />
<br />
* '''Note''': The more user-friendly alternative is to just log out and log back in to the Ubuntu desktop.<br />
<br />
==Log out==<br />
You can log out of the current session to access the original Ubuntu desktop to perform additional maintenance.<br />
* Press ctrl-t, then type :quit, then press <enter><br />
<br />
Once you've logged out, you can log back into the Ubuntu desktop by pressing the gear icon in the lower right, and select Ubuntu. <br />
<br />
To get back to the RaceCapture full-screen app mode, select "RaceCapture livestreaming" from this menu; this is the window manager that is configured to run RaceCapture in full-screen mode.<br />
<br />
==Inspecting Logfiles==<br />
===Video streamer log file===<br />
The log file for the video streamer agent is located in the user's home directory. You can open it to see any helpful error messages regarding streaming.<br />
===RaceCapture log file===<br />
The RaceCapture log file is also located in the user's home directory. This will have potentially useful information for debugging the operation of the RaceCapture app.<br />
<br />
=Extras=<br />
==Mount for Beelink micro PC==<br />
<br />
We have designed a cage-style mount for the Beelink Micro PC. This allows convenient surface mounting of the PC.<br />
* Download STL file for 3D printing: [[file:Beelink_SER5_mount.zip]]<br />
<br />
[[image:beelink_cage_mount.jpg]]</div>Brentphttps://wiki.autosportlabs.com/index.php?title=File:RaceCapture_video%2Bdata_livestreaming_microphone.jpg&diff=9716File:RaceCapture video+data livestreaming microphone.jpg2023-09-21T16:26:40Z<p>Brentp: </p>
<hr />
<div></div>Brentphttps://wiki.autosportlabs.com/index.php?title=Video_plus_data_streaming_with_racecapture&diff=9715Video plus data streaming with racecapture2023-09-21T16:24:43Z<p>Brentp: /* Recommended */</p>
<hr />
<div>=Introduction=<br />
This guide shows you how to add video+data livestreaming to your existing RaceCapture system.<br />
<br />
After following this guide, you will have:<br />
* 2-camera video with picture-in-picture<br />
* Rich, realtime graphics overlay<br />
* Broadcast to youtube or your preferred streaming provider via an in-vehicle cellular hotspot<br />
* Local video recording<br />
<br />
=System Overview=<br />
Video+data streaming is enabled by using a separate streaming/encoding device. As RaceCapture supports multiple simultaneous connections, an existing dashboard can be retained.<br />
[[image:RaceCapture video+data livestreaming system diagram.png]]<br />
<br />
==Cost==<br />
The cost for adding video+data livestreaming to your RaceCapture system can range '''between 0 and 800 USD''', depending on the parts you may already have on hand.<br />
<br />
==How hard is it to setup?==<br />
'''This project requires following instructions''', including:<br />
* Installing an operating system<br />
* Typing computer commands<br />
* Plugging in cables<br />
* Editing configuration files<br />
* Selecting options in an application<br />
<br />
This ability is within the realm of someone with moderate computer skills. If the instructions seem daunting, find someone to help you along.<br />
<br />
* For those who crave convenience, we will also be offering a pre-packaged setup that take care of most of the setup steps.<br />
<br />
==Production State==<br />
Since it is based on existing RaceCapture technology (RaceCapture hardware and RaceCapture app), the core of the system is very stable.<br />
<br />
New components that add video rendering, encoding, and streaming will be improved through your testing feedback and rounds of updates.<br />
<br />
As of this writing, several existing RaceCapture users have put the system through it's paces with great results. <br />
<br />
So far we were very pleased with the stability and performance, and we will continue to improve the system through software updates.<br />
<br />
===A demonstration===<br />
Here's the Session from the inaugural test (with sub optimal camera exposure settings and low quality microphone)<br />
<br />
<youtube>zVUJwnGoCnI&t=2990s</youtube><br />
<br />
===Experimental===<br />
While we consider this '''experimental''' - it is also a free software upgrade for a system that was never originally designed for this purpose. <br />
<br />
With your testing help we can steadily improve it and ultimately provide an incredibly cost effective yet very full-featured and high performance system that rivals solutions costing upwards of $5000 USD.<br />
<br />
=Parts you will need=<br />
==Your existing RaceCapture system==<br />
The RaceCapture system will provide access to your car's sensor data (CAN bus or analog sensors), high performance GPS, Accelerometer / Gyro sensors, lap timing and other motorsport related statistics.<br />
===Compatible Systems===<br />
* Any current or previous RaceCapture or PodiumConnect system will work.<br />
[[image:racecapture_pro_mk4_connectors_1024.jpg|520px]]<br />
[[Image:PodiumConnect_MK2_3quarter_1024.jpg|270px]]<br />
[[Image:rct_mk3_3quarter.jpg|300px]]<br />
<br />
==Rendering/Streaming computer==<br />
A tiny form-factor computer is used to receive data from RaceCapture and is responsible for video+data overlay, encoding, and broadcasting the video to youtube or similar streaming platform.<br />
===Recommended===<br />
* [https://www.amazon.com/gp/product/B0BCVCZDH3 Beelink SER5]<br />
The Beelink SER5 is our recommended choice as it is powerful, cost effective, and provided in a compact and lightweight form factor.<br />
<br />
[[image:beelink_ser5_micro_pc.jpg|500px]]<br />
<br />
===Alternatives===<br />
A micro system with an Intel I5-6500 through I5-7600 + SSD + 8GB RAM is an acceptable option as well. This may be a system you already have or a surplus system you can get at minimum cost.<br />
* Look for these options:<br />
** SSD (required for ruggedness - smallest size is fine).<br />
** Smallest RAM option is fine (typically 8GB)<br />
** Included WiFi - for connection versatility<br />
====Candidates====<br />
* Dell Optiplex 7050 micro desktop: [https://www.ebay.com/sch/i.html?_nkw=Dell+Optiplex+7050+Micro+Desktop+Computer&_sacat=0 Ebay search] (nice because most have wifi)<br />
[[image:dell-optiplex-7050.jpg|510px]]<br />
* HP EliteDesk 800 G3 Mini: [https://www.ebay.com/sch/i.html?_nkw=HP+EliteDesk+800+G3+Desktop+Mini&_sacat=0 Ebay search]<br />
[[image:HP-elitedesk-800.jpg|550px]]<br />
<br />
==12v DC to DC converter==<br />
A 12v-19v DC to DC converter is needed to power the rendering/broadcasting computer in the vehicle. This converter avoids needing an AC inverter in the car, making for a clean installation.<br />
* '''Tips''':<br />
** Choose a device that has sufficient power capacity (100W minimum)<br />
===Recommended===<br />
These have been tested to work:<br />
* [https://www.amazon.com/gp/product/B07TT2F95L KFD 100W universal car charger]<br />
[[image:KFD-100W-DC-to-DC-converter-12v-to-19v.jpg|500px]]<br />
* '''Tips''':<br />
** We recommend cutting the cigar lighter connection and hard-wiring the power to a 15A circuit. (center conductor is positive).<br />
<br />
==Cameras==<br />
You will need 1 or 2 cameras for capturing and rendering video. <br />
===Recommended Camera Kit===<br />
Autosport Labs will soon provide a camera kit that provides high quality imaging, a compact and ruggedized IP65 form-factor, and the perfect 110 degree field of view.<br />
<br />
[[image:RaceCapture_video+data_livestreaming_windshield_mount.jpg|600px]]<br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount.jpg|600px]]<br />
<br />
===Assembling the Camera Kit===<br />
Using the supplied hardware, insert the nut into the camera clamp using a pair of small pliers. Then, use the included screw to clamp the camera to the mount. <br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_insert_nut.jpg|600px]]<br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_screw_attached.jpg|600px]]<br />
<br />
Then, assemble the camera clamp into ball and socket windshield mount, or the GoPro mount. (1 of each style is included in the kit)<br />
<br />
====Ball and Socket windshield mount====<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_ball_and_socket_mount.jpg|600px]]<br />
<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount_clamp_ball_and_socket_mount_assembled.jpg|600px]]<br />
<br />
====GoPro style mount====<br />
[[image:RaceCapture_video+data_livestreaming_gopro_camera_mount.jpg|600px]]<br />
<br />
===Alternatives===<br />
Most any USB camera (such as a webcam) can be used. These are commonly found on [https://www.amazon.com/s?k=usb+webcam Amazon] or [https://www.ebay.com/sch/i.html?_nkw=usb+webcam&_sacat=0 Ebay].<br />
* '''Tips''':<br />
** Logitech is a good, high quality option<br />
** Find a camera that offers a 1/4-20 threaded camera mount for a secure rollbar attachment to minimize vibration.<br />
<br />
==Microphone==<br />
A microphone is needed for capturing audio.<br />
* Candidates:<br />
** USB microphone - you can use a separate USB microphone, especially if you get one that offers higher quality.<br />
** Analog microphone - you can use an analog microphone that attaches to the front headset input of the micro PC. Make sure you get a microphone that has the 4-ring connector for proper operation.<br />
** Microphone embedded in one of the cameras - if one of your your cameras has its own microphone, you can use that as an audio source.<br />
<br />
==Display Emulator==<br />
You'll need a display emulator to plug into the streamer while running on track. This tricks the computer into thinking a monitor is attached, allowing the streamer to run. <br />
<br />
[[image:hdmi_display_emulator.jpg|300px]]<br />
<br />
The following have been tested:<br />
* [https://www.amazon.com/gp/product/B06XSY9THQ HDMI emulator] - use this for the Beelink Micro PC<br />
* [https://www.amazon.com/gp/product/B075PTQ4NH DisplayPort emulator] - use this for the HP or Dell Micro PCs<br />
<br />
==Hotspot/Router==<br />
Most any hostspot should work, but for the best performance and reliability, these options should be considered:<br />
* Hard-wired ethernet connection, for direct connection to the micro computer.<br />
* External antenna connection - a hotspot that offers external antenna will boost performance by allowing you to use a high-gain roof-mount antenna.<br />
<br />
Suggested units that offer direct hardwired connection:<br />
* [https://www.amazon.com/NETGEAR-Broadband-Modem-LM1300-Always/dp/B0BKTSMQFF Netgear LM1300]<br />
* [https://www.amazon.com/Teltonika-RUT950-LTE-4G-Router/dp/B00TKFKLCI Teltonika RUT950]<br />
* [https://www.amazon.com/Peplink-Pepwave-Cellular-Router-MAX-BR1-MINI-LTE-US-T/dp/B01MR5YKF9 Pepwave BR1]<br />
<br />
=Setup=<br />
Connect a keyboard, mouse, and monitor to the rendering/streaming computer and prepare to install Ubuntu:<br />
==Install ubuntu 22 LTS==<br />
[https://ubuntu.com/download/desktop/thank-you?version=22.04.2&architecture=amd64 Download Ubuntu Desktop] and follow the instructions to install to a USB flash drive.<br />
* '''Notes''' To install, you will need to configure the system's BIOS to boot first from the USB flash drive. <br />
** Beelink: Repeatedly press 'delete' on the keyboard right after power up.<br />
** HP: Repeatedly press F10 after power up<br />
** Dell: Repeatedly press F2 after power up<br />
<br />
===OS configuration options===<br />
* '''Important -''' Install Ubuntu with the following options<br />
** During installation, choose the option to download / install updates, including "third-party software for graphics, WiFi, and additional media formats"<br />
** Choose the option to erase the hard drive and perform a complete install.<br />
** Select Login Automatically<br />
** When prompted for your account's username, make sure you specify a password. This will allow you to easily switch between streaming mode and maintenance mode.<br />
<br />
[[image:ubunut_setup_options.jpg]]<br />
<br />
After the installation is complete, the computer will reboot into the standard desktop.<br />
<br />
==Disable keyring popup==<br />
From the desktop: log out, and log back in using with the password you created during the installation step. <br />
<br />
Then, [https://linuxconfig.org/how-to-disable-keyring-popup-on-ubuntu Disable the keyring popup] using these instructions. Observe the security notes in this guide.<br />
* '''Notes'''<br />
** The log-out/log-in step is important - don't skip it!<br />
** Disabling the keyring is important; it prevents a popup dialog when the RaceCapture app automatically starts.<br />
<br />
==Run the installer==<br />
From the Ubuntu desktop, open a terminal and enter the following commands, pressing <enter> after each line:<br />
<pre><br />
sudo apt install curl<br />
curl -sL bit.ly/3RL9Yoj | bash<br />
</pre><br />
<br />
This will automatically install the RaceCapture app and video streamer, related software dependencies, and set up configuration file templates.<br />
<br />
==Reboot==<br />
Reboot the computer once it is complete with the installation. It should automatically launch the RaceCapture app.<br />
<br />
==Edit RaceCapture settings==<br />
Edit these RaceCapture settings for proper operation when streaming<br />
===App Preferences===<br />
Navigate to Setup / App Preferences:<br />
* set Fullscreen -> ON<br />
* Set Startup Screen -> Dashboard<br />
* Turn off Session Recording<br />
[[image:racecapture-video-data-livestreaming-app-settings.jpg]]<br />
<br />
===Dashboard Preferences===<br />
Navigate to the Dashboard, then press the gear icon in the upper right of the dashboard, select "More Settings" and set the following:<br />
* Turn off Pit stop timer<br />
* Turn off pit-to-car alerts<br />
* Turn off remote dashboard navigation (scroll to bottom)<br />
[[image:racecapture-video-data-livestreaming-dashboard-settings.jpg]]<br />
<br />
[[image:racecapture-video-data-livestreaming-disable-remote-dashboard-navigation.jpg]]<br />
<br />
==Plug in camera(s)==<br />
Plug in 1 or 2 cameras into the USB port<br />
<br />
* '''Note:''' Remember the ports the cameras are plugged into, and keep this consistent during use.<br />
<br />
==Plug in USB microphone==<br />
* Plug USB microphone into a USB port<br />
<br />
==Connect RaceCapture==<br />
Your current RaceCapture system already supports multiple connections, so you can continue using your dashboard (e.g. Android tablet via Bluetooth) when adding this video+data streaming capability.<br />
===Via USB (overall best option)===<br />
This is the best option for connecting RaceCapture to the streaming computer. Just connect a USB cable between the rendering/streaming system and RaceCapture. RaceCapture will automatically connect.<br />
===Via WiFi===<br />
If you're already using the USB connection for a Raspberry Pi dash, you can configure the rendering/streaming system to connect to RaceCapture via WiFi.<br />
====Configure as Client====<br />
If you are already using WiFi to connect the rendering/streaming system to your hotspot, you will need to configure RaceCapture to connect to the same hotspot via the WiFi client settings. In this configuration, everything shares the same network created by the hotspot.<br />
* '''Note''': Due to system limitations, your hotspot must be up and running before RaceCapture attempts to connect to it via WiFi.<br />
====Access Point connection (best WiFi option)====<br />
If you are connecting the rendering/streaming system to the hotspot via ethernet, then you can connect the rendering/streaming system directly to RaceCapture's WiFi Access Point. The system will receive data from RaceCapture via WiFi, and broadcast the video+data stream to the hotspot via ethernet.<br />
<br />
==Configure dashboard video options==<br />
* Press Settings Gear Icon, go to More Settings / Camera Preferences<br />
<br />
Select /dev/video0 for Camera #1, and /dev/video2 for Camera #2<br />
<br />
[[image:racecapture-video-data-livestreaming-camera-settings.jpg]]<br />
<br />
==Create a test dashboard==<br />
* Press the Settings gear icon, select Add Gauge<br />
* create a video gauge, and select Camera 1 as the source. <br />
* Resize to fit the dashboard. <br />
* create another video gauge, and select Camera 2 as the source.<br />
* Resize to be the picture-in-picture video window. <br />
* Add additional gauges as you see fit, such as an analog speed gauge, track map, etc. <br />
<br />
* '''Note''' If the cameras are reversed, you can swap the camera mappings in the main dashboard settings under More Settings / Camera Preferences<br />
<br />
Editing the dashboard is very easy - see this demo for an example:<br />
<br />
<youtube>r4mxA-fhJn0</youtube><br />
<br />
==Exiting the RaceCapture app==<br />
To get back to the regular Ubuntu desktop, press ctrl-t, type :quit and press <enter>. <br />
<br />
At the login screen, select your username and press the small gear icon in the lower right to select the Ubuntu desktop. <br />
<br />
To switch back to streaming mode, log out, press the small gear icon in the lower right and select the RaceCapture streaming option. Log in, and you will be streaming again. <br />
* '''Note''': The system will persist the last option you pick - so if you reboot or power cycle, it will automatically enter streaming mode.<br />
<br />
=Video Streaming / recording=<br />
To configure your streaming settings, switch back to the regular Ubuntu Desktop.<br />
<br />
Then, edit the video-config.ini - you'll find the file on the desktop. Edit this with the standard text editor by double-clicking it.<br />
<br />
==Streaming Key / URL==<br />
If using Youtube: Set the streaming key as provided by youtube. Or, you can specify a custom URL.<br />
==Local recording==<br />
If video_dir is set and points to a valid directory, local video recording will also be enabled.<br />
<br />
Videos for the current session are stored in a timestamped directory name under the configured video directory. Videos are saved as fixed-length segments to protect against file corruption due to sudden power loss, similar to how dashcams operate.<br />
<br />
If the system experiences sudden power loss, the video currently being written to will be corrupt and unreadable. Therefore, it is important to keep the video segment length reasonably short. <br />
<br />
After the session is complete, a full video can be made by using commonly available software to assemble all of the files.<br />
<br />
===video-config.ini===<br />
<pre><br />
[local_recording]<br />
video_dir=$HOME/Videos<br />
segment_length_sec=60<br />
</pre><br />
<br />
===Notes===<br />
* Configure video_dir to the location where you want to save your video files. <br />
* Configure segment_length_sec for the desired segment length size. If not specified, the default is 60 seconds '''Note, keep this value reasonably short''' - sudden power loss will result in corruption in the last written file.<br />
<br />
==Microphone==<br />
If using a USB microphone (recommended) use the default audio_device=1<br />
<br />
* Note, you can change this to different sources:<br />
** 0 = microphone connected to built-in headset port;<br />
** 1,2,3... = represents additional microphones found on the system, typically USB microphones.<br />
<br />
You can look under Ubuntu's system settings to discover available microphones and set their respective recording levels.<br />
<br />
Example default config file<br />
<pre><br />
[capture]<br />
audio_device=1<br />
<br />
[local_recording]<br />
video_dir=$HOME/Videos<br />
<br />
[streaming]<br />
streaming_url=rtmp://a.rtmp.youtube.com/live2/<streaming key> <br />
</pre><br />
<br />
=First Test=<br />
Once your streaming key has been set and saved, log out and log back into the streamer by selecting the RaceCapture streaming mode on the login page using the gear icon in the lower right.<br />
<br />
Check your youtube livestream to see if you are receiving video. If not, try restarting the system and let the streamer launch cleanly after a fresh reboot.<br />
<br />
=Maintenance/Troubleshooting=<br />
==Open a terminal window==<br />
(advanced mode) You can open a terminal window while RaceCapture is streaming by entering the following command.<br />
* Press ctrl+t, then type c, then press <enter><br />
<br />
The screen will split into two equal windows; the new window will be a terminal where you can perform debugging steps, such as viewing log files, etc.<br />
<br />
* '''Note''': The more user-friendly alternative is to just log out and log back in to the Ubuntu desktop.<br />
<br />
==Log out==<br />
You can log out of the current session to access the original Ubuntu desktop to perform additional maintenance.<br />
* Press ctrl-t, then type :quit, then press <enter><br />
<br />
Once you've logged out, you can log back into the Ubuntu desktop by pressing the gear icon in the lower right, and select Ubuntu. <br />
<br />
To get back to the RaceCapture full-screen app mode, select "RaceCapture livestreaming" from this menu; this is the window manager that is configured to run RaceCapture in full-screen mode.<br />
<br />
==Inspecting Logfiles==<br />
===Video streamer log file===<br />
The log file for the video streamer agent is located in the user's home directory. You can open it to see any helpful error messages regarding streaming.<br />
===RaceCapture log file===<br />
The RaceCapture log file is also located in the user's home directory. This will have potentially useful information for debugging the operation of the RaceCapture app.<br />
<br />
=Extras=<br />
==Mount for Beelink micro PC==<br />
<br />
We have designed a cage-style mount for the Beelink Micro PC. This allows convenient surface mounting of the PC.<br />
* Download STL file for 3D printing: [[file:Beelink_SER5_mount.zip]]<br />
<br />
[[image:beelink_cage_mount.jpg]]</div>Brentphttps://wiki.autosportlabs.com/index.php?title=File:RaceCapture_video%2Bdata_livestreaming_gopro_camera_mount_clamp_ball_and_socket_mount_assembled.jpg&diff=9714File:RaceCapture video+data livestreaming gopro camera mount clamp ball and socket mount assembled.jpg2023-09-21T16:23:06Z<p>Brentp: </p>
<hr />
<div></div>Brentphttps://wiki.autosportlabs.com/index.php?title=File:RaceCapture_video%2Bdata_livestreaming_gopro_camera_mount_clamp_ball_and_socket_mount.jpg&diff=9713File:RaceCapture video+data livestreaming gopro camera mount clamp ball and socket mount.jpg2023-09-21T16:22:38Z<p>Brentp: </p>
<hr />
<div></div>Brentphttps://wiki.autosportlabs.com/index.php?title=File:RaceCapture_video%2Bdata_livestreaming_gopro_camera_mount_clamp_screw_attached.jpg&diff=9712File:RaceCapture video+data livestreaming gopro camera mount clamp screw attached.jpg2023-09-21T16:19:59Z<p>Brentp: </p>
<hr />
<div></div>Brentphttps://wiki.autosportlabs.com/index.php?title=File:RaceCapture_video%2Bdata_livestreaming_gopro_camera_mount_clamp_insert_nut.jpg&diff=9711File:RaceCapture video+data livestreaming gopro camera mount clamp insert nut.jpg2023-09-21T16:19:33Z<p>Brentp: </p>
<hr />
<div></div>Brentphttps://wiki.autosportlabs.com/index.php?title=File:RaceCapture_video%2Bdata_livestreaming_gopro_camera_mount.jpg&diff=9710File:RaceCapture video+data livestreaming gopro camera mount.jpg2023-09-21T16:14:22Z<p>Brentp: </p>
<hr />
<div></div>Brentphttps://wiki.autosportlabs.com/index.php?title=File:RaceCapture_video%2Bdata_livestreaming_windshield_mount.jpg&diff=9709File:RaceCapture video+data livestreaming windshield mount.jpg2023-09-21T16:13:24Z<p>Brentp: </p>
<hr />
<div></div>Brentphttps://wiki.autosportlabs.com/index.php?title=RaceCapture-Pro_MK4&diff=9708RaceCapture-Pro MK42023-09-12T17:07:02Z<p>Brentp: /* Specifications */</p>
<hr />
<div>=Overview=<br />
RaceCapture/Pro MK4 is our latest generation motorsports telemetry system, packed with features for Endurance Racing, Sprint Racing, Autocross, Time Attack and more.<br />
<br />
<br />
[[image:racecapture_pro_mk4_front_1024.jpg|800px]] [[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/racecapture-pro-mk4-lap-timer-data-logger-telemetry-system/]]<br />
<br />
[[image:racecapture_pro_mk4_connectors_1024.jpg|800px]]<br />
<br />
=Guides=<br />
* '''[[RaceCapture-Pro_MK4#Quick_Start|Jump to quick start guide]]'''<br />
* '''[[RaceCapture_App_User%27s_Guide|RaceCapture App user's guide]]'''<br />
* '''[[Harness_specifications|Plug and play harness system for sensors and devices]]'''<br />
* [[Vehicle_Specific_Guides|Vehicle Specific Guides]]<br />
* [[RacecapturePro_MK4_hardware_install|Jump to Hardware guide]]<br />
* [[RaceCapture_real_time_telemetry|Real-time Telemetry guide]]<br />
* [[RaceCaptureLoggingData|Logging Data]]<br />
* [[RCP_CAN|CAN bus / ECU sensor guide]]<br />
* [[RC_OBDII|OBDII Guide]]<br />
*[[RaceCapturePro_Sensors|Sensor guide]]<br />
*[[RaceCapturePro_Lua_Scripting|Lua scripting guide]]<br />
*[[RaceCapturePro_Lua_Scripting_Examples|Lua script examples]]<br />
*[[CoilX|CoilX Tach interface to ignition coils guide]]<br />
*[[AutomaticCameraControl|Automatic Camera control guide]]<br />
*[[RaceCapture_RaceRender_Guide|Exporting to RaceRender guide]]<br />
*[[RaceCapture_DashWare_Guide|Creating video with RCP data overlay using DashWare]]<br />
*[[Podium_Driver_Data_Analysis|Data Analysis in Podium to become a faster driver]]<br />
*[[RaceCapture_Dashboard_Tablet_Automation|Automating Tablets/Phones for use as Dashboards Guide]]<br />
*[[Add_TPMS_Data|TPMS guide]]<br />
*'''[[RaceCapture_troubleshooting|General troubleshooting guide]]'''<br />
<br />
=How To=<br />
*[[RaceCapturePro2_Enable_Predictive_Timing|How to: enable Predictive Timing]]<br />
*[[RaceTracks|How to: Submit a new race track]]<br />
*[[RaceCapturePro2_Calibrate_Sensor|How to: calibrate and configure an analog sensor]]<br />
*[[RaceCapturePro2_OBD2|How to: enable OBD2 channels]]<br />
*[[RaceCapturePro2_ShiftLights|How to: enable sequential shift lights]]<br />
*[[GPIO_Output|How to control switches, relays, LEDS, etc from GPIO of Race Capture Pro]]<br />
*[[RaceCapturePro2_GPS|How to: get best GPS data]]<br />
*[[RaceCapturePro_How_To_Update_Firmware|How to update firmware]]<br />
*[[Multiple_CAN_Systems|How to use multiple CAN systems with one ASL device]]<br />
*[[Cool_Projects_and_Success_Stories|Cool Projects, Cool Features, and Success Stories using Race Capture devices]]<br />
*[[RaceCapturePro_FAQ|More FAQs and How-To's]]<br />
*[https://www.youtube.com/autosportlabs How To Videos]<br />
<br />
==Reference==<br />
*[[RaceCapturePro2_logfile_reference|Log file reference]]<br />
<br />
=Quick Start=<br />
==Powering Up==<br />
[[Image:RaceCapturePro_MK4_powering_options.jpg]]<br />
===Using optional OBDII cable (2008+ vehicles)===<br />
* Plug one end of the cable into the RaceCapture unit<br />
* Plug the other end of the cable into your car's OBDII port.<br />
* Power and OBDII data will be provided to RaceCapture/Pro.<br />
<br />
===Powering via 12v===<br />
Plug the supplied power + CAN data pigtail into the RaceCapture system. <br />
* Connect Red to 12v<br />
* Connect Black to Ground<br />
<br />
===Testing on the Bench===<br />
You can power RaceCapture/Pro with just the included USB cable. Simply plug one end into your computer, and the other end into the USB connection on the front of the unit. <br />
* '''Note''': When powering only with USB, the voltage reference output will only be at approximately 4.7 volts, which can cause a mis-reading of sensor values. When precise sensor readings are required, provide 12v power to RaceCapture.<br />
<br />
==Install the RaceCapture app==<br />
===On Desktop===<br />
*[https://podium.live/software Windows and OSX]<br />
<br />
=====USB Drivers=====<br />
*''' Windows 10/11''': Windows 10 has built in USB drivers that support RaceCapture; no separate driver installation needed.<br />
*'''Windows XP, 7, 8''': Not supported due to outdated video drivers, but may work depending on the video hardware used. USB drivers will require installation [[RaceCapture_App_User%27s_Guide#Microsoft_Windows_7.2F8_Driver_installation|instructions below.]]<br />
<br />
<br />
===On Mobile===<br />
[[image:google_play_amazon_itunes_app_store.png]]<br />
<br />
* [https://play.google.com/store/apps/details?id=com.autosportlabs.racecapture&hl=en Google Play]<br />
* [https://www.amazon.com/Autosport-Labs-Race-Capture/dp/B016ZJM7GE Amazon App Store]<br />
* [https://itunes.apple.com/us/app/racecapture/id1162797255?mt=8 iTunes]<br />
<br />
* '''Not sure what tablet to use? ''' [[RaceCapture_App_recommended_tablets|See our list of recommended tablets]]<br />
<br />
===On Raspberry Pi===<br />
[[image:Racecapture_raspberry_pi.jpg|400px]]<br />
<br />
More advanced users can run the RaceCapture App on a Raspberry pi for a more dedicated dashboard experience. <br />
* Learn more in the [[RaceCapture_on_Raspberry_Pi|Raspberry Pi Guide]]<br />
<br />
==Connect to your RaceCapture system (dashboard)==<br />
Use an Android, iOS or Raspberry Pi device as a dashboard in the car:<br />
<br />
===Bluetooth (Android Only)===<br />
In Android Settings, pair your device with the RaceCapture system.<br />
* '''Note''': Default bluetooth pin is 1234. You can change this later under Setup / Wireless in the app.<br />
<br />
===WiFi (iOS or Android)===<br />
In your mobile device WiFI settings, connect to the RaceCapture WiFi network.<br />
* By default, RaceCapture will setup a WiFi network starting with 'RaceCapture', with no password. You can immediately connect to this network.<br />
* '''Note''': You can change the WiFi password later under Setup / Wireless in the app.<br />
<br />
===Launch the RaceCapture app===<br />
Once you've linked the Bluetooth or WiFi (Mobile), or USB (Windows or OSX) launch the RaceCapture app.<br />
<br />
===Automatic Setup and Verifying Connectivity===<br />
The RaceCapture app will guide you through a brief automated setup and tour. During this process the connection to RaceCapture/Pro will be verified.<br />
<br />
[[image:racecapture_app_first_time_setup.gif|800px]]<br />
<br />
==Next Steps==<br />
===Using the RaceCapture app===<br />
See the [[RaceCapture_App_User%27s_Guide|RaceCapture App User's guide]] for a full tour of using the app and setting up your system.<br />
<br />
===Connecting sensors and accessories===<br />
See the [[Harness_specifications|Plug and Play harness guide]] to learn how sensors and devices connect to your system<br />
<br />
=Specifications=<br />
<br />
{| width="100%"<br />
| style="text-align: center" colspan="2" | '''Sensors'''<br />
|-<br />
| style="text-align: center" colspan="2" | '''Analog Inputs'''<br />
|-<br />
| Channels<br />
| 9 (8 external + 1 internal battery/supply voltage)<br />
|-<br />
| Voltage range<br />
| 0-5v<br />
|-<br />
| Input impedance<br />
| Greater than 1M ohm<br />
|-<br />
| Voltage Protection<br />
| 400v (intermittent)<br />
|-<br />
| ADC precision<br />
| 12 bit<br />
|-<br />
| Maximum sample rate<br />
| 1000Hz<br />
|-<br />
| Mapping<br />
| Raw / linear formula / interpolated map<br />
|-<br />
| style="text-align: center" colspan="2" | '''Digital I/O'''<br />
|-<br />
| Channels<br />
| 4<br />
|-<br />
| Output mode type<br />
| Open Drain<br />
|-<br />
| Output current capacity<br />
| 1A, inductively clamped<br />
|-<br />
| Input mode voltage range<br />
| 0-12v<br />
|-<br />
| Input voltage protection<br />
| 0-40v<br />
|-<br />
| Maximum sample rate<br />
| 1000Hz<br />
|-<br />
| style="text-align: center" colspan="2" | '''Timer inputs (RPM / Frequency)'''<br />
|-<br />
| Channels<br />
| 4<br />
|-<br />
| Voltage Protection<br />
| 400v (intermittent)<br />
|-<br />
| Maximum sample rate<br />
| 1000Hz<br />
|-<br />
| Mapping<br />
| RPM, Frequency<br />
|-<br />
| style="text-align: center" colspan="2" | '''Voltage Reference'''<br />
|-<br />
| Output Voltage / Capacity<br />
| 5v / 500mA<br />
|-<br />
| style="text-align: center" colspan="2" | '''CAN Bus'''<br />
|-<br />
| CAN Channels<br />
| 2<br />
|-<br />
| CAN baud rate<br />
| 125K, 250K, 500K, 1M Baud<br />
|-<br />
| CAN filters<br />
| 14 per channel<br />
|-<br />
| Protocol Support<br />
| OBDII PID, custom CAN mapping<br />
|-<br />
| CAN Bus<br />
| CAN 2.0 compatible, 1M baud<br />
|-<br />
| CAN termination<br />
| Software controlled<br />
|-<br />
| style="text-align: center" colspan="2" | '''Serial'''<br />
|-<br />
| Aux Serial<br />
| RS232<br />
|-<br />
| Max Baud Rate<br />
| 230400<br />
|-<br />
| style="text-align: center" colspan="2" | '''Cellular Telemetry (Optional)'''<br />
|-<br />
| Optional Cellular<br />
| 4G LTE worldwide compatible<br />
|-<br />
| Maximum Sample Rate<br />
| 10Hz<br />
|-<br />
| style="text-align: center" colspan="2" | '''Wireless'''<br />
|-<br />
| WiFi<br />
| 802.11bgn<br />
|-<br />
| WiFi Modes<br />
| Access Point, Infrastructure<br />
|-<br />
| Bluetooth<br />
| Bluetooth 2.0 EDR<br />
|-<br />
| Maximum Sample Rate<br />
| 50Hz (Bluetooth and WiFi)<br />
|-<br />
| style="text-align: center" colspan="2" | '''GNSS'''<br />
|-<br />
| Constellations Supported<br />
| GPS, GLONASS, BeiDou, Galileo<br />
|-<br />
| Antenna Type<br />
| External active antenna<br />
|-<br />
| Sample Rates supported<br />
| 1 / 5 / 10 / 25Hz<br />
|-<br />
| Accuracy<br />
| 2.5M CEP<br />
|-<br />
| style="text-align: center" colspan="2" | '''Inertial Motion Unit'''<br />
|-<br />
| Accelerometer Channels<br />
| 3 (X/Y/Z) (2G, 4G capable)<br />
|-<br />
| Gyro Channels<br />
| 3 (Yaw/Pitch/Roll) (1000 degrees/sec)<br />
|-<br />
| style="text-align: center" colspan="2" | '''Storage'''<br />
|-<br />
| Micro SD<br />
| Up to 32GB (SDHC)<br />
|-<br />
| CAN bus direct mapping<br />
| 100 direct CAN mapping channels<br />
|-<br />
| style="text-align: center" colspan="2" | '''Capabilities'''<br />
|-<br />
| Channel Support<br />
| 200<br />
|-<br />
| Predictive Lap Timing<br />
| Built-in<br />
|-<br />
| Track Mapping<br />
| Circut and point-point<br />
|-<br />
| Track maps<br />
| 200 built in for autonomous auto-detection; unlimited via RaceCapture app with interactive track map builder<br />
|-<br />
| Sectors per track<br />
| 20<br />
|-<br />
| Logging file format<br />
| Plain CSV<br />
|-<br />
| style="text-align: center" colspan="2" | '''Physical'''<br />
|-<br />
| Dimensions<br />
| 150 x 100 x 30mm (5.9 x 3.35 x 1.18in) enclosure; 5mm mounting ears on 140mm centers; Enclosure body 85mm (connectors extend 15mm beyond main enclosure body). <br />
|-<br />
| Temperature range<br />
| -40 to 85c<br />
|-<br />
| Environmental<br />
| Connectors: IP67 / enclosure IP51<br />
|-<br />
| Weight<br />
| 255g (12 oz)<br />
|-<br />
| Connectors<br />
| M12 12P female (Analog inputs); M12 12P female (Digital / RPM inputs); M8 6P female (CAN1/CAN2/Power); M8 4P female (CAN1/Power); SMA (GPS); RP-SMA (Cellular)<br />
|-<br />
| Power supply and Consumption (max)<br />
| System voltage: 9 - 24v (40v surge protection) / Power: Main System: 0.6W With Wireless: 1.6W With Cellular Telemetry: 8.6W With Cellular Telemetry and Wireless active: 9.6W<br />
|-<br />
| Recommended Fuse<br />
| 5A<br />
|}</div>Brentphttps://wiki.autosportlabs.com/index.php?title=ShiftX3&diff=9707ShiftX32023-09-05T04:56:57Z<p>Brentp: </p>
<hr />
<div>=Introduction=<br />
<br />
==Parts in the Kit==<br />
* ShiftX3<br />
<br />
[[image:shiftx3_3quarter.jpg|1024px]]<br />
<br />
==Compatibility==<br />
ShiftX3 is compatible with:<br />
* RaceCapture/Track MK2,MK3<br />
* RaceCapture/Pro MK2,MK3,MK4<br />
* RaceCapture/Apex<br />
* PodiumConnect MK1,MK2<br />
<br />
'''Note:''' Not compatible with RaceCapture/Track MK1.<br />
<br />
==Firmware Requirements==<br />
ShiftX3 requires RaceCapture/PodiumConnect firmware 2.15.0 or higher. [http://podium.live/software Download the latest firmware]<br />
<br />
=Connection and Installation=<br />
<br />
==Mounting ShiftX3==<br />
<br />
Attach ShiftX3 with #6 mounting screws and tighten until snug.<br />
<br />
* '''Note''': You can install with the 7 segment display above or below the LED strip; see the setup instructions for selecting the orientation.<br />
<br />
==Dimensions==<br />
* ShiftX3 with enclosure 136 x 32 x 9.46 mm (5.35 x 1.26 x .37 inches)<br />
* Enclosure DXF and PDF drawing [[file:ShiftX3_enclosure.zip]]<br />
<br />
[[image:ShiftX3_enclosure_dimensions.jpg|800px]]<br />
<br />
===Plug and Play connection===<br />
* '''Note:''' ShiftX3 requires 12v power, via RaceCapture's own power connection.<br />
<br />
ShiftX3 connects effortlessly into our plug and play connector system, using the recommended cabling accessories:<br />
<br />
* [https://www.autosportlabs.com/product/can1-can2-dual-can-splitter/ Dual CAN splitter]<br />
* [https://www.autosportlabs.com/product/can-bus-extension-cable/ CAN extension] (choose your desired length)<br />
* [https://www.autosportlabs.com/product/inline-can-terminator/ Inline CAN terminator]<br />
<br />
Connect the Dual CAN splitter into the CAN1/CAN2 port of your main system:<br />
<br />
[[file:dual_can_splitter_plugged_in.jpg|600px]]<br />
<br />
Then connect your CAN extension cable to the "B" port of the Dual CAN splitter:<br />
<br />
[[file:dual_CAN_splitter_closeup.jpg|600px]]<br />
<br />
At the opposite end of the CAN extension, attach the inline CAN terminator:<br />
<br />
[[file:inline_terminator_plugged_in.jpg|600px]]<br />
<br />
Finally, attach ShiftX3 to the other end of the Terminator to complete the installation.<br />
<br />
[[file:ShiftX3_with_terminator.jpg|600px]]<br />
<br />
===Direct wire connection===<br />
You can connect ShiftX3 into a non plug and play system by using the following cabling accessories:<br />
<br />
* [https://www.autosportlabs.com/product/can-power-pigtail-for-device/ Device Power+CAN Pigtail]<br />
* [https://www.autosportlabs.com/product/inline-can-terminator/ Inline CAN terminator]<br />
<br />
Connect the pigtail wires to your system:<br />
* Green to CAN2 High<br />
* White to CAN2 Low<br />
* Red to +12v (same power connection for your system)<br />
* Black to Ground (same ground connection for your system)<br />
<br />
Then connect the pigtail to the inline CAN terminator.<br />
<br />
Finally, attach ShiftX3 to the other end of the Terminator to complete the installation.<br />
<br />
=Using ShiftX3=<br />
The LEDs and display on ShiftX3 are controlled by RaceCapture's Lua scripting capabilities. Built-in functions provide access to ShiftX3's capabilities. See the [[RaceCapturePro_Lua_Scripting#ShiftX2.2F3_control|ShiftX3 Lua scripting reference]] for additional details.<br />
<br />
'''Note:''' Ready to go scripts may be available as a preset. When in the Scripting view, press the Presets button to access a list of pre-configured scripts. Be sure to press the cloud update button to get the latest set of presets. <br />
<br />
[[image:Lua_scripting_presets.png]]<br />
<br />
==Navigation Buttons==<br />
Once ShiftX3 is powered and connected via CAN bus, the left and right ShiftX3 buttons will automatically trigger corresponding left and right navigation actions on the RaceCapture dashboard.<br />
<br />
[file:https://i.imgur.com/CSQfW4s.gif]<br />
<br />
==Disco Lights Demo==<br />
This is a test script that exercises all of the LEDs and the 7 segment display on ShiftX3. You can use this as a first time test, as it does not rely on any sensors. <br />
<br />
===Script===<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
This script will randomly set LEDs with different colors and the display will update with random numbers.<br />
<br />
<pre><br />
setTickRate(10)<br />
<br />
function rndc()<br />
return math.random(0,255)<br />
end<br />
<br />
function onTick()<br />
for i=0,9,1 do<br />
sxSetLed(i,1,rndc(),rndc(),rndc(),0)<br />
end<br />
-- ascii characters between 0 and 9<br />
sxSetDisplay(0, math.random(0,9)) <br />
end<br />
</pre><br />
<br />
==Sequential shift light + Gear indicator==<br />
This script configures just a sequential shift light, and update gear display.<br />
<br />
===Script (Gear is calculated from RPM and Speed)===<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
* Default is reading RPM from the channel named "RPM"<br />
* Default is creating the Gear channel with the channel name "Gear"<br />
<br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--create gear channel<br />
gearId = addChannel("Gear", 10, 0, 0, 6)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0,7000) --left to right graph, smooth style, 0 - 7000 RPM range<br />
<br />
sxSetLinearThresh(0,0,3000,0,255,0,0) --green at 3000 RPM<br />
sxSetLinearThresh(1,0,5000,255,255,0,0) --yellow at 5000 RPM<br />
sxSetLinearThresh(2,0,6000,255,0,0,10) --red+flash at 6000 RPM<br />
<br />
function onTick()<br />
sxUpdateLinearGraph(getChannel("RPM"))<br />
<br />
-- calculate gear: tire diameter(cm), final gear ratio, individual gear ratios 1-6<br />
local gear = calcGear(62.7, 3.45, 4.23, 2.52, 1.66, 1.22, 1.0, 0.8)<br />
setChannel(gearId, gear)<br />
sxSetDisplay(0, gear)<br />
end<br />
</pre><br />
<br />
===Script (Gear is provided by an existing channel)===<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
* Default is reading RPM from the channel named "RPM"<br />
* Default is reading the Gear channel with the channel name "Gear"<br />
<br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0,7000) --left to right graph, smooth style, 0 - 7000 RPM range<br />
<br />
sxSetLinearThresh(0,0,3000,0,255,0,0) --green at 3000 RPM<br />
sxSetLinearThresh(1,0,5000,255,255,0,0) --yellow at 5000 RPM<br />
sxSetLinearThresh(2,0,6000,255,0,0,10) --red+flash at 6000 RPM<br />
<br />
function onTick()<br />
sxUpdateLinearGraph(getChannel("RPM"))<br />
sxSetDisplay(0, getChannel("Gear"))<br />
end<br />
</pre><br />
<br />
==Shift Light + Twin Alert + Gear Example (Gear calculated by RPM and Speed)==<br />
This script shows a more complete example that demos a sequential shift light + two alerts + Gear indicator.<br />
<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
Assumptions:<br />
* Engine Temperature on the 1st alert LED, connected to first analog channel - channel name "EngineTemp"<br />
* Oil Pressure on the 2nd alert LED, connected to second analog channel - channel name "OilPress"<br />
* Gear channel already exists, named "Gear"<br />
<br />
Edit the script to change the analog channels you want to monitor.<br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0,7000) --left to right graph, smooth style, 0 - 7000 RPM range<br />
<br />
sxSetLinearThresh(0,0,3000,0,255,0,0) --green at 3000 RPM<br />
sxSetLinearThresh(1,0,5000,255,255,0,0) --yellow at 5000 RPM<br />
sxSetLinearThresh(2,0,6000,255,0,0,10) --red+flash at 6000 RPM<br />
<br />
--configure first alert (right LED) as engine temperature (F)<br />
sxSetAlertThresh(0,0,205,255,255,0,0) --yellow warning at 205F<br />
sxSetAlertThresh(0,1,225,255,0,0,10) -- red flash at 225F<br />
<br />
--configure second alert (left LED) as oil pressure (PSI)<br />
sxSetAlertThresh(1,0,0,0,0,255,10) --red flash below 15 psi<br />
sxSetAlertThresh(1,1,15,255,255,0,5) --yellow flash 15-20 PSI<br />
sxSetAlertThresh(1,2,20,0,0,0,0) --above 20, no alert<br />
<br />
--create gear channel<br />
gearId = addChannel("Gear", 10, 0, 0, 6)<br />
<br />
function onTick()<br />
--update RPM<br />
sxUpdateLinearGraph(getChannel("RPM"))<br />
<br />
-- calculate gear: tire diameter(cm), final gear ratio, individual gear ratios 1-6<br />
local gear = calcGear(62.7, 3.45, 4.23, 2.52, 1.66, 1.22, 1.0, 0.8)<br />
setChannel(gearId, gear)<br />
sxSetDisplay(0, gear)<br />
<br />
--update engine temp alert<br />
sxUpdateAlert(0, getChannel("EngineTemp"))<br />
<br />
--update oil pressure alert<br />
sxUpdateAlert(1, getChannel("OilPress"))<br />
end</pre><br />
<br />
==Shift Light + Twin Alert + Gear Example (Existing gear channel provided by ECU)==<br />
This script shows a more complete example that demos a sequential shift light + two alerts. <br />
<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
Assumptions:<br />
* Engine Temperature on the 1st alert LED, connected to first analog channel - channel name "EngineTemp"<br />
* Oil Pressure on the 2nd alert LED, connected to second analog channel - channel name "OilPress"<br />
* Gear channel already exists (provided by ECU) and is named "Gear"<br />
<br />
Edit the script to change the analog channels you want to monitor.<br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0,7000) --left to right graph, smooth style, 0 - 7000 RPM range<br />
<br />
sxSetLinearThresh(0,0,3000,0,255,0,0) --green at 3000 RPM<br />
sxSetLinearThresh(1,0,5000,255,255,0,0) --yellow at 5000 RPM<br />
sxSetLinearThresh(2,0,6000,255,0,0,10) --red+flash at 6000 RPM<br />
<br />
--configure first alert (right LED) as engine temperature (F)<br />
sxSetAlertThresh(0,0,205,255,255,0,0) --yellow warning at 205F<br />
sxSetAlertThresh(0,1,225,255,0,0,10) -- red flash at 225F<br />
<br />
--configure second alert (left LED) as oil pressure (PSI)<br />
sxSetAlertThresh(1,0,0,0,0,255,10) --red flash below 15 psi<br />
sxSetAlertThresh(1,1,15,255,255,0,5) --yellow flash 15-20 PSI<br />
sxSetAlertThresh(1,2,20,0,0,0,0) --above 20, no alert<br />
<br />
function onTick()<br />
sxUpdateLinearGraph(getChannel("RPM"))<br />
sxSetDisplay(0, getChannel("Gear"))<br />
<br />
--update engine temp alert<br />
sxUpdateAlert(0, getChannel("EngineTemp"))<br />
<br />
--update oil pressure alert<br />
sxUpdateAlert(1, getChannel("OilPress"))<br />
end</pre><br />
<br />
==Predictive Lap Timer Indicator==<br />
This script enables predictive lap time visualization. <br />
<br />
===How it works===<br />
A bar extends left or right from the center of the linear graph:<br />
* Green bar extending to the right indicates you're beating the best time<br />
* Red bar extending to the left means you're falling behind. <br />
* When you're close to the best time, the center blue LED illuminates.<br />
<br />
<br />
'''Notes:'''<br />
* The script is designed for a +/- 10 second maximum delta - so if you're ahead or behind by 10 seconds, the linear graph will be fully illuminated center-right, or center-left.<br />
* You will need to complete a a full lap to train the predictive timer before the graph will update.<br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
<pre><br />
-- Predictive time visualizer<br />
<br />
--save best lap time<br />
bestTime = 0<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(1,0,0,200) --center-out graph, linear style, +/- 10.0 seconds in 0.1 sec resolution<br />
<br />
sxSetLinearThresh(0,0,0,255,0,0,0) --red if you're falling behind best lap<br />
sxSetLinearThresh(1,0,80,0,0,255,0) --blue if you're close to best lap<br />
sxSetLinearThresh(2,0,110,0,255,0,0) --green if you're beating best lap<br />
setTickRate(30)<br />
<br />
function onTick()<br />
local predTime = getPredTime()<br />
<br />
local timeDiff = (bestTime - predTime) * 60<br />
-- rail values <br />
timeDiff = math.max(timeDiff, -10)<br />
timeDiff = math.min(timeDiff, 10)<br />
--scale values from +/- 10 sec to a 0-200 scale<br />
timeDiff = (timeDiff + 10) * 10<br />
<br />
sxUpdateLinearGraph(timeDiff)<br />
<br />
--update best lap time if an updated lap time is available<br />
local lastLapTime = getLapTime()<br />
if lastLapTime < bestTime or bestTime == 0 then bestTime = lastLapTime end<br />
end<br />
</pre><br />
<br />
==Boost Gauge==<br />
This script visualizes a single analog input channel on the linear graph.<br />
<br />
===How it works===<br />
The script configures the linear graph, then reads an analog channel and updates the graph with the current value. In this case, the value represents boost level measured from a MAP sensor.<br />
<br />
===Assumptions===<br />
* MAP sensor is on the channel named "MAP"<br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0, 20) --left to right graph, linear style, 0 - 20 PSI boost<br />
<br />
sxSetLinearThresh(0,0,0,0,255,0,0) --green starting at no boost<br />
sxSetLinearThresh(1,0,10,255,255,0,0) --yellow starting at 10 PSI boost<br />
sxSetLinearThresh(2,0,15,255,0,0,10) --red+flash at 15 PSI boost<br />
<br />
function onTick()<br />
local map = getChannel("MAP")<br />
if map ~= nil then <br />
--convert to PSI boost<br />
local boost = math.max(map - 100, 0) * .145038<br />
sxUpdateLinearGraph(boost)<br />
end<br />
end<br />
</pre><br />
<br />
<!--<br />
==Only Alerts==<br />
This script enables 3 alert channels:<br />
* Left alert for oil pressure<br />
* Right alert for engine temperature<br />
* Center alert for Air/Fuel ratio<br />
<br />
===How it works===<br />
The script configures the left and right alert indicators, then configures the center graph to visualize safe and dangerous AFR ranges. During operation, the analog channels for oil pressure and engine temperature are read and updates the alert indicators. The AFR channel is read and updates the linear graph. <br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<pre><br />
function onTick()<br />
--implement me<br />
end<br />
</pre><br />
--><br />
<br />
=ShiftX3 CAN bus API=<br />
==Overview==<br />
The CAN bus API provides the configuration and control interface for ShiftX3. <br />
<br />
Two styles of control are available:<br />
* Low level control of LEDs - the ability to discretely set LED color and flash behavior<br />
* High level control - configuring alert thresholds and linear graph up front, and then providing simple value updates<br />
<br />
==Hardware / CAN configuration==<br />
===CAN Termination===<br />
CAN termination is disabled by default. To enable termination, bridge the '''CAN Term''' jumper on the bottom of the ShiftX3 circuit board.<br />
<br />
===CAN Base Address===<br />
The default CAN base address is 931328 (0xE3600). You can change it by breaking the trace bridging the ADR1 jumper on the bottom of the ShiftX3 circuit board.<br />
<br />
{| class="wikitable" style="text-align:center; width:700px; height:200px;"<br />
|+ ShiftX3 CAN bus base address setting<br />
|-<br />
! ADR1 jumper setting<br />
! Base address<br />
|-<br />
| Closed (Default setting)<br />
| 931328 (0xE3600)<br />
|-<br />
| Open <br />
| 931584 (0xE3700)<br />
|}<br />
<br />
===CAN Baud Rate===<br />
The default CAN baud rate is 1MB. You can switch to 500K by breaking the ADR2 Jumper on the bottom of the ShiftX3 board. <br />
<br />
{| class="wikitable" style="text-align:center; width:700px; height:200px;"<br />
|+ ShiftX3 CAN baud rate setting<br />
|-<br />
! ADR2 jumper setting<br />
! Baud Rate<br />
|-<br />
| Closed (Default setting)<br />
| 1MB<br />
|-<br />
| Open <br />
| 500K<br />
|}<br />
<br />
[[Image:ShiftXCanBaudRateJumper.jpg|700px]]<br />
<br />
==ShiftX3 CAN Protocol==<br />
<br />
===Configuration / Runtime Options===<br />
<br />
====Set Configuration Parameters Group 1====<br />
Sets various configuration options. <br />
<br />
'''CAN ID:''' Base + 3<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Brightness<br />
| 0 - 100; 1 = dimmest; 100 = brightest; 0 = automatic brightness control using built-in light sensor. <br />
|-<br />
| 1<br />
| Automatic brightness scaling (Optional)<br />
| 0-255; default=61. adjust this value to adjust the relative gain of the built-in light sensor when in automatic brightness mode.<br />
|-<br />
| 2<br />
| Display orientation<br />
| 0: 7-segment display is below shift light; 1: 7-segment display is above shift light<br />
<br />
|}<br />
<br />
====Set Display====<br />
Directly sets the value of the 7 segment display.<br />
<br />
'''CAN ID:''' Base + 50<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Digit index<br />
| 0 (must be 0)<br />
|-<br />
| 1<br />
| Character<br />
| ASCII value of character to display<br />
|}<br />
<br />
The value of the display is set by the ASCII coded value. To set a numeric value, offset the value by 48: e.g. 48 = 0, 49 = 1, etc.<br />
<br />
Most alphanumeric characters are supported as well, also via ASCII representation.<br />
<br />
====Set Discrete LED====<br />
A low level function to directly set any LED on the device.<br />
<br />
'''CAN ID:''' Base + 10<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| LED index<br />
| 0 -> # of LEDs on device<br />
|-<br />
| 1<br />
| Number of LEDs to set<br />
| 0 -> # of LEDs on device (0 = set all remaining)<br />
|-<br />
| 2<br />
| Red<br />
| 0 - 255<br />
|-<br />
| 3<br />
| Green<br />
| 0 - 255<br />
|-<br />
| 4<br />
| Blue<br />
| 0 - 255<br />
|-<br />
| 5<br />
| Flash<br />
| 0-10Hz (0 = full on)<br />
|}<br />
<br />
===Alert Indicators===<br />
Alert Indicators are typically single LEDs or a group of LEDs treated as one logical unit. This is defined by the hardware configuration of the device. <br />
<br />
====Set Alert====<br />
Directly set an alert indicator<br />
<br />
'''CAN ID:''' Base + 20<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Alert ID<br />
| 0 -> # of Alert indicators<br />
|-<br />
| 1<br />
| Red<br />
| 0 - 255<br />
|-<br />
| 2<br />
| Green<br />
| 0 - 255<br />
|-<br />
| 3<br />
| Blue<br />
| 0 - 255<br />
|-<br />
| 4<br />
| Flash<br />
| 0-10Hz (0 = full on)<br />
|}<br />
<br />
====Set Alert Threshold====<br />
Configures an alert threshold. Up to 5 thresholds can be configured per alert indicator.<br />
<br />
Notes:<br />
* If the current value is greater than the last threshold, then the last threshold is selected.<br />
* The first threshold may have a threshold value >= 0; remaining thresholds must be > 0<br />
<br />
'''CAN ID:''' Base + 21<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Alert ID<br />
| 0 -> # of Alert indicators<br />
|-<br />
| 1<br />
| Threshold ID<br />
| 0 - 4<br />
|-<br />
| 2<br />
| Threshold (low byte)<br />
| <br />
|-<br />
| 3<br />
| Threshold (high byte)<br />
| <br />
|-<br />
| 4<br />
| Red<br />
| 0 - 255<br />
|-<br />
| 5<br />
| Green<br />
| 0 - 255<br />
|-<br />
| 6<br />
| Blue<br />
| 0 - 255<br />
|-<br />
| 7<br />
| Flash Hz<br />
| 0 - 10 (0 = full on)<br />
|}<br />
<br />
====Update Current Alert Value====<br />
<br />
Updates the current value for an alert indicator. The configured alert thresholds will be applied to the current value.<br />
<br />
'''CAN ID:''' Base + 22<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Alert ID<br />
| 0 -> # of Alert indicators<br />
|-<br />
| 1<br />
| Value (low byte)<br />
| <br />
|-<br />
| 2<br />
| Value (high byte)<br />
|<br />
|}<br />
<br />
===Linear Graph===<br />
The linear graph mode provides visualizations for common scenarios:<br />
* Sequential RPM shift light where the progression is stepped<br />
* Linear bar graph to linearly indicate a sensor value<br />
* Center left/right graph to indicate +/- performance against a reference - such as visualizing current predictive time vs best time<br />
<br />
====Power up default configuration====<br />
Upon power up the linear graph is configured:<br />
* Rendering style: left->right<br />
* Linear style: stepped<br />
* Low Range: 0<br />
* High Range: N/A<br />
* Threshold : <br />
** Threshold value: 3000 / segment length: 3 / color RGB: (0, 255, 0) / flash: 0<br />
** Threshold value: 5000 / segment length: 5 / color RGB: (0, 255, 255) / flash: 0<br />
** Threshold value: 7000 / segment length: 7 / color RGB: (255, 0, 0) / flash: 5<br />
<br />
====Configure Linear Graph====<br />
Configures the options for the linear graph portion of the device.<br />
<br />
'''Rendering style:'''<br />
* If left->right, linear graph illuminates left to right<br />
* If centered, values below the mid-point in the range extend from the center to the left, and values above the mid-point extend from the center to the right.<br />
* If right->left, linear graph illuminates right to left<br />
<br />
'''Linear style:''' <br />
* if smooth, graph length is updated smoothly by interpolating the current value in-between LEDs<br />
* If stepped, creates the visual effect of stepped progressions by setting the segment length of the threshold configuration. High Range of configuration is ignored. <br />
<br />
<br />
'''CAN ID:''' Base + 40<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Rendering Style<br />
| 0 = left->right, 1=center, 2=right->left<br />
|-<br />
| 1<br />
| Linear Style<br />
| 0 = Smooth / interpolated, 1 = stepped<br />
|-<br />
| 2<br />
| Low Range (low byte)<br />
| <br />
|-<br />
| 3<br />
| Low Range (high byte)<br />
| <br />
|-<br />
| 4<br />
| High Range (low byte)<br />
| (ignored if linear style = stepped)<br />
|-<br />
| 5<br />
| High Range (high byte)<br />
| (ignored if linear style = stepped)<br />
|}<br />
<br />
====Set Linear Graph Threshold====<br />
Configures a linear threshold. Up to 5 thresholds can be configured<br />
<br />
Notes:<br />
* If the current value is greater than the last threshold, then the last threshold is selected.<br />
* The first threshold may have a threshold value >= 0; remaining thresholds must be > 0<br />
<br />
'''CAN ID:''' Base + 41<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Threshold ID<br />
| 0 - 4<br />
|-<br />
| 1<br />
| Segment Length<br />
| 0 -> # of LEDs on device (ignored if linear style is ‘smooth’)<br />
|-<br />
| 2<br />
| Threshold (low byte)<br />
|<br />
|-<br />
| 3<br />
| Threshold (high byte)<br />
|<br />
|-<br />
| 4<br />
| Red<br />
| 0 - 255<br />
|-<br />
| 5<br />
| Green<br />
| 0 - 255<br />
|-<br />
| 6<br />
| Blue<br />
| 0 - 255<br />
|-<br />
| 7<br />
| Flash Hz<br />
| 0 - 10 (0 = full on)<br />
|}<br />
<br />
====Update Current Linear Graph Value====<br />
<br />
Updates the current value for the linear graph<br />
<br />
'''CAN ID:''' Base + 42<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Value (low byte)<br />
|<br />
|-<br />
| 1<br />
| Value (high byte)<br />
|<br />
|}<br />
<br />
===Notifications===<br />
Notifications related to events broadcasted from ShiftX3<br />
<br />
====Announcement====<br />
<br />
Broadcast by the device upon power up<br />
<br />
'''CAN ID:''' Base + 0<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Total LEDs<br />
| Total number of LEDs on the device<br />
|-<br />
| 1<br />
| Alert Indicators<br />
| Number of logical alert indicators<br />
|-<br />
| 2<br />
| Linear Bar Graph Length<br />
| Number of LEDs in linear graph<br />
|-<br />
| 3<br />
| Major Version<br />
| Firmware major version number <br />
|-<br />
| 4<br />
| Minor Version<br />
| Firmware minor version number<br />
|-<br />
| 5<br />
| Patch Version<br />
| Firmware patch version number<br />
|}<br />
<br />
====Statistics====<br />
Statistics information, broadcast periodically by device<br />
<br />
'''CAN ID:''' Base + 2<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Major Version<br />
| Firmware major version number <br />
|-<br />
| 1<br />
| Minor Version<br />
| Firmware minor version number<br />
|-<br />
| 2<br />
| Patch Version<br />
| Firmware patch version number<br />
|}<br />
<br />
====Button State====<br />
Indicates a change in the button state<br />
<br />
'''CAN ID:''' Base + 60<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Button state<br />
| 1 = button is pressed; 0 = button<br />
|-<br />
| 1<br />
| Button ID<br />
| ID of button<br />
<br />
|}</div>Brentphttps://wiki.autosportlabs.com/index.php?title=ShiftX3&diff=9706ShiftX32023-09-05T04:56:21Z<p>Brentp: /* Dimensions */</p>
<hr />
<div>=Introduction=<br />
<br />
==Parts in the Kit==<br />
* ShiftX3<br />
<br />
[[image:shiftx3_3quarter.jpg|1024px]]<br />
<br />
==Dimensions==<br />
* ShiftX3 with enclosure 136 x 32 x 9.46 mm (5.35 x 1.26 x .37 inches)<br />
* Enclosure DXF and PDF drawing [[file:ShiftX3_enclosure.zip]]<br />
<br />
[[image:ShiftX3_enclosure_dimensions.jpg|800px]]<br />
<br />
==Compatibility==<br />
ShiftX3 is compatible with:<br />
* RaceCapture/Track MK2,MK3<br />
* RaceCapture/Pro MK2,MK3,MK4<br />
* RaceCapture/Apex<br />
* PodiumConnect MK1,MK2<br />
<br />
'''Note:''' Not compatible with RaceCapture/Track MK1.<br />
<br />
==Firmware Requirements==<br />
ShiftX3 requires RaceCapture/PodiumConnect firmware 2.15.0 or higher. [http://podium.live/software Download the latest firmware]<br />
<br />
=Connection and Installation=<br />
<br />
==Mounting ShiftX3==<br />
<br />
Attach ShiftX3 with #6 mounting screws and tighten until snug.<br />
<br />
* '''Note''': You can install with the 7 segment display above or below the LED strip; see the setup instructions for selecting the orientation.<br />
<br />
===Plug and Play connection===<br />
* '''Note:''' ShiftX3 requires 12v power, via RaceCapture's own power connection.<br />
<br />
ShiftX3 connects effortlessly into our plug and play connector system, using the recommended cabling accessories:<br />
<br />
* [https://www.autosportlabs.com/product/can1-can2-dual-can-splitter/ Dual CAN splitter]<br />
* [https://www.autosportlabs.com/product/can-bus-extension-cable/ CAN extension] (choose your desired length)<br />
* [https://www.autosportlabs.com/product/inline-can-terminator/ Inline CAN terminator]<br />
<br />
Connect the Dual CAN splitter into the CAN1/CAN2 port of your main system:<br />
<br />
[[file:dual_can_splitter_plugged_in.jpg|600px]]<br />
<br />
Then connect your CAN extension cable to the "B" port of the Dual CAN splitter:<br />
<br />
[[file:dual_CAN_splitter_closeup.jpg|600px]]<br />
<br />
At the opposite end of the CAN extension, attach the inline CAN terminator:<br />
<br />
[[file:inline_terminator_plugged_in.jpg|600px]]<br />
<br />
Finally, attach ShiftX3 to the other end of the Terminator to complete the installation.<br />
<br />
[[file:ShiftX3_with_terminator.jpg|600px]]<br />
<br />
===Direct wire connection===<br />
You can connect ShiftX3 into a non plug and play system by using the following cabling accessories:<br />
<br />
* [https://www.autosportlabs.com/product/can-power-pigtail-for-device/ Device Power+CAN Pigtail]<br />
* [https://www.autosportlabs.com/product/inline-can-terminator/ Inline CAN terminator]<br />
<br />
Connect the pigtail wires to your system:<br />
* Green to CAN2 High<br />
* White to CAN2 Low<br />
* Red to +12v (same power connection for your system)<br />
* Black to Ground (same ground connection for your system)<br />
<br />
Then connect the pigtail to the inline CAN terminator.<br />
<br />
Finally, attach ShiftX3 to the other end of the Terminator to complete the installation.<br />
<br />
=Using ShiftX3=<br />
The LEDs and display on ShiftX3 are controlled by RaceCapture's Lua scripting capabilities. Built-in functions provide access to ShiftX3's capabilities. See the [[RaceCapturePro_Lua_Scripting#ShiftX2.2F3_control|ShiftX3 Lua scripting reference]] for additional details.<br />
<br />
'''Note:''' Ready to go scripts may be available as a preset. When in the Scripting view, press the Presets button to access a list of pre-configured scripts. Be sure to press the cloud update button to get the latest set of presets. <br />
<br />
[[image:Lua_scripting_presets.png]]<br />
<br />
==Navigation Buttons==<br />
Once ShiftX3 is powered and connected via CAN bus, the left and right ShiftX3 buttons will automatically trigger corresponding left and right navigation actions on the RaceCapture dashboard.<br />
<br />
[file:https://i.imgur.com/CSQfW4s.gif]<br />
<br />
==Disco Lights Demo==<br />
This is a test script that exercises all of the LEDs and the 7 segment display on ShiftX3. You can use this as a first time test, as it does not rely on any sensors. <br />
<br />
===Script===<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
This script will randomly set LEDs with different colors and the display will update with random numbers.<br />
<br />
<pre><br />
setTickRate(10)<br />
<br />
function rndc()<br />
return math.random(0,255)<br />
end<br />
<br />
function onTick()<br />
for i=0,9,1 do<br />
sxSetLed(i,1,rndc(),rndc(),rndc(),0)<br />
end<br />
-- ascii characters between 0 and 9<br />
sxSetDisplay(0, math.random(0,9)) <br />
end<br />
</pre><br />
<br />
==Sequential shift light + Gear indicator==<br />
This script configures just a sequential shift light, and update gear display.<br />
<br />
===Script (Gear is calculated from RPM and Speed)===<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
* Default is reading RPM from the channel named "RPM"<br />
* Default is creating the Gear channel with the channel name "Gear"<br />
<br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--create gear channel<br />
gearId = addChannel("Gear", 10, 0, 0, 6)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0,7000) --left to right graph, smooth style, 0 - 7000 RPM range<br />
<br />
sxSetLinearThresh(0,0,3000,0,255,0,0) --green at 3000 RPM<br />
sxSetLinearThresh(1,0,5000,255,255,0,0) --yellow at 5000 RPM<br />
sxSetLinearThresh(2,0,6000,255,0,0,10) --red+flash at 6000 RPM<br />
<br />
function onTick()<br />
sxUpdateLinearGraph(getChannel("RPM"))<br />
<br />
-- calculate gear: tire diameter(cm), final gear ratio, individual gear ratios 1-6<br />
local gear = calcGear(62.7, 3.45, 4.23, 2.52, 1.66, 1.22, 1.0, 0.8)<br />
setChannel(gearId, gear)<br />
sxSetDisplay(0, gear)<br />
end<br />
</pre><br />
<br />
===Script (Gear is provided by an existing channel)===<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
* Default is reading RPM from the channel named "RPM"<br />
* Default is reading the Gear channel with the channel name "Gear"<br />
<br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0,7000) --left to right graph, smooth style, 0 - 7000 RPM range<br />
<br />
sxSetLinearThresh(0,0,3000,0,255,0,0) --green at 3000 RPM<br />
sxSetLinearThresh(1,0,5000,255,255,0,0) --yellow at 5000 RPM<br />
sxSetLinearThresh(2,0,6000,255,0,0,10) --red+flash at 6000 RPM<br />
<br />
function onTick()<br />
sxUpdateLinearGraph(getChannel("RPM"))<br />
sxSetDisplay(0, getChannel("Gear"))<br />
end<br />
</pre><br />
<br />
==Shift Light + Twin Alert + Gear Example (Gear calculated by RPM and Speed)==<br />
This script shows a more complete example that demos a sequential shift light + two alerts + Gear indicator.<br />
<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
Assumptions:<br />
* Engine Temperature on the 1st alert LED, connected to first analog channel - channel name "EngineTemp"<br />
* Oil Pressure on the 2nd alert LED, connected to second analog channel - channel name "OilPress"<br />
* Gear channel already exists, named "Gear"<br />
<br />
Edit the script to change the analog channels you want to monitor.<br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0,7000) --left to right graph, smooth style, 0 - 7000 RPM range<br />
<br />
sxSetLinearThresh(0,0,3000,0,255,0,0) --green at 3000 RPM<br />
sxSetLinearThresh(1,0,5000,255,255,0,0) --yellow at 5000 RPM<br />
sxSetLinearThresh(2,0,6000,255,0,0,10) --red+flash at 6000 RPM<br />
<br />
--configure first alert (right LED) as engine temperature (F)<br />
sxSetAlertThresh(0,0,205,255,255,0,0) --yellow warning at 205F<br />
sxSetAlertThresh(0,1,225,255,0,0,10) -- red flash at 225F<br />
<br />
--configure second alert (left LED) as oil pressure (PSI)<br />
sxSetAlertThresh(1,0,0,0,0,255,10) --red flash below 15 psi<br />
sxSetAlertThresh(1,1,15,255,255,0,5) --yellow flash 15-20 PSI<br />
sxSetAlertThresh(1,2,20,0,0,0,0) --above 20, no alert<br />
<br />
--create gear channel<br />
gearId = addChannel("Gear", 10, 0, 0, 6)<br />
<br />
function onTick()<br />
--update RPM<br />
sxUpdateLinearGraph(getChannel("RPM"))<br />
<br />
-- calculate gear: tire diameter(cm), final gear ratio, individual gear ratios 1-6<br />
local gear = calcGear(62.7, 3.45, 4.23, 2.52, 1.66, 1.22, 1.0, 0.8)<br />
setChannel(gearId, gear)<br />
sxSetDisplay(0, gear)<br />
<br />
--update engine temp alert<br />
sxUpdateAlert(0, getChannel("EngineTemp"))<br />
<br />
--update oil pressure alert<br />
sxUpdateAlert(1, getChannel("OilPress"))<br />
end</pre><br />
<br />
==Shift Light + Twin Alert + Gear Example (Existing gear channel provided by ECU)==<br />
This script shows a more complete example that demos a sequential shift light + two alerts. <br />
<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
Assumptions:<br />
* Engine Temperature on the 1st alert LED, connected to first analog channel - channel name "EngineTemp"<br />
* Oil Pressure on the 2nd alert LED, connected to second analog channel - channel name "OilPress"<br />
* Gear channel already exists (provided by ECU) and is named "Gear"<br />
<br />
Edit the script to change the analog channels you want to monitor.<br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0,7000) --left to right graph, smooth style, 0 - 7000 RPM range<br />
<br />
sxSetLinearThresh(0,0,3000,0,255,0,0) --green at 3000 RPM<br />
sxSetLinearThresh(1,0,5000,255,255,0,0) --yellow at 5000 RPM<br />
sxSetLinearThresh(2,0,6000,255,0,0,10) --red+flash at 6000 RPM<br />
<br />
--configure first alert (right LED) as engine temperature (F)<br />
sxSetAlertThresh(0,0,205,255,255,0,0) --yellow warning at 205F<br />
sxSetAlertThresh(0,1,225,255,0,0,10) -- red flash at 225F<br />
<br />
--configure second alert (left LED) as oil pressure (PSI)<br />
sxSetAlertThresh(1,0,0,0,0,255,10) --red flash below 15 psi<br />
sxSetAlertThresh(1,1,15,255,255,0,5) --yellow flash 15-20 PSI<br />
sxSetAlertThresh(1,2,20,0,0,0,0) --above 20, no alert<br />
<br />
function onTick()<br />
sxUpdateLinearGraph(getChannel("RPM"))<br />
sxSetDisplay(0, getChannel("Gear"))<br />
<br />
--update engine temp alert<br />
sxUpdateAlert(0, getChannel("EngineTemp"))<br />
<br />
--update oil pressure alert<br />
sxUpdateAlert(1, getChannel("OilPress"))<br />
end</pre><br />
<br />
==Predictive Lap Timer Indicator==<br />
This script enables predictive lap time visualization. <br />
<br />
===How it works===<br />
A bar extends left or right from the center of the linear graph:<br />
* Green bar extending to the right indicates you're beating the best time<br />
* Red bar extending to the left means you're falling behind. <br />
* When you're close to the best time, the center blue LED illuminates.<br />
<br />
<br />
'''Notes:'''<br />
* The script is designed for a +/- 10 second maximum delta - so if you're ahead or behind by 10 seconds, the linear graph will be fully illuminated center-right, or center-left.<br />
* You will need to complete a a full lap to train the predictive timer before the graph will update.<br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
<pre><br />
-- Predictive time visualizer<br />
<br />
--save best lap time<br />
bestTime = 0<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(1,0,0,200) --center-out graph, linear style, +/- 10.0 seconds in 0.1 sec resolution<br />
<br />
sxSetLinearThresh(0,0,0,255,0,0,0) --red if you're falling behind best lap<br />
sxSetLinearThresh(1,0,80,0,0,255,0) --blue if you're close to best lap<br />
sxSetLinearThresh(2,0,110,0,255,0,0) --green if you're beating best lap<br />
setTickRate(30)<br />
<br />
function onTick()<br />
local predTime = getPredTime()<br />
<br />
local timeDiff = (bestTime - predTime) * 60<br />
-- rail values <br />
timeDiff = math.max(timeDiff, -10)<br />
timeDiff = math.min(timeDiff, 10)<br />
--scale values from +/- 10 sec to a 0-200 scale<br />
timeDiff = (timeDiff + 10) * 10<br />
<br />
sxUpdateLinearGraph(timeDiff)<br />
<br />
--update best lap time if an updated lap time is available<br />
local lastLapTime = getLapTime()<br />
if lastLapTime < bestTime or bestTime == 0 then bestTime = lastLapTime end<br />
end<br />
</pre><br />
<br />
==Boost Gauge==<br />
This script visualizes a single analog input channel on the linear graph.<br />
<br />
===How it works===<br />
The script configures the linear graph, then reads an analog channel and updates the graph with the current value. In this case, the value represents boost level measured from a MAP sensor.<br />
<br />
===Assumptions===<br />
* MAP sensor is on the channel named "MAP"<br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0, 20) --left to right graph, linear style, 0 - 20 PSI boost<br />
<br />
sxSetLinearThresh(0,0,0,0,255,0,0) --green starting at no boost<br />
sxSetLinearThresh(1,0,10,255,255,0,0) --yellow starting at 10 PSI boost<br />
sxSetLinearThresh(2,0,15,255,0,0,10) --red+flash at 15 PSI boost<br />
<br />
function onTick()<br />
local map = getChannel("MAP")<br />
if map ~= nil then <br />
--convert to PSI boost<br />
local boost = math.max(map - 100, 0) * .145038<br />
sxUpdateLinearGraph(boost)<br />
end<br />
end<br />
</pre><br />
<br />
<!--<br />
==Only Alerts==<br />
This script enables 3 alert channels:<br />
* Left alert for oil pressure<br />
* Right alert for engine temperature<br />
* Center alert for Air/Fuel ratio<br />
<br />
===How it works===<br />
The script configures the left and right alert indicators, then configures the center graph to visualize safe and dangerous AFR ranges. During operation, the analog channels for oil pressure and engine temperature are read and updates the alert indicators. The AFR channel is read and updates the linear graph. <br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<pre><br />
function onTick()<br />
--implement me<br />
end<br />
</pre><br />
--><br />
<br />
=ShiftX3 CAN bus API=<br />
==Overview==<br />
The CAN bus API provides the configuration and control interface for ShiftX3. <br />
<br />
Two styles of control are available:<br />
* Low level control of LEDs - the ability to discretely set LED color and flash behavior<br />
* High level control - configuring alert thresholds and linear graph up front, and then providing simple value updates<br />
<br />
==Hardware / CAN configuration==<br />
===CAN Termination===<br />
CAN termination is disabled by default. To enable termination, bridge the '''CAN Term''' jumper on the bottom of the ShiftX3 circuit board.<br />
<br />
===CAN Base Address===<br />
The default CAN base address is 931328 (0xE3600). You can change it by breaking the trace bridging the ADR1 jumper on the bottom of the ShiftX3 circuit board.<br />
<br />
{| class="wikitable" style="text-align:center; width:700px; height:200px;"<br />
|+ ShiftX3 CAN bus base address setting<br />
|-<br />
! ADR1 jumper setting<br />
! Base address<br />
|-<br />
| Closed (Default setting)<br />
| 931328 (0xE3600)<br />
|-<br />
| Open <br />
| 931584 (0xE3700)<br />
|}<br />
<br />
===CAN Baud Rate===<br />
The default CAN baud rate is 1MB. You can switch to 500K by breaking the ADR2 Jumper on the bottom of the ShiftX3 board. <br />
<br />
{| class="wikitable" style="text-align:center; width:700px; height:200px;"<br />
|+ ShiftX3 CAN baud rate setting<br />
|-<br />
! ADR2 jumper setting<br />
! Baud Rate<br />
|-<br />
| Closed (Default setting)<br />
| 1MB<br />
|-<br />
| Open <br />
| 500K<br />
|}<br />
<br />
[[Image:ShiftXCanBaudRateJumper.jpg|700px]]<br />
<br />
==ShiftX3 CAN Protocol==<br />
<br />
===Configuration / Runtime Options===<br />
<br />
====Set Configuration Parameters Group 1====<br />
Sets various configuration options. <br />
<br />
'''CAN ID:''' Base + 3<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Brightness<br />
| 0 - 100; 1 = dimmest; 100 = brightest; 0 = automatic brightness control using built-in light sensor. <br />
|-<br />
| 1<br />
| Automatic brightness scaling (Optional)<br />
| 0-255; default=61. adjust this value to adjust the relative gain of the built-in light sensor when in automatic brightness mode.<br />
|-<br />
| 2<br />
| Display orientation<br />
| 0: 7-segment display is below shift light; 1: 7-segment display is above shift light<br />
<br />
|}<br />
<br />
====Set Display====<br />
Directly sets the value of the 7 segment display.<br />
<br />
'''CAN ID:''' Base + 50<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Digit index<br />
| 0 (must be 0)<br />
|-<br />
| 1<br />
| Character<br />
| ASCII value of character to display<br />
|}<br />
<br />
The value of the display is set by the ASCII coded value. To set a numeric value, offset the value by 48: e.g. 48 = 0, 49 = 1, etc.<br />
<br />
Most alphanumeric characters are supported as well, also via ASCII representation.<br />
<br />
====Set Discrete LED====<br />
A low level function to directly set any LED on the device.<br />
<br />
'''CAN ID:''' Base + 10<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| LED index<br />
| 0 -> # of LEDs on device<br />
|-<br />
| 1<br />
| Number of LEDs to set<br />
| 0 -> # of LEDs on device (0 = set all remaining)<br />
|-<br />
| 2<br />
| Red<br />
| 0 - 255<br />
|-<br />
| 3<br />
| Green<br />
| 0 - 255<br />
|-<br />
| 4<br />
| Blue<br />
| 0 - 255<br />
|-<br />
| 5<br />
| Flash<br />
| 0-10Hz (0 = full on)<br />
|}<br />
<br />
===Alert Indicators===<br />
Alert Indicators are typically single LEDs or a group of LEDs treated as one logical unit. This is defined by the hardware configuration of the device. <br />
<br />
====Set Alert====<br />
Directly set an alert indicator<br />
<br />
'''CAN ID:''' Base + 20<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Alert ID<br />
| 0 -> # of Alert indicators<br />
|-<br />
| 1<br />
| Red<br />
| 0 - 255<br />
|-<br />
| 2<br />
| Green<br />
| 0 - 255<br />
|-<br />
| 3<br />
| Blue<br />
| 0 - 255<br />
|-<br />
| 4<br />
| Flash<br />
| 0-10Hz (0 = full on)<br />
|}<br />
<br />
====Set Alert Threshold====<br />
Configures an alert threshold. Up to 5 thresholds can be configured per alert indicator.<br />
<br />
Notes:<br />
* If the current value is greater than the last threshold, then the last threshold is selected.<br />
* The first threshold may have a threshold value >= 0; remaining thresholds must be > 0<br />
<br />
'''CAN ID:''' Base + 21<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Alert ID<br />
| 0 -> # of Alert indicators<br />
|-<br />
| 1<br />
| Threshold ID<br />
| 0 - 4<br />
|-<br />
| 2<br />
| Threshold (low byte)<br />
| <br />
|-<br />
| 3<br />
| Threshold (high byte)<br />
| <br />
|-<br />
| 4<br />
| Red<br />
| 0 - 255<br />
|-<br />
| 5<br />
| Green<br />
| 0 - 255<br />
|-<br />
| 6<br />
| Blue<br />
| 0 - 255<br />
|-<br />
| 7<br />
| Flash Hz<br />
| 0 - 10 (0 = full on)<br />
|}<br />
<br />
====Update Current Alert Value====<br />
<br />
Updates the current value for an alert indicator. The configured alert thresholds will be applied to the current value.<br />
<br />
'''CAN ID:''' Base + 22<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Alert ID<br />
| 0 -> # of Alert indicators<br />
|-<br />
| 1<br />
| Value (low byte)<br />
| <br />
|-<br />
| 2<br />
| Value (high byte)<br />
|<br />
|}<br />
<br />
===Linear Graph===<br />
The linear graph mode provides visualizations for common scenarios:<br />
* Sequential RPM shift light where the progression is stepped<br />
* Linear bar graph to linearly indicate a sensor value<br />
* Center left/right graph to indicate +/- performance against a reference - such as visualizing current predictive time vs best time<br />
<br />
====Power up default configuration====<br />
Upon power up the linear graph is configured:<br />
* Rendering style: left->right<br />
* Linear style: stepped<br />
* Low Range: 0<br />
* High Range: N/A<br />
* Threshold : <br />
** Threshold value: 3000 / segment length: 3 / color RGB: (0, 255, 0) / flash: 0<br />
** Threshold value: 5000 / segment length: 5 / color RGB: (0, 255, 255) / flash: 0<br />
** Threshold value: 7000 / segment length: 7 / color RGB: (255, 0, 0) / flash: 5<br />
<br />
====Configure Linear Graph====<br />
Configures the options for the linear graph portion of the device.<br />
<br />
'''Rendering style:'''<br />
* If left->right, linear graph illuminates left to right<br />
* If centered, values below the mid-point in the range extend from the center to the left, and values above the mid-point extend from the center to the right.<br />
* If right->left, linear graph illuminates right to left<br />
<br />
'''Linear style:''' <br />
* if smooth, graph length is updated smoothly by interpolating the current value in-between LEDs<br />
* If stepped, creates the visual effect of stepped progressions by setting the segment length of the threshold configuration. High Range of configuration is ignored. <br />
<br />
<br />
'''CAN ID:''' Base + 40<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Rendering Style<br />
| 0 = left->right, 1=center, 2=right->left<br />
|-<br />
| 1<br />
| Linear Style<br />
| 0 = Smooth / interpolated, 1 = stepped<br />
|-<br />
| 2<br />
| Low Range (low byte)<br />
| <br />
|-<br />
| 3<br />
| Low Range (high byte)<br />
| <br />
|-<br />
| 4<br />
| High Range (low byte)<br />
| (ignored if linear style = stepped)<br />
|-<br />
| 5<br />
| High Range (high byte)<br />
| (ignored if linear style = stepped)<br />
|}<br />
<br />
====Set Linear Graph Threshold====<br />
Configures a linear threshold. Up to 5 thresholds can be configured<br />
<br />
Notes:<br />
* If the current value is greater than the last threshold, then the last threshold is selected.<br />
* The first threshold may have a threshold value >= 0; remaining thresholds must be > 0<br />
<br />
'''CAN ID:''' Base + 41<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Threshold ID<br />
| 0 - 4<br />
|-<br />
| 1<br />
| Segment Length<br />
| 0 -> # of LEDs on device (ignored if linear style is ‘smooth’)<br />
|-<br />
| 2<br />
| Threshold (low byte)<br />
|<br />
|-<br />
| 3<br />
| Threshold (high byte)<br />
|<br />
|-<br />
| 4<br />
| Red<br />
| 0 - 255<br />
|-<br />
| 5<br />
| Green<br />
| 0 - 255<br />
|-<br />
| 6<br />
| Blue<br />
| 0 - 255<br />
|-<br />
| 7<br />
| Flash Hz<br />
| 0 - 10 (0 = full on)<br />
|}<br />
<br />
====Update Current Linear Graph Value====<br />
<br />
Updates the current value for the linear graph<br />
<br />
'''CAN ID:''' Base + 42<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Value (low byte)<br />
|<br />
|-<br />
| 1<br />
| Value (high byte)<br />
|<br />
|}<br />
<br />
===Notifications===<br />
Notifications related to events broadcasted from ShiftX3<br />
<br />
====Announcement====<br />
<br />
Broadcast by the device upon power up<br />
<br />
'''CAN ID:''' Base + 0<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Total LEDs<br />
| Total number of LEDs on the device<br />
|-<br />
| 1<br />
| Alert Indicators<br />
| Number of logical alert indicators<br />
|-<br />
| 2<br />
| Linear Bar Graph Length<br />
| Number of LEDs in linear graph<br />
|-<br />
| 3<br />
| Major Version<br />
| Firmware major version number <br />
|-<br />
| 4<br />
| Minor Version<br />
| Firmware minor version number<br />
|-<br />
| 5<br />
| Patch Version<br />
| Firmware patch version number<br />
|}<br />
<br />
====Statistics====<br />
Statistics information, broadcast periodically by device<br />
<br />
'''CAN ID:''' Base + 2<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Major Version<br />
| Firmware major version number <br />
|-<br />
| 1<br />
| Minor Version<br />
| Firmware minor version number<br />
|-<br />
| 2<br />
| Patch Version<br />
| Firmware patch version number<br />
|}<br />
<br />
====Button State====<br />
Indicates a change in the button state<br />
<br />
'''CAN ID:''' Base + 60<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Button state<br />
| 1 = button is pressed; 0 = button<br />
|-<br />
| 1<br />
| Button ID<br />
| ID of button<br />
<br />
|}</div>Brentphttps://wiki.autosportlabs.com/index.php?title=ShiftX3&diff=9705ShiftX32023-09-05T04:54:38Z<p>Brentp: /* Dimensions */</p>
<hr />
<div>=Introduction=<br />
<br />
==Parts in the Kit==<br />
* ShiftX3<br />
<br />
[[image:shiftx3_3quarter.jpg|1024px]]<br />
<br />
==Dimensions==<br />
* ShiftX3 with enclosure 136 x 32 x 9.46 mm (5.35 x 1.26 x .37 inches)<br />
* [[file:ShiftX3_enclosure.zip|Enclosure DXF and PDF drawing]]<br />
<br />
[[image:ShiftX3_enclosure_dimensions.jpg|800px]]<br />
<br />
==Compatibility==<br />
ShiftX3 is compatible with:<br />
* RaceCapture/Track MK2,MK3<br />
* RaceCapture/Pro MK2,MK3,MK4<br />
* RaceCapture/Apex<br />
* PodiumConnect MK1,MK2<br />
<br />
'''Note:''' Not compatible with RaceCapture/Track MK1.<br />
<br />
==Firmware Requirements==<br />
ShiftX3 requires RaceCapture/PodiumConnect firmware 2.15.0 or higher. [http://podium.live/software Download the latest firmware]<br />
<br />
=Connection and Installation=<br />
<br />
==Mounting ShiftX3==<br />
<br />
Attach ShiftX3 with #6 mounting screws and tighten until snug.<br />
<br />
* '''Note''': You can install with the 7 segment display above or below the LED strip; see the setup instructions for selecting the orientation.<br />
<br />
===Plug and Play connection===<br />
* '''Note:''' ShiftX3 requires 12v power, via RaceCapture's own power connection.<br />
<br />
ShiftX3 connects effortlessly into our plug and play connector system, using the recommended cabling accessories:<br />
<br />
* [https://www.autosportlabs.com/product/can1-can2-dual-can-splitter/ Dual CAN splitter]<br />
* [https://www.autosportlabs.com/product/can-bus-extension-cable/ CAN extension] (choose your desired length)<br />
* [https://www.autosportlabs.com/product/inline-can-terminator/ Inline CAN terminator]<br />
<br />
Connect the Dual CAN splitter into the CAN1/CAN2 port of your main system:<br />
<br />
[[file:dual_can_splitter_plugged_in.jpg|600px]]<br />
<br />
Then connect your CAN extension cable to the "B" port of the Dual CAN splitter:<br />
<br />
[[file:dual_CAN_splitter_closeup.jpg|600px]]<br />
<br />
At the opposite end of the CAN extension, attach the inline CAN terminator:<br />
<br />
[[file:inline_terminator_plugged_in.jpg|600px]]<br />
<br />
Finally, attach ShiftX3 to the other end of the Terminator to complete the installation.<br />
<br />
[[file:ShiftX3_with_terminator.jpg|600px]]<br />
<br />
===Direct wire connection===<br />
You can connect ShiftX3 into a non plug and play system by using the following cabling accessories:<br />
<br />
* [https://www.autosportlabs.com/product/can-power-pigtail-for-device/ Device Power+CAN Pigtail]<br />
* [https://www.autosportlabs.com/product/inline-can-terminator/ Inline CAN terminator]<br />
<br />
Connect the pigtail wires to your system:<br />
* Green to CAN2 High<br />
* White to CAN2 Low<br />
* Red to +12v (same power connection for your system)<br />
* Black to Ground (same ground connection for your system)<br />
<br />
Then connect the pigtail to the inline CAN terminator.<br />
<br />
Finally, attach ShiftX3 to the other end of the Terminator to complete the installation.<br />
<br />
=Using ShiftX3=<br />
The LEDs and display on ShiftX3 are controlled by RaceCapture's Lua scripting capabilities. Built-in functions provide access to ShiftX3's capabilities. See the [[RaceCapturePro_Lua_Scripting#ShiftX2.2F3_control|ShiftX3 Lua scripting reference]] for additional details.<br />
<br />
'''Note:''' Ready to go scripts may be available as a preset. When in the Scripting view, press the Presets button to access a list of pre-configured scripts. Be sure to press the cloud update button to get the latest set of presets. <br />
<br />
[[image:Lua_scripting_presets.png]]<br />
<br />
==Navigation Buttons==<br />
Once ShiftX3 is powered and connected via CAN bus, the left and right ShiftX3 buttons will automatically trigger corresponding left and right navigation actions on the RaceCapture dashboard.<br />
<br />
[file:https://i.imgur.com/CSQfW4s.gif]<br />
<br />
==Disco Lights Demo==<br />
This is a test script that exercises all of the LEDs and the 7 segment display on ShiftX3. You can use this as a first time test, as it does not rely on any sensors. <br />
<br />
===Script===<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
This script will randomly set LEDs with different colors and the display will update with random numbers.<br />
<br />
<pre><br />
setTickRate(10)<br />
<br />
function rndc()<br />
return math.random(0,255)<br />
end<br />
<br />
function onTick()<br />
for i=0,9,1 do<br />
sxSetLed(i,1,rndc(),rndc(),rndc(),0)<br />
end<br />
-- ascii characters between 0 and 9<br />
sxSetDisplay(0, math.random(0,9)) <br />
end<br />
</pre><br />
<br />
==Sequential shift light + Gear indicator==<br />
This script configures just a sequential shift light, and update gear display.<br />
<br />
===Script (Gear is calculated from RPM and Speed)===<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
* Default is reading RPM from the channel named "RPM"<br />
* Default is creating the Gear channel with the channel name "Gear"<br />
<br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--create gear channel<br />
gearId = addChannel("Gear", 10, 0, 0, 6)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0,7000) --left to right graph, smooth style, 0 - 7000 RPM range<br />
<br />
sxSetLinearThresh(0,0,3000,0,255,0,0) --green at 3000 RPM<br />
sxSetLinearThresh(1,0,5000,255,255,0,0) --yellow at 5000 RPM<br />
sxSetLinearThresh(2,0,6000,255,0,0,10) --red+flash at 6000 RPM<br />
<br />
function onTick()<br />
sxUpdateLinearGraph(getChannel("RPM"))<br />
<br />
-- calculate gear: tire diameter(cm), final gear ratio, individual gear ratios 1-6<br />
local gear = calcGear(62.7, 3.45, 4.23, 2.52, 1.66, 1.22, 1.0, 0.8)<br />
setChannel(gearId, gear)<br />
sxSetDisplay(0, gear)<br />
end<br />
</pre><br />
<br />
===Script (Gear is provided by an existing channel)===<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
* Default is reading RPM from the channel named "RPM"<br />
* Default is reading the Gear channel with the channel name "Gear"<br />
<br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0,7000) --left to right graph, smooth style, 0 - 7000 RPM range<br />
<br />
sxSetLinearThresh(0,0,3000,0,255,0,0) --green at 3000 RPM<br />
sxSetLinearThresh(1,0,5000,255,255,0,0) --yellow at 5000 RPM<br />
sxSetLinearThresh(2,0,6000,255,0,0,10) --red+flash at 6000 RPM<br />
<br />
function onTick()<br />
sxUpdateLinearGraph(getChannel("RPM"))<br />
sxSetDisplay(0, getChannel("Gear"))<br />
end<br />
</pre><br />
<br />
==Shift Light + Twin Alert + Gear Example (Gear calculated by RPM and Speed)==<br />
This script shows a more complete example that demos a sequential shift light + two alerts + Gear indicator.<br />
<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
Assumptions:<br />
* Engine Temperature on the 1st alert LED, connected to first analog channel - channel name "EngineTemp"<br />
* Oil Pressure on the 2nd alert LED, connected to second analog channel - channel name "OilPress"<br />
* Gear channel already exists, named "Gear"<br />
<br />
Edit the script to change the analog channels you want to monitor.<br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0,7000) --left to right graph, smooth style, 0 - 7000 RPM range<br />
<br />
sxSetLinearThresh(0,0,3000,0,255,0,0) --green at 3000 RPM<br />
sxSetLinearThresh(1,0,5000,255,255,0,0) --yellow at 5000 RPM<br />
sxSetLinearThresh(2,0,6000,255,0,0,10) --red+flash at 6000 RPM<br />
<br />
--configure first alert (right LED) as engine temperature (F)<br />
sxSetAlertThresh(0,0,205,255,255,0,0) --yellow warning at 205F<br />
sxSetAlertThresh(0,1,225,255,0,0,10) -- red flash at 225F<br />
<br />
--configure second alert (left LED) as oil pressure (PSI)<br />
sxSetAlertThresh(1,0,0,0,0,255,10) --red flash below 15 psi<br />
sxSetAlertThresh(1,1,15,255,255,0,5) --yellow flash 15-20 PSI<br />
sxSetAlertThresh(1,2,20,0,0,0,0) --above 20, no alert<br />
<br />
--create gear channel<br />
gearId = addChannel("Gear", 10, 0, 0, 6)<br />
<br />
function onTick()<br />
--update RPM<br />
sxUpdateLinearGraph(getChannel("RPM"))<br />
<br />
-- calculate gear: tire diameter(cm), final gear ratio, individual gear ratios 1-6<br />
local gear = calcGear(62.7, 3.45, 4.23, 2.52, 1.66, 1.22, 1.0, 0.8)<br />
setChannel(gearId, gear)<br />
sxSetDisplay(0, gear)<br />
<br />
--update engine temp alert<br />
sxUpdateAlert(0, getChannel("EngineTemp"))<br />
<br />
--update oil pressure alert<br />
sxUpdateAlert(1, getChannel("OilPress"))<br />
end</pre><br />
<br />
==Shift Light + Twin Alert + Gear Example (Existing gear channel provided by ECU)==<br />
This script shows a more complete example that demos a sequential shift light + two alerts. <br />
<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
Assumptions:<br />
* Engine Temperature on the 1st alert LED, connected to first analog channel - channel name "EngineTemp"<br />
* Oil Pressure on the 2nd alert LED, connected to second analog channel - channel name "OilPress"<br />
* Gear channel already exists (provided by ECU) and is named "Gear"<br />
<br />
Edit the script to change the analog channels you want to monitor.<br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0,7000) --left to right graph, smooth style, 0 - 7000 RPM range<br />
<br />
sxSetLinearThresh(0,0,3000,0,255,0,0) --green at 3000 RPM<br />
sxSetLinearThresh(1,0,5000,255,255,0,0) --yellow at 5000 RPM<br />
sxSetLinearThresh(2,0,6000,255,0,0,10) --red+flash at 6000 RPM<br />
<br />
--configure first alert (right LED) as engine temperature (F)<br />
sxSetAlertThresh(0,0,205,255,255,0,0) --yellow warning at 205F<br />
sxSetAlertThresh(0,1,225,255,0,0,10) -- red flash at 225F<br />
<br />
--configure second alert (left LED) as oil pressure (PSI)<br />
sxSetAlertThresh(1,0,0,0,0,255,10) --red flash below 15 psi<br />
sxSetAlertThresh(1,1,15,255,255,0,5) --yellow flash 15-20 PSI<br />
sxSetAlertThresh(1,2,20,0,0,0,0) --above 20, no alert<br />
<br />
function onTick()<br />
sxUpdateLinearGraph(getChannel("RPM"))<br />
sxSetDisplay(0, getChannel("Gear"))<br />
<br />
--update engine temp alert<br />
sxUpdateAlert(0, getChannel("EngineTemp"))<br />
<br />
--update oil pressure alert<br />
sxUpdateAlert(1, getChannel("OilPress"))<br />
end</pre><br />
<br />
==Predictive Lap Timer Indicator==<br />
This script enables predictive lap time visualization. <br />
<br />
===How it works===<br />
A bar extends left or right from the center of the linear graph:<br />
* Green bar extending to the right indicates you're beating the best time<br />
* Red bar extending to the left means you're falling behind. <br />
* When you're close to the best time, the center blue LED illuminates.<br />
<br />
<br />
'''Notes:'''<br />
* The script is designed for a +/- 10 second maximum delta - so if you're ahead or behind by 10 seconds, the linear graph will be fully illuminated center-right, or center-left.<br />
* You will need to complete a a full lap to train the predictive timer before the graph will update.<br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
<pre><br />
-- Predictive time visualizer<br />
<br />
--save best lap time<br />
bestTime = 0<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(1,0,0,200) --center-out graph, linear style, +/- 10.0 seconds in 0.1 sec resolution<br />
<br />
sxSetLinearThresh(0,0,0,255,0,0,0) --red if you're falling behind best lap<br />
sxSetLinearThresh(1,0,80,0,0,255,0) --blue if you're close to best lap<br />
sxSetLinearThresh(2,0,110,0,255,0,0) --green if you're beating best lap<br />
setTickRate(30)<br />
<br />
function onTick()<br />
local predTime = getPredTime()<br />
<br />
local timeDiff = (bestTime - predTime) * 60<br />
-- rail values <br />
timeDiff = math.max(timeDiff, -10)<br />
timeDiff = math.min(timeDiff, 10)<br />
--scale values from +/- 10 sec to a 0-200 scale<br />
timeDiff = (timeDiff + 10) * 10<br />
<br />
sxUpdateLinearGraph(timeDiff)<br />
<br />
--update best lap time if an updated lap time is available<br />
local lastLapTime = getLapTime()<br />
if lastLapTime < bestTime or bestTime == 0 then bestTime = lastLapTime end<br />
end<br />
</pre><br />
<br />
==Boost Gauge==<br />
This script visualizes a single analog input channel on the linear graph.<br />
<br />
===How it works===<br />
The script configures the linear graph, then reads an analog channel and updates the graph with the current value. In this case, the value represents boost level measured from a MAP sensor.<br />
<br />
===Assumptions===<br />
* MAP sensor is on the channel named "MAP"<br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0, 20) --left to right graph, linear style, 0 - 20 PSI boost<br />
<br />
sxSetLinearThresh(0,0,0,0,255,0,0) --green starting at no boost<br />
sxSetLinearThresh(1,0,10,255,255,0,0) --yellow starting at 10 PSI boost<br />
sxSetLinearThresh(2,0,15,255,0,0,10) --red+flash at 15 PSI boost<br />
<br />
function onTick()<br />
local map = getChannel("MAP")<br />
if map ~= nil then <br />
--convert to PSI boost<br />
local boost = math.max(map - 100, 0) * .145038<br />
sxUpdateLinearGraph(boost)<br />
end<br />
end<br />
</pre><br />
<br />
<!--<br />
==Only Alerts==<br />
This script enables 3 alert channels:<br />
* Left alert for oil pressure<br />
* Right alert for engine temperature<br />
* Center alert for Air/Fuel ratio<br />
<br />
===How it works===<br />
The script configures the left and right alert indicators, then configures the center graph to visualize safe and dangerous AFR ranges. During operation, the analog channels for oil pressure and engine temperature are read and updates the alert indicators. The AFR channel is read and updates the linear graph. <br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<pre><br />
function onTick()<br />
--implement me<br />
end<br />
</pre><br />
--><br />
<br />
=ShiftX3 CAN bus API=<br />
==Overview==<br />
The CAN bus API provides the configuration and control interface for ShiftX3. <br />
<br />
Two styles of control are available:<br />
* Low level control of LEDs - the ability to discretely set LED color and flash behavior<br />
* High level control - configuring alert thresholds and linear graph up front, and then providing simple value updates<br />
<br />
==Hardware / CAN configuration==<br />
===CAN Termination===<br />
CAN termination is disabled by default. To enable termination, bridge the '''CAN Term''' jumper on the bottom of the ShiftX3 circuit board.<br />
<br />
===CAN Base Address===<br />
The default CAN base address is 931328 (0xE3600). You can change it by breaking the trace bridging the ADR1 jumper on the bottom of the ShiftX3 circuit board.<br />
<br />
{| class="wikitable" style="text-align:center; width:700px; height:200px;"<br />
|+ ShiftX3 CAN bus base address setting<br />
|-<br />
! ADR1 jumper setting<br />
! Base address<br />
|-<br />
| Closed (Default setting)<br />
| 931328 (0xE3600)<br />
|-<br />
| Open <br />
| 931584 (0xE3700)<br />
|}<br />
<br />
===CAN Baud Rate===<br />
The default CAN baud rate is 1MB. You can switch to 500K by breaking the ADR2 Jumper on the bottom of the ShiftX3 board. <br />
<br />
{| class="wikitable" style="text-align:center; width:700px; height:200px;"<br />
|+ ShiftX3 CAN baud rate setting<br />
|-<br />
! ADR2 jumper setting<br />
! Baud Rate<br />
|-<br />
| Closed (Default setting)<br />
| 1MB<br />
|-<br />
| Open <br />
| 500K<br />
|}<br />
<br />
[[Image:ShiftXCanBaudRateJumper.jpg|700px]]<br />
<br />
==ShiftX3 CAN Protocol==<br />
<br />
===Configuration / Runtime Options===<br />
<br />
====Set Configuration Parameters Group 1====<br />
Sets various configuration options. <br />
<br />
'''CAN ID:''' Base + 3<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Brightness<br />
| 0 - 100; 1 = dimmest; 100 = brightest; 0 = automatic brightness control using built-in light sensor. <br />
|-<br />
| 1<br />
| Automatic brightness scaling (Optional)<br />
| 0-255; default=61. adjust this value to adjust the relative gain of the built-in light sensor when in automatic brightness mode.<br />
|-<br />
| 2<br />
| Display orientation<br />
| 0: 7-segment display is below shift light; 1: 7-segment display is above shift light<br />
<br />
|}<br />
<br />
====Set Display====<br />
Directly sets the value of the 7 segment display.<br />
<br />
'''CAN ID:''' Base + 50<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Digit index<br />
| 0 (must be 0)<br />
|-<br />
| 1<br />
| Character<br />
| ASCII value of character to display<br />
|}<br />
<br />
The value of the display is set by the ASCII coded value. To set a numeric value, offset the value by 48: e.g. 48 = 0, 49 = 1, etc.<br />
<br />
Most alphanumeric characters are supported as well, also via ASCII representation.<br />
<br />
====Set Discrete LED====<br />
A low level function to directly set any LED on the device.<br />
<br />
'''CAN ID:''' Base + 10<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| LED index<br />
| 0 -> # of LEDs on device<br />
|-<br />
| 1<br />
| Number of LEDs to set<br />
| 0 -> # of LEDs on device (0 = set all remaining)<br />
|-<br />
| 2<br />
| Red<br />
| 0 - 255<br />
|-<br />
| 3<br />
| Green<br />
| 0 - 255<br />
|-<br />
| 4<br />
| Blue<br />
| 0 - 255<br />
|-<br />
| 5<br />
| Flash<br />
| 0-10Hz (0 = full on)<br />
|}<br />
<br />
===Alert Indicators===<br />
Alert Indicators are typically single LEDs or a group of LEDs treated as one logical unit. This is defined by the hardware configuration of the device. <br />
<br />
====Set Alert====<br />
Directly set an alert indicator<br />
<br />
'''CAN ID:''' Base + 20<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Alert ID<br />
| 0 -> # of Alert indicators<br />
|-<br />
| 1<br />
| Red<br />
| 0 - 255<br />
|-<br />
| 2<br />
| Green<br />
| 0 - 255<br />
|-<br />
| 3<br />
| Blue<br />
| 0 - 255<br />
|-<br />
| 4<br />
| Flash<br />
| 0-10Hz (0 = full on)<br />
|}<br />
<br />
====Set Alert Threshold====<br />
Configures an alert threshold. Up to 5 thresholds can be configured per alert indicator.<br />
<br />
Notes:<br />
* If the current value is greater than the last threshold, then the last threshold is selected.<br />
* The first threshold may have a threshold value >= 0; remaining thresholds must be > 0<br />
<br />
'''CAN ID:''' Base + 21<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Alert ID<br />
| 0 -> # of Alert indicators<br />
|-<br />
| 1<br />
| Threshold ID<br />
| 0 - 4<br />
|-<br />
| 2<br />
| Threshold (low byte)<br />
| <br />
|-<br />
| 3<br />
| Threshold (high byte)<br />
| <br />
|-<br />
| 4<br />
| Red<br />
| 0 - 255<br />
|-<br />
| 5<br />
| Green<br />
| 0 - 255<br />
|-<br />
| 6<br />
| Blue<br />
| 0 - 255<br />
|-<br />
| 7<br />
| Flash Hz<br />
| 0 - 10 (0 = full on)<br />
|}<br />
<br />
====Update Current Alert Value====<br />
<br />
Updates the current value for an alert indicator. The configured alert thresholds will be applied to the current value.<br />
<br />
'''CAN ID:''' Base + 22<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Alert ID<br />
| 0 -> # of Alert indicators<br />
|-<br />
| 1<br />
| Value (low byte)<br />
| <br />
|-<br />
| 2<br />
| Value (high byte)<br />
|<br />
|}<br />
<br />
===Linear Graph===<br />
The linear graph mode provides visualizations for common scenarios:<br />
* Sequential RPM shift light where the progression is stepped<br />
* Linear bar graph to linearly indicate a sensor value<br />
* Center left/right graph to indicate +/- performance against a reference - such as visualizing current predictive time vs best time<br />
<br />
====Power up default configuration====<br />
Upon power up the linear graph is configured:<br />
* Rendering style: left->right<br />
* Linear style: stepped<br />
* Low Range: 0<br />
* High Range: N/A<br />
* Threshold : <br />
** Threshold value: 3000 / segment length: 3 / color RGB: (0, 255, 0) / flash: 0<br />
** Threshold value: 5000 / segment length: 5 / color RGB: (0, 255, 255) / flash: 0<br />
** Threshold value: 7000 / segment length: 7 / color RGB: (255, 0, 0) / flash: 5<br />
<br />
====Configure Linear Graph====<br />
Configures the options for the linear graph portion of the device.<br />
<br />
'''Rendering style:'''<br />
* If left->right, linear graph illuminates left to right<br />
* If centered, values below the mid-point in the range extend from the center to the left, and values above the mid-point extend from the center to the right.<br />
* If right->left, linear graph illuminates right to left<br />
<br />
'''Linear style:''' <br />
* if smooth, graph length is updated smoothly by interpolating the current value in-between LEDs<br />
* If stepped, creates the visual effect of stepped progressions by setting the segment length of the threshold configuration. High Range of configuration is ignored. <br />
<br />
<br />
'''CAN ID:''' Base + 40<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Rendering Style<br />
| 0 = left->right, 1=center, 2=right->left<br />
|-<br />
| 1<br />
| Linear Style<br />
| 0 = Smooth / interpolated, 1 = stepped<br />
|-<br />
| 2<br />
| Low Range (low byte)<br />
| <br />
|-<br />
| 3<br />
| Low Range (high byte)<br />
| <br />
|-<br />
| 4<br />
| High Range (low byte)<br />
| (ignored if linear style = stepped)<br />
|-<br />
| 5<br />
| High Range (high byte)<br />
| (ignored if linear style = stepped)<br />
|}<br />
<br />
====Set Linear Graph Threshold====<br />
Configures a linear threshold. Up to 5 thresholds can be configured<br />
<br />
Notes:<br />
* If the current value is greater than the last threshold, then the last threshold is selected.<br />
* The first threshold may have a threshold value >= 0; remaining thresholds must be > 0<br />
<br />
'''CAN ID:''' Base + 41<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Threshold ID<br />
| 0 - 4<br />
|-<br />
| 1<br />
| Segment Length<br />
| 0 -> # of LEDs on device (ignored if linear style is ‘smooth’)<br />
|-<br />
| 2<br />
| Threshold (low byte)<br />
|<br />
|-<br />
| 3<br />
| Threshold (high byte)<br />
|<br />
|-<br />
| 4<br />
| Red<br />
| 0 - 255<br />
|-<br />
| 5<br />
| Green<br />
| 0 - 255<br />
|-<br />
| 6<br />
| Blue<br />
| 0 - 255<br />
|-<br />
| 7<br />
| Flash Hz<br />
| 0 - 10 (0 = full on)<br />
|}<br />
<br />
====Update Current Linear Graph Value====<br />
<br />
Updates the current value for the linear graph<br />
<br />
'''CAN ID:''' Base + 42<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Value (low byte)<br />
|<br />
|-<br />
| 1<br />
| Value (high byte)<br />
|<br />
|}<br />
<br />
===Notifications===<br />
Notifications related to events broadcasted from ShiftX3<br />
<br />
====Announcement====<br />
<br />
Broadcast by the device upon power up<br />
<br />
'''CAN ID:''' Base + 0<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Total LEDs<br />
| Total number of LEDs on the device<br />
|-<br />
| 1<br />
| Alert Indicators<br />
| Number of logical alert indicators<br />
|-<br />
| 2<br />
| Linear Bar Graph Length<br />
| Number of LEDs in linear graph<br />
|-<br />
| 3<br />
| Major Version<br />
| Firmware major version number <br />
|-<br />
| 4<br />
| Minor Version<br />
| Firmware minor version number<br />
|-<br />
| 5<br />
| Patch Version<br />
| Firmware patch version number<br />
|}<br />
<br />
====Statistics====<br />
Statistics information, broadcast periodically by device<br />
<br />
'''CAN ID:''' Base + 2<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Major Version<br />
| Firmware major version number <br />
|-<br />
| 1<br />
| Minor Version<br />
| Firmware minor version number<br />
|-<br />
| 2<br />
| Patch Version<br />
| Firmware patch version number<br />
|}<br />
<br />
====Button State====<br />
Indicates a change in the button state<br />
<br />
'''CAN ID:''' Base + 60<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Button state<br />
| 1 = button is pressed; 0 = button<br />
|-<br />
| 1<br />
| Button ID<br />
| ID of button<br />
<br />
|}</div>Brentphttps://wiki.autosportlabs.com/index.php?title=File:ShiftX3_enclosure_dimensions.jpg&diff=9704File:ShiftX3 enclosure dimensions.jpg2023-09-05T04:53:22Z<p>Brentp: </p>
<hr />
<div></div>Brentphttps://wiki.autosportlabs.com/index.php?title=ShiftX3&diff=9703ShiftX32023-09-05T04:53:08Z<p>Brentp: /* Dimensions */</p>
<hr />
<div>=Introduction=<br />
<br />
==Parts in the Kit==<br />
* ShiftX3<br />
<br />
[[image:shiftx3_3quarter.jpg|1024px]]<br />
<br />
==Dimensions==<br />
* ShiftX3 with enclosure 136 x 32 x 9.46 mm (5.35 x 1.26 x .37 inches)<br />
* [[file:ShiftX3_enclosure.zip|Enclosure DXF and PDF drawing]]<br />
<br />
[[image:ShiftX3_enclosure_dimensions.jpg]]<br />
<br />
==Compatibility==<br />
ShiftX3 is compatible with:<br />
* RaceCapture/Track MK2,MK3<br />
* RaceCapture/Pro MK2,MK3,MK4<br />
* RaceCapture/Apex<br />
* PodiumConnect MK1,MK2<br />
<br />
'''Note:''' Not compatible with RaceCapture/Track MK1.<br />
<br />
==Firmware Requirements==<br />
ShiftX3 requires RaceCapture/PodiumConnect firmware 2.15.0 or higher. [http://podium.live/software Download the latest firmware]<br />
<br />
=Connection and Installation=<br />
<br />
==Mounting ShiftX3==<br />
<br />
Attach ShiftX3 with #6 mounting screws and tighten until snug.<br />
<br />
* '''Note''': You can install with the 7 segment display above or below the LED strip; see the setup instructions for selecting the orientation.<br />
<br />
===Plug and Play connection===<br />
* '''Note:''' ShiftX3 requires 12v power, via RaceCapture's own power connection.<br />
<br />
ShiftX3 connects effortlessly into our plug and play connector system, using the recommended cabling accessories:<br />
<br />
* [https://www.autosportlabs.com/product/can1-can2-dual-can-splitter/ Dual CAN splitter]<br />
* [https://www.autosportlabs.com/product/can-bus-extension-cable/ CAN extension] (choose your desired length)<br />
* [https://www.autosportlabs.com/product/inline-can-terminator/ Inline CAN terminator]<br />
<br />
Connect the Dual CAN splitter into the CAN1/CAN2 port of your main system:<br />
<br />
[[file:dual_can_splitter_plugged_in.jpg|600px]]<br />
<br />
Then connect your CAN extension cable to the "B" port of the Dual CAN splitter:<br />
<br />
[[file:dual_CAN_splitter_closeup.jpg|600px]]<br />
<br />
At the opposite end of the CAN extension, attach the inline CAN terminator:<br />
<br />
[[file:inline_terminator_plugged_in.jpg|600px]]<br />
<br />
Finally, attach ShiftX3 to the other end of the Terminator to complete the installation.<br />
<br />
[[file:ShiftX3_with_terminator.jpg|600px]]<br />
<br />
===Direct wire connection===<br />
You can connect ShiftX3 into a non plug and play system by using the following cabling accessories:<br />
<br />
* [https://www.autosportlabs.com/product/can-power-pigtail-for-device/ Device Power+CAN Pigtail]<br />
* [https://www.autosportlabs.com/product/inline-can-terminator/ Inline CAN terminator]<br />
<br />
Connect the pigtail wires to your system:<br />
* Green to CAN2 High<br />
* White to CAN2 Low<br />
* Red to +12v (same power connection for your system)<br />
* Black to Ground (same ground connection for your system)<br />
<br />
Then connect the pigtail to the inline CAN terminator.<br />
<br />
Finally, attach ShiftX3 to the other end of the Terminator to complete the installation.<br />
<br />
=Using ShiftX3=<br />
The LEDs and display on ShiftX3 are controlled by RaceCapture's Lua scripting capabilities. Built-in functions provide access to ShiftX3's capabilities. See the [[RaceCapturePro_Lua_Scripting#ShiftX2.2F3_control|ShiftX3 Lua scripting reference]] for additional details.<br />
<br />
'''Note:''' Ready to go scripts may be available as a preset. When in the Scripting view, press the Presets button to access a list of pre-configured scripts. Be sure to press the cloud update button to get the latest set of presets. <br />
<br />
[[image:Lua_scripting_presets.png]]<br />
<br />
==Navigation Buttons==<br />
Once ShiftX3 is powered and connected via CAN bus, the left and right ShiftX3 buttons will automatically trigger corresponding left and right navigation actions on the RaceCapture dashboard.<br />
<br />
[file:https://i.imgur.com/CSQfW4s.gif]<br />
<br />
==Disco Lights Demo==<br />
This is a test script that exercises all of the LEDs and the 7 segment display on ShiftX3. You can use this as a first time test, as it does not rely on any sensors. <br />
<br />
===Script===<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
This script will randomly set LEDs with different colors and the display will update with random numbers.<br />
<br />
<pre><br />
setTickRate(10)<br />
<br />
function rndc()<br />
return math.random(0,255)<br />
end<br />
<br />
function onTick()<br />
for i=0,9,1 do<br />
sxSetLed(i,1,rndc(),rndc(),rndc(),0)<br />
end<br />
-- ascii characters between 0 and 9<br />
sxSetDisplay(0, math.random(0,9)) <br />
end<br />
</pre><br />
<br />
==Sequential shift light + Gear indicator==<br />
This script configures just a sequential shift light, and update gear display.<br />
<br />
===Script (Gear is calculated from RPM and Speed)===<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
* Default is reading RPM from the channel named "RPM"<br />
* Default is creating the Gear channel with the channel name "Gear"<br />
<br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--create gear channel<br />
gearId = addChannel("Gear", 10, 0, 0, 6)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0,7000) --left to right graph, smooth style, 0 - 7000 RPM range<br />
<br />
sxSetLinearThresh(0,0,3000,0,255,0,0) --green at 3000 RPM<br />
sxSetLinearThresh(1,0,5000,255,255,0,0) --yellow at 5000 RPM<br />
sxSetLinearThresh(2,0,6000,255,0,0,10) --red+flash at 6000 RPM<br />
<br />
function onTick()<br />
sxUpdateLinearGraph(getChannel("RPM"))<br />
<br />
-- calculate gear: tire diameter(cm), final gear ratio, individual gear ratios 1-6<br />
local gear = calcGear(62.7, 3.45, 4.23, 2.52, 1.66, 1.22, 1.0, 0.8)<br />
setChannel(gearId, gear)<br />
sxSetDisplay(0, gear)<br />
end<br />
</pre><br />
<br />
===Script (Gear is provided by an existing channel)===<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
* Default is reading RPM from the channel named "RPM"<br />
* Default is reading the Gear channel with the channel name "Gear"<br />
<br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0,7000) --left to right graph, smooth style, 0 - 7000 RPM range<br />
<br />
sxSetLinearThresh(0,0,3000,0,255,0,0) --green at 3000 RPM<br />
sxSetLinearThresh(1,0,5000,255,255,0,0) --yellow at 5000 RPM<br />
sxSetLinearThresh(2,0,6000,255,0,0,10) --red+flash at 6000 RPM<br />
<br />
function onTick()<br />
sxUpdateLinearGraph(getChannel("RPM"))<br />
sxSetDisplay(0, getChannel("Gear"))<br />
end<br />
</pre><br />
<br />
==Shift Light + Twin Alert + Gear Example (Gear calculated by RPM and Speed)==<br />
This script shows a more complete example that demos a sequential shift light + two alerts + Gear indicator.<br />
<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
Assumptions:<br />
* Engine Temperature on the 1st alert LED, connected to first analog channel - channel name "EngineTemp"<br />
* Oil Pressure on the 2nd alert LED, connected to second analog channel - channel name "OilPress"<br />
* Gear channel already exists, named "Gear"<br />
<br />
Edit the script to change the analog channels you want to monitor.<br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0,7000) --left to right graph, smooth style, 0 - 7000 RPM range<br />
<br />
sxSetLinearThresh(0,0,3000,0,255,0,0) --green at 3000 RPM<br />
sxSetLinearThresh(1,0,5000,255,255,0,0) --yellow at 5000 RPM<br />
sxSetLinearThresh(2,0,6000,255,0,0,10) --red+flash at 6000 RPM<br />
<br />
--configure first alert (right LED) as engine temperature (F)<br />
sxSetAlertThresh(0,0,205,255,255,0,0) --yellow warning at 205F<br />
sxSetAlertThresh(0,1,225,255,0,0,10) -- red flash at 225F<br />
<br />
--configure second alert (left LED) as oil pressure (PSI)<br />
sxSetAlertThresh(1,0,0,0,0,255,10) --red flash below 15 psi<br />
sxSetAlertThresh(1,1,15,255,255,0,5) --yellow flash 15-20 PSI<br />
sxSetAlertThresh(1,2,20,0,0,0,0) --above 20, no alert<br />
<br />
--create gear channel<br />
gearId = addChannel("Gear", 10, 0, 0, 6)<br />
<br />
function onTick()<br />
--update RPM<br />
sxUpdateLinearGraph(getChannel("RPM"))<br />
<br />
-- calculate gear: tire diameter(cm), final gear ratio, individual gear ratios 1-6<br />
local gear = calcGear(62.7, 3.45, 4.23, 2.52, 1.66, 1.22, 1.0, 0.8)<br />
setChannel(gearId, gear)<br />
sxSetDisplay(0, gear)<br />
<br />
--update engine temp alert<br />
sxUpdateAlert(0, getChannel("EngineTemp"))<br />
<br />
--update oil pressure alert<br />
sxUpdateAlert(1, getChannel("OilPress"))<br />
end</pre><br />
<br />
==Shift Light + Twin Alert + Gear Example (Existing gear channel provided by ECU)==<br />
This script shows a more complete example that demos a sequential shift light + two alerts. <br />
<br />
Available as a scripting preset - or you can copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
Assumptions:<br />
* Engine Temperature on the 1st alert LED, connected to first analog channel - channel name "EngineTemp"<br />
* Oil Pressure on the 2nd alert LED, connected to second analog channel - channel name "OilPress"<br />
* Gear channel already exists (provided by ECU) and is named "Gear"<br />
<br />
Edit the script to change the analog channels you want to monitor.<br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0,7000) --left to right graph, smooth style, 0 - 7000 RPM range<br />
<br />
sxSetLinearThresh(0,0,3000,0,255,0,0) --green at 3000 RPM<br />
sxSetLinearThresh(1,0,5000,255,255,0,0) --yellow at 5000 RPM<br />
sxSetLinearThresh(2,0,6000,255,0,0,10) --red+flash at 6000 RPM<br />
<br />
--configure first alert (right LED) as engine temperature (F)<br />
sxSetAlertThresh(0,0,205,255,255,0,0) --yellow warning at 205F<br />
sxSetAlertThresh(0,1,225,255,0,0,10) -- red flash at 225F<br />
<br />
--configure second alert (left LED) as oil pressure (PSI)<br />
sxSetAlertThresh(1,0,0,0,0,255,10) --red flash below 15 psi<br />
sxSetAlertThresh(1,1,15,255,255,0,5) --yellow flash 15-20 PSI<br />
sxSetAlertThresh(1,2,20,0,0,0,0) --above 20, no alert<br />
<br />
function onTick()<br />
sxUpdateLinearGraph(getChannel("RPM"))<br />
sxSetDisplay(0, getChannel("Gear"))<br />
<br />
--update engine temp alert<br />
sxUpdateAlert(0, getChannel("EngineTemp"))<br />
<br />
--update oil pressure alert<br />
sxUpdateAlert(1, getChannel("OilPress"))<br />
end</pre><br />
<br />
==Predictive Lap Timer Indicator==<br />
This script enables predictive lap time visualization. <br />
<br />
===How it works===<br />
A bar extends left or right from the center of the linear graph:<br />
* Green bar extending to the right indicates you're beating the best time<br />
* Red bar extending to the left means you're falling behind. <br />
* When you're close to the best time, the center blue LED illuminates.<br />
<br />
<br />
'''Notes:'''<br />
* The script is designed for a +/- 10 second maximum delta - so if you're ahead or behind by 10 seconds, the linear graph will be fully illuminated center-right, or center-left.<br />
* You will need to complete a a full lap to train the predictive timer before the graph will update.<br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<br />
<pre><br />
-- Predictive time visualizer<br />
<br />
--save best lap time<br />
bestTime = 0<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(1,0,0,200) --center-out graph, linear style, +/- 10.0 seconds in 0.1 sec resolution<br />
<br />
sxSetLinearThresh(0,0,0,255,0,0,0) --red if you're falling behind best lap<br />
sxSetLinearThresh(1,0,80,0,0,255,0) --blue if you're close to best lap<br />
sxSetLinearThresh(2,0,110,0,255,0,0) --green if you're beating best lap<br />
setTickRate(30)<br />
<br />
function onTick()<br />
local predTime = getPredTime()<br />
<br />
local timeDiff = (bestTime - predTime) * 60<br />
-- rail values <br />
timeDiff = math.max(timeDiff, -10)<br />
timeDiff = math.min(timeDiff, 10)<br />
--scale values from +/- 10 sec to a 0-200 scale<br />
timeDiff = (timeDiff + 10) * 10<br />
<br />
sxUpdateLinearGraph(timeDiff)<br />
<br />
--update best lap time if an updated lap time is available<br />
local lastLapTime = getLapTime()<br />
if lastLapTime < bestTime or bestTime == 0 then bestTime = lastLapTime end<br />
end<br />
</pre><br />
<br />
==Boost Gauge==<br />
This script visualizes a single analog input channel on the linear graph.<br />
<br />
===How it works===<br />
The script configures the linear graph, then reads an analog channel and updates the graph with the current value. In this case, the value represents boost level measured from a MAP sensor.<br />
<br />
===Assumptions===<br />
* MAP sensor is on the channel named "MAP"<br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<pre><br />
setTickRate(30)<br />
<br />
-- Set ShiftX3 configuration parameters with default parameters<br />
-- orientation: 0=normal, 1=inverted (display above LED bar)<br />
-- brightness: 0-100%, 0 = auto brightness<br />
-- can bus: 0=CAN1, 1=CAN2<br />
sxSetConfig(0,0,1)<br />
<br />
--config shift light<br />
sxCfgLinearGraph(0,0,0, 20) --left to right graph, linear style, 0 - 20 PSI boost<br />
<br />
sxSetLinearThresh(0,0,0,0,255,0,0) --green starting at no boost<br />
sxSetLinearThresh(1,0,10,255,255,0,0) --yellow starting at 10 PSI boost<br />
sxSetLinearThresh(2,0,15,255,0,0,10) --red+flash at 15 PSI boost<br />
<br />
function onTick()<br />
local map = getChannel("MAP")<br />
if map ~= nil then <br />
--convert to PSI boost<br />
local boost = math.max(map - 100, 0) * .145038<br />
sxUpdateLinearGraph(boost)<br />
end<br />
end<br />
</pre><br />
<br />
<!--<br />
==Only Alerts==<br />
This script enables 3 alert channels:<br />
* Left alert for oil pressure<br />
* Right alert for engine temperature<br />
* Center alert for Air/Fuel ratio<br />
<br />
===How it works===<br />
The script configures the left and right alert indicators, then configures the center graph to visualize safe and dangerous AFR ranges. During operation, the analog channels for oil pressure and engine temperature are read and updates the alert indicators. The AFR channel is read and updates the linear graph. <br />
<br />
===Script===<br />
Copy and paste this entire script into the scripting window, replacing any existing script. <br />
<pre><br />
function onTick()<br />
--implement me<br />
end<br />
</pre><br />
--><br />
<br />
=ShiftX3 CAN bus API=<br />
==Overview==<br />
The CAN bus API provides the configuration and control interface for ShiftX3. <br />
<br />
Two styles of control are available:<br />
* Low level control of LEDs - the ability to discretely set LED color and flash behavior<br />
* High level control - configuring alert thresholds and linear graph up front, and then providing simple value updates<br />
<br />
==Hardware / CAN configuration==<br />
===CAN Termination===<br />
CAN termination is disabled by default. To enable termination, bridge the '''CAN Term''' jumper on the bottom of the ShiftX3 circuit board.<br />
<br />
===CAN Base Address===<br />
The default CAN base address is 931328 (0xE3600). You can change it by breaking the trace bridging the ADR1 jumper on the bottom of the ShiftX3 circuit board.<br />
<br />
{| class="wikitable" style="text-align:center; width:700px; height:200px;"<br />
|+ ShiftX3 CAN bus base address setting<br />
|-<br />
! ADR1 jumper setting<br />
! Base address<br />
|-<br />
| Closed (Default setting)<br />
| 931328 (0xE3600)<br />
|-<br />
| Open <br />
| 931584 (0xE3700)<br />
|}<br />
<br />
===CAN Baud Rate===<br />
The default CAN baud rate is 1MB. You can switch to 500K by breaking the ADR2 Jumper on the bottom of the ShiftX3 board. <br />
<br />
{| class="wikitable" style="text-align:center; width:700px; height:200px;"<br />
|+ ShiftX3 CAN baud rate setting<br />
|-<br />
! ADR2 jumper setting<br />
! Baud Rate<br />
|-<br />
| Closed (Default setting)<br />
| 1MB<br />
|-<br />
| Open <br />
| 500K<br />
|}<br />
<br />
[[Image:ShiftXCanBaudRateJumper.jpg|700px]]<br />
<br />
==ShiftX3 CAN Protocol==<br />
<br />
===Configuration / Runtime Options===<br />
<br />
====Set Configuration Parameters Group 1====<br />
Sets various configuration options. <br />
<br />
'''CAN ID:''' Base + 3<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Brightness<br />
| 0 - 100; 1 = dimmest; 100 = brightest; 0 = automatic brightness control using built-in light sensor. <br />
|-<br />
| 1<br />
| Automatic brightness scaling (Optional)<br />
| 0-255; default=61. adjust this value to adjust the relative gain of the built-in light sensor when in automatic brightness mode.<br />
|-<br />
| 2<br />
| Display orientation<br />
| 0: 7-segment display is below shift light; 1: 7-segment display is above shift light<br />
<br />
|}<br />
<br />
====Set Display====<br />
Directly sets the value of the 7 segment display.<br />
<br />
'''CAN ID:''' Base + 50<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Digit index<br />
| 0 (must be 0)<br />
|-<br />
| 1<br />
| Character<br />
| ASCII value of character to display<br />
|}<br />
<br />
The value of the display is set by the ASCII coded value. To set a numeric value, offset the value by 48: e.g. 48 = 0, 49 = 1, etc.<br />
<br />
Most alphanumeric characters are supported as well, also via ASCII representation.<br />
<br />
====Set Discrete LED====<br />
A low level function to directly set any LED on the device.<br />
<br />
'''CAN ID:''' Base + 10<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| LED index<br />
| 0 -> # of LEDs on device<br />
|-<br />
| 1<br />
| Number of LEDs to set<br />
| 0 -> # of LEDs on device (0 = set all remaining)<br />
|-<br />
| 2<br />
| Red<br />
| 0 - 255<br />
|-<br />
| 3<br />
| Green<br />
| 0 - 255<br />
|-<br />
| 4<br />
| Blue<br />
| 0 - 255<br />
|-<br />
| 5<br />
| Flash<br />
| 0-10Hz (0 = full on)<br />
|}<br />
<br />
===Alert Indicators===<br />
Alert Indicators are typically single LEDs or a group of LEDs treated as one logical unit. This is defined by the hardware configuration of the device. <br />
<br />
====Set Alert====<br />
Directly set an alert indicator<br />
<br />
'''CAN ID:''' Base + 20<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Alert ID<br />
| 0 -> # of Alert indicators<br />
|-<br />
| 1<br />
| Red<br />
| 0 - 255<br />
|-<br />
| 2<br />
| Green<br />
| 0 - 255<br />
|-<br />
| 3<br />
| Blue<br />
| 0 - 255<br />
|-<br />
| 4<br />
| Flash<br />
| 0-10Hz (0 = full on)<br />
|}<br />
<br />
====Set Alert Threshold====<br />
Configures an alert threshold. Up to 5 thresholds can be configured per alert indicator.<br />
<br />
Notes:<br />
* If the current value is greater than the last threshold, then the last threshold is selected.<br />
* The first threshold may have a threshold value >= 0; remaining thresholds must be > 0<br />
<br />
'''CAN ID:''' Base + 21<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Alert ID<br />
| 0 -> # of Alert indicators<br />
|-<br />
| 1<br />
| Threshold ID<br />
| 0 - 4<br />
|-<br />
| 2<br />
| Threshold (low byte)<br />
| <br />
|-<br />
| 3<br />
| Threshold (high byte)<br />
| <br />
|-<br />
| 4<br />
| Red<br />
| 0 - 255<br />
|-<br />
| 5<br />
| Green<br />
| 0 - 255<br />
|-<br />
| 6<br />
| Blue<br />
| 0 - 255<br />
|-<br />
| 7<br />
| Flash Hz<br />
| 0 - 10 (0 = full on)<br />
|}<br />
<br />
====Update Current Alert Value====<br />
<br />
Updates the current value for an alert indicator. The configured alert thresholds will be applied to the current value.<br />
<br />
'''CAN ID:''' Base + 22<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Alert ID<br />
| 0 -> # of Alert indicators<br />
|-<br />
| 1<br />
| Value (low byte)<br />
| <br />
|-<br />
| 2<br />
| Value (high byte)<br />
|<br />
|}<br />
<br />
===Linear Graph===<br />
The linear graph mode provides visualizations for common scenarios:<br />
* Sequential RPM shift light where the progression is stepped<br />
* Linear bar graph to linearly indicate a sensor value<br />
* Center left/right graph to indicate +/- performance against a reference - such as visualizing current predictive time vs best time<br />
<br />
====Power up default configuration====<br />
Upon power up the linear graph is configured:<br />
* Rendering style: left->right<br />
* Linear style: stepped<br />
* Low Range: 0<br />
* High Range: N/A<br />
* Threshold : <br />
** Threshold value: 3000 / segment length: 3 / color RGB: (0, 255, 0) / flash: 0<br />
** Threshold value: 5000 / segment length: 5 / color RGB: (0, 255, 255) / flash: 0<br />
** Threshold value: 7000 / segment length: 7 / color RGB: (255, 0, 0) / flash: 5<br />
<br />
====Configure Linear Graph====<br />
Configures the options for the linear graph portion of the device.<br />
<br />
'''Rendering style:'''<br />
* If left->right, linear graph illuminates left to right<br />
* If centered, values below the mid-point in the range extend from the center to the left, and values above the mid-point extend from the center to the right.<br />
* If right->left, linear graph illuminates right to left<br />
<br />
'''Linear style:''' <br />
* if smooth, graph length is updated smoothly by interpolating the current value in-between LEDs<br />
* If stepped, creates the visual effect of stepped progressions by setting the segment length of the threshold configuration. High Range of configuration is ignored. <br />
<br />
<br />
'''CAN ID:''' Base + 40<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Rendering Style<br />
| 0 = left->right, 1=center, 2=right->left<br />
|-<br />
| 1<br />
| Linear Style<br />
| 0 = Smooth / interpolated, 1 = stepped<br />
|-<br />
| 2<br />
| Low Range (low byte)<br />
| <br />
|-<br />
| 3<br />
| Low Range (high byte)<br />
| <br />
|-<br />
| 4<br />
| High Range (low byte)<br />
| (ignored if linear style = stepped)<br />
|-<br />
| 5<br />
| High Range (high byte)<br />
| (ignored if linear style = stepped)<br />
|}<br />
<br />
====Set Linear Graph Threshold====<br />
Configures a linear threshold. Up to 5 thresholds can be configured<br />
<br />
Notes:<br />
* If the current value is greater than the last threshold, then the last threshold is selected.<br />
* The first threshold may have a threshold value >= 0; remaining thresholds must be > 0<br />
<br />
'''CAN ID:''' Base + 41<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Threshold ID<br />
| 0 - 4<br />
|-<br />
| 1<br />
| Segment Length<br />
| 0 -> # of LEDs on device (ignored if linear style is ‘smooth’)<br />
|-<br />
| 2<br />
| Threshold (low byte)<br />
|<br />
|-<br />
| 3<br />
| Threshold (high byte)<br />
|<br />
|-<br />
| 4<br />
| Red<br />
| 0 - 255<br />
|-<br />
| 5<br />
| Green<br />
| 0 - 255<br />
|-<br />
| 6<br />
| Blue<br />
| 0 - 255<br />
|-<br />
| 7<br />
| Flash Hz<br />
| 0 - 10 (0 = full on)<br />
|}<br />
<br />
====Update Current Linear Graph Value====<br />
<br />
Updates the current value for the linear graph<br />
<br />
'''CAN ID:''' Base + 42<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Value (low byte)<br />
|<br />
|-<br />
| 1<br />
| Value (high byte)<br />
|<br />
|}<br />
<br />
===Notifications===<br />
Notifications related to events broadcasted from ShiftX3<br />
<br />
====Announcement====<br />
<br />
Broadcast by the device upon power up<br />
<br />
'''CAN ID:''' Base + 0<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Total LEDs<br />
| Total number of LEDs on the device<br />
|-<br />
| 1<br />
| Alert Indicators<br />
| Number of logical alert indicators<br />
|-<br />
| 2<br />
| Linear Bar Graph Length<br />
| Number of LEDs in linear graph<br />
|-<br />
| 3<br />
| Major Version<br />
| Firmware major version number <br />
|-<br />
| 4<br />
| Minor Version<br />
| Firmware minor version number<br />
|-<br />
| 5<br />
| Patch Version<br />
| Firmware patch version number<br />
|}<br />
<br />
====Statistics====<br />
Statistics information, broadcast periodically by device<br />
<br />
'''CAN ID:''' Base + 2<br />
<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Major Version<br />
| Firmware major version number <br />
|-<br />
| 1<br />
| Minor Version<br />
| Firmware minor version number<br />
|-<br />
| 2<br />
| Patch Version<br />
| Firmware patch version number<br />
|}<br />
<br />
====Button State====<br />
Indicates a change in the button state<br />
<br />
'''CAN ID:''' Base + 60<br />
{| class="wikitable" | width="600px"<br />
|-<br />
! Offset<br />
! What<br />
! Value<br />
|-<br />
| 0<br />
| Button state<br />
| 1 = button is pressed; 0 = button<br />
|-<br />
| 1<br />
| Button ID<br />
| ID of button<br />
<br />
|}</div>Brentphttps://wiki.autosportlabs.com/index.php?title=File:ShiftX3_enclosure.zip&diff=9702File:ShiftX3 enclosure.zip2023-09-05T04:50:01Z<p>Brentp: </p>
<hr />
<div></div>Brentphttps://wiki.autosportlabs.com/index.php?title=Harness_specifications&diff=9701Harness specifications2023-08-30T14:21:43Z<p>Brentp: /* 8 to 4 channel splitter */</p>
<hr />
<div>https://i.imgur.com/sZcvrLp.mp4<br />
<br />
=Plug and Play harness system=<br />
[[#Analog_harness|Jump to the Analog/Digital Harness system]]<br />
==CAN bus Harness==<br />
The plug and play CAN bus harness system lets you easily connect CAN bus devices to your RaceCapture or PodiumConnect system, without the need to splice, crimp, or heat-shrink connections. Multiple-length extension cables lets you build a harness that perfectly matches your installation needs.<br />
<br />
* '''Note''' The inline CAN terminator only needs to be added once, near the last device connected to the end of the network<br />
<br />
Click on the items within the image to see details.<br />
<imagemap>Image:combined_CAN_harnesses.jpg|Subtitle of Image Map combined_CAN_harnesses.jpg<br />
rect 162 3 551 737 [[#Dual_CAN_splitter|]]<br />
rect 618 8 930 531 [[#Dual_CAN_interconnect|]]<br />
rect 577 538 969 784 [[#Powered_dual_CAN_hub|]]<br />
rect 277 914 685 1491 [[#CAN_extension|]]<br />
rect 217 1503 669 2345 [[#CAN_splitter|]]<br />
rect 300 2452 723 2643 [[#Inline_CAN_terminator|]]<br />
rect 60 2767 258 3543 [[#Power_CAN_pigtail|]]<br />
rect 503 3510 948 3697 [[AnalogX2|]]<br />
rect 479 3341 906 3512 [[ShiftX3|]]<br />
rect 488 3127 907 3333 [[TireX|]]<br />
</imagemap><br />
<br />
==Analog harness==<br />
The plug and play Analog/Digital harness system lets you easily connect individual sensors to your RaceCapture system, without the need to splice, crimp, or heat shrink connections. Multiple-length extension cables for each level lets you build a harness that perfectly matches your installation needs.<br />
<br />
* '''Note:''' The same 8 channel connector (and downstream connectors) can plug into an M12-12P analog port or the M12-12P digital port of the system. <br />
<br />
Click on the items within the image to see details.<br />
<br />
<imagemap>Image:combined_analog_harnesses.jpg|Subtitle of Image Map combined_analog_harnesses.jpg<br />
rect 309 18 630 707 [[#8_channel_extension|]]<br />
rect 222 710 573 1408 [[#8_to_4_channel_splitter|]]<br />
rect 581 709 882 1385 [[#8_channel_pigtail|]]<br />
rect 405 1414 762 1942 [[#4_channel_extension|]]<br />
rect 173 1962 532 2669 [[#4_channel_splitter|]]<br />
rect 516 1962 773 2478 [[#4_channel_pigtail|]]<br />
rect 299 2675 673 3143 [[#Single_channel_extension|]]<br />
rect 166 3176 268 3789 [[#Single_channel_pigtail|]]<br />
rect 310 3176 410 3840 [[#Pressure_sensor|]]<br />
rect 441 3176 545 3725 [[#Linear_temperature_sensor|]]<br />
</imagemap><br />
<br />
=CAN bus harness components=<br />
==Dual CAN splitter==<br />
M8-6P male to dual M8-4P female splits CAN1/CAN2 into individual CAN1 and CAN2 connections.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/can1-can2-dual-can-splitter/]]<br />
<br />
Limited power (1A @ 12v) is provided to devices connected to CAN1 and CAN2. For higher power requirements, please use the [[#Powered_dual_CAN_hub|Powered Dual CAN Hub]]<br />
<br />
* A connection: connects to CAN1<br />
* B connection: connects to CAN2<br />
<br />
[[image:ASL_DUAL_CAN_SPLITTER_diagram.jpg]]<br />
<br />
[[image:ASL_DUAL_CAN_SPLITTER.jpg|700px]]<br />
<br />
==Dual CAN interconnect==<br />
M8-6P male to M8-6P male link cable for connecting two CAN bus networks to our [[#Powered_dual_CAN_hub|Powered Dual CAN Hub]]. 1 meter length.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/racecapture-m8-to-dual-can-bus-link-cable/]]<br />
<br />
[[image:ASL_DUAL_CAN_M8_1M_diagram.jpg]]<br />
<br />
[[image:ASL_DUAL_CAN_M8_1M.jpg|500px]]<br />
<br />
==Powered dual CAN hub==<br />
Powered CAN hub featuring 8 ports (4 ports for CAN1 and 4 ports for CAN2). Use with the [[#Dual_CAN_interconnect|Dual CAN interconnect]] cable to link to your RaceCapture or PodiumConnect system. <br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/powered-8-port-dual-can-bus-hub-kit/]]<br />
<br />
[[image:powered_8_port_dual_can_hub_3quarter.jpg|500px]]<br />
<br />
==CAN extension==<br />
M8-4P male to M8-4P female cable extends a CAN bus network. Available in 0.5, 1, 2, 3, and 4 meter lengths. [[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/can-bus-extension-cable/]]<br />
<br />
<br />
* Power rated at 1A (12watts at 12v)<br />
<br />
[[image:ASL_M8_CAN_EXT_0.5M_1M_2M_3M_4M_diagram.jpg]]<br />
<br />
[[image:CAN_extension_cable.jpg|700px]]<br />
<br />
==CAN splitter==<br />
M8-4P male to dual M8-4P splits a single CAN bus so a device can be inserted in the middle of a CAN bus network.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/can-bus-splitter/]]<br />
* '''Note''': stub length to devices should be about 300mm maximum, including length of Y adapter branch. <br />
<br />
The Y adapter includes a 15cm feed connection with a M8 4P male connector, with two 10cm connections with M8 4P female connectors on each end, wired in parallel.<br />
<br />
[[image:ASL_CAN_SPLITTER_diagram.jpg]]<br />
<br />
[[image:can_splitter_y_adapter.jpg|700px]]<br />
<br />
==Inline CAN terminator==<br />
M8-4P male to M8-4P female inline 120 ohm CAN terminator - place one near end of the CAN bus network to ensure signal integrity. <br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/inline-can-terminator/]]<br />
<br />
* '''Note''': Only one terminator should be used at the end of the network/cable-run. <br />
<br />
[[image:ASL_CAN_TERMINATOR_diagram.jpg]]<br />
<br />
[[image:inline_can_terminator.jpg|500px]]<br />
<br />
==Power CAN pigtail==<br />
M8-4P male to pigtail for connecting custom device to the Plug and Play cabling system, or for powering a RaceCapture or PodiumConnect system. 2 meter length. <br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/power-can-pigtail/]]<br />
<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Color !! Connection<br />
|-<br />
| 1 || White || CAN low<br />
|-<br />
| 2 || Red || 9-24v / 1A (~12W)<br />
|-<br />
| 3 || Green || CAN high<br />
|-<br />
| 4 || Black || Ground<br />
|}<br />
<br />
[[image:ASL_POWER_CAN_PIGTAIL_2M_diagram.jpg]]<br />
<br />
[[image:CAN_power_pigtail.jpg|600px]]<br />
<br />
==CAN+power for device==<br />
M8-4P female to pigtail for a custom-wired non Plug and Play connection to one of our CAN bus enabled devices such as TireX, AnalogX2, or ShiftX3<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/can-power-pigtail-for-device/]]<br />
<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Color !! Connection<br />
|-<br />
| 1 || White || CAN low<br />
|-<br />
| 2 || Red || 9-24v / 1A (~12W)<br />
|-<br />
| 3 || Green || CAN high<br />
|-<br />
| 4 || Black || Ground<br />
|}<br />
<br />
[[image:ASL_DEVICE_CAN_PIGTAIL_1M_diagram.jpg]]<br />
<br />
[[image:ASL_DEVICE_CAN_PIGTAIL_1M.jpg|500px]]<br />
<br />
=Analog / Digital harness components=<br />
==8 channel extension==<br />
Male to Female M12 12P cable extends 8 analog or digital channels. Available in 1 or 2 meter lengths.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/8x_sensor_extension_cable/]]<br />
<br />
[[file:ASL_M12_OCTO_SENSOR_EXTENSION_1M_2M_diagram.jpg]]<br />
<br />
[[file:ASL_M12_OCTO_SENSOR_EXTENSION_1M_2M_1024.jpg|700px]]<br />
<br />
==8 to 4 channel splitter==<br />
M12-12P male to dual M8-8P female connector splits 8 analog or digital channels into dual 4 channel connections.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/8-to-4-channel-sensor-splitter/]]<br />
<br />
* Connections<br />
** Channels 1-4 are connected to the 'A' branch<br />
** Channels 5-8 are connected to the 'B' branch<br />
<br />
[[image:ASL_OCTO_SENSOR_SPLITTER_diagram.jpg]]<br />
<br />
[[image:ASL_OCTO_SENSOR_SPLITTER_1024.jpg|700px]]<br />
<br />
==8 channel pigtail==<br />
M12-12P 0.3 meter male pigtail breaks out 8 analog or digital channels.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/8-channel-analog-digital-sensor-pigtail/]]<br />
<br />
* 24 AWG<br />
<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Color !! Connection !! Analog Mapping !! Digital Mapping<br />
|-<br />
| 1 || Blue || Analog/Digital B1 || Analog 5 || GPIO 1<br />
|-<br />
| 2 || Yellow || Analog/Digital B2 || Analog 6 || GPIO 2<br />
|-<br />
| 3 || Green || Analog/Digital B4 || Analog 8 || GPIO 4<br />
|-<br />
| 4 || Pink || Analog/Digital A1 || Analog 1 || Timer/RPM 1<br />
|-<br />
| 5 || White || Analog/Digital A2 || Analog 2 || Timer/RPM 2<br />
|-<br />
| 6 || Red || Vref || 5v @ 0.5A || 5v @ 0.5A<br />
|-<br />
| 7 || Violet || Analog/Digital A3 || Analog 3 || Timer/RPM 3<br />
|-<br />
| 8 || Orange || Analog/Digital A4 || Analog 4 || Timer/RPM 4<br />
|-<br />
| 9 || Light Green || Analog/Digital B3 || Analog 7 || GPIO 3<br />
|-<br />
| 10 || Grey || Ground || ||<br />
|-<br />
| 11 || Brown || Ground || ||<br />
|-<br />
| 12 || Black || Ground || <br />
|}<br />
<br />
[[image:ASL_M12_OCTO_SENSOR_PIGTAIL_0.3M_diagram.jpg]]<br />
<br />
[[image:ASL_M12_OCTO_SENSOR_PIGTAIL_0.3M_1024.jpg|700px]]<br />
<br />
==4 channel extension==<br />
M8-4P male to M8-4P female cable extends 4 analog or digital channels. Available in 1 and 2 meter lengths.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/4-channel-sensor-extension-cable/]]<br />
<br />
[[image:ASL_M8_QUAD_SENSOR_EXTENSION_1M_2M_diagram.jpg]]<br />
<br />
[[image:ASL_M8_QUAD_SENSOR_EXTENSION_1M_2M_1024.jpg|700px]]<br />
<br />
==4 channel pigtail==<br />
M8-8P male pigtail for 4 analog or digital channels. 1 meter length.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/quad-analog-digital-sensor-pigtail/]]<br />
<br />
* 24 AWG<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Color !! Connection<br />
|-<br />
| 1 || White || Analog/Digital 1<br />
|-<br />
| 2 || Yellow || Analog/Digital 2<br />
|-<br />
| 3 || Grey || Analog/Digital 4<br />
|-<br />
| 4 || Red || 5v reference<br />
|-<br />
| 5 || Brown || Ground<br />
|-<br />
| 6 || Pink || 5v reference<br />
|-<br />
| 7 || Blue || Analog/Digital 3<br />
|-<br />
| 8 || Green || Ground<br />
|}<br />
<br />
[[image:ASL_M8_QUAD_SENSOR_PIGTAIL_1M_diagram.jpg]]<br />
<br />
[[image:ASL_M8_QUAD_SENSOR_PIGTAIL_1M.jpg|700px]]<br />
<br />
==4 channel splitter==<br />
M8-8P Male splits 4 analog or digital channels into 4 M8-3P female connections.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/4-channel-analog-digital-sensor-splitter/]]<br />
<br />
* Connections<br />
** P1 : upstream connection<br />
** P2 - P5: 1st through last channel connection for this splitter<br />
<br />
[[image:ASL_QUAD_SENSOR_SPLITTER_diagram.jpg]]<br />
<br />
[[image:ASL_QUAD_SENSOR_SPLITTER.jpg|700px]]<br />
<br />
==Single channel extension==<br />
M8-3P male to M3-3P female extends a single analog or digital channel. Available in 1, 2, 3, and 4 meter lengths.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/analog-digital-sensor-extension/]]<br />
<br />
[[image:ASL_M8_SENSOR_EXTENSION_1M_2M_3M_4M_diagram.jpg]]<br />
<br />
[[image:ASL_M8_SENSOR_EXTENSION_1M_2M_3M_4M.jpg|700px]]<br />
<br />
==Single channel pigtail==<br />
M8-3P male pigtail for a single analog or digital connection. 2 meter length.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/analog-digital-sensor-pigtail/]]<br />
<br />
* 24 AWG<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Color !! Connection<br />
|-<br />
| 1 || Brown || Ground<br />
|-<br />
| 3 || Blue || 5v<br />
|-<br />
| 4 || Black || Signal Input<br />
|}<br />
<br />
[[image:ASL_M8_SENSOR_PIGTAIL_2M_diagram.jpg]]<br />
<br />
[[image:ASL_M8_SENSOR_PIGTAIL_2M.jpg|700px]]<br />
<br />
==Pressure sensor==<br />
M8-3P male to 3 pin Delphi GT150 pressure sensor connector. 2 meter length. <br />
<br />
* 10 bar/150 PSI [[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/10-bar-150-psi-pressure-sensor-with-plug-and-play-harness/]]<br />
* 150 bar/2175 PSI [[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/150-bar-2175-psi-pressure-sensor-with-plug-and-play-harness/]]<br />
<br />
{| class="wikitable"<br />
|-<br />
! M8 Pin !! GT150 Pin !! Connection<br />
|-<br />
| 1 || A || Ground<br />
|-<br />
| 3 || B || 5v Power<br />
|-<br />
| 4 || C || Signal<br />
|}<br />
<br />
<br />
[[image:ASL_DELPHI3_M8_diagram.jpg]]<br />
<br />
[[image:ASL_DELPHI3_M8_pressure_sensor.jpg|700px]]<br />
<br />
==Linear temperature sensor==<br />
M8-3P male to linear temperature sensor. 2 meter length. <br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/40-to-150c-linear-temperature-sensor-with-plug-and-play-harness/]]<br />
<br />
[[image:ASL_LINEAR_TEMP_M8_diagram.jpg]]<br />
<br />
[[image:ASL_LINEAR_TEMP_M8.jpg|700px]]<br />
<br />
=Standard connectors and pinouts=<br />
The following represents connector and pinout standard for power, CAN, and analog/digital signaling<br />
<br />
Interconnects are based on industry-standard M8 and M12 connectors<br />
<br />
==Power + CAN Single interconnect==<br />
* Connector: M8 4P, A coding<br />
[[file:M8_4P_male_pinout.jpg|200px]]<br />
<br />
''Male connector pictured''<br />
<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Notes<br />
|-<br />
| 1 || CAN low || White<br />
|-<br />
| 2 || Power || Red, 9-24v / 1A (~12W)<br />
|-<br />
| 3 || CAN high || Green<br />
|-<br />
| 4 || Ground || Black<br />
|}<br />
<br />
Power is standard automotive 12-14v (nominal).<br />
<br />
The M8 is an industry standard connector; field-wireable connectors for the M8 4P and other variants are available from 3rd parties:<br />
<br />
* Male: [https://www.te.com/usa-en/product-T4011008041-000.html Straight] | [https://www.te.com/usa-en/product-T4013008041-000.html Right angle]<br />
* Female: [https://www.te.com/usa-en/product-T4010008041-000.html Straight] | [https://www.te.com/usa-en/product-T4012008041-000.html Right angle]<br />
<br />
==Dual CAN + power interconnect==<br />
* Connector: M8 6P, A coding<br />
[[file:M8_6P_male_connector.png]]<br />
<br />
''Male connector pictured''<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Notes<br />
|-<br />
| 1 || CAN1 low ||<br />
|-<br />
| 2 || CAN2 low ||<br />
|-<br />
| 3 || CAN2 high ||<br />
|-<br />
| 4 || Ground ||<br />
|-<br />
| 5 || CAN1 high ||<br />
|-<br />
| 6 || Power || 9-24v / 1A (~12W)<br />
|}<br />
<br />
==Single analog/digital channel==<br />
* Connector: M8 3P, A coding<br />
[[file:M8_3P_male_connector.png]]<br />
<br />
''Male connector pictured''<br />
<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Notes<br />
|-<br />
| 1 || Ground || Brown<br />
|-<br />
| 3 || Power || Blue (5v @ 1A max)<br />
|-<br />
| 4 || Signal || Black<br />
|}<br />
<br />
==Quad analog/digital channels==<br />
* Connector: M8 8P Male, A coding<br />
[[file:M8_8P_male_pinout.jpg|200px]]<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Notes<br />
|-<br />
| 1 || Analog/Digital 1 ||<br />
|-<br />
| 2 || Analog/Digital 2 ||<br />
|-<br />
| 3 || Analog/Digital 4 ||<br />
|-<br />
| 4 || Vref || 5v @ 1A max current, combined with pin 6<br />
|-<br />
| 5 || Ground || <br />
|-<br />
| 6 || Vref || 5v @ 1A max current, combined with pin 4<br />
|-<br />
| 7 || Analog/Digital 3 ||<br />
|-<br />
| 8 || Ground || <br />
|}<br />
<br />
==Octo analog/digital channels==<br />
* Connector: M8 12P, A coding<br />
[[file:M12_12P_male_connector.png]]<br />
<br />
''Male connector pictured''<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Analog Mapping !! Digital Mapping<br />
|-<br />
| 1 || Analog/Digital B1 || Analog 5 || GPIO 1<br />
|-<br />
| 2 || Analog/Digital B2 || Analog 6 || GPIO 2<br />
|-<br />
| 3 || Analog/Digital B4 || Analog 8 || GPIO 4<br />
|-<br />
| 4 || Analog/Digital A1 || Analog 1 || Timer/RPM 1<br />
|-<br />
| 5 || Analog/Digital A2 || Analog 2 || Timer/RPM 2<br />
|-<br />
| 6 || Vref || 5v @ 0.5A || 5v @ 0.5A<br />
|-<br />
| 7 || Analog/Digital A3 || Analog 3 || Timer/RPM 3<br />
|-<br />
| 8 || Analog/Digital A4 || Analog 4 || Timer/RPM 4<br />
|-<br />
| 9 || Analog/Digital B3 || Analog 7 || GPIO 3<br />
|-<br />
| 10 || Ground || ||<br />
|-<br />
| 11 || Ground || ||<br />
|-<br />
| 12 || Ground || <br />
|}</div>Brentphttps://wiki.autosportlabs.com/index.php?title=Harness_specifications&diff=9700Harness specifications2023-08-30T14:21:19Z<p>Brentp: /* 4 channel splitter */</p>
<hr />
<div>https://i.imgur.com/sZcvrLp.mp4<br />
<br />
=Plug and Play harness system=<br />
[[#Analog_harness|Jump to the Analog/Digital Harness system]]<br />
==CAN bus Harness==<br />
The plug and play CAN bus harness system lets you easily connect CAN bus devices to your RaceCapture or PodiumConnect system, without the need to splice, crimp, or heat-shrink connections. Multiple-length extension cables lets you build a harness that perfectly matches your installation needs.<br />
<br />
* '''Note''' The inline CAN terminator only needs to be added once, near the last device connected to the end of the network<br />
<br />
Click on the items within the image to see details.<br />
<imagemap>Image:combined_CAN_harnesses.jpg|Subtitle of Image Map combined_CAN_harnesses.jpg<br />
rect 162 3 551 737 [[#Dual_CAN_splitter|]]<br />
rect 618 8 930 531 [[#Dual_CAN_interconnect|]]<br />
rect 577 538 969 784 [[#Powered_dual_CAN_hub|]]<br />
rect 277 914 685 1491 [[#CAN_extension|]]<br />
rect 217 1503 669 2345 [[#CAN_splitter|]]<br />
rect 300 2452 723 2643 [[#Inline_CAN_terminator|]]<br />
rect 60 2767 258 3543 [[#Power_CAN_pigtail|]]<br />
rect 503 3510 948 3697 [[AnalogX2|]]<br />
rect 479 3341 906 3512 [[ShiftX3|]]<br />
rect 488 3127 907 3333 [[TireX|]]<br />
</imagemap><br />
<br />
==Analog harness==<br />
The plug and play Analog/Digital harness system lets you easily connect individual sensors to your RaceCapture system, without the need to splice, crimp, or heat shrink connections. Multiple-length extension cables for each level lets you build a harness that perfectly matches your installation needs.<br />
<br />
* '''Note:''' The same 8 channel connector (and downstream connectors) can plug into an M12-12P analog port or the M12-12P digital port of the system. <br />
<br />
Click on the items within the image to see details.<br />
<br />
<imagemap>Image:combined_analog_harnesses.jpg|Subtitle of Image Map combined_analog_harnesses.jpg<br />
rect 309 18 630 707 [[#8_channel_extension|]]<br />
rect 222 710 573 1408 [[#8_to_4_channel_splitter|]]<br />
rect 581 709 882 1385 [[#8_channel_pigtail|]]<br />
rect 405 1414 762 1942 [[#4_channel_extension|]]<br />
rect 173 1962 532 2669 [[#4_channel_splitter|]]<br />
rect 516 1962 773 2478 [[#4_channel_pigtail|]]<br />
rect 299 2675 673 3143 [[#Single_channel_extension|]]<br />
rect 166 3176 268 3789 [[#Single_channel_pigtail|]]<br />
rect 310 3176 410 3840 [[#Pressure_sensor|]]<br />
rect 441 3176 545 3725 [[#Linear_temperature_sensor|]]<br />
</imagemap><br />
<br />
=CAN bus harness components=<br />
==Dual CAN splitter==<br />
M8-6P male to dual M8-4P female splits CAN1/CAN2 into individual CAN1 and CAN2 connections.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/can1-can2-dual-can-splitter/]]<br />
<br />
Limited power (1A @ 12v) is provided to devices connected to CAN1 and CAN2. For higher power requirements, please use the [[#Powered_dual_CAN_hub|Powered Dual CAN Hub]]<br />
<br />
* A connection: connects to CAN1<br />
* B connection: connects to CAN2<br />
<br />
[[image:ASL_DUAL_CAN_SPLITTER_diagram.jpg]]<br />
<br />
[[image:ASL_DUAL_CAN_SPLITTER.jpg|700px]]<br />
<br />
==Dual CAN interconnect==<br />
M8-6P male to M8-6P male link cable for connecting two CAN bus networks to our [[#Powered_dual_CAN_hub|Powered Dual CAN Hub]]. 1 meter length.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/racecapture-m8-to-dual-can-bus-link-cable/]]<br />
<br />
[[image:ASL_DUAL_CAN_M8_1M_diagram.jpg]]<br />
<br />
[[image:ASL_DUAL_CAN_M8_1M.jpg|500px]]<br />
<br />
==Powered dual CAN hub==<br />
Powered CAN hub featuring 8 ports (4 ports for CAN1 and 4 ports for CAN2). Use with the [[#Dual_CAN_interconnect|Dual CAN interconnect]] cable to link to your RaceCapture or PodiumConnect system. <br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/powered-8-port-dual-can-bus-hub-kit/]]<br />
<br />
[[image:powered_8_port_dual_can_hub_3quarter.jpg|500px]]<br />
<br />
==CAN extension==<br />
M8-4P male to M8-4P female cable extends a CAN bus network. Available in 0.5, 1, 2, 3, and 4 meter lengths. [[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/can-bus-extension-cable/]]<br />
<br />
<br />
* Power rated at 1A (12watts at 12v)<br />
<br />
[[image:ASL_M8_CAN_EXT_0.5M_1M_2M_3M_4M_diagram.jpg]]<br />
<br />
[[image:CAN_extension_cable.jpg|700px]]<br />
<br />
==CAN splitter==<br />
M8-4P male to dual M8-4P splits a single CAN bus so a device can be inserted in the middle of a CAN bus network.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/can-bus-splitter/]]<br />
* '''Note''': stub length to devices should be about 300mm maximum, including length of Y adapter branch. <br />
<br />
The Y adapter includes a 15cm feed connection with a M8 4P male connector, with two 10cm connections with M8 4P female connectors on each end, wired in parallel.<br />
<br />
[[image:ASL_CAN_SPLITTER_diagram.jpg]]<br />
<br />
[[image:can_splitter_y_adapter.jpg|700px]]<br />
<br />
==Inline CAN terminator==<br />
M8-4P male to M8-4P female inline 120 ohm CAN terminator - place one near end of the CAN bus network to ensure signal integrity. <br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/inline-can-terminator/]]<br />
<br />
* '''Note''': Only one terminator should be used at the end of the network/cable-run. <br />
<br />
[[image:ASL_CAN_TERMINATOR_diagram.jpg]]<br />
<br />
[[image:inline_can_terminator.jpg|500px]]<br />
<br />
==Power CAN pigtail==<br />
M8-4P male to pigtail for connecting custom device to the Plug and Play cabling system, or for powering a RaceCapture or PodiumConnect system. 2 meter length. <br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/power-can-pigtail/]]<br />
<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Color !! Connection<br />
|-<br />
| 1 || White || CAN low<br />
|-<br />
| 2 || Red || 9-24v / 1A (~12W)<br />
|-<br />
| 3 || Green || CAN high<br />
|-<br />
| 4 || Black || Ground<br />
|}<br />
<br />
[[image:ASL_POWER_CAN_PIGTAIL_2M_diagram.jpg]]<br />
<br />
[[image:CAN_power_pigtail.jpg|600px]]<br />
<br />
==CAN+power for device==<br />
M8-4P female to pigtail for a custom-wired non Plug and Play connection to one of our CAN bus enabled devices such as TireX, AnalogX2, or ShiftX3<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/can-power-pigtail-for-device/]]<br />
<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Color !! Connection<br />
|-<br />
| 1 || White || CAN low<br />
|-<br />
| 2 || Red || 9-24v / 1A (~12W)<br />
|-<br />
| 3 || Green || CAN high<br />
|-<br />
| 4 || Black || Ground<br />
|}<br />
<br />
[[image:ASL_DEVICE_CAN_PIGTAIL_1M_diagram.jpg]]<br />
<br />
[[image:ASL_DEVICE_CAN_PIGTAIL_1M.jpg|500px]]<br />
<br />
=Analog / Digital harness components=<br />
==8 channel extension==<br />
Male to Female M12 12P cable extends 8 analog or digital channels. Available in 1 or 2 meter lengths.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/8x_sensor_extension_cable/]]<br />
<br />
[[file:ASL_M12_OCTO_SENSOR_EXTENSION_1M_2M_diagram.jpg]]<br />
<br />
[[file:ASL_M12_OCTO_SENSOR_EXTENSION_1M_2M_1024.jpg|700px]]<br />
<br />
==8 to 4 channel splitter==<br />
M12-12P male to dual M8-8P female connector splits 8 analog or digital channels into dual 4 channel connections.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/8-to-4-channel-sensor-splitter/]]<br />
<br />
* Channels 1-4 are connected to the 'A' branch<br />
* Channels 5-8 are connected to the 'B' branch<br />
<br />
[[image:ASL_OCTO_SENSOR_SPLITTER_diagram.jpg]]<br />
<br />
[[image:ASL_OCTO_SENSOR_SPLITTER_1024.jpg|700px]]<br />
<br />
==8 channel pigtail==<br />
M12-12P 0.3 meter male pigtail breaks out 8 analog or digital channels.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/8-channel-analog-digital-sensor-pigtail/]]<br />
<br />
* 24 AWG<br />
<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Color !! Connection !! Analog Mapping !! Digital Mapping<br />
|-<br />
| 1 || Blue || Analog/Digital B1 || Analog 5 || GPIO 1<br />
|-<br />
| 2 || Yellow || Analog/Digital B2 || Analog 6 || GPIO 2<br />
|-<br />
| 3 || Green || Analog/Digital B4 || Analog 8 || GPIO 4<br />
|-<br />
| 4 || Pink || Analog/Digital A1 || Analog 1 || Timer/RPM 1<br />
|-<br />
| 5 || White || Analog/Digital A2 || Analog 2 || Timer/RPM 2<br />
|-<br />
| 6 || Red || Vref || 5v @ 0.5A || 5v @ 0.5A<br />
|-<br />
| 7 || Violet || Analog/Digital A3 || Analog 3 || Timer/RPM 3<br />
|-<br />
| 8 || Orange || Analog/Digital A4 || Analog 4 || Timer/RPM 4<br />
|-<br />
| 9 || Light Green || Analog/Digital B3 || Analog 7 || GPIO 3<br />
|-<br />
| 10 || Grey || Ground || ||<br />
|-<br />
| 11 || Brown || Ground || ||<br />
|-<br />
| 12 || Black || Ground || <br />
|}<br />
<br />
[[image:ASL_M12_OCTO_SENSOR_PIGTAIL_0.3M_diagram.jpg]]<br />
<br />
[[image:ASL_M12_OCTO_SENSOR_PIGTAIL_0.3M_1024.jpg|700px]]<br />
<br />
==4 channel extension==<br />
M8-4P male to M8-4P female cable extends 4 analog or digital channels. Available in 1 and 2 meter lengths.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/4-channel-sensor-extension-cable/]]<br />
<br />
[[image:ASL_M8_QUAD_SENSOR_EXTENSION_1M_2M_diagram.jpg]]<br />
<br />
[[image:ASL_M8_QUAD_SENSOR_EXTENSION_1M_2M_1024.jpg|700px]]<br />
<br />
==4 channel pigtail==<br />
M8-8P male pigtail for 4 analog or digital channels. 1 meter length.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/quad-analog-digital-sensor-pigtail/]]<br />
<br />
* 24 AWG<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Color !! Connection<br />
|-<br />
| 1 || White || Analog/Digital 1<br />
|-<br />
| 2 || Yellow || Analog/Digital 2<br />
|-<br />
| 3 || Grey || Analog/Digital 4<br />
|-<br />
| 4 || Red || 5v reference<br />
|-<br />
| 5 || Brown || Ground<br />
|-<br />
| 6 || Pink || 5v reference<br />
|-<br />
| 7 || Blue || Analog/Digital 3<br />
|-<br />
| 8 || Green || Ground<br />
|}<br />
<br />
[[image:ASL_M8_QUAD_SENSOR_PIGTAIL_1M_diagram.jpg]]<br />
<br />
[[image:ASL_M8_QUAD_SENSOR_PIGTAIL_1M.jpg|700px]]<br />
<br />
==4 channel splitter==<br />
M8-8P Male splits 4 analog or digital channels into 4 M8-3P female connections.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/4-channel-analog-digital-sensor-splitter/]]<br />
<br />
* Connections<br />
** P1 : upstream connection<br />
** P2 - P5: 1st through last channel connection for this splitter<br />
<br />
[[image:ASL_QUAD_SENSOR_SPLITTER_diagram.jpg]]<br />
<br />
[[image:ASL_QUAD_SENSOR_SPLITTER.jpg|700px]]<br />
<br />
==Single channel extension==<br />
M8-3P male to M3-3P female extends a single analog or digital channel. Available in 1, 2, 3, and 4 meter lengths.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/analog-digital-sensor-extension/]]<br />
<br />
[[image:ASL_M8_SENSOR_EXTENSION_1M_2M_3M_4M_diagram.jpg]]<br />
<br />
[[image:ASL_M8_SENSOR_EXTENSION_1M_2M_3M_4M.jpg|700px]]<br />
<br />
==Single channel pigtail==<br />
M8-3P male pigtail for a single analog or digital connection. 2 meter length.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/analog-digital-sensor-pigtail/]]<br />
<br />
* 24 AWG<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Color !! Connection<br />
|-<br />
| 1 || Brown || Ground<br />
|-<br />
| 3 || Blue || 5v<br />
|-<br />
| 4 || Black || Signal Input<br />
|}<br />
<br />
[[image:ASL_M8_SENSOR_PIGTAIL_2M_diagram.jpg]]<br />
<br />
[[image:ASL_M8_SENSOR_PIGTAIL_2M.jpg|700px]]<br />
<br />
==Pressure sensor==<br />
M8-3P male to 3 pin Delphi GT150 pressure sensor connector. 2 meter length. <br />
<br />
* 10 bar/150 PSI [[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/10-bar-150-psi-pressure-sensor-with-plug-and-play-harness/]]<br />
* 150 bar/2175 PSI [[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/150-bar-2175-psi-pressure-sensor-with-plug-and-play-harness/]]<br />
<br />
{| class="wikitable"<br />
|-<br />
! M8 Pin !! GT150 Pin !! Connection<br />
|-<br />
| 1 || A || Ground<br />
|-<br />
| 3 || B || 5v Power<br />
|-<br />
| 4 || C || Signal<br />
|}<br />
<br />
<br />
[[image:ASL_DELPHI3_M8_diagram.jpg]]<br />
<br />
[[image:ASL_DELPHI3_M8_pressure_sensor.jpg|700px]]<br />
<br />
==Linear temperature sensor==<br />
M8-3P male to linear temperature sensor. 2 meter length. <br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/40-to-150c-linear-temperature-sensor-with-plug-and-play-harness/]]<br />
<br />
[[image:ASL_LINEAR_TEMP_M8_diagram.jpg]]<br />
<br />
[[image:ASL_LINEAR_TEMP_M8.jpg|700px]]<br />
<br />
=Standard connectors and pinouts=<br />
The following represents connector and pinout standard for power, CAN, and analog/digital signaling<br />
<br />
Interconnects are based on industry-standard M8 and M12 connectors<br />
<br />
==Power + CAN Single interconnect==<br />
* Connector: M8 4P, A coding<br />
[[file:M8_4P_male_pinout.jpg|200px]]<br />
<br />
''Male connector pictured''<br />
<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Notes<br />
|-<br />
| 1 || CAN low || White<br />
|-<br />
| 2 || Power || Red, 9-24v / 1A (~12W)<br />
|-<br />
| 3 || CAN high || Green<br />
|-<br />
| 4 || Ground || Black<br />
|}<br />
<br />
Power is standard automotive 12-14v (nominal).<br />
<br />
The M8 is an industry standard connector; field-wireable connectors for the M8 4P and other variants are available from 3rd parties:<br />
<br />
* Male: [https://www.te.com/usa-en/product-T4011008041-000.html Straight] | [https://www.te.com/usa-en/product-T4013008041-000.html Right angle]<br />
* Female: [https://www.te.com/usa-en/product-T4010008041-000.html Straight] | [https://www.te.com/usa-en/product-T4012008041-000.html Right angle]<br />
<br />
==Dual CAN + power interconnect==<br />
* Connector: M8 6P, A coding<br />
[[file:M8_6P_male_connector.png]]<br />
<br />
''Male connector pictured''<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Notes<br />
|-<br />
| 1 || CAN1 low ||<br />
|-<br />
| 2 || CAN2 low ||<br />
|-<br />
| 3 || CAN2 high ||<br />
|-<br />
| 4 || Ground ||<br />
|-<br />
| 5 || CAN1 high ||<br />
|-<br />
| 6 || Power || 9-24v / 1A (~12W)<br />
|}<br />
<br />
==Single analog/digital channel==<br />
* Connector: M8 3P, A coding<br />
[[file:M8_3P_male_connector.png]]<br />
<br />
''Male connector pictured''<br />
<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Notes<br />
|-<br />
| 1 || Ground || Brown<br />
|-<br />
| 3 || Power || Blue (5v @ 1A max)<br />
|-<br />
| 4 || Signal || Black<br />
|}<br />
<br />
==Quad analog/digital channels==<br />
* Connector: M8 8P Male, A coding<br />
[[file:M8_8P_male_pinout.jpg|200px]]<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Notes<br />
|-<br />
| 1 || Analog/Digital 1 ||<br />
|-<br />
| 2 || Analog/Digital 2 ||<br />
|-<br />
| 3 || Analog/Digital 4 ||<br />
|-<br />
| 4 || Vref || 5v @ 1A max current, combined with pin 6<br />
|-<br />
| 5 || Ground || <br />
|-<br />
| 6 || Vref || 5v @ 1A max current, combined with pin 4<br />
|-<br />
| 7 || Analog/Digital 3 ||<br />
|-<br />
| 8 || Ground || <br />
|}<br />
<br />
==Octo analog/digital channels==<br />
* Connector: M8 12P, A coding<br />
[[file:M12_12P_male_connector.png]]<br />
<br />
''Male connector pictured''<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Analog Mapping !! Digital Mapping<br />
|-<br />
| 1 || Analog/Digital B1 || Analog 5 || GPIO 1<br />
|-<br />
| 2 || Analog/Digital B2 || Analog 6 || GPIO 2<br />
|-<br />
| 3 || Analog/Digital B4 || Analog 8 || GPIO 4<br />
|-<br />
| 4 || Analog/Digital A1 || Analog 1 || Timer/RPM 1<br />
|-<br />
| 5 || Analog/Digital A2 || Analog 2 || Timer/RPM 2<br />
|-<br />
| 6 || Vref || 5v @ 0.5A || 5v @ 0.5A<br />
|-<br />
| 7 || Analog/Digital A3 || Analog 3 || Timer/RPM 3<br />
|-<br />
| 8 || Analog/Digital A4 || Analog 4 || Timer/RPM 4<br />
|-<br />
| 9 || Analog/Digital B3 || Analog 7 || GPIO 3<br />
|-<br />
| 10 || Ground || ||<br />
|-<br />
| 11 || Ground || ||<br />
|-<br />
| 12 || Ground || <br />
|}</div>Brentphttps://wiki.autosportlabs.com/index.php?title=Harness_specifications&diff=9699Harness specifications2023-08-30T14:19:41Z<p>Brentp: /* 8 to 4 channel splitter */</p>
<hr />
<div>https://i.imgur.com/sZcvrLp.mp4<br />
<br />
=Plug and Play harness system=<br />
[[#Analog_harness|Jump to the Analog/Digital Harness system]]<br />
==CAN bus Harness==<br />
The plug and play CAN bus harness system lets you easily connect CAN bus devices to your RaceCapture or PodiumConnect system, without the need to splice, crimp, or heat-shrink connections. Multiple-length extension cables lets you build a harness that perfectly matches your installation needs.<br />
<br />
* '''Note''' The inline CAN terminator only needs to be added once, near the last device connected to the end of the network<br />
<br />
Click on the items within the image to see details.<br />
<imagemap>Image:combined_CAN_harnesses.jpg|Subtitle of Image Map combined_CAN_harnesses.jpg<br />
rect 162 3 551 737 [[#Dual_CAN_splitter|]]<br />
rect 618 8 930 531 [[#Dual_CAN_interconnect|]]<br />
rect 577 538 969 784 [[#Powered_dual_CAN_hub|]]<br />
rect 277 914 685 1491 [[#CAN_extension|]]<br />
rect 217 1503 669 2345 [[#CAN_splitter|]]<br />
rect 300 2452 723 2643 [[#Inline_CAN_terminator|]]<br />
rect 60 2767 258 3543 [[#Power_CAN_pigtail|]]<br />
rect 503 3510 948 3697 [[AnalogX2|]]<br />
rect 479 3341 906 3512 [[ShiftX3|]]<br />
rect 488 3127 907 3333 [[TireX|]]<br />
</imagemap><br />
<br />
==Analog harness==<br />
The plug and play Analog/Digital harness system lets you easily connect individual sensors to your RaceCapture system, without the need to splice, crimp, or heat shrink connections. Multiple-length extension cables for each level lets you build a harness that perfectly matches your installation needs.<br />
<br />
* '''Note:''' The same 8 channel connector (and downstream connectors) can plug into an M12-12P analog port or the M12-12P digital port of the system. <br />
<br />
Click on the items within the image to see details.<br />
<br />
<imagemap>Image:combined_analog_harnesses.jpg|Subtitle of Image Map combined_analog_harnesses.jpg<br />
rect 309 18 630 707 [[#8_channel_extension|]]<br />
rect 222 710 573 1408 [[#8_to_4_channel_splitter|]]<br />
rect 581 709 882 1385 [[#8_channel_pigtail|]]<br />
rect 405 1414 762 1942 [[#4_channel_extension|]]<br />
rect 173 1962 532 2669 [[#4_channel_splitter|]]<br />
rect 516 1962 773 2478 [[#4_channel_pigtail|]]<br />
rect 299 2675 673 3143 [[#Single_channel_extension|]]<br />
rect 166 3176 268 3789 [[#Single_channel_pigtail|]]<br />
rect 310 3176 410 3840 [[#Pressure_sensor|]]<br />
rect 441 3176 545 3725 [[#Linear_temperature_sensor|]]<br />
</imagemap><br />
<br />
=CAN bus harness components=<br />
==Dual CAN splitter==<br />
M8-6P male to dual M8-4P female splits CAN1/CAN2 into individual CAN1 and CAN2 connections.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/can1-can2-dual-can-splitter/]]<br />
<br />
Limited power (1A @ 12v) is provided to devices connected to CAN1 and CAN2. For higher power requirements, please use the [[#Powered_dual_CAN_hub|Powered Dual CAN Hub]]<br />
<br />
* A connection: connects to CAN1<br />
* B connection: connects to CAN2<br />
<br />
[[image:ASL_DUAL_CAN_SPLITTER_diagram.jpg]]<br />
<br />
[[image:ASL_DUAL_CAN_SPLITTER.jpg|700px]]<br />
<br />
==Dual CAN interconnect==<br />
M8-6P male to M8-6P male link cable for connecting two CAN bus networks to our [[#Powered_dual_CAN_hub|Powered Dual CAN Hub]]. 1 meter length.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/racecapture-m8-to-dual-can-bus-link-cable/]]<br />
<br />
[[image:ASL_DUAL_CAN_M8_1M_diagram.jpg]]<br />
<br />
[[image:ASL_DUAL_CAN_M8_1M.jpg|500px]]<br />
<br />
==Powered dual CAN hub==<br />
Powered CAN hub featuring 8 ports (4 ports for CAN1 and 4 ports for CAN2). Use with the [[#Dual_CAN_interconnect|Dual CAN interconnect]] cable to link to your RaceCapture or PodiumConnect system. <br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/powered-8-port-dual-can-bus-hub-kit/]]<br />
<br />
[[image:powered_8_port_dual_can_hub_3quarter.jpg|500px]]<br />
<br />
==CAN extension==<br />
M8-4P male to M8-4P female cable extends a CAN bus network. Available in 0.5, 1, 2, 3, and 4 meter lengths. [[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/can-bus-extension-cable/]]<br />
<br />
<br />
* Power rated at 1A (12watts at 12v)<br />
<br />
[[image:ASL_M8_CAN_EXT_0.5M_1M_2M_3M_4M_diagram.jpg]]<br />
<br />
[[image:CAN_extension_cable.jpg|700px]]<br />
<br />
==CAN splitter==<br />
M8-4P male to dual M8-4P splits a single CAN bus so a device can be inserted in the middle of a CAN bus network.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/can-bus-splitter/]]<br />
* '''Note''': stub length to devices should be about 300mm maximum, including length of Y adapter branch. <br />
<br />
The Y adapter includes a 15cm feed connection with a M8 4P male connector, with two 10cm connections with M8 4P female connectors on each end, wired in parallel.<br />
<br />
[[image:ASL_CAN_SPLITTER_diagram.jpg]]<br />
<br />
[[image:can_splitter_y_adapter.jpg|700px]]<br />
<br />
==Inline CAN terminator==<br />
M8-4P male to M8-4P female inline 120 ohm CAN terminator - place one near end of the CAN bus network to ensure signal integrity. <br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/inline-can-terminator/]]<br />
<br />
* '''Note''': Only one terminator should be used at the end of the network/cable-run. <br />
<br />
[[image:ASL_CAN_TERMINATOR_diagram.jpg]]<br />
<br />
[[image:inline_can_terminator.jpg|500px]]<br />
<br />
==Power CAN pigtail==<br />
M8-4P male to pigtail for connecting custom device to the Plug and Play cabling system, or for powering a RaceCapture or PodiumConnect system. 2 meter length. <br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/power-can-pigtail/]]<br />
<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Color !! Connection<br />
|-<br />
| 1 || White || CAN low<br />
|-<br />
| 2 || Red || 9-24v / 1A (~12W)<br />
|-<br />
| 3 || Green || CAN high<br />
|-<br />
| 4 || Black || Ground<br />
|}<br />
<br />
[[image:ASL_POWER_CAN_PIGTAIL_2M_diagram.jpg]]<br />
<br />
[[image:CAN_power_pigtail.jpg|600px]]<br />
<br />
==CAN+power for device==<br />
M8-4P female to pigtail for a custom-wired non Plug and Play connection to one of our CAN bus enabled devices such as TireX, AnalogX2, or ShiftX3<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/can-power-pigtail-for-device/]]<br />
<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Color !! Connection<br />
|-<br />
| 1 || White || CAN low<br />
|-<br />
| 2 || Red || 9-24v / 1A (~12W)<br />
|-<br />
| 3 || Green || CAN high<br />
|-<br />
| 4 || Black || Ground<br />
|}<br />
<br />
[[image:ASL_DEVICE_CAN_PIGTAIL_1M_diagram.jpg]]<br />
<br />
[[image:ASL_DEVICE_CAN_PIGTAIL_1M.jpg|500px]]<br />
<br />
=Analog / Digital harness components=<br />
==8 channel extension==<br />
Male to Female M12 12P cable extends 8 analog or digital channels. Available in 1 or 2 meter lengths.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/8x_sensor_extension_cable/]]<br />
<br />
[[file:ASL_M12_OCTO_SENSOR_EXTENSION_1M_2M_diagram.jpg]]<br />
<br />
[[file:ASL_M12_OCTO_SENSOR_EXTENSION_1M_2M_1024.jpg|700px]]<br />
<br />
==8 to 4 channel splitter==<br />
M12-12P male to dual M8-8P female connector splits 8 analog or digital channels into dual 4 channel connections.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/8-to-4-channel-sensor-splitter/]]<br />
<br />
* Channels 1-4 are connected to the 'A' branch<br />
* Channels 5-8 are connected to the 'B' branch<br />
<br />
[[image:ASL_OCTO_SENSOR_SPLITTER_diagram.jpg]]<br />
<br />
[[image:ASL_OCTO_SENSOR_SPLITTER_1024.jpg|700px]]<br />
<br />
==8 channel pigtail==<br />
M12-12P 0.3 meter male pigtail breaks out 8 analog or digital channels.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/8-channel-analog-digital-sensor-pigtail/]]<br />
<br />
* 24 AWG<br />
<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Color !! Connection !! Analog Mapping !! Digital Mapping<br />
|-<br />
| 1 || Blue || Analog/Digital B1 || Analog 5 || GPIO 1<br />
|-<br />
| 2 || Yellow || Analog/Digital B2 || Analog 6 || GPIO 2<br />
|-<br />
| 3 || Green || Analog/Digital B4 || Analog 8 || GPIO 4<br />
|-<br />
| 4 || Pink || Analog/Digital A1 || Analog 1 || Timer/RPM 1<br />
|-<br />
| 5 || White || Analog/Digital A2 || Analog 2 || Timer/RPM 2<br />
|-<br />
| 6 || Red || Vref || 5v @ 0.5A || 5v @ 0.5A<br />
|-<br />
| 7 || Violet || Analog/Digital A3 || Analog 3 || Timer/RPM 3<br />
|-<br />
| 8 || Orange || Analog/Digital A4 || Analog 4 || Timer/RPM 4<br />
|-<br />
| 9 || Light Green || Analog/Digital B3 || Analog 7 || GPIO 3<br />
|-<br />
| 10 || Grey || Ground || ||<br />
|-<br />
| 11 || Brown || Ground || ||<br />
|-<br />
| 12 || Black || Ground || <br />
|}<br />
<br />
[[image:ASL_M12_OCTO_SENSOR_PIGTAIL_0.3M_diagram.jpg]]<br />
<br />
[[image:ASL_M12_OCTO_SENSOR_PIGTAIL_0.3M_1024.jpg|700px]]<br />
<br />
==4 channel extension==<br />
M8-4P male to M8-4P female cable extends 4 analog or digital channels. Available in 1 and 2 meter lengths.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/4-channel-sensor-extension-cable/]]<br />
<br />
[[image:ASL_M8_QUAD_SENSOR_EXTENSION_1M_2M_diagram.jpg]]<br />
<br />
[[image:ASL_M8_QUAD_SENSOR_EXTENSION_1M_2M_1024.jpg|700px]]<br />
<br />
==4 channel pigtail==<br />
M8-8P male pigtail for 4 analog or digital channels. 1 meter length.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/quad-analog-digital-sensor-pigtail/]]<br />
<br />
* 24 AWG<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Color !! Connection<br />
|-<br />
| 1 || White || Analog/Digital 1<br />
|-<br />
| 2 || Yellow || Analog/Digital 2<br />
|-<br />
| 3 || Grey || Analog/Digital 4<br />
|-<br />
| 4 || Red || 5v reference<br />
|-<br />
| 5 || Brown || Ground<br />
|-<br />
| 6 || Pink || 5v reference<br />
|-<br />
| 7 || Blue || Analog/Digital 3<br />
|-<br />
| 8 || Green || Ground<br />
|}<br />
<br />
[[image:ASL_M8_QUAD_SENSOR_PIGTAIL_1M_diagram.jpg]]<br />
<br />
[[image:ASL_M8_QUAD_SENSOR_PIGTAIL_1M.jpg|700px]]<br />
<br />
==4 channel splitter==<br />
M8-8P Male splits 4 analog or digital channels into 4 M8-3P female connections.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/4-channel-analog-digital-sensor-splitter/]]<br />
<br />
[[image:ASL_QUAD_SENSOR_SPLITTER_diagram.jpg]]<br />
<br />
[[image:ASL_QUAD_SENSOR_SPLITTER.jpg|700px]]<br />
<br />
==Single channel extension==<br />
M8-3P male to M3-3P female extends a single analog or digital channel. Available in 1, 2, 3, and 4 meter lengths.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/analog-digital-sensor-extension/]]<br />
<br />
[[image:ASL_M8_SENSOR_EXTENSION_1M_2M_3M_4M_diagram.jpg]]<br />
<br />
[[image:ASL_M8_SENSOR_EXTENSION_1M_2M_3M_4M.jpg|700px]]<br />
<br />
==Single channel pigtail==<br />
M8-3P male pigtail for a single analog or digital connection. 2 meter length.<br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/analog-digital-sensor-pigtail/]]<br />
<br />
* 24 AWG<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Color !! Connection<br />
|-<br />
| 1 || Brown || Ground<br />
|-<br />
| 3 || Blue || 5v<br />
|-<br />
| 4 || Black || Signal Input<br />
|}<br />
<br />
[[image:ASL_M8_SENSOR_PIGTAIL_2M_diagram.jpg]]<br />
<br />
[[image:ASL_M8_SENSOR_PIGTAIL_2M.jpg|700px]]<br />
<br />
==Pressure sensor==<br />
M8-3P male to 3 pin Delphi GT150 pressure sensor connector. 2 meter length. <br />
<br />
* 10 bar/150 PSI [[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/10-bar-150-psi-pressure-sensor-with-plug-and-play-harness/]]<br />
* 150 bar/2175 PSI [[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/150-bar-2175-psi-pressure-sensor-with-plug-and-play-harness/]]<br />
<br />
{| class="wikitable"<br />
|-<br />
! M8 Pin !! GT150 Pin !! Connection<br />
|-<br />
| 1 || A || Ground<br />
|-<br />
| 3 || B || 5v Power<br />
|-<br />
| 4 || C || Signal<br />
|}<br />
<br />
<br />
[[image:ASL_DELPHI3_M8_diagram.jpg]]<br />
<br />
[[image:ASL_DELPHI3_M8_pressure_sensor.jpg|700px]]<br />
<br />
==Linear temperature sensor==<br />
M8-3P male to linear temperature sensor. 2 meter length. <br />
[[Image:add_to_cart.png|link=https://www.autosportlabs.com/product/40-to-150c-linear-temperature-sensor-with-plug-and-play-harness/]]<br />
<br />
[[image:ASL_LINEAR_TEMP_M8_diagram.jpg]]<br />
<br />
[[image:ASL_LINEAR_TEMP_M8.jpg|700px]]<br />
<br />
=Standard connectors and pinouts=<br />
The following represents connector and pinout standard for power, CAN, and analog/digital signaling<br />
<br />
Interconnects are based on industry-standard M8 and M12 connectors<br />
<br />
==Power + CAN Single interconnect==<br />
* Connector: M8 4P, A coding<br />
[[file:M8_4P_male_pinout.jpg|200px]]<br />
<br />
''Male connector pictured''<br />
<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Notes<br />
|-<br />
| 1 || CAN low || White<br />
|-<br />
| 2 || Power || Red, 9-24v / 1A (~12W)<br />
|-<br />
| 3 || CAN high || Green<br />
|-<br />
| 4 || Ground || Black<br />
|}<br />
<br />
Power is standard automotive 12-14v (nominal).<br />
<br />
The M8 is an industry standard connector; field-wireable connectors for the M8 4P and other variants are available from 3rd parties:<br />
<br />
* Male: [https://www.te.com/usa-en/product-T4011008041-000.html Straight] | [https://www.te.com/usa-en/product-T4013008041-000.html Right angle]<br />
* Female: [https://www.te.com/usa-en/product-T4010008041-000.html Straight] | [https://www.te.com/usa-en/product-T4012008041-000.html Right angle]<br />
<br />
==Dual CAN + power interconnect==<br />
* Connector: M8 6P, A coding<br />
[[file:M8_6P_male_connector.png]]<br />
<br />
''Male connector pictured''<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Notes<br />
|-<br />
| 1 || CAN1 low ||<br />
|-<br />
| 2 || CAN2 low ||<br />
|-<br />
| 3 || CAN2 high ||<br />
|-<br />
| 4 || Ground ||<br />
|-<br />
| 5 || CAN1 high ||<br />
|-<br />
| 6 || Power || 9-24v / 1A (~12W)<br />
|}<br />
<br />
==Single analog/digital channel==<br />
* Connector: M8 3P, A coding<br />
[[file:M8_3P_male_connector.png]]<br />
<br />
''Male connector pictured''<br />
<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Notes<br />
|-<br />
| 1 || Ground || Brown<br />
|-<br />
| 3 || Power || Blue (5v @ 1A max)<br />
|-<br />
| 4 || Signal || Black<br />
|}<br />
<br />
==Quad analog/digital channels==<br />
* Connector: M8 8P Male, A coding<br />
[[file:M8_8P_male_pinout.jpg|200px]]<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Notes<br />
|-<br />
| 1 || Analog/Digital 1 ||<br />
|-<br />
| 2 || Analog/Digital 2 ||<br />
|-<br />
| 3 || Analog/Digital 4 ||<br />
|-<br />
| 4 || Vref || 5v @ 1A max current, combined with pin 6<br />
|-<br />
| 5 || Ground || <br />
|-<br />
| 6 || Vref || 5v @ 1A max current, combined with pin 4<br />
|-<br />
| 7 || Analog/Digital 3 ||<br />
|-<br />
| 8 || Ground || <br />
|}<br />
<br />
==Octo analog/digital channels==<br />
* Connector: M8 12P, A coding<br />
[[file:M12_12P_male_connector.png]]<br />
<br />
''Male connector pictured''<br />
{| class="wikitable"<br />
|-<br />
! Pin !! Connection !! Analog Mapping !! Digital Mapping<br />
|-<br />
| 1 || Analog/Digital B1 || Analog 5 || GPIO 1<br />
|-<br />
| 2 || Analog/Digital B2 || Analog 6 || GPIO 2<br />
|-<br />
| 3 || Analog/Digital B4 || Analog 8 || GPIO 4<br />
|-<br />
| 4 || Analog/Digital A1 || Analog 1 || Timer/RPM 1<br />
|-<br />
| 5 || Analog/Digital A2 || Analog 2 || Timer/RPM 2<br />
|-<br />
| 6 || Vref || 5v @ 0.5A || 5v @ 0.5A<br />
|-<br />
| 7 || Analog/Digital A3 || Analog 3 || Timer/RPM 3<br />
|-<br />
| 8 || Analog/Digital A4 || Analog 4 || Timer/RPM 4<br />
|-<br />
| 9 || Analog/Digital B3 || Analog 7 || GPIO 3<br />
|-<br />
| 10 || Ground || ||<br />
|-<br />
| 11 || Ground || ||<br />
|-<br />
| 12 || Ground || <br />
|}</div>Brentphttps://wiki.autosportlabs.com/index.php?title=RaceCapture/Pro_firmware_upgrade&diff=9698RaceCapture/Pro firmware upgrade2023-07-17T16:27:13Z<p>Brentp: Brentp moved page RaceCapture/Pro firmware upgrade to RaceCapture/Pro MK1 firmware upgrade</p>
<hr />
<div>#REDIRECT [[RaceCapture/Pro MK1 firmware upgrade]]</div>Brentphttps://wiki.autosportlabs.com/index.php?title=RaceCapture/Pro_MK1_firmware_upgrade&diff=9697RaceCapture/Pro MK1 firmware upgrade2023-07-17T16:27:13Z<p>Brentp: Brentp moved page RaceCapture/Pro firmware upgrade to RaceCapture/Pro MK1 firmware upgrade</p>
<hr />
<div>==Upgrading RaceCapture/Pro firmware==<br />
<br />
Your RaceCapture/Pro unit ships with firmware pre-installed and should work out of the box. You'll only need to follow these instructions when you want to access new features or apply bug fixes. <br />
<br />
<br />
===Save your configuration===<br />
'''WARNING: Updating firmware restores the default configuration on RaceCapture/Pro'''<br />
<br />
Be sure to save your configuration using the [[RaceCapturePro_SoftwareOperation|Race Analyzer]] software.<br />
<br />
===Download the Latest firmware version from [[RaceCapturePro_Downloads|Downloads]] section=== and unzip the archive to a location on your computer.<br />
<br />
====Windows====<br />
<br />
Flash the firmware by double-clicking the flashRCP.bat file in Windows Explorer and follow the instructions.<br />
<br />
====Linux====<br />
While holding down the button on RaceCapture/Pro, plug the unit into USB. You should see 3 green LEDs light up.<br />
<br />
Now flash the firmware by executing the flasher application at the command line:<br />
<br />
#flasher RaceCapturePro-X.X.X.elf<br />
<br />
====Flashing process====<br />
The flasher application should find the RaceCapture/Pro device and then start flashing new firmware. The red front panel LED on RaceCapture/Pro will flash while firmware is written.<br />
<br />
Once the firmware completes flashing, RaceCapture/Pro will reset and run normally with the default configuration.<br />
<br />
[[Image:firmware_flasher_upgrade.png]]<br />
<br />
==Steps for Factory ROM bootloader==<br />
<br />
This is the backup mechanism for re-flashing bootloader firmware and should '''only''' be used when the primary firmware upgrading mechanism fails.<br />
<br />
===Prerequisite===<br />
Install the Atmel SAM-BA flash utility. This is a small application that performs the firmware write.<br />
* Windows, Linux: download from [http://www.atmel.com/tools/ATMELSAM-BAIN-SYSTEMPROGRAMMER.aspx Atmel's web site] [http://www.atmel.com/Images/sam-ba_2.12.exe Direct download link]<br />
* Linux alternative: [http://www.at91.com/linux4sam/bin/view/Linux4SAM/SoftwareTools Linux4SAM ]<br />
<br />
===Save RaceCapture/Pro configuration===<br />
The firmware upgrade process resets the configuration to factory defaults. To preserve the settings and any scripts you have running on your unit, save the active configuration using the RaceCapture/Pro configuration application.<br />
<br />
===Remove board from enclosure===<br />
Remove 4 screws from either end of the RaceCapture/Pro enclosure and slide the circuit board out. Place the board on a non-conductive surface.<br />
<br />
===Load Factory ROM Bootloader===<br />
* Locate the 'test' button on the circuit board. If there is no test button installed, bridge the pads where the test button would be installed with a short jumper wire.<br />
* Press and hold the test button (or short the pads), then apply power to the RaceCapture/Pro board using the USB cable. Hold the button for 20 seconds.<br />
** This will write back the ROM factory bootloader into flash memory<br />
* Release the button and disconnect power.<br />
<br />
===Download the bootloader image===<br />
Download the bootloader image from the [[RaceCapturePro_Downloads#Bootloader_Releases|Downloads Area]]<br />
<br />
* The correct filename will start with bootloader-X.X.X.bin where X.X.X represents the version number. '''Example: bootloader-0.0.1.bin'''<br />
<br />
===Flash firmware===<br />
* Re-apply power using the USB cable.<br />
* If you are prompted for drivers, install the drivers provided under the SAM-BA directory (typically found under C:\Program Files\Atmel\sam-ba_2.12\drv)<br />
* Once the drivers are loaded, you should see the device listed under Windows Device Manager - Ports as 'AT91 USB to Serial Converter'<br />
** If you do not see the board recognized this way, ensure you have the Atmel SAM-BA flash utility and drivers correctly installed. If you still have problems, repeat the previous step of loading the factory ROM bootloader.<br />
** If the board comes up as 'GPS Camera Detector' then Windows installed the wrong drivers. Use [http://support.atmel.com/bin/customer.exe?=&action=viewKbEntry&id=678 these instructions] to remove the incorrect drivers before proceeding.<br />
* Run the SAM-BA flash utility.<br />
** Under 'Select the connection', select board as identified by Device Manager. The board will be defined as '\USBserial\COMXX' where COMXX is the COM port assigned in Device Manager.<br />
** Under 'Select your board', select 'at91sam7s256-ek'.<br />
* On the Flash tab, under 'Download/Upload File' select button next to 'Send File Name'. Browse to the bootloader firmware image, which will be a file ending in .bin (e.g. bootloader-0.0.1.bin)<br />
* Click the 'Send File' option in the program.<br />
** If prompted to 'Unlock' regions, click yes.<br />
* You should observe the firmware flashing progress in the window. When complete, you can remove power to RaceCapture/Pro.<br />
<br />
===Re-assemble RaceCapture/Pro===<br />
* Slide the circuit board back in to the enclosure, aligning it with the holes in the end plate. It may be easier in some cases to remove both end plates to enable connectors/LEDs/button to fit into the end plate cut-outs. Ensure the smaller components, like LEDs fit correctly into their respective locations. <br />
* Slide mounting rails into place before installing 2nd end plate. Replace screws.</div>Brentphttps://wiki.autosportlabs.com/index.php?title=Video_plus_data_streaming_with_racecapture&diff=9693Video plus data streaming with racecapture2023-07-06T18:48:55Z<p>Brentp: /* Exiting the RaceCapture app */</p>
<hr />
<div>=Introduction=<br />
This guide shows you how to add video+data livestreaming to your existing RaceCapture system.<br />
<br />
After following this guide, you will have:<br />
* 2-camera video with picture-in-picture<br />
* Rich, realtime graphics overlay<br />
* Broadcast to youtube or your preferred streaming provider via an in-vehicle cellular hotspot<br />
* Local video recording<br />
<br />
=System Overview=<br />
Video+data streaming is enabled by using a separate streaming/encoding device. As RaceCapture supports multiple simultaneous connections, an existing dashboard can be retained.<br />
[[image:RaceCapture video+data livestreaming system diagram.png]]<br />
<br />
==Cost==<br />
The cost for adding video+data livestreaming to your RaceCapture system can range '''between 0 and 800 USD''', depending on the parts you may already have on hand.<br />
<br />
==How hard is it to setup?==<br />
'''This project requires following instructions''', including:<br />
* Installing an operating system<br />
* Typing computer commands<br />
* Plugging in cables<br />
* Editing configuration files<br />
* Selecting options in an application<br />
<br />
This ability is within the realm of someone with moderate computer skills. If the instructions seem daunting, find someone to help you along.<br />
<br />
* For those who crave convenience, we will also be offering a pre-packaged setup that take care of most of the setup steps.<br />
<br />
==Production State==<br />
Since it is based on existing RaceCapture technology (RaceCapture hardware and RaceCapture app), the core of the system is very stable.<br />
<br />
New components that add video rendering, encoding, and streaming will be improved through your testing feedback and rounds of updates.<br />
<br />
As of this writing, several existing RaceCapture users have put the system through it's paces with great results. <br />
<br />
So far we were very pleased with the stability and performance, and we will continue to improve the system through software updates.<br />
<br />
===A demonstration===<br />
Here's the Session from the inaugural test (with sub optimal camera exposure settings and low quality microphone)<br />
<br />
<youtube>zVUJwnGoCnI&t=2990s</youtube><br />
<br />
===Experimental===<br />
While we consider this '''experimental''' - it is also a free software upgrade for a system that was never originally designed for this purpose. <br />
<br />
With your testing help we can steadily improve it and ultimately provide an incredibly cost effective yet very full-featured and high performance system that rivals solutions costing upwards of $5000 USD.<br />
<br />
=Parts you will need=<br />
==Your existing RaceCapture system==<br />
The RaceCapture system will provide access to your car's sensor data (CAN bus or analog sensors), high performance GPS, Accelerometer / Gyro sensors, lap timing and other motorsport related statistics.<br />
===Compatible Systems===<br />
* Any current or previous RaceCapture or PodiumConnect system will work.<br />
[[image:racecapture_pro_mk4_connectors_1024.jpg|520px]]<br />
[[Image:PodiumConnect_MK2_3quarter_1024.jpg|270px]]<br />
[[Image:rct_mk3_3quarter.jpg|300px]]<br />
<br />
==Rendering/Streaming computer==<br />
A tiny form-factor computer is used to receive data from RaceCapture and is responsible for video+data overlay, encoding, and broadcasting the video to youtube or similar streaming platform.<br />
===Recommended===<br />
* [https://www.amazon.com/gp/product/B0BCVCZDH3 Beelink SER5]<br />
The Beelink SER5 is our recommended choice as it is powerful, cost effective, and provided in a compact and lightweight form factor.<br />
<br />
[[image:beelink_ser5_micro_pc.jpg|500px]]<br />
<br />
===Alternatives===<br />
A micro system with an Intel I5-6500 through I5-7600 + SSD + 8GB RAM is an acceptable option as well. This may be a system you already have or a surplus system you can get at minimum cost.<br />
* Look for these options:<br />
** SSD (required for ruggedness - smallest size is fine).<br />
** Smallest RAM option is fine (typically 8GB)<br />
** Included WiFi - for connection versatility<br />
====Candidates====<br />
* Dell Optiplex 7050 micro desktop: [https://www.ebay.com/sch/i.html?_nkw=Dell+Optiplex+7050+Micro+Desktop+Computer&_sacat=0 Ebay search] (nice because most have wifi)<br />
[[image:dell-optiplex-7050.jpg|510px]]<br />
* HP EliteDesk 800 G3 Mini: [https://www.ebay.com/sch/i.html?_nkw=HP+EliteDesk+800+G3+Desktop+Mini&_sacat=0 Ebay search]<br />
[[image:HP-elitedesk-800.jpg|550px]]<br />
<br />
==12v DC to DC converter==<br />
A 12v-19v DC to DC converter is needed to power the rendering/broadcasting computer in the vehicle. This converter avoids needing an AC inverter in the car, making for a clean installation.<br />
* '''Tips''':<br />
** Choose a device that has sufficient power capacity (100W minimum)<br />
===Recommended===<br />
These have been tested to work:<br />
* [https://www.amazon.com/gp/product/B07TT2F95L KFD 100W universal car charger]<br />
[[image:KFD-100W-DC-to-DC-converter-12v-to-19v.jpg|500px]]<br />
* '''Tips''':<br />
** We recommend cutting the cigar lighter connection and hard-wiring the power to a 15A circuit. (center conductor is positive).<br />
<br />
==Cameras==<br />
You will need 1 or 2 cameras for capturing and rendering video. <br />
===Recommended===<br />
Autosport Labs will soon provide a camera kit that provides high quality imaging, a waterproof compact form-factor, and the perfect 90 degree field of view.<br />
<br />
[[image:racecapture-streaming-camera.jpg|600px]]<br />
<br />
===Alternatives===<br />
Most any USB camera (such as a webcam) can be used. These are commonly found on [https://www.amazon.com/s?k=usb+webcam Amazon] or [https://www.ebay.com/sch/i.html?_nkw=usb+webcam&_sacat=0 Ebay].<br />
* '''Tips''':<br />
** Logitech is a good, high quality option<br />
** Find a camera that offers a 1/4-20 threaded camera mount for a secure rollbar attachment to minimize vibration.<br />
<br />
==Microphone==<br />
A microphone is needed for capturing audio.<br />
* Candidates:<br />
** USB microphone - you can use a separate USB microphone, especially if you get one that offers higher quality.<br />
** Analog microphone - you can use an analog microphone that attaches to the front headset input of the micro PC. Make sure you get a microphone that has the 4-ring connector for proper operation.<br />
** Microphone embedded in one of the cameras - if one of your your cameras has its own microphone, you can use that as an audio source.<br />
<br />
==Display Emulator==<br />
You'll need a display emulator to plug into the streamer while running on track. This tricks the computer into thinking a monitor is attached, allowing the streamer to run. <br />
<br />
[[image:hdmi_display_emulator.jpg|300px]]<br />
<br />
The following have been tested:<br />
* [https://www.amazon.com/gp/product/B06XSY9THQ HDMI emulator] - use this for the Beelink Micro PC<br />
* [https://www.amazon.com/gp/product/B075PTQ4NH DisplayPort emulator] - use this for the HP or Dell Micro PCs<br />
<br />
==Hotspot/Router==<br />
Most any hostspot should work, but for the best performance and reliability, these options should be considered:<br />
* Hard-wired ethernet connection, for direct connection to the micro computer.<br />
* External antenna connection - a hotspot that offers external antenna will boost performance by allowing you to use a high-gain roof-mount antenna.<br />
<br />
Suggested units that offer direct hardwired connection:<br />
* [https://www.amazon.com/NETGEAR-Broadband-Modem-LM1300-Always/dp/B0BKTSMQFF Netgear LM1300]<br />
* [https://www.amazon.com/Teltonika-RUT950-LTE-4G-Router/dp/B00TKFKLCI Teltonika RUT950]<br />
* [https://www.amazon.com/Peplink-Pepwave-Cellular-Router-MAX-BR1-MINI-LTE-US-T/dp/B01MR5YKF9 Pepwave BR1]<br />
<br />
=Setup=<br />
Connect a keyboard, mouse, and monitor to the rendering/streaming computer and prepare to install Ubuntu:<br />
==Install ubuntu 22 LTS==<br />
[https://ubuntu.com/download/desktop/thank-you?version=22.04.2&architecture=amd64 Download Ubuntu Desktop] and follow the instructions to install to a USB flash drive.<br />
* '''Notes''' To install, you will need to configure the system's BIOS to boot first from the USB flash drive. <br />
** Beelink: Repeatedly press 'delete' on the keyboard right after power up.<br />
** HP: Repeatedly press F10 after power up<br />
** Dell: Repeatedly press F2 after power up<br />
<br />
===OS configuration options===<br />
* '''Important -''' Install Ubuntu with the following options<br />
** During installation, choose the option to download / install updates, including "third-party software for graphics, WiFi, and additional media formats"<br />
** Choose the option to erase the hard drive and perform a complete install.<br />
** Select Login Automatically<br />
** When prompted for your account's username, make sure you specify a password. This will allow you to easily switch between streaming mode and maintenance mode.<br />
<br />
[[image:ubunut_setup_options.jpg]]<br />
<br />
After the installation is complete, the computer will reboot into the standard desktop.<br />
<br />
==Disable keyring popup==<br />
From the desktop: log out, and log back in using with the password you created during the installation step. <br />
<br />
Then, [https://linuxconfig.org/how-to-disable-keyring-popup-on-ubuntu Disable the keyring popup] using these instructions. Observe the security notes in this guide.<br />
* '''Notes'''<br />
** The log-out/log-in step is important - don't skip it!<br />
** Disabling the keyring is important; it prevents a popup dialog when the RaceCapture app automatically starts.<br />
<br />
==Run the installer==<br />
From the Ubuntu desktop, open a terminal and enter the following commands, pressing <enter> after each line:<br />
<pre><br />
sudo apt install curl<br />
curl -sL bit.ly/3RL9Yoj | bash<br />
</pre><br />
<br />
This will automatically install the RaceCapture app and video streamer, related software dependencies, and set up configuration file templates.<br />
<br />
==Reboot==<br />
Reboot the computer once it is complete with the installation. It should automatically launch the RaceCapture app.<br />
<br />
==Edit RaceCapture settings==<br />
Edit these RaceCapture settings for proper operation when streaming<br />
===App Preferences===<br />
Navigate to Setup / App Preferences:<br />
* set Fullscreen -> ON<br />
* Set Startup Screen -> Dashboard<br />
* Turn off Session Recording<br />
[[image:racecapture-video-data-livestreaming-app-settings.jpg]]<br />
<br />
===Dashboard Preferences===<br />
Navigate to the Dashboard, then press the gear icon in the upper right of the dashboard, select "More Settings" and set the following:<br />
* Turn off Pit stop timer<br />
* Turn off pit-to-car alerts<br />
* Turn off remote dashboard navigation (scroll to bottom)<br />
[[image:racecapture-video-data-livestreaming-dashboard-settings.jpg]]<br />
<br />
[[image:racecapture-video-data-livestreaming-disable-remote-dashboard-navigation.jpg]]<br />
<br />
==Plug in camera(s)==<br />
Plug in 1 or 2 cameras into the USB port<br />
<br />
* '''Note:''' Remember the ports the cameras are plugged into, and keep this consistent during use.<br />
<br />
==Plug in USB microphone==<br />
* Plug USB microphone into a USB port<br />
<br />
==Connect RaceCapture==<br />
Your current RaceCapture system already supports multiple connections, so you can continue using your dashboard (e.g. Android tablet via Bluetooth) when adding this video+data streaming capability.<br />
===Via USB (overall best option)===<br />
This is the best option for connecting RaceCapture to the streaming computer. Just connect a USB cable between the rendering/streaming system and RaceCapture. RaceCapture will automatically connect.<br />
===Via WiFi===<br />
If you're already using the USB connection for a Raspberry Pi dash, you can configure the rendering/streaming system to connect to RaceCapture via WiFi.<br />
====Configure as Client====<br />
If you are already using WiFi to connect the rendering/streaming system to your hotspot, you will need to configure RaceCapture to connect to the same hotspot via the WiFi client settings. In this configuration, everything shares the same network created by the hotspot.<br />
* '''Note''': Due to system limitations, your hotspot must be up and running before RaceCapture attempts to connect to it via WiFi.<br />
====Access Point connection (best WiFi option)====<br />
If you are connecting the rendering/streaming system to the hotspot via ethernet, then you can connect the rendering/streaming system directly to RaceCapture's WiFi Access Point. The system will receive data from RaceCapture via WiFi, and broadcast the video+data stream to the hotspot via ethernet.<br />
<br />
==Configure dashboard video options==<br />
* Press Settings Gear Icon, go to More Settings / Camera Preferences<br />
<br />
Select /dev/video0 for Camera #1, and /dev/video2 for Camera #2<br />
<br />
[[image:racecapture-video-data-livestreaming-camera-settings.jpg]]<br />
<br />
==Create a test dashboard==<br />
* Press the Settings gear icon, select Add Gauge<br />
* create a video gauge, and select Camera 1 as the source. <br />
* Resize to fit the dashboard. <br />
* create another video gauge, and select Camera 2 as the source.<br />
* Resize to be the picture-in-picture video window. <br />
* Add additional gauges as you see fit, such as an analog speed gauge, track map, etc. <br />
<br />
* '''Note''' If the cameras are reversed, you can swap the camera mappings in the main dashboard settings under More Settings / Camera Preferences<br />
<br />
Editing the dashboard is very easy - see this demo for an example:<br />
<br />
<youtube>r4mxA-fhJn0</youtube><br />
<br />
==Exiting the RaceCapture app==<br />
To get back to the regular Ubuntu desktop, press ctrl-t, type :quit and press <enter>. <br />
<br />
At the login screen, select your username and press the small gear icon in the lower right to select the Ubuntu desktop. <br />
<br />
To switch back to streaming mode, log out, press the small gear icon in the lower right and select the RaceCapture streaming option. Log in, and you will be streaming again. <br />
* '''Note''': The system will persist the last option you pick - so if you reboot or power cycle, it will automatically enter streaming mode.<br />
<br />
=Video Streaming / recording=<br />
To configure your streaming settings, switch back to the regular Ubuntu Desktop.<br />
<br />
Then, edit the video-config.ini - you'll find the file on the desktop. Edit this with the standard text editor by double-clicking it.<br />
<br />
==Streaming Key / URL==<br />
If using Youtube: Set the streaming key as provided by youtube. Or, you can specify a custom URL.<br />
==Local recording==<br />
If video_dir is set and points to a valid directory, local video recording will also be enabled.<br />
<br />
Videos for the current session are stored in a timestamped directory name under the configured video directory. Videos are saved as fixed-length segments to protect against file corruption due to sudden power loss, similar to how dashcams operate.<br />
<br />
If the system experiences sudden power loss, the video currently being written to will be corrupt and unreadable. Therefore, it is important to keep the video segment length reasonably short. <br />
<br />
After the session is complete, a full video can be made by using commonly available software to assemble all of the files.<br />
<br />
===video-config.ini===<br />
<pre><br />
[local_recording]<br />
video_dir=$HOME/Videos<br />
segment_length_sec=60<br />
</pre><br />
<br />
===Notes===<br />
* Configure video_dir to the location where you want to save your video files. <br />
* Configure segment_length_sec for the desired segment length size. If not specified, the default is 60 seconds '''Note, keep this value reasonably short''' - sudden power loss will result in corruption in the last written file.<br />
<br />
==Microphone==<br />
If using a USB microphone (recommended) use the default audio_device=1<br />
<br />
* Note, you can change this to different sources:<br />
** 0 = microphone connected to built-in headset port;<br />
** 1,2,3... = represents additional microphones found on the system, typically USB microphones.<br />
<br />
You can look under Ubuntu's system settings to discover available microphones and set their respective recording levels.<br />
<br />
Example default config file<br />
<pre><br />
[capture]<br />
audio_device=1<br />
<br />
[local_recording]<br />
video_dir=$HOME/Videos<br />
<br />
[streaming]<br />
streaming_url=rtmp://a.rtmp.youtube.com/live2/<streaming key> <br />
</pre><br />
<br />
=First Test=<br />
Once your streaming key has been set and saved, log out and log back into the streamer by selecting the RaceCapture streaming mode on the login page using the gear icon in the lower right.<br />
<br />
Check your youtube livestream to see if you are receiving video. If not, try restarting the system and let the streamer launch cleanly after a fresh reboot.<br />
<br />
=Maintenance/Troubleshooting=<br />
==Open a terminal window==<br />
(advanced mode) You can open a terminal window while RaceCapture is streaming by entering the following command.<br />
* Press ctrl+t, then type c, then press <enter><br />
<br />
The screen will split into two equal windows; the new window will be a terminal where you can perform debugging steps, such as viewing log files, etc.<br />
<br />
* '''Note''': The more user-friendly alternative is to just log out and log back in to the Ubuntu desktop.<br />
<br />
==Log out==<br />
You can log out of the current session to access the original Ubuntu desktop to perform additional maintenance.<br />
* Press ctrl-t, then type :quit, then press <enter><br />
<br />
Once you've logged out, you can log back into the Ubuntu desktop by pressing the gear icon in the lower right, and select Ubuntu. <br />
<br />
To get back to the RaceCapture full-screen app mode, select "RaceCapture livestreaming" from this menu; this is the window manager that is configured to run RaceCapture in full-screen mode.<br />
<br />
==Inspecting Logfiles==<br />
===Video streamer log file===<br />
The log file for the video streamer agent is located in the user's home directory. You can open it to see any helpful error messages regarding streaming.<br />
===RaceCapture log file===<br />
The RaceCapture log file is also located in the user's home directory. This will have potentially useful information for debugging the operation of the RaceCapture app.<br />
<br />
=Extras=<br />
==Mount for Beelink micro PC==<br />
<br />
We have designed a cage-style mount for the Beelink Micro PC. This allows convenient surface mounting of the PC.<br />
* Download STL file for 3D printing: [[file:Beelink_SER5_mount.zip]]<br />
<br />
[[image:beelink_cage_mount.jpg]]</div>Brentphttps://wiki.autosportlabs.com/index.php?title=How_To_Update_Firmware&diff=9692How To Update Firmware2023-07-03T04:33:20Z<p>Brentp: /* Updating Firmware */</p>
<hr />
<div>=Firmware upgrade steps=<br />
Applies to:<br />
* RaceCapture/Pro MK4, MK3, and MK2<br />
* RaceCapture/Apex<br />
* PodiumConnect MK2 and MK1<br />
* RaceCapture/Track MK3, MK2, and MK1<br />
<br />
* How to video: [https://www.youtube.com/watch?v=LAFb-EeiXy8 Video: How to update firmware for RaceCapture/Pro]<br />
<br />
==Save your configuration==<br />
<br />
WARNING: Updating firmware will reset the default config on a major and minor release. Bugfix releases do not reset configuration.<br />
Version scheme: MAJOR.MINOR.BUGFIX<br />
<br />
If in doubt, be sure to save your configuration using the RaceCapture app.<br />
<br />
==Download the firmware==<br />
<br />
Download the firmware matching your hardware version from the [http://podium.live/software downloads section]<br />
<br />
* '''Note''' Ensure you download the correct firmware for your device (matching the product name), or the firmware process will fail to complete. <br />
<br />
==Flash the firmware==<br />
Connect your system to your computer using the USB cable and connect to it with the app.<br />
* '''Note:''' Flashing is only possible via the USB interface, so you must use the desktop version of the RaceCapture app.<br />
<br />
===Steps===<br />
<br />
=Updating Firmware=<br />
* Unzip the firmware your downloaded to a location on your computer.<br />
* Connect your system to your Windows or OSX computer using the included USB cable. <br />
* Run the RaceCapture app, and confirm that it is connected. <br />
* Navigate to the '''Setup''' view<br />
* Save your current configuration. '''The firmware upgrade may reset your RaceCapture device to a factory default'''. <br />
** Press '''Read''' to read the current configuration and then press '''Save''' to save it to a file.<br />
* Select the Firmware section in the left menu. <br />
** '''Note:''' - If the RaceCapture app cannot read the configuration, you may need to first '''Open a previously saved configuration''' so you can access the firmware page.<br />
* Press the '''Update Firmware''' Button<br />
* Browse to the unzipped firmware from the first step. Select the file ending with ".ihex" - and press '''Open'''<br />
* The firmware will begin updating - watch for the progress to go 0-100%. <br />
* Restore your saved configuration by pressing the '''Open''' button, selecting your saved configuration, and then '''Write''' it to your system. <br />
* Confirm your firmware is updated by viewing the firmware version in the upper right corner of the RaceCapture app, after connecting.<br />
<br />
* If there is a problem detecting the system after firmware upgrade, unplug/replug your device and restart the app.<br />
<br />
===Alternative method===<br />
* While holding down the button on RaceCapture/Pro, power it up by plugging in to USB.<br />
* You should observe a rapidly flashing LED on the unit: this means it's in bootloader mode. <br />
* Start the app. Note, it will not be able to connect - this is expected.<br />
* Navigate to Setup.<br />
* Load a previously saved configuration file.<br />
* Navigate to the firmware update view, then follow the process to update firmware.<br />
<br />
===Issues===<br />
* If the firmware fails part way through, you can retry the firmware upgrade.<br />
** Start the app<br />
** Connect your device via USB<br />
** Load a previously saved config file (file ending in .rcp)<br />
** Navigate to Setup / Firmware<br />
** Attempt the firmware upgrade process again.<br />
<br />
=RaceCapture/Pro MK1=<br />
<br />
Unzip the Firmware download into a folder and follow the directions in HOW_TO_FLASH.txt<br />
<br />
Note: if you have problems getting the firmware to flash (it cannot find RaceCapture/Pro while in bootloader mode), try the following:<br />
<br />
* Hold down the front panel button on RCP right at the beginning of the process, before running flashRCP.bat<br />
* When asked 'is this your first time flashing' say 'No' so it will re-install the bootloader drivers<br />
* Then proceed with the firmware flash update.<br />
<br />
Alternatively:<br />
<br />
Try installing the bootloader drivers while the hardware is plugged in to USB in bootloader mode (hold down logging button on RaceCapture/Pro, plug in to USB, then release button) outside of running flashRCP.bat. Then, check Windows Device Manager for the Presence of Autosport Labs bootloader while plugged in. Once you you see it show up, you can proceed with the firmware update process.<br />
<br />
<br />
==Mac Users==<br />
For Mac users with RaceCapture/Pro MK1 you will need to use a Windows VM to connect to RCP. Free virtual machine images are available here: http://dev.modern.ie/tools/vms/ You will need to add a network adapter to the VM. After that follow the Windows instructions.</div>Brentphttps://wiki.autosportlabs.com/index.php?title=How_To_Update_Firmware&diff=9691How To Update Firmware2023-07-03T04:30:35Z<p>Brentp: /* Firmware upgrade steps */</p>
<hr />
<div>=Firmware upgrade steps=<br />
Applies to:<br />
* RaceCapture/Pro MK4, MK3, and MK2<br />
* RaceCapture/Apex<br />
* PodiumConnect MK2 and MK1<br />
* RaceCapture/Track MK3, MK2, and MK1<br />
<br />
* How to video: [https://www.youtube.com/watch?v=LAFb-EeiXy8 Video: How to update firmware for RaceCapture/Pro]<br />
<br />
==Save your configuration==<br />
<br />
WARNING: Updating firmware will reset the default config on a major and minor release. Bugfix releases do not reset configuration.<br />
Version scheme: MAJOR.MINOR.BUGFIX<br />
<br />
If in doubt, be sure to save your configuration using the RaceCapture app.<br />
<br />
==Download the firmware==<br />
<br />
Download the firmware matching your hardware version from the [http://podium.live/software downloads section]<br />
<br />
* '''Note''' Ensure you download the correct firmware for your device (matching the product name), or the firmware process will fail to complete. <br />
<br />
==Flash the firmware==<br />
Connect your system to your computer using the USB cable and connect to it with the app.<br />
* '''Note:''' Flashing is only possible via the USB interface, so you must use the desktop version of the RaceCapture app.<br />
<br />
===Steps===<br />
<br />
=Updating Firmware=<br />
* Unzip the firmware your downloaded to a location on your computer.<br />
* Connect your system to your Windows or OSX computer using the included USB cable. <br />
* Run the RaceCapture app, and confirm that it is connected. <br />
* Navigate to the '''Setup''' view<br />
* Save your current configuration. '''The firmware upgrade may reset your RaceCapture device to a factory default'''. <br />
** Press '''Read''' to read the current configuration and then press '''Save''' to save it to a file.<br />
* Select the Firmware section in the left menu. <br />
** '''Note:''' - If the RaceCapture app cannot read the configuration, you may need to first '''Open a previously saved configuration''' so you can access the firmware page.<br />
* Press the '''Update Firmware''' Button<br />
* Browse to the unzipped firmware from the first step. Select the file ending with ".ihex" - and press '''Open'''<br />
* The firmware will begin updating - watch for the progress to go 0-100%. <br />
* Restore your saved configuration by pressing the '''Open''' button, selecting your saved configuration, and then '''Write''' it to your system. <br />
* Confirm your firmware is updated by viewing the firmware version in the upper right corner of the RaceCapture app, after connecting.<br />
* Press the 'Configuration' button to navigate to the configuration section.<br />
* On the left menu, select Firmware<br />
* On the firmware screen, press the button "Update Firmware"<br />
* Navigate to the firmware file ending in ".ihex"<br />
* Select this file. The firmware will update and show a percentage progress indicator.<br />
<br />
* If there is a problem detecting RaceCapture/Pro, unplug/replug and restart the app.<br />
<br />
===Alternative method===<br />
* While holding down the button on RaceCapture/Pro, power it up by plugging in to USB.<br />
* You should observe a rapidly flashing LED on the unit: this means it's in bootloader mode. <br />
* Start the app. Note, it will not be able to connect - this is expected.<br />
* Navigate to Setup.<br />
* Load a previously saved configuration file.<br />
* Navigate to the firmware update view, then follow the process to update firmware.<br />
<br />
===Issues===<br />
If you get an 'Unable to load bootloader' error, try this work around. https://www.youtube.com/watch?v=A-WqZItNB9E<br />
<br />
Problems? Post to the [http://forum.autosportlabs.com forums] with the issue you're seeing - we will help you promptly.<br />
<br />
=RaceCapture/Pro MK1=<br />
<br />
Unzip the Firmware download into a folder and follow the directions in HOW_TO_FLASH.txt<br />
<br />
Note: if you have problems getting the firmware to flash (it cannot find RaceCapture/Pro while in bootloader mode), try the following:<br />
<br />
* Hold down the front panel button on RCP right at the beginning of the process, before running flashRCP.bat<br />
* When asked 'is this your first time flashing' say 'No' so it will re-install the bootloader drivers<br />
* Then proceed with the firmware flash update.<br />
<br />
Alternatively:<br />
<br />
Try installing the bootloader drivers while the hardware is plugged in to USB in bootloader mode (hold down logging button on RaceCapture/Pro, plug in to USB, then release button) outside of running flashRCP.bat. Then, check Windows Device Manager for the Presence of Autosport Labs bootloader while plugged in. Once you you see it show up, you can proceed with the firmware update process.<br />
<br />
<br />
==Mac Users==<br />
For Mac users with RaceCapture/Pro MK1 you will need to use a Windows VM to connect to RCP. Free virtual machine images are available here: http://dev.modern.ie/tools/vms/ You will need to add a network adapter to the VM. After that follow the Windows instructions.</div>Brentp