for now, just the photos and some simple explanations; but maybe I'll do a circuit board later if there's interest.
the idea is to leverage the spdif selection that is native to many dacs (such as the gamma1/2 8416 chip) and have that be remote controlled (in this case, by the LCDuino).
some photos, first:
the components are the DAC, itself (stacked board set in the photos) and an interface board that receives i2c 'input select' addresses (0, 1 or 2 for three total inputs) and sends that decoded parallel set of 2 bits over to the 8416 receiver chip via a pair of opto isolators (6pin chips on my perf board). I used what I had on hand but any opto isolator will work, even the slowest stuff you can find (those 6 pin chips are at least 30 years old from my parts bin).
looking at the first photo, to the far right there is a thick cable from the rear to the front. that's a hacked firewire cable from an old motherboard that had a firewire connector (by itself) on a pc tab (pci style slots). its a PITA to wire up your own FW connectors but its not too bad to steal others that already work
FW has 2 strong wires for 5v power (per the FW spec) and it has 2 twisted pair groups inside that are ideal for i2c. I've been using FW cables and connectors for this stuff a lot lately and its working out pretty good. the coolest part is that the cable from this box to my controller (the LCDuino system) is a bog standard firewire cable that you may even have lying around at the house. they are being phased out in the pc world but they'll be around for a long time, at least as discounted parts. might as well use a well designed connector and cable standard. I have that large 6 pin connector which follows the amb/linuxworks i2c+power standard (2 pins of +5v, 2 pins of gnd and 1 each of clock and data).
the 3 pin ribbon next to it (purple white and grey) is the 'result' of the 2 bits that is sent to the DAC. this is equivalent to the front panel 3 way switch. however, I did not use usb - I stole that third port and used it for a 2nd opto in! the soldered-on set of 3 wires in the middle of the top green board is the hijack connection (lol) where instead of usb, I feed in a TTL spdif signal that comes directly from a 2nd opto-rx block. I use 5v blocks and so the vcc pin goes to the box's 5v. this is different from amb's toslinks which tend to use 3.3v. be aware of this if you get into hacking stuff like this! toslinks come in 3v and 5v versions. look up the numbers and know what you are doing..
the 3 leds (up front) are part of the perf board (sitting on headers and sockets, so they can be removed. in theory, lol!) and they just show which of the 3 inputs the unit is dialed into. there is no 'lock on' indicator as I didn't really need an extra led. you may want to route the 'lock on' signal to the panel but I decided not to.
one thing of note is that the perf board is powered by 'both ends'; meaning, that the 5v from the lcduino comes in via the firewire and powers the port expander (8574, same as we use for d1/d2 controllers) and half of the led opto chips. the other half of the chip (the transistor part and its pullups) are powered by the s25 in the smallest green board. that also powers the y2 dac and it takes ac input from a rear barrel connector.
so, if there is interest, I can try to make a pcb layout. but this was really more of a proof of concept and a thing I used to test the LCDuino code (in the v1.0 shipping code, there is a mode in the i/o switch called 's-addr' and this is directly used to talk to 'managed dacs' like this). however, I still prefer not to have to hack dacs internally and instead, so the switching via a separate front-end box. that box can talk to any dac since its spdif in and spdif out. if you upgrade your dac later, you won't have to re-embed this switch stuff in again. I think its smarter, long term, to keep the boxes and functions separate. but, just to show it could be done, here is the managed y2 dac with the circuit embedded and the firewire connector there for remote management.