H7874 Power Supply

The H7874 is the power supply  used in the BA4xx and R400x enclosures, such as several machines in the VAX 4000 series. I have a VAX 4000-500 in a BA440. I had some problems with this power supply that seemed to get fixed after replacing some leaked electrolytic capacitors. I still have intermittent problems with the power supply shutting down occasionally, particularly if the machine has not been powered on for a while.

It is an astonishingly complex power supply and very hard to disassemble too. A post on the classiccmp mailing list requested information about this power supply. I have partially reverse engineered the schematic of the 12V output board so I am posting it here. It is unlikely to be correct either.

12V Output Board

H7874 Power Supply – 12V Output Board

 

Posted in Retro-Computing | Leave a comment

Further Analysis of the VAXmate H7270 PSU Failure

I have been doing further analysis of the failure of my VAXmate’s H7270 PSU. To start with the schematics are now greatly improved. I am still not sure how correct they are, but here are the latest and greatest:

I am fairly sure that the problem is that the primary side is detecting an overcurrent situation. What I am less sure about is whether the overcurrent is real or not. Below is an oscilloscope trace that I think shows this. In this trace the channels are set up as follows:

  1. Ch1: NE555 output, trigger for the one-shot on the negative edge.
  2. Ch2: Vcc (pin 7) of the UC3842 PWM.
  3. Ch3: SCR gate of D19, between R14 and R15.
  4. Ch4: Source of Q1

Primary Side Shutdown

Clearly the gate of the SCR (Ch3) goes high and the 555 stops oscillating. I am a little unsure if I should really be seeing so much spiking on channels 3 and 4.

I decided to look at how the UC3842 PWM power supply is behaving. Accordingly I set up the channels as follows:

  1. Ch1: NE555 output, trigger for the one-shot on the negative edge.
  2. Ch2: Drain of Q1 (pin 2)
  3. Ch3: Cathode of D6
  4. Ch4: Anode of D7

This is what I got:

Primary Side PWM Supply

I am seeing a lot of large spikes on the drain of Q1. I wonder if they are enough to make R13 detect an overcurrent? I don’t know enough about switched mode power supplies to know if this is expected behaviour.

Posted in Retro-Computing | Leave a comment

Possible Cause of VAXmate H7270 PSU Failure

Now that I have acquired a DSO (a Rigol DS1054Z), I have been doing more work to understand the failure of the H7270 PSU on my VAXmate that I first blogged about here. I still don’t fully understand the problem, but I now have an improved insight into what is going on and a possible explanation. The schematics I refer to in this post are:

H7270 Control Pulse Width Modulator

H7270 Power Supply – Primary Side

Below is a trace from the oscilloscope during startup of the PSU. What you can’t see here is that Ch1 was steady at about 5V for 15ms before the oscillations start, and this corresponds to a point when voltage on Vcc to the UC3842 has finished ramping up.

H7270 Fault Primary

CH1: Vcc for NE555 and Vref for UC3842 CH2: Base of switching transistor Q1 CH3: Gate of SCR D19 which shuts down on overcurrent CH4: Current sense resistor (R13)

It looks like after the 15ms that the UC3842 starts to switch the transistor. This also corresponds to when Vcc on the NE555 starts to oscillate. The transistor switches for about 25ms and then stops. I have not been able to work out why it stops. I had been thinking that it was because the SCR (D19) was being triggered, but Ch3 of the trace shows it getting pretty much the same signal throughout the period and there is no change at the time the PSU stops, so I am not sure if the SCR is being triggered or not. After all, the voltage across the current sense resistor is not varying much either.

I was puzzled though as to why Vcc to the NE555 starts to oscillate a lot. My guess was that it is because the output from the transformer has not settled yet. I don’t understand why it is quite so spiky though, I imagined a capacitor would smooth it, but I am not sure. I found one capacitor that looks like it is supposed to smooth Vcc (C11). I took it out of circuit to measure it, nominally it should be 220nF, it measured 335nF initially, but as I left it connected to the meter it dropped in about 5 minutes to 300nF, and kept dropping slowly over time.

I decided I needed to improve my schematic. To help me detect the connections correctly removed the transformer (T1). This is it here:

H7270 Transformer

H7270 Transformer

While I had the transformer out of circuit, I decided to carry out a ringing test on it. Unfortunately, this is where I think I may have found the problem. Four of the windings ring correctly, but one of the windings does not ring, it is the one shown as P1 in the schematic, and it is the two pins on the left in the picture above. However, the Technical Description says that one of the primary windings is operated in flyback mode to provide bias voltage for the pulse width modulator. I don’t know if that has any implication for the ringing test though. Here is the scope trace

H7270 Transformer P1 Ringing Test

H7270 Transformer P1 Ringing Test

