In my youth (1986), there was the introduction of a CD player that caught my imagination. Being a Technics fan, I immediately liked it a lot. Because it was a professional player, it had features I could only dream about. Like cue-ing, fader start, jog shuttle, very fast start/stop and track select, etc.
I saw it mentioned in magazines and I knew I was never going to own one, and that I was probably never even going to get near one. It was a bit like I also thought I would never get near a Studer tape machine, let alone own one. But here we are, I have 4 Studers now.
Fast forward to 2026, and I looking at interesting stuff on a Japanese auction site. There were actually a fair amount of these players being offered, and I decided to bid on one that was a little bit cheaper than the rest that were on sale. I’m Dutch, you know. The description said it would turn on, but wouldn’t play a CD. The display worked.

So I took a gamble and my bid was accepted. From then it was about 1,5 week until it was delivered to me. Quite fast I think. Shipping (this is a heavy beast) and customs added a lot to the price, but that is to be expected when using this route to buy gear.
I forgot to say that it, being a Japanese model, it was running on 100 Volt. But I am the lucky owner of a Variac, so making 100 V out of our 230 V is no problem and the device also supports 50 Hz!
When I turned it on, the disc was moving a little bit, but not enough. But it seemed the motor was ok. I dismantled the mechanism and found 2 small SMD caps on the motor control board and one of them was bad. I replaced the caps with a ‘normal’ one and after that, the disc spun and the player could read the TOC! I also cleaned the lens and relubricated the rails for the laser pickup.

I tested some electrolytic caps on the main board and on the audio board, but they are a kind of special type that apparently doesn’t go bad over time, because I didn’t find a bad one. So I decided to leave them alone. At least for now.
I took apart the volume slider pot for the headphone, because it was crackly but after cleaning it is not crackly anymore. I also treated the jogshuttle potentiometer.

I did however have a problem with the lid switch. It needs to make good contact when the lid is closed, otherwise the player stops playing. I did some tweaking and now it is working fine.
Operating this device is a real pleasure. There is always something deeply satisfying when you are operating professional gear that is made for heavy use. The touch and feel of the buttons is extraordinary nice and it reacts instantly. I can absolutely see why it was so popular in broadcast studios.

This player has a double power supply and uses Technics Class AA technique to achieve the best sound possible.
And it sound amazing too. Apparently these dual PCM54HP-M Burr-Brown DACs are very, very good! I need to listen to my entire CD collection again thought this player……
Here are the specs:
| Number of channels | 2 (stereo) |
| Frequency response | 4 ~ 20,000Hz, ±0.1dB |
| S/N ratio | 106dB |
| Dynamic range | 96dB |
| Harmonic distortion | 0.0012% (1kHz, 0dB)* |
| Total harmonic distortion | 0.0025% (1kHz) |
| Channel separation | 106dB (1kHz) |
| Wow & flutter | Unmeasurable |
| Low-pass filter | High Resolution Digital Filter |
| Pitch control | ±8% |
| Sampling frequency | 44.1kHz |
| Error correction | Technics Super Decoding Algorithm |
| Decoding | 16-bit linear |
| Type | FF1 (Fine Focus 1-beam) |
| Beam source | Semiconductor laser |
| Wavelength | 780nm |
| Spindle motor | Brushless DD motor |
| System | High Speed Linear Motor Access System |
| Power supply | AC 220V, 50Hz (Cont. Europe); AC 240V, 50Hz (U.K.); **AC 110/127/220/240V, 50/60Hz (other) |
| Power consumption | 32W |
| Output voltage | 2.0V (0dB) |
| Output impedance | 200Ω |
| Load impedance | 20kΩ |
| Headphone output level | Max. 100mW (32Ω) |
| Dimensions (W x H x D) | 430 x 168 x 380mm |
| Weight | 14.5kg (32.0 lb) |
| Automatic play | Entire disc |
| Repeat | Entire disc, single track, programmed tracks |
| Program capability | Max. 20-selection random access programmability (track) |
| Cueing | Direct access (track, time, index). 2-speed manual search with cueing sound, track, skip, programmable music scan, auto cue |
| Display | Total number of tracks, total playing time, programmed tracks, track in play, elapsed track time, total elapsed time, remaining track time, total remaining playing time, index number, preset start point (time), output level attenuation |
| Control keys | Play, pause, stop, open, clear, memory, recall, repeat, 10 number, key, index, rocking/search, skip, auto-space, auto-cue (on/off), dial search (on/off), search speed (slow/fast), pitch control (on/off), time mode, time recall, (remote control only: search, music scan, digital attenuator) |






















































