Guitar pedal router - Page 1
Forum section: electronics / general

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 02, 2016, 02:28:05 am
content: Ok, I've been building guitar amps for awhile, along with some solid state pedals. I know zilch about microcontrollers. I have an idea for a project that I could use as a way to learn them.Imagine you have ,say , six guitar pedals. I would like to build a device that allows me to have a bank of foot switches that I could program to insert any combination of pedals in any order. It would ideally be simply programmed from the device, and would need a display of some sort.I'm not necessarily looking for a design so much as a couple questions answered.My initial thought is to have a bus with a line for each possible position in the signal chain. Each pedal would have a switching element (jfets maybe?)For going in and out of each bus line.For six pedals, and let's say six bus positions, that's like 72 jets!Sounds like there should be a more efficient solution.I guess my main issue is I really have no idea what microcontrollers can do, or what sort of chips exist for such a routing problem.Ideas?

author: daveatol
author_rank: Regular Contributor
timestamp: March 02, 2016, 06:38:41 am
content: Basically what you said seems pretty fair. Instead of JFETs, I'd just use multiplexors, which can allow you to select between 8 inputs to connect to a output (basically just 8 switches in a single package). Then for up to six series elements you'd need 12 of these multiplexor ICs, possibly with a buffer amplifier between each stage.

author: Rerouter
author_rank: Super Contributor
timestamp: March 02, 2016, 07:00:59 am
content: I would say a analog multiplexer as well,, as 8 is the next common step over 4 on analog multiplexers, lets say we make it possible with 8 pedals maximum,So first we start with your control device, to setup the other smart pedals, it has the audio in and audio out connections,for the pedals we have a connector, Ground, Power, 8 Audio Signal Lines, and a few data lines, (lets say 2)Now inside each pedal, lets keep it simple and say you fit a 1 wire eeprom, as these contain a unique ID, and some eeprom space to store what it is,On the other data line, we have a shift register to take pulses from the micro controller to turn on or off wires on the multiplexers,So when you plug all your modules together, the micro controller scans for all eeproms available on the 1 wire bus, then following your settings, sets the input and output multiplexer of each pedal so that they are in series in the way you wish, in this way it doesn't care what order they are connected, its fairly simple, and it doesn't matter if you connect 8 of the same type effect pedal in series,

author: Rerouter
author_rank: Super Contributor
timestamp: March 02, 2016, 07:08:08 am
content: hmm, seems i forgot a way to tell what order they are in, well you have unused pins on those shift registers, sure someone can come up with something original,

author: obiwanjacobi
author_rank: Super Contributor
timestamp: March 02, 2016, 09:04:09 am
content: You know you can buy these things right? They're called loopers and/or switchers. The high end ones allow you to program the effect order in each preset.I would split that matrix into two. One for the effects typically put before the amp, the second part for the effects typically put after the amp. That way the permutations drop == cheaper.I have tried to design something like that myself (more general audio and modular design). Do you want to see it (I don't want to spoil it if you want to do it all by yourself)? My design was part of an idea to digitally control any analog pedal in order to be able to work with presets - but I never got the interfacing with the pedal pots in-circuit figured out.Ah, and check out the book 'Self on Audio' (found it free on the net) - Self is the name of the author. Somewhat old but good info on audio design.

author: xani
author_rank: Frequent Contributor
timestamp: March 04, 2016, 01:49:57 am
content: There are chips that have builtin multiplexer matrix for example 16x16 (so 256 switches) AD75019 but they are a bit pricy. But with that amount of extra lines you could do pretty much whatever you want. There are few smaller and cheaper ones if you dig on digikey a bit

author: Ian.M
author_rank: Super Contributor
timestamp: March 04, 2016, 02:48:14 am
content: The search keywords you want are: analog crosspoint switchAn example of such is the aforementionedAD75019, but that's overkill for your application. 8x8 ones start at around $5 USD. Beware of the supply voltage range, as they can only switch analog signals entirely within their supply rails and you need plenty of headroom on transients to avoid various undesirable effects.If you put inputs on the matrix rows and outputs on the matrix columns, a NxN matrix could switch in (N-1) effects in any order (as you need one row for the original input and one column for the final output, but it may be helpful to allocate a row to ground so you can ground the inputs of unused effects to reduce cross-talk.You would also need a microcontroller to manage it, monitor the foot switches and run its configuration UI, though configuration might be better managed over USB or bluetooth from a PC or tablet.

author: obiwanjacobi
author_rank: Super Contributor
timestamp: March 04, 2016, 09:13:32 am
content: From hear-say I 've gathered that those ICs do not give you the best quality - but then again, probably good enough for guitar.

