Open-Source Bicycle Tire Pressure Monitoring Sensor
OpenTPMS: The First Open-Source Bicycle Tire Pressure Sensor
The Problem
If you ride a mountain bike, gravel bike, or any tubeless setup, you know tire pressure matters. A few PSI can be the difference between grip and wash-out, comfort and pinch flats. But checking pressure before every ride with a gauge is tedious, and you have no idea what happens to your pressure mid-ride as temperatures change.
Commercial tire pressure sensors exist (SRAM TyreWiz at $178 CAD, Outrider TL Pro at $122 CAD), but they're expensive, closed-source, and most pot the battery in epoxy. When the battery dies in 1-5 years, the whole sensor goes in the trash. You buy another one.
I wanted something better.
The Solution
OpenTPMS is an in-tire pressure sensor that mounts on the rim bed inside a tubeless tire, around the valve stem. It measures pressure using a factory-calibrated TE MS5837-30BA sensor and transmits real-time data to your Garmin cycling computer over ANT+ and to your phone over BLE, simultaneously.
What makes it different:
Temperature-compensated flat detection. When you ride from shade into sun, your tire pressure changes by about 1 PSI. Every other sensor on the market will warn you about that. OpenTPMS uses the ideal gas law to tell the difference between a temperature change and an actual leak. No false alarms.
Replaceable battery. A CR1225 coin cell sits on a custom PCB contact pad. The enclosure lid has a spring contact for the positive terminal. Unscrew two M1.4 Allen screws, swap the battery, done. About 2 minutes. Battery costs $1 and lasts 2-3 years.
Dual wireless. ANT+ and BLE running concurrently. Garmin reads ANT+, phone reads BLE, at the same time. Both Outrider models only do BLE (no Wahoo support). Only TyreWiz and OpenTPMS support both protocols.
Cold weather. A 220uF ceramic buffer capacitor and internal DC-DC buck converter keep the radio transmitting reliably down to -30C. Other sensors start struggling around -10C. Perfect for fatbikes.
OTA firmware updates. Nordic's secure DFU bootloader lets you flash new firmware over BLE through the tire. New features, better algorithms, bug fixes. The sensor gets better over time without replacing hardware.
Technical Details
**MCU:** Raytac MDBT42Q-512KV2 (Nordic nRF52832, pre-certified FCC/CE/IC)
**Pressure sensor:** TE Connectivity MS5837-30BA, 0-435 PSI, factory calibrated to under 1% accuracy
**Accelerometer:** ST LIS2DH12, motion-detect interrupt for wake-on-wheel-spin
**Battery:** CR1225 coin cell, 48mAh, 2-3 year life at 1hr/day riding
**Power:** Internal DC-DC buck converter saves 30% radio current. Hardware watchdog for reliability.
**Wireless:** BLE 5.0 + ANT+ concurrent via Nordic S332 SoftDevice
**NFC:** Hardware ready (PCB trace antenna + tuning caps), firmware activation in v2
**Weight:** ~6.5 grams per sensor
**Dimensions:** 19mm x 42mm x 5.5mm
The PCB (made by PCBWay)
The PCB is a 2-layer board, 0.8mm thick FR4 with ENIG surface finish, 19mm x 42mm with a center valve hole. Black solder mask. The ENIG finish is important because the CR1225 battery sits directly on a gold-plated copper pad for the negative contact.
The board carries the nRF52832 BLE/ANT+ module, pressure sensor, accelerometer, DC-DC inductor, buffer capacitor, NFC tuning capacitors, I2C pull-up resistors, decoupling capacitors, and four SWD test pads for programming.
All components are SMD, soldered by hand with a Pinecil V2 soldering iron.
PCBWay's ENIG finish and tight tolerance fabrication are critical for this design. The 0402 passive components require precise pad alignment, and the battery contact pad needs the corrosion resistance that gold plating provides for reliable long-term contact with the coin cell.
Enclosure
3D printed ABS with frame-on-PCB construction. The frame bonds permanently to the PCB with RTV silicone. A removable lid with silicone O-ring seal screws down with M1.4 Allen screws into brass heat-set inserts. An ePTFE membrane over the pressure port lets air through while blocking tire sealant. Acetone vapor smoothing on the O-ring groove surfaces ensures a gas-tight seal.
The Numbers
| | OpenTPMS | SRAM TyreWiz 2.0 | Outrider TL Pro |
|---|---|---|---|
| Price (pair, CAD) | ~$66 | ~$178 | ~$122 |
| Battery life | 2-3 years (replaceable) | 200-300 hours | 5+ years (not replaceable) |
| Accuracy | <1% | ±2% | ±0.5% |
| Cold weather | -30C | -12C | Not specified |
| Weight | 6.5g | 10g | 6.9g |
Project Status
PCB design is complete. Gerber files exported. Components sourced from DigiKey, Mouser, Amazon, and AliExpress. Waiting on PCBs from PCBWay to begin assembly, firmware development, and field testing.
Links
GitHub: https://github.com/TH3-G3NTL3M3N/OpenTPMS
Full design spec, BOM, schematic guide, competitive analysis, component decision rationale, and v2 roadmap are all in the repo.
About Me
Simon Ruelland, Computer Engineering student at North Island College, British Columbia, Canada. I ride mountain bikes and gravel bikes in the Pacific Northwest and got tired of guessing my tire pressure.
Contact: simon@ruelland.com
- Comments(0)
- Likes(0)