I bought an XMS amplifier from a friend years ago and although it was serving it's purpose I got quite frustrated with having to toggle the loudness feature every time the input was changed. This was the beginning of what has now become my network enabled amplifier. Initially, I had set out to automatically toggle the loudness feature permanently on when the amplifier's input was switched so I bought a USB-UIRT so that I could use it (via infrared) to change the amplifier input and then toggle the loudness feature in one single command. I entertained the fact that I could perhaps trigger the command from a computer / mouse click etc. Then I opened the amplifier and to my delight found the main audio processor / mixer to be an i2c enabled 4-channel PT2314! This was a game changer since now, not only was I able to do as I originally wanted, I could now take total control of the amplifier via i2c and simply remove the original control board and display altogether. A Raspberry Pi was a natural choice for the project since it natively supports i2c and doesn't need more than a USB WiFi dongle to allow it to be networked enabled.
The main i2c control software is written in Python and uses separate threads for updating the 16x2 LCD and gaining positional information from the rotary encoder used for volume control (salvaged from the original control board). The excellent Python Twisted web server is used to act as a REST server that responds with JSON. There is also a HTML page served on port 80 that anyone connected to the local network can use to control the amplifier. This was the first major milestone, I had network control of my amplifier!
Adding a radio to the list of features was next, this consisted of a Si470x i2c radio module. The addition of this module was relatively simple with the Raspberry Pi but for some reason, the two i2c devices were not playing nice with each other. I researched the fact that the PT2314 was being logic level converted to 5v (from 3.3v) while the radio module was not. In the end I ended up enabling the second i2c port on the RPi (which btw disables the use of the RPI's native camera slot) and thus kept the two totally separate from one another. As with the music player (MPD) addition, the analog output of the radio module is connected to yet another input of the original amplifier. This overall has been one of the best features added yet as I switch to radio all the time during TV ad breaks.
The latest feature added was to connect the last original amplifier audio input to a standard RCA to 3.5mm stereo cable that is used as an Auxiliary. Adding this was trivial compared to the other more complicated features already added. Friends that come over can now easily connect their audio source to the main speakers.
From the electronic side, as mentioned above the PT2314 is coupled to the...
Read more »