Ok. Sounds interesting. Do you have a schematic of your E.R. module? Or .ino file?
I posted about it recently in the My Build Progress thread. Details (schematics & Arduino sketch) are on GitHub.
Wow, looks awesome!. Nice code too. A lot shorter than the original. All if, else statements cleaned up. Can i just upload your sketch into my module? To be honest, i canāt read stripboard layouts very well. You have an electronical schematic too by any chance?![]()
Sorry about that! Iād created PDFs of the schematic and PCB layout but forgot to upload them to Github. Dāoh! Theyāre there now.
Unfortunately the code wonāt work on a āgenuineā Hagiwo E.R. module. It uses an SPI rather than I2C OLED for speed and uses different pins too, partly for the SPI OLED, partly to allow the trigger input to use an interrupt-enabled pin and partly to be able to use direct port manipulation for the trigger outputs.
Haha no worries. Thanks for uploading the schematic. I think im gonna build this one as an additional module so i have both.
Uhm. Since the hardware is the same for both sequencers, do you also have the code for the 6chn gate sequencer?![]()
![]()
Not yet, but I think I might modify the 6 channel sequencer code to run on my hardware. It would be interesting to give it a try.
Do you have a video clip or something to show your version of the Euclidean sequencer and how you use it? since iām having a hard time to change parameters due to the small OLED display and thereās a lot to display ![]()
maybe if I see how you use it, maybe I can change my mind and switch back to Euclidean.
No video unfortunately. The E.R. module is one of ten modules Iāve built this year which are still waiting for a new cabinet. Iāve been having too much fun doing electronics rather than using the modules Iāve builtā¦
I think itās the nature of the beast that the E.R. module is fiddly to use. My code does have a couple of other changes which help a bit - the menus wrap around to avoid having to scroll backwards a long way and the encoder button autorepeats to cut down on the frantic button pressing. The other thing you can do is to change the default start-up pattern settings in the code to something more suitable for your use, which might help reduce the amount of adjustment you need to make each time you set up a new pattern.
Iāve rewritten the code for the 6 channel sequencer and tested it on a hacked together Arduino UNO rig.
Itās only clocked by a push button and only outputs to a bank of LEDs but (with those limitations!) it seems to work OK.
The new source code is about 1/3 the size and now uses direct port manipulation to drive the outputs, otherwise everything should work the same as the original.
If youād like to give it a try itās on GitHub as usual - please let me know how it goes. Itās very much alpha code at the moment so donāt be surprised if something doesnāt work right! If it does work Iāll be interested to know how stable it is over time.
Wow mate! Thanks for putting in the effort. Sure, i like to test your code and see how things work out. Let you know the results.![]()
I just replaced the Nano for a new one with your code uploaded. Everything works! Clock input via my clock module. Nice rhythm pattern btw ![]()
now lets test this and I will let you know the results
A promising start - hereās hoping it doesnāt self-destruct like the original!
I thought Iād tidy up the code for the original hardware configuration first so it would be available for existing sequencers. Once itās confirmed as working Iāll create a version to run on my modified E.R. hardware as well.
Hi, so far so good. Third day im using your code for the 6chn gate sequencer. It runs smooth and fast. So, let me test a few days more ā¦..
Sounds good - hope it keeps working!
Iāve got a version of the code running on my E.R. hardware with the SPI display. Iāll try to run a comparison of the SPI and I2C alternatives.
I think i can confirm that your code is working !!! Normally the module should have been misbehaving by now but it didnāt so. Yess. Thanks a million. We need more guys like you here. Have a great day.
Yay, thatās great news!
Iād be happier still if I could understand what the original problem was, but if we have a result I certainly wonāt complain.
I now have a fully working version on my E.R. hardware. I experimented with the u8glib and u8g2 libraries in addition to the AdaFruit original. Somewhat to my surprise the AdaFruit library runs about twice as fast as either of the u8g libraries driving an SPI OLED, although the final code size is significantly larger. Itās about 43ms for AdaFruit to clear the display, generate the new page and upload it to the OLED vs. about 79ms for u8g. The SPI upload itself takes 2-3ms while for I2C itās 37ms.
I also added a screensaver which starts after 30 seconds. You can clock the sequencer well into the audio range once itās kicked in if you want to make crazy noises. Iāll upload an I2C version of this (with a few other tweaks to the code) to GitHub in a day or two.
Iāll definitely be building a dedicated 6 channel sequencer to use along with the Euclidean Rhythms.
Maybe something in the code that messes things up? We eliminated a hardware failure.
Wow, yes. My clock from @analogoutput has a screen saver in it. Would love to have it on the 6chn gate sequencer too. I only dont know which parts of the code i need to add/change.
Or is it ājustā a few lines to add somewhere?.
My quantizer needs a screensaver too
Ok, nice. This answers my other remarksš
Right? The version i tested will be renewed with these new functionalities??![]()
The new version of the I2C code is now up on GitHub. It includes the screensaver (which can be adjusted or disabled entirely by tweaking a #define in the source code), a couple of bug fixes and a bit more tidying up. Please give it a try and let me know how it goes.
For anyone considering building one of these, Iād strongly recommend using an SPI display as its much faster than I2C. The GitHub repository contains code for an SPI version which will run on my version of the Euclidean Rhythms module.
