-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unknown Chinese TPMS external sensor support #2985
Comments
That's an unexpectedly long preamble buthe MC with ~10 bytes looks right. |
Thank you for quick reply. I will work on the suggestion provided above. Meanwhile please kindly take a look at the logs attached below: I am using ESP32 Dev Module with CC1101 using library RTL_433_ESP . |
I pulled out what looked like the unique MC values in that |
Shifting off 3 bits the values look a bit like a progression and the last byte could be a CRC. We will need more good codes. |
Attached are some more codes as requested. Using URH, recorded the waveforms: Comments on waveforms: |
Note on the recorded IQ file: the level of around -24 dB is dangerously close to silent. Here is a BitBench of the data you posted. |
Here is a BitBench with the data cleaned up, deduped and with some wild guesses. There is a CRC-8, poly 0x2f, init 0xaa that checks out for all packets. And 2f poly is one of the AUTOSAR named ones. |
looks interesting. Been working on decoding pressure data. Any hints on that one? data doesn't seem to be in kPa... 0x1F9 to 21 PSI ? |
Pressure sounds to be 9 bits, PSI, offset 40, scale 10. So value can be from 0 PSI to 47.1 PSI ( 0 kPa to 324.7 kPa) like this bitbench I removed some data with the {132} where bits are missing and shifted. |
I reviewed the rf decode part, it works fine a with FSK_MC_ZEROBIT , pulse is 54 µs and preamble = 0xfffff5, try the sample with:
We have packet payload: 9 bytes.
I drafted a decoder based on these above findings, ready to PR, same it works with the sample. FYI: I checked with -A and the pulse width is more 54 µs than 50 µs. |
URH sees a whole lot of data in that same sample file. I find that the symbol width is almost exactly 50 µs. Some of the data seems to be from another device. Here is what I found with URH: Removing other devices, bad data, and duplicates, I get this data that passes the CRC:
rtl_433 has difficulty finding all this data in the provided sample file created by URH. The rtl_433 command line with parameters in the previous message seems to only pick out a few of these signals. I suspect that allowing rtl_433 to save the signals instead of URH would yield better sample files. Also, although it doesn't seem to matter much with these samples, caution with FSK_MC_ZEROBIT on data (like this) that begins with MC-encoded logical "0" bits (as this is what the sync/prefix truly is). FSK_MC_ZEROBIT will mis-decode these as logical "1" bits until the first "true" logical "1" bit in the decode and it slips into the real decoding. This is why FSK_MC_ZEROBIT finds a preamble of "fffff5", when the decoded MC data is actually "000015" I had similar success using this FSK_PCM flex spec to find the same small subset of the data in that sample file.
|
@ProfBoc75 thanks a lot. A dumb question since I am unable to comprehend it. How does the offset and scaling factor is playing role in calculating the pressure? Is there any formula? Adjusted Pressure = (Pressure value - Offset) / Scale; |
@cyberFIRM: Yes, from the 9 bits we have the pressure_raw. Pressure_PSI = ( pressure_raw - 40 ) * 0.1f ( same as (pressure_raw - 40 ) / 10 or (pressure*0.1f) - 4) And the reverse, to get the 9 bits value, (pressure_PSI * 10 ) + 40 = pressure_raw. |
tpms_chinese.zip
Stuck on decoding part... in decoding section there is nothing to process. For more clarification: How to parse the codes into temp, pressure, id values ?? Thanks for the help |
I'd like to suggest that we switch to a non-nation-based name for this device. Is there any kind of identifying markings on the device we could use? Or perhaps something like Unbranded-TPMS-202406? |
Perhaps those who have the device could try to describe everything about it that has any kind of markings as well as packaging, and how they bought it. From context I am guessing this is something labeled tpms from aliexpress, without better information. |
Regarding packaging, I could not find any box as they were in my garage for a long time, I don't even know where they came from. No markings or labels on the TPMS sensors itself other than FR, FL, RR, RL. Will disassemble a sensor when get back home for any labels. |
Disassembled a sensor, there is written "kylin-wz-1.0" on the PCB nothing else. I suppose we can go with this name for the device. |
Sounds reasonable to me. "Kylin" might be a transliteration of "麒麟", "a propitious beast in ancient Chinese mythology, with the shape of a deer, tail of an ox, a single horn and scales all over its body" and likely used in various company names. Here's a reference to a product titled "EKYLIN Wireless TPMS" which may or may not have anything to do with what we're analyzing, nor even be manufactured by that company. |
From Kylin-Tec (site is hacked / not working properly), they used NXP pressure module. Another link to this site : https://web.archive.org/web/20180901193313/http://new.zlgmcu.com/Item/304046.aspx Today link : https://www.zlgmcu.com/carbcontrol/carbcontrol/article/id/7.html And yes, look like a Chinese product. Notice some useful information about the product, like pressure range, frequency, MCU model and so on... |
Nice find. According to that archive.org page's Contact page, "Kylin Technology Co., Ltd." (其利科技有限公司) was (or is also) "Qili Tianxia Technology Development Co., Ltd." (其利天下技术开发有限公司). Searching for that, I found this page stating this company, formerly "Hong Kong Qili Technology" (香港其利科技), seemed to focus on TPMS systems and seems to own some TPMS related patent . |
@cyberFIRM Is it possible for you to post the Register Keys for the CC1101? |
Hi,
First of all great work really appreciated. I had some unknown TPMS sensor in my garage for a lot of time. I tried running rtl-433 but it did not match with any of the present decoders.
I tried debugging using URH to see the waveforms signals and tried to decode the data into Temp and Pressure but all in vain. Wondering if anyone can help.
first pulse:
010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101011001100110100110101001011001011010101010100110100101011010100110100101100110010101010101100101011010100101010110011001010101011010100101010110101010011001
nrz
555555555555555555555555555555555545555555555555555555555555555555555599a6a596aa9a56a696655595a9566556a55a84c8
manchester I
ffffffffffffffffffffffffffffffffffca91b027135fb8f5f1e14
second pulse
010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101011001100110100110101001011001011010101010100110100101011010100110100101100110010101010101100101011010100101010110011001010101011010100101010110101010011001
nrz
555555555555555555555555555555555545555555555555555555555555555555555599a6a596aa9a56a696655595a9566556a55a84c8
manchester I
ffffffffffffffffffffffffffffffffffca91b027135fb8f5f1e14
Values monitored on LCD Display:
Temp: 42 C
Pressure: 25 PSI
The text was updated successfully, but these errors were encountered: