Friday, June 29, 2018

Good progress with model 15/19 teletypes, plus restoration work on IBM 1401 card reader


Our German 1401 system has been down for weeks because its card reader (1402) is unable to read cards without spurious read checks or other errors. It was determined that a set of cams were chipped and broken, causing cards to be fed inaccurately. 

The reader has a hopper of incoming cards, with a set of picker knives at the bottom which have a lip that is less than the thickness of a punched card. These knives push the card toward the entry into the machine, the throat, which has a carefully adjusted slot that is also a bit less than one card thick. This causes one and only one card to enter on each clutched cycle of the machine.

To move the two picker knives at the proper time in a clutch cycle, a pair of offset cams are on a shaft inside the machine. These are constructed of Bakelite, an old, hard and brittle plastic. Two cams are molded together as a unit, but the cams are offset in rotation. One cam will push the knives forward to feed a card and the other cam will push the knives back out of the way.

The plastic cam assembly is chipped, with big enough gouges that it doesn't move the knives at the proper time anymore. The cam assembly is fixed onto the steel shaft with a tapered metal pin. We didn't have a spare cam assembly on hand.

However, the reader mechanism in a 1402 was leveraged into three different machines by IBM. In addition to the 1402, the IBM 360 generation card reader, the 2540, is a somewhat modernized version. The 088 card collator, used in pre-computer accounting machine installations, also uses this mechanism; actually, it has two of the readers, feeding from each side of the machine to common central stackers.

Besides the official collection of the museum, artifacts carefully stored and preserved, there can be units available for public demonstration and education purposes, as long as they are excess to the collection needs of the museum. We are fortunate to have multiple tape drives in this category, for example, from which we can take parts. We also had an 088 collator available for use as parts.

We visited our 088 carcass and examined the two reader mechanisms. The right side feed had some chips on the Bakelite cams, but the left side feed cam assembly was in great shape.

We found that each cam and shaft is pinned differently; each was hand reamed at the factory and sometimes the wide end of the taper was inserted from the back of the cam assembly instead of the front. Nothing was interchangeable without reaming the shaft plus cam assembly.

Mike, one of the newer restoration team members, did the reaming, installed a new tapered pin and cut it to length. He then replaced the shaft in the card reader and made the adjustments for the picker knife timing.

Because we disturbed the multiple CBs (cams with microswitches) on the same shaft, we must re-time all of them to the appropriate range of a rotation of the shaft. The logic in the card reader samples the state of the machine and activates various functions at specific times during the rotation of that clutched shaft. If the times are too far off, the machine detects the error and stops.

Next week we will start doing the timing, adjusting up to a dozen CB microswitches until everything is within specifications. We hope that this will restore the card reader to proper operation.


I decided to build a second instance of the John Nagle designed USB to teletype box. I had two spare PCBs built, but needed another set of the components to build it up. I placed the order and received almost everything. I soldered in the components tonight and will put it in the case once that arrives; otherwise it is complete.


We met at Marc's and resumed work on the model 15 systems. I showed Marc what he needed to do for his keyboard to free up the frozen levers on the keyboard serializer/distributor. He began cleaning and addressing issues with his keyboard.

Having cleaned and tested my ASR 33 Call Control Unit (power supplies and interconnection point for cables), I returned it and instead placed the model 33 printer unit in my car for work at home during the week. Once I have this unit working, my aim is to hook it up to my Altairduino (Altair clone) and to produce copies of key software on paper tape and then boot software and interact through the teletype.

My model 15 printer head has so much solidified grease that the main shaft woudn't turn by hand This one will take lots of time to flush out the gunk and free up the mechanisms. I worked on it and have already restored about 20 degrees of rotation to it.

I have pivot levers that drive the function and print mechanisms which are stuck. The clutches on the shaft are also sticky and need lubrication. The big question to me is whether I will need to remove the shaft to fix it or can work on the machine with it in place.

I put the spring back on the model 15 printer - the one that popped off when I was moving the printer when it hooked on my work gloves and pulled loose. It pulls a pivot lever back after the carriage has moved away from the left edge. The lever is connected to a 'dashpot', an air chamber shock absorber which cushions the carriage as it slams to the left edge during a carriage return operation.

My lever and dashpot were frozen in place, but with a bit of lubrication and lots of gentle manipulation, it is working properly and ready to protect during CR operations. My carriage itself, when released, only moves about 15-20 columns over before it sticks. I will be hunting for the cause of the sticking and repairing it.

We focused on the REC30 power supply that came with the model 19 military teletype system. This supply plugs into the 120V mains and produces a regulated 120VDC, supplying up to 600ma of current It is a massive system, much larger than you would expect for a 80W power supply.

Part of the size and weight is a huge autotransformer on the front end which allows use of the supply with a range of power inputs from 25V to 250V and multiple frequencies. It also provides 120VAC output for a motor regardless of the input voltage.

The supply circuitry uses a neon tube to establish a voltage reference, a pair of mercury filled thyratron tubes to produce the DC output, and a pentode tube to control the grids and regulate the output. It also has many chokes in place to block the switching noise of the thyratrons.

The thyratron tubes should have liquid mercury droplets inside which vaporize when the tube is hot, but instead we saw many loose grey flakes inside. That didn't give us confidence in the condition of the tubes but we pressed ahead.

I used my old Heathkit C3 condensor (capacitor) tester, which can check leakage at a range of voltages from 25V up to 450V. Often a capacitor seems fine under low voltage, as checked with a modern capacitor measurement device, but will develop excessive leakage only up at higher voltages. This unit also minimizes the inrush current as you check out these old capacitors.

We found all the capacitors to be good enough to use, acceptably low leakage even up at full voltage. The input to the autotransformer had a reasonable DC resistance, thus we prepared for a power-on test and possible release of magic smoke or worse.

We applied power and saw no signs of failure as the tube filaments heated and the time delay relay heated its bimetallic contacts to allow the thyratrons to vaporize their mercury before power was applied The relay snapped on and the thyratrons developed a lovely blue glow. More importantly, the output was 140VDC and nothing was overheating or smoking.

Initial power on of the supply
We set up a small load to let us measure the ripple and power supply noise as well as adjust the output to its target of 120V. The ripple was only a few hundred millivolts, cleaner than we expected. A quick rotation of the potentiometer and our supply was delivering exactly 120V DC.

