****************************************************************************************************************************
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 ads by
Signing UpStep 1Components
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 Pushbuttons
- Arcade @ DJ Tech Tools (USA) *
- Translucent Arcade @ Adafruit (USA)
- Many arcade button options @ Twisted Quarter (USA)
- Square plastic knockoff version @ Futurlec (China) - many colors
- Square plastic @ Mouser (USA) - many colors *
- Stainless steel fancy pushbuttons @ Sunshine (China, shipping is >40$ to USA, I have some extras so message me if interested)
- Mini arcade @ Newark (USA) *
- Many unusual pushbuttons @ All Electronics (USA)
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.
- Very smooth D shaft @ Digikey (USA) - Also available in knurled from Mouser *
- Smooth knurled shaft @ Sparkfun (USA)
- Machined, aluminum, set-screw, 6.4mm @ Newark (USA) in 3 sizes, black or silver *
- Smooth, aluminum, set-screw, 6.4mm @ Newark (USA) in 3 sizes
- Knurled, rubber, 6mm @ Newark (USA) many colors
- Soft touch rubber, 6mm D shaft @ Mouser (USA) in many colors *
- Knurled, metal @ SparkFun (USA) black or sliver, one size *
Encoders
- D shaft, 18 ppr, switch @ Newark (USA) - Also available at Mouser
PCB
- Super nice PCB @ Sure Electronics (China) *
- Protoboard 777 @ Futurlec (China)
- Mini (for jogwheels) @ Sparkfun (USA)
- Pre crimped 12", Pre crimped 24" @ Pololu (USA)
- Module connectors @ All Electronics (USA)
- Module connectors @ Adafruit (USA) *
- Crimp connector housings @ Pololu (USA)
- Wire @ All Electronics (USA)
- Deluxe flexible wire @ Hansen Hobbies (USA) 28AWG recommended *
- CD4067BE @ Digikey (USA)
- Male @ All Electronics, Sparkfun, Futurlec, Adafruit, SureElectronics
- Female @ Sparkfun, SureElectronics, Futurlec
LEDs
- Many LEDs @ Super Bright LEDs (USA)
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 Step | Download PDFView All Steps | Next Step » |
















































































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
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!
You are right about the CD4067, expect it uses four digital pins and one analog pin to enable 16 extra analog inputs. Best of luck with the build!
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!
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.
You are exactly right, increasing 'analogThreshold' should solve this. Try increasing it until the jitter goes away then report back on the value you increased it to.
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
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?
I was going to add that feature on the next code version.
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?
you could try
http://www.sparkfun.com/products/8607
with shifts