# Arduino Euclidean Rhythm Generator

**URL:** <https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800>\
**Category:** KOSMO MODULES\
**Created:** [July 25, 2021, 4:23pm UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800 "2021-07-25T16:23:09Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![TimMJN](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/timmjn/32/15227_2.png) [@TimMJN](https://lookmumnocomputer.discourse.group/u/TimMJN)\
**Post date:** [July 25, 2021, 4:23pm UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/1 "2021-07-25T16:23:09Z")

</div>

Hi all,

I’d like to share with you my Arduino Nano-based Euclidean rhythm generator. It has:

- 4 channels
- max. 16 steps per channel
- individual encoders for each channel
- adjustable sequence length
- external clock input
- reset input/button

 ![2021-07-24 20.53.27](https://global.discourse-cdn.com/free1/uploads/lookmumnocomputer/original/2X/6/6a9a1be66341d689a63f282e36cc0aa08807b60f.jpeg)

 ![render_back](https://global.discourse-cdn.com/free1/uploads/lookmumnocomputer/original/2X/8/806f52257c4769917513f3463a2b86b8ee5ff613.jpeg)

 ![render_front](https://global.discourse-cdn.com/free1/uploads/lookmumnocomputer/original/2X/c/cbcfece09a0f9459aedb09985766cb65c50e9dd2.jpeg)

Here’s a short demo:

[![](https://global.discourse-cdn.com/free1/uploads/lookmumnocomputer/original/3X/8/c/8c630aa8e5deeeedf7fb412ce1b30f0cf6f89a14.jpeg "Arduino Euclidean Rhythms Generator demo") ](https://www.youtube.com/watch?v=4AOBJ-tzH3Y)

Schematics, PCB layout, BOM and Arduino sketch are over on my GitHub: [GitHub - TimMJN/Arduino-Euclidean-Rhythm-Generator](https://github.com/TimMJN/Arduino-Euclidean-Rhythm-Generator)

I also have a few PCB+panel sets available, message me if you’re interested.

Cheers!

Tim

---

<div class="post-metadata">

**Author:** ![Dud](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/dud/32/610_2.png) [@Dud](https://lookmumnocomputer.discourse.group/u/Dud)\
**Post date:** [July 25, 2021, 4:32pm UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/2 "2021-07-25T16:32:19Z")

</div>

Very nice and cool module !!! 👍

---

<div class="post-metadata">

**Author:** ![devicex](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/devicex/32/28_2.png) [@devicex](https://lookmumnocomputer.discourse.group/u/devicex)\
**Post date:** [July 26, 2021, 12:19am UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/3 "2021-07-26T00:19:38Z")

</div>

now only if I had the money , I would get a doz. to hang on the x-mas tree .

---

<div class="post-metadata">

**Author:** ![zorch](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/zorch/32/5586_2.png) [@zorch](https://lookmumnocomputer.discourse.group/u/zorch)\
**Post date:** [August 12, 2021, 11:04pm UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/4 "2021-08-12T23:04:36Z")

</div>

Would anyone happen to have a tayda recommendation for the push button?

---

<div class="post-metadata">

**Author:** ![TimMJN](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/timmjn/32/15227_2.png) [@TimMJN](https://lookmumnocomputer.discourse.group/u/TimMJN)\
**Post date:** [August 13, 2021, 5:19am UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/5 "2021-08-13T05:19:45Z")

</div>

> **[Push Button Momentary Panel Mount Red Knob SPST-NO](https://www.taydaelectronics.com/electromechanical/switches-key-pad/push-button/pb-11d02-push-button-panel-mount-spst-no-pb-11d02-th1r00.html)**
>
> PIC - Get It Fast - Same Day Shipping

These seem to be the one!

---

<div class="post-metadata">

**Author:** ![Caustic](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/caustic/32/15588_2.png) [@Caustic](https://lookmumnocomputer.discourse.group/u/Caustic)\
**Post date:** [August 13, 2021, 4:55pm UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/6 "2021-08-13T16:55:15Z")

</div>

I have these. They work fine.

---

<div class="post-metadata">

**Author:** ![zorch](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/zorch/32/5586_2.png) [@zorch](https://lookmumnocomputer.discourse.group/u/zorch)\
**Post date:** [August 20, 2021, 3:13am UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/7 "2021-08-20T03:13:09Z")

</div>

![dw_fence](https://global.discourse-cdn.com/free1/uploads/lookmumnocomputer/original/3X/0/1/010bc6b3332be9c7999970dd5722e2d4c028b2a0.jpeg)

---

<div class="post-metadata">

**Author:** ![TimMJN](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/timmjn/32/15227_2.png) [@TimMJN](https://lookmumnocomputer.discourse.group/u/TimMJN)\
**Post date:** [August 20, 2021, 7:39am UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/8 "2021-08-20T07:39:10Z")

</div>

Yeah, for Christ’s sake, they’re doing it again… Nothing on the tracking for weeks, and then suddenly it appears on your doorstep… Sorry for that! If it doesn’t, I’ll ship out a new one!

---

<div class="post-metadata">

**Author:** ![zorch](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/zorch/32/5586_2.png) [@zorch](https://lookmumnocomputer.discourse.group/u/zorch)\
**Post date:** [August 20, 2021, 1:37pm UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/9 "2021-08-20T13:37:46Z")

</div>

It updated yesterday that it is in Chicago, so I think it just taking it sweet time!

---

<div class="post-metadata">

**Author:** ![TimMJN](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/timmjn/32/15227_2.png) [@TimMJN](https://lookmumnocomputer.discourse.group/u/TimMJN)\
**Post date:** [August 20, 2021, 1:47pm UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/10 "2021-08-20T13:47:44Z")

</div>

If there’s updates, there’s hope! ;D

---

<div class="post-metadata">

**Author:** ![TimMJN](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/timmjn/32/15227_2.png) [@TimMJN](https://lookmumnocomputer.discourse.group/u/TimMJN)\
**Post date:** [August 20, 2021, 6:34pm UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/11 "2021-08-20T18:34:56Z")

</div>

New PCBs are up in [The BST Thread (Buy, Sell, Trade)](https://lookmumnocomputer.discourse.group/t/the-bst-thread-buy-sell-trade/1608)!

---

<div class="post-metadata">

**Author:** ![TimMJN](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/timmjn/32/15227_2.png) [@TimMJN](https://lookmumnocomputer.discourse.group/u/TimMJN)\
**Post date:** [August 27, 2021, 12:53pm UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/12 "2021-08-27T12:53:23Z")

</div>

I’m unsure how many of you have already built this module, but I have just discovered an odd bug, causing cross-talk between the encoders. The firmware has been updated with a more robust method of reading them. As far as I can notice, the issue has been resolved. Make sure you grab the latest firmware from the [repository](https://github.com/TimMJN/Arduino-Euclidean-Rhythm-Generator).

Also, @devicex notified me that when downloading a repo as a `.zip`, git does not include any submodules. That’s a pity, as I used those to include libraries. When using this `.zip` method, you’ll have to go to the [`src`](https://github.com/TimMJN/Arduino-Euclidean-Rhythm-Generator/tree/main/arduino_euclidean_rhythm_generator_firmware/src) folder and manually download the submodules. Unzip them and place them in your downloaded `src` folder, such that the directory structure remains as on the repository. Here’s an example of what it should look like:

- …\Arduino-Euclidean-Rhythm-Generator
  - arduino\_euclidean\_rhythm\_generator\_firmware
    - src
      - Adafruit-MCP23017-Arduino-Library
        - Adafruit\_MCP23017.h
        - …

      - Tlc5940
        - Tlc5940.h
        - …

    - arduino\_euclidean\_rhythm\_generator\_firmware.ino

  - …

Hope this is clear!

---

<div class="post-metadata">

**Author:** ![analogoutput](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/analogoutput/32/29663_2.png) [@analogoutput](https://lookmumnocomputer.discourse.group/u/analogoutput)\
**Post date:** [August 27, 2021, 1:02pm UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/13 "2021-08-27T13:02:59Z")

</div>

`git clone` also does not download submodules, right? Unless you use `git clone --recurse-submodules`.

---

<div class="post-metadata">

**Author:** ![TimMJN](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/timmjn/32/15227_2.png) [@TimMJN](https://lookmumnocomputer.discourse.group/u/TimMJN)\
**Post date:** [August 27, 2021, 1:07pm UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/14 "2021-08-27T13:07:07Z")

</div>

Yes! Good point! Or:

`git clone`  
`git submodule init`  
`git submodule update`

---

<div class="post-metadata">

**Author:** ![Dud](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/dud/32/610_2.png) [@Dud](https://lookmumnocomputer.discourse.group/u/Dud)\
**Post date:** [August 28, 2021, 10:15am UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/15 "2021-08-28T10:15:30Z")

</div>

From @HAGIWO

> DIY eurorack modular synth , prototype gate sequencer module.  
> Due to development, some bugs remain.  
> I plan to upload an introductory video in the near future.

[![](https://global.discourse-cdn.com/free1/uploads/lookmumnocomputer/original/3X/f/b/fb58fb5b657636816f1583c1a5f4c002468a197f.jpeg "DIY synth live - Generative techno with $7 prototype Euclidean rhythm sequencer | Arduino nano based") ](https://www.youtube.com/watch?v=LdXrrSHzxig)

---

<div class="post-metadata">

**Author:** ![Dud](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/dud/32/610_2.png) [@Dud](https://lookmumnocomputer.discourse.group/u/Dud)\
**Post date:** [September 1, 2021, 11:12pm UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/16 "2021-09-01T23:12:15Z")

</div>

[![](https://global.discourse-cdn.com/free1/uploads/lookmumnocomputer/original/3X/1/9/197e210b0f370971c79a79a9423f8993efda0e5e.jpeg "[$7] DIY eurorack modular synth Euclidean rhythm sequencer , 6CH Arduino nano based") ](https://www.youtube.com/watch?v=lkoBfiq6KPY)

> **[800円で作るユークリッドリズムシーケンサー-モジュラーシンセ自作｜HAGIWO/ハギヲ｜note](https://note.com/solder_state/n/n433b32ea6dbc)**
>
> Arduino nanoを使って、モジュラーシンセサイザー のユークリッドリズムシーケンサ（Euclidean rhythm sequencer）を自作したので、その備忘録。 背景 自作モジュラーシンセの30作品目。 ユークリッドリズムを鳴らせることは、モジュラーシンセの特徴のひとつかもしれない。 世の中のリズムマシンには、ユークリッドリズムシーケンサが搭載されていない。しかし、ユーロラックには多くのユークリッドリズムシーケンサのラインナップがある。 ...

---

<div class="post-metadata">

**Author:** ![TimMJN](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/timmjn/32/15227_2.png) [@TimMJN](https://lookmumnocomputer.discourse.group/u/TimMJN)\
**Post date:** [September 2, 2021, 7:24am UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/17 "2021-09-02T07:24:09Z")

</div>

I mean, $7 is incredibly cheap and the polygons look cool, but I’m not too thrilled by that interface. That screen is even tinier than I guessed from the first video. Staring it tiny characters to see which parameter I’m changing is not so desirable to me. 😉

---

<div class="post-metadata">

**Author:** ![TimMJN](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/timmjn/32/15227_2.png) [@TimMJN](https://lookmumnocomputer.discourse.group/u/TimMJN)\
**Post date:** [September 4, 2022, 8:34pm UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/18 "2022-09-04T20:34:16Z")

</div>

![image](https://global.discourse-cdn.com/free1/uploads/lookmumnocomputer/original/3X/5/6/56b2eccb70eb3c6f42acd36538ff8a80b7a1b00d.png) ![image](https://global.discourse-cdn.com/free1/uploads/lookmumnocomputer/original/3X/b/b/bbf7512e89a7a73f5b67e8154791c7d5972f43c0.png) ![image](https://global.discourse-cdn.com/free1/uploads/lookmumnocomputer/original/3X/6/0/60979e44a12e857486e23cfac6ba3a74c108c084.png)

Adding a 25mm expander module with 4 CV inputs. Question:

Each pattern is described by 3 parameters; length, no. of hits and rotation. Times 4 channels makes 12 parameters in total, while I only have 4 CVs available. Which would be most useful to have CV control over? I’m torn between 4x no. of hits and 2x no. of hits + 2x rotation. Anyway I’ll make it user-definable in the firmware. Cheers!

And yes it was a pretty tight squeeze. Resistors underneath pots for style.

---

<div class="post-metadata">

**Author:** ![sebastian](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/sebastian/32/39_2.png) [@sebastian](https://lookmumnocomputer.discourse.group/u/sebastian)\
**Post date:** [September 16, 2022, 8:02am UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/19 "2022-09-16T08:02:54Z")

</div>

Hey, do you have a source for the TLC5940? I read that it’s obsolete and the TLC5941 (which should be similar) is also hard to find in DIP…

---

<div class="post-metadata">

**Author:** ![BratAttack](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/bratattack/32/14401_2.png) [@BratAttack](https://lookmumnocomputer.discourse.group/u/BratAttack)\
**Post date:** [September 16, 2022, 8:15am UTC](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800/20 "2022-09-16T08:15:10Z")

</div>

> [@sebastian](#):
>
> TLC5940

You might consider getting the surface mount one and an adapter. should be possible to do vqfn with a hot air gun.

[Next page](https://lookmumnocomputer.discourse.group/t/arduino-euclidean-rhythm-generator/3800.md?page=2)
