tpms  by jboone

CLI tools for decoding automotive tire pressure monitor systems

created 11 years ago
362 stars

Top 78.7% on sourcepulse

GitHubView on GitHub
Project Summary

This project provides tools for capturing, demodulating, and decoding data from automotive Tire Pressure Monitoring Systems (TPMS). It is targeted at radio hobbyists and security researchers interested in reverse-engineering wireless automotive signals. The benefit is the ability to understand and potentially interact with TPMS data using affordable Software Defined Radio (SDR) hardware.

How It Works

The system captures raw radio frequency (RF) data using SDR hardware, typically DVB-T USB dongles. It then processes these captures to extract individual data bursts, analyze modulation characteristics (FSK, Manchester coding), and decode the bitstreams. The tools facilitate statistical analysis of packet lengths, bit distributions, and potential field ranges to identify identifiers, pressure, temperature, and checksums.

Quick Start & Requirements

  • Install: No explicit installation instructions are provided, but the project relies on Python 2.7 and several libraries.
  • Prerequisites: GNU Radio 3.7.1, NumPy, SciPy, PyFFTW, FFTW, PyTZ, PyISO8601, PySide 1.2.0, bruteforce-crc, crcmod, Matplotlib.
  • Hardware: RTL-SDR compatible DVB-T USB dongle (e.g., NooElec TV28T v2) and appropriate antennas (315MHz or 433MHz). HackRF is mentioned but not directly supported.
  • Resources: Requires a computer capable of running GNU Radio.
  • Links: ToorCon 15 talk video and slides, Hak5 interview video.

Highlighted Details

  • Focuses on common TPMS communication techniques: FSK modulation, Manchester bit coding, and simple CRCs.
  • Includes detailed guides for hardware setup, including specific SDR dongles and antennas.
  • Provides command-line tools for various stages of analysis: extract_bursts, burst_inspect.py, tpms_fsk.py, packet_stats.py, packet_graph.py, bruteforce-crc.
  • Offers insights into reverse-engineering CRC polynomials and data fields.

Maintenance & Community

This project is explicitly stated as "no longer maintained." The author recommends more modern alternatives like Universal Radio Hacker, Inspectrum, and rtl_433. Contact information for Jared Boone and ShareBrained Technology, Inc. is provided.

Licensing & Compatibility

  • License: GPLv2.
  • Compatibility: The GPLv2 license requires derivative works to also be licensed under GPLv2, potentially restricting integration into closed-source commercial products.

Limitations & Caveats

The project is unmaintained and uses Python 2.7, which is end-of-life. It has not been adapted to support newer SDR hardware like HackRF's wider bandwidth. The README explicitly recommends newer, better-maintained tools for similar tasks.

Health Check
Last commit

4 years ago

Responsiveness

1 day

Pull Requests (30d)
0
Issues (30d)
0
Star History
2 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.