Hi all,
How do I determine the maximum number of Encoders and Switches that are avaliable for a Daisy Seed?
Ideally Id like:
- 8 x pots
- 2 x spdt style switches
- 4 x Momentary Foot Switches
- 1 x CV Expression input
- 5 x LEDs
Comparing the Daisy Field and the Petal I can see that various devices are avaliable for use as “break outs”.
The Petal uses a PCA9865 for driving the additional 12 LEDs. (8 are tricolor)
The Field uses a CD4051 switching chip for the 8 Pots.
I have been using the 4051 for silent ‘anti pop’ foot switches.
Thanks,
AD
It all depends on what you want to achieve. When you connect external inputs, you make a trade-off: You can have extremely high update rates when connecting directly to the seeds pins OR you can have lots of connected inputs when you use intermediary chips like multiplexers, led drivers or port expanders.
Fortunately, for the vast majority of applications, the update rates you can achieve with intermediary chips are still plenty enough.
So for the most part, it’s a matter of picking the right intermediary chip to connect your peripheral devices to.
- For pots you can use multiplexers like the 405x series to connect multiple pots to the same analog pin. Update rates are not too problematic, you’re not be turning a pot at audio rates anyway.
- for CV you can also use multiplexers but if audio rate modulation is required, better connect directly to an analog Input of the seed, if possible
- for buttons and switches, you can use port expanders chips or shift registers like the 74HC(T)165 or similar, most of them can be daisy-chained the get theoretically infinite inputs
- for trigger inputs, it’s the same as for the buttons but timing accuracy can be improved by connecting to the seed directly (remember to use a transistor between the jack and the chips as a safety measure)
- For LEDs there are specialized led drivers like the PCA you mentioned already. You can also use shift registers like the 74HC(T)595.
All of the above solutions are already supported by libDaisy, AFAIK
2 Likes
Thanks TheSlowGrowth,
Looking at the Daisy Petal Schematic here am I right in seeing that there are 3 spare GPIO slots (pins 29 to 31). Everything, apart from the LED rings appear to be connected directly.
Basically im after the Petals capabilities but wish to add two extra pots.
If they are free Ill look into seeing how I make a new Max Oopsy patcher (based on Petal) that includes these additional pots. Im currently a visual programmer and Max Oopsy suits me perfectly.
AD
I’ve been working on making exactly this sort of thing easier for Oopsy (It is possible on the dev branch, but can be pretty challenging). I’ve created a JSONSchema against which hardware like you’ve mentioned, can be described. Using JSON following this this schema I can currently generate an implementation very similar to daisy_petal.cpp
using the hid
classes from libDaisy. Using this generated implementation I hope to be able to tie pretty much any custom hardware to Oopsy.
This is currently at a very early stage, and unfortunately moving slowly, but your hardware plans are exactly the type of candidate I had in mind. Hopefully I can get things moving along soon.
2 Likes
Hi Recursinging,
This sounds great. Let me know if you want to share the workload.
What work do you need done to move ahead? I may be able to help.
AD
I am also very interested in custom oopsy implimentation.
I have an idea for a general midi modulator and euro sequencer using oopsy and two daisy’s. First is really just one daisy adds control knobs to Daisy Patch. No one makes a midi KNOB controller for euro (or in general) so that will add the extra controls to properly control Daisy patch.
And then separately, with a midi controller programmed in max, it would make it very easy to make a custom midi controller that could automate any synth via CC. Even do stuff like randomize any synths parameters for finding really odd patches n stuff.Or add extra envelopes and LFOs to anything (with the caveat of midi steppiness if the device cant do 14 bit mid… can oopsy send 14 bit midi?)