Skip to the content
2 layers57.6 × 17.5 mmITPMS, the printed circuit board in 3D

Enhanced TPMS with integrated tire wear assistant

Size
57.6 × 17.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
15
Nets
21
Pads
75
Tracks, vias
269, 105
Pours
4
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
8 Dec 2024
Updated
24 Feb 2025

Overview

ITPMS is an open-source printed circuit board by LeicesterEnjoyer, from the LeicesterEnjoyer/ITPMS repository on GitHub, published under the MIT licence. It is a 2-layer board of 57.6 × 17.5 mm with 15 parts on 21 nets, routed with 269 tracks and 105 vias.

It is built around the ATTINY84-20SSU, SI7201-B-04-IV and ILPS22QS, with the LIS3DH among its other parts. Its parts include 5 capacitors, 5 ICs, 2 resistors and 1 connector. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

4

README

README.md

ITPMS

A lightweight, energy-efficient Improved TPMS with integrated tire wear assistant (ITPMS). Designed for universal compatibility and precision.

🔥 Key Features

  • 🏋️ Ultra-Compact Design
    Minimal weight (<30g) ensures compatibility with most tires without affecting balance.

  • 📡 Autonomous Operation
    Wakes up via accelerometer motion detection → close to none battery drain when stationary.

  • 📊 Fast And Precise
    Uses device computing from sensors such as:

    • Pressure sensor
    • Temperature sensor (built into the MCU)
    • 3-axis accelerometer
    • Hall effect sensor
  • 🔋 10-Year Battery Life
    Has low-powered elements and works only while the vehicle is moving.

  • 🎯 Hall Effect Initialization
    Quick pairing with magnetic TPMS initializing pen.

🛠 How It Works

Installation & Activation

  1. Open remove the tire from the rim.
  2. Mount the TPMs on the stem valve inside the tire .
  3. Wake & Pair the TPMs with the magnetic TPMS initializing pen.
  4. Drive to see the real time pressure and temperature changes.

Data Transmission

TriggerAction
> 5% pressure deviation from last readInstant RF alert to ECU
> 5% temperature deviation from last readInstant RF alert to ECU
10s without any significant changesKeep-alive ping

🔍 Code library

ITPMS/
├── Assistant/                                # All files for the tire wear assistant.
│   ├── assets/                               # Assets for the UI.
│   ├── CSVhandling/
│   │    |── CSVmanager.py            # Read and write operations for csv files.
│   │   └── DataGenerator.py        # Generator for (TPMs) tire data.
│   │
│   ├── Data/                                # Data files for the different tire types and seasons.
│   ├── Tests/                                # Tests for the functionalities of the TPMs classes.
│   ├── TPMsHandling/
│   │    |── Tire.py                          # Represents the tire (TPMs).
│   │   └── Tires.py                        # Represents the tire complect of the vehicle.
│   │
│   ├── Main.py                            # Runs the needed code and tests.
│   └── TireAssistantGUI.py          # UI for the assistant. (*Run the file to start it.)
│
├── CAD/                                      # KiCad models of the pcb.
├── Datasheets/                           # Datasheets of all components used in the pcb.
├── TPMS&TPMs/                        # All files and libraries used by the hardware.
│   ├── Code/
│   │    |── Receiver.ino                 # Receiver algorithm.
│   │   └── Transmitter.ino            # Transmitter algorithm.
│   ├── Libraries/
│   │    ├── Receiver/                    # Receiver libraries.
│   │    ├── TPMs/                        # Transmitter libraries.
│   │    └── TPMS_structures.h     # Common configuration.
│
├── LICENSE
├── README.md                          # You're here!
└── requirements.txt                    # Python dependencies.

🔑 Setup

Assistant

Run this command to download the needed dependencies:

sh
pip install -r .requirements.txt

After that you can run the UI with:

sh
python Assistant/TireAssistantGUI.py

TPMS & TPMs

The software must be flashed on a special TPMs via SPI programmer. From there you have to follow the steps in Installation & Activation an you will be ready to use it.

Parts

15
QtyValueFootprintReferences
4100nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C3, C4, C5
210kΩResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R2
1clipboard:4eb36868-7858-4e6f-a6ae-c8a8869b2542
110µFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC2
124602460:BAT_2460BT1
1ATTINY84-20SSUATTINY84-20SSU:SOIC127P600X175-14NU1
1Conn_01x06_PinConnector_PinHeader_1.27mm:PinHeader_1x06_P1.27mm_VerticalJ1
1ILPS22QSILPS22QSTR:ILPS22QSTRU4
1LIS3DHPackage_LGA:LGA-16_3x3mm_P0.5mm_LayoutBorder3x5yU3
1NRF24L01_BreakoutRF_Module:nRF24L01_BreakoutU2
1Si7201-B-04-IVSi7201-B-04-IV:SOT95P275X125-3NIC1

Similar boards

  • 4 layers50 × 45 mmMainControl, the printed circuit board in 3D

    MainControl

    Bergi84/GrowOMatic

    128 parts
  • 2 layers72.1 × 78.5 mmPcb9segCounter, the printed circuit board in 3D

    Pcb9segCounter

    martinbros/9SegCounter

    SAO 9 Segment 2 Digit Counter

    57 parts8GPL-3.0
  • 2 layers79 × 49.9 mmIO NRF, the printed circuit board in 3D

    IO NRF

    crlab3/OBD_IONRF_ESP32

    Latest version of IONRF & ESP32 OBD platform.

    39 parts
  • 2 layers40 × 28.6 mmLever, the printed circuit board in 3D

    Lever

    Karpova-Lab/lever

    Retractable lever for rat behavior experiments

    12 parts
  • 2 layers50 × 50 mmTPSE Glass, the printed circuit board in 3D

    TPSE Glass

    lukilukeskywalker/Binary_Clock

    Binary Clock designed to run on an attiny84, and to be in a one sided pcb

    49 parts
  • 2 layers59.7 × 79 mmEsion-4aa, the printed circuit board in 3D

    Esion-4aa

    RVelichko/Esion

    C++

    41 parts
  • 2 layers42 × 18 mmDesign files Attiny84 V0, the printed circuit board in 3D

    Design files Attiny84 V0

    aspro648/KiCad

    My design files. Abandon all hope ye who enter here.

    65 parts33
  • 2 layers55 × 96 mmOrnament, the printed circuit board in 3D

    Ornament

    Matir/hacks

    Miscellaneous Hacks

    30 parts18BSD-2-Clause

Questions

How big is the ITPMS PCB?

It measures 57.6 × 17.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the ITPMS use?

15 parts, built around the ATTINY84-20SSU, SI7201-B-04-IV, ILPS22QS and LIS3DH. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the ITPMS KiCad files?

From the LeicesterEnjoyer/ITPMS repository on GitHub, at the commit this page was made from: the board is CAD/CAD.kicad_pcb and its schematic CAD/CAD.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ITPMS design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).