Hagiwo 6ch drum sequencer + 4x4 matrix keypad

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.

2 Likes

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?:shushing_face:

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.

1 Like

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?:rofl::rofl:

1 Like

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.

2 Likes

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 :slight_smile:

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.

1 Like

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.

4 Likes

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.:+1:

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 :slight_smile:

now lets test this and I will let you know the results

1 Like

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.

2 Likes

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 …..

1 Like

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.

1 Like

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.

2 Likes

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.

3 Likes

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??:winking_face_with_tongue:

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.

2 Likes