Monday, March 2, 2015

Driving the printer and checking its operation while waiting for my SAC interface boards

It was a very heavy work day for me today, but I did get to spend a bit of time with the system.


I worked on some code I can use to exercise the printer. This should work out any sludge and uncover any residual incorrect operation. It was built and tested on the IBM1130 simulator before transfer to the physical 1130.

My code wasn't perfect, but it did drive the printer and made me more confident in the basic soundness. I still see signs of residual stickiness but not that bad, and hope it can be worked out by exercise. As well, I still have one column not printing.

As I first entered the code, it printed three of the four letters of my name, but which one didn't print was random. This means my logic for counting down and searching through the list of characters is flawed. When I switched it from four characters to just one, it was printing different characters than I selected.

I think it most likely that there is a bug in my code, worth a bit of desk checking or single step execution on the simulator. I am still cataloging possible defects - the first known issue is the missing print column. I will put a scope on the solenoid for that column plus one that works fine, verifying whether the issue is mechanical or electrical. I could have a bad SLT card or wiring, or it could be a stuck lever.


The boards are on their way to me, having finished fabrication, left Shenzen and was put on an aircraft in Hong Kong. The shipment has ten copies of my interface board, each 6.5" by 3", which will have installed many surface mount transistors, resistors, capacitors and 36 small signal diodes. It landed in Los Angeles and has cleared US customs. This should arrive in just a day or two at this rate.

Multiple SAC interface cards ready for component placement and soldering

My FPGA board arrived in the US and slipped into the black hole of the US postal service on the 28th in NYC. Finally on March 2nd at night it arrived in Brooklyn - it must have ridden on a snail to take that long to move a few miles. It should return to our universe at my doorstep at an indeterminate future date, hopefully during this week.

Sunday, March 1, 2015

Printer working fairly well in initial tests, also source code extracted from tape


I removed the magnet unit and then watched the machine run with that out. I could see that the restore latches weren't moving! No wonder it was printing eternally. Out came the restore latch assembly as well. Yes, that is the one that took hours in order to insert the pins upon which it pivots.

I carefully evaluated the position of the restore latch assembly, after which I re-installed it. The pins only took me 45 minutes in total for the pair - definitely getting faster at this. I then installed the big magnet unit in place. Running it quickly showed me that the restore latches needed a bit of adjustment, so I rotated them to make them swing further.

With power applied, the printer did a single cycle and then latched all the 120 print columns - blissful quiet with the printer just idling away. It is now time to put on some of the cosmetic sheet iron fittings to the left and right side, since these won't block my access to make any needed adjustments.

It is therefore time to write and toggle in the short program to print "carl carl carl . . . " across the line. As a brief recap of yesterday's tutorial, the program will issue Start Print and then wait for printer interrupts. The printer will interrupt us as each character around the print wheel is rotating into printing position. We respond to the interrupt with a Read Emitter command to fetch the encoded value of the newly arriving character, but only when it is 'c', 'a', 'r' or 'l' will be set on bits in the printer scan area 0x0120 to 0x0127 causing the relevant columns to print that character.

After writing the program and its interrupt handlers, I toggled it into core memory on the 1130 and prepared the printer for a test. When I let it rip, the result was not so good, but it appeared to be problems with my code. Rather than waste the waning daylight with debugging of some hand code, I changed it to just print whatever character first is ready to print, across all 120 columns, then stop the printer.
Result of first tests, printing 120 columns of whatever character is first ready to print
That worked well. I am seeing a few signs of residual sludge which should work its way out with some sustained printing, but generally it looks very good for a first test. I see one column that is failing to print sometimes and out of 120 columns there might be 1 to 3 that print an adjacent character. The adjacent characters are caused by slow movement of the various levers and the column that doesn't fire would be another situation of sticky levers. I believe I saw all the columns fire correctly at one time or another out of the dozen or so times I printed with my test code.

Video of first test printing on the 1132 printer

I have put all the cosmetic parts back - other than the doors and sides that I had off for access. As soon as I can get the card reader working, to read in the 1132 diagnostic decks, I can really exercise this. I will try to build out some solid code using the 1130 simulator, which could let me print patterns sooner.

All but the side and front covers installed - ready for further testing

Lyle Bickley was successful, after a bit of effort, in reading the entire tape and converting its data to files on a CD disc. I looked them over and converted them from EBCDIC to ASCII text files, unblocked to single 80 character card images, using a quick python program I wrote. I then sent them to Clare Owens.

I will save the files as well, using them as further examples of 1130 and 1800 software.

Part of one of the source code files on the tape

My ZTEX fpga board was transferred from customs to the postal service in NY yesterday, just not sure how many more days in transit before it is delivered. My expectation is that it arrives this week, however, so I have to be ready.

I need to work out the pin assignments and VHDL signal names for use with the new board and get them into the code for the interface. I also have to put in the code for the new EZ-USB link that replaces the Digilent USB link I had been using. This likely requires installation of a tool chain for the open source USB functionality.

On the PC side, if I choose to use Python as the language for any software I write, I will need a python interface for libusb in order to communicate with the board.

Saturday, February 28, 2015

IBM 1132 Printer reassembled and testing underway


I can't get the clutch latch lever assembly out for a proper cleaning, because it is situated where it would require almost total dis-assembly of the printing engine to reach the attaching screws. As well, all the places I need to get new oil inside are all above where I can access them - hard to get oil to seep upwards.

This makes it a very slow process - the clutch latch lever slides into two 'comb' structures as well as rotating around a pivot rod. Sludge in all three places contribute to sticky levers. The have a spring inside that should push the lever immediately outward, but many either stick in the wrong position or creep out very slowly.

After several hours of persuasion and lots of washing out and drying with an air can, I had all 120 columns moving adequately well. Time to figure out how to get oil into the parts I just cleaned. Once I put oil on the parts, I can begin assembling all the removed bits of the printer.

I decided to pick up a small oil sprayer, originally designed for gardening and similar tasks, as this should let me spray enough oil in to do the job. I picked it up at Lowes and while it spurted more than sprayed oil, it was enough to get the key points covered with oil.

Reassembly was a slow and careful process. The comb bar that partly covers the clutch latch levers was first to go into place. As I tried to fit the restoring levers in place, I found it impossible to get the locating pins to slide in, even with the bolts loosely threaded. I took a break, checked my manuals, and discovered I was trying to install it upside down!

With the restore latch assembly oriented properly, I found its installation to be quite a bit easier (doh). Note that this is still not easy - it took about 40 minutes of painful wrestling to get to the point where the first pin could slide into the latch bar, even with the bolts in place. The second pin took another hour, because there were plates and other objects in the way that made it almost impossible to use a hammer and rod to drive it in. Glancing blows and pressure did very little. Quite annoying.

Once the restore levers were in place, the cam detente lever assembly was next to install. That was already held in place by one of the two sets of bolts, thus only needed to be rotated into position, pins pushed in and then the final pair of bolts installed.

The idler gear on the gear train had been loosened and slid partway off its shaft just to permit the bolts and pin for the restore lever assembly to have been loosened. I had to push the gear back in place - these are bakelite gears on a steel hub, not all steel, interestingly. The circlip put back on the gear shaft, it was ready to rotate.

The magnet assembly has the 120 solenoids plus the two levers per column that extend the action of the solenoid to push the clutch latch lever off the cam disc clutch dog. I slide this assembly into place and bolted it down. At this point, the printing mechanism itself was completely installed, but a few tasks still remained.

Print mechanism back together, ready to start testing.
After a check of all the bolts and attachments, to verify it was back together completely, I was ready for a test of the printer. First up was a power on inspection - followed by turning on the motor to see that the mechanical bits weren't crashing together or chewing themselves up. No damage but it was printing all 120 columns continually - kac-hing ka-ching ka-ching ad infinitum.

I am investigating possible causes and figuring out what to test to confirm the diagnosis. Not sure I will be able to move forward today, with this small setback. On the other hand, all columns do print which means I have free motion of the print wheel hangers.

I suspect that it is the way I assembled the magnet assembly (solenoids) - as these levers should hold the clutch latch in, keeping the dog from engaging to spin any disc. I will try removing and more carefully re-installing the assembly, which hopefully will resolve the problem.