Another curiosity is that the pin on the right in the picture does not seem to be connected to any other pin on the transformer. I suppose this might mean that a wire has broken somewhere perhaps. I don’t know if transformers can fail with a nasty smell and no outward signs of damage, but I fear it has failed, and that it will be very hard to replace. I am also concerned that if I could replace it some other fault would damage the replacement too.

 

Posted in Retro-Computing | 1 Comment

VAXmate PSU (H7270) Failure

While I was using my newly working VAXmate the other day, it suddenly failed. I had left it running for a few minutes and when I came back there was a smell and the machine was not running. I wondered at first if it might be the filter capacitors in the power supply, but if these fail the power supply continues to work.

I took the machine apart and examined the H7270 PSU and other boards for any obviously blown components. However I could not find anything. I have since looked multiple times and still cannot see any obviously blown component.

VAXmate H7270 PSU

VAXmate H7270 power supply

My first step was to see if the input is being rectified. I found 300V across the two big smoothing capacitors, so, yes, the input is being rectified. The next step was to see if the switching transistor on the primary side was switching, and to see if it is working. I found that it is not switching, but after desoldering it and putting it into my Peak Atlas Component Analyser, it seemed to be working, so the transistor does not seem to be the problem.

My attention then turned to the NE555 timer that drives the switching of the primary side transistor. It is not doing anything and I discovered that it is not getting any voltage to operate.

This means that the current sense circuit on the primary side is detecting an overcurrent condition, which is shutting down the primary side. The causes of this can be multiple, but one is that the crowbar circuit is detecting an overvoltage and forcing a short on the secondary side that triggers the overcurrent condition which then causes the power supply to shutdown.

I have been testing the PSU with no boards attached, and an old IDE disk acting as a load on the 5V and 12V supplies. According to the Technical Description only these supplies are monitored for overvoltage. Any other overcurrent would be a short in one of the other supplies.

So, I have a PSU which won’t start, despite there being no visible damage that can account for the bad smell when it failed, and despite not being connected to any other boards, and only to a known good hard disk drive. The cause seems to be that a problem is being detected that shuts it down. I only have an analogue oscilloscope, and I can’t use it to diagnose a transient condition like this one. I am going to have to get a Digital Storage Oscilloscope that can be used for transient conditions like this. I want a more modern oscilloscope anyway, so I am going to get a Rigol DS1054Z after a friend recommended it to me and after seeing a positive EEVblog review. When I have that I hope to be able to investigate further.

For reference I have reverse engineered the PSU and done a couple of partial schematics. They are probably not drawn logically as I am not an expert.

The component numbers are assigned by me as they are not marked on the board, and I have posted images of the board with the components labelled. A few component numbers are actually named in the Technical Description and I have used those numbers.

 

Posted in Retro-Computing | 6 Comments

VAXmate

I acquired a VAXmate earlier this year. The VAXmate was the successor to the Rainbow. It is PC compatible and runs MS-DOS. It was the first commercial diskless PC, although mine came with an expansion box containing a Seagate ST225 hard disk. The machine uses an LK250 keyboard, that looks very similar to the LK201.

VAXmate

VAXmate running Sokoban

When I bought the machine I was told that although it had the keyboard, it did not have the cable to connect the keyboard to the machine. The cable uses a 6-way Shielded Data Link (SDL) connector at the machine end, and an RJ12 on the keyboard itself. I hoped to find another keyboard or to make a cable, but I ended up leaving it for a bit.

The first job was of course to inspect it, before powering anything on. The machine is not easy to work on though. The boards are all installed around the outside of the case and interlock so that it is not possible to remove just one board at a time. In the end I found the rear and left hand (as viewed from the rear) boards could be removed as one by pulling the connectors out of the right hand board and pushing it away a bit. The capacitors all looked OK. I also had to remove all traces of the rubber feet on the main unit as they had turned completely to sticky black goo. The pictures below show the innards of the machine.

My first attempt to power on the machine went well, it powered up and tried to access the floppy disk. I didn’t have a floppy disk though. The display showed an error (60), which is presumably some kind of keyboard error.

I took the disk out of the expansion unit with the intention of trying to using the David Gesswein MFM emulator to image it. It turned out that the disk is bad and all attempts to read it failed miserably. I opened the disk up to see what is going on and it looks to me like it can’t find track 0.

I took the machine to DEC Legacy in November and was able to test it with the keyboard that belonged to someone else. This confirmed that the machine works and that the keyboard I got with it also works.

I then managed to obtain a keyboard cable for an IBM Model M keyboard, as this has the SDL connector on one end. Unfortunately it has a PS/2 connector on the other end and my initial plan was to butcher the cable and put an RJ12 on it. But I decided that I should not do this to a relatively rare cable. So I got a more run-of-the-mill PS/2 cable with a female connector and decided to butcher that instead as an extension plugged into the IBM cable. This failed to work. I thought that this was because it turned out that the IBM cable only had 4 wires out of 6, however I later discovered a different problem and then found that my home-made cable is in fact fine.

