Log and view tire temperature zones on race- and trackday cars
For around $100 per wheel you can build your own wireless sensors to log your driving. You'll then easily see if you are overheating the shoulder on one wheel in some particular corner, if one of the rear tires stays a bit too cold or if you need to adjust camber. And many more things about how you attack a course and how your car is set up.
- Temperatures are measured at sixteen different points over each tire's full width.
- All data available in popular Android and iPhone race logging apps via Bluetooth.
- A cheap distance sensor can optionally be added to also log suspension movement.
Watch this short video:
Here below Antti at Racechrono is performing stress tests with four RejsaRubberTracs plus a Garmin GLO 10Hz GPS and an OBDLink MX, he reported from these tests with a Google Pixel 2 phone and RaceChrono Pro: "The ELM327 protocol for OBD-II is quite sensitive for lag/ping time, so it was affected by all the other Bluetooth connections as I expected. The highest update rate for OBDLink MX was still good, but the update rate fluctuates quite a bit, but even at lowest it was still faster than the Bluetooth LE OBD-II reader I tested. The update rate did not fluctuate on that one too much."
Easy to build
To build it you need to purchase two small boards (three if you also add distance measuring). Then just connect a few wires between the boards and then finally upload the done and dusted code you find here to the main board using a USB cable. Detailed step by step instructions further below. Then you're up and running! You probably want to get a small enclosure for it though before you mount it to your car!
Temperature IR-arraysensor MLX90621 GY-906LLC-BAB
(60 degrees field of view ends with BAB, 120 degrees with BAA)
www.aliexpress.com (~ $47 incl daugther board)
www.eckstein-shop.de (~ 55€ incl daugther board)
www.mouser.com (~ 35€ excl daugther board)
www.digikey.com (~ 36€ excl daugther board)
The CPU board and the two sensor boards are all powered by connecting power to the CPU board's USB micro connector. The CPU board also has a connector for a Lipo battery - which is automatically charged via the USB connector - so the whole system can run completey wireless with it's own power source for roughly 24 hours with a 500mAh 3,7V Lipo battery. The system can also be run directly from the car's power, not using any Lipo battery, but then a 12 volt to USB 5 volt converter must be added.
Positioning the sensors
The wider the tire the further away you need to position the sensor to get the full tire width within the sensors field of view (FOV). There are two versions of the temperature sensor, one with 60 degrees of FOV and one wide version with 120 degrees FOV. The latter can be a better choice if you have very wide tires and need to mount the sensors pretty close. Here below is a table with mounting distances at different tire widths.
NOTE: You do not have to mount the sensor at exactly the necessary distance!! The distance is simply fine tuned by changing the angle of the sensor, se picture above!
|Tire width||Distance from tire to sensor
with 60 degree narrow sensor
|Distance from tire to sensor
with 120 degree wide sensor
|135 mm||12 cm||4 cm|
|145 mm||13 cm||4 cm|
|155 mm||13 cm||4 cm|
|165 mm||14 cm||5 cm|
|175 mm||15 cm||5 cm|
|185 mm||16 cm||5 cm|
|195 mm||17 cm||6 cm|
|205 mm||18 cm||6 cm|
|215 mm||19 cm||6 cm|
|225 mm||19 cm||6 cm|
|235 mm||20 cm||7 cm|
|245 mm||21 cm||7 cm|
|255 mm||22 cm||7 cm|
|265 mm||23 cm||8 cm|
|275 mm||24 cm||8 cm|
|285 mm||25 cm||8 cm|
|295 mm||26 cm||9 cm|
|305 mm||26 cm||9 cm|
|315 mm||27 cm||9 cm|
|325 mm||28 cm||9 cm|
|335 mm||29 cm||10 cm|
|345 mm||30 cm||10 cm|
|355 mm||31 cm||10 cm|
|365 mm||32 cm||11 cm|
|375 mm||32 cm||11 cm|
|385 mm||33 cm||11 cm|
Connecting the three boards
Four wires in a bus configuration connects the two sensors and the cpu board.
One extra fifth wire connects to the distance sensor's XSHUT pin.
|Adafruit Bluefruit nRF52832||VL53L0XV2||MLX90621|
The two sensorboards can easily be connected together electrically and mechanically by "sandwiching" them together with a pin header as in the picture below.
This is the COMPLETE wiring needed.
Compiling and uploading the code - Arduino IDE
Easy to do, just follow the complete step by step instruction here to install the IDE and compile and upload the code.
Here's info on the Adafruit Bluefruit nRF52 board if you're curious and want to dig deeper:
How often can I get measurements?
Depends. Measuring distance takes time, same with temperatures. And on top of that, with the current library used for Bluetooth communication, depending on how much data you're transmitting some delay is added too. So, if you don't connect a distance sensor the temperatures are updated faster. And if the application in the other end limits to subscribe to only eight temperature zones instead of all sixteen it will also all be faster. Compromises...
|6Hz||16 temperatures + distance|
|10Hz||8 temperatures + distance|
Bluetooth device name
The default Bluetooth name of each device is "RejsaRubber" plus the last four bytes in the Bluetooth address, this automatic name will work in most situations, here's an example of how it can look:
"RejsaRubber6412051B" - for a device with MAC address CC:C9:64:12:05:1B
If you want there's an option to include two letters in the name for Front/Rear, Left/Right. Like FL, RL and so on.
So default is as above "RejsaRubber" + four adress bytes
Option is "RejsaRubber" + one of "FL", "FR", "RL", "RR" + three adress bytes
And for motorbikes "RejsaRubber" + one of "F" or "R" + one blank space + three adress bytes
Examples for a device with MAC address CC:C9:64:12:05:1B:
"RejsaRubber6412051B" - non positional "RejsaRubberFL12051B" - Front Left "RejsaRubberFR12051B" - Front Right "RejsaRubberRL12051B" - Rear Left "RejsaRubberRR12051B" - Rear Right "RejsaRubberF 12051B" - Front (motorbikes) "RejsaRubberL 12051B" - Rear (motorbikes)
To set a specific device name you connect pins on the main board to ground. Preferably using jumper headers so you can move the jumpers easily to set the prefered name. Lets call the three jumpers CAR, FRONT and LEFT.
|--||Default auto names|
CAR is the connection marked "A4" on the main board
FRONT is the connection marked "A5" on the main board
LEFT is the connection marked "MOSI" on the main board
Connect them to the pin marked "GND".
Mirror temperature zones, reverse outside and inside of tire
If you happen to get the tire's outside shoulder temperature showing as the tire's inside temperature in your app you can reverse the out- and inside. By connecting one pin on the main board to ground you mirror the tire's temperature zones. The pin to connect to ground is marked "MISO" on the main board, connect it to the pin marked "GND".
To check that your sensor is transmitting you can run this Bluetooth test app. It shows all the temperatures as hex values though so the values are slightly obfuscated. But good for testing that everything is up and running.
With the Arduino IDE (or other serial terminal software) you can view the printed output from the board over USB. Temperatures are shown as degrees in celsius times ten.
Work in progress...
The software is finished and is stable. But the whole kit has NOT yet been properly field tested, just bench tests so far.
You can make your own enclosure of course but a small enclosure to 3D-print is being designed. This will include a design that enables changing the mounting angle to get the sensors aiming at the right spot on the tire, protection for the sensors and a snap-in holder so the whole enclosure can easily be removed to be recharged and later put back on the car. If printed in nylon/carbon fiber it will be very light and strong to endure the harsh environment in the wheel well. Files to print this enclousre will of course be freely available.
A small IR-transparent sensor protection window is on it's way to be sourced too.
As an alternative to soldering the few wires between the boards I've made a small circuit board that you sandwich mount the cpu board and the sensors to. This board also has places for components converting 12 volt to 5 volt so you can run it directly from your cars power. There is also a power switch if you run on battery. Jumpers to set the device name and mirror outside and inside of the tire temperatures in your app. And the possibility to mount the sensors without their daugther boards directly to this board so you can buy the temperature sensor slightly cheaper without its daughter board.
Questions and more info
Support forum: www.rejsa.nu/rejsarubbertrac
The code for the IR temperature array sensor MLX90621 is 100% untouched from longjos https://github.com/longjos/MLX90621_Arduino_Camera which in turn is an adaption from robinvanemden https://github.com/robinvanemden/MLX90621_Arduino_Processing