Homebrew Tire Pressure Monitoring System

When [upir] saw that you could buy tire valve stem caps that read pressure electronically, he decided to roll his own Tire Pressure Monitoring System (TPMS) like the one found on modern cars. An ESP32 and an OLED display read the pressure values. He didn’t have a car tire on his workbench though, so he had to improvise there.

Of course, a real TPMS sensor goes inside the tire, but screwing them on the valve stem is much easier to deal with. The sensors use Bluetooth Low Energy and take tiny batteries. In theory, you’re supposed to connect to them to your phone, although two different apps failed to find the sensors. Even a BLE scanner app wouldn’t pick them up. Turns out — and this makes sense — the sensors don’t send data if there’s no pressure on them, so as not to run down the batteries. Putting pressure on them made them pop up on the scanner.

The scanner was able to read the advertisement and then correlate pressure to the data. He discovered that someone had already decoded standard TPMS BLE data, except the advertisements he found were significantly longer than his own. Eventually he was able to find a good reference.

The data includes a status byte, the battery voltage, the temperature, and pressure. Once you know the format, it is straightforward to read it and create your own display. Many people would have ended the video there, but [upir] goes into great detail — the video is nearly an hour long. If you want to duplicate the project, there’s plenty of info and a code repository, too.

If you need to read the regular RF TPMS sensors, grab a software-defined radio. Many of these sensors follow their own format though, so be prepared.

5 thoughts on “Homebrew Tire Pressure Monitoring System

  1. I might actually make this in the future. My main problem is that most of these TPMS systems assume you have 2 or 4 wheels, but my 60’s carrier (like a pickup truck bed with a motorcycle attached to the back of it) has three wheels. Two at the front, one in the rear. When you get a TPMS for 4 wheels it usually complains and beeps when you only connect 3, and it’s just not as nice looking. This would be a nice project to recreate for my specific use case.

  2. My 2013 VW uses a different method for TPMS…it simply monitors the wheel speed sensors and counts rotations. If one wheel is doing more turns than the others it is low since its overall rolling diameter is reduced. Downfall being it can’t tell individual pressures.

    Would be an interesting project to tap into the CAN and monitor the wheelspeed this way and add to “any” car with an ABS system without buying parts.

  3. I dislike these sensors, that keeps the valve open, and have to rely on the seal on the end of the valve stem.
    I would like to see sensors, that somehow replace the valve core?
    “Just get something like the OEM?” – No, does not work for tube tyres (MC).
    I have played with the idea, like some cars, of using differential ABS signals?

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.