WIP: step repeat sequencer

Do you have anything to contribute?

Hey, no, not really, unfortunately. It’s quite a big project (for me) and I had a few other projects as well, but those are now at jlcpcb! :slight_smile: (midi2trigger, looper/bitcrusher and my drum module) So this sequencer is the next thing on my list, but maybe in a somewhat reduced form: I am thinking of only doing the ctrl board, with the faders and rotary switches with an arduino which sends out the control changes via spi or i2c. The brain board with the jacks and display(?) will be later and I will probably prototype it first…
If you’re interested I can share what I have already (ctrl board with some of the routing done, a bit of the panel) on github :slight_smile:


I was more just curious, I have a million and one eurorack things on the bench that I could/should finish first but it’s awesome to see these projects develop and this is indeed a big project, hopefully my interest gives you some small amount of encouragement!

1 Like

Maybe you can take a look at my code it’s also an arduino based sequencer, it’s only a gate sequencer not a CV quantiser, but you can pick what ever you want from my code to put in yours
Thing is arduino mega is too slow (or my code not optimised enougth) but for slow BPM it’s working fine.

The slave(arduino) read all the controls and give it to the master (blue pills) who do the math for output the right gate length
Also if you have any trouble to decypher what i did, just ask me :slight_smile:


Interesting concept! I feel like if you simplify it a little bit, you could get a much more hands-on (and cheap!) module. If you forget about quantisation and all the menu-diving, its all easily handled by a single Nano.

You could have a SIPO shift register driving the CVs, much like any ol’ sequencer. Only change is that the Nano now determines how many clock pulses it should keep each step. All the rotary/sliding switches can be wired as discretised potentiometers, and read through an analog multiplexer. The trigger/gate output would come directly from a pin of the Nano (buffered, obviously).

Things like CV gain/bias, gate length, master clock, portamento call all be handled analogly, no need to bother the Arduino with it. Seems like a pretty doable and fun module to me! I have a bit much on my hands right now, but I’ll eventually gladly pick it up if nobody else will.



Working on this again! I decided to make two parts, a 20 by 20 cm board with only the faders and rotary switches and then a 7.5cm wide control board with a small display. I might later make a bigger one with 2 CV outs or something like this… Maybe I should just make the bigger one now… I need to find out if the cutouts for the sliders work if I have them in a footprint, they do not render correctly in the 3d view:

I also need to decide on the iconography/fonts:

While I like the dots on the right of the upper row, they are bit hard to count like this…
The gate type is even harder, I find…

Any feedback welcome :slight_smile:


I’ve seen something like that (in KiCad) with pad holes that don’t have both F.Mask and B.Mask checked in the pad properties.

If you have your slots as edge cuts, which is what I do, I’m not sure what to tell you. The mask layer should take proper account of them.

Definitely prefer the numbers to the dots — better the larger numbers on the left. The gate type icons are way too hard to distinguish, but the text version is too tiny to read.


Yeah, I made them as edge cuts, but I had to Replace the layer name in the text file with an editor, because the footprint editor did not allow me to draw on the edge cuts layer…

Thanks for the feedback on the fonts! I think I also prefer the letters, but for the gate type it gets really busy :wink:

1 Like

Here’s the footprint I use

