RaceCapture troubleshooting: Difference between revisions

No edit summary
 
(23 intermediate revisions by the same user not shown)
Line 8: Line 8:
* In the RaceCapture app press the top menu button and select  'System Status'
* In the RaceCapture app press the top menu button and select  'System Status'
[[file:RaceCapture_system_status.png|640px]]
[[file:RaceCapture_system_status.png|640px]]
=CAN bus troubleshooting=
See the comprehensive [[CAN_Bus_Integration#Troubleshooting|CAN bus troubleshooting guide]] to diagnose issues receiving CAN bus data.


=SD card logging=
=SD card logging=


==Not logging (Solid Red Error LED)==
===Not logging (Solid Red Error LED)===
* Ensure the card is installed with the label facing the top of the unit, metal contacts facing down
* Ensure the card is installed with the label facing the top of the unit, metal contacts facing down
* Use a high quality, high speed 32GB or smaller SD card.  
* Use a high quality, high speed 32GB or smaller SD card.  
* Freshly format the card to FAT32
* Freshly format the card to FAT32


==Corrupted data (not valid CSV data)==
===Corrupted data (not valid CSV data)===
* Ensure the card is freshly formatted to FAT32 and empty
* Ensure the card is freshly formatted to FAT32 and empty
* Try a different card
* Try a different card


==Inconsistent Logging at high logging rates (Flickering Red Error LED)==
===Inconsistent Logging at high logging rates (Flickering Red Error LED)===
* Use an SD card with a faster speed grade
* Use an SD card with a faster speed grade
* Try a fresh format to reduce fragmentation
* Try a fresh format to reduce fragmentation


=RaceCapture Log=
=RaceCapture Log=
The RaceCapture hardware will generate messages that can provide insight into specific problems.
The RaceCapture device will generate messages that can provide insight into specific problems.


To access the RaceCapture Log
To access the RaceCapture Log
* Ensure the RaceCapture app is connected to RaceCapture
* Ensure the RaceCapture app is connected to your system
* Navigate to '''Setup''' and then select the '''Scripting''' screen (RaceCapture/Pro and RaceCapture/Apex) or the '''Logs''' screen (RaceCapture/Track)
* Go to '''Setup''' and then select the '''Scripting''' screen (RaceCapture/Track MK2, RaceCapture/Pro, and RaceCapture/Apex) or the '''Logs''' screen (RaceCapture/Track MK1)
* Check the box next to '''Poll Log''' at the bottom of the screen.  
* Check the box next to '''Poll Log''' at the bottom of the screen.  
* The RaceCapture app will periodically query RaceCapture for log information. The log window will show messages from RaceCapture - scan these message for any errors. You can also copy the text in the log for future reference by pressing the '''Copy''' button.  
* The RaceCapture app will periodically query RaceCapture for log information. The log window will show messages from RaceCapture - scan these message for any errors. You can also copy the text in the log for future reference by pressing the '''Copy''' button.  


[[file:RaceCapture_system_log.png|640px]]
[[file:RaceCapture_system_log.png]]


=Application Log=
=Application Log=
Line 60: Line 63:
[[file:RaceCapture_read_and_save_configuration.png|641px]]
[[file:RaceCapture_read_and_save_configuration.png|641px]]


=Recovering from a failed firmware update=
If the firmware failed to update for some reason (e.g. the process was interrupted) RaceCapture will detect this upon power up and go right into bootloader mode, where it is ready to accept firmware again.  This is indicated by a rapidly flashing LED on the device, with no other activity, and the inability to connect normally from the app.
===Flashing firmware when already bootloader mode===
* Connect the device to your computer via USB
* Launch the RaceCapture app
* Go to Setup
* Open a previously saved configuration file
* Go to the Firmware Tab
* Update the firmware as normal, bypassing any warning messages. 
'''Note:''' - ensure you are flashing the firmware that matches your specific hardware version.
=Factory Reset for RaceCapture=
===From Setup / Firmware===
The easiest way to reset to factory defaults is to access the Firmware update view.
* Connect your RaceCapture system via any supported connection
* Go to Setup / Firmware.
* Press the Factory Reset button.
[[file:RaceCapture_factory_reset_button.png|800px]]
===Command line console===
* Close any running RaceCapture app
* Launch a serial terminal program such as RealTerm or HyperTerminal (Windows), Minicom (Linux or OSX),  and connect to the serial port assigned to RaceCapture.
* Press Return on keyboard to see a list of commands.
* Issue the command 'resetConfig'
* Your RaceCapture system will be restored to a factory default configuration.
===Flashing an older firmware===
* Flash a previous firmware that changes the major or minor version (major.minor.bugfix). This triggers an automatic factory reset.
** Example: If you are on 2.13.5, flash 2.12.0.
* Then, you can re-flash the original firmware.
* Your RaceCapture system will be restored to a factory default configuration.
'''Note:''' If the RaceCapture App cannot connect to your device, then you may need to load a previously saved configuration to access the firmware update menu.


=Resetting the analysis data store=
=Resetting the analysis data store=
Line 95: Line 133:
* '''Re-launching the RaceCapture app'''
* '''Re-launching the RaceCapture app'''
Now, re-launch the RaceCapture app.  The RaceCapture app will create a fresh, empty datastore.sq3.  You can now import your logs as needed.
Now, re-launch the RaceCapture app.  The RaceCapture app will create a fresh, empty datastore.sq3.  You can now import your logs as needed.
=Hardware troubleshooting=
==RaceCapture/Pro==
===Stuck in bootloader mode===
If your RaceCapture/Pro seems to be stuck in bootloader mode (rapidly orange flashing light (MK3) and app cannot connect), you may have a stuck button on the front panel. Normally the bootloader is activated while holding down the front button while powering up, but if the button is stuck, the unit will go into bootloader mode unexpectedly.  Check if the button has been pushed down excessively on an edge; use a fingernail or tool to pull the edge up. 
* '''Note:''' When you press the button, you should feel a click when the switch engages.
==Diagnosing Analog Inputs==
Steps to verify the proper operation of analog inputs for RaceCapture:
* Perform a factory reset by navigating to Setup / Firmware and pressing "Factory Reset" while connected to RaceCapture.
** This will reset the system to factory defaults. '''Ensure your settings are saved''' so they can be later restored.
* Connect the system to 12v power.
* For each analog input in question:
** Disconnect any sensor connected to the analog input
** Enable the Analog channel in question by selecting a sample rate 1Hz or higher.
** Connect a jumper wire between the analog input and ground.  '''On the RaceCapture dashboard verify the channel shows very close to 0v (within 0.1v)'''
** Connect a jumper wire between the analog input and the 5v reference. '''On the RaceCapture dashboard verify the channel shows very close to 5v (within 0.1v)'''
* '''Notes'''
* It is important the system is connected to 12v power so you can observe the full 0-5v range of the sensor input. If only connected to USB power, the max voltage input will read 4.6-4.8v.
* RaceCapture inputs are buffered with very high impedance to avoid affecting the signal they are reading, much like a test instrument. If left disconnected, they will float and show a reading between 0 and 5v.
=WiFi=
==WiFi stops working, stuck in endless checking wifi status==
If the RaceCapture log shows a continuous stream of 'checking wifi status', like this:
<pre>
Checking WiFi Device...
[CAN device] timeout rx CAN msg
[esp8266] OP mode: 0
[ESP8266 Driver] Checking WiFi Device...
[esp8266] OP mode: 0
[ESP8266 Driver] Checking WiFi Device...
[esp8266] OP mode: 0
[ESP8266 Driver] Checking WiFi Device...
[esp8266] OP mode: 0
[ESP8266 Driver] Checking WiFi Device.
</pre>
...and WiFi connectivity seems to have stopped, you can perform this low level factory reset for the wifi module.
* Back up your configuration
* Completely disable WiFi under Setup / Wireless
* Load the script below into the scripting window, ensuring you remove any existing script.
* Write the script
* Power cycle
* Check the log for no more repeated "Checking WiFi Device"..
* Perform a regular factory reset.
* Check for proper WiFi functionality (check if it shows up as an Access Point).
<pre>
port = 5
initSer(port,115200, 8, 0, 1)
function sendCrlf()
  writeCSer(port, 13)
  writeCSer(port, 10)
end
function sendRaw(val)
  for i=1, #val do
    local c = string.sub(val, i, i)
    writeCSer(port, string.byte(c))
  end
end
function sendAt(msg)
  sendRaw(msg)
  sendCrlf()
  sleep(1000)
end
function readRes(lines)
  for i=1, lines do
    print(readSer(port))
    println(readSer(port))
  end
end
sleep(1000)
println('resetting wifi module')
sendAt('ATE0')
readRes(2)
sendAt('AT')
readRes(2)
sendAt('AT+RESTORE')
readRes(10)
</pre>

Latest revision as of 22:08, 30 September 2022

If RaceCapture isn't operating as expected, there are a few places to inspect that can help understand what's going on.

System Status

The System status page provides information on the status of various parts of the RaceCapture system.

  • Ensure the RaceCapture app is connected to RaceCapture
  • In the RaceCapture app press the top menu button and select 'System Status'

RaceCapture system status.png

CAN bus troubleshooting

See the comprehensive CAN bus troubleshooting guide to diagnose issues receiving CAN bus data.

SD card logging

Not logging (Solid Red Error LED)

  • Ensure the card is installed with the label facing the top of the unit, metal contacts facing down
  • Use a high quality, high speed 32GB or smaller SD card.
  • Freshly format the card to FAT32

Corrupted data (not valid CSV data)

  • Ensure the card is freshly formatted to FAT32 and empty
  • Try a different card

Inconsistent Logging at high logging rates (Flickering Red Error LED)

  • Use an SD card with a faster speed grade
  • Try a fresh format to reduce fragmentation

RaceCapture Log

The RaceCapture device will generate messages that can provide insight into specific problems.

To access the RaceCapture Log

  • Ensure the RaceCapture app is connected to your system
  • Go to Setup and then select the Scripting screen (RaceCapture/Track MK2, RaceCapture/Pro, and RaceCapture/Apex) or the Logs screen (RaceCapture/Track MK1)
  • Check the box next to Poll Log at the bottom of the screen.
  • The RaceCapture app will periodically query RaceCapture for log information. The log window will show messages from RaceCapture - scan these message for any errors. You can also copy the text in the log for future reference by pressing the Copy button.

RaceCapture system log.png

Application Log

The RaceCapture app itself generates it's own log messages, separate from the RaceCapture hardware.

To access the application log:

  • Navigate to the System Status page
  • Select the Application section of the page
  • Press the Copy button. This will copy the current application log to the system's clipboard.
  • Paste the log into an email or document to review it's contents.

RaceCapture application log.png

Saving your configuration

Periodically you will need to save your configuration as a backup or for sharing.

To save your configuration to a file:

  • Launch the RaceCapture app
  • Connect your RaceCapture system to the app
  • Navigate to Setup view.
  • Press the Read button to read the current configuration
  • Press the Save button to save the current configuration to the file you specify.

The saved RaceCapture configuration file will have the extension '.rcp'.

RaceCapture read and save configuration.png

Recovering from a failed firmware update

If the firmware failed to update for some reason (e.g. the process was interrupted) RaceCapture will detect this upon power up and go right into bootloader mode, where it is ready to accept firmware again. This is indicated by a rapidly flashing LED on the device, with no other activity, and the inability to connect normally from the app.

Flashing firmware when already bootloader mode

  • Connect the device to your computer via USB
  • Launch the RaceCapture app
  • Go to Setup
  • Open a previously saved configuration file
  • Go to the Firmware Tab
  • Update the firmware as normal, bypassing any warning messages.

Note: - ensure you are flashing the firmware that matches your specific hardware version.

Factory Reset for RaceCapture

From Setup / Firmware

The easiest way to reset to factory defaults is to access the Firmware update view.

  • Connect your RaceCapture system via any supported connection
  • Go to Setup / Firmware.
  • Press the Factory Reset button.

RaceCapture factory reset button.png

Command line console

  • Close any running RaceCapture app
  • Launch a serial terminal program such as RealTerm or HyperTerminal (Windows), Minicom (Linux or OSX), and connect to the serial port assigned to RaceCapture.
  • Press Return on keyboard to see a list of commands.
  • Issue the command 'resetConfig'
  • Your RaceCapture system will be restored to a factory default configuration.

Flashing an older firmware

  • Flash a previous firmware that changes the major or minor version (major.minor.bugfix). This triggers an automatic factory reset.
    • Example: If you are on 2.13.5, flash 2.12.0.
  • Then, you can re-flash the original firmware.
  • Your RaceCapture system will be restored to a factory default configuration.

Note: If the RaceCapture App cannot connect to your device, then you may need to load a previously saved configuration to access the firmware update menu.

Resetting the analysis data store

If you need to reset the data storage used for the analysis mode, follow these steps:

  • Determine the location of the datastore file

The datastore file is called datastore.sq3 and is stored in the user's storage for the RaceCapture app. This file is stored in a different location based on the operating system you are using.

To find it's location, launch the RaceCapture app and immediately go to the System Status view and press the Copy button to copy the application log file to the system's clipboard. RaceCapture application log.png

Open notepad or similar text editor and paste the RaceCapture app's log.

You will find the location of the datastore in the log messages, starting with the phrase Datastore Path: . Make a note of this path.

Example:

...
[Base        ] Start application main loop
[UserPrefs   ] Saving preferences
[Main        ] Datastore Path:/home/susy/.config/racecapture/datastore.sq3
[Main        ] initializing datastore...
[RacecaptureApp] initializing rc comms with, conn type: Serial
[RCPAPI      ] msg_rx_worker starting
[RCPAPI      ] cmd_sequence_worker starting
[RCPAPI      ] auto_detect_worker starting
...
  • Backing up and removing the current datastore.sq3

Browse to the location you previously noted. You should find a file called datastore.sq3.

Move this file out of the current directory, to a separate location for safe keeping, if necessary. If you do not have a need for the old datastore, you can safely remove it.

  • Re-launching the RaceCapture app

Now, re-launch the RaceCapture app. The RaceCapture app will create a fresh, empty datastore.sq3. You can now import your logs as needed.

Hardware troubleshooting

RaceCapture/Pro

Stuck in bootloader mode

If your RaceCapture/Pro seems to be stuck in bootloader mode (rapidly orange flashing light (MK3) and app cannot connect), you may have a stuck button on the front panel. Normally the bootloader is activated while holding down the front button while powering up, but if the button is stuck, the unit will go into bootloader mode unexpectedly. Check if the button has been pushed down excessively on an edge; use a fingernail or tool to pull the edge up.

  • Note: When you press the button, you should feel a click when the switch engages.

Diagnosing Analog Inputs

Steps to verify the proper operation of analog inputs for RaceCapture:

  • Perform a factory reset by navigating to Setup / Firmware and pressing "Factory Reset" while connected to RaceCapture.
    • This will reset the system to factory defaults. Ensure your settings are saved so they can be later restored.
  • Connect the system to 12v power.
  • For each analog input in question:
    • Disconnect any sensor connected to the analog input
    • Enable the Analog channel in question by selecting a sample rate 1Hz or higher.
    • Connect a jumper wire between the analog input and ground. On the RaceCapture dashboard verify the channel shows very close to 0v (within 0.1v)
    • Connect a jumper wire between the analog input and the 5v reference. On the RaceCapture dashboard verify the channel shows very close to 5v (within 0.1v)
  • Notes
  • It is important the system is connected to 12v power so you can observe the full 0-5v range of the sensor input. If only connected to USB power, the max voltage input will read 4.6-4.8v.
  • RaceCapture inputs are buffered with very high impedance to avoid affecting the signal they are reading, much like a test instrument. If left disconnected, they will float and show a reading between 0 and 5v.

WiFi

WiFi stops working, stuck in endless checking wifi status

If the RaceCapture log shows a continuous stream of 'checking wifi status', like this:

Checking WiFi Device...
[CAN device] timeout rx CAN msg
[esp8266] OP mode: 0
[ESP8266 Driver] Checking WiFi Device...
[esp8266] OP mode: 0
[ESP8266 Driver] Checking WiFi Device...
[esp8266] OP mode: 0
[ESP8266 Driver] Checking WiFi Device...
[esp8266] OP mode: 0
[ESP8266 Driver] Checking WiFi Device.

...and WiFi connectivity seems to have stopped, you can perform this low level factory reset for the wifi module.

  • Back up your configuration
  • Completely disable WiFi under Setup / Wireless
  • Load the script below into the scripting window, ensuring you remove any existing script.
  • Write the script
  • Power cycle
  • Check the log for no more repeated "Checking WiFi Device"..
  • Perform a regular factory reset.
  • Check for proper WiFi functionality (check if it shows up as an Access Point).
port = 5
initSer(port,115200, 8, 0, 1)

function sendCrlf()
  writeCSer(port, 13)
  writeCSer(port, 10)
end

function sendRaw(val)
  for i=1, #val do
    local c = string.sub(val, i, i)
    writeCSer(port, string.byte(c))
  end
end

function sendAt(msg)
  sendRaw(msg)
  sendCrlf()
  sleep(1000)
end

function readRes(lines)
  for i=1, lines do
    print(readSer(port))
    println(readSer(port))
  end
end

sleep(1000)
println('resetting wifi module')
sendAt('ATE0')
readRes(2)
sendAt('AT')
readRes(2)
sendAt('AT+RESTORE')
readRes(10)