Adding a new device type to libmonome and serialosc

I’ve been reading over code and docs to better understand what it would take to make a custom firmware which identifies as a compatible Monome device to serialosc. These are my notes so far.

Adding a new device, firmware procedure

  1. Generate a unique device ID
  2. Implement device discovery in firmware
  3. Can I use existing mext functions?
  4. Implement mext protocol for existing functions in firmware

Adding a new function, serialosc procedure

  1. Does you device need to add a new function to mext?
  2. Implement new callback handler and function definition in libmonome
  3. Implement callback functions in serialosc server
  4. Implement new function in firmware

What I have to go off is mostly the code in libmonome and the firmware from the mk repository

It’s a little overwhelming. I have a Teensy++ 2.0 and a DIY Illucia controller. I would like to start by modifying the firmware to respond to the documented mext serial protocol so serialoscd can receive data.