I brought my teletype interface box, which we then connected to Marc's other model 15 teletype which appeared to be working properly, based on hand cycling of the machine. I fired up the BaudotRSS program through the John Nagle designed interface and we had the teletype chattering away typing text.

The ribbon is old and dry, but we could read just enough of the text to see that it was getting most of the characters right. We hadn't adjusted the rangefinder, a device that varies the 'sampling' point within each bit cell of the incoming serial stream. We can probably get this typing flawlessly without much more effort.

The Break button worked properly, as registered by the BaudotRSS program, but keypresses were not recognized at all. This might be a problem with oxidized contacts on the Send/Receive/Break switch on the unit. This will be investigated more during our next work session. It was time to head to homes for dinner with our families. 

Monday, June 25, 2018

Worked out ASR33 modification, USB to TTY module working fine


I learned more about that mystery board with the reed relay inside my ASR 33, thanks to some clues from William Degnan. This is a Reader Run Relay, a modification that was made to many ASR 33 units that were hooked to DEC minicomputers. 

The purpose is to advance the paper tape reader under control of the relay, since the DEC interface boards were unbuffered and could easily be overrun if a new character arrived before the last one was retrieved by software. 

If you remember from my last post, I determined that this board would short the Local and Line power  wires together when activated when the relay coil is driven by wires going to pins 5 and 6 of the the DB25 cable. Yes, as I said, that would force the unit online even if it were set to Local mode, but more importantly, it powers the Local wire when in Line mode if the relay activates.

The board had a wire from Local power out to pin 7 of J4, inserted as a modification. I didn't have the paper tape reader side to determine where that power from pin 7 went in the reader, thus I didn't suspect the reason. It appears that these third party boards, of which I found at least two other instantiations besides my own, provide power for the reader motor, under computer control. 

The reed relay in the board is going to respond to RS232 voltage levels, i.e. 12V approximately. If it isn't activated, the tape reader will not function in Line mode, but will run fine when the knob is in Local mode. If not used with a computer driving the relay wires, it won't work properly, but if hooked to a system that suffers from overrun without this feature, it won't work properly WITHOUT the board. 

I don't have a specific plan for a system to connect this to, other than perhaps my HP 1000F minicomputer. Still, I want to preserve full flexibility for the unit, so I won't just strip out the board and undo the modification to the tape reader. 

The solution is to install a jumper that is used or removed by the new owner to enable or disable the reader run board. The jumper shorts the contacts of the reed relay on the board, thus it is always powering the tape reader motor when the machine is in either Local or Line mode. 

This achieves my goal of having an ASR 33 that can be used flexibly, either with a DEC or similar computer that must start/stop the tape reader programmatically, or with a system such as an Altair that properly handles the full speed stream from the tape reader. It makes my ASR 33 valuable to both potential classes of user. 


I plugged in the full size USB CP2102 board I bought and wired the TX line to my scope to watch what comes down the line from Heavy Metal when sending teletype characters. It confirmed the problem I was having - the open to the COM 7 port is not successful.

I suspect the problem is in the mapping of baud rates. The CP2102 is programmed to associate 600 baud requests with 45 baud operation. Therefore one has to open the COM port for 600 baud, 5 bit, 2 stop, no parity in order to communicate. The Heavy Metal program has no option for 600 baud, but does have a 45 baud one. I suspect that it is opening requesting 45, which the CP2101 rejects. There is no choice for 600 baud in Heavy Metal.

I tried Putty, a common terminal emulator program, but it hated 5-N-2 operation and gave up immediately. I will have to sort out this configuration challenge before I move on to the board itself. I tried to whip up a Python program to open the COM port at 600 5-N-2 and loop sending alternating R and Y characters.

After initial errors, I discovered that the lying driver claims it supports 2 stop bits but fails on open unless I set it to 1 or 1.5. With COM 7 configured as 600 5-N-1.5 I opened successfully and verified the proper bits arriving on the TX pin of the UART board.

I think I will begin configuring these as 600 5-M-1 which sends a MARK as the parity bit followed by MARK as the stop bit - in other words, a two cell long stop bit of MARK. This avoids the brain dead Windows behavior.

The problem remains how to get HeavyMetal to open this successfully. I set up the default on the COM 7 port to be 600 5-N-1.5 but again, with no menu choice for 600 baud, I have to select 45 baud from the tool and that makes the open call barf. Next up, how to hack HeavyMetal to add the 600 choice, or perhaps I modify the USB module to use some known rate instead of 600.

I did some searching on the web and found the developer site for HeavyMetal. I run the latest, 3.1.003. He identifies the need to support 600 baud for this USB interface project, but 3.1.004 is in development, not released. S**t.

Now to try to find the other program that is claimed to work properly, BaudotRSS, and see if that will work.To run BaudotRSS I have to configure my Python 2 system with a number of packages before I can run.  Once I am ready to configure all the packages for BaudotRSS, it will give me many more feeds that can be autodirected to the teletype.

It was easier to just hook up the project to my Python program which was repeatedly sending RYRYRYRY at 45 baud. That gave me a fast way of testing the behavior of the project.

Excellent news! The TX lamp on the USB module flashed. The data light on the board flashed. The test points showed 120V developed on the capacitors. My scope showed the proper pattern for the R and Y characters I was sending. Everything appeared happy.

All that is left is to set up a short and measure the current during a MARK condition With no data it should be permanently in the MARK condition. That is the normal idle condition of a teletype line.

I hooked up my VOM to measure the 60ma current that should be delivered, and bridged the output pins of the phone jack. With everything hooked up, I flipped on the switch for the interface. Just about exactly 60ma measured with the output shorted, right on the money.

This is as tested as I can get it without an actual teletype selector magnet and mechanism, e.g. a printer or typing reperforator. Hopefully we can fire this up in a week or two, once we have a working teleype printer from among our two model 15 and one model 19 (actually still a 15).

I am installing it in the project box specified by the designer. I have to measure and cut some holes for the various jacks, switches and LEDs but otherwise it is ready to go.

I did the install for the BaudotRSS program components and tested with this as well. It does seem capable of handling the 45 baud 5-N-2 configuration and may be the program I end up using for our testing and demonstrations. 

