Communication between OSC and USB_MIDI/HID
C C++ Max Java Assembly Objective-C Other
Latest commit 5b9a6ac Aug 6, 2014 @tkrworks Renewed.


PICrouter is a versatile and prototyping board specialized for Open Sound Control.
The main function is to communicate between OSC and USB-MIDI/HID.

PICrouter will be an useful with the following purpose.

  • Develop an OSC/MIDI/HID controller for music or visual.
  • Study a PIC32 microcontroller.
  • Study a communication with usb and ethernet.
  • Study a mruby(Support ONLY PIC32MX795F512H version)


PICrouter v1.0 TOP VIEW PICrouter v1.0 ETH/USB VIEW
Photographed by Kiyasu/TechnikLAB*

How to buy

You can buy the PICrouter on tkrworks online store and SWITCH SCIENCE.
The price of product is 7560JPY.


PICrouter is Free Hardware and Free Software.


  1. Supported mruby(ONLY PIC32MX795F512H version)
  2. Supported mDNS(Bonjour on Mac OS X), DHCP(both server and client).
  3. Supported Open Sound Control.
  4. Supported the multicast address( and
  5. Supported USB dual role function(DEVICE:MIDI & HID composite / HOST:MIDI & CDC composite).
  6. Supported USB HID bootloader on Mac OS X and Windows.
  7. PIC32MX675F512H(Freq:80MHz / FLASH:512K / RAM:64K) or PIC32MX795F512H(Freq:80MHz / FLASH:512K / RAM:128K)
  8. A/D port x14
  9. PWM output x4
  10. SPI x2, I2C x3, UART x1, JTAG x1 and CAN x1
  11. 100mm x 33.5mm, 4-layers board

Pin Assign

PICrouter v1.0 PIN ASSIGN PICrouter v1.0 PIN ASSIGN


Bootloader Application

  • PIC32UBL.exe (Win / Download is here)
  • PIC32UBL.maxpat (Mac / See the readme.txt in the folder "PICrouter/PIC32UBL_Max")

Schematic and Board (current ver. is 1.00)

PICrouter.sch and .brd are drawn by Eagel v6.
Additionaly, we use Sparkfun eagle library.
This library is also licensed by CC by-SA 3.0.

And then We extend a special thank you to Tomoya(@tomoya723) and Rundog(@rundog).
Tomoya gave many advices for designing of this board.
Rundog assisted us with this board's production.

Application Projects

PICrouter_HIDBL (current ver. is v1.1)

PICrouter_HIDBL.X is the USB HID Bootloader project files.
Look at AN1388 for details.

PICrouter (current ver. is 1.13.0) Updated 2014/04/24

PICrouter is for Open Sound Control and USB Dual Role.
PICrouter.X is this project folder.
The Max6 demo patches are in Max_Demo_Patchexs folder.

PICrouter for mruby (current ver. is 0.2.3) Updated 2014/02/22

PICrouter for mruby supports mruby, Open Sound Control and USB Dual Role.
PICrouter_795_mrb.X is this project folder.

Tutorial (JP)

Tutorial 0 : まずはじめに
Tutorial 1 : OSCを使ったデジタル入出力の制御
Tutorial 2 : OSCを使ったアナログ入力の制御
Tutorial 3 : OSCを使ったPWMの制御
Tutorial 4 : OSCを使ったSPIの制御
Tutorial 5 : システム設定の変更
Tutorial 6 : MIDIをOSCに変換する
Tutorial 7 : ファームウェアの書き換え
Tutorial 8 : LED_ENC_32をPICrouterからOSCで制御
Tutorial 9 : LED_ENC_ABS_32をPICrouterからOSCで制御
Tutorial 10 : LED_PAD_16をPICrouterからOSCで制御

Tutorial (EN)

Tutorial 0 : Introduction
Tutorial 1 : Digital IO Control with OSC
Tutorial 2 : Analog Input Control with OSC
Tutorial 3 : PWM Output Control with OSC
Tutorial 4 : SPI Configuration with OSC
Tutorial 5 : System Configuration with OSC
Tutorial 6 : OSC-MIDI Bridge
Tutorial 7 : Firmware Update
Tutorial 8 : Control LED_ENC_32 from PICrouter with OSC
Tutorial 9 : Control LED_ENC_ABS_32 from PICrouter with OSC
Tutorial 10 : Control LED_PAD_16 from PICrouter with OSC

Supported OSC Messages

See osc pages.

Supported HID Commands

See hid pages.