Djuke - DIY Audio

build your own audio equipment

  • Increase font size
  • Default font size
  • Decrease font size
Dutch customers can pay using iDEAL


Print PDF


This project is obsolete, an updated V2 version of this project can be found on the PreamplifierV2 project page

After building a poweramp, the weakest link in my audio system turned out to be my Harman Kardonn AVR330 receiver, with a specified (and measured) Total Harmonic Distortion of 0.07 %. I decided to start building a 5.1 preamplifier. This turned out to be the longest and most complex project I had undertaken and took me almost two years to complete. But at the moment it is already standing in my living room for half a year and I am very pleased with the result.

Related work

The first idea of building a preamp was made after reading an article in Elektor. It describes a stereo preamp, based on BurrBrown's PGA2311 volume control chip:

Ben Hinrich's Preamp

On the internet, some other interesting  web sites have inspired me in building this preamp:

Mark Hennessy's 5.1 Hi-Fi Preamp

Suzy Jackson's Stereo Preamp


The PreAmplifier has lots of inputs and outputs:

  • 7 analog inputs (6x stereo, 1x 5.1)
  • 4 digital inputs (1x optical, 3x coaxial)
  • 2 monitor outputs (stereo)
  • 1 variable output (5.1)

The preamplifier should have:

  • Large volume range (-80dB to +20dB)
  • Very low distortion (< 0.001%) from 20-20kHz @ 0dB
  • Large SNR ratio (> 100dB ) @ 0dB
  • Convenient user interface (remote control, buttons, leds, display, encoder)

This resulted in the following components

  • VFD module for information (chosen input, volume, etc)
  • Texas Instruments PGA2311 stereo volume control chip (3x for 6 channels)
  • Main control board using PIC18F452 microcontroller
  • Separate digital/analog supply
The different components and the signal flow are shown in the figure below.

PreAmplifier components

User Interface

The front panel is equipped with 5 push buttons, 2 leds, an IR-receiver for remote control, a rotary encoder for volume adjustment and a 20x2 VFD display. The leds are a standby led and a power led. Using the power button on the left, the preamp can be switched from standby to normal operation and vice versa.

Front panel

The preamplifier has a modular design, with the following pcb's:

Control pcb

The heart of the preamp is a PIC18F452 microprocessor. This control board controls the display, various leds, relays, the PGA2311 chip and the other pcb's. It receives its input from the buttons, rotary encoder and IR receiver.

Control pcb

Input selection pcb

This pcb has 8 miniature relays to select  the chosen input, 7 of them are available for analog inputs, 1 comes from the DAC pcb. Each relay is controlled with a BC547 transistor.

Input selection pcb

Volume pcb

The preamp contains 3 similar volume pcb's. The first one is used for the Front left and Front right channel. The output of the relay pcb is buffered using a NE5532 opamp to the 2 fixed outputs. It is also buffered using an OPA2134 opamp to the PGA2311PA volume control chip. The PIC18F452 controller uses the 3-wire hardware SPI function to control the volume. Furthermore, there are two outputs to control a Mute relay and the software mute function of the PGA2311 to prevent startup and powerdown clicks and thumps.

Volume pcb

Hafler pcb

This pcb is used to create virtual surround for the surround/center/bass channels from the stereo channels. The difference of the front channels goes to the surround channels, the sum of the front channels goes to the center/bass channels. Using an output of the PIC18F452 you can select whether to use the Hafler virtual surround or pass the surround/center/bass inputs directly to the volume pcb.

Hafler pcb

DAC pcb

I purchased and modified a cheap DAC kit from Hong-Kong. This pcb was not designed by me, but I consider it a valuable add-on to the preamp, because it adds the convenience of digital inputs to the preamplifier. Besides that, it sounds great! I modified the pcb and added 2 more coaxial inputs, giving a total of 4 digital inputs, which are selectable using 2 outputs of the PIC18F452. More information on the board and the modifications can be found in a separate article.

Digital supply

A separate 10VA transformer is used for the supply of the digital electronics.

Analog supply

A separate 10VA transformer is used for the supply of the analog signal paths.

DAC supply

The DAC kit had a separate transformer and regulator pcb. There was some room left in the preamp, so I mounted it.


Because I was familiar with C/C++ programming, I tried to find a C compiler for the PIC micro-controller. There are a couple of commercial variants available, but the SDCC (small device c-compiler) was used. It was the only free and unrestricted C-compiler for PIC micro controllers. Only drawback was a quite steep learning curve, as there are not a lot of programming examples available. Fortunately the PikLab IDE integrates well with SDCC, so after a couple of simple programs to switch some LED's on and off the real programming work was started.