Sunday, June 24, 2018

Good progress on the USB to teletype interface debugging, plus restoration work on TTY 15 and ASR33


I received two items last night, an alternative CP2102 USB module and a new USB cable. The replacement module has the same signals accessible, but in a different arrangement so that it can't be mounted on the project PCB with headers. Further, it is longer and has a full size USB A connector. However, with several failed boards behind me, I just wanted to have a working USB to UART board with 45 baud support.

I plugged new new board into my PC and it correctly installed and worked. I could adjust its settings using the Silicon Labs Studio development software, converting the 600 baud entry to 45 baud and increasing the current request to the USB host to 400ma to support the project's requirements.

That seemed to point to the original boards as defective, but this morning I tried using my new cable to connect an original board. It worked fine and was altered to 45 baud and 400ma. It seems that I had two bad USB cables with micro connectors - neither had working data lines I guess. The new cable works well. What a stupid reason to have lost a week of head scratching and failed tests.

The new board does turn on /SUSPEND, but after about 20 seconds it is switched off (suspended) until the COM port is opened causing it to spring back to life. This makes sense. Based on that behavior, I tested the original board to see if it turned on /SUSPEND when connected. It did also. 

Given that, I will solder the original USB module back on the project board and resume testing. I will step through the power and waveform tests, watching to see that the device delivers 5V to our main bus and the circuit seems to respond properly. I am NOT seeing the 120V that should be active on the test points while idle, although this requires the first MARK to SPACE transition on TX before it may start charging. Thus, I may have a problem but may not, see below.

Another test that can be done without a teletype is to feed TTY signals from a PC program over the USB cable, watching the LEDs to see that the board is responding appropriately. I am hooked up to Heavy Metal, configured to 45 baud and sending various test streams, but the TX light is not blinking. RX will only blink if I activate the keyboard, which I am not doing since it is disconnected.

It is likely that I have the configurations wrong in Heavy Metal and am not actually sending data over the USB link. It opens the port properly, as the /SUSPEND goes high and allows me power to my interface. I don't, however, see any SPACE values coming down the line. I need to debug this first, since I need to send characters before the charger circuit will develop the 120V reservoir.

The last test before hooking up a real teletype is to short the output and measure the current being delivered - this should be 60ma. That indicates that the proper voltages and currents are being developed. I might be able to do this during the steady MARK condition even with no data coming over the USB link. A project for tomorrow. 


I brought home the power supplies (the Call Control Unit as named by Teletype) to check it out and restore it if necessary. First up was to use my old Heathkit Condensor Checker, which does leakage tests at varying voltages up to the limit of each capacitor. There were three big electrolytics to test. One of them is marginal and I will replace it later, but all are good enough to run with for now.

First power on tested the main power switch, which has three positions - Local, Off, Line. When in the Line position, a relay loudly activates, as it should, but not in Local mode. I then tried to note all the connector points where I should be measuring power - various AC and DC voltages are developed in this unit.

The documentation is far from clear. No way to easily spot where various voltages or signals are placed on connectors. Finally I came to understand what "R 5C4" and "3A5 or 4A6" meant. The first number is the relative schematic page, titled as "Sheet 3" for example. The remaining characters are the row and column on the page where the wire occurs. 

I found an exceptionally obscure card, looking like it was not made by Teletype, wired into my unit. It takes two wires from the DB-25 computer connector, pins 5 and 6 which are green and brown, to the coil of a reed relay. Thus, some power from those wires will energize the reed relay. 

The contacts of the relay bridge the L1 and L2 poles on the main LOCAL/OFF/LINE switch, thus making the unit both online and local simultaneously. I believe it forces the teletype to be online, even if the rotary knob is set to Local. The modification also provides power while in Local mode to pin 7 of J4 - purpose not yet known but will check when I have the rest of the teletype on hand. 

The only power generated in the Call Control Unit and its modules is:

  • 120V to the motors when in Local or Line mode
  • DC power, 34V to drive the selector magnet for the printer, based on line or keyboard current
  • DC power to drive the current loop line from the automatic tape reader (120V or higher)
  • DC power to drive the internal current loop in local mode (67V) since it is half wave rectified

I verified all but the automatic tape reader supply, using my VOM, but that didn't work for the ASR power since it is driven through a plug on the reader cable that is not at my house at this time. However, I checked all the components with my VOM and diode tester, until I was satisfied that it should work properly when connected. 

At this point, I have finished the checkout and restoration of this second portion of the teletype, the Call Control Unit. The remaining units to test are the tape reader, tape punch and printer units, which will wait until Friday when we get together for the next burst of Teletype restoration.


We lined up all the model 15 and model 19 teletype machines and began with a good cleaning to remove dirt and lubricants. This consisted of mainly scrubbing with Simple Green but some Alcohol and other cleaners were needed for a few special places.

My Model 15 and Marc's Model 19 have similar motor baseplates and we worked on them first. They have two power plugs and two telephone exchange style plugs. One power plug consists of three prongs in a triangular arrangement. It is used to supply 120V DC for the current loop signal lines. The other is a four prong outlet, three that are oriented in the same direction and the fourth rotated 90 degrees, used for 120V AC to run the motor.

We studied the schematics and wiring to determine that the four prong plug is arranged with ground on the one plug that is perpendicular to the others. The three that share an orientation are arranged at the other four corners of a Rhombus shape. The corner opposite the ground pin is the neutral line. The two other pins are both for the hot leg of single phase 120VAC.

There is a difference inside the teletype base. One of the hot pins runs through the ON/OFF switch and motor control relays, while the other is routed directly to the motor. Thus we call them the switched and unswitched lines; we plan to only use the switched hot wire.

The Model 19 desk had several of the four prong receptacles into which this plug will fit. Marc took one and wired it into a handybox to give us a proper outlet to plug in our teletypes. Before we ran them, however, we re-oiled the bearings and worked out stale lubricants. Finally, we could plug in both baseplates, flip on the power switch and watch the motor spin happily away.

I moved on to work on my keyboard mechanism. This is built with five rods (one per bit of the 5 bit teleprinter or Baudot code). The keys on the keyboard each have a rod, oriented perpendicularly to the five encoding rods, with the key rod having notches that will force each of the encoding rods left or right, depending on whether that bit of the character could should be a MARK or a SPACE.

