Many complain about the original LCD of the good old HP 3478A bench DMM and other HP equipment of this era, because of its rather poor readability. So did I.
Quite many projects have solved this issue using different approaches: From adding backlighting to the original LCD, using multiple OLED displays - one for each digit - to replacing the display with Nixie tubes. Despite some of the projects achieving great results I didn’t want to replicate any of those, often because of the complexity/quantity of parts to be soldered, aligned and so on.
I love 19" rack gear, and the little Sansui AU-317 is no exception. With 2 × 50 W into 8 Ω, it is a medium-power integrated amplifier, of course built in the late ’70s like many of the greatest “vintage” amplifiers. Its specs are not bad at all, but there are limitations too. Let’s check it out.
The Agilent E3632A is a programmable linear 120W DC power supply. I got my unit a couple of years back. Since then, I replaced the RIFA caps and the noisy fan. The other day it developed a little issue: The power switch plunger detached from the switch. And now the plunger is inside the unit. Let’s fix that and take one or two pictures along the way…
Many amplifiers use relays in series with the speakers to disconnect the speakers from the amplifiers’ output during power-on and in case of undesireable amplifier states. This includes protection against excessive DC offset on the speaker terminals that may be caused - for example - by a shorted output transistor.
A couple of month past since I restored my Technics SE-9600, but I haven’t shown any measurements yet. This is partly because I didn’t have an audio analyzer when I started the restoration. Now I do, but at the time I took the measurements, my test setup wasn’t good at all, resulting in really high THD+N figures. So you’ll get the THD (without noise) numbers as calculated by the QA403 audio analyzer. Actual results could be better than what is shown.
The main reason for the redesign of the PCBs was the strong smell of the cheap original boards - and I have a feeling that the Meter Circuit Board was particularly smelly, just because of the power resistors that generate a lot of heat. So I had to design a new Meter Circuit Board too.
The next thing to be redesigned are the two so-called Driver Circuit Boards (SUPA2590, SUPA2600). But first let’s have a look at the circuit design that this amplifier is built around.
Caution
Most audio power amplifiers are supplied by an unregulated power supply: A transformer with a center tap, a bridge rectifier and then two large filter capacitors. All the ripple/noise rejection happens inside the amplifier circuit itself. The Technics SE-9600 is a fairly rare exception. Let’s have a look.
The Technics SE-9600 is a high end hifi stereo power amplifier build in the mid to late 70’s - a design about 50 years old. This couldn’t be more obvious: Everything is metal, everything is massive - the chassis, the transformer, the heatsinks, all packed nicely into a 19" inch form factor. And of course it has VU meters with three ranges. Worth mentioning is the input on/off switch - I like that - and the utterly pointless output impedance switch that is capable of making your favorite music sound flat and mushy by reducing the effective damping factor.
Homelabbing is fun, but can get expensive very quickly. Using somewhat older hardware may significantly reduce cost, and more often than not, platforms from just a few years ago handle all the services you throw at them with ease—unless, of course, you’re planning to deploy local AI workloads and the like. That’s why I came up with a simple plan to repurpose my old Ryzen desktop. Sort of… There’s one catch, though: like all 5000X series chips my Ryzen 5 5600X doesn’t come with an iGPU, and keeping an RTX 3070 in there wastes a ton of power even at idle-while it has way too little VRAM to be actually useful for local AI tasks. Never did a lot of gaming either. So I decided to run an experiment: pick up a relatively cheap Ryzen 7 5700G and later sell off both the Ryzen 5 5600X and the RTX 3070. The motherboard on hand is an ASUS ROG STRIX B550-F Gaming (Wi-Fi), powered by a Seasonic PRIME TX 750W. The power supply now is absolutely overkill, but that is what is in there. In its silent mode it should easily power two of the servers without spinning the fan once. This is made possible by its fairly good efficiency, so that’s a plus…
I’ve recently been restoring vintage Hi-Fi equipment, focusing on Technics preamps, integrated amplifiers, and power amps. My first project in this series is a Technics SU-8080 integrated amplifier, which arrived in decent cosmetic condition (and with printed schematics!). However, it was covered in dust like I’d never seen before and suffered from frequent channel dropouts, rendering it unusable.
I haven’t found that much information about the Agilent 6811B AC Power Source/Anaylzer. So I thought: Why not post a few pictures a made during troubleshooting of a problem where the display stayed mostly dark (except for the shift key indicator if I remember correctly, which likely is processed locally somewhere on the front panel board. The issue went away shortly after opening the unit, so for now I couldn’t reproduce it).
There are many advantages of the 1l mini PCs for home server applications: Obviously they are very compact, but more interestingly: The idle power consumption can be almost as low as current Raspberry Pi 5s acchieve, i. e. 5-6W*, all while avoiding many of their limitations**. In many cases the low power consumption is associated with quiet operation, which is especially important if you don’t have access to a dedicated server room in the basement or at least an acoustically isolated closet. Also, used mini PCs are available in large quantities at reasonable prices. This is why there is a ton of information and data out there, covering hardware expandability, compatibility with hardware and software and other aspects of converting mini PCs into capable home servers.
For quite some time I was looking for a rack to mount my 19" HP/Agilent gear in. I haven’t found a single rack that meets all my requirements. Most are too big, too small, too flimsy, too heavy, poorly made, too expensive, lack cooling … or are simply made for a different purpose. Since I already used IKEA LACK tables to put some of my 19" gear on - as a dodgy temporary solution - I thought: Why not build a little rack with those tables? A few screws later, two tables are combined into one ~45 EUR rack on four castors (IKEA RILL, 75mm).
The Technics SU-VX 700 is an integrated audio amplifier from the early nineties. It delivers 2x 90W into 8 Ohms and is specified with a THD of 0.007% (20Hz .. 20kHz, rated power). In my opinion it is one of the better Technics amplifiers. Whereas the sound of an amp is always subjective to a large degree there are some design aspects that are a bit more objective. What I particularly like about the SU-VX 700 is mostly related to its simplicity and repairability:
In order to be able to look at schematics etc. during repair and soldering sessions I recommissioned my old monitor months ago and connected it to my main PC that sits on a seperate bench. That solution kind of worked, but going back and forth between different monitors on different benches was a bit impractical. Also, I wanted to connect all my remotely controllable instruments to a separate computer - until now, I used an old ThinkPad for that.
Although the Programmable Power Resistor re-uses some components, many design ideas and a good portion of the software of the Programmable Decade Resistor (Programmable Precision Resistor), there were many changes and also some improvements regarding some aspects of the mechanical construction and the code.
The Programmable Power Resistor consists of two large boards: The User Interface and Controller Board and the Relay and Interface Board. Because of the use of relays that isolate the input from the circuits, all circuits can be and therefore are earth-referenced.
The HP/Agilent 6632B is a remarkable power supply. There are some similarities with the mobile communication DC source 66309D I “repaired” recently: The 6632B is optimized for a fast transient response and it has a low current range too. But the circuit and its properties differ significantly. One important aspect: Where the 66309D only has a downprogrammer that doesn’t track the current setpoint, the 6632B goes all-in: It’s a two-quadrant power supply - able to source and sink current over the full operating range from 0-20V at 0-5A in CV and CC mode.
In the last post we had a look at a simple topology that allows us to switch between a series and a parallel connection of two resistors:
Now we’ll nest these structures so that we have four resistors:
For the performance checks and calibration of my Agilent 6811B AC Power Source/Analyzer (375VA) I need a 20 Ohm resistor with a ton of power handling capability. The original plan was to mount 8 wire wound 50W resistors on a heat sink and be done with it. Then I thought: Why not reuse all the code I’ve already written for the programmable resistor and build a programmable high power resistor that can complement my DC load for AC applications.
A few days ago I got my hands on a faulty Agilent 66309D Mobile Communication DC Source. To be honest, I don’t think I need it, but it was pretty cheap and I was looking for something to either repair or potentially salvage the case of.
I didn’t really think about the BOM cost of my programmable decade resistor until I was asked. Then I also wanted to know. It is fairly difficult to put a number to what I paid, since I had a lot of components left from other projects that I could use. This includes not only cheap chip resistors and MLCCs, but also connectors etc.
For some time it became more and more difficult to get a click out of the mouse wheel switch of my old Logitech M310 mouse - inconvenient in programs like KiCAD. I also have a newer and “better” M705 mouse, however, using this one seemed to increase fatigue compared with the old M310.
I was asked a few times how I did the front and rear panels, so this is what I’d like to talk about in this blog. There are different ways to achieve a similar result. For me, the easiest and most cost-effective solution was to just design another PCB - I know how KiCAD works and it does everything I need it to do.
After being asked about some aspects of the mechanical design and components used a few times, I’d like to address those questions. I have to admit that I’m neither very good at mechanical design, nor do I have a 3d printeror a workshop where I can do metal work myself. That being said, I was still able to design a reasonably professional looking device and bring it to life with the help of modern prototyping services.
Currently, the unit’s setpoint accuracy isn’t all that great (readback resolution is limited as well, but shows the offset): Regardless of the range it has an offset of about +20 mA. Sure, for a unit capable of 60 A that seems reasonable, and well within its specs of ±0.1% ±75 mA. But since I’ll use it in the low range (6A) most of the time and likely often even well below 1A that doesn’t seem too great, does it?
I recently got my hands on a HP 6060B System DC Electronic Load (later also sold as Agilent 6060B). My unit has option 020 installed: Comically large binding posts also on the front panel. This option certainly is not unheard of, but not too common either. Retrofitting is possible, but can be quite some work.
After the modification described in the previous post I let the the “adjustment”/calibration procedure run again. Five days later I repeated the calibration (not the adjustment). As before, all measurements are performed with an Agilent 34401A 6.5 digit multimeter.
A bit over a decade ago I built a word clock - one of my first microcontroller projects. The project was fairly expensive: It uses a large stainless steel front panel (ca. 39cm x 39cm, laser cut) and a similar sized PCB. Over the years I had to resolder one or two of the RGB LEDs and replace a failed one, but other than that it’s still working as intended.
I went into this project with the thought that it will be a rather small one. This certainly influenced some decisions I made along the way. Now that the project had evolved into a much larger thing than initially anticipated it’s reasonable to have another look at possible optimizations, albiet the calibration results were already pretty satifactory.
In one of the previous I covered in depth, how I use the term “calibration” in the context of the programmable decade resistor and how the calibration procedure works. Today it’s all about the result.
Generally, test and measurement equipment needs a certain period of warm-up time to provide low drift. That is also true for the programmable decade. I’m especially interested in the warm-up time with all relays off as well as with many relays on. I chose a value of 100 kΩ100\text{ k}\Omega for the second test. (For simplicity I decided against using latching relays, however that would be a better choice performance-wise as mentioned before. Due to the additional power dissipation in the relay coils the curves will look different.)
In this post I’ll show a few pictures of the programmable decade resistor in its enclosure.
Inside the unit Mainboard with some powered relays Rear panel: Optional terminals for channel 2, digital inputs, USB, power and fuse Unit with the case closed
The mainboard features the main controller paired with an EEPROM, the resistor decades (precision resistors, signal relays) including two temperature sensors, relay drivers and signal conditioning for the two external digital inputs.
Main controller The main controller is a STM32G441KBT6 microcontroller (170MHz Cortex M4, 128kB Flash, 32kB RAM). The microcontroller features a USB 2.0 device peripheral.
I got my Agilent 6611B AC power source/analyzer a few weeks back, but hadn’t used it as much as I wanted. The reason was simple: The connections are made with rear mounted screw terminals - hence it was just a bit inconvenient to interface with products and circuits. The solution was really simple: A Hammond Manufactoring enclosure equipped with a European " Schuko"-style power outlet and some additional safety-banana jacks for prototyping.
The block diagram provides an overview of the different circuit groups of each functional block, their internal connections and external interfaces. The Programmable Decade Resistor consists of three main functional blocks:
Power supply (Power Supply Board) Programmable decades, control and driver circuits (Mainboard) User Interface (User Interface Board) The power supply board uses an off-the-shelve AC/DC converter to provide a +15V rail. The +15V rail powers the relays on the mainboard as well as a DC/DC converter. A single DC/DC converter generates a +3.3V supply for both the mainboard and the UI board, including the LED display. The power rails are earth-referenced. (Nevertheless, the inputs of the Programmable Decade Resistor are floating thanks to the isolation of the relays.)
Now that we have a calibrated programmable resistance decade, we can try to make the programmable decade resistor more accuracte - for higher resistance values. Actually, the idea behind that is trivial.
I’d like to start with an example in which we set a resistance value of Rset=100.000 kΩR_{set} = 100.000\text{ k}\Omega. (Let’s not worry about temp drift, contact resistance etc.) In my case all resistors have a specified tolerance of 0.1%0.1\%. So we’d expect a resistance somewhere in the range of
While playing with an old Hameg HM504 and the Tektronix 465B oscilloscope that I repaired recently, I thought that I should do yet another mandatory tinker project: Using a microcontroller to write text on an oscilloscope screen via the XYZ-mode. And so I designed a small USB powered board around the STM32G441KBT6 which seems to be my go-to microcontroller nowadays. Its fairly capable dual channel 12-bit DAC (up to 5 MSPS) comes in really handy for generating the x- and y-components. Initially I thought about using a discrete 8-bit R2R network to modulate the brightness with the Z input, but after testing the circuit I finally decided keep it simple and just implement blanking with just a single GPIO output.
In the last post we had a look at the short circuit performance of a decade. This time I want to address the question whether we can make the resistor decade more accurate, despite the fact that the design doesn’t feature any mechanism ( e. g. potentiometer) to adjust resistance values. The short answer: Yes, partially. But first things first.
In the previous posts we discussed the topology selection as well as the power handling capabilities of the decade resistor. Now it’s time to have a look at different aspects of switching. Today it’s all about the effect of the contact resistance of the relays, which impacts the performance of the decade resistor, not only, but especially when a decade is shorted.
For projects like the programmable resistor I was looking for a case, preferably made of aluminum and 19" compatible. In order to save some space on the desk I hoped to find one with a width of 42HP (i. e. half width). What I found was a beautiful case made by ELMA (2 RU, 42HP), called Stylebox 15 Standard.
For a long time I wanted to build an SCPI capable thermometer to keep track of the ambient temperature in my small lab. The list of requirements was fairly short:
Reasonably high precision (Sensor with <= 0.3°C max. uncertainty) Power and SCPI communication over USB Compact enclosure with a display Design After researching temperature sensors I chose a Texas Instruments TMP117M temperature sensor with quite impressive specs. With an accuracy of ±0.1°C (max.) between 25°C to 50°C and ±0.05°C (typ.) between 0°C and 70°C it is much more than good enough for my purpose, but why not overspec the sensor a bit? Because of the tiny package (WSON6, 2mm x 2mm) I was a bit nervous. As it later turned out, soldering the IC using a hot air soldering station was a bit more time consuming than e. g. a typical SOIC package (preparation), but not that difficult.
In the last post we discussed how to calculate the power rating of the programmable decade resistor. We assumed that the decade resistor is made of resistors with the same power rating - in reality this might not be the case. Also, it might be a good thing to derate the resistors a bit. So let’s see what the implications are.
In the last post we worked on some implementation details to consolidate the bill of material while improving the power rating of the decade resistor. However, we didn’t actually analyze the design regarding power dissipation. So let’s get some definitions out of the way (goto Conclusion for tldr):
Many older HP/Agilent instrument share a similar feet design. There are at least two different types though: One with a metal part to prop up the instrument and one without it that can be used on all four corners. The feet can be detached from the instrument, e. g. for use in 19" racks. This also means they got thrown away too often, so that many used instruments come without them. For some time they were available on ebay at a reasonable price.
Almost two years ago I bought a Brymen BM789 Multimeter. And there is a lot to like about it. It has great specs, is feature-packed, feels high-quality and yet it’s well priced. But there are also some mostly minor aspects I don’t like:
The other day I noticed an issue with one of my Agilent 34401A’s: I measured a constant DC voltage and after a few minutes the measured value would start dropping and become unstable. Then I got curious and checked the two-wire resistance mode. Same story, maybe worse.
In the last post we selected a resistor network and switch topology that suits the needs of this programmable resistor. Now we will apply simple optimizations that allow an effective and cost-efficient implementation.
Topology selected for this programmable decade resistor Optimizing the bill of material In order to reduce the number of different components the single 1Ω1 \Omega is replaced by two parallel 2Ω2 \Omega resistors. As a very welcome side effect this doubles the power rating for the setting 1Ω1 \Omega. This is very helpful, because the lower the selected resistance value of the decade, the fewer resistors the power dissipation is distributed over.
As many people in the community I really enjoy watching W2AEW’s YouTube channel. Almost a decade ago he posted a video showing a cheap and easy to build pulse generator for time domain reflectometry (TDR), consisting of only a simple hex inverter with schmitt-trigger inputs 74AC14 and a few passive components. The schematic looks something like this:
For engineers analog oscilloscopes are a bit like vinyls and tube amplifiers: Most don’t use them anymore, but if they see one, they think: Nice! And are happy that they don’t have to deal with them on a daily basis ;) However, I bought a Tektronix 465B with a faulty second channel, just to repair it. For this one, I made a quick YouTube video.
The HP 5328 series counters are a range of 0 to 100 MHz Universal counter from the 70’s. While fairly similar on the outside, internally the updated B model differs from the A model significantly. The HP 5328B’s build quality impresses still today - even for the front panel they didn’t use plastic back then. Its specs however don’t. The direct count measurement provides a resolution of up to 8 digits/s, far less than modern but much more expensive reciprocal counters (with an interpolator) achieve. In my configuration the counter features an 8 digit LED display. In contrast to most newer counters the HP 5328B has dedicated marker outputs (trigger outputs) for each channel on the front panel.
In this post I want to share how I selected a suitable topology for the resistor network that will be the core of the programmable decade resistor. Although I did some online “research”, the following criteria determined my choices:
I briefly mentioned the Siemens B2086 Decade Resistor in the previous post. In this post I want to provide additional information on this interesting “vintage” unit, which seems to be geared towards AC application, not just DC.
In 2021/2022 I designed a DC electronic load that would be more capable, but also much more complex than the usual DIY solutions. However, after building a working breadboard prototype of the analog circuitry with 12 ICs including multiple precision and dual opamps, I thought that it might be better to start with a smaller project that would allow me to gain a lot of experience and write much of the non-application specific code that I could use later on for the digital part.
With the availability of affordable precision resistors it has become fairly easy to build a diy “resistance standard” that is more than good enough for (most) hobby use cases, e. g. checking DMMs and comparing them with each other. So a while ago I built a simple enclosure for such a precision resistor with 4-Wire (4W) measurement terminals.
I recently scored two Fluke 175 multimeters that were sold on ebay as a set waiting for repair. According to the seller, the first multimeter was fully functional except for the beeper. The second meter had a strange error rendering it unusable, but came with a working beeper. The sellers suggestion then was to transfer the known-good beeper to the first meter.
I‘ve always been fascinated by lights and all kinds of displays. Nixie tubes certainly are no exception. So I had to built my own Nixie clock as probably every EE does.
Caution