Skip to content

Temperature Sensors: Oregon Scientific Decoding

This post is part of the Temperature monitoring project.

As said in the previous post, the protocol used by the Oregon Scientific EW91 is relatively new (seems to be named ‘Elements’), and I did not find already existing code on internet to decode it.

So I attached a 433 MHz receiver module (generic brand) to an Arduino Duemilanove and started observing, with the help of a tiny logic analyzer, and mostly the sound card of the PC and Audacity.

The picture bellow gives an example of the raw data that is received.


I will not go here into the details of the decoding algorithm. Those interested into that can have a look into the Arduino sketch, especially in file OregonRX.pde. Feel free to post comment if you want focus on a specific point.

However, here is an excerpt from code comments that shows the protocol main principles for the “impatient”:

Considering decoding, I left one detail uncovered: the “low battery” indicator decoding. May be will do that later.


One other thing to mention:

I noticed that RF range was very short. So I tested another RF module (from telecontrolli), and have nearly the same problem. As I did not have an RF analyzer to check, I guessed that perhaps the frequency used by the Oregon transmitter was not exactly the same as the receiver modules I had.

I finally decided to open the EW91 display unit case and take the RF receiver used inside. After all, this is a reasonable price option.

The picture above shows this receiver (green PCB) mounted on a “daughter board” ready to be included into the central node box.

With this option, the range improved significantly, and I also adopted for a ½ wave length for the receiving antenna to increase it a little bit more.

The initial code from the Arduino prototype was then moved to the final target, a Jeenode as will be explained later. This change involved some code adaptation to deal with pin availability: an analog input has been used to replace a digital pin not available.

By the way, this change made me discover “by chance” a trick to read 3.3V digital logic with 5V microcontroller: use an analog input with comparator!

I have to seek for a simple and good schematic software in order to publish related schematics. But not worth right now, as electronic is so simple here.

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *