Any owner of a budget 3D printer will tell you that they can be pretty noisy devices, due to their combinations of stepper motors and drives chosen for cost rather than quiet. But what if the noise were an asset, could the annoying stepper sound be used as a musical instrument? It’s a question [David Scholten] has answered with the Stepper Synth, a device that takes an Arduino Uno and four stepper motors to create a four-voice MIDI synthesiser.
Hardware-wise it’s as simple as you’d expect, a box with four stepper motors each with a red 3D-printed flag on its shaft to show rotation. Underneath there is the Arduino, plus a robot control shield and a set of stepper driver boards. On the software side it uses MIDI-over-serial, so as a Windows user his instructions for the host are for that operating system only. The Arduino makes use of the Arduino MIDI library, and he shares tips on disabling the unused motors to stop overheating.
You can hear it in action in the video below the break, and we’re surprised to say it doesn’t sound too bad. There’s something almost reminiscent of a church organ in there somewhere, it would be interesting to refine it with an acoustic enclosure of some kind.
This isn’t the first such instrument we’ve brought you, for a particularly impressive example take a look at the Floppotron.
the initial d track seemed out of tune, wonder what causes the issue, as i assume the code uses standard musical frequency scales. quality of music is compareable to an 80s microcomputer.
It certainly sounds that way, but I found that it was just because the auxiliary bass tracks were overpowering the primary theme, making it seem off. When I duplicated the primary theme with 3 channels it sounded much better.
It does I admit, but I promise you it’s because the bass tracks are overpowering the primary theme. When I duplicated the main theme to three channels (on the PC side) and only one for a bass track it sounds exactly like you’d expect.
He’s using DRV8825’s by the looks of it, so they were probably skipping steps as usual :-P
Now that wasn’t nice and most likely not very objective. If your experience with a stepper motor driver like the DRV8825 is that it skips steps, then perhaps your experience with steppers isn’t sufficient to understand the problem of why steps are being missed.
I’ve been using these extremely small and cheap drivers in my home-made 3D printer and I never experienced problems with steps being missed (been using it for 5 years now). Now, it does require a fair bit of knowledge of your system (something you can work out via trail and error to seek the limits), but as long as you don’t want to accelerate “like a dragster racer” or want to travel at speeds that approach “ludricrous speed” you’ll be fine. Now it is important to add cooling (don’t ask me why this isn’t fitted standard, and I certainly will be the first to admit that adding heatsinks to an SMD device without proper metal tabs feels wrong. But although the additional (required) heatsink is way beyond my comfort level, it does seem to do the job.
Anyway, I’m pretty sure there are better options these days, but the DRV8825 isn’t really that bad.
At 1:17 there is a bass note playing, but the previously and subsequently used centre left servo that plays this note was not moving? Reminiscent of 80’s game console tunes, unsurprisingly most of this being in a minor key.
Yep, it’s a resonance note! Instead of a horrible grinding sound I programmed the motors to oscillate in place at those frequencies. I’d change the coil current dynamically instead, but it’s not easily accessible with the arduino shield module I used. When a resonance note plays it will also change direction of the indicators 50% of the time for the following note.
Nice! With four more solenoids he can add a drumkit!
Pretty cool
Nice. What about 3D printing fins (think of an anemometer) to transfer more of the stepper’s energy into sound? Or fan blades – then you could enjoy music and a nice cool breeze.
Here is some G-code to play “Daisy, Daisy, give me your answer do” on a three-axis CNC machine.
https://github.com/LinuxCNC/linuxcnc/blob/master/nc_files/daisy.ngc
Needs some virtual “mass”. Scalable accel/decel for more natural resolution. Has anyone plotted the audible frequency range or limits of steppers by model? I’d imagine smaller motors could reproduce a tighter range of wave forms. This would have been interesting to see with four different sized motors.
Yes for the multiple stepper sizes, but I just bought identical models in a set to save money.
I did want to implement proper acceleration, but the way the old code was built didn’t really allow for it easily without redoing everything. Maybe next time?
So… Paweł Zadrożniak’s “Floppotron” disk drive orchestra (on YouTube) minus the disk drives?
Not an enclosure but a soundboard. That is the thinking towards a louder acoustic sound. Spruce, maybe that thin hobby plywood but not plastic or a metal box. The magic of spruce is Mach10! The wave of vibration travels much faster than in air, thus propagates more.
Epoxy those steppers to an old piano soundboard and the sound will amaze you. It will bring out the midrange tones over the zingy square wave harmonics. This is something like the Choracello, a turn of the last century attempt at “electronic” sounds before tube and loudspeaker tech.
This sounds better than most “singing stepper” builds I’ve seen. Halfway through the video I stopped thinking about the project was just enjoying the music. Nice job.
You ought to have a 3-D printed component in the project, that makes your printer play a tune while it’s making it. Nice job though.