author: Ian.M
author_rank: Super Contributor
timestamp: March 04, 2016, 11:20:48 am
content: Their switch on resistance does tend to be non-linear with respect to input voltage, so you do need to keep signal levels reasonably small and ideally use a buffer with a low output impedance for each input row and one with ahigh input impedance for each output column, which will require a grounding row (+ use of it in your control software) to prevent crosstalk on otherwise unselected columns.

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 12, 2016, 09:08:23 pm
content: Ok, I think I came to the right place!Keep in mind I'm a complete noob at digital stuff, so excuse any excruciatingly dumb questionsQuestion on multiplexing:My understanding of how multiplexing works is its a way to send signals to a large array of destinations with a much smaller amount of physical wires. The example I always see is displays where a bank of seven segment LED's each have their own controller, and the the multiplexor chip sequentially selects which seven segment driver gets the info. Thus, in reality, the individual seven segment displays aren't on simultaneously, but being operated one at a time in order quickly enough that you can't tell.My question is I'm not sure how this would work in audio routing. I got the impression this would allow me to eliminate switching elements, but I'm not sure how that works.Related question:Would the purpose built signal routing chips that were mentioned take care of that part internally, or are they doing this more like my many switches idea under the hood.Dynamic range question:Someone mentioned the limited headroom of such a routing chip. This is one of the reasons I thought a large array of external switching elements was the way. That way no actual audio runs in the chips. That said, I LOVE the idea of a chip that does the routing internally, so if a solution that gives me decent headroom exists... 5v seems low, since that implies 2.5v PtoP. Double that seems more reasonable. I suppose i could attenuate, and then bring back the signal to the same degree to solve this. Maybe even make the degree of attenuation select able for each position. Then make sure each position has make up gain identical to the attenuation. That sounds like allot of extra plumbing though. Maybe just have an attenuator at one end, and a matching make up gain stage at the other.I'm leaning towards Atmel or PIC right now just based on the vast amount of info and hardware for beginners out there. My thought was to maybe get an Arduino kit for prototyping, and then just having the single chip in the final design.My main goal in this project is to have it be sufficiently complex that I gain allot of new knowledge in the process. Having the final product to use would just be a bonus. I realize these things exist commercially.Also, for programming, I used to do allot of C/C++ stuff years ago, so a micro that has development tools in C or C++ would be my first choice.Sorry, this post kinda bloated on me!Thanks for the help!

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 12, 2016, 09:27:50 pm
content: After my last post, I found this part:http://media.digikey.com/pdf/Data%20Sheets/Microsemi%20PDFs/MT8809_Sept11.pdfLooks exactly like what I need. 15 volt max supply voltage, if If I'm reading this right? I'd run it at maybe 12 and get 6V PtoP, which should be plenty.So, with that in mind, besides the micro controller, what else does one need to implement this? In other words, lets say I have my pedal positions with their respective ins and outs. How do you interface those ins and outs with the switch array in the chip?EDIT:Ok, after some more enlightened reading of you guy's posts, i realize I would need a chip for each switch, which pretty much answers my "how the switches and multiplexer interface.So, lets see if I'm getting this. Its slowly getting clearer.My physical switches would all have unique addresses readable by the micro. When I hit a switch, the micro knows what switch I hit, and sends each multiplexer chip the appropriate switch configuration. My bus lines then have the proper signals on them. I realize I'm ignoring the user programming interface, and any kind of display, but that's for later.Am I on the right track?

author: Ian.M
author_rank: Super Contributor
timestamp: March 12, 2016, 10:33:04 pm
content: No. ONE multiplexer and ONE microprocessor with enough I/O pins for all the MT8809 control pins, and for either a multiplexed (scanned by MCU) matrix of switches or an individual line for each switch. Then you've got the display, e.g. 7 more I/O pins for a character LCD. You'll also need a job lot of OPAMPs for buffering each audio signal.You only need more multiplexers if you need to rearrange more than six effects boxes.

author: Christe4nM
author_rank: Unknown
timestamp: March 12, 2016, 10:43:04 pm
content: Having read your initial post, I cannot help but wonder why you want to be able to switch the pedal's order. I've been playing electrical guitar for years and never wanted to change the order of my effects pedals while playing (e.g. on stage), only which ones are engaged... The pedal loopers I know of all work with your signal chain in a fixed order, but switching different effects in and out depending on your settings.I mean, aren't you making things more complex than necessary for yourself?

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 13, 2016, 12:38:07 am
content: Two reasons for wanting to switch orders.Reason one, which is a guitar player reason. When using multiple overdrives, you can get different gain profiles by switching orders. Imagine one has a lot of clean boost, and another leans more on the pedal's drive section. Also, the eq of one pedal would act as the pre-drive eq of the next one and vice versa. For multiple delays set very differently, the order makes a huge difference, and all possibilities are usefull in different ways. A wah is a different animal in different positions. A compressor is very different in different places. See where I'm going?The other reason is that as an electronics hobbiest trying to expand my horizon's, the challenge is reason enough.

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 13, 2016, 12:54:10 am
content: Ian:Ok, I think I know what you are saying about only needing one switch array chip.Basically, if I have 8 pedal positions, I need 8 signal paths. I will also need 8 ins and 8 outs for each pedal position. So that's 2x8=16 switches for each pedal position. If I want 8 positions (just an early, up for revision number), I need 8x16=128 switch positions, which means 2 8x8 chips.Also, I assume when you say multiplexer, you are referring to the switch array chip. So at this point, my proposed 8 position board would need one processor, and 2 8x8 mt8809sYou are also saying that my micro will need enough I/O to talk to the MT8809(s), and still have pins left for the other necessary tasks. I'm still new to this kinda thing, so my reading of the MT8809 datasheet is slow going. Edit: Ok, I read it some more. My interpretation is there are 6 address lines for selecting a switch, one data line for setting the switch, a chip select line which I assume is for using multiple MT8809's, a STROBE which seems to be for determining when the data actually gets set (this pin isn't super clear to me), and a reset pin. Also the actual switches. So that tells me I need 6 + CS + STROBE + RESET+DATA i/o lines from the processor. Am I correct? Also, I would probably be able to hard wire the chip select pin to its on state if I only used one MT8809. Is all that correct?This is probably getting ahead of things, but I want to test my understanding of how the micro talks. I assume most have registers that are directly affiliated with specific pins, and that that is hw you get stuff in and out. Is that about the case?Also, if I do the Atmel thing like I'm thinking, do those kind of chips need an external LCD driver for the display, or can they talk to one directly? I don't mind a separate driver chip, just curious how its done.

