CPU for PGA2311 Preamp

This project provides an Arduino-compatible CPU board replacement for controlling those reasonably-priced PGA2311 preamp kits.  The board combines the CPU (mega328 with Arduino bootloader), the LCD display, a port extender and IR receiver, using the same form-factor as the original PGA2311 kit CPU. The board is shown below. It’s a compact solution that allows using the nice chassis for other projects, or adding more circuitry and functionality to the preamp. This board also has an FTDI USB receiver, so you can write code for the PC using the .NET FTDI drivers and send commands and data to this board.

Click the image to open in full size.

This board was used along with the PGA2311 preamp board to make a volume-compensated A/B speaker switchbox. The familiar Arduino IDE makes the code easy to modify, and since the CPU has an I2C port a few more digital ports available, the chassis can be used for other audio projects. The CPU board was done with DesignSpark.  The design files, including the Gerber output, are at this link.

Click the image to open in full size.

One of the benefits of using the Arduino code is being able to leverage the very good library code. For example, the remote control code from Ken Shirriff allows using just about any remote control you have laying around, and with some simple user interface code you can assign the buttons on the remote to a specific action:

Click the image to open in full size.

The software provides all of the functions of the original CPU board, plus it has code for controlling external relay boxes. But because it uses the Arduino development tools, it is very easy to customize the displays and add new devices for the CPU to control. Also, you aren’t limited to low-contrast LCD displays, as Newhaven makes a nice pin-compatible OLED display. I don’t have a picture of the OLED display, but I’ve used both the green and blue, and both are very nice looking.

Click the image to open in full size.

The software for the Arduino board that I used is at this link.  It’s a starting point–you can write your own, strip out the HCI code for controlling the external relay boxes, or just use this code as a model.  But please understand that I am “done” with this project for now, and I can’t provide any support.  You might be able to get me to answer an easy question or two, but I can’t answer any question that is going to take time to research and think about.

The Legal section

This code is released with an Attribution-NonCommercial-ShareAlike 4.0 International license.  That means you are able to share and adapt for personal use, provided you give appropriate credit.  Commercial use of this code is prohibited, although the author will consider making the code available under a different license for commercial use.