My keys worked well and those encoding rods did slide left or right reliably to encode the character. What did not work was the distributor that should serialize those rods into a sequence of a start bit, the five data bits in order, and a longer stop bit. To do this, a clutch latch has to be triggered by a sixth bar, similar to the fire encoding rods but always depressed - thus called a universal lever.

When the clutch is released, the distributor should rotate 360 degrees under motor power and latch again, waiting for the next keypress. Multiple cams on the axle operate switch contacts at the appropriate point during the rotation. First, breaking the circuit to produce the SPACE value of a start bit. Then, either making or breaking the circuit based on whether each bit in turn should be MARK or SPACE, then generating a MARK signal for the remainder of the rotation as the stop bit.

The cams push on levers that can be allowed to swing out to make contact or blocked, depending on the left or right position of each encoding rod. Those levers pivot on a shaft, or should have, but they were corroded into place.

I had to use 3 in 1 oil and about an hour of time patiently wiggling and rocking each of the six levers (five data bits plus the start/stop contact) until they moved freely. When I was done, I had also lubricated the shaft bearings and had the clutch release working well with the universal lever. Now, I could push any key and trigger a rotation with the right sequence of on and off current flow to encode that character. My keyboard was restored and ready to use.

We were near the end of the workday, permitting just enough time to assess the other parts and prioritize next week's work. Marc's model 15 (19) keyboard had the same frozen levers that mine had, so this will need an hour or so of work to free up. His printer unit main shaft rotates, which is a good sign. My model 15 printer unit has a main shaft that won't turn at all - frozen lubrication strikes again. 

Thursday, June 21, 2018

Mainly debugging the CP2102 breakout boards, while the project itself seems to be functional


I received my replacement USB board (CP2102 board specified by the designer of the interface), plugged it into my two PC and one Mac systems, but it continues to be rejected as malfunctioning. I have wasted two hours doing shutdowns with battery removal for five minutes, restarts and other actions to try to get the board to talk to a PC of any type.

I hauled out my Surface Pro, yet another windows PC, and got the same error message. These little boards are s***t. I did order a brand new microUSB cable, just on the one in a million chance that my cables themselves are bad. We shall see.

Meanwhile, I need a plan B. The maker of the chip that is on the USB board has its own evaluation kits, which might get me some official support. Also, they are more likely to work than these low cost boards from China. The kit does not have the DTR and DSR pins connected, while the China board brings these out to the headers.

The interface design bridges DTR and DSR, but if the module is to work while loose, where they are not connected, then this seems superfluous. This is important because the evaluation kit boards from SiLabs do not bring out DTR or DSR to any accessible point. If I don't need them, then this board could be a suitable replacement.

Alas, the one feature that is required to run at 45 baud is called baud rate aliasing, and it is not supported by the newer CP2102N chip and the evaluation board. I would have to ensure I got a board with the original CP2102 chip to have this work. Before anyone suggests the rock solid FTDI based boards, they can't be configured below 214 baud.

There is such a board, but it is not the same form factor and connectors as the one from China. It will cost me about $35 plus shipping for this board and I might not be able to fit this into the case for the interface project since it depended on the small micro-USB board rather than this larger one.

I will wait for my new USB cable and continue to bash away at all the machines until I get one to accept the module. This is extremely frustrating when a single component isn't working and blocks progress on a larger, complex project that uses it.

I did a return of the module, second in a row that didn't work. I still have the first one, the unit where I had removed the angle pins and connected it to my board. I will use that as a final check with the new cable coming tomorrow.

Once the cable arrives and doesn't fix the problem, I will pull the trigger on the more expensive SiLabs evaluation kit board. I will then have to work out the technicalities of mounting the board since it does not match the holes established in my main PCB.

If my cable fixes it, I will stick the board back on my main PCB and test, of course. One way or another, I need a usable serial port operating at 45 baud to communicate with the project. I supposed I could go old-school and wire up a voltage translator and DB9 to use an actual serial port on an old PC, although there is no guarantee that the PC UART can operate at 45 baud so this is not a good alternative.

I decided to test my main board using a current limited power supply and some jumpers to trigger various conditions. The first is /SUSPEND, which should cause my Power LED to glow brightly. The second is TX, which should flash the Data LED. I can make various voltage and current measurements to prove out the rest of the board.

Discovered several things. First, the signals from the USB daughter card to the main PCB will be detected as high unless I ground them. They don't need 3.3V to activate. With /SUSPEND floating, it is high and my board powered up

Second, I discovered that the damned documentation for the project is wrong. The PCB has a triple LED module, three vertically arranged green lamps, claimed to signal Power, Motor and Data from top to bottom. Wrong! In fact, from top to bottom they signal Data, Motor and Power.

Grounding various pins on the PCB that would connect to the missing USB board, I confirmed that Power lights properly as soon as I flip on the on/off power switch. Now, for the voltage checkouts. Test points were provided on the board to test out its behavior. The main bus voltage should be 5V if the switch is on and the /SUSPEND line is high. I checked, pulling /SUSPEND to ground which validated proper operation. 5V when it should be, matching the Power LED.

When I ground RTS/CTS lines, the Motor LED lights.  Another deviation from the documentation which claims that Motor Control goes on when RTS/CTS is high, but in fact it only goes on when they are low. This is fairly useless as developed. I will think about adding an inverter between the USB board and the CTS/RTS lines, ensuring that this works as intended.

When I hook the TX incoming bit line to 3.3V, the Data LED turns on. Leaving it floating or at ground turns off the LED. However, while working on the board I noticed that my Power LED would blink off about once a second - the power draw went to zero coincident with those excursions. It appears that the internal power regulator is detecting overcurrent from the main bus and protecting itself in that periodic pattern.

The big question is why I am exceeding the current that this design should use. Time to check continuity and parts to look for possible issues. This may simply be due to an unconnected load and steady MARK or SPACE for relatively long durations.

I found a CP2102 board which has a full size (A) USB connector and all the requisite signals, although not matching the pins or outline of the twice defective board. I should have it on Saturday and can see if this can talk to Windows or OS X. If it works, then I can address the mounting challenges and use discrete wire to connect each signal to the main PCB board header pins. 

