Update! – warning…long reply.
So some great news on my end, I was able to redo my experiment and get the results I needed to generate my own graphs and compare to your equations. I've got a few questions / things to consider. I’ll list those first and then go into showing my data and setup.
Remaining questions / discussion topics
1) Is it common for Bluetooth beacons to have a main mac address but to then broadcast using seemly randomly generated ones?
a. My Main one seems to be “14:99:E2:0A:A9:29” but the broadcasts always come from “98:84:XX:0A:74:66”
2) Comment – using the android btsnoop.log file was a pain and useless for the beacon. First off, the data is not actually in the .log file. It’s in the bug report you need to generate and then unzip and it’s in a .cfa file. It works great for devices (it seems) like Bluetooth headsets and controllable lights. But not for beacons like this. Instead Nrfconnect works perfectly for this. I used two android devices. OP used a windows based machine and app. Seems to work fine with just two different devices.
3) Think I’ve improved on the temperature formula. You had:
a. Formula A: T(degF) = ((54* SensorValue /10)-40)/4
GUID is B54ADC00-67F9-11D9-9669-0800200C9A66
b. Formula B: T(degF) = (54* SensorValue /10)-40
GUID is ??
With my graph, shown below, and my data (also shown below) the Celsius is a perfect formula at:
Formula A (degC): T = SensorValue – 40
Formula A (degF): T = ((SensorValue - 40) * 9/5)+32
4) What is the other GUID you had?
5) Curious as to how you chose the formula 100/276 * value for the pressure (psi) I know companies use common bases but this is not my specialty. I’m hoping for some insight as this formula is perfect for my values. My equation came out with an intercept just under zero so I forced the equation to intercept at 0 and the slope is then almost perfectly 100/276. Any insight is appreciated in how you chose this value. I did some quick light google searching and it appears that it’s a “simple iterator” for python? All that said and done. I’m going with yours as the correct formula for pressure.
The rest of this will show how I did it incase someone wants to do this work for another TPMS sensor.
Test Setup:
Used motorcycle rear tire slick
Tire warmer
Wheel balancer
Variable speed buffer WITH spongy thick application of underground electrical tape. NOT normal tape. It softens the “catch”. IMPORTANT and DANGEROUS
External temperature gun (not actually useful)
Motion Pro Digital Pressure gauge (just for comparison / releasing pressure for next test)
Fan – for accelerating temperature drop
Android Phone for using nrfConnect
Android Tablet for monitoring official app
Steps:
1) Hooked everything up and heated the tire to 95C with the tire warmer and then filled the tire to approximately 40psi.
2) Got tablet / phone ready for logging. I also did the logs for the internal bug report / log file but as mentioned before they were useless. The useful items were nrf connect for phone and official app on tablet
3) Removed cover
4) Hit “Scan” on nrf connect with a -65 db filter and then gently applied the variable speed buffer to get a low speed out of the tire. I had to use the maximum setting with the small size of shaft to get the tire to spin enough to activate the sensor. (activates with motion only)
5) Had helper watch screen on official app call out the app registering the change. Recorded time, app temp (Deg C) and pressure (psi), slowed tire and verified pressure with motion pro and external temp with temp gun.
6) Opened the nrf connect app log and screenshoted the values with the built in timestamp.
7) Waited approx. 5 minutes between tests
8) Let out 3-5ish psi and redid testing until low temp value hit just above room temp and pressure was low.
After testing:
Took “minor” values (5 decimal digits) and converted to HEX. First Byte is Temp and second Byte is Pressure.
Ex: 23401 decimal translates to 5B69 in HEX. 5B is Temp and 69 is Pressure. Then putting the individual hex bytes into an online calculator I converted using “UINT16 – little endian) to get the value to enter into the equations above.
Graphs
Here are my graphs with the overlaid excel generated y=mx+b formulas. The one for PSI is what it gave me but I’m going to use the 100/276 for slope (m) rather than the 0.3625 it shows.