Looks like this now! So, with two panels this will be 5 PCBs for this, definitely not a cheap project!
Some more questions:
I was wondering how to drive the LEDs, there are 8 in the faders, 8 additional ones that I put on top of the faders and then 4 seven segment LED displays. They are all connected to their 74HC595 shift registers and so far each LED has its own resistor. I know, that the 74HC595 can deliver up to ~75mA, so I need to run each LED with only ~8mA instead of the usual 20mA, right? In the Kassutronics quantizer he uses very high values of 2.2k for each LED and connects the cathodes to the shift registers. I don’t really understand why…
I do not want to use multiplexing, because I read that this leads to noise on the power supply / CV circuit. Is there a difference if I use common cathode or common anode wiring (or choosing in case of 7segment)? Something like the shift registers are better at sinking current than supplying?
For CV out I see basically 3 option:
- use MCP4822 like the Super Sixteen sequencer (he does the V/oct tuning in software somehow…)
- use MCP4922 like @analogoutput uses in his dac/ino board, this requires a reference voltage as well but then can instantly be used for 0 to 5V.
- Go with PWM like Kassutronics, which has higher linearity, but also needs an extra regulator and a filter to smooth the PWM signal. He writes that the software is easier, because you only need to write to a register, but it uses advanced arduino timing stuff, which I am not so familiar with.
I need to investigate this a little more, I think, but currently the MCP4822 looks like the easiest solution to me…
My “blueprints” for this project are the super sixteen sequencer and the Kassutronics quantizer and they have very different approaches in their arduino programming: Kassutronics looks very advanced with using timer interrupts for a lot of stuff and directly writing to pin registers. In the super sixteen sequencer I recognize a lot more easily and seems more beginner friendly (it pulls the encoder simply from the main arduino loop, for example). But I really like the approach of Kassutronics with the timers for different tasks, like running the UI scanning code at a fixed 1000Hz, to make sure that the UI reacts as you would expect while making sure that the CV outputs are always updated when needed (like at a high frequency). I like that you set your “requirements” and then make sure that the code that is doing it runs fast enough… but maybe someone with more experience can comment on this?