Tuesday, June 19, 2018

Cleaning up board, identifying bad USB module


To rule out a problem with my USB daughtercard I ordered another and expect to have it by Thursday morning. I will make sure that the software link to the PC works before I make any changes or insert it on my main board, thus ensuring that Windows, the board and my reconfiguration of the device to support 45 baud operation are all good.

I was going over my main board checking components before doing signal continuity tests when I discovered two diodes that were not connected in spite of the solder blobs left by the reflow. I decided to resolder all the points manually, which brought those components back to proper readings.

The board works differently now, as the small power LED does not light any more when I plug in the device. Checking other components showed me that quite a few of the capacitors were shorted underneath. I suspect that I have a few suspect soldering connections and will therefore remove each such component with my rework tool and hand solder them back after cleaning up any solder bridges on the board. This is tedious work, but important.

The green light is back on, but the USB board is still stuck with the red RX led illuminated and it won't respond to the PC in order to load drivers. By Thursday I will have a definitive answer about this board, but the first step is to remove it from the main PCB and see if it will chat by itself. I need to remove it anyway in order to install the new USB card.

Looking over the schematic, I see that the 5V from the USB link is only delivered to the main board when the power switch is on and the USB driver board has indicated it is out of suspend mode. As the board won't syn up with a PC, it is suspended. The PCB has a current limiting chip that has an enable pin hooked to the USB module, only allowing the 5V power to flow to the rest of the circuit when the USB module is not suspended.

This means I should not have the green power LED illuminated, especially if the main power switch is turned off. But it glows! I suspected that the RX lamp is lit on the USB module and is driving some path that reaches our power LED. I then checked the schematic and tested for continuity and shorts in the relevant areas.

Turns out the RX side of the USB daughter card is connected to a 1K resistor to ground and through a pushbutton to some other circuitry. Opening the pushbutton does not extinguish the power LED, nor is there a path from the RX signal over to the power LED at all. That means I have some other sneak circuit that delivers some voltage to the central power point of the board (and thus to the power LED), but not the 5V supply.

It has to be one of the other connected lines, TX, RTS/CTS,  or /SUSPEND. If TX were delivering power it would also light up the Data LED, so it is probably not the problem. Still, I checked for continuity and shorts for all the lines that might deliver power to the central bus (other than the intended path of VCC through the current limiter and on/off switch).

There is a path from the TX line to the input of an inverter, which in turn drives an enable pin on the charging control chip. If the inverter is blown out somehow it could provide a sneak path, from the input to the VCC pin, but I see infinite resistance with my VOM.

In any case I did a couple of experiments removing parts temporarily. With the 1K resistor lifted from the RX circuit and the Break button pushed, the RX LED on the USB board was extinguished. It came on with the Break button released, just as it goes on when the 1K resistor is reinserted. The voltage of this line is about 0.9V, which is what is present on the main bus and driving the green Power LED dimly.

I removed the inverter chip that might have leaked, even though the TX line is at 0V. Of course, the dim Power LED remained on. The measured voltage on the main bus is 0.9, exactly the same as the RX line. If the TX line were to rise to 1V or higher, the Data LED would illuminate, but it did not.

The path from RTS/CTS runs to the motor control relay chip pin but the other side of the input line is isolated by the on/off switch. I don't think this is the problem either.

The RX line passing through the Break pushbutton goes to the solid state relay chip (CPC1510G) U6 that will close a circuit to connect the RX pin to the main bus (+5V). This is controlled by the flow of 24V from the buck-boost chip, through the keyboard jack and a resistor. If there is enough flow, it will trigger the relay and connect RX to the main bus. This must be happening.

The 24 volts from the buck-boost chip shouldn't be on, since the main bus is off when we first plug in. The buck-boost takes the main bus voltage as input to produce the 24V output. There are two possibilities here. First, the relay chip could be bad, although my VOM shows it open in the idle state. Second, I might have a undetected short to some other line that produces current for the relay. Third, the buck-boost might be working anyway.

To eliminate the third chance, I inserted a dummy plug into the keyboard jack, opening the circuit. This should ensure that the relay doesn't close and pass RX at 0.9V to the main bus. Even with the removal of the relay U6 I didn't drop the main bus voltage, so if I don't have a hidden short then this isn't the cause.

I do have 3.3V coming from the RTS/CTS pins of the USB board, which would fire the motor control solid state relay U7 if the other side were connected through the on/off switch to the chips VCC. The VCC line goes through a 1.8V Zener diode and resistor, through the LED inside the photorelay and back to the RTS/CTS line..

That should cause the middle (Motor) LED to light in addition to the power one, since they would have the same main bus voltate in each case. It is not, which makes me suspect that the motor relay is inverted, it 'fires' when RTS/CTS is at ground level, turning on the motor control relay and LED, then when CTS/RTS goes high to 3.3V, it switches off. This doesn't make sense compared to the description of the circuit operation.

As long as the USB chip is not talking nice to PCs and not raising the /SUSPEND signal, the rest of the board won't be working. At this point, with my new USB module arriving tomorrow, I decided to remove the existing module to see if it talks to the PC when out of circuit.

To heap a bit of extra annoyance on the situation, Windows has the delightful practice of shutting down the USB ports for a device after a few Device Malfunctioned (error 43) situations, requiring a power down and reboot to clear it. After I completed this unnecessary time sucking task, I plugged in the CP2102 board by itself

Still malfunctioning and not recognized by Windows. Good thing I have the replacement USB board on its way. Thia was what I suspected but this proves the case. I need a functional USB module to make the main board work. 

Monday, June 18, 2018

Fixed ASR33 keyboard, built USB to teletype interface device but still debugging it


I partially disassembled and adjusted my keyboard for my teletype model 33 ASR, getting it to work smoothly and reliably. I verified the contacts using a VOM while pressing many of the keyboard keys. It is now ready to be reinstalled in the machine, while I go on to work on the call unit, printer unit, tape punch and tape reader mechanisms.

Restored keyboard module for my ASR33 teletype

The board for the open source TTYLoopDriver project uses many small surface mount components, in addition to a few through hole parts. I carefully put down solder paste and inserted all the components in place, ensuring the polarity of diodes and similar parts.