In the software, the following features are implemented on hardware-level:

  • Reading buttons
  • Setting output led's and various relays
  • Encoder reading
  • Infrared sensor reading and RC5 code extracting
  • PGA2311 volume control using the PIC Hardware SPI function
  • VFD display control
  • reading from and writing to EEPROM

On a higher preamp-level the following functions exist:

  • Input offset can be set per input, between -9.5dB and +9.5dB in steps of 0.5dB
  • Channel offset can be set per channel, between -9.5dB and +9.5dB in steps of 0.5dB
  • Input can be enabled/disabled to prevent showing it in main view
  • Name can be selected from a list per input
  • The settings are read from EEPROM (if checksum check failes, default settings are loaded) on startup and saved when going to standby mode (only when settings have changed)
  • etc


Measurements are performed with Rightmark Audio Analyser using an E-mu 1212m sound card, which is about the best you can get for audio measurements. Results of a loopback test @ 48kHz (soundcard analog out -> analog in) with this card can be found here.

Stereo channels

Measurements are done @ 48kHz. Amplification is set to 0dB.  Measurement summary:

Frequency response (from 40 Hz to 15 kHz), dB
+0.02, -0.14
Very good
Noise level, dB (A)
Dynamic range, dB (A)
THD, %
THD + Noise, dB (A)
IMD + Noise, %
Stereo crosstalk, dB
IMD at 10 kHz, %
General performance

RMAA results of the complete test can be found here. Comparing the stereo channels with the E-mu loopback test shows no major differences, so the performance of this pre-amplifier is so good that it is hard to measure.

Surround channels

Amplification is set to 0dB. Measurement summary:

RMAA results can be found here. Similar results as for the stereo channels.

Center/bass channels

Amplification is set to 0dB. RMAA results can be found here. Similar results as for the stereo channels.

Monitor/LineOut channels

RMAA results can be found here. Similar results as for the stereo channels.



The above-mentioned channels are compared, measurement summary:

Test DjukePreamp Ch1+2 DjukePreamp Ch3+4 DjukePreamp Ch5+6 DjukePreamp AnalogOut
Frequency response (from 40 Hz to 15 kHz), dB: +0.02, -0.14 +0.02, -0.14 +0.02, -0.14 +0.02, -0.10
Noise level, dB (A): -112.7 -113.1 -112.8 -113.3
Dynamic range, dB (A): 112.8 113.1 112.7 113.2
THD, %: 0.0006 0.0006 0.0006 0.0004
IMD + Noise, %: 0.0015 0.0015 0.0015 0.0014
Stereo crosstalk, dB: -104.0 -112.3 -111.8 -104.3

Complete results can be found here. The comparison shows similar results for both distortion and noise level. Only the stereo crosstalk for the front channels is a little bit worse, which is caused by the Hafler pcb.


Measurements have been performed also at 96kHz, with the soundcard connected to Preamp DAC using optical out. Then measurements are done while connecting to the soundcard analog inputs:

- output of the DAC

- output of the FrontOut channels, with volume set at 0dB (no amplification)

- output of the LineOut channels


Test DjukePreamp DAC DjukePreamp FrontOut DjukePreamp LineOut
Frequency response (from 40 Hz to 15 kHz), dB: +0.04, -0.37 +0.05, -0.41 +0.04, -0.37
Noise level, dB (A): -104.7 -104.4 -104.6
Dynamic range, dB (A): 104.8 104.4 104.6
THD, %: 0.0003 0.0005 0.0003
IMD + Noise, %: 0.0017 0.0022 0.0018
Stereo crosstalk, dB: -98.9 -100.9 -101.1

Complete results can be found here. Compared to the 48kHz reults, the soundcard optical output is used in combination with the DAC resulting in even lower THD. Noise figures seem to be worse, but this is a result of different volume settings for the sound card. Nice to see is that the LineOut (with NE5534N opamp) adds effectively no (measurable) distortion and the FrontOut channels (with OPA2134 input buffer and PGA2311PA) gives only a slight increase in distortion.

Last Updated on Sunday, 26 January 2014 14:28  

Why Djuke - DIY Audio?

  • High quality designs & products
  • Fast delivery
  • Worldwide shipping with TNT
  • Weight-dependent S&H costs
  • S/H below 0.25kg: NL 2,50 EU 4,50 World 5,50
  • No VAT charged outside EU


Shopping Cart

Your Cart is currently empty.

List All Products

Advanced Search

Copyright © 2017 Djuke - DIY Audio. All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.