Skip to content
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

data file #25

Closed
macdrac opened this issue Jan 10, 2014 · 5 comments
Closed

data file #25

macdrac opened this issue Jan 10, 2014 · 5 comments

Comments

@macdrac
Copy link

macdrac commented Jan 10, 2014

how to view/analyze data file?
I'm very new to this, learning as I go. I'm trying to decode transmissions from some cheap Chinese weather station sensors of ebay.
but can't make sense of it yet

when temperature displayed 18.3C I got this:
[00] {48} 00 cd b8 f7 00 3a 00 : 00000000 11001101 10111000 11110111 00000000 00111010 00000000
[01] {48} 00 cd b8 f7 00 3a 00 : 00000000 11001101 10111000 11110111 00000000 00111010 00000000
when temperature change to 18.5C I got this:
[00] {48} 00 cd b6 f7 00 cd 00 : 00000000 11001101 10110110 11110111 00000000 11001101 00000000
[01] {48} 00 cd b6 f7 00 cd 00 : 00000000 11001101 10110110 11110111 00000000 11001101 00000000

temperature increased by 0.2 and third element decreased by 2.. I can't understand why is it backwards.
I can't get gnuradio companion (or any other SDR software with more features that I came across) to work on my laptop, after trying and failing for the last two weeks I gave up. Is there any way can analyze data files by my self?
I will appreciate any hints and clues. Thank you

@merbanan
Copy link
Owner

Run with -t, and open the resulting files with 8 bit stereo in audacity, raw mode. Than you can see the waveform. You can then load stuff into octave also and play around with various filters.

Regarding the temperature, it is most likely a 12bit value scaled by 10 and maybe in degrees of Fahrenheit.

@merbanan
Copy link
Owner

Anyway, put in the sensor in the freezer and log the temperature vs bits, then do the same for the oven (sane temperatures). This should locate the max and min bits. Together with values between it should be easy to figure out the possible scaling.

@macdrac
Copy link
Author

macdrac commented Jan 10, 2014

Thanks a lot. I think I managed to decode it, it's 10bit value. Btw it's Imagintronix IM200 wireless sensor, for £6 of ebay.
example output:
[00] {48} 00 cd bf f7 00 d9 00 : 00000000 11001101 10111111 11110111 00000000 11011001 00000000
[01] {48} 00 cd bf f7 00 d9 00 : 00000000 11001101 10111111 11110111 00000000 11011001 00000000

there is only 5 bytes of real data: 11001101 10111111 11110111 00000000 11011001
5th byte seems some kind of CRC
4th byte I always get only zeros so I'm guessing it allocated for humidity etc but this sensor doesn't have that so it's not used.
3rd byte changes after battery change. probably to identify each sensor.

6 first bits from 1 byte never change, no matter what, for all the sensors (I have 3), must be manufacturers ID
2 last bits of the 1st byte and 2nd byte make up temperature data part. I took that 10bits binary sequence, converted to decimal value and worked out formula that seem to work perfectly:
T(Celsius)=(1023-400-x)/10
or
T=(623-x)/10
where x is value of 10bit data part.

for example:
110011(01 10111111) 11110111 00000000 11011001
x=0110111111=447
(623-447)/10=17.6

ps. I can explain in detail how did I come to this if anybody want to hear the boring stuff.

@macdrac
Copy link
Author

macdrac commented Jan 10, 2014

now I just need to figure out battery bit and CRC part..

@merbanan
Copy link
Owner

merbanan commented Dec 3, 2018

We now have the superior sigrok output and -A analyzer for looking at unknown signals. Reopen with signal samples if you still need help. Closing issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants