3 Simple Ways to
Share What You Make

With Instructables you can share what you make with the world — and tap into an ever-growing community of creative experts.

PhotosPhotos

Share one or more photos of a project, recipe, or whatever you've made, quickly and easily.

Step by StepStep-By-Step

Share your step-by-step photos with text instructions of what you made so others can do it too!

VideoVideo

Share your how-to video. You'll need your embed code from a video site such as YouTube.


A Framework For Making Affordable & Stylish Modular Controllers (USB to MIDI, HID, or Serial)

A Framework For Making Affordable & Stylish Modular Controllers (USB to MIDI, HID, or Serial)





****************************************************************************************************************************

I have designed a framework for making affordable and stylish modular controllers. You can use the content of this Instructable to make a wide range of controllers for a wide range of applications relevant to artists, DJs, VJs, gamers, producers, and the like. The DJ controllers I showcase in this document serve only as examples of (more conventional) interfaces you can create within the framework.

I focused on making this project affordable, stylish, and most important, builder friendly. The controllers can be re-programmed to send serial, MIDI, or HID messages. The modular design allows you to plug the controllers into one another, thus requiring only one USB port on your computer. Each module can have approximately 28 digital inputs/outputs, 23 analog inputs, and 4 rotary encoders. Those more savvy could add components such as touchscreens, sensors, pressure pads, etc., to the controllers using this framework. No special tools or equipment are required to build these controllers beyond a basic soldering iron and wire stripper. Also, very little coding is necessary. Editing the code is more like filling in the blanks. 

****************************************************************************************************************************

More info here

Some hype at engadget

These photos and more found on my photostream.

**Remember to read this entire Instructable before beginning any of the constituent steps**



 
Remove these adsRemove these ads by Signing Up
 

Step 1Components

Components
«
  • 6208884868_1a4533282e_b.jpg
  • 6208564299_906dbd728a_b.jpg
  • 6208885322_51ea708ffe_b.jpg
  • Component-2080.jpg
  • Component-2074.jpg
  • Component-2081.jpg
  • Component-2078.jpg
  • Component-4320.jpg
  • 6239296602_2466e03330_b.jpg
  • components-2531.jpg
  • components-2533.jpg
  • components-2537.jpg
  • 6238776663_d10a6a8c41_b.jpg
  • controller-4315.jpg
  • 20111203-IMG_0835.jpg
  • Component-2086.jpg
  • Component-2085.jpg
  • crimp.jpg
  • last photo ←
»

I have spent endless hours searching for the best and most reasonably priced components from around the world. I ordered many different components to test out and compare, most of them were rubbish and were not used in project. Here is the list of the best stuff I found. The ones with * are my favorites. 

Microprocessor
  • Teensy++ @ PJRC (USA)
  • Teensy suppliers in Europe: 1, 23
Pushbuttons (Many of these pushbuttons are available in different sizes and color - check the sites for more options. With pushbuttons, you usually get what you pay for.)

Faders (If these are out of stock, they may also be available at digikey.com or newark.com. If you are a scratch DJ you probably demand a 'frictionless' fader. DJ Deals sells them for cheap, and they are simple enough to use with the DIY controllers.)

Slide knob
  • Many options available at Newark. 
Potentiometers  Potentiometer Knobs (Knurled knobs can only be attached to knurled shafts. Knobs with set screws will require a hex key to couple with the potentiometer. 6.4mm knobs coupled with 6mm shafts fit slightly non-concentric - this can be fixed with some scotch tape. 6.35mm potentiometers do exist although I was unable to find an economical option.) 

Encoders (Search 'PEC11-' on Newark to get a long list of nice and affordable encoders. I used PEC11-4115F-S0018 and PEC11-4215F-S0024 in my build. I tested many encoders and found the Bourns ones to be best. They have both D, and knurled shaft options available.)

PCB Wires & Connectors Multiplexer Header Pins
  • Male @ All Electronics, Sparkfun, Futurlec, Adafruit, SureElectronics
  • Female @ Sparkfun, SureElectronics, Futurlec 
(Sure electronics is by far the cheapest!)

LEDs (Every site has plenty of different LED options. Keep in mind this controller framework is not really designed to control more than a few LEDs. Now that is not to say you can't use many LEDs in this project, you just can't control them, ie, turn them on and off when you please.)

Hardware
All hardware (nuts, bolts, standoffs) can be found at McMaster (USA). McMaster is the best!

Other
Soldering iron, wire cutters/strippers. 

There are many other components you may want to include in your interface such as LCDs, touchscreens, trackballs, pressure pads, proximity sensors, etc. SparkFun and Adafruit are the best resources for these kinds of components. Although the controllers I showcased in this Instructable are somewhat conventional, I encourage you to get crazy. DIY gives you the power to do anything you can imagine - just wait till you see the next controller I am going to build!

Read the datasheets carefully before buying components.

Discount/surplus stores like Futurlec & All Electronics have excellent prices, but also carry some components which are totally bogus - be extra careful before buying from these stores. 

Note that all these components are panel mount (with exception to the LEDs). There is an important distinction between surface mount and panel mount components. Surface mount components fasten directly to the printed circuit board (PCB) while panel mount components fasten to the top panel and connect to the PCB via wire and solder connections. It is usually not possible to use surface mount components unless you fabricate custom PCBs and have expert soldering skills. Using panel mount components makes this project accessible to anyone. 

So how much do these controllers cost? I don't kow how much your controller is gonna cost but mine were cheap, really cheap!

If you are from Europe or Asia this list may not be totally relevant or useful. Please send me links to suppliers in your countries so I can add them to this document. 

« Previous StepDownload PDFView All StepsNext Step »
152 comments
1-40 of 152next »
May 26, 2012. 10:14 PMxanxor says:
I finished it a while ago but I forgot to upload it
My midi controller
runs on a teensy and teensy++ in I2C

programmable light matrix underneath using a max7129
Inspired by you!



http://youtu.be/L-05wKCByWM
May 4, 2012. 4:36 AMFactus says:
Just ordered the teensy from US to South Africa to follow this instructable, thanks!!!!

So the CD4067BE adds 16 ENTIRELY NEW analog channels (without replacing any existing ones)? by simply using 5x digital channels on the teensy?

Will post pics of my translucent plexiglass mixer + recycled vinyl decks.

Cheers!

May 1, 2012. 5:57 AMBleedThemAll says:
Hey man, how do you put the outputs and monitor output into this project? Would really appreciate a reply, thanks.
May 1, 2012. 6:08 PMBleedThemAll says:
haha, how do you put the Audio outputs into this project? or are you just using a standalone soundcard?
May 3, 2012. 8:03 PMBleedThemAll says:
yes, i understand that, but in your original project you had a monitor output on the front and the main audio outputs on the back? how did you put them into your design?
Apr 25, 2012. 10:30 AMimovane says:
Hi! I was wondering what the difference is between the two pdf's? Did you make both of them?
Apr 25, 2012. 11:58 PMimovane says:
Thanks for your reply! So what is all the different colours and stuff? Are the lines tha path that the cutter takes? Is much of this automated or did you manuallt have to draw all the lines and circles? I know what I want to cut out and all the spesifications, but that second PDF looks pretty daunting...
Apr 26, 2012. 5:37 AMimovane says:
Ok thanks, I'll give it a go! What do you think about using colours in the schematic so not to cut all the way through the material? Say you'd like to have some screws in the second layer but like the first layer to cover them up, you could cut half way through the material so the screw fits, and the first layer will still fit nicely with the second layer. Is this something you have tried/did in this design? Thanks again for answering my questions!
Apr 24, 2012. 3:26 AMDr. dB says:
Great-looking results! Robo-laser-slashers really rock...
Yes, to build-up a meaingful "strain-relief" from hot-glue is a little tricky, esp. considering the acrylic substrate! You have to "work it" a bit, thermally, back and forth between the original glue gun melt-point, a "cold-gun" (basically, a disabled hair-drier), a standard (gingerly-applied!) heat gun and a rather small putty knife. At least it can be re-heated and/or melted completely, if somewhat messily, away should the need arise to replace a switch or a wire, or rebuild a solder joint.
I wondered, though, if Sculpy might serve the purpose? Having never handled any myself, I can only guess its characteristics from descriptions of its application in other 'ibles... Would it be too stiff when "cured"? Would it be removable? Epoxy, for the most part, is NOT...
asfi235's zip-tie anchors are a safe bet - with a clean bond, that double-sided foam tape is usually good for about 15 years, unless severely and repeatedly dry-heated... by then, you'll probably have worn these out and made some new MIDI toys to play with, anyway!
Apr 22, 2012. 3:51 PMbalduin-kowalski says:
Hi great Fuzzy,
with your help I am finally done with building my own controller! But there are some minor coding-bugs left. The poti-levels are slightly jittering between two values when set to the middle. They never jitter when set to 0 or 126 and I even used the pots you recommended. At first I tried to change the analogThreshold value in your code, but that didn´t help. Did anyone have similar troubles? I Found an Arduino-Tutorial describing jittering-troubles with the analog-ins:

"The Atmega datasheet also cautions against switching analog pins in close temporal proximity to making A/D readings (analogRead) on other analog pins. This can cause electrical noise and introduce jitter in the analog system. It may be desirable, after manipulating analog pins (in digital mode), to add a short delay before using analogRead() to read other analog pins. " http://arduino.cc/en/Tutorial/AnalogInputPins

Do you know a solution? I am not good enough in coding to do it by my own.
Apr 23, 2012. 1:24 AMbalduin-kowalski says:
I will post pictures as soon as I am really done - there is still some finetuning to do. Can you tell me the range of "analogThreshold" values I can enter? Is it 0 to 126? I just tried up to 9 before and it made no big difference.
Apr 17, 2012. 4:58 AMartur36 says:
hi fuzzi.
can you please give me an advice in wich faders choose to use in my controller to fade between decks, I plan to buy all the tings ath mouser.com: Thanks
Apr 18, 2012. 2:37 AMartur36 says:
sorry but I don't explain me weel wath I want is a linear fader for crossfading
Apr 12, 2012. 6:18 AMimovane says:
Great Ide and a great tutorial! Thanks for this! I was wondering about how your pots and encoders are fastned. Are they sort of locked between the two sheets of bamboo? Isn't it really difficult to get snap fit components to fit?
Mar 28, 2012. 10:04 AMbalduin-kowalski says:
Hi Mr. Fuzzywobble, really great job! Thaks for this wonderfull framework!
I have just one question - the shift-button in your code only works for the pushbuttons, but not for encoders and pots. Is there a way to make the shift-button work for them too?
Mar 29, 2012. 5:13 AMbalduin-kowalski says:
Yay, that sounds like there is hope!
This would be really a great featue. I like to build a controller with the ability to operate two whole decks and switch to switch between them with the shift-button. Are you already working on this new version and do you think it is very difficult to do?
Apr 10, 2012. 11:13 AMlackluster says:
I'm really interested in this project and was thinking about ways to implement the shift button you mention. WRT to pots, unlike encoders, the biggest issue I see is the sudden shift in a value when you first shift. If the pot was controlling the volume of one track and was originally at say 80%, when shifted to control the volume on a second track, that volume would jump to 80% upon shifting. At least I'm assuming this would happen. I know some of this could be account for in the code, but do you see this being a problem?
Apr 7, 2012. 12:28 AMzombytekid says:
hey im having trouble mapping my teensy to traktor, my midi sniffer shows that all the midi data is working correctly but this is not being picked up by traktor or fl studio. do you have any ideas why this might happen? im only using one button to test at the moment on pin 0 which i set to push button as i dont have encoders
Apr 7, 2012. 6:23 AMzombytekid says:
hey it seems to have sorted itself out, after tweaking a few things :D im just waiting on push buttons now. thanks for the great guide
Mar 29, 2012. 5:23 AMbalduin-kowalski says:
Hi there, I have an other question concerning the I2C module->module communication. It looks like a great feature if you want to use all modules with only one USB-Port. But if I have enough USB-ports on my computer it seems to be much easier just to connect every single module via its own USB. Or would it be a problem if I have thee Teensys all connected via different USB-ports to tractor?
Mar 29, 2012. 7:33 AMbalduin-kowalski says:
Hmm, okay. But can you just tell me WHY it is always better to use I2C? Don´t get me wrong, but I would just like to know the pros and cons. Yes, it is easier if you can use all modules with only one USB-Port, but this also means you can not use the slave-modules as standalone-controllers anymore (unless reprogramming them).
Aug 31, 2010. 1:17 PMxanxor says:
Oh Great lord of the Micro controller. is there anyway to fool a digital input into acting like a analog input?
1-40 of 152next »

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!
66
Followers
2
Author:Fuzzy-Wobble
I am a human from planet earth. I use my brain to make things. fuzzywobble.com