Skip to content
forked from rene-d/oregon

Oregon Scientific sensor logger with Arduino and 433Mhz receiver

License

Notifications You must be signed in to change notification settings

AgentBignose/oregon

 
 

Repository files navigation

Oregon Scientific sensor logger

An Arduino sketch to gather temperature and humidy from an old Oregon Scientific sensor.

These sensors use the Manchester code to transmit data to weather stations. This kind of data encoding was and still is widely used.

Parts

  • Arduino Nano or Uno, or any other cheap clone
  • 433Mhz receiver like this one Amazon AliExpress (RXB6 superheterodyne)

Library and software

Sensors and messages

  • Oregon RTGR328N
    • 3CCx (with x=9,A,B,C,D) : Outside Temp-Hygro (known as 0xACC in RFLink plugins).
    • 3EA8 or 3EC8 : Date & Time (0xAEC or 0xAEA)
  • Oregon THGR228N or equivalent
    • 02D1 : Outside Temp-Hygro (0x1A2D)

See decode.h or below for details.

I guess that some authors haven't noticed that the first nibble A is not a part of the message, or just ignore this fact for convenience.

Nota

Bytes are received in 2 nibbles, LSB first, then MSB.

In lack of official documentation or clear and verified sources, I cannot know how Oregon Scientific sensors and stations really identify messages: 2 nibbles (0 and 2) or 4 nibbles, and with which order (0x12D0 or 0x02D1) ? That suppositions... I prefer the last one, because BCD numbers are reversed, the checksum is. So the ID should be too.

Message with temperature and humidity

Desc Content
Bytes received DA CC 43 D9 16 08 80 83 64 A0
Nibbles A 3CCD 4 D9 6 0081 38 8 64 0A
Decoded channel=4 temp=8.1°C hum=38% bat=6
Nibble Value
0 always 0xA (1010 in binary), kind of sync or preamble
4-1 message ID
5 channel
7-6 rolling code : a code to identify the sensor, change after many resets
8 battery state, bit 3 seems to indicate a low level battery
12-9 temperature in BCD, in Celsius degrees, sign in nibble 12
14-13 percent of humidity in BCD
15 unknown, maybe comfort indicator (according to RFLink)
17-16 checksum (nibbles 1 to 15)
19-18 unknown trailing, not always present or misunderstanding of protocol

Message with date time

Desc Content
Bytes received 8A EC 43 D9 76 44 31 82 12 91 71 77 CA
Nibbles A 3EC8 4 D9 6 47 14 23 28 1 1 19 7 77 AC
Decoded channel=4 state=6 clock=2019/01/28 23:14:47
Nibble Value
0 always 0xA (1010 in binary), kind of sync or preamble
4-1 message ID
5 channel
7-6 rolling code : a code to identify the sensor, change after many resets
8 probably sync state, bit 1 indicates that clock is valid
14-9 HH:MM:SS in BCD
16-15 day (1-31) in BCD
17 month (1-12)
18 day of week (0=sunday)
20-10 year in BCD
21 unknown
23-22 checksum (nibbles 1 to 21)
25-24 unknown trailing, not always present or misunderstanding of protocol

Wiring

breadboard

Links

About

Oregon Scientific sensor logger with Arduino and 433Mhz receiver

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 53.2%
  • C 42.2%
  • Python 2.3%
  • CMake 1.9%
  • Shell 0.4%