Serial-PyIO is a cross-platform serial router. Serial-PyIO runs under Linux, Windows and OSX (with some restrictions). Serial-PyIO is free software.

Serial-PyIO combines in a single application:

  • The functions of Monome serial
  • A router enabling easy handling of multiple applications (similar to Pages or Monoroute)
  • A “splitter” to control multiple applications with a single Monome (similar to Quadrant).
  • A modular midi control surface, with faders, keyboard and radio buttons.


The user manual is in the doc directory. You can also download it with this direct link

Installation instructions


Version 0.6 is not yet packaged and still under testing. You can download the current snapshot. You will have to follow the instructions for manual installation to use 0.6: see bellow.

Version 0.4 is packaged for easy installation:


Linux users just need to unpack the bz2 archive and run

For better gui performance you can install the optional package: python-imaging-tk . This is the debian/ubuntu package name.


32 bits editions

Simply use the installer. If you do not have python 2.6 installed, select the standalone installation.

64 bits editions

  1. Get Python 2.6 from “”, by downloading an installer: . Download and install the X86-64 version.
  2. In order for the serial-communication to work, you also need the “Python for Windows extensions”:

Manual installation

  1. Install FTDI drivers from:
  2. Get Python 2.6 from “”, by downloading an installer: . If you have a 64bits version of Windows, download the X86-64 version.
  3. In order for the serial-communication to work, you also need the “Python for Windows extensions”:
  4. Download and unzip the serial-pyio zip file.
  5. Run serial-pyio: double click the file in the Serial-PyIO



Currently only OSX 10.6 is supported. I'm looking for a solution for earlier versions.

You just need to download and unpack the archive. To run serial-pyio launch Open a terminal in Serial-PyIO's directory and type: python

Detailed features:

  • Support all Monome devices and the Arduinome.
    • Devices are automatically detected
    • Devices' configuration is stored and restored when you plug them in.
    • Support for device rotation/cable position (Left,Up,Down,Right)
  • Supported protocols:
    • OSC
    • MIDI (Linux and Windows only)
  • Flexible application routing:
    • Control multiple applications with your Monome
    • Handle multiple devices and sizes simultaneously - 40h, 128, 256, …
    • Application switching and moving using a MIDI controller.
    • Routing configurations can be stored and loaded at will
  • Serial-PyIO supports:
    • Monome OSC applications (Flin, MLR, 7UP, …)
    • MIDI. Transform your Monome into a modular control surface.
    • Quadrant. Using several applications on your Monome at the same time.
  • Serial-PyIO provides several testing applications: random, on/off, life game, follow-me…
  • Can be used with or without a GUI.
  • Virtual monome device (with arbitrary size)
  • The “monome” sub folder can be used as a monome API. There is a tutorial and some examples of using it directly in Python, too.