Digitally Programmable Circuit Matrix

Started by dano12, March 08, 2006, 11:56:12 AM

Previous topic - Next topic

dano12

Breadboarding is obviously a great way to prototype and tweak circuits. But it has a couple of drawbacks. First, its easy for seasoned veterans, but beginners have lots of trouble getting into it. You have to look at a picture and make sure you orient and place all your components right. Second, once you go to PCB your design is pretty much frozen. Offering component tweakability and circuit rerouting has to happen through a complex array of manual switches.

Would it be possible to build a digitally switched matrix that solves these problems? Given the following board which provides digital (CMOS) switches between each slot on the breadboard/pcb:



The idea is that the rows and columns are dot-addressable (i.e. connect A1 to B9) by a MUX and microcontroller.
Then you add components to the board. Pick the components you want for a specific class of circuit (let's say a Fuzz circuit). Add all the basic components, plus additional components that you may want to try for modifying or A/B-different sounds.



The microcontroller downloads a schema (B2-C3, C3-D1, etc...) that represents a schematic. By laying out the grid in a lattice formation, software can be used to find the shortest path and the basic circuit is then stitched together.

From there, you can (through software—imagine a cool WYSIWYG interface that allows you to modify the circuit in real time and hear the difference and experiment.

Then when you go from breadboard to something you want to build, a stripped down version of the matrix board along with a cheaper microcontroller goes into the actual build.

Of course, this is assuming a lot i.e. current state of the art in digital switching, low resistance on switches, cost of the microcontroller and the "magic" MUX.

If feasible, the cool part would be able to develop a sort of "open-source" design where folks can buy the basic box and controller (perhaps with a USB connector, and the standard ¼" in-out jacks and handful of typical pots) along with the basic set of components for a circuit design. A variety of websites could provide schematics and mods that could be downloaded, copied to the box by the user, and viola, a new effect pedal.

Is this even remotely feasible from a technical standpoint? Any one know of others who may be working towards the same goal?



Peter Snowberg

While it may be possible, it's just not practical for switching every possibility, even with the small number of components you have in your pictures. You end up with something thousands of times more complex than the circuit you're prototyping.

Breadboarding is just something that you have to become proficient at. It just takes doing it enough to get the hang of it. Start with really simple circuits and gradually add more and more parts. Select your builds by the number of components and the ease of understanding the schematic rather than what effect you want next. Once you get the hang of it you can breadboard huge circuits just as easily as medium sized ones; they just take longer.

Now when it comes to switching whole effects, the number of contacts drops and suddenly digital control via matrix switching becomes possible. R.G. has a switcher on GEOFEX using 4051s. I'll have an effects switching project here in a couple of months that is quite similar to your proposal. :) I'm going to wait for the microcontroller "classes" to begin first.
Eschew paradigm obfuscation

dano12

Thanks for the feedback (and moving the post to the correct forum :)

I'm pretty good at breadboarding, it just seemed that the overall idea had applications there.

Perhaps you are right that a general purpose grid or lattice layout would be too complex, but as you point out, for a given circuit, the number of switches need decreases dramatically.

I read R.G.'s excellent article on using 4053, but was struck by the amount of supporting circuitry required for what amounted to three SPDT switches. That piece was written back in 2000, I would hope that the state of the art has improved to the extent that more powerful and compact solutions exist.

Glad to hear someone else is working towards similar goals. I think that this approach could open some very interesting new approaches in effects design.

-dano



Quote from: Peter Snowberg on March 08, 2006, 12:14:52 PM
While it may be possible, it's just not practical for switching every possibility, even with the small number of components you have in your pictures. You end up with something thousands of times more complex than the circuit you're prototyping.

Breadboarding is just something that you have to become proficient at. It just takes doing it enough to get the hang of it. Start with really simple circuits and gradually add more and more parts. Select your builds by the number of components and the ease of understanding the schematic rather than what effect you want next. Once you get the hang of it you can breadboard huge circuits just as easily as medium sized ones; they just take longer.

Now when it comes to switching whole effects, the number of contacts drops and suddenly digital control via matrix switching becomes possible. R.G. has a switcher on GEOFEX using 4051s. I'll have an effects switching project here in a couple of months that is quite similar to your proposal. :) I'm going to wait for the microcontroller "classes" to begin first.

A.S.P.

there are some advanced audio matrix switching ICs out there, somewhere...
Analogue Signal Processing

R.G.

There is a branch of formal mathematics called complexity theory that attempts to determine ways to figure out how complicated it will be to solve problems without actually solving the problem - kind of like your asking the mechanic "How much do you think it'll cost to fix that?".

Problems are denominated in the number of things to be tried, usually just called by the letters N, or M, or P, etc.

Problems which involve the combinations of N things on some operation scale up at some power of N. For instance, how long would it take you to paint N park benches?

Well, it takes N times what it takes to paint one park bench, so this is an "N" problem.

How long does it take you to paint a floor N feet by N feet? It takes N squared times the time to paint one square foot.

If you're combining two-lead or three lead electrical components, allowing interconnections anywhere, you're solving an N factorial (I think) problem. That is, the number of solutions is N*(N-1)*(N-2)*...*2*1

So each new number of components you allow changes the *exponent* of N in the estimate, and so the number of possible solutions goes up exponentially.

That is, while it's easy to see how to do this, it gets radically out of hand with increasing N, so it's not reasonably possible with over a few parts.

Sorry - these things just keep popping up in my head.
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

dano12

Yep, kind of reminds of my day job. I build software that does work on connections of things (people, places, events, transactions, etc.) in large networks and then uses Social Network Analysis and other graph theory stuff to patterns, centrality, permuatations etc. My developer group solves interesting and difficult problems related to graph traversal, shortest paths, clusters, bayesian etc. on large scale datasets. Scalability and exponential lattice growth are hard to solve.

Guess that's why the idea of a grid-based circuit routing system seemed interesting.

Quote from: R.G. on March 08, 2006, 05:13:00 PM
There is a branch of formal mathematics called complexity theory that attempts to determine ways to figure out how complicated it will be to solve problems without actually solving the problem - kind of like your asking the mechanic "How much do you think it'll cost to fix that?".

Problems are denominated in the number of things to be tried, usually just called by the letters N, or M, or P, etc.

Problems which involve the combinations of N things on some operation scale up at some power of N. For instance, how long would it take you to paint N park benches?

Well, it takes N times what it takes to paint one park bench, so this is an "N" problem.

How long does it take you to paint a floor N feet by N feet? It takes N squared times the time to paint one square foot.

If you're combining two-lead or three lead electrical components, allowing interconnections anywhere, you're solving an N factorial (I think) problem. That is, the number of solutions is N*(N-1)*(N-2)*...*2*1

So each new number of components you allow changes the *exponent* of N in the estimate, and so the number of possible solutions goes up exponentially.

That is, while it's easy to see how to do this, it gets radically out of hand with increasing N, so it's not reasonably possible with over a few parts.

Sorry - these things just keep popping up in my head.