Dreamachine #4 : Squeeze!

Last modified date

Comments: 0

I’ve put together a second prototype. I wanted something more solid as well as a checking it would be repeatable, sanity check kind of thing. The software isn’t finished, but I’ve done the harder bits (concurrency hell!). But it basically works!

On Amazon I found some cheap ABS boxes, 100x60x25mm, which I guessed would be about right. When they arrived, eek! – a lot smaller than I imagined. But still seemed doable, just.

I tried to make the holes as neat as I could, but ABS plastic isn’t great for neat.

It’s essentially the same as the breadboard version, on stripboard. I think the only change being the addition of a couple of power decoupling capacitors (220uF on the 5v and 22uF on the 3.3v). The socket for external LEDs is wired the same as on the breadboard, the internal ones being added in parallel (with their series resistors). I took a gamble, there was a good change the extra load would cause the whole thing to glitch, but it seems fine.


I put it together over several short sessions, maybe 3-4 hours total.

I soldered some SIL sockets onto the display, hot glued it in place. Bit wonky, but near enough to be usable.

When I started soldering it up I made so many little mistakes. Fortunately I realised right away each time, easy fixes. I didn’t think connectors would work for the encoders (or the sockets) so those I left until last, directly wired. Very fiddly, and I did have SW & DT swapped on one at first, but didn’t take too long to trace & correct.

For power I’ve only got the ESP32’s USB in, which appears to work ok. Rather sweetly I remembered I’d got a power pack that is the perfect size to mount on the bottom of the thing, bit of velcro. I just need to get a very short USB cable.

To Do

It is a bit crashy – I think almost certainly something around the rotary encoder code (I’m in the process of rewriting the lib).

I didn’t bother adding any hardware debouncing for the switch & encoder. I suppose I could have added a resistor & small capacitor on each, but that would have taken up more space. For a ‘final’ version, there’s a little circuit involving an additional diode and a Schmidt trigger [link to follow] that’s meant to be really reliable. But again, space at a premium.

As I’m working on the encoder code anyway, it’ll be interesting to try and implement debouncing there.

The menus apart from Frequency don’t really do much. But the code for those will be straightforward, once I’ve tied down the encoders. Things like Brightness : just a matter of chucking a 0…1 multiplier against the value going to the DACs. The LEDs are driven by separate GPIO outputs (with PWM), so having them out-of-phase will be another menu item. There are similar items I want to do on the audio side, all straightforward to code up.

I also need to get a How To Build write-up done, I’ve got the notes but they’re scattered around GitHub.

Most importantly I want to spend as much time as it takes to get the code in a form that will be reusable in other projects (mostly music synths). Ideally I’d like to design a PCB that (optionally) includes all the Dreamachine bits, plus external ADC & DAC. Time…

I have been looking at Eurorack modules, it might be fun to package up a Dreamachine that way, include signal outs for the LFO and noise generators.

I won’t be putting any more in these little boxes, that’s for sure.

I’ve yet to try the thing, see if I get the eidetic visions…


Leave a Reply

Your email address will not be published. Required fields are marked *

Post comment