Journey with Confidence RV GPS App RV Trip Planner RV LIFE Campground Reviews RV Maintenance Take a Speed Test Free 7 Day Trial ×
 

Go Back   Thor Forums > Thor Tech Forums > Modifications and Updates
Click Here to Login
Register FAQ Community Calendar Today's Posts Search Log in
Reply
 
Thread Tools Display Modes
 
Old 12-15-2021, 06:33 PM   #61
Junior Member
 
Brand: Still Looking
State: Ontario
Posts: 7
THOR #25573
Oh man this is exactly what I'm trying to do and I'm having huge issues! I know this is an older post but I hope it's fine to keep it all together. I'm hoping for a response from the OP on this.

Essentially, I purchased the BLU INTERNAL sensors and am trying to reverse engineering the bluetooth signals in order to uses the raw signal in another app.

Test setup:
Motorcycle wheel mounted with sensor and a motor to spin the tire to get the sensor to engage and send a signal (as they go dormant otherwise).
Motorcycle tire warmer to get the tire nice and hot before the test
Android tablet for using the stock BLU TPMS app to read values off of and to use the btsnoop.log file to grab the raw data from.

My issue...well I did some quick tests yesterday and was able to record the data, send myself the log files and open in wireshark and pinpoint the signals. So today I went through getting it all setup, did it all the same, and lo and behold....I got a few signals from when the app opened (it seems) and then nothing for the 45 minute test where I reduced pressure and let the tire temp cool.

At the end of the test I hooked up my bluetooth headset and pressed some buttons to see what that would do.

The result was extremely frustrating...I seemed to get all the values yesterday but when I setup for a big test I got nothing useful. I was recording the BLU app pressure / temp changes and relying on my timestamps to find the info in wireshark but nothing...

What did you use to grab the raw data for your project? Can you go into a bit more detail on your conversions etc?

Any help is appreciated and if you want more details on anything please let me know.

Thanks,
Michael

__________________
Michael86 is offline   Reply With Quote
Old 12-15-2021, 07:00 PM   #62
Axis/Vegas Enthusiast
 
Brand: Thor Motor Coach
Model: Axis 24.4
State: Michigan
Posts: 9,837
THOR #1150
Quote:
Originally Posted by Michael86 View Post
Oh man this is exactly what I'm trying to do and I'm having huge issues! I know this is an older post but I hope it's fine to keep it all together. I'm hoping for a response from the OP on this.

Essentially, I purchased the BLU INTERNAL sensors and am trying to reverse engineering the bluetooth signals in order to uses the raw signal in another app.

Test setup:
Motorcycle wheel mounted with sensor and a motor to spin the tire to get the sensor to engage and send a signal (as they go dormant otherwise).
Motorcycle tire warmer to get the tire nice and hot before the test
Android tablet for using the stock BLU TPMS app to read values off of and to use the btsnoop.log file to grab the raw data from.

My issue...well I did some quick tests yesterday and was able to record the data, send myself the log files and open in wireshark and pinpoint the signals. So today I went through getting it all setup, did it all the same, and lo and behold....I got a few signals from when the app opened (it seems) and then nothing for the 45 minute test where I reduced pressure and let the tire temp cool.

At the end of the test I hooked up my bluetooth headset and pressed some buttons to see what that would do.

The result was extremely frustrating...I seemed to get all the values yesterday but when I setup for a big test I got nothing useful. I was recording the BLU app pressure / temp changes and relying on my timestamps to find the info in wireshark but nothing...

What did you use to grab the raw data for your project? Can you go into a bit more detail on your conversions etc?

Any help is appreciated and if you want more details on anything please let me know.

Thanks,
Michael
I used a Bluetooth sniffer app in Windows: https://www.microsoft.com/en-us/p/bl...ot:overviewtab

My test setup was fairly simple: The sensors broadcast for a few minutes after powering up so I just would remove and re-insert the battery to get some data.

Then I compared the readings from the app that came with them to the data to try to find a value that matched (or one that I could convert to the value displayed in the app).
__________________
2022 Thor Axis 24.4
2021 Mach-E
blog - https://spareelectrons.wordpress.com/
JamieGeek is offline   Reply With Quote
Old 12-15-2021, 07:04 PM   #63
Junior Member
 
Brand: Still Looking
State: Ontario
Posts: 7
THOR #25573
thanks for the quick reply!

Any chance you have any examples of the raw data itself and your final equations that you came up with for the external sensors?
__________________
Michael86 is offline   Reply With Quote
Old 12-15-2021, 07:44 PM   #64
Axis/Vegas Enthusiast
 
