swipesy:
What made my head spin, though, was the different types of communication between units - I2C, serial, etc. - and some of that code was way over my head. I don't know which would be the best way to go, I can't seem to follow the different RX/TX codes ... I just don't, well, "get it."
You'll probably need Serial but it all depends on what communicates to what over what distance and at what minimum required speed.
- Communication (probably) needs to be a continuous 2-way (synchronous?) setup and as fast as possible, with controlling functions on both ends (the preamp and the foot controller/footswitch).
"As fast as possible" is too ambiguous: what is the maximum acceptable delay? Is it in the tune of microseconds or are several milliseconds acceptable?
- The two units will be wired at a distance of no more than 50 feet.
That's important: that distance excludes most of the very fast protocols. Maybe a wireless link is suitable as well here. 50 ft of wire is a bit of a handful to deal with, but no problem for a 433MHz wireless link. It depends on the allowed delay and amount of data to be sent.
- There are 8 channels on the preamp (only one on at a time) with four "options" per channel.
- The footswitch will be laid out in an 8x4 matrix so each channel and its four options are directly accessible with a single footswitch. (Again, only one switch in the matrix can be on at any one time.)
Those foot switches: this are basic on/off switches? How do they connect to the pre-amp? I assume the Arduino will have to read your foot switches, and then somehow relay the signal to the pre-amp.
- There are six other momentary switches for other purposes, i.e., setting delay times, mute, etc.
- Besides the 4x8 + 6 footswitch, the preamp itself will have switches to choose channel, channel option (separately - no matrix), delay time, etc.
What kind of switches? Rotary with many stops? What kind of outputs for the Arduino to read on those switches?
- Current settings must be indicated on the footswitch, whether controlled at the footswitch or on the preamp.
How?
- It will be "wired" using a computer-style DB cable.
The type of wire doesn't matter much for digital signals - unless you go for very high speeds (MHz range) and I don't see that here yet.
[quote[
9. I would prefer it include PWM for voltage controlled volume and blend. (I'm guessing it could be something like 2 to 4 PWM lines.)
[/quote]
Why PWM? That's a block wave. You're probably better off using a DAC for this part, then you actually get a voltage out of it, rather than a lot of noise which is likely going to mess up your volume control (with it trying to go from maximum to zero 1000 times a second).
Doing a rough count of the inputs and outputs you mention, a Mega indeed looks like it will fit the bill. But you'll have to provide more information - best would be a rough schematic of the whole digital part, as I have problems visualising most of it.
As I understand it you want two Arduinos.
One at your foot switch array, reading the switches and setting some indicator (LED?) in the switch to show its state.
This connects through a longish wire (up to 50 ft) to the other Arduino, which operates the pre-amp: setting volume, setting switches.