AUDIO MEASURING SYSTEM BASED ON HP 8903A
This is a project that brings together a few long-term plans of mine and (I hope) combines them into a useful system for measuring audio devices.
The key components are:
HP 8903A – a mainly analogue Audio Analyser introduced in 1980. HP can describe it in their own words: https://www.hpl.hp.com/hpjournal/pdfs/IssuePDFs/1980-08.pdf
HP 3488A – switch control unit with two with a 44472A VHF switch module. This is optional (and if you don’t have one could be hard to find). It’s useful because it can be used to connect the single channel 8903A to two channel stereo test devices and also provide a switchable loop back for automatic level/frequency calibration.
My own USB to GPIB interface board. You could use a Prologix GPIB-USB controller but I wanted to do my own with modern components and an open architecture.
PC software, written using Xojo (formerly Real Basic), and development on Linux (Mint).
This slightly odd collection of parts is based on what I have available, and the need for a suitable project to progress my planned switch from Windows to Linux. For me Xojo is the most promising multi platform replacement for Microsoft VB6 – so the code should run on Linux (including R Pi), Windows or Mac.
Plots (on screen and exportable .csv or .png)
Amplitude (or gain) / Frequency
Distortion / Frequency (with optional amplitude stepping)
Distortion / Amplitude (with optional frequency stepping)
Load control via HP 3488A and an additional interface box.
8903A – quick fix
I bought this from an online auction a while ago. It was last calibrated in 2004.
When I got it out recently it was working but the distortion on the generated signal was about 0.04% on power up at 1kHz but increased to about 1% (and much higher at low frequencies) as it warmed up.
As the pictures show the 8903 uses plug in boards neatly arranged in a screened box with some internal dividing screens – this makes it very hard to debug without a set of extender boards. I could have bought some (from USA) but it’s going to cost about the same to make my own and I’ll have some spare bare boards left over.
One of the virtues of older HP stuff is the availability of full service manuals (free or quite cheap) for most instruments. The service manual for the 8903A suggests the levelling (amplitude control system) as the likely cause of high distortion in the signal generator. I found a useful YouTube (https://www.youtube.com/watch?v=VyhUfShTe54) where a guy had fixed his by replacing some capacitors. The culprits were precision film caps and I decided to replace C45 (it’s common to all frequencies but the others in the YouTube are not). This was a lucky move and the distortion (measured by looping back) dropped to 0.002% (1kHz, 5V signal).
The oscillator and levelling control board from the 8903A.
C45 is the not exactly fitting part on the left of the pcb.
The now fixed 8903A doing its stuff in a loop back test
USB to GPIB
Almost all of the instruments made by HP between 1970 and 2010 could be remote controlled via the GPIB (aka HPIB or IEEE-488).
Keysight and National Instruments both supply USB to GPIB interfaces at fairly high prices.
A US company, Prologix, supplies a cheaper device based on an Atmel AVR processor and and FTDI USB to virtual comm port chip. This costs about £184 which seems a little steep for £15 worth of bits. It doesn’t use proper bus driver chips.
There are several designs on the web in various states of open sourceness. Mostly they use AVR or PIC processors. The open-source code I’ve seen is fairly horrible.
So I decided to make my own. It isn’t intended to be a commercial product but is designed with tinkering in mind.
It uses proper bus driver chips, has break out connectors so you connect a logic analyser and uses an ST 32G071 ARM M0 processor clocked at 64MHz. ST have done a deal with Keil ARM to make a free version of the Keil ARM tool-set available for this family of chips so you get access to a good tool-set with effective debugging for the cost of a an ST Link interface pod (under £20).
In the picture the board is hooked up (via its debug connectors) to a stand alone logic analyser.
You might wonder at this – doesn’t pretty much every scope comes with a built in logic analyser ?
The price of the scope analysers varies – from almost free on some scopes to £500 on a Picoscope 6000 series, £1000 upwards on Keysight and £++++ on Tek and LeCroy.
None of these can decode GPIB without extra purchases and many can’t do it at all.
For the last few years I’ve been using the built in logic analyser on my LeCroy 610Zi, but alas the LeCroy is dead (available cheap if anyone fancies their chances fixing it) – and I don’t have a GPIB decoder for it anyway.
My new best friend in scopes, is the Pico 6424E, which is my everyday scope. Pico decoders are free – but they don’t have a GPIB decoder.
I bought a Zeroplus Logic Cube (LapC 16128) about 8 years ago and it had a lot of bundled decoders. Since then they have bundled all their decoders. I dug it out when I started on the code for the GPIB and it worked a treat. It’s a bit limited with only 16 channels and 128k samples of memory but even so it reminded me how relatively grim the scope based analysers are !
So I bought a new LAPC Pro 32064M – 32 channels, 64M samples and USB3 interface – it absolutely blows the socks off any scope analyser that I’ve used or heard of. The decoders (more than 100) are bundled. I paid just under £1000 for it - and I am so regretting all the time I’ve wasted in the last few years debugging FPGA s with a £20k+ scope/logic analyser combo.
Ever since about 1997 I’ve been writing code for PCs to control things using Visual Basic. Not VB.net but the the original. Microsoft dumped VB6 in favour of the .net horror in about 2000. It’s still the quickest way to write a nice simple GUI type Windows application, such as you might write for this project. But now it’s just too old and too many things have moved on.
For me the big change is that Microsoft are morphing into an organisation that I don’t want deal with - happy to rant about it for as long as anyone wants to listen but this isn’t the place.
So I want a multi-platform dev tool where I can write code on a Linux machine and expect it to run on Windows or Macs.
Xojo (which sprang from Real Basic) fits the bill – it’s not exactly what I want but it’s as close as I think I’m going to get.
The screenshot shows the beginnings of the Audio measuring prog.
I was looking for a Hyperterminal type programme to run on Linux to talk to my GPIB interfaces. I tried a few things and didn’t like them – then I found CoolTerm. It does what I want, and too my surprise it’s written in Xojo !
Screenshot of the embryo Xojo programme asking the 8903A for the distortion.
Lots of code to get the system to work.
I would have posted this in the old Audio or Analogue groups - I've put it here because I couldn't hink of a group that was more suitable.
The recent headline "Audio Tweaker's Wishlist" was out in Passive Components - which seems a worse fit.
If anyone fancies playing with the GPIB board I can probably be persuaded to part with a board with the (hard to hand solder) processor and FTDI chip fitted.
All comments welcome.