[Marc] All right! Today, on the bench, we have not one, but two HP 59501B Isolated DAC Power Supply Programmers. And these are little HP-IB contraptions from the early '70s that are really super easy to set up. And you send them a number, and it outputs a voltage that's proportional to your number.
I use them, right now, to drive the graphics recorder to record my clock signal from the atomic clock. Hello and welcome back! As you'll soon see, I will be embarking on a campaign of metrology with HP atomic clocks, with the ultimate goal of taking one clock up a high mountain and measure relativistic time speed up due to the lesser gravity, an effect predicted by Einstein's general theory of relativity. But, before I can prove for myself that time is indeed relative, I need to check if my clocks stay in close agreement with each other, when next to each other in the lab. Which, as you'll see, is much more difficult than it sounds. In order to do that, I could just gather long term drift data, we are talking several days, using my trusty HP 5334B Universal Counter. It should give me a resolution of 100 picoseconds. I'd gather the data points via HP-IB on a modern computer, then plot the results on an Excel chart. But that would be both awfully ugly, and no fun at all. Instead, let's use our HP 7132A Chart Recorder to draw the plot in real time. Now that's more
like it! I have a rolling plot that I can check at a glance when I walk past the experiment, and easily spot the short term stability and long term trends. However, the chart recorder is an analog instrument, and the counter is digital. So, we need some kind of digital to analog conversion to drive recorder. And that's where our little HP 59501B box comes in. It's part of the HP 59000 series of handy dandy boxes, meant to support nascent digital automation via HP-IB, introduced in 1978. [Marc] So, the 59000 series of HP-IB boxes appears in 1978, the age of digital automation.
And I have almost the whole collection here! Look at that! There is the DAC, or power supply programmer, that we are going to work on. The relay actuators, two of them. So, those are really convenient. You can either program them, or push the buttons.
The timing generator, which we're going to use to measure the clocks. The A to D converter, and the ASCII to parallel converter, which is actually a digital output box. And then, also part of the same series, are those cute ones over here. There is the extra cute bubble LED 59309A digital clock, with an input at 5 MHz, that can take in the atomic clock. So, I could make this one atomic. It's a real time clock. You can interrogate it by HP-IB.
And then, there are the rare but oh-so-beautiful Panaplex displays, here. The 59304A numeric displays, with their neon Panaplex displays. This one is unsuccessfully trying to say boobs, but this one does Shell Oil correctly.
So, nice collection of instruments. And those are also forever instruments. There are mentions of some of these in the 1999 catalog! But back to the D to A we have today, the HP 59501B, the 1985 revision, which is identical in spec to the A, as far as I can tell. It is called an Isolated DAC/Power Supply Programmer, as it can also be used to transform most of the HP analog power supplies of the time into digitally controlled ones, although we won't use that capability today.
[Marc] So, I have one that I know there's something wrong with it, I can't zero it. And the other one, I just bought on eBay, and I just plugged it in. And apart that it had a broken top, which I repaired with some glue, it's functioning very well. By the way, it's a very simple unit. There's no on/off button. You have some adjustments for the zero, the scale of your D to A.
And then, there's some more adjustments. You can use them to drive a power supply. Basically, you can wire it up so it replaces the Zener or the reference in your power supply. At the back, there's just HP-IB, the address of the HP-IB. This is a good button! You can turn it into bipolar or unipolar. So, it can go plus/minus. And then there's the output, and other things. Those are to connect several of the HP power supplies. So, that was at the time, in the early '70s, when the power supplies weren't digital. But this would turn them into digital power supplies.
Last but not least, I got the manual, which I have scanned already, put on the web. I'm going to try it. You need something that speaks HP-IB, like my HP 9816. And you do: OUTPUT. This one is address zero, so 700. 7 being the HP-IB interface, and 00 being the address of the instrument. And then you give it a number from 1000 to 1999, or 2000 to 2999.
Let's start with 2000. The first number, 1 or 2, makes the scale either 1 volt full scale, I think, or 10 volt full scale. So 2999 is supposed to give us 9.98 volts, or something like that. Execute... Oh, you guys missed it! It just went to 9.99. Oh, by the way here's the HP 3438 we just repaired, we can see it! And then you have the six-digit one, which you can't see, or can't see as nicely. And I'm going to set it back to 2000, which would be zero.
Oh, and the zero is very good, it's in the microvolts. Which is the problem in the other supply, it doesn't work at all. And then, if I do 2500, it should be at 5 volts. And it's at 4.997. Oh, let me demonstrate bipolar. I just press this thing. And then let's try the upper scale on bipolar. It should give me 10 volts. It's off! Okay. So, I have a slight adjustment to do here.
Zero is going to be off too, at 200 millivolts. It is! And then, if I go negative, it's going to be offset the same. 2000... And yeah, that should be minus 10 volts, and it's offset by the same 200 millivolts. Okay. Uh, let me look on my instructions, and see how I should do the calibration. All right. So, it told me to hook myself up to the outputs at the back,
and to send it two commands in succession, 1000 and 2000, which will switch between the two ranges and put it at zero. And that's what I have done here. So, I have this very impressive program. So, it sets the address, sends it to 1000, sends it 2000, and it goes back in a loop. And if you could focus, it would be better. Here we go.
And, I suppose it's going to show us some steps on the scope. And if they are not aligned, the zero is going to move between the two. So, if we run this... Yeah, it got it. And I have
little spikes. I suppose that's when it goes from one to the other, the low range and high range. Ah, okay. I can see a little difference between the two. It's a bit noisy. So let's go into... let's do first high resolution here. Yeah!
Okay, I think here would be... right there. And then I can go into averaging, and it looks nice and flat. Okay, next step is for the zero in unipolar mode.
After I did this interesting initial zero balance adjustment, I went on to calibrate the min and the max voltage in unipolar mode, and the unit exceeded spec by more than a factor of 10, with the zero coming in below 0.1 millivolts and the max scale, supposedly 0.999 volts, coming in at 0.99900 volts. It was then time to do the same for the bipolar mode, and that's when things started to go sideways. [Marc] Then switch on the rear of the unit to bipolar. Bipolar. And now, we have to send it 1500 and 2500, which is the zero on bipolar. Enter, and I will run it.
And... Aha! That was fairly far off, which is why my zero wasn't good. Oops! I cannot get it far enough! Uhhuh... So, that's the same problem I have on the other unit. So, here's my problem, I cannot bring it to zero. What could cause that? So, I know that the other unit is a big problem, I cannot bring it anywhere close to zero. Hmm. Okay. Let me look at the schematics here.
And looking at the schematics, there is not much that can go wrong! We're adjusting the zero balance here, bipolar zero balance, with this resistor. So, I better check that the +15 and the -15 are actually what we think they should be. And then, it goes straight to this op amp, current to voltage converter.
So it's an... Yeah, it's an op amp with a gain of, I suppose, 1 or 10? They adjust it depending on the bipolar or monopolar range. So, this guy drifting?... Oh, I found what it is! It's the switch! That's my problem! See? I just twiddle the switch a little bit, and it goes from balanced to not balanced at all.
Which makes sense, right? If you look at the schematic, the switch is straight into the feedback path of the DC amplifier. I bet you, that's what my second unit is suffering from too, bad switch. And since this is a well-designed electronics appreciation channel, let's fire up the elevator music and take a looksy at the schematics.
Almost 2/3rds of it is dedicated to decoding the HP-IB bus commands. Surprisingly, this is done with basic TTL logic. No microprocessor or specialized HP-IB controller chip in sight. Here is the Digital to Analog converter proper. It is an HP proprietary chip. There are no details about what's inside, but I have a guess. I bet you, it's another one of these hybrid chips with lots of high precision resistors, switched in and out by FET transistors, as we had seen on the HP 3438 DVM.
The doc says that the chip converts the BCD coded digital inputs, that is, the three digits from 0 to 999 that we send it, into a current from 0 to 2.5 mA. It is followed by a current to voltage converter, which is just a giant op-amp. The HP-IB decoding is such a good example of TTL logic, that I thought I'd give you a tour of it. Feel free to skip the logic explanation, as there are no faults in this section. It helps that the decoder only needs to recognize two HP-IB commands, Listen and Unlisten, and to latch-in four ASCII digits sent in a row.
A listen command is the combination of the Attention line, which signals that what is on the HP-IB bus should be interpreted as a command rather than data, and the proper values of data bits 6 and 7. You can see how this combo is detected by gate U6. But we only want to listen if our HP-IB address is included in the command. The HP-IB address is sent along on the 5 lower data bits. You can see how they are decoded and compared to the address set switches, at the back of the instrument, by U3. If we have both a Listen command match and an address match,
then gate U9 turns on and sets the Flip Flop U12 to the listen state. The instrument has now recognized that the HP-IB controller wants to talk to it, and is about to send us 4 data bytes. The green LED, that says Listen on the front panel, will turn on, and the listen signal will open the gate to the clock generator. There is a bit of noodle logic at the bottom, that handles the 3-wire handshake protocol.
It might be slightly noodely, but what it does is fairly simple: it generates an Acquire Data Signal pulse, called ACDS, when it's time for us to look at stuff on the bus. So, now that we are listening, and if the next byte is data and not a command (which we can tell from the ATN line), at the time we get the ACDS signal, the clock generator will generate a pulse, simply called clock here. Since we are supposed to get 4 data bytes, we will get 4 clock pulses, one for each digit sent to us.
The clock then goes through U15, an opto-isolator. And so do the 4 lower data bits. This is what isolates the ground of the HP-IB controller from the ground of our DAC output, and why this is called an isolated DAC. Our 4 clock pulses, one for each data byte, then go to the Data Storage Sequencer. That's a big name for something that simply counts up to 4. Oh yeah.
The next time my 3 year old nephew manages to count up to 4, I'll bestow him with the title of Data Storage Sequencer. This prodigious circuit is implemented with a shift register, that shifts a single bit around, so its 4 outputs turn on in sequence, one at a time. They'll each enable a latch chip, where our data byte will get memorized. The first data byte gets latched in a simple flip-flop, which only cares about bits 0 and 1. That's because all it has to do is decide if the first number is a 1 or a 2, in order choose the low or the high range.
The next digits should be ASCII 0 to 9, so we care only about the four lower bits. These four bits are latched in succession on chips U18, U19, and U20, as directed by our toddler logic, aka the sequencer. Our toddler logic is also arranged, so that right after the 4th count, it resets itself while emitting a fifth pulse, the load pulse. This goes to a second set of latches, identical to the
first ones. So, the 4 digits that had been accumulated in the first column of latches, are now transferred all at once to the second column of latches. That column used to contain the old DAC value, and is now cleanly updated all at once. And voila, our DAC is now updated with
the new value, and the analog signal comes out of DAC OUT on pin 9. Yay! HP-IB message decoded. There is one more thing that the HP-IB logic needs to do, which is recognizing the Unlisten command. Unlisten is a combo of Attention, and some specific combo of data bits 1 to 7. You can see how these bits are combined on the large gate U4. If we get a match, we have an Unlisten command, and the listen flip flop is reset.
Add two reset lines, one coming from power on, and one coming from IFC, the InterFace Clear signal, and you have a simple HP-IB bus decoder made with a few TTL chips. And all that seems to be working perfectly. But trouble awaits after our DAC current gets out of pin 9. The DAC is working in tandem with an external op-amp, which is wired as a transimpedance amplifier. That's another big name to say that it
transforms current into voltage. That is simply done by shoving the current straight into the minus pin of the op-amp, without the traditional input resistor. Note that we don't see the other traditional feedback resistor, the one that controls the op-amp gain. That's because this precision resistor is hidden inside the DAC chip. Actually,
it must be least two resistors, one for the unipolar range, and another one for the bipolar range, that doubles the gain, since bipolar operation has twice the voltage span. You can indeed see one pin labeled 10V Span, and another labeled 20V Span. This all checks out so far. But what's the matter with our switch S2? That's the unipolar/bipolar switch, that I think is causing us trouble. It seems to do two things. First, it switches in a Bipolar Reference Offset voltage into the DAC, derived from the voltage reference that is also inside the DAC. Undoubtedly, that's to change the DAC mid-point to zero.
It also switches in an additional offset adjustment for our transimpedance op-amp, so you can fine adjust the zero volt in addition to the two end points. And that's the adjustment that we can't get right. At first, I thought that the offset adjustment was not working because of the switch. But the switch has a huge 121 kOhms resistor in series,
so a little bit of extra resistance in the switch will not do any harm. Instead, I believe that the added switch resistance in the reference voltage circuit throws off the DAC mid point, and makes it impossible to correct it within the range of the zero adjustment. I think we have found the root cause of our problem. The rest of the circuit is a traditional voltage amplifier. Nothing super special,
except maybe for the range switching. I'll skip over it, but he HP manual describes it in detail if you are interested. However, I want to mention the turn-off/turn-on control circuit. It's there to make sure that the output of the instrument is zero at power on, and goes back to zero just before power off. This is essential, since this could be controlling a power supply, and you don't want to output a large voltage spike. It's a trick circuit with 3 FET analog switches, Q7, Q8 and Q9, that shunt the output amplifier to ground at not just one, but three places. They really wanted to make sure there was no output!
It takes advantage of the fact that the -15V comes on and turns off faster than the other supplies. It also uses the second shift register, conveniently left over from U25, to release the shorts only after the first load command is completed. That's it, sorry for the lengthy explanation, there is just a lot happening even in a simple HP instrument like this one. And I kid you not, the spectacular HP service manual explains most of this, if not more. Anyhow, thanks to the superb HP manual, we have a good hunch of what may have gone wrong, probably the switch. Let's repair it.
[Marc] So, if there's some bad contact over here, it's not perfect, it's going to put me all over the place. Which is exactly what it's doing here. So I need to clean the switch. And I think I have to desolder it. Yeah, got it! All right. Oh, it's from the front! Okay, I might not have had to take it apart so much. Okay.
It's a press construction where the plastic has been... there's like little plastic posts, and they have been thermo-compressed. So, I don't know that we can take it apart easily. I'm going to have a look under the microscope. (Moments later...) All right. So, under the microscope, I was able to
cut the top of the thermo-compressed little posts very cleanly, with an X-Acto knife. And then, you take those two things out, you take the spring out, and it comes apart. And you can see how this thing works. If I can remount it, let's mount it without the spring. It goes in there, it goes like this. So, there's not much wipe in there. So, if a film of something deposits, it's not going to be a good contact.
But I can just wipe it with a cotton swab. All right, spring... Device in... Compress the spring...
Yeah, I do have to glue it back together. Dang it! So, there's a post here, post there, a post there, and a post there. All right... Indicated... Not indicated... All right! And it's 0.32 now over here.
0.36 over here. 0.33 over here, and 0.33 over here. So I think I am good! All right, so, that's the issue with analog instruments, where the switch is in the analog path. That is not ideal when the switch ages. So, if I go now to bipolar, and I go into my program... There you go!
Now I can zero it. All right. Then I get out of it, and I get back in. I get out of it, and I get back in. And now it's stable! Okay, Let's do the alignment procedure once again. Unipolar, a zero at the full scale. 0.0 something millivolts, okay! So, we send it a 2999.
9.990 V, and I think that's hard to adjust any better than this. So now, we are perfect on the non-bipolar mode, and we switch to bipolar. Run... Ah, yeah, and we didn't move a bit! Look,
we are still aligned on our zero. So that's working now! Uhhuh, it was just a silly, silly switch. Okay, bipolar is adjusted differently. You adjust the negative end point. So I'm going to be at -10V. + 1 millivolts? No, it's not in spec. Okay -10 V.
You send the other end of the spec. And there, top end is 9.98V because you have lost one bit of resolution. With my hard to turn pot, I don't like this pot.
There we go, 0.998, but it's going to change when I do the other end. And then it's 10.0003! Okay, so we are totally within spec, right? The spec is here, and we have one more zero! So I have my - 10.000 on one side, I should be at 9.98 on the other side. I'm at 9.9801! And now, if I try the middle, it should be close to zero hopefully. Actually,
middle is more important to me. Yeah, it's 400 microvolts. Okay. - 5 volt? Yup, it's minus 5.00006. + 5 volt? Yeah 5.00001. All right, I am very excellently calibrated! So this handy dandy unit had become inaccurate because of a dirty switch. But once repaired, it's back to the old HP goodness, exceeding its spec by a factor of 10 after 40 years.
No Chinesium instrument this one. So in the atomic clock metrology setup it goes, and it's time to look at the other problematic unit, which I bet you has the exact the same fault. [Marc] And this is the second unit that has a similar problem. I can already tell: I moved the switch and my zero is all over the place.
Yeah, it's never twice the same thing. Look at that! Okay, so, same issue. I need to do the same contact cleaning and realign it, and probably it will work just as well.
(Moments later...) And sure enough, now, if I go to the minimum, it should be minus 10, and it's minus 10 with four zeros in the decimals. Maximum should be 9.98 volts, and it's 9.9800. That should be the zero, which I could never achieve before, and now it's 180 microvolts. So, it took me like a quarter of the time as the first one. So that's the beauty, once you know what it is, it really goes fast.
And hopefully, that's why I shoot these videos. Well, first, because the hardware is beautiful. We always learn something. But if you have the same instrument, you probably have the same problem! So it'll go way faster. Anyhow, now I have two units that work, and I'll see you in the next episode. Woah, woah, woah, don't go away quite yet. I couldn't resist, I said I wouldn't do it, but I really had to try it. And I know at the beginning of the video, I say I wouldn't do it. But I'm going to do it anyhow:
try to control a power supply with the power supply programmer, as they call it, because that's one of its main applications. And the documentation is a little bit hard to read about that. There's a million ways to connect all the power supplies. This way, that way, that way, that way, which is the way I'm using. That way, that way, that way, that way, that way, that way, that way, that way, that way, that way, and that way! To do all kinds of stuff. You can control current, voltage, etc... But it turns out, that there is a whole bunch of power suppliers supported. And
I see most of the ones I have, that are not HP-IB, can be supported. This one is no exception, that's the 6226B. And what you have to do, is wire them up, in this case it's only three wires.
Some of the ties have to be removed, you have to add some other ones. It's quite complicated, but I think I figured it out. So, we'll see we if we'll have gained control of our power supply via a computer. Okay, so, I've never tried it. We'll see if this works.
Wow, it looks like it's slightly negative. I don't know what that means. I'm just outputting to address 6, this, 1000, which should be the zero on the lower range. And this should light up if it receives it. And it did! Uh, let's put it mid-range, 1500. And that didn't do diddly. On this range? No, it's negative. Let's go to one volt. Aha, aha! It did something! Okay.
Oh, because I'm in the wrong mode! I was in bipolar mode! All right, so that's why it was negative before. 000, Exec... Ah, there we go! Now we at zero! We're not negative anymore. 100... Yeah! 500... Weehee! There we go! And then you have to adjust the full range. So, how do I do that? 2999, Exec... Whoop, that's a little too much.
Yeah, there you go. All right! So now, I am matched. And that should program it to 10 volts... It did! So, let me write a little program here, that shows that I have control over this. (Soon after...) All right, I have come up with this masterpiece of software engineering, which are two for loops in BASIC.
So, FOR I = 0 TO 15 STEP of 10, I just scale it up by the right amount, and send the result to the DAC. There's a little thing I have to do, because it doesn't go to 1000, is just goes to 999. So it goes 10 20 30 40 50 volts. And on the way down, I go down in steps of minus 1 volts.
And we run that, and we should go up and down on our supply. And just to see how precise that is, I put our digital meter. So, run... 10, 20, 30, 40, 50, 49, 48, 47, 46... So, it's remarkably precise, for going from digital to analog, then driving the power supply, then back to digital, and we're falling back right on our feet here. See? Good old analog stuff from the 1980s. Or 70s, for the power supply, actually 60s!
It's still good after 50 years! Three, two, one, zero... Here we go!
2025-04-20 12:29