.jpg)












































This model was on my list of decks that I always wanted to own. It is a very good sounding deck, and received wonderful reviews in it’s days. It was compared once to a Philips N4520 and a Teac X-2000R in a magazine article and it came out 1st in some of the sections. I can not find the article at the moment, if I find it I will post the link here.







Hi, I would love to try out your 8903B py software. Your help file specifies very carefully py version and lib versions. I have a lot of SW experience, so I feel that I can beat it into submission.
I have built pete millet jonokuchi headphone amp, a 2nd with boutique transformers, sangaku headphone nutube amp, his mighty midget, 26a7 preamp. Working on his engineers EL84 amp.
Also built a tubelab TSE with 2a3 tubes.
I have an 8903B and usb interface and would love to get measurements going on all these amps.
Thanks, C
Hello Curtis,
I have created a codeberg GIT repository. I have uploaded all the files there. It works very well, but since I run a rolling distribution (openSUSE tumbleweed) The GPIB driver breaks a lot. Every time I get a new kernel, about once a week. But there is now built-in DKMS support so that the GPIB will be rebuild after each update. But check in often, it is still being ‘perfected’ so whenever there is an update, I push the new files. Also after you have ‘git cloned’ the repository, be sure to check out the README and the help files.
You can find the git repository here:
Thanks,
If you could change my display name to “Curtis H”, that would be great.
I am very interested in getting this going as well, however I am using a standard PCI type interface, which is working on Pete Millets software in windows, but I cannot seem to get your version working unfortunately. I have tried it in linux as well, but as you mentioned there are so many variables. I would like to get it working on linux preferably, windows would be acceptable because I have other test equipment hooked to the same GPIB interface on it anyway.
A brilliant open-source solution! Moving away from legacy Windows dependencies to a clean Python-based architecture is a pro-move. As an Electrical Engineering student at Telkom University Surabaya, I really appreciate your effort in making this instrumentation data accessible and extensible.
Thank you for your kind words!
-Philip
hello sir,
First of all, a very nice and neat GUI.
I tried the script under Windows 10 with a PCI NI488-2 card, but it did not work well.
So I rewrote the script a bit, the interface for Windows and I must say it works perfectly.
But one question, have you already implemented the filters?
I work with the HP8903B and I do not have HP filters but a CCITT filter, so it is very possible that there is another command for this.
I would only expect the HP filters to work if you have activated them in the script, otherwise I will continue looking.
Greetings,
Henk,
Hello Henk,
Thank you so much!
I think it’s amazing you got it working under windows.
I have not updated the app, if I would have it would have been pushed to codeberg.
-Philip
Hello Philip,
My question is whether I am doing something wrong with the controls or if the filters in the script are not yet activated?
The keys work, but nothing happens on my instrument yet; I currently have the B version and a CCITT filter instead of the HP filters.
If the filters are not yet activated, I will see if I can add this to the script.
If you would post my changes—the complete script for Windows 10—along with your script for Linux, I will send it to you so that everything remains organized together.
Regards,
Henk.
Hello Henk,
Are you talking about the high pass 400 Hz and the low pass 30/80 kHz filters?
I do believe this functionality works on my machine with the app. It has been a while. I can not verify it atm.
And yes, I would like to eventually include your script in the codeberg repo when it is working, with the proper credits of course!
-Philip