Sony MXP 3000 DOA Mic Preamp

The Journey to make a 312 Microphone Preamp for the Sony MXP 3000 Series Console

Sony MXP 3000
The Sony MXP 3000 series console the mic preamp was designed to fit into.


This console came with the ability to have stereo microphone preamplifiers on each channel, even thought the channels are mono. When my boss had scrapped out a previous Sony MXP 3000 he kept all of the modules from that console, which had these dual microphone preamp. The only issue was that nearly all of them had faulty potentiometers, which are extremely difficult to find and replace. So this lead me to the idea of making a 312 like mic preamp because we have ~20 of the Jensen JT-115K-E.

Circuit and Initial Design

I had captured the schematic for a full 312 a wile back when I was first starting to work on this idea over a year ago, but I stopped due to not having transformers that I wanted to use. As well I was unsure how Paul Wolf had used the output transformer exactly in his design. So when I had to come up with a new project for the PCB design class I was taking at Pasadena City College I thought it was the prefect opportunity to make some of these mic preamps for our Sony MXP 3000.  I removed the output transformer as well as the pad and phantom power. This was due to single sided boards that we were using on the Othermill.  And finally the board had to shrink in length.

API 312 Schematic for Sony MXP 3000
The schematic for the 312 mic pre

Milling out the PCB

Just making sure I had the correct dimensions for the PCB width, edge connector, as well as the discrete op amp.

When I first built the mic pre, there were a few issues that I found. First I had the capacitor, that is part of the shunt circuity in the wrong place. It was above the potentiometer instead of following it so that is the red wire that you can see. The second issue that I has was that there was very little gain from the preamp. This was because I had gotten the position of the feedback and shunt resistors in the wrong position. But, once I figured that out preamp came to life.

Just another view of the prototype without the discrete opamp

For the initial testing we are using the Gar2520 opamp kits from CAPI.

PCC Othermill prototype
The is the first fully assembled prototype that was made on the OtherMill at Pasadena City College


Below is a graph showing the frequency response of the my preamp versus the stock transformer coupled mic preamp that came with the Sony MXP 3000. The blue trace is the stock Sony MXP 3000 transformer coupled mic preamp you can see the the transformer is boosting some of the high frequencies that the unit I built is not, I believe that this is due to the zobel network that I have to dampen the transformer.



After fixing a the issues that I found with building the Othermill PCB I changed those and added back the phantom power and pad circuitry. Now I was ready to order the PCBs, for this set of prototypes I order the boards from Bay Area Circuits.  

Here is the assembled Rev A PCB. Again there were a few issues that came to light mainly around the pad circuity, the resistors are very close to the switch so I had to mount the switch off the PCB slightly. Secondly, the pot works in the reverse manner. Both of these issues I have addressed in the Rev B schematic.

This is the assembled PCB form Bay Area Circuits

This past weekend I did a session at AEA and got to try out two of the mic preamps. They sound much better than the stock IC transformer-less that the Sony MXP 3000 has. And, just as good as the transformer coupled mic preamps that we already have.

Side by side comparison between the prototype and the Rev A PCB
Inserting the new preamp into on of the Sony MXP 3000 channel strips

Going Forward

Now that I have done some initial listening test and some measurements it is time for the Rev B PCB. One of the things that I am contemplating about doing is adding a DC servo to the design. If you noticed in the Rev A design I do not have a coupling capacitor on the output to block DC offset. Granted at this time I have not measured the output to see if there is a major offset. Adding the servo does add more complexity to the design but I think it may be a better choice over a coupling capacitor.  I plan on adding both and listening to how they preform.

Adding a DC servo to the 312 mic preamp to avoid the DC blocking capacitor.

Arduino 1176 Compressor

For the embedded electronics class I am currently taking at Pasadena City College PCC, I am working on building a arduino controlled 1176 compressor. Well mostly an 1176. The gain reductions section is a duplicate of the 1176. The output section is going to be a 2520 DOA. In order to get a very fast attack time instead of sampling the audio and looking for it to go over a threshold, I am doing it by using an interrupt that is triggered by a comparator.

Here is the case design as of last weekend, I still need to add a few controls.

micro 1176

Here is the gain reduction section PCB that I ordered from OSHPark.

Screenshot 2016-04-06 17.29.37

Neopixel VU Meter

Adafruit Neopixels

And so it begins, this is part of a project that I am starting that is a embedded 1176 like compressor. I wanted to start off with the easy part and play around with this neopixles from Adafruit they can be found here Adafruit Neopixels. Heres what I came up with so far.



#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#define PIN 6
Adafruit_NeoPixel strip = Adafruit_NeoPixel(8, PIN, NEO_GRB + NEO_KHZ800);
int ammount=0;

void setup() {
strip.begin();; // Initialize all pixels to ‘off’

void loop() {

//int brightness=analogRead(A0); //Variable Brightness
//brightness = map(brightness, 0, 1023, 0, 50);

ammount = analogRead(A0);
ammount =map(ammount,0,1023,0,8);

if (ammount <4){
colorWipe(strip.Color(0, 150, 0), 1); // Red
colorWipe(strip.Color(0, 0, 0, 255), 1); // White RGBW

if (ammount <6){
colorWipe(strip.Color(75, 75, 0), 1); // Red
colorWipe(strip.Color(0, 0, 0, 255), 1); // White RGBW

if (ammount >=6){
colorWipe(strip.Color(75, 0, 0), 1); // Red
colorWipe(strip.Color(0, 0, 0, 255), 1); // White RGBW

void colorWipe(uint32_t c, uint8_t wait) {
for(uint16_t i=0; i<ammount; i++) {
strip.setPixelColor(i, c);;

More to come!

Arduino DC Load

This is a project that I am working on for class a Pasadena City College as well as for AEA Ribbon Mics. The class is an introduction to micro-controllers and is based around the Arduino. For this midterm project I wanted to build a DC load that would ramp up the current draw on the positive and negative voltage rail and be able to read the current draw and read the voltage. For the most part this project is working.


Here is a few slides describing more of the scope of the project:

PWM Presentation


Here it is in action on the positive voltage rail.


Here is the code if you want to check it out:



More to come later on this project!

Arduino Voltage Average With Arrays

So I needed to make a program that would average four values that are present at the analog input.

This is what I came up with

Screenshot 2016-03-09 21.29.28

I wanted something that could easily scale if I wanted to sample more then twice and average the value, so that is why I did this with an array. When the code runs it samples the value at A0 four times and sticks that into the array, then it prints the values in the serial monitor. This is followed by the averageValue function that reads the values in the array adds them together and then divides the total.

Below is the file that has this Arduino code snippet, I hope to continue to develop more of these code snippets and upload them.