My WMR88 Oregon Scientific Station unfortunately died a couple of weeks ago after almost 6 years working. I was very satisfied with this model but Oregon Scientific does not produce it anymore. The updated version, the WMR89, is compatible with the sensors of the old model but, surprisingly, their computer interfaces are completely different. Luckily some clever people from www.wxforum.net found out how to decode the data sent by the station. In this short guide I will expose how to install and configure a WMR89 station with weeWX in a Raspberry Pi.
Configuring CP210x Driver
Most weeWX drivers use pyusb library to communicate with weather stations. That was the case, for instance, of the WMR88. However, the WMR89 uses chip CP210x as a USB to UART (serial) Bridge Virtual COM Port. Using the CP210x drivers the device can be mapped to a serial port of the Raspberry Pi, such as
/dev/ttyUSB0. The required drivers are already included in the last Raspbian version (Strech) but, to map the device, you should first load the CP210x kernel module. You can do it manually by typing:
sudo modprobe cp210x
Unfortunately, the vendor and product ID of the WMR89 are not registered in the driver CP210x.c. This means that, even though the device can be found with
dmesg when connected, your Raspberry will not be able to communicate with it (/dev/ttyUSB* doesn’t exist). One option could be to edit the driver, include the pair vendor/product, recompile and reinstall.
A much simpler solution is to edit the file
/sys/bus/usb-serial/drivers/cp210x/new_id and include the vendor and product ID of the WMR89 station in it. Writing a product ID to this file will make Raspberry to attempt to dynamically add it to a PCI device driver. Upon successfully adding an ID, the driver will probe for the device and attempt to bind to it. Do it with this code, where
0fde is the vendor Id and ca0a the product:
sudo sh -c 'echo 0fde ca0a > /sys/bus/usb-serial/drivers/cp210x/new_id'
If everything runs correctly, you should see now the device in
If you want to load automatically
cp210x kernel module at boot time append it to file
sudo sh -c 'echo cp210x >> /etc/modules'
I have also included in rc.local the command to add the device to
new_id file in order to ensure that the weather station, when connected, is correctly configured.
Installing WMR89 weeWX driver
There are a couple of available weeWX drivers for the WMR90 station. However, none of them are officially included in the last weeWX release (3.8.0 version). The drivers are not complete and are unable to decode forecast values or low battery signals. However the basic weather information is correctly captured. I have used fcauwe driver, available in his Github. Download the file, place it in
/usr/share/weewx/drivers (for a Raspberry Pi running Raspbian) and do the following changes in your weewx.conf file:
... [Station] ... station_type = WMR89 ... [WMR89] model = WMR89 driver = weewx.drivers.wmr89 type = serial product_id = 0xca0a port = /dev/ttyUSB0 ...