Go Down

Topic: Acurite 3N1TXC 3-in-1 Weather sensor (Read 4148 times) previous topic - next topic

bkenobi

Lowes has both the 5-in-1 and 3-in-1 weather stations available in store.  The 5-in-1 is pretty bulky so I thought I might see if the 3-in-1 would work.  This sensor has temperature, humidity, and wind speed (no direction).  It's around a foot tall and 6" blade diameter.  I tried using RTL433 with this sensor but it did not pick up any valid data (it picked up the signal but the data was reported as all 1's).  I then captured some data and understand why.

The attached image is an SDR export to Audacity.  The data repeats only once rather than 3 times like the 5-in-1.  Also, the startup signal is a very long pulse followed by 3 shorter pulses.  The data is about the same as the 5-in-1.  Breaking the time scale into 3 equal sized chunks per signal, a 1 is 2 high and one low and a 0 is 1 high and 2 low.  I did not write down the exact times for each of these but they are in the attached image and saved in the captures on my HDD.

I captured data for around a dozen parametric configurations.  The data is as follows (wind speed is approximate as it was either 0 or spun by hand to 5-10mph):

Code: [Select]
Channel TempF RH Wind Binary
A 68 57 0 Xxxx1100000000110011011000000011001100010001100111000000000000110011
A 68 57 6 Xxxx1100000000110011011000001011001000010001100111110000100010111101
B 17 41 0 Xxxx1011010000110001011000001010100100001100011100100000000001101100
B 48 37 0 Xxxx1011010000110001011000001010010100001111101001010000000010011110
B 53 68 0 Xxxx1011010000110001011000001100001100001111110110110000000011110010
B 53 68 6 Xxxx1011010000110001011000000100010000001111010101010000011111110100
B 56 79 0 Xxxx1011010000110001011000001100111100001111111100110000000000010110
B 64 96 0 Xxxx1011010000110001011000000110000010010000110011000000000000000001
B 68 57 0 Xxxx1011010000110001011000001011000100010001101000110000000010101010
B 68 57 6 Xxxx1011010000110001011000000011000000010001101000110000000000101001
C 68 57 0 Xxxx0010000100110100011000001011010000010001100011010000000000000111


I believe I have partially decoded the string, but I could use some help confirming and getting the last info out.

The data that I believe is being sent based on other Acurite threads is:
Channel - C
Battery status - B
Temperature - T
RH% - H
Wind speed - W
parity bit - p

So I think this is correct (except for T):
Code: [Select]

pCCCCCCC pCCCCCCC pBBBBBBB pHHHHHHH pTTTTTTT pTTTTTTT pwwwwwww pppppppp wind  RH%
11000000 00110011 01100000 00110011 00010001 10011100 00000000 00110011 0     51
11000000 00110011 01100000 10110010 00010001 10011111 00001000 10111101 8     50
10110100 00110001 01100000 10101001 00001100 01110010 00000000 01101100 0     41
10110100 00110001 01100000 10100101 00001111 10100101 00000000 10011110 0     37
10110100 00110001 01100000 11000011 00001111 11011011 00000000 11110010 0     67
10110100 00110001 01100000 01000100 00001111 01010101 00000111 11110100 7     68
10110100 00110001 01100000 11001111 00001111 11110011 00000000 00010110 0     79
10110100 00110001 01100000 01100000 10010000 11001100 00000000 00000001 0     96
10110100 00110001 01100000 10110001 00010001 10100011 00000000 10101010 0     49
10110100 00110001 01100000 00110000 00010001 10100011 00000000 00101001 0     48
00100001 00110100 01100000 10110100 00010001 10001101 00000000 00000111 0     52


At this point I'm kinda stuck.  Wind and humidity work out just right.  But, temperature data doesn't work out to anything meaningful.  The other Acurite sensors seem to send temperature in C as T*10+1000 but I can't find any bits that would match that.  Examples that I should find in the data would be:
17F = -8.3C = (1000-8.3*10)=d917=b1110010101
Code: [Select]
pCCCCCCC pCCCCCCC pBBBBBBB pHHHHHHH pTTTTTTT pTTTTTTT pwwwwwww pppppppp wind  RH%
10110100 00110001 01100000 10101001 00001100 01110010 00000000 01101100 0     41


Any thoughts?

pantonvich

maybe try adding 40 for F - I think a lot of the temp sensors go -40F so they add 40 to avoid dealing with negitive

bkenobi