author: Ian.M
author_rank: Super Contributor
timestamp: March 13, 2016, 01:11:52 am
content: Assuming you still want full any order selection, for eight effects boxes, you have nine inputs, and nine outputs because you still need to switch the signal from the guitar to the first effect and switch the output of the last effect to the amp. We discussed the need to ground the inputs of unselected effects for stability. That means that for N effects, you need a (N+1)x(N+2) matrix. For 8 effects that's a 9x10 analog switch matrix, so you'll either need 4 8x8 switch chips, three of which are only used for a couple of rows or columns, a 12x12 matrix or a 16x16 matrix.Few MCUs can directly drive so-called bare glass LCDs. You are much better off buying a display with a built-in controller chip. The cheapest/lowest effort one of which is the industry standard HD44780 compatible character LCD, which needs 7 MCU pins for full control, unless you hang it off an I/O expander.

author: obiwanjacobi
author_rank: Super Contributor
timestamp: March 13, 2016, 06:48:30 am
content: Could you not use only one 8x8 matrix chip and have separate switches (4066-like) to ground unused outputs (effect inputs) (only 8 )?I would use as high a supply voltage as possible. Switch-resistance goes down, more headroom etc.

author: Ian.M
author_rank: Super Contributor
timestamp: March 13, 2016, 08:24:44 am
content: That could work, but it will only get you 7 effect boxes patched by an 8x8 analog switch as you still need one input and one output to get the signal into and out of the whole chain.The O.P.'s suffering from creeping featuritis as he started with "Imagine you have, say, six guitar pedals". It soon reaches a point where its better to build a DSP effects box, and do all the effects in the digital domain, controlled by simple potentimeter and switch pedals that aren't in the audio signal path.

author: obiwanjacobi
author_rank: Super Contributor
timestamp: March 13, 2016, 09:07:28 am
content: Nah, the modularity of pedals is just not the same as one big backed-in multi-effects unit. Otherwise there would be no pedals anymore and I think pedals now are bigger than ever before...@Dan: Arduino (UNO/Nano/Mini Pro) will be nice place to start. Count the IO pins you will need for driving the matrix-chip, the LCD (there are 1$ converter boards on ebay for HD44780 LCDs to work on I2C - only 2 pins), and perhaps some buttons or encoder for navigating UI-settings. Leave the Serial TX/RX free for easy programming and debugging...As with anything new: start small and simple and build from there...

author: Christe4nM
author_rank: Unknown
timestamp: March 13, 2016, 01:27:26 pm
content: Quote from: Dan Moos on March 13, 2016, 12:38:07 amCertainly do. I guess I never thought about it for live switching. Then again every guitarist has his/her own way of wanting to do things.Quote from: Dan Moos on March 13, 2016, 12:38:07 amVery good and all the reason one needs

author: Ian.M
author_rank: Super Contributor
timestamp: March 13, 2016, 03:16:28 pm
content: Quote from: obiwanjacobi on March 13, 2016, 09:07:28 amThey have to be bigger so the bass player can hit the ones on the monitor loop keeping him happy without kicking them off the stage!

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 13, 2016, 03:22:30 pm
content: Ok, I'm having difficulty figuring out how to cascade these switch arrays. I can easily double only the x or y sides, but as far as I can tell, anything more requires way more switches than what my design needs. It's there a clever way, or I'd that just how it goes?

author: Richard Crowley
author_rank: Super Contributor
timestamp: March 13, 2016, 03:31:41 pm
content: As has already been discussed, an 8x8 (eight inputs and eight outputs) analog multiplexer is a pretty cheap integrated circuit solution.And a microcontroller can handle switching that however you like without breaking a sweat.However, your biggest problem here appears to be the design of the User Interface.Perhaps you should work out how you want that to work, reassured by the knowledge that whatever you decide, it will be easy to implement in the "back end".

author: Ian.M
author_rank: Super Contributor
timestamp: March 13, 2016, 04:10:34 pm
content: Quote from: Dan Moos on March 13, 2016, 03:22:30 pmThat's how it goes if you need to be able to select from all the effects in any order. 16x16 switch arrays are available and there are some 12x12 arrays. I don't think its worth trying to cascade them unless there is absolutely no choice as the number of chips required goes up with the square of the number of channels.

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 13, 2016, 04:16:48 pm
content: My idea for the interface is fairly simple. Let's say I have 8 positions on the board. (I'm talking about positions in the loop, not the actual foot switch's that call up loops). Each position would have a button and and an LED. There would also be an LCD, and a rotary encoder that you can also push like a switch. Finally, I would have a slide type switch that would enable/disable user programming.The way I see it working, the user selects each position he wants with the individual buttons, causing its LED to light, and causing that number to appear on the LCD. Then, the user can select numbers on the LCD with the first encoder, using the integrated button to "pick up" and "drop" selections in position.To me, this would be fairly simple to use.

author: obiwanjacobi
author_rank: Super Contributor
timestamp: March 13, 2016, 04:28:31 pm
content: Are you going to allow effects in parallel also? If so, how are you going to handle the summing/mixing of outputs?

