Tuesday, July 4, 2017

Krell KAV-400xi and B&W 803D3 loaded and unloaded frequency response

Out of curiosity, I tried measuring the frequency response of my Krell KAV-400xi loaded/unloaded with B&W 803D3 to get some sense of its output impedance relative to the speaker's impedance over frequencies.

The following plots show voltage measured at the speaker end of the cable in unloaded/loaded conditions.  Since the speaker has separate binding posts for HF and LF, I could also take partially loaded measurements.  Fluke 187, which claims to have bandwidth of 100 kHz for AC RMS, was used for measurements.  I do not have fancy equipment.  Since the amplitude is very small to compared with the amp's full scale, I believe distortion components are negligible and do not contribute to RMS values.


When unloaded (blue curve), the amplifier shows a fairly flat frequency response.  The high-frequency roll off may belong to the multimeter or the source (not sure).  However, once loaded with the speaker, what a roller coaster ride!  Over frequencies the amplitude swings by about 1 dB.  1 dB of amplitude difference is clearly audible.

The conclusion I can draw here is that the output impedance of the amplifier is somewhat comparable to that of the speaker.  To see which one is changing so much over frequencies, I need to repeat the same measurement with a dummy load whose impedance doesn't change over the frequencies of interest.  It would be also of interest to repeat the measurements with a fancy amp, but I currently do not own one.

Also, I tried measuring at the amp and speaker end to see if there is any measurable difference.  The speaker cable used here is Canare 4S11 in biwire configuration.   The LF side was measured on the speaker side.


Some drop over the cable is visible.  I performed the measurements on both L & R channels and saw very similar responses.

To be continued with a dummy load...
Review of the amplifier by Stereophile (Fig. 1) shows that the output amplitudes at 8 ohm and 4 ohm loads are fairly uniformly apart by 0.25 dB up to around 10 kHz.  This implies that the output impedance is real (as opposed to complex) and about 0.24 Ohm (which means damping factor of 33 w.r.t. 8 Ohms).  If the speaker impedance was also real, I would be able to compute the speaker impedance, but it is usually it is very complex.  Interestingly, impedance measurement of 802D3 (Fig. 1) (not 803D3) shows that the speaker impedance bottoms between 100 Hz and 1 kHz and peaks at 3 kHz.  That trend is pretty well agreeing with my measurement of the 803D3.

I believe the impedance roughness is the reason why people say it's not easy to drive B&W 800 series.  If gain flatness measured at the speaker's binding post is what's important, low impedance has to be maintained over frequencies including the cable.  This calls for a lot of feedback, beefy output stage, class D, or some technique I am not aware of.  I am interested to know whether B&W designed the speaker assuming an ideal amplifier with no loading effect or used some kind of average amplifier model for tuning.

Monday, November 28, 2016

IR receiver + IR transmitter + RTC for Raspberry Pi

I needed an IR receiver for my Raspberry Pi which I use as an internet TV receiver with some custom program.  As expected, I could not find any IR receiver module that fits nicely in my favorite simple & discreet Rasperry Pi case which only exposes all connectors and GPIO.  A USB adapter was an option, but I did not want anything sticking out of the pi.  Solution: make my own.

The board is shaped so it fits nicely in the case.   Since there was plenty of board space left, I also put an IR transmitter and RTC (DS1308U)+battery in addition to the IR receiver.  The IR receiver and transmitter are connected to the standard LIRC GPIOs (GPIO18 for receiver and GPIO17 for transmitter).  The RTC is connected to the I2C bus, and is compatible with the DS1307 driver which is included in the current Raspibian Kernel.   All GPIOs used on this board belong to the upper 12 pins of the GPIO header so a 12-pin female connector can be used instead of a full 40 pin (SMT 40-pin female connectors are really pricey!)



  

  

The PCB is available here.

A low-power battery-operated 2-to-1 stereo combiner

I was shopping for a simple compact device which simply combines two stereo inputs into one, but couldn't find such a thing.  There are a bunch of products with fancy mixing and such, but I am not interested in those.  Long-life battery operation was another thing I was looking for.  My solution turned out to be making my own.

