Another great Saturday at SSD. The number of the day is 2.
We had 2 workshops today, an FPGA class (more info and photos to come) and we now have our second 3D printing graduating class from the 3D printing workshop 2.0 — We also get to welcome 2 new members home, Bill and Adam. Now we have over 50 members!
3D printing workshop 2.0 went amazing; the workshop itself was more streamlined and we have 9 new people certified to run the Boulder Hackerspace 3D printers. Everybody got to leave with some cool “gear” no pun intended;) Ok maybe there is a pun here.
Here are some photos of the event:
Sign up for next week’s 3D printing class held on Saturday 6-22-13, the spots fill up quick so sign up today right HERE
I am holding an additional 3D printing workshop for a member’s business colleagues just prior; we’ll see how 2 3D printing workshops go in a single day=)
Ben and I had been talking about building a MIDI controller based off an Arduino for some time now. Then, about a month ago, with Apogaea just around the corner, we started thinking about making an instrument for the Soundpuddle, John English’s spectrum-analyzing dome. We thought it would be cool to build a circular keyboard, where each key would emit a tone which corresponds to a frequency bin on the Soundpuddle. Thus began development on the Cyclophone.
The Completed Cyclophone
We did a lot of brainstorming that first week, which included building a couple of prototypes. The first prototype was just aimed at answering the basic questions: Can we reliably send note-on messages over the serial port, and without latency? Can wooden keys give a good tactile response? Will this even work? The result of these first experiments was a little creation that we affectionately call the “cuttlefish”.
The “cuttlefish” prototype
The cuttlefish gave us a good first impression of how we were going to proceed, both on the hardware and software sides. One realization was that, as long as we were using our own custom software to synthesize the sounds (see my Pythagoras repo), there was no reason for us to bother with the MIDI protocol. We could just write small, byte-sized messages to the serial port, and then trigger callbacks in the software every time a byte is read. Another realization was that we needed to debounce the signal from the switches – otherwise, each key press would result in several erratically-timed notes being played. But most importantly, we realized that this was totally going to work maybe!
The next step was to move these concepts over to the circular table design. So we cut a circle (41″ in diameter) out of a piece of 1/2″ plywood, and made 24 cuts along radii from the outside. The length of the cuts was determined by experimenting with another single-key prototype to achieve a good action with the wood’s flexibility.
Testing out the flexibility of the first cuts in the top.
The next challenge was mounting the switches underneath the keys. We knew we were going to need a mechanism which allowed for adjustment of the switch height, because each key had a different flex according to its grain direction (the joys of working with wood). But the switches we had were very small and very simple (and very cheap) – they provided no easy way to mount them at all. So we ended up coming up with a system where the switch is clamped, facing down, between some blocks of wood on the underside of the keys. Beneath the switch, we thread a 1/4″ hex bolt through an angle bracket mounted on the spacer block. By turning the bolt, we could raise or lower the sensitivity of each key individually.
All 24 switch mechanisms, mounted on the underside.
A close-up of a few of the switch mechanisms.
Once all the switches were on, we wired them into the Arduino and tested the action. We noticed that sometimes, depressing a key would warp the entire top in a way that pressed several other keys simultaneously. To make the whole structure more rigid, and also in anticipation of the “safety bumpers” we were going to want to put under the keys, we mounted another plywood disk, about 3 feet in diameter, on the bottom of the wooden spacer blocks, preventing their relative movement. This helped immensely in keeping the top from flexing like a big saddle every time a key was pressed.
We had also picked up some potentiometers and a rotary selector switch from JB Saunders, which we wanted to mount on the top to control some parameters of the programs we were running. So we mounted the rotary switch right in the middle, as a kind of mode selector, and then mounted the 3 pots symmetrically around that.
With knobs and bottom layer installed.
The neatly organized guts of the Cyclophone.
At this point, the Cyclophone was nearly complete – all that was left was to pretty it up. We thought about just painting it a solid color, but we realized that with such a large instrument, it’s actually difficult to keep track of the keys when they all look the same – a unique design would be much better. We had originally planned to have an artist friend paint the top, but with just a week left before Apogaea, and summer jobs keeping people busy, scheduling conflicts made that impossible. And so we were left – a physicist and a software engineer – with the task of coming up with an artistic design for the top. We ended up using the only graphic design tools we were comfortable with – polar equations – to come up with a sort of rosette design for the top.
Rosette made from 6 logarithmic spirals.
Close-up of paint job.
The paint job took about 3 days, during which we applied 3 layers by hand. After that, we built a base for the thing, so that it sat about 12 inches high, good for playing while seated on the floor. Finally, Dan Julio donated an RGB LED strip and driver to illuminate the table from below.
Shown with LED strip illuminated.
On its base, painted and ready for Apogaea!
At Apogaea, the Cyclophone took its place in the center of the Soundpuddle. We had it running off Ben’s laptop, with 5 modes to choose from, via the rotary selector:
Chromatic sine waves (Soundpuddle mode)
Tabla samples + koto, chimes, and guitar (all pentatonic)
Half piano, half guitar (harmonic minor scale)
FM synthesizer (major scale, parameters tunable by knobs)
The Cyclophone in the Soundpuddle at Apogaea.
Here’s a video of the Cyclophone fulfilling its destiny at Apogaea:
We had a lot of fun working on this project, and I expect it won’t be the last USB controller we build (next step, velocity sensitivity!). It was also great being part of the Soundpuddle project – many thanks to John English and the entire Soundpuddle crew for making it all possible.
Nearly all of the code we used in this project is available in my Github repo. If you have specific questions about the construction of the Cyclophone, feel free to contact me (Chris Chronopoulos) or Ben Burdette.
The UConduit 3D printer is an h-bot 3D printer, with a frame built from electrical conduit (steel conduit that you can find at the hardware store). It was designed by SSD member Lee Miller and is open source hardware via the Creative Commons Share-Alike license. It is hosted on github at https://github.com/iquizzle/uconduit. All printed parts are designed using OpenSCAD (which is an open source CAD environment) so that parts can be freely compiled and modified.
Why electrical conduit?
There are many options for framing. Most higher-end 3D printers these days are using aluminum t-slotted extrusion or specialty laser cut parts. While I think these options are achieving excellent results, I wanted to build a printer that also had a solid frame, but went back to the hardware store mentality of the earlier Mendel and Prusa printers. Conduit is extremely inexpensive ($3.50/5ft) and plenty stiff for a printer. It created some extra challenges in design work, but has an additional payoff.
The printer is held together using o-rings and compression flanges. Each end has two rubber o-rings. There is a “hard clamp” and a “soft clamp”. The hard clamped o-ring creates a pivot point and firmly holds the conduit in place. By adding a second “soft clamped” o-ring on each end, vibrations are very effectively damped. As a result, the printer is not only fast, but also super quiet! As a physicist, I’ve used this type of connection to create vacuum-tight seals on tube furnaces, which is where I first got the idea. Additionally, wiring can be neatly routed from the top to the bottom of the printer (using the conduit for its intended purpose!).
What is an h-bot?
Think etch-a-sketch! I’ve never deconstructed an etch-a-sketch, but I’d guess that it probably works in a similar way. Two motors are connected to a single belt, which is wrapped in an H shape. If you turn one motor and hold the other fixed, the print head moves at 45-degrees. Combinations of the two motors turning the same way or in opposite directions gives movements in the x and y directions. An advantage to this geometry is that all of the motors in the UConduit remain fixed. Because motors are the heaviest objects in a printer, the inertial forces are significantly reduced by keeping them stationary. I worked with SSD member Free Beachler to modify the popular open source 3D printer firmware “marlin” in order to accommodate the h-bot geometry. I’m very pleased with the results so far, but 3D printing is very competitive in the maker world right now, so you be the judge!