I ran this through my reflow oven, another open source project by the way. The board came out with solder bridges on three of the tiniest integrated circuits, something I had to clean up with solder braid and manual soldering under the microscope. There are also a couple of skewed parts I can adjust.

Board coming out of the reflow oven, needing tweaks
The large metallic coil in the center was enough of a heat sink that it kept the solder paste from fully flowing. I touched that up with the soldering iron. The small ICs U2, U11 and U9 had solder bridges on the leads, which I repaired by judicious use of solder braid after flooding the surface with flux. Finally, I used the hot air rework tool to remove the capacitor that was pivoted and shorting to the pivoted resistor, then cleaned up the resistor end and manually soldered the capacitor back in place.

The remaining components were through hole parts which I mounted and soldered in place. The final part was the USB board that fits in the upper left. It comes with a right angle header that must be removed. My Hakko desoldering gun vacuumed away the solder and allowed me to remove the only header. I then installed small straight headers as a mount for the USB daughterboard onto the main PCB and cleaned up all the solder.

Finished board ready for testing
After an inspection to rule out any solder bridges or other errors, it was time to do the checkout steps. First is to plug in the USB board and verify that it is supplying proper power to the rest of the board. The board is not properly reporting its ID to Windows (or my Mac either). The RX led is stuck on.

The USB board must be reprogrammed to implement the 45 baud speed and to request 400ma from the USB host, which requires the daughterboard maker's development studio software. I downloaded it but until the USB board is talking properly I can't reload the firmware or do anything else.

It seems to me that the CP2102 daughter card should be talking to the PC even if the connection is not working to the main board. Since I had to desolder the original right angle header and install a straight header, I may have a connectivity failure on one of those pins. I can see that the top side is soldered well, but if the actual signal lead attaches to the underside of the daughter board, there might be problem if I broke the via when extracting the old pins. 

My action plan is to:

  1. find the CP2102 schematic and test connectivity from the chips on the daughter board to the pins
  2. failing to find the schematic, I will unsolder all the headers, separate the daughter card and solder the pins on the underside. If I reattach it after this change, and the header modification was the problem, then it should work.
  3. in parallel I will do more connectivity and short testing of the main board, just in case it is somehow holding the USB card in reset or keeping it busy. 

Friday, June 15, 2018

Teletype stuff


Marc disassembled the entire Model 19 teletype, separating all the painted metal parts for restoration. This military unit had been repainted by brush and was quite ugly. The plan is to strip the old paint off and to powder coat the unit to make it appear like new.

We drove it over to the shop to get a quote and to let Marc pick out the color and finish. The price itself was quite reasonable and the staff were clearly able to protect threaded screw holes and other parts that had to stay clear.

Marc is wavering between a blueish-green color and a flat black, but part of the decision depends on the quality of the metal once it is sandblasted clean. If too many scratches and dings, it will need to be a more textured black color to hide imperfections. To the eye, most of the flaws we see are likely to be simply paint chips from all the layers of paint on the object.

The plan is to have the desk and the teletype printer cover sandblasted first, then Marc will come by to inspect the metal condition. Based on that, he will choose colors and have the shop continue to sand and then powder coat everything.


I brought my model 15 teletype, model ASR33 teletype and model 14 transmitter/distributor over to Marc's house to join his model 15, model 19 and two ASR33s for restoration. I tore the ASR33 down to separate the printer unit, keyboard unit, call control unit, stand and cover, in preparation for restoration.

The baseplate had foam rubber as a sound dampener, but the material had become friable and partially disintegrated. For the most part it did not become liquid and stick to the baseplate, which made cleanup relatively easy. Only the spots where adhesive was used to tack down the foam will take additional work to clean up.

While I was moving my model 15 printer unit around in my garage earlier this week, the work gloves I had on snagged onto a spring on the side of the printer unit and released it. I needed to search for the spring in the garage, but first it was important to know where it was formerly attached.

Using the model 15 at Marc's house as a guide, I identified every spring on the left side of the printer unit and matched against my unit, thus locating the missing spring. It attaches to the carriage return dashpot arm, to restore the dashpot which is an air dampener that absorbs shock from the carriage slamming to the left edge.

Dashpot restore spring, missing on my model 15 printer
The arm will push into the dashpot, converting carrier motion to air compression and spreading the deceleration over a longer interval to minimize G force. The carrier rebounds to the column 1 position and the spring then pulls the dashpot arm out to ready it to handle a subsequent return. I found the spring in the garage where it was pulled off by the glove.

My ASR33 keyboard is not working properly. Each keypress should set the sliding rods to reflect the ASCII code related to the character on the keycap. Lubrication has hardened and gummed up the works a bit. I worked the mechanism, cleaning off old grease and inspecting the condition. 

ASR33 keyboard module
Now I see every character encoding properly on the switch contacts on the side of the keyboard, but I am not happy with the trigger and release that fires the distributor to serially encode the result of a keypress. The keypress pushes on the universal codebar, which trips for every key. I don't see it trigger and then restore properly between button pushes. I will study the mechanism and manuals, then adjust whatever is needed until the keyboard works as it should. 

Wednesday, June 13, 2018

Worked on 1401 systems at CHM, two fun kits


Today we met to work on issues with the 1401 systems, particularly the inability of the German system's 1402 to read cards successfully. During a special visit of the "Fortran Geezers" on Sunday we ran Fortran compilations using a low density tape we had created. We discovered that one of the tape drives would not switch between high and low density.

Investigating the tape drive, Alan Palmer and Marc Verdiell found the contacts of the pushbutton were not working properly. A bit of work corrected that, allowing the drive to switch between Low and High density. At that point, a second flaw was discovered, a bad light bulb in the High Density display; a replacement bulb was put in place.

The card reader has a central shaft that rotates once for each card feed cycle, activating a number of cam based timing switches and the picker knives that grab the bottom card and shove it through the hopper throat and into the maw of the reader. The picker knives are driven by two cams, metal objects with hard plastic molded over them.

Due to improper adjustments in the past, the picker knife mechanism would slam back against the metal frame, applying excessive shock to the picker cams. The plastic was dented, fractured and gouged. This caused the picker knives to move at variable times, leading to the physical card moving out of sync with the rotating shaft and its timing switches.