author: Ian.M
author_rank: Super Contributor
timestamp: March 13, 2016, 04:40:47 pm
content: You don't need all that crap, and encoders are a PITA to interface and use for simple menu selection - they only come into their own when you either need to be able to twiddle/tweak a variable parameter, or to control pointer/cursor position for a big GUI.I'm thinking two line display: Top line is the possible selections, bottom is the effects in order. Cursor pad with central click button for navigation. Click an effect number to 'pick it up' click again to drop it where you want. Top line shows which effects are active and cant be reordered. Bottom line shows the current chain and can be reordered. There are a couple of extra clickable legends for 'OK' 'Cancel' and probably 'Menu'. Then you have to deal with assignment to a preset memory, copying to different presets and assigning preset changes to foot switches. The slide switch for programming lock makes sense.@obiwanjacobi: Don't be evil !!!

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 13, 2016, 08:01:24 pm
content: Two reasons for wanting to use a rotary encoder with a center switch.Reason one, I've used similar gear with rotarys, and with an arrow pad. The rotary is way easier to me from a user standpoint. I just hate clicking arrows I guess.Second reason, is I want the challenge. I presume the encoder just sends it's a address, and some sort of simple code saying what way it turned, right? Then wouldn't it just be a software job to watch for it and respond correctly? Wouldn't it be the same as any other button except rather than a simple pulse, it would send a slightly more complicated code? Or is that last part more trouble than I think?

author: Ian.M
author_rank: Super Contributor
timestamp: March 13, 2016, 08:29:02 pm
content: A lot more trouble than you think. A rotary encoder produces a quadrature pulse-train on two outputs that has to be decoded to get the direction and magnitude of each movement. Unless you use a very high quality optical rotary encoder its likely to require debouncing as well to avoid it jittering between adjacent steps. If your software misses a transition, there will be a two step uncertainty before you can determine the direction of movement again. If the MCU has a QEI module, it will handle it in hardware, but otherwise it is a P.I.T.A.None of this stuff is smart enough to send an address and direction or an address and which buttons are pressed. If you want that, you are looking at something like a multi-master I2C bus with a MCU for each input or output device and *very* complex software to manage it all. If your master MCU polls the bus to see which devices have had a status change (rather than the devices pushing their update to the master MCU) you can interface them using off the shef I/O expanders or dedicated interface chips rather than a MCU for each, which means you don't have to write firmware for all the slave devices, but you'll still need fairly complex firmware on the master MCU, far more complex than it would be for directly connected switchs and LED etc.

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 13, 2016, 08:41:16 pm
content: Ok, you talked me out of the rotary. While we are on the physical interface topic though:How does a button talk to the micro in a simple setup. You, or someone else spoke of some sort of EPROM with each button that sent the address and state of the button. I think "one wire eprom" was the term. Care to expand on this?

author: Ian.M
author_rank: Super Contributor
timestamp: March 13, 2016, 08:59:37 pm
content: That wasreply #2from Rerouter, who was talking about making each individual pedal 'smart' and capable of doing its own routing over a multicore daisy-chain cable linking all the pedals.A normal switch doesn't have an address. Its identified by the port pin its connected to or its position in a switch matrix.

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 13, 2016, 09:32:52 pm
content: Ok, so let's talk about the physical interface.Obviously I don't want to burn an i/o pin for every button, so is the matrix the way to go?As far as i/o pins go, here is what I THINK I need.If i use MT-8809s in an array of 4, I see six address pins, plus reset, chip select, and strobe pins for each chip, although I'm not clear if I only need one strobe line for all four. Assuming my that's the case, that's 15 pins just for talking to the switching chips.Another seven for the LCD, and I'm at 22 without even considering the interface!The arduino Leonardo that I'm looking at only has 20. Do I really need more, or am I missing something?

author: Ian.M
author_rank: Super Contributor
timestamp: March 13, 2016, 09:53:03 pm
content: If you have multiple MT-8809 chips, they can share all their control pins except /CS. The /RESET pin isn't gated by /CS, but I cant think of any situation where you'd want to reset one out of four on its own. Thy have six AX and AY address lines, DATA and /STROBE, so if you include /RESET, that's nine pins in common + one /CS per chip. For four chips that would be 13 I/O pins. Even if you use an I2C interface for the LCD you are up to 15 pins before you add any switchesThe best option would be to find a 16x16 analog switch chip with a serial I2C or SPI interface then use the same type of interface for the LCD. I2C would only use two MCU pins for all the devices on the bus. SPI uses three pins for the bus + 1 /CS pin per device.

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 13, 2016, 10:26:31 pm
content: Are you talking a 16x16 chip for my interface? So in addition to my audio switch array, a switch array for the the buttons that shares a 2 wire bus with the LCD for a grand total of 15 i/o pins?

author: Ian.M
author_rank: Super Contributor
timestamp: March 13, 2016, 10:37:58 pm
content: No. I'm suggesting ONE 16x16 analog switch chip for the signal switching. Although it would be possible to use I2C or SPI I/O expanders to interface the buttons or keypad or even footswitches for changing preset setups while playing, putting the analog switch matrix and LCD on the I2C or SPI bus frees up enough MCU pins to connect the switches direct to the MCU, or in a switch matrix direct to the MCU.

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 13, 2016, 11:02:35 pm
content: Ok, I gotcha.So I'm completely unfamiliar with the serial interfaces that you mentioned. Does the switch array chip need to natively speak that particular interface? I've found some 16x16s with serial interfaces, but a mouser search with "cross point" and "12C" got me no where, leading me to think I'm not understanding. Say I want the 12C interface you mentioned (attractive to me for its low pin requirements). Do I need a specific switch array intended for 12C, and some chip to interface with the mcu?By the way, thank you so much for your help. I know indulging a rank beginner can be tedious!