Once I have this problem identified and fixed, it will be time to hand toggle a program to print some characters. Probably tomorrow since it is after 9PM already.

Most printers have a control unit with logic to handle details such as matching a desired character to the current type element that is flying past on a wheel, drum or chain, triggering the hammer at the proper time, and therefore just accepts a print line from the program and interrupts to signal completion.

Not so with the bargain basement 1132 printer. Much of the work of printing a line, that would be built into the printer itself or a control unit or as a printer driver inside a different system, was left to the software in order to skip the cost of additional SLT cards.

The printer has a set of 120 wheels, one per column, that rotate at a bit over 100 RPM. There are 48 positions around each wheel, thus the printer supports 26 alphabetic characters, 10 numeric and just 12 other characters to handle period, comma, question mark, exclamation, pound sign, dollar sign etc.

The end of the print wheel shaft has a metal disk with several concentric rows of circles that are read by photocell detectors. The disk has holes punched in the concentric circles to encode which character of the 48 is about to rotate into proper position for printing.

The programmer may make up a print line of characters, but that is not sent to the printer. Instead, when the line of print is read to be printed, the programmer issues a command to the printer, Start Print, which begins interrupting the 1130 each time a new print character of the 48 around a wheel comes into position on the encoding disk.

In addition to sending the interrupt for each print wheel position, the 1132 clears out a bit in a special fixed area of core memory. This bit must be set on by the programmer before the printer mechanism has rotated to the point where it has to fire hammers to print the current character. If the bit is not on, the printer detects a 'sync check' which means that the software wasn't fast enough to set up which columns to fire.

The program handles the interrupt by issuing another command, Read Emitter, which returns one word which is the value encoded on the disk. Now that the character is known, the software looks over its print line and finds which columns, if any, have that character to print. The fixed area in core memory is set with a 0 if the column is not to print, or a 1 when the cam disc should rotate to slam the print wheel into the ribbon and paper. Columns 1 through 16 are handled by the first word of the fixed area, location 0x0120, columns 17 to 32 are in 0x0121 and the final word in 0x0127 has 8 bits for columns 112 to 120 plus a final bit that is set to 'prove' to the printer that the line is ready to print.

The interrupt for a character precedes the time when the wheel is in the proper position to print, giving the software time to be interrupted, read the emitter value, look through the columns of the print line and set up the bits in words 0x0120 to 0x0127.

The printer executes cycle steal operations to fetch the eight words of memory starting at 0x0120, preparing to unlatch the clutch dog on any column that should print. When the mechanism is ready and the character is ready, the solenoids fire and the cam discs spin around for the chosen columns.

The program remains waiting for further interrupts, as various characters come into position around the print wheels, each time firing the columns that should print the current character. This may progress 48 times if the line has every possible character in it, but the print line could have all its characters completed before that point arrives. If so, the program issues the commend Stop Print which blocks any further interrupts or cycle steals.

The program then has to delay a certain amount of time to let the mechanical process of spacing down one line to complete. If the software wants to skip ahead to a given position on the carriage control tape (one of 10 channels, 1 to 9 plus 12, will have a hole punched on the line where the printer should stop).

The printer then interrupts the 1130 for every line where one or more of the channels is punched, allowing the program to decide if this is a match to the intended stopping position. If the user wants to stop, a suitable command is issued to the printer otherwise it keeps moving down the page.

On most other printers, the software would issue one 'print' command, point to any location in memory that begins a 120 character line, then wait until the interrupt came in with status - hopefully that the line printed correctly. Quite a bit more programmer friendly than was the 1132.

My hand coded test to be toggled in, is intended to print my name plus a space repeated across the entire line. The program looked at the code from the Read Emitter operation, firing columns only when we saw a 'c', 'a', 'r', or 'l'. Pretty simple but it does verify much of the printer operation.


I removed more signal pairs and labeled them - all of old board two is now done. Just 29 more signal pairs and I will be done. Having freed up enough room to work, I could remove the Digilent FMC Carrier S6 board and the Xilinx FMC Debug card, making room to install my new ZTEX Spartan 6 fpga board when it arrives.

