As excited as I am to complete the Monome kit, it's difficult for me not to tinker with the other project I have going. My circuit-bent SK-1 is about to get a new friend in RoboGlitch 2011. It started out as a patchbay, but it's going to be much more than that. The final plan is to have a traditional patchbay, augmented by computer-controlled relays and pots. Kind of a small musical robot in a clear plastic enclosure, allowing up to eight patch points to be programmatically altered, and the rest to be abused in the traditional fashion. I want to use an Arduino to control various glitch connections by using MaxMSP. I'm implementing everything using my trusty Duemilanove, but the final project will house a Sparkfun Arduino Pro Mini. It sports an Atmega 328 and runs 5V just like the big guys, but it is truly tiny. I mean magnifying glass and tweezers to solder tiny.
I got hold of a nice Serpac clear-top enclosure, and proceeded to defile it by drilling holes in the top. I then began to plug those holes up with some nice banana jacks from mouser (p/n 108-0906-001). They are the nicest looking banana jacks I could find. I then began to solder leads from a 25-pin male d-sub connector attached to a notch I cut into the side:
When drilling holes in clear plastic material, I like to use a backing of scrap wood to prevent drilling holes into my workbench. If bits of plastic work their way underneath, I dust it away so as not to scratch the material. When I began to drill, I stubbornly set out to do it with the final size large drill bit. That was a mistake, as the large bit tends to skate a bit before it gets a bite, causing major inaccuracy. You can see the results of my first attempt here.
Not pretty. I'm going to use a coping saw to cut out a rectangle from here and just slap a nice piece of thin walnut on top for sort of a more sophisticated control panel look to cover up my blunder. For the remainder of the holes, I started a pilot hole with a smaller bit, and then finished with the larger bit. I spaced the holes one inch apart to create an easy working surface on the finished piece. So what about the enhancements that are going to make this more than a mere patchbay? The plan here is to hook up a dual solid state relay breakout board from Phidgets.com. They make really great stuff. That takes care of the old on-off-on-off. For automating pots I had originally planned to use a 6-channel digital potentiometer (AD5206), but while I was familiarizing myself with the device, the fact that it takes SPI messages posed sort of a problem. I'm using Firmata and Maxuino to communicate with MaxMSP, and this has worked great so far, BUT getting SPI messages to the device has proven to be challenging. I will continue to work on it since the digital pot is really cool. I have heard that Firmata may be updated to support SPI, but it doesn't right now. That will open a whole new and cool world of potential in my opinion. But what does Firmata support? Servos! So I went out and got a couple micro-servos to control slider pots instead. Here is one of the servos posing for a family portait with the Big Knob and the Arduino, all set up in tutorial configuration (fun!):
To continue with the modularness of the patch bay, I was hoping to incorporate some more tactile elements into the design, such as a slide ribbon pot, and perhaps some conductive doodahs with which a moistened fingertip may interact. I am also toying with the idea of adding switches and pots directly to patch cables so they can be moved about as needed (uh, you can tell I was running out of room on this patch bay, eh?). Finally, I have elected to use stackable banana plug test leads, to provide more possible combinations of bend connections. In messing with the current configuration to see how it bends, I discovered that resistor values of over 5K are not particularly effective. It's quite a small range until the device just begins to function properly, although that changes once you get into a good crash state. The SK-1 does seem to be quite stable through quite an array of abuse. One last point, the beauty of setting up bent devices with d-sub connectors is that your whole bending experience becomes modular. I can unplug my SK-1 and plug in a Speak-and-Math, or a Yamaha PSS-140 (which would be an excellent candidate for connecting to RoboGlitch). Not to mention using MaxMSP/Max for Ableton Live will offer a multitude of versatile options for incorporating bent instruments into future tracks.
I am on the home stretch! All of the soldering is finished. I dropped off my faceplate to be powder coated with a nice black semigloss, and it should be ready this week. I picked up a piece of walnut at Rockler in Seattle, and plan to build a box jig following these instructions. Cheaper than buying a jig if you happen to have a piece of plywood (um, and a table saw). I got some of that thar Danish finishing oil in "Dark Walnut". I'm holding off on the woodworking until my faceplate gets back, because I want physical evidence that everything is going to fit the way I have planned it. So more on that later.
I'm having a great time building my monome mk, inhaling solder fumes and feeling pretty confident about my skills. But not too confident! I finished assembling the driver board and it came out great. Then I applied 64 dots of solder to the keypad board, in preparation for 64 SMD diodes. But before unpacking those diodes I decided to install my SparkFun accelerometer (ADXL322 +/-2g) on the logic board. I basically did what thealphanerd suggested in this post:
connect the gnd to gnd, the VDD to 5V and x + Y to two of the analogue pins (such as 0 and 1)
I first attached a header pin to the breakout board VCC and GND. Then I soldered wires to X and Y. Then I connected wire X to analog 0, and wire Y to analog 1. Finally, I flipped it around and soldered the pin headers into the logic board GND and 5V. I stuck a little adhesive foam bumper disc to the gap for a bit of added stability. It came out so pretty I had to show it off:
Now I just have to cross my fingers that it will work once I plug everything in!!!
One important note: The accelerometer board would need to be mounted AFTER the pinouts for JP4 (if you are using JP4, like say if you are building a 256). It could probably rest really nicely on top of the pinout header. Since this particular unit is a 64 those pinouts won't be used.
It's been a while since I've bent any circuits, so this week I did some work on my Casio SK-1. Specifically, I installed a Universal MIDI Retrofit kit from highlyliquid.com, and added some leads from bend points on the CPU pins. Here are the highlights in case you're thinking of retrofitting an ancient keyboard with MIDI, or circuit bending an SK-1. The MIDI retrofit went very smoothly. The kit is very well documented, and it was a joy to build and install. It worked without a hitch the first time I powered on. In this shot you can see the installed circuit board sitting in the spot that was once occupied by the speaker. The kit includes a square of adhesive to hold the board in place, but on the SK-1 the screw holes for the speaker line up closely enough to screw in one side of the UMR board. As you can see it is mounted quite securely:
Athough the UMR board connects to the SK-1's 5V line, it must be powered on a few seconds AFTER the SK-1 is powered on. Therefore, you have to add a switch to the positive line. I used a funky green pushbutton I had lying around. I also mounted the LEDs externally which is really essential to see if the MIDI unit has successfully powered on. [Update: After using this a few times it looks like interrupting the 5V line has some odd side effects. In order to turn off the unit I have to cycle the power switch a couple of times.]
Connecting the UMR board to the ribbon cable connector was actually pretty easy. I harvested some nice thin little wires from an old printer cable. As a bonus, one side of the printer cable is a male 25-pin D-sub which I will save for later use. You can get old computer gear for cheap at thrift stores. The installation instructions for the UMR have a nice table that shows which wires from the board go to which spots on the SK-1 circuit board. The SK-1 circuit board is conveniently marked to show you which pin is #1, and which is #12. Just match the wires and you're in business! This shot shows the connections:
Now it's time to move on to the good stuff: the bends! I decided to take the straightforward approach of attaching a lead to each one of the processor pins. I know there are many, many bends aside from the ones I did. However this is a nice approach since you've got 25 wires to connect up in any combination, which yields a satisfying amount of possible bends. Besides, I've got the MIDI kit working so nicely it would be a shame to burn things out looking for new bends. Plus I have another SK-1 for later. This photo shows each lead obediently curving its way to its own special spot on a 25-pin female D-sub jack. Now you can see where the recycled cable is going to go, eh??? Straight onto a breadboard I tell you!!! [Update: The D-sub cable turned out to be shorted out, so now I've got to find another. At least I got a whole bunch of wire out of it though!!]
Now I could just go and build a patch bay, or put some pots and switches into a case and call it a day. But oh, no, that just won't do. I have something else in mind. The frayed end of that recycled printer cable is poised to link into a world of wonder facilitated by things that rhyme with "smart, you Eno", and "Axe, I must PEE". All mounted in a clear plexiglas case, resplendent with multicolor LEDs. But I've said too much. Now if you'll excuse me, I'm going to resolder the battery leads and screw the case back together.
Update: Now I see why the SK-1 is considered to be one of the best instruments to circuit-bend. You can play it, and just keep hitting bend points over and over again. I have recorded some great new sounds and all I'm doing is shorting the bends on the exposed terminals of a male d-sub jack with a piece of wire scrap. I can't wait to hook this up to something more comprehensive, it's sure to be monumental.