(module Kosmo_Slide_Pot_Alpha_60mm (layer F.Cu) (tedit 6159A0A2)
  (fp_text reference H3 (at 0 -47) (layer F.Fab)
    (effects (font (size 1 1) (thickness 0.15)))
  (fp_text value Kosmo_Slide_Pot_Alpha_60mm (at 0 47) (layer F.Fab)
    (effects (font (size 1 1) (thickness 0.15)))
  (fp_circle (center 0 40) (end 3 40) (layer Cmts.User) (width 0.15))
  (fp_circle (center 0 -40) (end 3 -40) (layer Cmts.User) (width 0.15))
  (fp_line (start -0.8 33) (end -0.8 -33) (layer Edge.Cuts) (width 0.12))
  (fp_line (start 0.8 33) (end -0.8 33) (layer Edge.Cuts) (width 0.12))
  (fp_line (start 0.8 -33) (end 0.8 33) (layer Edge.Cuts) (width 0.12))
  (fp_line (start -0.8 -33) (end 0.8 -33) (layer Edge.Cuts) (width 0.12))
  (fp_line (start -1 -33.2) (end 1 -33.2) (layer Cmts.User) (width 0.12))
  (fp_line (start 1 -33.2) (end 1 33.2) (layer Cmts.User) (width 0.12))
  (fp_line (start 1 33.2) (end -1 33.2) (layer Cmts.User) (width 0.12))
  (fp_line (start -1 33.2) (end -1 -33.2) (layer Cmts.User) (width 0.12))
  (fp_line (start -7 -45) (end 7 -45) (layer F.CrtYd) (width 0.12))
  (fp_line (start 7 -45) (end 7 45) (layer F.CrtYd) (width 0.12))
  (fp_line (start 7 45) (end -7 45) (layer F.CrtYd) (width 0.12))
  (fp_line (start -7 45) (end -7 -45) (layer F.CrtYd) (width 0.12))
  (pad "" np_thru_hole circle (at 0 -40) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
  (pad "" np_thru_hole circle (at 0 40) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))

and KiCad renders it okay


Interesting, mine looks like this:

(module ptl60_slit (layer F.Cu) (tedit 615EAAE4)
  (fp_text reference REF** (at 1.4 -1.5) (layer F.Fab)
    (effects (font (size 1 1) (thickness 0.15)))
  (fp_text value ptl60_slit (at -2.4 29.3 90) (layer F.Fab)
    (effects (font (size 1 1) (thickness 0.15)))
  (fp_line (start 0 0) (end 2.8 0) (layer Edge.Cuts) (width 0.12))
  (fp_line (start 2.8 0) (end 2.8 67) (layer Edge.Cuts) (width 0.12))
  (fp_line (start 2.8 67) (end 0 67) (layer Edge.Cuts) (width 0.12))
  (fp_line (start 0 67) (end 0 0) (layer Edge.Cuts) (width 0.12))

Looks similar, maybe it’s the Cmts.User or F.CrtYd lines that I miss?

This might be too large, but maybe if I only label every second knob? That works better with slider switches, I guess…

It’s not your footprint, I tried it

Weird!! But then I have hopes that the gerbers will be good!

Application: 3D Viewer
Version: 5.99.0+really5.1.10+dfsg1-1, release build
    wxWidgets 3.0.5
    libcurl/7.74.0 OpenSSL/1.1.1l zlib/1.2.11 brotli/1.0.9 libidn2/2.3.1 libpsl/0.21.0 (+libidn2/2.3.0) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3
Platform: Linux 5.13.0-20-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
    wxWidgets: 3.0.5 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.24
    Boost: 1.74.0
    OpenCASCADE Technology: 7.5.1
    Curl: 7.74.0
    Compiler: GCC 10.3.0 with C++ ABI 1014
Build settings:

I can’t ignore the empty panel space underneath the rotary switches. Maybe an arrangement to make better use of panel space would make the labeling easier to read.

-Fumu / Esopus

1 Like

Or how about sliding switched instead? That’ll allow you to just label once, on the left of the panel.

1 Like

I would prefer them! But they are hard to get! I only found 5 position switches on Ali express for a minimum of 1000 or 5000 pieces :wink:


I just checked again and I found these:

you can get 20, but I could not find 8 position slide switches

1 Like

Wow! That’s great! But there is something weird with shipping: it increases a lot if I increase the quantity! if I want to buy 8 sets (with 5 pieces each) I have to pay 13,35€ for the switches and then 31,98€ for shipping. While a single set goes for 1.7€ and 8.68€ shipping… For a single set I can even take the slower shipping for only 2.99€
This is strange!

1 Like

Welcome to Aliexpress (: