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
Read more »