Oregon Scientific WMR100/WMR200/RMS300A USB protocol client
Switch branches/tags
Nothing to show
Clone or download
Latest commit 59380c2 Mar 14, 2016
Type Name Latest commit message Commit time
Failed to load latest commit information.
osx/wmr100.kext/Contents Adding osx one time setup instructions Dec 13, 2010
udev Update udev rules. closes #6 Jan 4, 2013
.gitignore Initial import Dec 20, 2009
COPYING Add GPL Dec 20, 2009
README.md Remove zeromq support Mar 14, 2016
wmr100.c Remove zeromq support Mar 14, 2016


Oregon Scientific WMR100 client for Linux/BSD/etc.


  • Oregon Scientific WMR100
  • Oregon Scientific WMR200
  • Oregon Scientific RMS300A


The WMR100/200 use a proprietary protocol for their USB connection.

It's very useful for enthusiasts running a headless Linux box to collect and analyze data from this link, but unfortunately the protocol isn't openly documented, nor are clients provided for this platform.

This simple C program handles the USB protocol of the WMR100, and translates to a JSON format, easy for parsing/analysing.

You can output to:

  • stdout
  • a file

You'll need to setup the udev rules (see udev/README) if you want to run this not as root. This is due to how libhid accesses the USB ports.



  • libhid-dev
  • pkg-config
  • libusb-dev


Run 'make'.

To install, copy wmr100 to your path.

One time install for osx

To keep the default HIDManager from taking the wmr100, run this once:

make setup_osx

If you want to use different software to read the wmr100 device, you should undo this by running make unsetup_osx and then reboot so that the HIDManager will take control of the device again.

Raspberry pi

To install on raspberry pi use this script:



Run: ./wmr100

This will dump data to data.log as well as stdout.q as stdout. You can then process periodically data.log with a script in python/perl/ruby/your language of choice, and frob with the data that way.