Workaround to have lots of patch points with the daisy-seed

Hello! Wanted to share my first spaghetti tangle made with the daisy-seed and a cool solution to having lots of patch points.

I’m still uncertain if the seed can output more than two PWM pins, so I came up with my own solution to support as many patch points as there are digital IO pins:

  • Rather than actually outputting current from a DAC pin and reading from a ADC, I output an id for each pin from the main loop using digitalWrite over the span of a few cycles.
  • So the id of a pin might look like 0001, and another might be 0011, etc.
  • Other digital pins are set as digital input and they just collect these low and high values to check if they are connected to an output pin.

I know, it’s almost the same as doing PWM in software, but it’s much faster, only needs a few cycles to complete write/read, no interrupts needed and it works on any digital IO pin.

The cool outcome is that I don’t really pass voltages from a pin to another, instead I form a network of connections, so I can use the internal float values without loosing precision.
Also cool is that all analog pins stay free and can be used for pots and capacitive sensors and such.

One drawback is that I can’t get voltages from other instruments, but I’m ok with this since I want to keep things simple and make a synth that is mostly standalone/playful/toysh by design.

I’m new to synths, so maybe this is a standard thing and others already do that? dunno, just thought I’d share : )

1 Like