Giter VIP home page Giter VIP logo

diy-monome's Introduction

DIY Monome

This repo contains some tools for building and running DIY version of monome 8x8 grid, that's mostly compatible with existing monome patches and software.

There are actually two projects in this repo: Sparknome which is based on four Sparkfun PCBs, and Trellinome based on four Adafruit Trellis boards. At the moment of writing both boards cost less than 10USD (per board), and both require some soldering (Sparkfun boards need more than Adafruit). I was able to get Trellinome fully working, and Sparknome semi-working due to soldering problems.

Sparknome on right, Trellinome on left

These boards are not a replacement for official monome build (that is much nicer hardware, and supports variable brightness), but just a DIY project.

Sparknome

Sparknome is based on Arduino Mega 2560 due to huge amount of digital pins used (that could be fixed with multiplexer though). I followed official assembly guide, connecting four boards by joining the adjacent rows and columns. I used RGB LEDs, but wired only single colour (connecting other legs to GND), since monome doesn't support RGB.

The Arduino code to drive the display is in Sparknome folder.

Trellinome

Trellinome was simpler to assemble than Sparknome, because there's much less wiring. It's also harder to make a mistake soldering here. I connected adjacent boards by connecting the SDA, SCL, GND, 5V and INT pins (learn.adafruit.com/adafruit-trellis-diy-open-source-led-keypad).

Since this boards require only few pins to be controlled, I could use smaller Arduino - I went with Pro Mini 5V.

The Arduino code to drive the display is in Trellinome folder.

Arduino & Hardware & Mext

Recent Monomes use mext protocol to communicate OSC with serial data: Mext Serial Codes. Few years ago there was a "Arduinome" project, but it uses pre-mext protocol, and is not compatible with most Max/MSP patches for example. Luckily I found initial implementation made by TheKitty: TheKitty/Untz_Monome that I took as a starting point and build up on.

The official software to communicate with monomes and set up OSC server that other patches connect to is called serialoscd. Monome detection is done through FTDI label, there are two solutions to this: either reflash Arduino FTDI chip (I didn't try that, but it's possible), or hack around this in libmonome code. There's folder with patches for both serialosc project (that just makes it compile on recent macOS), and a patch for libmonome that allowed me to detect the Arduino, and make it communicate with external software. You can get both serialosc and libmonome code from monome github page, and building them is well documented on official linux docs (they work for macOS as well), read part 2 Preparing your system: serialosc (ignoring the sudo apt-get - I was missing liblo, but it's available on homebrew): monome.org/docs/linux/.

I had problems with serialoscd that would stop responding when it was flooded with quick messages (for example famous Meadowphysics would do that). To work around that I built my own simple nodejs based replacement (that only works with single 8x8 grid): node-serialoscd. You need to yarn install and then run it with node index.js /dev/tty... (where /dev/tty... is mext-compatible device TTY).

The node-serialoscd was tested with: Monome Home.maxpat, Meadowphysics.maxpat, re:mix and node-serialosc on macOS 10.13.2.

Case

To complete the project I designed simple case using @jscad/csg and three.js, and 3D printed it. The exported STLs are part of the repo: Case/data/, but you can also run the code for yourself (look at the scripts section of package.json).

diy-monome's People

Contributors

szymonkaliski avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.