In the end an LK250, with the correct cable, came up on eBay, so I bought it. Sadly this keyboard did not work, nor did my original keyboard with the cable. Having checked the cable was OK I smelt a different problem.

Testing the RJ12 end of the cable with the cable plugged in, I realised that the 5V supply to the keyboard was not working. I took the machine apart and traced the 5V supply, eventually reaching a fuse (marked F1 on the board, rated 2A). This fuse was open circuit, so the fuse had blown. At this point it dawned on me that my earlier probing of signals in order to make my own cable may have caused an accidental short and blown the fuse. The position of the fuse is marked on the picture below. It was hard to desolder the fuse because one end must be connected to large 5V plane that sucks all the heat away from the soldering iron.

VAXmate Board Keyboard Fuse Marked

VAXmate Board With Keyboard Fuse Marked

Having now replaced the fuse, both keyboards work and the machine works fine. I ran Sokoban on it, although I don’t seem to be able to remember how to get it to exit from the game cleanly.

Posted in Retro-Computing | 1 Comment

MUSL Compiler Builds a Simple MU5 Program

I have been slowly working on getting a MUSL compiler that targets the MU5 emulator, with the ultimate goal of compiling the MUSS source code to run on it. The first step is to build a cross compiler that works on Windows. A while back I switched tactic from building my own Flex/Bison compiler, to hand translating the MUSL compiler into C. I completed that translation a few months ago.

I then started testing the translated compiler, parsing some sample MUSL code. I found a lot of mistranslations, of course. I also found a couple of spots where I could not reconcile the code with the way it was supposed to work. A couple of the IF statements had to be inverted, I have marked these in the translated code with “/**/” and an explanatory comment.

I translated the MUBL module too, so that it would output a form of intermediate binary code, however I think I should not have bothered. This is because, more recently, I switched to parsing very simple programs and building an actual implementation of MUTL that targets the emulator.

Today I succeeded in compiling the following  program which runs on the MU5 emulator and outputs a simple “hello world” message.

*TLSEG 0 %FFFF %00010000 0 6;
*TLSEG 1 %FFFF 0 0 6;
*TLLOAD 1 0;
*GLOBAL 0;
*CODE 1;
*VTYPE LOGICAL64;
MODULE;
VSTORE CONSOLE.INTERRUPT %300;
VSTORE TELETYPE.DATA %306;
VSTORE TELETYPE.CONTROL %307;
$PS PRINT.STRING(ADDR[LOGICAL8]);
PRINT.STRING(%"HELLO MU5 WORLD$L");
HALT: -> HALT;
PROC PRINT.STRING(STRING);
    $IN I;
    FOR I < 16 DO
        %F => CONSOLE.INTERRUPT; :: Reset console interrupt bits
        0 => TELETYPE.CONTROL; :: TTY output mode
        STRING^[I] => TELETYPE.DATA;
        WHILE CONSOLE.INTERRUPT = 0 DO OD;
    OD
END
*END

The code is naïve and relies on a tweak to the emulator not to generate an interrupt when the teletype character has been written. Note also that the built-in SIZE function does not work, I have not been able to work out how it is supposed to work yet.

Posted in MU5, MUSS, Retro-Computing | 2 Comments

Teletype Model 33 ASR Ribbon Feed

In November last year I attended DEC Legacy 2018 and as usual I took along my treasured Teletype Model 33 ASR. I hooked it up as usual to the PDP10 simulator in SIMH to run DEC’s TOPS-20 operating system. You can see it working here.

During the event I noticed that the ribbon was not feeding correctly. In fact most of the time it was not feeding at all. Resulting in fading characters as the same bit of ribbon was used over and over again. A few of us had a look, and we could see that the feed pawl was not engaging properly with the teeth on the ratchet wheels holding the ribbon spools. However, we couldn’t really see why this was happening, it was a bit intermittent. I thought it might just be a lack of lubrication, but in any case I resolved to check it when I got back home.

I didn’t look at it for a while, and then recently I asked on the Greenkeys mailing list and the ever helpful Wayne replied with a couple of emails. It took me a couple more weeks before I could look at it, but I finally did so today. Following Wayne’s advice I checked the springs. At first I couldn’t see any springs that had come undone, but then I noticed a spring  under the arm of the feed pawl that was disconnected, the two arrows in the picture below show the detached spring and where it should be attached.

OLYMPUS DIGITAL CAMERA

I removed the ribbon feed mechanism so I could fix the problem. I attached the spring again, which was a bit fiddly, lubricated the mechanism and then refitted it. The ribbon feed now works perfectly.

Posted in Retro-Computing | Leave a comment