This is a technical article about a project I recently finished (for the most part). It doesn’t work that well, but it is quite complex so gives me a chance to cover several topics while talking about just one project.
V stands for voltage, named after Volta, an Italian.
I stands for current (French intensité de courant) as used by the French scientist Ampère.
In electricity and electronics, any component will have a characteristic “V-I Curve” showing the relationship between voltage across the component and current through the component. These days, we usually use “curve tracers” to get this graph, but you can also plot it a point at a time using a variable power supply.
Last year I had constructed such a variable supply for a little presentation I gave at work about transistors. Later I made another one to use to demonstrate the operation of vacuum tubes. I wanted to preserve these projects (and the parts used in them) in a more compact space, so I decided to squeeze them into an old Extron (video processing equipment maker headquartered in Anaheim CA) enclosure. The photos show what resulted.
The design is far from ideal but retains most of the features of the older designs, while making some changes to increase the current capacity of the lower voltage source and keep part of the Extron front panel.
Following is a discussion of some of the features of this project.
Creating a 1-250V variable supply
I was not prepared to create a supply that could ramp from 1 volt to 250 volts in one smooth transition, so had procured several power supplies, 4 50-volt supplies, a 25-volt supply, and a 1-25 variable supply in the form of a DC-DC converter.
I then had to create logic that would switch through the supplies in 25-volt steps. As part of this scheme, the supplies are put in series (or “stacked”) with each other. This is only possible because most power supplies (not some of the old tube ones, though) use isolation transformers so that the output and input can be at different DC levels. This isolation usually works up to at least 1,000 volts.
The high-voltage sub-system receives a binary code (from 0 to 255) and must decide how to connect the supplies to get a supply voltage about equal to the value of the code supplied.
To implement this I used 4 relays using 5-volt coils, so I could use logic signals to switch the voltages. The DC-DC converter was a cheap one using a potentiometer to set its output value. To make it variable by remote control, I had to set up a control loop using an op amp to drive an optical isolator. The output transistor of the isolator would server to replace the potentiometer.
Other voltage sources
My earlier designs had two other voltage sources, one to bias the tube grid or transistor base or gate, and another for the tube heater. I used a low-power op amp to supply the bias voltage, as hardly any current drive is needed, and I thought +/-10V would be a sufficient range.
I had used a variable linear voltage regulator for the heater voltage, but in this design decided to leave that out and just make my 5V control electronics supply available for that use.
I also needed a supply to run my DC-to-DC converter. It is a buck converter, so I needed greater than 25V. And I only had +/- 12V rails and +5V available from my control electronics power supply. So I used a boost converter driven by the +12V rail to get about 30V which I fed to the buck converter.
Providing panel meters for measuring instruments is always a challenge. Today the most common design uses a microcontroller with an A-to-D (analog-to-digital converter) driving an LCD (liquid crystal display). However, I had already purchased a bunch of little modules for the earlier boxes and wanted to use the. So I fit four of them into the new panel. All they do is display the input voltage when powered by at least 5V. These modules have about 370K input resistance and can display up to 99.9 volts. You can get all kinds of different ranges. As I wanted one display to show the entire range of output voltages, I had to divide the input by ten and settle for 25.0 maximum readout. The other module is used for the 1-50V segment of the output supply, and operates at full 3-digit precision. The bias voltage is displayed on the LCD that came with the original equipment.
In modern electronics, currents are always measured by converting them to voltages first. The old analog current meters responded directly to input current. To convert a current to a voltage, just pass the current through a known resistance, then measure the voltage drop across the resistor. This may then be amplified if needed. In my case, I needed to amplify the signal so that I could use my little voltmeter modules as current meters. (You can also get modules that have this capability built in.)
For the “heater” (+5V supply) current, I used a 0.2 ohm resistor. This would drop 1 volt at 5 amps, so I needed to amplify it to give my meter a range of up to about 3 amps (reading of 30.0). I used an op amp in “quasi differential” configuration to get this reading, so I could put the resistor in the high side of the 5V rail.
For the main supply I used a 4 ohm resistor, as I expected to draw only about 30ma maximum (30.0 reading) from this supply. 30mA through 4 ohms gives a voltage drop of 120mV, so I had to amplify this by a gain of 250. I used an op amp in non-inverting configuration for this purpose.
I used the 30V supply driving my DC-DC buck converter to power these op amps. This was close to their maximum supply rating of 32V!
Front panel controls
The front panel that came with the Extron equipment had an LCD, some pushbutton switches, and 4 little knobs. The knobs felt like potentiometers, but they turned out to be rotary encoders. Instead of replacing them (would have been a lot simpler) I decided to use an Arduino to make the rotary encoders function like digital potentiometers. This was handy for controlling the high voltage supply, but was overkill for the other variable supplies.
It took some fiddling and internet searching to get some workable code for the encoders, but once I got it, they worked satisfactorily. In order to convert the digital values back to control voltages, I had to send them out to a 32-bit shift register and then run R-2R ladders from those 4 8-bit outputs to get analog values. As the bias voltage needed to be bipolar, I wrote the code to display “0” on the screen when it was outputting 127. That made the control voltage for -10v about 0.5 volts, and the control voltage for +10V about 4.5 volts. So I had to provide my op amp with a gain of 5 and an offset of -2.5 volts.
One of the knobs controls the LCD backlight, which has to be pulse width modulated. I found a cute little voltage-to-duty-cycle circuit on the internet which I used for this purpose. I could have used the Arduino, but had run out of PWM outputs.
The LCD is run in 4-bit mode using the standard LCD library for Arduino. This requires 6 control pins, not counting the backlight and contrast circuits. Fortunately, the front panel LCD was a totally standard model and interfacing it to the Arduino was no problem once I found its pinout on the internet. (It doesn’t use the more common single row of 16 pins, but rather the less common double row of 14 pins to one side.)
System noise and a mitigation strategy
Worst case, this system could attempt to switch 4 relays on at the same time. Relay coils are highly inductive loads and these coils draw about 70mA each. This can produce a lot of noise on the 5V line, and was causing my system to oscillate or reset under certain conditions. Though I haven’t taken all possible steps to reduce this problem (such as running the Arduino on an isolated rail), I did create a circuit that detects whenever there is a change in the signals that run the relays, and then applies them in sequence to the relays over several seconds, rather than all at the same time. This does give the system a more sedate personality, though I have not eliminated unwanted resets.
The relays with sequencing circuits are in the upper-left side of the enclosure, as it is pictured. The 4 50-volt power supplies are underneath them.
In a complex project, connecting all the sub-assemblies together is a huge issue. I am trying to get better at this by standardizing on .1-inch spaced headers and connectors for most applications. I have a source of cables using these connectors which can carry quite a lot of current. Most such cables are extremely flimsy and only good for signals, not power.
For the main power connections between the supplies and the front panel, I used do-it-yourself high current connectors with locking plastic housings. I used to get these at Radio Shack, but making them myself from parts isn’t too bad.
I also use old-fashioned terminal blocks for higher voltage or higher power connections. These require the use of crimp-on lugs which are not cheap. However, if you know how to use the crimping tool, and fit the wire to the correct lug barrel size, they work very well. I used to use soldered lugs for this purpose, but the terminal block strategy keeps things more modular.
I spent many hours over a number of weeks on this project, and all to preserve some hardware that I hardly ever use. So it’s time to move on to projects more along my main purpose of electronic art. I’m hoping this write-up will assist me to take my attention off this cycle of action and start some new ones.