The fpga board was transferred from Deutsche Post to an air freight carrier in Frankfurt two days ago, which presumably means it is in the US and clearing customs now. I hope to get a further update once it is transferred to the US postal service. My new PCBs for the interface circuitry are in process - a 72 hour turnaround was purchased - after which they will be forwarded to DHL Express for a 3-7 day transit to my home. With luck, I will receive before the March 7th but certainly before the following week is out.

Friday, February 27, 2015

Beginning cleaning of final 1132 printer levers, nearly done with rehabilitation


I opened and worked on the clutch detent lever assembly some more and am now satisfied it is working properly. I inspected and tested all 120 clutch dogs (the lever on the side of each print cam disc that will rotate down into a slot on the axle when it has been released, so that the cam will spin around once to print a character). It is time to re-install the guide bar and clutch detent bars on the machine.

What is in awful condition is the set of clutch latch levers that sit at the bottom rear of the clutch cam disc group. These should pivot inward and hold the clutch dog out of its slot untl the clutch latch is released by a push from the solenoid actuated rod. The restoring lever pushes the clutch latch back into position so it can hold the clutch dog and thus stop the disc from making more than one circle of the shaft on each actuation.

Clutch latch levers at bottom, pivoting into the clutch discs
I am going to try to flood the pivots with oil or otherwise clear them, hoping that they begin to move as the should. It would be best if I could lift them (the entire bar of clutch latches) out of the machine as I did with the other lever assemblies, but this requires a ton of additional disassembly first.

Specifically, I would have to disassemble the gear train, remove bearings and lift the cam clutch cylinder with all 120 cams out, then disconnect and lift out all 120 print wheels. Not only a lot of work, but it introduces the need to do timing and adjustments I would rather than disturb unless I absolutely must.
Gear train that would have to be disassembled, along with print wheels, to lift out clutch latch assembly
The print wheel hangers have a pivot that is right on the top, directly accessible for lubrication, which is perfect for my purposes. I don't think I need to remove the print wheel assembly, as a result. It means that the only issue standing between me and a working printer is the set of clutch latch levers.

Pivot bar for clutch levers visible on left, sticky levers pass through guide bar on right
I spent a bit of the afternoon out working on the clutch latch levers. To have better access, I had to remove a bar that provides grooved supports for the spinning cam clutch discs - this had two allen head bolts holding it on. The left bolt was so frozen in place that I was gradually destroying the allen shape in the head, no gripping tools could turn it from the outside, and it was clear I had to do something extraordinary to remove it.

Troublesome allen bolt, before forced removal
The solution was a chisel and hammer, cutting a slight groove on one side of the bolt head, then striking it at a near tangent angle to force it to rotate. I was able to get it turning and remove it the rest of the way with a normal allen wrench. The bar then had to be persuaded to come loose - its locating pins kept it snugged up even boltless.

With the key points on the clutch latch levers being above my access point, the oil will have to be forced upwards against gravity in order to lubricate it. Washing the surfaces with oil is not an option. I had to use a residue free spray cleaner to free up the gunk, after which I will oil the mechanism as best I can.

Even with the spray, it takes time to work each lever until it moves freely enough to work properly. They should all pop out as they have springs to pull them out to the rest or triggered position. When a solenoid activates, its long lever will slip this latch lever off the clutch disc dog, the spring will pop this clutch lever out, and as a result the clutch dog will be pulled into a slot on the clutch disk shaft, spinning it around.

Late in the rotation of a disc, a wider part of the disc circumference will push on the restoring lever, which in turn pushes the clutch latch back up into contact with the clutch dog. That resets the dog out of contact with the spinning shaft, then the detente levers hold the clutch disc in the rest position until it is triggered for a later print operation.

My print wheel hangers are rotating well, so everything is ready for printing once I get these clutch latch levers working smoothly. It took about 20 minutes to get a group of 15 columns moving freely, so about two or two and a half hours more to work through all 120 columns.

I didn't finish this tonight, so more to do tomorrow until I have all 120 of these clutch latch levers working well. A bit tedious but straightforward.

Right-hand group of clutch latch levers freed up and moving well
Perhaps 30 minutes additional will be needed for final oiling of the mechanism and then I can begin reassembly. I feel good about the chances I will have a properly working printer at the end of this effort.