The reader was disassembled and the bad shaft removed. We don't have a spare for this in our workroom. We have two ways to address this problem. If we can find a machine in the museum storage area that is surplus, thus amenable to removal of parts, we can swap the damaged shaft with a good one. If not, we have to machine a replacement.

To be surplus, the museum must have several of the machine and designated one or more as available for these purposes. Machines with only a single example, by contrast, cannot be touched as they must reflect the exact condition they had when donated.

The card reader mechanism is used in several IBM products, not only the 1402 reader/punch. The 2540 reader/punch and the 088 collator are so similar that they would have the same shaft with picker knife cams. We will explore this next week in the hope that we can repair the 1402 easily.

If we are forced to machine a replacement, it must also have a similar very hard plastic over the cam which makes the fabrication much harder than simple metal machining. 


I bought kits from Evil Mad Scientist to build large versions of the 555 timer and 741 op amp integrated circuits, using discrete transistors and other components matching the circuitry on the silicon of the real ICs. These work when wired in place of the 555 and 741 (with some performance limitations due to the large size). Mainly, the look cool and are a fun.

The ubiquitous 555 timer chip

Widely used 741 Operational Amplifier chip

Saturday, June 9, 2018

Picking up some teletypes


I picked up a Teletype model ASR 33 today and brought it home. It is in pretty clean shape, but will need restoration to get it working properly. There is also a front panel and knob missing.

My ASR33 teletype
On eBay I saw a model 15 for sale, actually the military TG-7-B model which is mainly different because it fits into shipping crates for transportation in the field. It had a low starting price and no apparent interest from others, so I placed a bid and won it for $99. I do have to drive down to southern California to pick it up, but it is a great deal even with that.

A TG-7-B teletype
Keyboard of my machine
Finally, I was given a model 15 Transmitter/Distributor (TD) which is a unit that reads paper tape and transmits it as serial data. This will allow me to use paper tape to drive the printer.

Data in parallel from tape on left, serialized by rotary encoder

Friday, June 8, 2018

Working on teletypes, laptop and refrigerator repair


With my disk cloned to the new 1TB drive and swapped into the machine, I could apply maintenance, remove items I don't want and get this system ready for my use. I have the original 250GB hard drive in an external case to protect all my daughter's files.

At noon I noticed that the machine is reporting only 2GB of RAM, insisting that one of the two memory slots is empty. Perhaps dust was in the connector, which might explain the problems with the memory upgrade that I have already sent back for replacement. I cleaned a bit and restored both RAM modules, now the system is back to 4GB, while I wait on the substitute to arrive.

Finally the new modules arrived, but exactly the same results were experienced. Neither module will be recognized in either of the two RAM slots, while both of my 2GB modules work fine. I guess I will abandon hope for an 8GB upgrade and return the new set of boards for a refund.


At Marc's on Friday to work on the teletypes. Our objectives were to complete two tasks, stripping wiring from the desk of the model 19 and checking out the keyboard assembly.

After we found the complete wiring diagrams for the desk, we were comfortable removing all the wires and receptacles. This took almost three hours, since the wiring is a rats nest of crisscrossing cables, quite a few routed through armored cable with 90 degree caps.

After unsoldering just two wires, we were able to wrestle all the rest out of the desk and complete the stripping down of the table in preparation for repainting. We looked at the large number of parts, wires, sockets, cable trays and switches from the desk, in addition to the large pile of parts from the teletype equipment that sat atop the table.

All the metalwork is loaded into Marc's car, ready to be delivered to the restoration shop which will sandblast and powdercoat everything. The most likely color is black, the same as the military version, but all options remain on the table until the shop begins work.

The keyboard and perforator mechanism is relatively simple and probably can be restored adequately without complete disassembly of all parts. We separated the printer, keyboard/perforator and the motor baseplate units. These come apart easily, held in by thumbscrews and sliding apart immediately.

Rotating the keyboard/perforator mechanism by hand, we confirmed that it moved easily and that the keypresses were converted properly into serial bits as well as setting up the perforator pins as parallel bits. There is dirt and mild corrosion to be cleaned up, but we think this can be cleaned entirely by dunking in Simple Green and scrubbing. If there was resistance or erratic motion, indicating solidified grease, then we might have had to disassemble every part for cleaning.

The motor baseplate also looks good. It has both DC and AC power connections, with the DC line used to operate the 60ma 120V solenoids in printers and reperforators. The AC line simply spins a synchronous motor that will provide the impulsion for both keyboard/perforator and printer operation.

The baseplate is also dirty and will be cleaned. There are some current limiting resistors to clean up and check, but with a freely rotating motor, this is likely to work perfectly as soon as we power it up.


Our kitchen has a 42" wide Kitchenaid built-in refrigerator, with panels on the front that match the custom cabinet work. Because of the wood panels, which are cut specifically to the size of the year and model refrigerator I own, I couldn't use them on a replacement refrigerator. To maintain the look of the kitchen I need to keep this machine operating.

Several years ago it began to report errors and didn't keep the freezer and refrigerator sections at their target temperatures. The repair service sent by Kitchenaid informed me that the maker of the mechanism, Whirlpool, does not stock replacements for these boards although they fail often.

A refurbished unit was placed in the refrigerator and that restored operation until recently when I began to see the temps climb in the freezer portion. Rather than maintaining the 0 F target temp, it would climb to 6 or 7, go back to zero, then soar to 22 or as much as 42 when it began beeping its alarm.

Shutting it down for 15 minutes would sometimes get it to cool back down, but anytime it got into the mid 70s or higher outdoors, this would start again. Lots of food had to be thrown out each time it let the freezer get too warm. We scheduled a repair service, hoping that they still had refurbished units to install.

Today the repairperson arrived, swapped out the board and restored the unit to proper operation. I know that I have a reprieve of at least a year, since they offer a one year warranty on the fix. 42" wide built-ins run from around $7,000 to well over $10,000, in addition to losing the wood panels that match the kitchen cabinets.

For just a bit over $700, I deferred a much larger expense, hopefully for quite a few years. The repair service was well worth it. There are internet based repair services for less, who will refurb the board but I have to remove it, mail it to them and wait for it to return; all during that time the refrigerator will be inoperable.