author: Ian.M
author_rank: Super Contributor
timestamp: March 13, 2016, 11:20:35 pm
content: In that case, its probably better to go for SPI or a SPI-like interface (Clock, data and latch or store). You *could* use an I2C I/O expander to drive a parallel interface crosspoint analog switch matrix, but you would end up having to send three words per switch bit, one to setup address lines, and the data line another maintaining those lines and activating the strobe, and yet another to deactivate the strobe. Even for a single 8x8 matrix that would be a minimum of 192 bytes sent, assuming you had wired up a /reset line so you didn't need another 192 bytes to clear the whole matrix so it didn't short anything while transitioning from the previous configuration to the new one. A matrix with a serial interface typically has a bulk load mode where you send it bytes, one bit per switch, then the whole new configuration gets loaded simultaneously so you don't have to worry about shorting stuff if the matrix hasn't been reset after the previous switch configuration

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 13, 2016, 11:50:23 pm
content: OK, I goofed. I now realize its I2C, not 12C. I amended my search, and had much more fruitful results :palm'sOK, I only found 8x12's with that interface, and they only went to 5 volts. One of the big draws of the MT 8809 to me is the analog signal headroom.What about I stick with my quad of MT 8809s for audio, and did I2C parts for the interface switching array and the LCD.Also, if I'm understanding you correctly, I could even make my MT 8809s talk on the I2C bus with an I2C I/O expander, making my entire I/O pin use just 2? Sounds too good to be tru, since that would allow me to get a cheaper Arduino Uno, instead of the Leonardo I'm considering.

author: Ian.M
author_rank: Super Contributor
timestamp: March 14, 2016, 12:02:09 am
content: Its possible to do that but I strongly recommend you don't. It will need a lot more code to update the matrix. Take a look at this Arduino project that uses 3 AD75019 16x16 analog switch chips:http://dorkbotpdx.org/blog/paul/ad75019_crosspoint_analog_switchHere's the datasheet:http://www.analog.com/media/en/technical-documentation/data-sheets/AD75019.pdfIt can run from +/-12V rails so has plenty of headroom for audio applications. Its not cheap, but compared to the cost of 4x MT-8809 + a 16 bit I/O expander to drive them, its quite reasonable.

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 14, 2016, 12:21:06 am
content: Ok, I like the look of that chip. If I read it correctly, this is niether I2C or the other interface you mentioned. Not neccesarilly a bad thing, just curious if my observation is correct.

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 14, 2016, 12:34:01 am
content: In an unrelated vein, my goal is to buy the arduino board as a prototyping rig, but put just the mcu chip on my final build. Is that a reasonable goal? My reason is two fold. One, I think its more professional probably to do it that way, not that reason is important beyond my own personal pride. Second, I don't want to have to buy a new arduino development board every time I want to do a new project of this type.? Is this a reasonable goal?Next, I presume this kinds thing is virtually impossible for a home etched pcb. I've done homebrew single sided boards, and I'm pretty sure I could do a double sided board in a dire pinch, but In suspect I'm way beyond home brewed pcbs now, right?

author: Ian.M
author_rank: Super Contributor
timestamp: March 14, 2016, 12:58:36 am
content: The AD75019 is near enough to SPI that you can put it on a SPI bus with some simple glue logic to gate its SCLK signal with a /CS signal, and generate a PCLK pulse when /CS goes high.edit: corrected PCLKIf you don't use a whole Arduino, then you have the problem of flashing the ATMega chip. That means you need a programming header on your board and a Atmel programmer (or compatible).You are well beyond home etched board territory here. You could do a proof of concept by patching together the Arduino and breakout boards and Manhattan island construction or using DIL converter boards on a base of a matrix-board with a ground-plane but the final product will need to be farmed out to a PCB house to get a professional quality double sided PTH board with solder-mask and preferably silk-screen as well. How good are you at hand SMD soldering?

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 14, 2016, 01:07:44 am
content: Ha! its been all through hole for me so far. And actually, since the vast bulk of my experience is the design and building of vaccum tube guitar amps, my native tongue is soldering big 'ole 2 watt resisters and 400 volt rated caps!That said, I'm planning on practicing my smd stuff on junk boards before i try anything important. Also, I'm considering socket converters for any chip more complex than an opamp so it becomes a thru hole thing. I am resigned to professional etching, but hope to populate it myself. When I was still on the MT 88009, I did find an adapter that seemed to allow me to put a 28 pin plcc in it without soldering, and the carrier had thru hole pins for lsoldering to the board. Anywhere that I could do this, I likely would. I would also do my best to keep all my passives and opamps thru hole. My entire build paradigm might be a pipe dream, so I'm open for correction!I just realized my Art of Electonics 3 has alot to say about serial interfaces, including SPI and I2C, so I have a bit of reading to do.

author: ozwolf
author_rank: Regular Contributor
timestamp: March 14, 2016, 01:11:31 am
content: Quote from: Dan Moos on March 14, 2016, 12:34:01 amCan you build a board for less than $10? Probably not.Use this for prototypinghttp://www.banggood.com/Multi-Function-Funduino-Nano-Shield-Nano-Sensor-Expansion-Board-p-91852.htmlwith this for integration into your boxhttp://www.banggood.com/ATmega328P-Nano-V3-Controller-Board-Compatible-Arduino-p-940937.html.There will be all sorts of naysayers as to quality of manufacture, but I've had very little trouble with these for various projects. I tend to use these and other modules (Real Time Clocks and such) and mount everything on a motherboard.Ozwolf