I met with Lyle Bickley, who will help by reading the tape and storing any content in a transferable file in simh (widely used machine simulator) format suitable for use with the IBM 1130 simulator. I can then send it to the owner.


My components came today for the new SAC interface cards - 50 of each resistor in 0805 size surface mount, 100 of the 33uf tantalum capacitors in surface mount 1206 size, 150 BV52 transistors in surface mount SOT-23 size, and 50 1N4148 signal diodes as discrete (wire-through) parts.

I also spent some time verifying and tagging all the signal wire twisted pairs that will go on the new cards, coming from the large cable connector out to the 1130. I completed the first of the old cards, 12 input and 12 output signals, plus 12 input signals from the second old card. There is a third old card plus five extra circuits on an otherwise bare fourth old card; these signal wires should all be labeled correctly, ready for assembly to my new cards.

Thursday, February 26, 2015

More 1132 printer cleaning, rehabilitation and oiling


Spent a couple of hours working on the printer - freeing up restore latches and ensuring the cam clutch discs rotate. The restore latch bar has one of its attachment screws directly behind the edge of an intermediate drive gear, which prohibits removing the restore latch bar unless I disassemble the drive and quite a bit of the rest of the printer. Going to work on the latches without further removal.

I oiled the pivot points of the print wheel hangers, but it is hard to move them except by rotating the cam clutches. These won't relatch into the idle position due to stiffness in clutch latch levers, which are devilishly hard to reach or work on with the cam clutch shaft in place.

Oiling and moving the restore latches, but a few of them don't pop back out as they should. It doesn't feel like sludge holding them, instead I don't feel the spring tension that ought to pop them back up. It might be dirt keeping some springs compressed, or it might be a spring failure.

The access to the restore latch springs is placed on the side and angled a bit downward, meaning that the latch bar MUST be removed to safely open the access and clean the springs. I am sorting out how to remove the intermediate gear, before removing the restore latch bar.

It worked out well enough to just remove the circlip and the bolt, slide the intermediate gear out partway, which gave me room to pull the teeth of the last bolt free from the bar without the bolt having to come all the way out. I put that assembly aside and looked at the state of the cam clutches and clutch latch levers. The latch levers seem very sticky, obvious from the uneven state they are in right now.

I will do my best to clean these up in-situ, because the removal requires removing the cam clutch shaft, cam clutches, and the print wheel assembly! Basically a complete tear-down, which I don't want to do. I think I can work oil into these and make them perform adequately.

Clutch detente levers at top, restore levers at bottom, plus guide bar on right
I read over the history of the restoration of an 1132 at the National Museum of Computing in the UK - they didn't take the unit apart as I did but their experiences show that it had many of the same sticky levers. At first, some columns wouldn't print or would print repeatedly or slam in the wrong character. Over time as they kept printing on it, the issues sorted themselves out one by one - symptomatic of the sludgy grease warming and clearing out through usage.

I had to open the spring access plate of the restoring latch assembly, clean and oil the springs, then carefully re-install the plate. That was extremely difficult, with 120 tiny springs attempting to bend around the edge of the plate. I was able to ultimately get them all installed and tightened down, work in lubricant across the levers, and ended up with this assembly working perfectly.

My cam detent lever assembly from before still has some columns that don't pop all the way out. I suspect that if I open the spring access plate again, I can get these all working properly as well then lubricate all the pivot points.

Cam clutch discs, with clutch latch levers visible at bottom of disc
Next up, tomorrow, is an attempt to clean and rehabilitate the clutch levers and the print wheel hangers without the total disassembly of the printing mechanism. If I am successful, I can put it all back together and do some testing.

Clutch latch levers, obviously gunked up and sticky

Wednesday, February 25, 2015

Continued 1132 rehabilitation, SAC interface boards out to fab


A reader of this blog pointed out an auction on eBay of a 360 model 40 front panel in good condition, designated as only for sale for local pickup by some from the bay area.  Because these don't show up often, I reluctantly bid on it, which would have created another enormous project - building an fpga replica of the 360/40 processor that would power the panel. I had mixed feelings and thus am not upset that I was outbid. Back to the 10,000 tasks already in my queue.