Brand: Thor Motor Coach
Model: Axis 24.4
State: Michigan
Posts: 9,837
THOR #1150
A comment in my code:
// Received some data from a beacon
// ABeacon->Major = the # identifying the sensor
// ABeacon->Minor = sensor reading: (its a 16 bit number)
// bottom 8 bits: pressure: psi = 100*value/276
// top 8 bits: temperature: t = 54*t/10-40 (round to get a better value)

Looks like there is also two different versions of the sensor. If the GUID is B54ADC00-67F9-11D9-9669-0800200C9A66 then the temp value is 4 times higher (e.g. divide by 4).
__________________
2022 Thor Axis 24.4
2021 Mach-E
blog - https://spareelectrons.wordpress.com/
JamieGeek is offline   Reply With Quote
Old 12-15-2021, 07:56 PM   #65
Junior Member
 
Brand: Still Looking
State: Ontario
Posts: 7
THOR #25573
Absolutely perfect! Thanks so much. If I end up getting the raw data I'll post some info here incase it helps anyone else. Doing another test run after work today.
__________________
Michael86 is offline   Reply With Quote
Old 12-16-2021, 02:41 AM   #66
Senior Member
 
Brand: Thor Motor Coach
Model: Chateau 24F
State: Ohio
Posts: 4,186
THOR #16721
This is a fun read! The approach I've used is capturing the data directly on an Android device. There are Java packages which help interface with Bluetooth on Android. I've been recently experimenting with Flutter/Dart on Android to do this... especially for the GUI part.

Another approach might be using an ESP32 board with built-in Bluetooth... for both TX and RX.

One caveat may be signal strength/interference. Most of the commercial TPMS units now employ repeaters/boosters to overcome both distance and interference.
__________________
Chateau_Nomad is offline   Reply With Quote
Old 12-16-2021, 12:57 PM   #67
Axis/Vegas Enthusiast
 
Brand: Thor Motor Coach
Model: Axis 24.4
State: Michigan
Posts: 9,837
THOR #1150
Quote:
Originally Posted by Chateau_Nomad View Post
This is a fun read! The approach I've used is capturing the data directly on an Android device. There are Java packages which help interface with Bluetooth on Android. I've been recently experimenting with Flutter/Dart on Android to do this... especially for the GUI part.

Another approach might be using an ESP32 board with built-in Bluetooth... for both TX and RX.

One caveat may be signal strength/interference. Most of the commercial TPMS units now employ repeaters/boosters to overcome both distance and interference.
Want another fun DIY project read, if you haven't come across this one yet, my DIY black tank sensor post:
https://www.thorforums.com/forums/f2...nsor-1177.html
__________________
2022 Thor Axis 24.4
2021 Mach-E
blog - https://spareelectrons.wordpress.com/
JamieGeek is offline   Reply With Quote
Old 12-16-2021, 04:04 PM   #68
Senior Member
 
Brand: Thor Motor Coach
Model: Chateau 24F
State: Ohio
Posts: 4,186
THOR #16721
Quote:
Originally Posted by JamieGeek View Post
Want another fun DIY project read, if you haven't come across this one yet, my DIY black tank sensor post:
https://www.thorforums.com/forums/f2...nsor-1177.html
Have you looked into ultrasonic sensing vs resistive?

I follow a YouTube channel called DroneBot Workshop. He does a lot of experiments with different measurement sensors. An intriguing one is the A02YYUW waterproof ultrasonic sensor, which looks like it's now around $16 - $20. Here's a link to the DroneBot video: https://youtu.be/h6321UBATps

His intent is demonstrating accuracy and being waterproof - he doesn't demonstrate the effectiveness of fluid measurement. However, someone in the comments states they have used one of these successfully without corrosion problems.

The other logistical problem is access to the top of waste tanks... I have easy access to the top of my fresh tank, but the waste tanks are against the floor of the MH. BUT - since we're only measuring a linear percentage, possibly mount at the top edge of a tank side, then angle downward toward the opposite bottom? Then a simple calibration/conversion would give a completely "stepless" and linear result. Thoughts??
__________________
Chateau_Nomad is offline   Reply With Quote
Old 12-16-2021, 04:21 PM   #69
Axis/Vegas Enthusiast
 
Brand: Thor Motor Coach
Model: Axis 24.4
State: Michigan
Posts: 9,837
THOR #1150
Quote:
Originally Posted by Chateau_Nomad View Post
Have you looked into ultrasonic sensing vs resistive?

I follow a YouTube channel called DroneBot Workshop. He does a lot of experiments with different measurement sensors. An intriguing one is the A02YYUW waterproof ultrasonic sensor, which looks like it's now around $16 - $20. Here's a link to the DroneBot video: https://youtu.be/h6321UBATps

His intent is demonstrating accuracy and being waterproof - he doesn't demonstrate the effectiveness of fluid measurement. However, someone in the comments states they have used one of these successfully without corrosion problems.

