Currently:
- PECHAM TPMS External sensors
- SYSGRATION/EKETOOL TPMS Internal sensors
Original Android APPs: SYTPMS TPMSII TPMS-Advanced
Connect your TPMS BLE Sensors (currently internal and external models) to your raspberry pi running OpenAuto and use the OBD2 injection service to display the tire pressure and tire temperature in the OpenAuto Dashboards section!



- HUGE thank you to https://github.com/andi38 because he put together a great repo about reverse-engineering the bluetooth connection and data between the Android app and the PECHAM TPMS sensors. He did half and the most important work.
- HUGE thank you to https://github.com/VincentMasselis because he opensourced a great app that helped me figure out how to reverse-engineer the data output and find out the service_uuid and write the python code
- Also, thank you to user "JonLB" in the BlueWave forums for the OBDInject example here: https://bluewavestudio.io/community/thread-3634.html. Great proof of concept.
My "NaviPi USB Update" solution is supposed to be used, this is how this repository is structured. I have also included the necessary dependencies in the tpms-oap_update.sh
file.
But you can always do it manually, install the files, enable the services, etc.
IMPORTANT:
- Add your TPMS sensors' Bluetooth device MAC addresses in the
tpms_mqtt.py
. You can find it using any Bluetooth scanner such as: Bluetooth Finder, Scanner Pair - The services are expecting a log folder location at
~/Logs
. If you don't want that, change it.
After running both services, the expected output for tpms_mqtt
service is:
[2023-07-16 19:09:31] Connected
{'FL': None, 'FR': None, 'RL': None, 'RR': None}
And for openauto_tpms_obdinject
:
Starting injection...
press
waiting for api connection
(10, 14)
getPidValue(10)
FL
{'FL': None, 'FR': None, 'RL': None, 'RR': [3.0, 28, 19.61]}
FL
sent to OAP!
These are examples. More data should start streaming in, and for all tires.
Testing:
There is also a dummy MQTT service included, to produce random tire sensor readings, for testing: tpms_mqtt_dummy.py
. There is also a generic tpms_grabber
which tries to grab output from all BLE devices in the close proximity, and a tpms_output_parse
which can help you start reverse engineering the data byte output.
The sensors measure tire pressure, temperature and battery of the sensor itself. The wake up during rapid pressure changes and after a 5 minute drive. There is also an OAP Notification for low tire readings.



- Convince OAP developers that a
lowerLimit
key needs to be added into Dashboards Gauges, so that there is a safe lower limit for the tire pressure. - Save the data / keep a log for future reference.