Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
hid device to osc event daemon used in the robotcowboy project
C++ Shell Pure Data Other
branch: master

This branch is 27 commits behind danomatika:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.



the robotcowboy unit daemon

a device event to osc bridge daemon and associated tools

Copyright (c) Dan Wilcox 2007, 2010


The rc-unitd package contains the following parts:

  1. rc-unitd - device event daemon
  2. rc-unit-notifier - insert/removal notification tool
  3. lsjs - joystick info tool

This group of tools allows any osc-capable program to receive joystick event data aka button presses, axis movements, etc. Specific joysticks can be mapped by name to specific osc send addresses. A notification tool can control the running daemon.

A udev rules set is provided for GNU/Linux to enable automatic notificaiton when devices are plugged in.

These tools are developed for the robotcowboy project, a wearable computer music system using Pure Data in GNU/Linux. See


The following libraries are required:

  • SDL
  • liblo (lightweight osc)

On Max OS X, they can be installed using macports:

  • install the macport binary and setup the macports environment
  • go to the Terminal and install the libs:
    sudo port install libsdl liblo


As this is an GNU autotools project, simply run:

sudo make install

This readme, example config files, and the pd library are also installed to your doc dir, something like $(prefix)/share/doc/rc-unitd.

By default, the configure script installs to /usr/local. To change this behavior, specify a new dir before building the project:

./configure --prefix=/path/to/install/dir

If using macports on Mac OS X, it is recommended to use the macports default prefix of /opt/local.


All applications have a full help usage printout, use -h or --help.

% rc-unitd config_file.xml

Starts device daemon using the given config file. The config file sets the osc connection information as well as device to osc address mappings. Look at the example_config.xml file installed to the doc folder for details.

See the pd patches in the pd folder for info on how to communicate with rc-unitd.

Note: Values set on the commandline override those in the config file.

% lsjs

The lsjs tool lists the names of currently plugged in joysticks, which you can then use to create your device mappings.

% rc-unit-notifier

Used to control a running rc-unitd. Can be used to signal device add or removals as well as send a quit command.

There is a udev rule file for Linux installed to the doc dir that can be used to automatically call rc-unit-notifier when a joystick device is plugged/unplugged.


A Premake4 script and IDE files can be found in the prj folder. Premake4 can generate the IDE files from a given lua script. Download Premake4 from

Make sure the externals are built by calling the prj/setupbuild script which runs configure and calls make in the externals dir.

You can enable a debug build using:

./configure --enable-debug

I develop using an IDE, then update the autotools files when the sources are finished. I run make dist-check to make sure the distributable package can be built successfully.


  • re-add wiimote support using a cross platform library
  • multiple osc send addresses for event forwarding between multiple machines
  • make a systray applet for gui control of rc-unitd ala qtjackctl->jackd
  • add built in osc -> MIDI and other mapping capability (ala junXion or Osculator)
Something went wrong with that request. Please try again.