Wednesday, June 6, 2018

Restoration of 1401, MacBook Pro, Mac IIci, and work on Documation USB interface


This morning I dealt with the passwords on the system, many of which my daughter can't remember since years have passed since she used it. The solution was to boot to single user mode, remount the root partition to be writable, and delete the file that tells OS/X that it had completed setup.

With that file gone, it took me through a fresh setup dialog, including the chance to create an administrator account with a known password. From there I could replace all the other passwords, giving me the ability to do anything I need.

The existing system has 4GB of RAM and a 250GB internal hard drive which is choked to saturation with my daughters files. Once she has retrieved the files she wants I can clean up and have room to apply necessary updates.

8GB of RAM is inexpensive enough that I ordered it, along with a 1TB 7200 RPM hard drive. We shall see how well it performs, with those upgrades installed. I did get the upgrades and cloned the internal disk to the 1TB replacement, but the 8GB of RAM did not work. After trying everything suggested by the vendor's tech support staff, there is a replacement on the way.


I got the replacement FTDI based USB to parallel port boards and began to replace the damaged boards on my two interface PCBs. First step after installation was to verify that they communicate reliably with the PC side program, before wiring one into the card reader. Sadly, I damaged the first one while removing the original right angle header pins.

I worked more carefully on the second board I just received. Getting the old pins out was no problem but placing the new straight header pins took quite a bit more time. Although the soldering was fine, for some reason it wasn't able to communicate to the PC.

I did some continuity testing on the USB daughterboard and found that the external pin for signal D7 was not connected to the same signal pin on the FTDI chip onboard. The solder joint looked good and the trace was seemingly undamaged, but no connection.

Apparently good solder joint and trace leading from it
I scraped off a section of the trace at an accessible point on the edge of the board, verified connectivity, and then soldered a jumper wire. Now, D7 from the FTDI chip is connected to the external header.
Poorly focused but exposed trace where jumper will be soldered
Jumper in place to restore connectivity for D7 signal
Alas, testing this still didn't result in communication between the PC side and my interface board. Since I verified the connection of every external pin to its source on the FTDI chip, any connectivity problem must exist on my main interface board. That is, unless somehow a chip is blown. The PC sees the USB device and sets up the serial COM port for communication, making the daughterboard appear to be working.

Found another suspect solder joint on a different cable, which I cleaned up. Still no communications, but it seems I am getting closer and closer. As long as it isn't a bad chip I will eventually get this chatting with the PC. In the meantime, I worked with the other board that I completed, which does talk to the PC reliably it appears.

The card reader does not appear to be working properly - which may be an issue with my wiring or something that was already wrong in the reader itself since I hadn't done a full test of this device before. I can see the EOF signal go on and off, as well as reliably reflecting the front panel status conditions such as Hopper Check, Pick Check, and Read Check.

What isn't happening properly is reading. I see the program issue a Pick and the card moves through the machine, but the software is still waiting with the pick active. I need to put the scope on the reader to verify that it is delivering the response that the controller expects to the pick, which is BUSY signal going true. That signals that the leading edge of the card has reached the photocells.

Sometime after BUSY goes true, we should see 80 Index Marker (IM) pulses which tell the controller to sample the 12 data lines. The controller design by Brian Knittel ignores the BUSY line, thus the only way the controller chip could know that a card has been read is to see the IM pulses.

All of this suggests that I am missing the IM pulses, so that is first up on the diagnostic priority list.


Today we verified that the spurious Reader Check and Validity Check errors on the German 1401 system were indeed caused by the SMS card I identified last week. We ran the machine for quite a while without errors, after which I put the suspect card back in and began to see the same errors again. The good card was reinstalled and the machine run for quite a while with no errors.

The software archiving group brought a donated Mac IIci to me to restore, allowing them to archive a large batch of Mac related software. I helped them make a list of replacement electrolytic capacitors and CMOS battery, which they ordered from Mouser and handed to me this morning.

There were a few axial through-hole capacitors but most were surface mount cans. I used my vacuum desoldering gun and hot air gun to remove all the original capacitors. We cleaned the board, particularly the spots where leaking capacitor fluid were found.

I didn't think to bring solder paste, so I had to attempt to solder the SMT capacitors to the board using a regular soldering iron and careful technique. The through -hole were easy, of course. The machine sprang to life and works perfectly now.

Friday, June 1, 2018

MacBook Pro repair


My daughter had a MacBook Pro, a mid 2010 13" model, from when she was in college. It wasn't working, a couple of keys were broken and she handed it to me for disposal. I did a bit of research and found that I could buy a replacement keyboard mechanism for under $17 including shipping, if I could get it working.

I forced a reset of the management controller and it came up. Based on that, I ordered the keyboard and waited for it to arrive yesterday. I researched the process of swapping the keyboard and discovered that it requires removing essentially every part of the body of the laptop before you can get to the keyboard. Yikes!

I set the laptop up on my workbench, with the teeny phillips, Torx and tri point Y00 screwdrivers that would be needed. Taking plenty of pictures and working slowly, I filled a large egg carton, cell by cell corresponding to each step where screws are removed, and the other parts placed in order.

The keyboard itself was screwed to the case with 54 Phillips 00 or 000 screws (very tiny screws). I removed them all and put the replacement keyboard into the case. Tweezers and screwdriver in hand, I placed and tightened all 54 screws. Next I had to replace the backlight for the keyboard.

Layer by layer I put the laptop back together, sliding ribbon cables into their connectors and plugging in a myriad of other connectors until everything was together. While opening the laptop I realized that one of the two memory boards was loose, not properly seated in the machine. Having 2MB rather than 4 would certainly contribute to the slowness my daughter had experienced.

The laptop came right up, performs well (for a 4GB mid 2010 era machine) and every key works properly now. However, my keyboard backlight isn't working. When I next open the laptop I will reseat the tiny ribbon cable, as that may be the problem, but even without backlit keys it is a perfectly usable system.

I will now look into buying larger DIMMs to increase the memory to its max of 8GB (two at 4GB), plus perhaps a larger internal disk or SSD. First I need to work with it a while to decide if it is fast enough to be worth the upgrade. Meanwhile, there are some old files my daughter wants to retrieve before I do a clean install onto the machine.