Oregon Scientific WMR100/WMR200/RMS300A USB protocol client
C Makefile
Latest commit 59380c2 Mar 14, 2016 @barnybug barnybug Remove zeromq support


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.