Arduino shield only connects with low CPU utilization

Hi,

My Mod Duo (kickstarter edition - 2nd batch) will only find my Arduino shield when I load a
pedalboard that has low CPU utilisation.

For example with a new pedalboard with just a gain module loaded the utilisation is 8% and as I connect and disconnect the shield the mod picks it up without a problem. If I then load one of my common patches containing 12 pedals and averaging 44% utilisation it doesn’t recognise the shield when I plug it in. This is repeatable behaviour.

If I plug in the shield when I have a minimal board loaded (so it picks it up OK) and then switch to a more heavily loaded pedalboard it continues to work but starts to get a bit flakey.

I can imagine this might be an issue if the CPU was in the 90% mark but it’s occurring at much lower levels than that.

Has anyone else has similar problems? Any solution?

By the way I wrote another post on a similar topic when I thought the issue was due to me overloading my DUE board, but I’ve now been able to rule that out of the equation.

Thanks

Ian

1 Like

OK I’ve done a bit more digging with this and it seems to make a difference whether you’re using an Arduino UNO or Mega:

My test process is to load the Button.ino sketch onto the device, then start with a basic pedal board (just a stereo gain pedal) and gradually add AmpVTS simulators to it. After I add/remove each amp I connect and disconnect the device to see if it works.

With an UNO I can reliably connect until the CPU gets to about 70%. Higher than that and there’s a bit of a delay before I get the message saying it’s connected. Over 80% and it won’t connect at all.

With a Mega 2560 it reliably connects while the CPU is below 50%. Between 50 and 60% connection is delayed/unreliable and above that it doesn’t connect at all.

As the Mega is a faster device I’d have that thought that if anything it should be the other way around, but I was also surprised that the arduino device would affect connection time at all. I notice that a different timer library is used between the UNO and the DUE - could it be an issue for the Mega?

Thanks

Ian

1 Like

Hi Ianr,

Sorry for coming back to it this late.
The Arduino Mega is not officially supported with the ControlChain library yet (we never fully tested it but will get around to it so there might be some small issues there).

The problem of CPU load is known for the Duo, since its just a dual core unit it sometimes has some difficulties scheduling all of its internal events. Since the control chain library is very time critical it gives a timeout.

After we finish the final steps of the expression pedal, we will start investing again in the actuall protocol to hopefully sort most things out :slight_smile:

sorry for the wait.

cheers! Jan

3 Likes

Thanks Jan - hope things go smoothly with the expression pedal!

Ian