Saturday, December 7, 2019


Boy Howdy! I've been working on and off on a Arduino based synthesizer gate delay/gate modifier module for several months. It's finally to the point where I can get it in my rack.

Good news is it's now in, and I am happy with how it's working; I feel my design goals have been met.

Finished module with FPE front panel.

Module under test. Nice front panel graphics eh?

 Part I, while I hash out what I'm trying to do in Virtual Breadboard and on the bench, is here; Part II, where I breadboard the contraption and get it working for the first time is here.  You can get schematics, PDFs, gerbers, eagle files, etc., on my website, go here.

Biggus Moddus: OK, let's skip the earlier post crap; read on:

I want good control over gate delay (how long from the time a gate is fired to when a delayed gate signal fires at output--gate delays are useful for echo patches, filter effects, triggering reverbs, doing sidechain effects, the infamous "gated snare" and so on); also control of how long the gate lasts once it's fired.

But wait--also, let's control if either or both these "delay" and "length" times respond to incoming gate-offs. That way, the output can shut off  in the absence of a gate signal at source, or, once triggered, just ignore everything at input and go through whatever "delay" and gate "length" has been set via the front panel knobs.

And! Let's make this "delay" and "length" controllable by CV as well.

The result is gate to trigger conversion, really short gates turned into really long gates, or really long gates turning into really short gates and everything in-between. The CV inputs let you change this dynamically/on the fly as well. Burp!

If there is anything else out there that does all this in a 2u Frac (or by hooking up Euro power, something like 18HP Euro?) I don't know about it (yet). There probably is. there are like 5000 Euro modules out there already.

Ardunio 4yer wheeno? This gate delay module could have been built entirely with analog circuitry, a good starting point would be the circuit here, or following the examples in the E-M forum post here, but in this day and age, for anything involving gate logic: forget all notions of 555s and any capacitor/resistor rubbish--let's make it easy with an Arduino, some buffers and simple support circuitry, program it up, and we're done.

Wait--let's make it more challenging, let's use an Arduino Pro Mini. I haven't used one of those before, choosing Nanos and Nano Clonos for my modules so far, but how different could the APM be?  that's not tricky at all, those are documented? Even worse, let's use a no-name Chinese clone super cheapo Pro Mini instead of whatever Adafruit came up with. Using clones to save me $8USD has been known to save bench time right? Well, no, in fact saving the $8 usually causes me to waste an entire afternoon, but sorry, Dr., that's how I roll.

also let's build 2 or 3 of these things behind one 2u Frac?  Why not??

About the Pro Mini--to save board space there is no USB programming built in, but I got a sparkfun USB to serial adapter then followed this vid to learn how to hook it up and use it.

From my CentOS7 Linux system, it took me a few goes to get things wired right, but I got it to work quickly enough. After issues with FTDI USB clone chips on cheap Nano clones perhaps using serial to program an Arduino is easier overall?

Two different super cheap cloneo Pro Minis--One of these things is not like the other?  Check out the pins at the top and bottom of each board--um, nope.

But wait!! turns out all Pro Mini Clones are not pinned the same. I assumed (never assume!) that like Nanos the pin outs from one Pro Mini to the next, clone or not, match, right? On Nanos, yes, at least from origs and clones I've seen so far, yep. On Pro Minis, no. Who needs consistency? Not a big deal but something to keep in mind when ordering these damn things from AliExpress.

Update! It gets worse! 3-17-20 I bought another batch of $3 ProMinis and none could eat an uploaded sketch.  What the Clone? After a bunch of messing around it turns out the clone PMs had a 168 atmel cpu, not 368P as advertised! Yes, elmo you have to choose the right CPU for avrdude to work! Time wasted--2 evenings! So if you're having issues, take out your magnifying glass and verify what CPU is on your cloneduino!

In my case I used an Eagle device that had A4 and A5 under the PM PCB, but what I got online had  A4 and A5 hook-ups on the side of the Arduino board instead. Hello? I had to run some 24 gauge jumper wire from the big PCB to the APM clone to fix that; good to know about this oddity re: the Pro Mini Global Clonosphere.

About the the PCB and module: I was surprised how little troubleshooting and kludging I had to do to get this gate delay module to work. I forgot to add in a couple of pull down resistors in my initial layout, but those were easily added as a kludge. From there I had no additional fixing, futzing, or programming mods--it all worked the same on the PCB as it did during breadboard testing.

The biggest issue I had was more general: for this build, I tried putting everything on a single PCB.  That includes the switches--I had to make custom eagle Devices for those--the jacks, and the pots.

For me that's an evolution of sorts--besides saving time soldering up acres of hook up wire it makes my projects feel more they can roll with the big boys who hate hook up wire like the plague.

But, for DIY of this stripe, a monolithic PCB design is probably not a great idea. It's more difficult to modify anything when all hardware is soldered to one PCB. For me, "Mods-R-us", I inevitably find myself doing all sorts of tweaks before I get things the way I want. Not so easy for this build.

And: the ergos of the initial single PCB I created sucked. How can I tweak the knob you see here with the patch cable about 2mm away?  Didn't think about that.  Maybe next time I will.

Metalheads: For prototypes #2 and 3 I modified some metal work I had lying around and wired in  3.5mm jacks....yes, I tried to get rid of hook up wire for this build but failed.

Almost ready to test....

It took me about 3 goes, a caliper, a drill press, a punch tool, a lot of measuring once and cutting twice, and some heavy cursing to come up with a metal frac panel that the populated gate delay PCBs would fit into at all. I got it eventually, and for now, testing this, experimenting with it and whatnot, the metal work is good enough.

I need to do a FPE run soon....will cover that in a coming post.  UPDATE! FPE panel is done.  See the photo at the beginning of the post.

I built the 2nd and 3rd units with the original still bread boarded still on the bench to help with troubleshooting, which turned out to be unnecessary.  

The board and Schem are really straightforward--I am finding I have standardized on the 2x NPN buffers for logic I/O and single op amp stage with Zener for incoming analog CV.

I have already come up with a PCB revision to fix the minor issues you with the pull down resistors, although I don't really know what I'll do about the ergo issues. The board should be useful for other projects--anything that needs 4 jacks, 2 switches, and 2 pots, anyway, or for anyone with really, really tiny hands.

Next time I guess I'll think about Ergo? Whatever. I'm going to test this module more and hopefully post a sound sample of it sometime.

See ya around.

1 comment:

  1. This is great! I've been tinkering with an analogue gate length module design and I have an eagle file that's almost ready to go to a fab house. I like yours more though since it controls the input delay too. I think I'm going to try to build this.


Noise! Lunetta Lunchbox--Done at Last!

Welcome back to the land of.....  I started this Lunetta build maybe 18 months ago.....  Finally done: BLAH BLAH! JUST LINK THE SOUND SAMPLE...