author: Rerouter
author_rank: Super Contributor
timestamp: March 14, 2016, 02:00:24 am
content: Hmm think i'll better explain myself, What i was proposing was that each pedal is dumb, but Identifiable, Each containing an input and output switch, not necessarly the most efficient, but the most idiot proof,Each pedal would have an input switch, 8-1 mux, an output switch 1-8 demux, and something to identify it, In reality it doesnt have to be an eeprom, it was just what made the most sense to me,The thought there being an open collector shift register drivers the address lines of the input and output, leaving you 2 pins free on a normal 8 way shift register, you then use one of those pins for the eeproms ground or enable line, and you get one that you can do whatever you please with, maybe turn on a connected LED,So when your device starts up, it pulses in a 1 to the corresonding shift register pin to turn on the first eeprom, you then read it, and know what the first device in the series is, pulse in 8 more, and know the next device, until it doesnt read anymore devices and considers it mapped,You then set the sequence, this should be pretty quick however you want to do your interface, Then pulse out the relevant settings to wire it up how you want, It would even support looping and parallel modules as all your defining is which wire is the input and which is the output, though at a worst case of 16 analog switches, its your call,

author: Richard Crowley
author_rank: Super Contributor
timestamp: March 14, 2016, 02:26:21 am
content: Here in the 21st century that is trivial to do with a few lines of code and a $5 microcontroller.Has anybody used an EPROM of any flavor in the last decade?There are even color graphics touch-screens for microcontrollers that cost a fraction of a panel full of clunky old mechanical switches.Unless you are trying to design some costume-period piece of steam-punk here.

author: SL4P
author_rank: Super Contributor
timestamp: March 14, 2016, 02:42:19 am
content: If I was doing this - I'd go with something like the attached JPGA simple matrix with extra 'tie-lines' to perform mixed mode routing and source/destination combinations.Depending on whether the matrix chip is bi-directional or one-way, would affect how I use the tie-lines to combine sources and destinations, but it works either way..The only gotcha - regardless of what method you choose, is the possible need for programmable gain amplifiers on the in or outs - to compensate for different levels passing through the various pieces of gear.This amp could be controlled by the same micro - as it becomes aware of each piece of gear being switched in and out of the signal path, or to compensate for losses in 'paralleling' multiple paths.

author: Richard Crowley
author_rank: Super Contributor
timestamp: March 14, 2016, 03:55:30 am
content: A proper non-blocking matrix won't require any "tie-lines".If you program the input sensitivity and output levels of each of the effects gadgets, it would be easy enough to put an adjustable gain/attenuator at each input and have the microcontroller automatically compensate for any differences in levels. This is all easy to do in microcontroller firmware. And it would handle impedance wieredness as well.

author: Rerouter
author_rank: Super Contributor
timestamp: March 14, 2016, 06:14:07 am
content: To Richard, why i suggested a 1 wire eeprom was you get a unique 64bit ID, The eeprom space is just a freebe

author: obiwanjacobi
author_rank: Super Contributor
timestamp: March 14, 2016, 01:21:08 pm
content: Rotary encoders are not that hard especially when you add hardware debouncing (couple of Rs and a C per line).And for almost anything in Arduino land there is a library for it - maybe not the most optimal or eloquent but usually good enough to get things working.http://playground.arduino.cc/Main/RotaryEncodersI don't get some the things said here. Looks more like we're trying to confuse a beginner instead of helping him.My tip: get a 4$ arduino on ebay and a 1$ encoder and start tinkering. Take it from there...

author: alexanderbrevig
author_rank: Frequent Contributor
timestamp: March 14, 2016, 02:17:08 pm
content: This is funny. I've recently spent some time thinking through the requirements I would have for such a system. I'll list them shortly and maybe you gain some ideas yourself. Maybe we could even cooperate on it?Here are my specs:6+ FX send/return2 FX stereo send/return (always last in chain)2 out; L (mono), RA/B in (for two guitars in)Tuner/aux out (straight off of guitar in)MIDI in (/ out) for remote control, typical for backing track scenarios where the computer runs the showDelay/reverb spillover (need to sense presence of signal at FX return)Separate volume send/returnFour external switchesThe board would need to support both switching of entire patches, but also as a proxy to the pedals themselves (so one can use the system as a conventional pedal board). Typically useful in creative or spontaneous scenarios.These are the ultimate specs for myself (this is what I wanted back when I used pedals) and a very good friend of mine who is a professional performer.

author: obiwanjacobi
author_rank: Super Contributor
timestamp: March 15, 2016, 06:45:41 am
content: To my mind it is of little use to have the matrix be remotely controlled (MIDI) while the effect's settings remain the same - assuming most pedals do not have remote control. You're only mixing up the order of the effects, not changing the effects themselves...

author: alexanderbrevig
author_rank: Frequent Contributor
timestamp: March 15, 2016, 06:51:54 am
content: The patches would be preprogrammed. It is only switched in time to free up the musician from the spot on the stage to to do other thingsOne would need a signal out too, for setting tap tempos

author: Ian.M
author_rank: Super Contributor
timestamp: March 15, 2016, 07:10:35 am
content: As I said way up the thread, its creeping featuritis and if you are going down that route, then a reconfigurable DSP effects box and dumb potentiometer pedals or footswitches not in the signal path to control it is the way to go.OTOH, sticking with the original concept, there is no reason why you cannot chain a couple of effects that you don't need to rearrange on one input/output pair, so I question the need for vast numbers of channels. If you do have any spare channels, it's probably a good idea to build some of your favourite effects into the box.

author: alexanderbrevig
author_rank: Frequent Contributor
timestamp: March 15, 2016, 07:22:32 am
content: Creeping features are scary. I agree.OP is probably trying to solve the problem of switching off two pedals and going in to three.I simply added that the foot could be omitted entirely.It's not about the ability to have effects. It is the ability to use the effects you love - but with eight feet

