Hey folks,
I've recently created a DIY device to get more info from the car than I could via OBD.
The whole build cost me ~$50, compared to hundreds of dollars I'd pay for a comparable off-the-shelf device.
Here's an overview of the project:
https://github.com/timurrrr/RaceChronoDiyBleDeviceAnd here's everything I've learned about the CAN bus for FT86 platform that's useful for RaceChrone'ing:
https://github.com/timurrrr/RaceChro...can_db/ft86.mdHere's an example of data captured by that device at T6 at Laguna Seca:
https://imgur.com/IPBZ5cIAnd here it is used for virtual gauges in RaceChrono:
While working on this project, I also created an Arduino library with common utilities for communication with RaceChrono over BLE, and provided a few examples how to use it:
https://github.com/timurrrr/arduino-RaceChronoI also found a bunch of correctness and performance issues in the arduino-CAN library, and ended up creating my own fork where I've resolved most of them:
https://github.com/timurrrr/arduino-CANHope you find these repos useful!
Comments
I haven't tried OBDLink with RC v7 yet. Should I expect any improvements there?
racechrono is able to connect with bluetooth to the device but never receives any data. have confirmed can is working with an obdlink.
what would be the best way to troubleshoot this?
thank you for all the information
This is what the serial monitor is showing
Okay so I figured it out, I ordered a 3 pack of the mcp2515 following the link in this github.
Two of the chips are labeled 17200TW. Both of those do not work. I tested the third chip when realizing it was labeled 20239RA. And it worked on its first try...
So for anyone else trying this out avoid the chips with 17200TW. They look identical but only one works.
I'm sure there are probably other variations of this as I now see small differences on amazon from different sellers.
For future readers: @aol is not a maintainer for my project on GitHub.
To save his time to work on RaceChrono improvements, just file bugs on my GitHub and I'll do my best to help you there.
@aol FYI my build already has some debug logging to Serial built in
I'm ok with that :)
I tried my best to make the architecture of my implementation more clear, as I found your code a bit hard to understand at first. But we need someone else to confirm whether I succeeded at that 😅
Just want to warn you that my implementation doesn't have support for GPS. Personally I find that using an off the shelf GPS is just more convenient, as I can put it at a different location, charge its battery, etc.; but I do see that a bunch of people do DIY RC devices specifically with GPS for whatever reason.
If someone can add GPS support behind a #ifdef as a pull request, I'll be happy to review and merge it!
I'm in the process of adapting it to be used on Suzuki Swift Sport, year 2013. I'm using your recommended components and everything seems to be running smoothly but refresh rate stays around or below 50Hz.
https://photos.app.goo.gl/fL9tDjpCFGTu9RvN9
Tried reducing individual PID rates in config file and swapped MCP2515 crystal for 16Mhz one with no success. Is this the limit of nRF52840?
Adafruit has also recently started selling a CAN-based "sheild" that should be compatible with one of their ESP32 boards, that might be the match made in heaven for a casual DIYer who wants DIY data logging with RaceChrono.
If you get around making it work before me, feel free to send me pull requests!