This is just a couple of text-book inverting amplifiers with AC coupling on both inputs and output sides to minimize DC current draw from the battery.  This way, DC current draw from the battery consists of just the opamps and the voltage divider for common mode generation.  Total DC current draw should not exceed 21 uA.  Optimistic battery life expectation is 220 mAh (from CR2032)  / 21 uA  = 416 days which of course depends on the actual usage of the device.





The PCB can be ordered at https://oshpark.com/shared_projects/KPojBfKX (I do not make any money).


Monday, August 8, 2016

Improving TX3 Pro Amlogic S905X Android box's IR remote sensitivity

TX3 Pro is a decent and affordable Android box based on Amlogic S905X.  Unlike many other cheap Android boxes, this box does have an window for the IR receiver.  Its IR sensitivity turned out to be indeed better than Tronsmart S95 Pro's, which is horrible due to the poor IR transmission of the body and lack of IR receiving window (you can drill a hole and replace the receiver with a decent one).  However, it is still not as good as I expected.  For example, it cannot detect IR reflection from the ceiling, which decent IR receivers with a proper window can handle.

I tried to align the IR receiver with the window as much as possible, but no noticeable improvement was seen.  So, I replaced the IR receiver with Vishay TSOP34438, which is pin compatible with the original. The legs of the receiver need to be bent so the receiving dome touches the IR window when the board is mounted on the case.  Now I can point the remote at the ceiling and the box still recognizes the signal with no problem - SUCCESS.

By the way, the IR remote control can be easily customized by editing /system/etc/remote.conf which has a mapping table from IR code to Linux key code (not Android key code!).  Here is a nice Linux key code table along with Android key code.  If remote.conf keeps being overwritten by the default one at reboot, make it readonly with chmod so it won't be overwritten.

IR window

Motherboard with the new IR receiver

New IR receiver

 
Original IR receiver



Wednesday, July 8, 2015

HAP-Z1ES PCM1795 Register Settings

I measured the serial configuration interface of the PCM1795.  The following register settings were found in the DSD mode (for both DSD source and DSD remastering).  DMF[1:0] = Reg18[4:3] = 01, so DSD Filter-2 is used for the analog FIR.  In addition to the on-chip FIR filtering, there is additional first-order FIR filtering (1+z^{-1}) realized by connecting two current outputs together with one input delayed by one sample.  

Reg16 = 0xff
Reg17 = 0xff
Reg18 = 0x54
Reg19 = 0x00
Reg20 = 0x20
Reg21 = 0x00
Reg22 = 0x00
Reg23 = 0x00




Saturday, January 25, 2014

Slingbox 350 teardown


I'm glad that the infamous G-Luxon electrolytic capacitors are no longer used in these new Slingboxes.  The video decoder chip below the third RCA connector from the right is Analog Devices ADV7181C, which does not claim to support 1080p.

Friday, September 23, 2011

Boeing 777-style CPDLC/ACARS chime

I couldn't find any clean Boeing 777-style CPDLC/ACARS chime on the web, so I tried making one with Matlab.  What I made is a 0.49-s 1150-Hz sinusoide followed by a 0.60-s 580-Hz sinusoid with some amplitude modulation.  This is pretty much a D-D with one octave separation.  I am not sure about the fidelity of the sound but it shouldn't be too bad.

acars.wav

For iPhone email notification:
new-mail.caf

A = 0.25;

T1 = 0.49;
T2 = 0.60;

Tr1 = 0.04;
Tr2 = 0.04;

f1 = 1150;
f2 = 580;

fs = 44100;

t1 = 0:1/fs:T1;
t2 = 0:1/fs:T2;

% base
y1 = A * sin(2*pi*f1*t1);
y2 = A * sin(2*pi*f2*t2);

% Envelope
k1 = 1:round(fs*Tr1);
k2 = round(fs*Tr1)+1:round(fs*T1);

y1(k1) = y1(k1) .* fliplr(sqrt(1-(k1/k1(end)).^2));
y1(k2) = y1(k2).* fliplr(k2-k2(1))/length(k2);

k1 = 1:round(fs*Tr2);
k2 = round(fs*Tr2)+1:round(fs*T2);

y2(k1) = y2(k1) .* fliplr(sqrt(1-(k1/k1(end)).^2));
y2(k2) = y2(k2).* fliplr(k2-k2(1))/length(k2);

% Concatenate
y = [y1 y2];

sound(y, fs);