In order to free up, clean up and relube the rest of the print mechanism, I have some disassembly to do. I began removing screws to lift off the detent latch and restoring lever bars along with their attached levers. These can be rehabilitated once removed. It also gives me more access to the print cams, where I can evaluate the feasibility of cleaning and restoring the cam, attached dog and the associated detent link as it sits. if that seems unlikely, I will then remove the print cam assembly which actually involves removing the carriage and lots of the rest of the printing mechanism.

There are several sheet metal shapes in place blocking some access to the screws for the restoring lever screws and the print cam shaft. I have to remove or loosen these enough to tilt them away when I am accessing certain screws. I got partway through before the evening arrived and I went in for dinner.

Later, I removed the top bar which was the cam detent assembly, moved it to the workbench and began to work in lubricant. I discovered the levers moved well enough but for some columns, there was noticeably less spring tension returning the bar to its idle position. I opened the chamber and boiled all 120 springs, working them in and out of their channels.

Detent assembly, the spring loaded levers should all be at extended rest position

Pivot side of the detent assembly - unevenness very evident

Closeup of sticky levers
Little springs in their channels, pushing the detent levers outward
With the bar back on, I still have a few columns where the bar doesn't return to the same position as the rest. Nothing is obviously wrong with the springs, but I might need to find replacements for the few that are weak. Less than five of the 120 columns are failing to spring back as strongly as the rest.

The next bar to remove from the printing mechanism is a double decker bar that holds the restoring latches. I will pull that out and get all of those working freely too. Each of these bars has the tiny springs inside, thus I may find a few more springs that need replacement. I actually don't know if the spring issue is bad enough to cause printing problems, but I can make a determination with the bar back in place; if the cam doesn't lock into position on the weak columns, the spring needs immediate replacement, otherwise it might be a longer term restoration task.

Cam discs in top half, double decker bars hold restoring levers (bottom half of picture)

I have enough room now to inspect the cams - a few are sticky but there is enough access so that I can get oil to all of them such that they will all rotate freely. The print wheels hang from a pivot that is directly accessible, allowing me to get enough oil in that I can assure they move properly.

Print wheel pivot points, one character on print wheels visible just above pivots in picture
Cam clutch disks, dog latch rotating on side pushes into the fluted slots in shaft to spin cam

Two mechanisms are still hidden and might force me to do more dis-assembly. First is the cam clutch latch which sits on the other side of the cams from where I am servicing them, and below the axis point too, thus directly behind the cam from my vantagepoint looking in on the machinery. Second is the dog latch with spring that is on each rotating cam plate - it needs to swing in and out  if the cam clutch is to engage to print a column - but with them deep in between the parallel cams, any dogs that don't free easily may require dis-assembly of the entire print clutch/cam unit.

Clutch latches are directly under the cams - far side from this point. Dog latches are on sides of discs. 

This will take a few more days but so far I am satisfied with the progress I am making. It appears to be possible to get this assembled again and printing well, just by finishing this cleaning and lubrication work.


I meet a small group from the restoration team at midday and we went to work on various parts of the systems. One group had to disassemble and repair the punch on the German 1402 reader/punch as it frequently jams. We discovered some misalignment of parts and wear, which forced the team to tear down the unit quite a bit.

I did a quick replacement of two console panel bulbs that had burned out on the Connecticut 1401 system, then turned my attention to a problem the German machine has with its tape drives. The system writes a string of characters, for example 123456789 then backspaces and reads them back. The write completes with  no error but the read returns 1337777 with check bit errors.

It seems that when you begin a record, any time a bit is on, it will stay on for the remainder of the record even if it should be off for that character. Thus, the 1 bit is on for the first character '1', then the 2 bit turns on while we still have the 1 bit active, so the '2' comes out as '3' (both 2 and 1 bits on). The '4' character turns on the 4 bit, making the 4 2 and 1 bits on for a '7'. This stays true until we get to character '8', which turns on the 8 bit but we still have 4, 2 and 1 thus a special unprintable character is returned for '8' and '9'.

