The Monome project, a USB MIDI and OpenSoundControl control surface for music and art, was built on open source principles, on its users making the product better as they used it. Its community has already built custom housings and elaborate software setups. But a clone based on the Arduino microcontroller promises to do still more.


Created with Admarket’s flickrSLiDR.

The “Arduinome” gifts the Monome with two new possibilities. First, it’s a breakthrough on the availability front: at a time when official Monome kits are backordered, it makes it easier to make your own Monome on a budget. Second, it makes hardware hacking on the Monome far easier, by allowing people to make microcontroller-level modifications on the relatively friendly Arduino platform. (The Arduino was designed not for electrical engineers, but for artists just dipping their toes into electronics, even for the first time.)

Now, if you went out and cloned, say, the latest Roland keyboard, they’d understandably take issue. But part of what tells you this is a different kind of product is that the Monome creators have actually taken an active interest in the Arduinome’s development. Support won’t go through the Monome team, and there are still plenty of reasons to buy the real thing, but true to those open principles, both projects stand to benefit.

I got the scoop on the details of this project, what it’s about, and the gory details of how caffeine can fuel a massive electronics project even with relative newcomers to the craft. Jordan Hochenbaum, a leader of the project, talks to CDM (with some additional comments by his partner in crime, Owen Vallis. (Jordan and Owen, students at CalArts, also won CDM’s Futuristic Design Challenge earlier this year — video of that coming soon, I swear!)

(Skip about two minutes into this video for some side-scrolling LED action.)


Arduinome Nerdscroll Demonstration from BricK Table on Vimeo.

Why clone the Monome? What’s special about this project?
The Monome represents not only a controller interface, but also a new way of thinking about interface design. The very heart of the Monome concept is its minimal, open-ended form. This ideology is reflected in Monome’s decision to make the firmware and software open-source. Coupling these ideas with the strong community development support in the Monome forum, it became clear that the Monome was the perfect interface to try and port to the Arduino microcontroller. What makes this project special is Monome’s willingness to make their controller open-source. No other manufacturer would dream of letting people see how their stuff works, or letting a bunch of curious individuals try to build a clone.

Creating Arduinome was a team effort.

What’s the relationship of Arduinome to Monome? What’s unique about the Arduinome?
We love the Monome, and the concept behind it. While the original Monome is difficult to come by, the Arduinome project was really born out of a desire to learn about physical computing and to better understand interface design. With this knowledge, we hope to be able to better use our Monome clones and develop new ways to push the buttons – er, envelope! We hope to build off the Arduinome in the future and explore new ideas.

What was the response from Brian and Kelly [Brian Crabtree and Kelly Cain, creators of the Monome] to the project?
Brian and Kelly have really provided encouragement towards our project. Actually, Brian was surprised the code wasn’t ported a while ago, especially since they’ve licensed their work for non-commercial use. Brian actually seemed really thrilled to see a bunch of people collaborate, which we think is just great!

What’s done, and what remains to be done? Where do you need contributors?

Completed:

  • Finished porting the 40h firmware serial protocol
  • Added additional support in Arduinomserial in order to address Arduino serial stability issues.

Still needs work:

  • Implementing ADC and Encoder support.
  • Testing for additional bugs.
  • Porting the 256 serial protocols.
  • Adding RGB support

Background – and Behind the Scenes

“Arduinome” is a collaborative project that aims to create a clone of the popular and inspiring Monome USB controller using the Arduino platform. The idea was originally brought up in a “Music Tech Forum” at the California Institute of the Arts. With about two weeks left in the semester, and very little experience, Owen Vallis and I put together a group buy and decided to just go for it. Everyone absolutely loved the original Monome, and we all figured this project would be a great introduction to the crazy world of physical computing.

Owen had already purchased the original Monome button pads, however the rest of us went for the Sparkfun button parts due to their availability and cost. After putting together a parts list, we began researching the 40h protocol and what it would take to port the firmware to the Arduino. The Arduino needed additional multiplexors in order to work with the matrix (specifically the MAX7219 and the 74HC165n/164n); fortunately, we found an amazing Arduino shield already designed by Brad Hill (unsped). After contacting Brad, he was kind enough to share his design. He asked that, in keeping with Monome’s business ideologies, the PCBs be printed locally and environmentally friendly. We were more than happy to do so; Monome’s business ideologies are very admirable, to say the least.

As soon as the parts were in, you could almost always expect to see somebody in the tech shop at CalArts soldering up their LEDs or diodes, etc. It was really amazing. As the semester’s end came near, Owen and I took on the responsibility of finishing the firmware. We started meeting every day or so at Silverlake coffee, feverishly trying out other people’s methods and ideas. (Thanks, Melka, Octinct, and others.) We had come pretty close, but always ended up having difficulty getting the buttons to work properly. After another night of caffeine-fueled failed tries, we came back to my house and decided to work for just a few more hours. At about 2:30am, we still didn’t have it working. We looked at each other, realized we wanted to call it a night, but in the traditional fashion of how Owen and I work, said “f@#!” it! Lets open up the 40h source, and work on porting it over to Arduino, as best as we can.” We were able to keep some things from the code we were working on, and at about 6 a.m. we got it working! With the sun barely rising through the LA smog, we went to get even more coffee and celebrate over breakfast.

Later that day, I made a section on the BrickTable blog detailing a short parts list, a little information, and of course the firmware. We posted the firmware link on the Monome forums. Immediately, there was a ton of interest, and people either seemed to be already in the middle of their own projects, or eager to start a new one. The response was fantastic, and quickly began to reveal the bugs in our early work.

Through the Monome forum, we’ve met and worked with a lot of great people. One person in particular has really pushed the project to where it is today. After two revisions on our website, Ben Southall made some major improvements to the firmware (addressing the Arduino Ports directly), and began working on “ArduinomeSerial”. It’s a MonomeSerial hack, if you will, which is optimized for the Arduinome. Ben realized that the USB serial chip on the Arduino differed from the one on the Monome, requiring changes to the original MonomeSerial in order to keep the serial connection happy. After testing, testing, and more testing, and a premature release, we now have a SourceForge project up with both the firmware and ArduinomeSerial. Anyone interested in delving into the source code, we have an SVN repository for version control, so feel free to dig in!

Guessing the project makers are fans of this site! Thanks!

We are really happy with the speed, response, and stability of both the firmware and ArduinomeSerial. It uses a specifically named protocol “a40h-xxx” vs. “m40h-xxx” like the regular 40h Monomes. However, ArduinomeSerial should be able to work with both regular Monomes as well as Arduinomes – thanks, Ben! I have modified Melka’s instructions on flashing the FTDI serial name on the Arduino to have ArduinomeSerial properly recognize your clone. This is posted on the Brick/Arduinome website (http://bricktable.wordpress.com/), and the process shouldn’t take more than a couple of minutes.
The next steps, of course, are to continue improving speed and reliability, as well as implement the ADC support. After that, there is the possibility of looking into the 256 series protocols as well as RGB support; however, these are both going to require a large rewrite, as well as hardware changes.
Monome is truly an amazing community; I’ve seen it firsthand working on this project. When Owen and I first posted the firmware, people started suggesting ways to improve it. Ben Southall took it to the next level and made crucial changes and additions to the firmware, in addition to creating ArduinomeSerial. We really feel that this kind of collaboration is amazing, and one of the great results of Internet collaboration and making ideas open-source. We can’t thank the Monome community enough for making all this possible, and of course Brian Crabtree, Joe Lake, and the rest of the Monome collective for creating an amazing and inspiring canvas. If you build your own, please send in details, pictures, bug reports, and the like.I know Owen, Ben, and myself would all love to see your work or find out about kinks we need to work out. We have a forum on the SourceForge page as well as a thread on the Monome forum. We believe in the Monome and the community ethic around it, so don’t be strangers!

The Arduinome Site contains a parts list, instructions for building your own Arduinome, and other documentation. We’ll have more on this project very soon!

  • mackie

    That's a great news :)

    I was thinking about building Monome clone by myself but now I see that I'm not alone :)

    Keep up the good work guys, I hope that someday we will share our ideas to make it even better.

    Cheers from Poland :)

  • http://bricktable.wordpress.com Jordan Hochenbaum

    Hey Mackie,

    Thanks for the support! Hope to see you around the forums and please don't hesitate to ask any questions…

  • http://www.myspace.com/drvinay vinayk

    Wow thats cool… so does all the monome software run on this? mlr and molar et al?

    And I know the arduino boards are cheap – but how much does the whole kit/all the parts cost? I may be up for trying to learn some soldering myself! I could build a guitar effects pedal first – but I dont really need one!

    Way cool though – I still want a monome too!

  • http://basementleds.blogspot.com bitbutter

    "Wow thats cool… so does all the monome software run on this? mlr and molar et al?"

    Short answer: yes!

    The 'Arduinome suite' (Arduinome controller plus ArduinomeSerial software) has been designed to mimic the way the 'monome suite' (Monome controller plus MonomeSerial software) works. This means that as far as software like mlr is concerned, it's exactly as if it was talking to an official monome.

    My Arduinome has cost about 280 EUR in parts. http://basementleds.blogspot.com

  • http://entartetemuzak.wordpress.com entartetemuzak

    I just started my own Arduinome project.

    For the moment I'm waiting for the arduino shield pcb.

    I ordered my pcb from batchpcb without checking them up properly. It turns out that the company, owned by Sparkfun, sends all pcb:s to Gold Phoenix in China which was a real disappointment.

  • poopoo

    I'd like to see a midi port based monome clone. A replacement for monomeserial could be written to convert the midi to OSC on the PC side if you wanted to use mlr or any of the other apps.

    Without a PC, it would be possible to use the midi ports to control a hardware synth. Even more interesting it should be possible to write some firmware to do some tenori-on type sequencing application. The midibox platform is more than capable in this department, a core, a din and a dout should cover the pcbs. Add a gm5 and you get midi as well as port powered usb.

  • http://www.myspace.com/drvinay vinayk

    @bitbutter:

    thats very cool looking – 280 eur isn't a bad price considering… and i like the look of the MachineCollective arduinome enclosures – would make things way easier – i'll have to keep watching this space… or maybe just go out and get all the gear…

    does sparkfun deliver to australia?

  • http://bricktable.wordpress.com Jordan Hochenbaum

    @bitbutter/all:

    280EUR sounded about right at first, but I do think it could be done for much less. I'm not sure if its more expensive in europe, however, I think I paid somewhere around $130 for all my parts, and although I haven't encased mine yet, that will probably top my off at about $250. If google currency translation is right, that would put it at $250 vs. $400+ (280EUR) which is a big difference… do you think it has something to do with ordering from Europe, or maybe the group purchases we put together really saved us that much? I'll see if we can track down our receipts (ordered a while ago!) and get an official added up. This could be important for people as I've already seen many group buys on the shields, and at that price point, might be economical to do group buys on other parts…

  • http://basementleds.blogspot.com bitbutter

    @Jordan:

    Yeah the sparkfun order cost about 35EUR to ship to europe, more than I'd expected. And an enclosure can be put together more cheaply than the cost of the machinecollective one that I went for (80EUR).

  • Pingback: AtomoSynth: New Mochika2, Negotiated Project B, Hack a ThingamaKIT, Arduinome, Cell Phone Disco, Machinecollective.org public beta, and DS-10 US Preorder

  • ben

    Hey Jordan – nice write up!

    I'd like to just pour on more thanks to the people of Monome for making their product so open – they're amazing.

    Just in case it doesn't come through loud and clear in the article, ArduinomeSerial, is a modification of the original MonomeSerial by Joe Lake, Brian Crabtree, Steve Duda, Kevin Nelson and Daniel Battaglia.

    Anyway, it's great to see the enthusiasm for the project, which as Jordan says, has been really a fun collaboration.

  • Thomas Cermak

    Can anyone explain the advantage of using an Arduino microcontroller? I tried researching it but I can't even ascertain the benefit of using the Arduino programming language.

    I'm a web programmer not an application programmer so I definitely need some help ;)

  • http://bricktable.wordpress.com Jordan Hochenbaum

    A few reasons… its a pretty simple/easy language to write for. It is also SUPER CHEAP and readily available. It has a good community for help if you are new to programming or just get stuck. Additionally, you don't need an expensive programmer to write to it, its all done through USB. Im sure there are many other things to add to this list!

  • http://myspace.com/drvinay vinayk

    what does the monome run off then? (i havent investigated that part too carefully – as it's prebuilt and all)

    i've heard that they are going to have some 256's open for 'public sale in the near future' but i'm sorta excited about learning how to do this myself! (and they COST HEAPS!)

    and contrary to my previous comment I may just go and buy a guitar pedal kit and practise soldering one of those together so I don't botch this one up!

  • http://www.julienbayle.net/diy/LiveInterface/ julienb

    hey, i read RGB support in TODO things??????

    i cannot believe it :-)

    i have the solution, you know that

  • http://bricktable.wordpress.com Jordan Hochenbaum

    yah, we've always planned on possibly doing RGB support… first things first, get adc added and 40h rock solid. Then start playing with the other protocols (256) and rgb… the only thing about RGB support is its not only going to require a software rewrite, but also hardware.. I'm not too keen on taking apart my current Arduinome, which means I'd have to purchase and build a new rgb arduinome which is more $$$. Soo, hopefully get to it soon, but priorities and $$ take precedence…patience is a virtue!

    Hope you understand Julien, for now, I'd play around with Ben's suggestions on our forums if you already have the hardware… all it takes to program what you want if you aren't a comfortable programmer is will and endurance.

    ;)

  • Pingback: Daily DIY Network - Science Projects Plans Guides » Blog Archive » Monome clone built with Arduino will make you believe

  • Pingback: Text on an Arduino-based Monome clone | MostReviews.com

  • unsped

    im glad to see this project has taken off as it has, look forward to seeing the updates in the future.

  • http://www.createdigitalmusic.com Peter Kirn

    Yeah, a huge, huge acknowledgment to all the people who have contributed to the Monome projects that are incorporated here. It's really a whole community — with some major superstars.

  • Pingback: GB Vehicles Info » Blog Archive » Monome clone built with Arduino will make you believe

  • Pingback: mustakl » Blog Archive » Executive Summary

  • http://www.julienbayle.net/diy/LiveInterface/#rgb julienb

    firmware w/ series protocol, w/ rgb support for SPI backpack sparkfun ::: RELEASED!

    one of the 3 possibilities of serial/osc router I investigate on ::: RELEASED

    http://www.julienbayle.net/diy/LiveInterface/#rgb

    more infos soon

    schematics too (but pins forbackpack are in the code)

    new releases optimized + new serial router soon too!

    NEXT STEP (but quickest step) :: Using LiveAPI + max to control clip grid

    if you have some questions: julien.bayle@gmail.com

  • Pingback: Create Digital Music » Teaser: Minitek in NYC Draws Huge Lineup, a New Tangible Music Interface

  • Pingback: MaxvaX » Teaser: Minitek in NYC Draws Huge Lineup, a New Tangible Music Interface

  • Pingback: Create Digital Music » Moanome: How a DIY Monome Grew and Became Something Personal

  • Pingback: Monome clone built with Arduino will make you believe | thekevinpipe.com

  • Pingback: arduino-monome « teKnotRaKiTanA

  • Pingback: Arduinome: An Arduino-Based Monome Clone « Guylevans CSM4 Blog

  • Pingback: Arduinome: An Arduino-Based Monome Clone : The Sonic Landscape

  • http://www.mybloglog.com/buzz/community/sprachen-lernen/ Annorelanonse

    Hello you on createdigitalmusic.com

    Today I found out this:

    Sprachen lernen

    bye

    Annorelanonse

    Live healthy

  • http://www.dalmatien-kroatien-istrien.de BitAssessy

    hey you,

    Do you like making a tour?

    Last week I was in Kroatien (Croatia)

    It was really fantastic !!

    Have you just visitied this place?

    I a glad to hear your comment.

    byebye

    Edward

    BitAssessy

  • Pingback: Arduino Punk Console und Co « Bischofs Blog

  • Mikhael Gray

    I can’t die without doing this first!!