Testing Tire Pressure Monitoring System Sensors with RTL-SDR and rtl_433

Thank you to Ross for writing in and sharing with an articles that he's written about testing Tire Pressure Monitoring System (TPMS) sensors using an RTL-SDR and the rtl_433 decoder.

TPMS is a system installed on many modern cars (or retrofitted on older cars) that wirelessly monitors the tire pressure on vehicles in order to provide dashboard information that can improve safety and fuel economy. TPMS system typically transmit on license free bands, such as 315 MHz which can easily be received with an RTL-SDR.

Ross owns a 2008 Toyota Tacoma which has a built in TPMS system. Unfortunately he found that one of his sensors was broken as the TPMS warning light was consistently on, despite knowing that his tire pressure was correct.

Instead of purchasing an expensive TPMS diagnostic tool, Ross broke out his RTL-SDR and fired up rtl_433 which already contains a ready to use TPMS decoder. From the data received, Ross was able to determine that only three sensors were transmitting. Ross then goes on to use the RSSI signal power strength measurements provided by the rtl_433 output, while moving the antenna next to each wheel to determine exactly which wheel had the faulty sensor.

Ross's post goes into further details about his setup and the data he received from the sensors. He also created a follow up post, describing a bash script he wrote to automate the process.

TPMS Data Received

2 comments

  1. Peter L

    So annoying that you can get this level of data from these and all you get in the vehicle is a yellow warning lamp. I see newer cars than mine (an ’09) that will at least show each wheel … but dammit, I want to see the kPa and temp change as I get to highway speed!!

  2. beta-tester

    i am doing it the other way around.
    i am using rtl-sdr + rtl_433 to monitor all the different temperature/humidity sensors i places at different locations in and outside my appartement. the sensors from my neighborhood i monitor as well.
    for me, the TPMS data i receive from the big parking place are the unwanted data i filter… 🙂
    i put all data of interest to a sqlite3 database and make a graph with gnuplot of all monitored sensors.
    the only issue i have is to identify my sensors. i have some sensors that changes its id when i put in a new battery in – same if a neighbor changes the battery of their sensors.

Leave a Reply to Peter L Cancel reply

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>