I figured out how to turn on Bob Feritich's virtual tape drive, a bit of hardware that sits on the tape cable chain and acts like a 729 tape drive. We used that to write and read the pattern, still seeing the problem which confirmed to us that the issue is not in the tape drives but inside the electronics in the 1401.  By the time I left, we were scoping various signals to determine what was happening. It seemed like the bits were coming in correctly from the tape drive but somehow corrupted after that point. I ran out of time and left, so unsure of what progress was made for the rest of the afternoon.


I looked over specifications of fast switching transistors and discovered one, the BVS52, that slashes the storage time impact on cutoff, allowing my original circuit design, sans bypass capacitor around the base resistor, to operate with less than 20ns delay from when the incoming 1130 signal drops until my transistor cuts off allowing the output signal to rise.

I placed an order with DigiKey for all the components for my new board and will, after a few tweaks of the design and verification of the Gerber code produced, send it off for fabrication. The oddity about my design is that I accomplished all the routing on the board using only top side copper traces, thus I wanted to convert the bottom side to a power plane rather than a signal surface.

For historical reasons, the files for the interior power planes of most boards are negative, meaning they describe the shapes that should be removed from the copper layer rather than a positive file like the top layer where each feature in the file represents copper to be left on the board. The fabrication site will invert the gerber file for power planes to positive. Since this is a step done by the processor, not inherent in the gerber file itself, there is the risk of an error with nonstandard use of the bottom layer

I want  my bottom layer to be a powerplane will have copper poured across the area with small cutouts around all the via holes. I have to be sure that the gerber file will produce the right result, giving me the broad copper area with some holes, rather than metal rings around vias and a wide open area. I will have to inspect the detailed content of each gerber file to ensure it is interpreted reasonably by the board fabricator. I downloaded the protocol specification for gerber files, which are ASCII format files that are human readable.

I figured out how to get close to what I want, but it is complex to get the files the way the fab wants them. For example, I use OSHPARK to check out my files - they want the internal power planes to be positives not negatives. Have to regenerate the gerbers once again. I am much closer than yesterday, however, and with another hour of work I should be able to order my boards.

Having verified everything and carefully documented it all, I sent it to where I had an urgent turnaround of ten copies of the four layer 6.5 x 3" board, silkscreen, solder masks, and automated testing of the result, all for $162 (plus $35 for DHL Express international shipment). I should have the completed boards back in less than two weeks, ready to assemble and then install.

Component view, one board hosts12 receivers and 12 drivers
Top view of board, before it is covered by green solder mask
Bottom view of board, copper ground plane plus green solder mask


I picked up the epoxied together joint handle and installed it over the two breakers that cover my 240V single phase 20A circuit feeding the IBM 1130 system.

Handle installed over pair of breakers for 240V circuit

Tuesday, February 24, 2015

Creating SAC Interface boards


I spent four more hours fighting with the design tool to clean up the board design, after which I went through validating every shape and connection before placing the order. Near the end, I discovered that the design software for the transistor had an SOT-23 physical layout setup but it has the lone top electrode as the emitter, something that zero real transistors in this package would do.

I therefore have to update the design file for the transistor shape, see what it does to my board design and fight through all the consequences of the pins shifting around. I was ready to order all the parts and the board manufacture, but now I need to revamp the layout and recheck everything.

After another hour, having adjusted the component shape then rotated and rerouted the traces ot all 36 transistors, plus relocation of ground vias , I had a set of file that appear good. I will check them with some gerber file viewers to ensure they are good, before submitting them. This process took a couple of hours including iterations to satisfy one of the PCB fab web sites that conveniently checks designs.

I discovered that I had forgotten to add the capacitor that speeds up the cutoff of the transistors, to solve the delayed pulse problem I was experiencing. Further, I thought of some adjustments I want to make to my driver circuit that really should be tested with the 1130 before I commit the PCB. I therefore didn't send in the files to the fab house.

I also began taking the existing boards and fpga out of the interface box - a process of carefully cutting the 77 twisted pairs from four boards, labeling them with their main cable pin assignments, and setting them aside to wire up to the new boards.

I did some time domain simulations of my circuits on CircuitLab just to verify how the models work compared to what I see on the oscilloscope, before testing out some of my potential modifications.


I epoxied the broken handle that bridges the two poles of the 240V circuit breaker, having received the new glue this afternoon. It is now curing in the shed, after which it will be installed on the breakers tomorrow.