The other logistical problem is access to the top of waste tanks... I have easy access to the top of my fresh tank, but the waste tanks are against the floor of the MH. BUT - since we're only measuring a linear percentage, possibly mount at the top edge of a tank side, then angle downward toward the opposite bottom? Then a simple calibration/conversion would give a completely "stepless" and linear result. Thoughts??
Didn't look into ultrasonic because capacitive seemed so easy and non-intrusive: Simply put some copper tape on the side of the tank. No need to access the top (or bottom) just two pieces of tape on the side.

Especially with that prototype kit really made it easy: Just wire it to the tape and the arduino and you're done.
__________________
2022 Thor Axis 24.4
2021 Mach-E
blog - https://spareelectrons.wordpress.com/
JamieGeek is offline   Reply With Quote
Old 12-16-2021, 04:54 PM   #70
Senior Member
 
Brand: Thor Motor Coach
Model: Chateau 24F
State: Ohio
Posts: 4,186
THOR #16721
The Seelevel system seems to work the way you describe.
__________________
Chateau_Nomad is offline   Reply With Quote
Old 12-16-2021, 05:26 PM   #71
Axis/Vegas Enthusiast
 
Brand: Thor Motor Coach
Model: Axis 24.4
State: Michigan
Posts: 9,837
THOR #1150
Quote:
Originally Posted by Chateau_Nomad View Post
The Seelevel system seems to work the way you describe.
Indeed it does....for a price.
__________________
2022 Thor Axis 24.4
2021 Mach-E
blog - https://spareelectrons.wordpress.com/
JamieGeek is offline   Reply With Quote
Old 12-16-2021, 05:51 PM   #72
Senior Member
 
Brand: Thor Motor Coach
Model: Chateau 24F
State: Ohio
Posts: 4,186
THOR #16721
Quote:
Originally Posted by JamieGeek View Post
Indeed it does....for a price.
YES! $$$ And that's why I dabble in reverse engineering/homebrew!

I made my own "geofence" garage door control... it opens/closes when you hit the geofence about 100 meters from our driveway. Less than $20 in parts, but HOURS and HOURS of programming and trial/error experiments. All fun stuff!
__________________
Chateau_Nomad is offline   Reply With Quote
Old 12-16-2021, 05:53 PM   #73
Junior Member
 
Brand: Still Looking
State: Ontario
Posts: 7
THOR #25573
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.


Attached Thumbnails
Click image for larger version

Name:	Setup.PNG
Views:	34
Size:	1.27 MB
ID:	35237   Click image for larger version

Name:	Temperature Graph.PNG
Views:	33
Size:	20.9 KB
ID:	35238  

Click image for larger version

Name:	Pressure Graph.PNG
Views:	36
Size:	19.9 KB
ID:	35239  
__________________
Michael86 is offline   Reply With Quote
Old 12-16-2021, 06:29 PM   #74
Axis/Vegas Enthusiast
 
Brand: Thor Motor Coach
Model: Axis 24.4
State: Michigan
Posts: 9,837
THOR #1150
Question 1: I don't know. Playing with the TPMS was my first experience with beacons.

Question 3/4: Don't know what the other GUID is, my code just uses the one and if it isn't that one uses the other formula.

Question 5: Since beacons are broadcast I could receive the same data in the windows app that the original android app was also receiving and compare the formula I was using to the reading in the android app.
__________________
2022 Thor Axis 24.4
2021 Mach-E
blog - https://spareelectrons.wordpress.com/
JamieGeek is offline   Reply With Quote
Old 12-16-2021, 06:31 PM   #75
Junior Member
 
Brand: Still Looking
State: Ontario
Posts: 7
THOR #25573
Sounds good. Thanks for the reply and again thank you for the help. You saved me days of searching around and trouble shooting to figure out which values are important for my purposes.
__________________
Michael86 is offline   Reply With Quote
Old 12-17-2021, 01:05 AM   #76
Member
 
Brand: Thor Motor Coach
Model: Thor Vegas 25.3
State: Nebraska
Posts: 30
THOR #24456
Quote:
Originally Posted by Michael86 View Post
Sounds good. Thanks for the reply and again thank you for the help. You saved me days of searching around and trouble shooting to figure out which values are important for my purposes.

Been reading about raw data, graphs, temps, warnings, alerts, analog, etc. Thought it was time to post where I mounted my analog TPMS. It has served me well for over 47 years helping me maintain 18 tires (16 actually) without needing new batteries, and even continues to function after surviving an engine fire (notice the burnt handle)


Attached Images
 
__________________
Jim & Linda Bender
Retired Truck Driver...Learning how to be a Tourist.
2018 Vegas 25.3
RunnerJim is offline   Reply With Quote
Old 12-17-2021, 02:06 AM   #77
Junior Member
 