author: Rerouter
author_rank: Super Contributor
timestamp: March 15, 2016, 07:36:25 am
content: Alex your requirements seems possible, however would i be correct in assuming your more programmer than hardware?Effectively what your asking for is a 10x10 Matrix, 2 Audio Outputs and one split off guitar output, with midi being used to talk to your sequencer, The volume send and return, and the switches are just analog circuits and simple micro controller stuff, Its a centralized approach, with pedals being left completely unmodified,

author: alexanderbrevig
author_rank: Frequent Contributor
timestamp: March 15, 2016, 12:39:56 pm
content: Quote from: Rerouter on March 15, 2016, 07:36:25 amYou, that's correct. However, I'm getting to place where I know enough to be dangerous. I threw this together now to have something to have a discussion around. It's more of a mock than it is a design but it's a start.

author: krivx
author_rank: Frequent Contributor
timestamp: March 15, 2016, 01:08:53 pm
content: Do you need those AC coupling caps? Nearly all pedals will have them internally.

author: krivx
author_rank: Frequent Contributor
timestamp: March 15, 2016, 01:14:03 pm
content: It also looks like your chosen crosspoint switch has a gain of 2 - you will probably want to divide that down to unity gain. It's probably a better idea to choose a gain-of-1 part.

author: Rerouter
author_rank: Super Contributor
timestamp: March 15, 2016, 01:27:27 pm
content: krivx, i would say very yes, if someone chose to omit them, then pop goes the chip,And to Alexander, connect your signal to the jack detect pin through a resistor, say 10K it will ground out noise on unused connections, without a harsh pop.Also reading the datasheet of your chip, i do not see a variable gain amplifier stage for level matching,Other than that, looks good,

author: obiwanjacobi
author_rank: Super Contributor
timestamp: March 15, 2016, 01:37:22 pm
content: Your MIDI in reverse-diode is uh, well reversed...

author: krivx
author_rank: Frequent Contributor
timestamp: March 15, 2016, 01:49:19 pm
content: Quote from: Rerouter on March 15, 2016, 01:27:27 pmThe chip can handle DC, it even does bias current compensation. It seems like a series resistor or some clamping diodes would be better for protecting against extreme cases.Small ferrite beads are common on the input and outputs of high-speed digital guitar pedals, they might be useful here too.

author: alexanderbrevig
author_rank: Frequent Contributor
timestamp: March 15, 2016, 02:03:05 pm
content: Excellent input guysDan Moos, are you still around?Even though the chip handles DC, most pedals don't like it much and I just want to be a nice citizen and spare them the potential worry.Quote from: obiwanjacobi on March 15, 2016, 01:37:22 pmHaha! Would you look at that! I'm used to that part being mirrored over X so that is wrong in many ways. Silly mistakes happen when you try to work quickly. Lesson learned (reinforced really as this is not my first such error)RE the part, I searched and searched for a unity gain, 12x12 but I could not find anything. Attenuating back down after each out should be easy enough though. Maybe just use voltage divider and then a buffer for the next 'stage' ?Excuse my lack of technical terms, I'm still learning.If you guys know KiCAD and want to have acces, it's a short process for me to put this on github.

author: krivx
author_rank: Frequent Contributor
timestamp: March 15, 2016, 02:25:29 pm
content: The AD75019 (mentioned somewhere else in the thread) is technically unity-gain, as it's unbuffered. This may actually be preferable if you use pedals with low input impedances that interact with the guitar pickups (e.g. you have multiple 60s fuzz designs that you want to connect directly to a guitar with no buffering in-between). Otherwise just divide and buffer as you said. It might be useful to limit the bandwidth of the output buffers to something sensible (10s of kHz-ish) as these switches are much faster than required.

author: alexanderbrevig
author_rank: Frequent Contributor
timestamp: March 15, 2016, 02:40:52 pm
content: The AD75019 looks the part! I have no clue why I did not a) notice it in this thread or b) find it when I searched.Maybe it could be an idea to have an optional buffer stage at the outputs.I'll let Dan Moos get back here and not derail his thread any more... I just got a bit caught up in thisEDIT: WHAT KIND OF PINOUT IS THAT!?

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 16, 2016, 02:34:35 am
content: No worries Alex!Your proposed feature set is pretty expansive. I personally don't need midi, or stereo. Tap tempo would be simple to implement as a separatee circuit not tired to the microcontroller, so I guess that's not a bad idea. I like the idea of effect spillover, but don't want to get that deep in the weeds on my first attempt.Ian:I have struggled with the notion that 8 is too many loops. On one hand, I feel I need enough that I can still use any pedal by itself. Of course, I plan to have an option that activates everything in an add that's pretty standard so I can just use the pedals the old way if I want, so I guess that would make it easier to not need so many loops, but in practice, that wouldn't work. Obviously for this thing to work, all the pedals need to be engaged, so enabling every position at once would require that you hit almost every pedal but the one you need. Then you'd have to stomp them again to use the controller. That's pretty much useless.My current leaning is the serial interfaced 16x16 you suggested, but using a separate array for interface controls. That way, internally it's upgradeable to close to double my needs, while I would probably only install the jacks for the proposed 8 loops.Since I last posted, I ordered a arduino to stay messing with. I'm also going to order some cross point switch chips. Time to start experimenting!I ordered an Uno because I hope that if I don't go the serial route, I can get enough I/O with one or two shift register chips.My choice of switching chip may come down to what I can get in a dip package, at least for the early bread board prototyping. I want to get something on a much smaller scale loop wise running before I move on. I'm curious how fast this thing will do the business.I also plan to put an opamp buffer on every in and out, since someone mentioned the resistance if these switches might be squirrelly.Sound good so far?

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 16, 2016, 02:59:15 am
content: Oh, one more total noob question.So if I'm running my arduino at 5 volts, and my switcher chip at some significantly higher voltage, can I still safely know that the logic levels will match? Is a HIGH fairly standard in these kinds of chips?

