Issues reading OBDII information from Haltech Elite
Issues reading OBDII information from Haltech Elite
Similar issue to what was posted in this thread, however where the resolution there seemed to be that the ECU was not providing OBDII information and only CAN, I have a slightly different problem.
I have wired up the Racecapture (not Pro) using about a 60cm length of CAT6 ethernet cable with the RJ45 connecting to the RaceCapture, and a crimped AMP connector for the front Aux CAN connector on the Haltech as shown in the photo below.
Note that, as the CAN HIGH and CAN LOW uses pins 2 and 3 on the RJ45 connector, they are not part of a twisted pair. I didn't think this would make a big difference given that cross talk isn't an issue (as other wires aren't carrying signals) and it's a short length.
On the Haltech, I have set up the CAN Aux connector and enabled OBDII as follows.
On the RCP, it is set up with a 1MHz baud rate (as per Haltech CAN Protocol document) and a few test channels added in.
Now initially when I plugged this all in, it seemed to work. But after disconnecting the battery to do some other work on the car, and reconnecting, it no longer pulled in any OBDII data, listing "pid read fail" errors.
Thinking it might've been a loose/broken connection on one of the CAN wires (still was receiving power fine), I bought another ethernet cable and recrimped it - this time providing some strain relief by using lots of heatshrink (which is what is shown in the photos above). Again, it seemed to work when I first hooked it up. But after disconnecting and reconnecting the battery, it once again lost all OBDII information.
Don't have a screenshot of the logs, but they are the usual "OBD2: pid read fail" error.
Any ideas on what the issue might be, and what the best way to debug this is?
I have wired up the Racecapture (not Pro) using about a 60cm length of CAT6 ethernet cable with the RJ45 connecting to the RaceCapture, and a crimped AMP connector for the front Aux CAN connector on the Haltech as shown in the photo below.
Note that, as the CAN HIGH and CAN LOW uses pins 2 and 3 on the RJ45 connector, they are not part of a twisted pair. I didn't think this would make a big difference given that cross talk isn't an issue (as other wires aren't carrying signals) and it's a short length.
On the Haltech, I have set up the CAN Aux connector and enabled OBDII as follows.
On the RCP, it is set up with a 1MHz baud rate (as per Haltech CAN Protocol document) and a few test channels added in.
Now initially when I plugged this all in, it seemed to work. But after disconnecting the battery to do some other work on the car, and reconnecting, it no longer pulled in any OBDII data, listing "pid read fail" errors.
Thinking it might've been a loose/broken connection on one of the CAN wires (still was receiving power fine), I bought another ethernet cable and recrimped it - this time providing some strain relief by using lots of heatshrink (which is what is shown in the photos above). Again, it seemed to work when I first hooked it up. But after disconnecting and reconnecting the battery, it once again lost all OBDII information.
Don't have a screenshot of the logs, but they are the usual "OBD2: pid read fail" error.
Any ideas on what the issue might be, and what the best way to debug this is?
Thanks for your reply Brent.
I plugged it into a 2014 Honda Civic with the supplied OBDII cable.
Did not work with the following symptoms:
- No OBDII channels being displayed on the RaceCapture app as per before
- Blue light was flashing very quickly, occasionally throwing in a light blue (or green?) flash
- Car went haywire, throwing warnings such as "Check Emissions system" "Check SRS Airbag System" "Check VCS System" - probably items that are on the CAN bus
This was with 500kHz baud rate. I also tried 250kHz.
I plugged it into a 2014 Honda Civic with the supplied OBDII cable.
Did not work with the following symptoms:
- No OBDII channels being displayed on the RaceCapture app as per before
- Blue light was flashing very quickly, occasionally throwing in a light blue (or green?) flash
- Car went haywire, throwing warnings such as "Check Emissions system" "Check SRS Airbag System" "Check VCS System" - probably items that are on the CAN bus
This was with 500kHz baud rate. I also tried 250kHz.
Tried it again, this time on a 2008 Kia Rio with both 500kHz, 250kHz baud rate.
Same thing again. No OBD2 channels coming through, fast blue flashing light, intermittently flashing a green light.
Errors as follows:
Same thing again. No OBD2 channels coming through, fast blue flashing light, intermittently flashing a green light.
Errors as follows:
Last edited by Jarik on Sat Mar 18, 2017 5:23 am, edited 1 time in total.
Configuration file attached.
The Haltech was the first application I tried it on, so cannot say whether it worked prior.
Another symptom I have been having is generally poor performance from the app. Selection menus (when selecting channels on the Dashboard screens in particular) are very unresponsive - almost like they are either not registering touch screen selection or the actual touch box is a lot smaller than what is displayed on the screen. I generally need to try tapping it 5-10 times before it registers.
Also, I have had the following occur a few times too - I would change the baud rate, write it to the device, then read it back to find it returned to the original setting. But after a few reads, it'd then appear as I set it.
Phone is a Galaxy S6
I have also tried the following:
- Reflashed my phone OS with an aftermarket TouchWiz based ROM (previously on stock TouchWiz)
- Reinstalled RaceCapture
- Reflashed RaceCapture 2.10.2 firmware
Note: Reflashing did not actually seem to reset the configuration file.
Is there a factory reset or factory configuration file I can upload and try starting from the beginning again?
The Haltech was the first application I tried it on, so cannot say whether it worked prior.
Another symptom I have been having is generally poor performance from the app. Selection menus (when selecting channels on the Dashboard screens in particular) are very unresponsive - almost like they are either not registering touch screen selection or the actual touch box is a lot smaller than what is displayed on the screen. I generally need to try tapping it 5-10 times before it registers.
Also, I have had the following occur a few times too - I would change the baud rate, write it to the device, then read it back to find it returned to the original setting. But after a few reads, it'd then appear as I set it.
Phone is a Galaxy S6
I have also tried the following:
- Reflashed my phone OS with an aftermarket TouchWiz based ROM (previously on stock TouchWiz)
- Reinstalled RaceCapture
- Reflashed RaceCapture 2.10.2 firmware
Note: Reflashing did not actually seem to reset the configuration file.
Is there a factory reset or factory configuration file I can upload and try starting from the beginning again?
- Attachments
-
- fd3s_configuration.zip
- (1.44 KiB) Downloaded 354 times
Tried a few more things:
- Tried going back to 2.10.0 firmware. No luck, so came back to 2.10.2.
- Tried deleting all OBDII channels, turning CAN and OBDII off, then slowly individually adding them back in. No luck.
Noticed a few more bugs/issues/performance issues in addition to the ones above:
- While connected to a laptop via USB, I turned WiFi module off and wrote the configuration to the RaceCapture. I ran a Read Configuration back and WiFi was shown as off in the configuration as expected. However, the WiFi access point was still available when checked with my phone. I closed and relaunched the Windows app and it showed the WiFi module enabled.
- While connected via USB to a laptop, the RaceCapture app on the phone would not connect to the device. The WiFi access point however, was available and connected without any issues. Not sure if it's supposed to be inaccessible while connected to USB, but if so, it might be good if this was clearer.
- While going down the main straight at Phillip Island GP Circuit and with the Pit Timer turned on, the device incorrectly thought I had made a pit stop. Then for the remaining of the session (an extra ~2-3 laps of the track) it remained stuck in timing my pit stop and never returned to normal lap timing. I am guessing that the only way to exit pit stop mode is by actually crossing the track entrance?
- On the phone app, on the lap timing screen, the "Speed" channel (GPS) renders in an absolutely massive font with decimal points as follows:
- While connected via PC, I also see this error in the log when in "INFO" mode:
Would appreciate if I could get a factory configuration file I can load back in. I'm wondering if something got corrupted along the way.
- Tried going back to 2.10.0 firmware. No luck, so came back to 2.10.2.
- Tried deleting all OBDII channels, turning CAN and OBDII off, then slowly individually adding them back in. No luck.
Noticed a few more bugs/issues/performance issues in addition to the ones above:
- While connected to a laptop via USB, I turned WiFi module off and wrote the configuration to the RaceCapture. I ran a Read Configuration back and WiFi was shown as off in the configuration as expected. However, the WiFi access point was still available when checked with my phone. I closed and relaunched the Windows app and it showed the WiFi module enabled.
- While connected via USB to a laptop, the RaceCapture app on the phone would not connect to the device. The WiFi access point however, was available and connected without any issues. Not sure if it's supposed to be inaccessible while connected to USB, but if so, it might be good if this was clearer.
- While going down the main straight at Phillip Island GP Circuit and with the Pit Timer turned on, the device incorrectly thought I had made a pit stop. Then for the remaining of the session (an extra ~2-3 laps of the track) it remained stuck in timing my pit stop and never returned to normal lap timing. I am guessing that the only way to exit pit stop mode is by actually crossing the track entrance?
- On the phone app, on the lap timing screen, the "Speed" channel (GPS) renders in an absolutely massive font with decimal points as follows:
- While connected via PC, I also see this error in the log when in "INFO" mode:
Would appreciate if I could get a factory configuration file I can load back in. I'm wondering if something got corrupted along the way.
Hi,
Sorry for the delay here.
* Factory reset
You can issue a factory reset by connecting to RaceCapture using a serial terminal app over USB (not using the RaceCapture app).
Connect to RaceCapture using the COM port assigned by windows. Once you connect, hit <enter> and you'll see a menu of options.
Issue the commend 'resetConfig' and hit enter.
This will reset the configuration to the factory default.
* Sluggish app performance
In the last app release we enabled background logging of the session - you can see that under the top level app preferences.
What we noticed is that on some devices, writing to the flash file system on the phone is surprisingly slow, causing the UI to be sluggish.
As an experiment, can you try turning off the record session feature to see if the app speeds up in performance?
As a separate test, could you try a different device as an experiment?
* Firmware version:
2.10.2 is definitely the firmware version you want. versions prior had a stability issue which would periodically reset the hardware, causing interruptions in lap timing and so on - so stick with 2.10.2 for now.
Once you reset the factory configuration, we recommend trying OBDII with just RPM enabled in a few other 2008+ vehicles, as an experiment.
Thank you for your patience, we'll watch this thread to make sure we respond quickly.
Sorry for the delay here.
* Factory reset
You can issue a factory reset by connecting to RaceCapture using a serial terminal app over USB (not using the RaceCapture app).
Connect to RaceCapture using the COM port assigned by windows. Once you connect, hit <enter> and you'll see a menu of options.
Issue the commend 'resetConfig' and hit enter.
This will reset the configuration to the factory default.
* Sluggish app performance
In the last app release we enabled background logging of the session - you can see that under the top level app preferences.
What we noticed is that on some devices, writing to the flash file system on the phone is surprisingly slow, causing the UI to be sluggish.
As an experiment, can you try turning off the record session feature to see if the app speeds up in performance?
As a separate test, could you try a different device as an experiment?
* Firmware version:
2.10.2 is definitely the firmware version you want. versions prior had a stability issue which would periodically reset the hardware, causing interruptions in lap timing and so on - so stick with 2.10.2 for now.
Once you reset the factory configuration, we recommend trying OBDII with just RPM enabled in a few other 2008+ vehicles, as an experiment.
Thank you for your patience, we'll watch this thread to make sure we respond quickly.
Hi Brent,
Thanks for that! Am able to make some progress with trying to debug this issue with the resetConfig command - see below.
Re: Try on 2008+ car
- I am still trying to get access to one. All of my friends/friday seem to have cars older than that! I will continue to try to search around and let you know once I find one.
Re: Sluggish performance
- Turning off "Record Session" seems to improve performance on the Windows app
- Turning off "Record Session" on the phone application does not seem to fix the issues with registering selection of menu items/hit boxes
Re: Reset Config
I managed to get it working briefly and have narrowed the problem down. Essentially, with a reset config, the RaceCapture happily reads OBDII channels. However when it is turned off and on again, it stops working.
The following test cases have been tried (bold denotes changes between test cases, red is fail, green is success):
- being accessed by the phone application
- being configured by the laptop application vs phone application
- being powered up/down initially via USB vs OBDII
- configuration is retained between turn off/on, so I don't think it's a matter of the flash memory being wiped
Thanks for that! Am able to make some progress with trying to debug this issue with the resetConfig command - see below.
Re: Try on 2008+ car
- I am still trying to get access to one. All of my friends/friday seem to have cars older than that! I will continue to try to search around and let you know once I find one.
Re: Sluggish performance
- Turning off "Record Session" seems to improve performance on the Windows app
- Turning off "Record Session" on the phone application does not seem to fix the issues with registering selection of menu items/hit boxes
Re: Reset Config
I managed to get it working briefly and have narrowed the problem down. Essentially, with a reset config, the RaceCapture happily reads OBDII channels. However when it is turned off and on again, it stops working.
The following test cases have been tried (bold denotes changes between test cases, red is fail, green is success):
Test case 1:
- Plug RaceCapture to laptop via USB (power up)
- Issue resetConfig command via PuTTY on COM4
- Launch RaceCapture app on Laptop
- Configure CAN bus @ 1MHz and add test channels (FuelPress, OilTemp, TPS) via laptop
- Turn car ignition to ON
- Check Dashboard - SUCCESS! - telemetry coming in from Haltech
- Turn off the RaceCapture (turn car OFF and unplug USB)
- Turn car ignition to ON (power up RaceCapture)
- Plug in USB
- Check dashboard - FAIL! - logs show pid read errors
Test case 2:
- Plug RaceCapture to laptop via USB (power up)
- Issue resetConfig command via PuTTY on COM4
- Launch RaceCapture app on Laptop
- Configure CAN bus @ 1MHz and add test channels (FuelPress, OilTemp, TPS) via laptop
- Turn car ignition to ON
- Check Dashboard - SUCCESS! - telemetry coming in from Haltech
- Turn off the RaceCapture (turn car OFF and unplug USB)
- Turn car ignition to ON (power up RaceCapture)
- Connect phone via WiFi
- Check dashboard - FAIL! - logs show pid read errors
So doesn't appear to be related to:Test case 3:
- Turn car ignition ON (power up)
- Connect USB
- Issue resetConfig command via PuTTY on COM4
- Disconnect USB (leaving power on via OBDII)
- Connect phone via WiFi
- Configure CAN bus @ 1MHz and add test channels (FuelPress, OilTemp, TPS) via phone
- Check Dashboard - SUCCESS! - telemetry coming in from Haltech
- Turn car ignition to OFF (power down RaceCapture)
- Turn car ignition to ON (power up RaceCapture)
- Connect phone via WiFi
- Check dashboard - FAIL! - logs show pid read errors
- being accessed by the phone application
- being configured by the laptop application vs phone application
- being powered up/down initially via USB vs OBDII
- configuration is retained between turn off/on, so I don't think it's a matter of the flash memory being wiped
Hi,
Thanks for the detailed update.
From what you wrote, it looks like the Haltech stops responding to OBDII PID requests for some reason.
As an aside, odd that it's configured for 1MB, OBDII standard is 500 or 250K.
If you can find a 2008+ vehicle to repeat that test it'd be helpful to compare. Ensure you set the CAN baud rate back to 500K, however - and test RPM and/or engine temp only as a basic test.
On the touch responsiveness - it's not a 'slowness' per se of the app - it's around how the app framework (kivy) interprets a scroll gesture vs touch gesture. This is supposed to be resolved in the next version of the framework, which we'll be testing soon.
The slowness I was suspecting is more around UI screens slowing down (like swiping to different dashboard screens) when logging in the background -- on certain devices. That we're working to improve as well, but if you're not affected by that particular problem, that's good.
Will watch for further testing updates on your end. Thanks!
Thanks for the detailed update.
From what you wrote, it looks like the Haltech stops responding to OBDII PID requests for some reason.
As an aside, odd that it's configured for 1MB, OBDII standard is 500 or 250K.
If you can find a 2008+ vehicle to repeat that test it'd be helpful to compare. Ensure you set the CAN baud rate back to 500K, however - and test RPM and/or engine temp only as a basic test.
On the touch responsiveness - it's not a 'slowness' per se of the app - it's around how the app framework (kivy) interprets a scroll gesture vs touch gesture. This is supposed to be resolved in the next version of the framework, which we'll be testing soon.
The slowness I was suspecting is more around UI screens slowing down (like swiping to different dashboard screens) when logging in the background -- on certain devices. That we're working to improve as well, but if you're not affected by that particular problem, that's good.
Will watch for further testing updates on your end. Thanks!
All working now!!
And just in time for Vic Time Attack - here is a video with some RaceCapture data overlays via RaceRender. Basically speed, position, lap time and acceleration. Was also getting OBDII data from Haltech, but I just went to the Haltech logs for those.
How I got it working again
I feel like a bit of an idiot since it seems like I made a few silly mistakes while trying to get it to work, though in my defense there was some weird behavior that only seemed to be resolved with resetConfig commands.
- Tried it on a 2008 SAAB 93 after having failed on the Haltech. Did not work at 1000/500/250 kHz.
- resetConfig
- Tried again on the 2008 SAAB 93 @ 500kHz. Success with multiple restarts.
- Tried again on the Haltech at 500 kHz. Success with multiple restarts.
- Switched to 1MHz Baud Rate. Success until restart. Then fail.
- Switched back to 500kHz. Still failed, even after restart.
- resetConfig
- Tried on the Haltech @ 500kHz. Success with multiple restarts and has been working since.
Brent, you were entirely correct that the Haltech OBDII worked at 500kHz. What had confused me was in the Haltech CAN protocol document, they specify 1MHz as the baud rate. In retrospect, this must be referring to the Haltech CAN bus - they have two different channels - the "Vehicle OBDII/CAN bus" and the "Haltech CAN bus", which is configurable to different ports in the settings. It must be latter that runs at 1MHz and the Vehicle bus runs at the standard 500kHz.
What was really tripping me up here was that it seemed like once I switched to 1MHz baud rate, switching back to 500kHz did not work without a Reset Config. Moreover, at 1MHz it still did briefly work until the first reset (which made it seem like 1MHz was the correct rate).
Not sure why that would be the case, which is why I had previously wrote off wrong baud rate as the issue.
App responsiveness
Really don't have an excuse for this one.
For some reason, when I reflashed my phone ROM and restored my apps, it went ahead and downloaded the older version, 1.7.6 of the app rather than the latest. I had just assumed it'd have grabbed the latest off the Play Store, but clearly the app backup and restore process didn't work that way.
Once I updated, a lot of the issues with app responsiveness and registering of selections were completely resolved.
Anyway, thanks for all your assistance Brent!
Really looking forward to the anticipated 2.11.0 firmware we keep seeing teasers of, especially getting CAN support and unit conversion (as trying to do mental conversions of mph to kmh or fahrenheit to celsius on the track was as hard as it seemed).[/b]
And just in time for Vic Time Attack - here is a video with some RaceCapture data overlays via RaceRender. Basically speed, position, lap time and acceleration. Was also getting OBDII data from Haltech, but I just went to the Haltech logs for those.
How I got it working again
I feel like a bit of an idiot since it seems like I made a few silly mistakes while trying to get it to work, though in my defense there was some weird behavior that only seemed to be resolved with resetConfig commands.
- Tried it on a 2008 SAAB 93 after having failed on the Haltech. Did not work at 1000/500/250 kHz.
- resetConfig
- Tried again on the 2008 SAAB 93 @ 500kHz. Success with multiple restarts.
- Tried again on the Haltech at 500 kHz. Success with multiple restarts.
- Switched to 1MHz Baud Rate. Success until restart. Then fail.
- Switched back to 500kHz. Still failed, even after restart.
- resetConfig
- Tried on the Haltech @ 500kHz. Success with multiple restarts and has been working since.
Brent, you were entirely correct that the Haltech OBDII worked at 500kHz. What had confused me was in the Haltech CAN protocol document, they specify 1MHz as the baud rate. In retrospect, this must be referring to the Haltech CAN bus - they have two different channels - the "Vehicle OBDII/CAN bus" and the "Haltech CAN bus", which is configurable to different ports in the settings. It must be latter that runs at 1MHz and the Vehicle bus runs at the standard 500kHz.
What was really tripping me up here was that it seemed like once I switched to 1MHz baud rate, switching back to 500kHz did not work without a Reset Config. Moreover, at 1MHz it still did briefly work until the first reset (which made it seem like 1MHz was the correct rate).
Not sure why that would be the case, which is why I had previously wrote off wrong baud rate as the issue.
App responsiveness
Really don't have an excuse for this one.
For some reason, when I reflashed my phone ROM and restored my apps, it went ahead and downloaded the older version, 1.7.6 of the app rather than the latest. I had just assumed it'd have grabbed the latest off the Play Store, but clearly the app backup and restore process didn't work that way.
Once I updated, a lot of the issues with app responsiveness and registering of selections were completely resolved.
Anyway, thanks for all your assistance Brent!
Really looking forward to the anticipated 2.11.0 firmware we keep seeing teasers of, especially getting CAN support and unit conversion (as trying to do mental conversions of mph to kmh or fahrenheit to celsius on the track was as hard as it seemed).[/b]