Brand: Still Looking
State: Ontario
Posts: 7
THOR #25573
Quote:
Originally Posted by RunnerJim View Post
Been reading about raw data, graphs, temps, warnings, alerts, analog, etc. Thought it was time to post where I mounted my analog TPMS. It has served me well for over 47 years helping me maintain 18 tires (16 actually) without needing new batteries, and even continues to function after surviving an engine fire (notice the burnt handle)


Hahaha that gave me a good laugh. Got a few similar looking analog TPMS sensors. None that survived an engine fire though!
__________________
Michael86 is offline   Reply With Quote
Old 12-30-2021, 10:20 PM   #78
Junior Member
 
Brand: Still Looking
State: Ontario
Posts: 7
THOR #25573
Update: Forgot to mention that the equation for Temperature is confirmed from the app to be what I suggested in one of my other posts and that this now confirms a new formula that will be more accurate for the pressure since it calculated in kPa then converts to others as explained below

Quick update incase anyone is interested. I did a detailed post on this on the Racechrono forums as I'm trying to get it incorporated into that app, however, here are the final equations that I got after digging through the app's coding. None of this would have been possible without JamieGeek's initial post which helped kickstart this for me!

Note 1:
Major ID is printed on the back of the Internal sensors marked as “ID” but it’s in HEX.
Example from mine
07466 (HEX) which converts to:
29798 (Decimal) (The Major ID that is broadcasted and discussed in previous posts). So you don’t need to “sniff” for new sensors. At least the internal. I’d be interested if the external ones have this info somewhere on them.

Note 2:
Minor ID is what is then analyzed which is previously discussed. In this example the Minor was broadcasted as 23401 (decimal) which equals 5B69 (HEX)

Then for the final formulas:

Step 1: Calculate Temperature
Analyze byte 1 (0x5B)
Convert byte to Uint16 – little endian BA
Ex: 0x5B = 91

Note: There are 3 different formulas for Temperature based on UUID. I grabbed them from the app code and listed the three options below. The UUID is broadcasted each time along with the Major / Minor so you can use that to know which one to use:

Note 2: The UUID’s are all the same other than the final digit. So really, you could just log the final digit for knowing which set of formulas to use.

Case 1: UUID = b54adc00-67f9-11d9-9669-0800200c9a66

Formula degC = value – 40 (value in this case is 91 as shown above). Therefore output would be 51 deg C.

Formula degF = (value-40) * 9 / 5 ) + 32 (Note: standard equation for this but I confirmed in the app coding that they calculate in Celsius and convert to F if the user requests F)

Case 2: UUID = b54adc00-67f9-11d9-9669-0800200c9a67
Formula degC = (value*2 – 40)
Formula degF = (value*2 - 40) * 9 / 5 ) + 32

Case 3: UUID = b54adc00-67f9-11d9-9669-0800200c9a6a
Formula degC = (value*3 – 40)
Formula degF = (value*3 - 40) * 9 / 5 ) + 32

Step 2: Calculate Pressure (This formula is revised after looking into the app coding)
Analyze byte 2 (0x69)
Convert byte to Uint16 – little endian BA
Ex: 0x91 = 105

Pressure (kPa) = value * 2.5 (This is the unit that the sensors use as a base)

Note: The following 3 are the exact conversions that the app uses from the code.

Pressure (Bar) = (value * 2.5) * 0.01
Pressure (psi) = (value * 2.5) * 0.145038
Pressure (km/cm2) = (value * 2.5) * 0.0102

Note: the UUID plays no role in the pressure calculation. Same for all sensors.
__________________
Michael86 is offline   Reply With Quote
Old 01-09-2022, 08:57 PM   #79
Senior Member
 
Brand: Thor Motor Coach
State: South Carolina
Posts: 698
THOR #22342
TPMS from AllExpress

I have purchased this low cost system on AllExpress. It is less that 50$ but isnt very reliable. It however shows tire pressure and temperature.

It mounts next to my side console for easy viewing. I figure its better than nothing, but would certainly like to know of a better system.
Attached Thumbnails
Click image for larger version

Name:	2022-01-09_15-57-15.jpg
Views:	30
Size:	65.5 KB
ID:	35569  
__________________
txc2936@yahoo.com is offline   Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


» Featured Campgrounds

Reviews provided by

Disclaimer:

This website is not affiliated with or endorsed by Thor Industries or any of its affiliates. This is an independent, unofficial site.


Thor Motor Coach Forum - Crossroads RV Forum - Redwood RV Forum - Dutchmen Forum - Heartland RV Forum - Keystone RV Forum - Airstream Trailer Forum


All times are GMT. The time now is 09:49 PM.


Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Content Relevant URLs by vBSEO 3.6.0 PL2