I assumed all sensors transmitted in C, but I suppose it's possible this one is in F.  I suppose it could be F since the wind measurement was the same as the display.

bkenobi

Yeah, I'm not making any progress on decoding temperature.  This is the link to Acurite's listing of the sensor:

http://www.acurite.com/acurite-3-in-1-sensor

It indicates an accuracy and range for each component.  Based on what it's listed, I believe the following:

Wind 0-99mph (7 bit for 1mph accuracy) or 0-4400 cm/s (6 bits if div by 100)
RH% 1-99 (7 bit)
Temp -40-158°F (8 bit if offset +40 for 1°F accuracy) or -40-70°C (7 bit if offset by 40 for 1°C accuracy)

I doubt they would use 8 bits for temperature when they could use 7 and get the 1C accuracy they claim in the specs (±2°F is basically ±1°C).  I've seen other threads where they've decoded the temperature to be (degC*10+1000).  That would result in 11 bits so it's possible they could be using more than 7 bits but I don't see 11 bits that represent the temperature here.  I basically need to see 5 of the 11 data sets showing the same bit pattern for 11 bits (maybe some variation in the last couple that aren't displayed on the readout).  But, it appears this is a lower quality sensor, so why waste the bits?

Now that I see that this sensor seems to be lower quality and less accurate, I think I'm going to get a different unit.  This has been a good learning experience, but without any suggestions I'm kinda stuck.  I'll go back and try to source a better quality wind/temperature/humidity sensor.

:smiley-cool:

Newzwaver

Hi

Has anyone figured this out?  If you did can you share your findings?

Thanks,
Tim

Newzwaver

Hi

I get the following any idea what next?

windspeed: 3.2 mph,  inchestemp: -30.3 F, humidity: 68 %RH, battery: OK, mins since start: 32
unknown msgtype: C4 25 28 32 44 9 53 40 , mins since start: 32
unknown msgtype: 50 D8 80 3 A0 30 50 40 , mins since start: 32
unknown msgtype: 52 6B 4 18 81 66 63 80 , mins since start: 32
unknown msgtype: 1 C5 A5 CB CB 42 C3 A0 , mins since start: 33
unknown msgtype: E 2 4C 41 5 50 20 80 , mins since start: 33
unknown msgtype: 4 48 A 54 1C 42 2E 80 , mins since start: 33
unknown msgtype: A0 44 9 5 88 C0 8A 0 , mins since start: 33
unknown msgtype: 0 5 10 30 0 91 A 0 , mins since start: 33
unknown msgtype: 10 C4 41 1 5 0 A4 40 , mins since start: 33
unknown msgtype: 0 C0 39 E2 98 C0 8 80 , mins since start: 33
unknown msgtype: 20 DE 21 48 46 68 B 40 , mins since start: 33
unknown msgtype: B2 0 20 0 D0 30 A0 40 , mins since start: 33
unknown msgtype: 2 9E 4 26 C3 9F 4E A0 , mins since start: 33
unknown msgtype: 94 32 90 50 80 6 13 0 , mins since start: 34
unknown msgtype: 1E 64 56 1 DC 78 A 80 , mins since start: 34
unknown msgtype: 82 88 3A 11 58 B0 4C 0 , mins since start: 34
unknown msgtype: 83 79 40 E 41 43 2A 0 , mins since start: 34

mauried

Sometimes when trying to decode unknown weather sensors, its worth looking at the Console thats receiving the transmissions, and then look at how many other types of sensors also work with the same console.
If the receiving console supports multiple types of sensors, then there has to be data fields in the transmissions to indicate what kind of sensor it is , so that the console knows what to expect in the transmissions.
Also, if the Console supports multiple channels, then there also has to be a data field in the sensors transmission to indicate what channel its on.
There is also likley to be some kind of CRC or checksum in the transmission to tell the console that the data is valid.
Common types of checksum algorithms are simple modulo 8 checksums or crc8 checksums or both.
Also, some sensors include rolling code algorithms to prevent the console picking up the wrong sensors, which can happen if you install a particular type of weather station , and your neighbour installs the same type .

robwlakes

Just check that they may have mixed their formats. One weather station I decoded used two nibbles BCD for humidity and then used 6 by 4 bit BCD nibbles (with a decimal conversion) for rainfall and BCD binary over 12bits for temperature.  There is nothing to say they don't use BCD in one part and pure binary in another.

Oregon Scientific

Cheers, Rob
Learning Flute and C++, heading for a meltdown.

mrfixit87


Go Up