author: Richard Crowley
author_rank: Super Contributor
timestamp: March 16, 2016, 03:44:49 am
content: The switching chips should specify the logic voltages in the data-sheet.They are typically designed for conventional logic levels.If you need help reading the chip data sheets, ask for assistance here.Note that some analog switching chips may require negative supply voltages to handle zero-referenced AC audio signals.

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 16, 2016, 04:22:34 am
content: Yup, I actually just ordered a couple Mt8816s, partially for their ability to have a negative rail. Not guitar pedals are bid to not quite 9v PtoP, and that chip does over 12 PtoP.

author: Dan Moos
author_rank: Frequent Contributor
timestamp: March 16, 2016, 04:29:53 am
content: Dang, autocorrect hit hard on the last post!The data sheet only gives a 3.3v min for HIGH. The boxes for typical and max were blank. Can I presume that means I'm good?

author: Richard Crowley
author_rank: Super Contributor
timestamp: March 16, 2016, 04:54:46 am
content: That means that it takes at least 3.3V to indicate logic high (1).So you can use it with 5V logic, and maybe 3.3V logic as well.And besides, logic level converters are small and cheap, so not a problem these days.

author: CplCrapper
author_rank: Newbie
timestamp: January 15, 2017, 04:36:52 pm
content: I know this is an old topic, but I wanted to know if the original poster has made any progress on this. I picked up useful info about using an MT8809 as a switch matrix. (I was considering using relays but this chip seems a much better idea) I've been thinking about designing a pedal router to do the same thing. Using the MT8809 would allow the switching of 7 effects. I was thinking that each footswitch would have a small 7 segment display to indicate the order of each effect in the chain. There would also be a master Bypass switch and maybe the displays would change color from red to green indicating bypass is in operation. The MCU would remember the order of footswitch selection and change the switch matrix accordingly. I still need to work out the logic of what happens when you want to change the order. Maybe a seperate footswitch to clear the current order. If anyone reads this I'd be interested in their ideas.Thanks

author: obiwanjacobi
author_rank: Super Contributor
timestamp: January 16, 2017, 09:08:16 am
content: If you choose momentary foot switches you can build a press and hold function that will enter programming mode and blink the leds to indicate this mode. The foot switch you start on is no #1 any additional switch you press adds to the chain/order. This assumes you have some sort of preset mechanism (more presets is better).Others I've seen use multiple switches pressed down simultaniously to enter programming mode - something you wouldn't do when in normal use (assuming the switches are far apart enough to not accidentially stomp on two of them).Quote from: CplCrapper on January 15, 2017, 04:36:52 pmCare to share?

author: Dan Moos
author_rank: Frequent Contributor
timestamp: February 12, 2017, 09:46:04 pm
content: I'm still around. I did get a small working prototype that spanned many breadboards. Went with the AD75019. Expensive bugger, but filled my requirements.I also ditched Arduino, and am using an Atmel ATmega1284. Basically my user interface requirements were getting cramped by the 328's pitiful SRAM quantity.I put the project down or a bit to work on other stuff, but am recently back at it. Now that I have proven I can make the switching work, I am doing a more top down approach. Getting all the elements of the user interface in place.The thing I am still not sure of is how to deal with the analog signal paths. I'm buffering everything that comes in and out of the switch chip, and will use shielded wire from the board to the audio jacks. That still leaves a lot of traces on the board where the signal is exposed to noise pick up. My plan is to have the software ground any in or out not in use, and figure that since the bulk of analog traces will be grounded in any given patch setting, I'll get a lot of ground traces separating active signal traces.I'm also thinking I want my buffers situated physically so that the high impedance inputs are as short a trace/wire as possible. Basically, the opamps serving jacks bringing signals in to the device will be on a board with the jacks The opamaps serving signals leaving the switch chip will be close to the switch chip. Sound like the right strategy?I also thing there is gonna be at least 2 Boards carrying audio, and am looking into shielded ribbon cables for the interconnect.Does it sound like I am afraid of noise?!?!

author: alexanderbrevig
author_rank: Frequent Contributor
timestamp: February 13, 2017, 02:46:28 am
content: Glad to hear you're still going at it! Your choices so far seems good, and I like your idea of grounding unused signals in the patch. Keeping high impedance traces will be very good.What internal Vrms are you looking to use?Might be an interesting test to do grounded guard traces around the high impedance stuff. Maybe even after the buffers?Which features are you looking to implement currently?

author: obiwanjacobi
author_rank: Super Contributor
timestamp: February 13, 2017, 06:19:16 am
content: Shield the analog stuff from the digital stuff.Shield analog stuff from the power supply stuff (transformers)Have separate power supplies and use star-ground.Have a metal case.Use a 4 layer board with a ground plane.

author: Ian.M
author_rank: Super Contributor
timestamp: February 13, 2017, 08:12:05 am
content: It should be possible on a carefully laid out double sided board with a very well stitched ground fill top and bottom, and with screening cans soldered on both sides round critical low level analog sections and particularly noisy digital sections - a lot of commercial products do it that way.Every control line from your MCU to your analog section carries and radiates digital noise so keep them as quiet as possible by leaving them in one state whenever possible. (e.g Don't share control lines with a LCD data bus that's continuously updated, unless you route them through a transparent latch so the branch going off to the analog stuff can be kept static and quiet while the display is being written to) RC low pass filtering to limit the slew rate on critical digital signals may also be helpful.