Mods to run at 16Mhz..?

Hi,
My teenage son wanted to build one of your amazing machines so we decided to do this from scratch, however we’re not so clever!

Through being able to get 10cmx10cm boards made very cheaply we started changing things:
We used a complete Arduino Mega with a 2560 as these are about $14, it just plugs underneath.
It has a very nice OLED display that is I2C,
dropped the shift registers as we had lots of IO pins.

Picture of control board attached. (also made a matching POLIVOKS as 10x10)

The Arduino runs at 16Mhz and I have made firmware changes and it all works in terms of controls and display, and MIDI in (see attached). The plan was to overclock the 2560 to 20Mhz to get the audio to work. This isn’t possible as the crystal on the board isn’t for the main chip which uses a resonator.

I get a signal on the OSC not surprisingly it just looks all wrong.

I’ve changed timer 2 so the main cycle works at 40Khz. The Shruti ran at 16Mhz? Is that code around that I could try porting? I assume the tables in resources.cpp are all wrong.

Thanks Quentin.

> it just looks all wrong.

What’s wrong exactly? Don’t try to change the PWM timer rate. Just keep it running at 31.250kHz. Everything should be running at a ratio of 16.0/20.0. For modulations and envelopes it’s not a big deal. For the main pitch, you just have to transpose up by -494 1/128th of a semitone to compensate. You’ll lose a bit of highs…

I am very interested to see how this turns out! Please keep us posted. A Shruthi that runs on a stock Arduino would be great for breadboarding beginners. I think that the waveforms lacking highs is fine for the Polivox since you can add some extra harmonics with the FM and overdrive.

I also like the square PCB.

OK maybe it’s due to a poor scope and not knowing what to look at.
Three images

  • the OSC pin on the digital board C from MIDI
  • the MIX (ic4 pin1) doing nothing
  • the MIX (ic4 pin1) C from MIDI

When we try and listen to this we get a very faint high pitch but it does change with different notes.

If I put my scope on PIN 2 IC5 there’s pretty much nothing to see. So maybe it’s the audio board…

No idea really… The OSC pin should carry the oscillator signal, PWM-modulated. When no note is playing, that would be a 8 MHz square wave, but I doubt your scope has enough bandwidth to show that…

You can trigger a note at C4 by holding down the first button on the left for a few seconds while holding down the last button from the left. Does that also cause the same error?
Have you tried the internal sequencer to see if it is external MIDI that is causing the issue?