Saturday, May 16, 2026

Restoring a Calcomp 565 plotter for use with my IBM 1130 system

SOMEONE DONATED THIS PLOTTER TO ME - IT WAS IN SAD SHAPE

The plotter had been damaged when something in a moving truck fell down and dented the drum of the plotter fairly severely. In addition, the prior owner had disassembled it for unknown reasons and it was given to me as a pile of parts and a partially disassembled jumble. It was also missing the solenoid that holds the pens. 

FRIEND OFFERED TO STRAIGHTEN THE DRUM BUT RESULTS WERE NOT GREAT

I got the drum back with the dent hammered out but the drum was out of round, with dips and bulges since the aluminum had stretched during the dent repair. It is not good enough to draw graphs on. It sat in the shop for a long time waiting for some inspiration on how to repair it.

Some years ago, a reader of my blog offered to 3D print a drum but that trailed off to nowhere. Again, I waited for inspiration. I have not yet developed a high confidence plan for a replacement.

Part of the issue is that the left and right sides of the drum have pins that mate with pin feed paper, so that the drum will pull the paper up or down as it rotates. Even if I found a source to make or buy a hollow aluminum drum of the right dimensions, I would have to recreate the pins. 

MADE USE OF THE PLOTTER TO TEST MY CONTROLLER CARD FOR THE 1130

As part of the successful project to build a card and connectors to upgrade an 1130 to add support for an IBM 1627, which is a relabeled Calcomp 565 or 563 sold by IBM, I partially restored the plotter to verify that a plotter would be controlled by my card. 

It took several hours to carefully assemble the parts sufficient to attempt the testing. I had first tested the power supply and found it working properly. I then used the manual controls on the plotter to test out movement of the drum (up and down), the carriage (left or right) and the solenoid to lower the pen onto the paper. 

SOME PARTS OF THE PLOTTER ARE NOT WORKING CORRECTLY

3I discovered that the carriage movement circuitry is not working properly. Neither the manual controls nor pulses from a bench test setup nor from the 1130 controller card would cause the stepper motor to move. The power transistors for the stepper motor remained holding just one coil active, ignoring any attempt to change the ring counter to select an adjacent coil. This will need to be debugged. 

The chart paper motors, which keep tension on the rolls of chart paper that is moving through the drum, did not move. They are both physically frozen in place - I suspect congealed lubricants are the cause.

I have to restring the cables for the carriage movement, although I also need the stepper motor working for this to matter. With that in place and once the stepper is working, I can check for solenoid power with the pen raise and pen lower commands. I am assuming this circuitry works properly but it has not been tested.

MISSING SOME PARTS

I was missing the 5/16-32 panel nut that holds the power on/off switch onto the panel. It is hard to find that size nut, as the retailing world seems to be concentrating on 3/8" and metric nuts. There are also quite a few screws missing from the pile I received, a mix of 4-40 and 6-32 sizes. I will fill in all the missing locations when I replenish my screw stock. 

BUILDING A PEN SOLENOID REPLACEMENT

The plotter has a pen holder with a solenoid inside that is attached to the top of the carriage. It will lower a pen onto the paper or lift it off. The holder from Calcomp had several attachments for different types of pen inserts. 

I came across a Calcomp holder and solenoid that was used for a cutter instead of a pen. It sat on the same plotter mechanism but was used to cut plastic, paper or fabric. Since its shape and functionality is identical to the pen version, other than having a cutter instead of a pen insert, it should be easy for me to work out a way to put a pen in the holder. 

NEXT UP - LOOK INTO THE ISSUE WITH THE CARRIAGE STEPPER MOTOR

When I have time in the workshop, in between higher priority projects or tasks, I will dive into the logic and figure out why the carriage is not moving with manual or interface commands. At the same time I will do a quick check to see if the flipflop for pen lower/raise is working and if the circuit is driving voltage when the solenoid should be activating. 

Testing with a Calcomp 535 - part 2

MEASURING -34 VOLTS IS OKAY WHEN THE SUPPLY IS UNCONNECTED

Two factors contribute to a higher unloaded voltage observed on the -24V rail. First, the nominal AC mains voltage was bumped up from 115V to 120V at some point after the plotter was designed. Second, voltage drop takes place in the transformer secondary windings when it is under load that reduces the output voltage compared to the very high impedance of an unloaded measurement. 

MOVING FORWARD TO TESTING

I tested the logic boards to be sure that there were no short circuits that might damage the power supply rails. After this point, I felt comfortable that the worst I would be facing is incorrect behavior, not dramatic failure. I hooked up the logic board to the power supply, controls and stepper motors, again checking for unexpected short circuits. 

There are two ring counters in the plotter - one for the pen carriage moving left or right, the other for the drum to roll up or down. These drive current through one of three pairs of coils in a stepper motor, with the active coil pair moving each time we shift the ring counter. 

The final circuit is a flipflop for pen up versus pen down on the paper. A falling edge on one side sets the flipflop to 'pen down', a falling edge on the other changes the flipflop to 'pen up'. This either energizes the solenoid in the pen or turns it off to allow the pen to move back under spring tension. 

My first tests used the manual controls on the plotter. This verifies that the motors move one step in each direction and that the ring counters are functional. It is a fairly good test of the plotter circuitry. The circuit for the drum movements worked perfectly, single stepping and then moving 120 steps per second with the fast mode manual control. The carriage left or right controls did nothing - no single step, no fast movement. 

There is something wrong with the plotter concerning the carriage movements. I don't have the plotter assembled enough to power the solenoid since its power travels through the cables which pull the carriage left or right and those are not connected yet. Thus all I can test with the plotter in its current condition is whether the controller card can move the drum up or down one step in response to an XIO Write. 

TESTING THE INPUTS FROM THE 1130

Then I used my bench testing setup to try to make the steppers work with triggers from my breadboard device. The circuitry looks for a falling edge on the control inputs to advance a ring counter in one direction or another - the outputs of the ring counter are fed to the poles of the stepper motor, so that one step of the ring counter causes one increment of rotation on the motor.  

The bench setup uses pullup resistors to 12V and a pushbutton to drop each of two lines to ground when I activate the button. My scope could show me the state of the ring counter which would let me verify that it moves one step in each direction on command.  Alternately a voltmeter on the collector of the driver transistor for each of the three coils will show two at -24V and one at ground, shifting which is grounded as the ring counter advances. 

Indeed, the button press resulted in a one step movement in the direction I requested, exactly the same as the manual control on the plotter. Since this mirrors how my controller card drives the plotter, I fully expected the final testing on the 1130 to succeed too. It was time to connect to the 1130 and try it out. 

TESTING WITH THE IBM 1130 SYSTEM

I hand toggled some commands into the 1130 system so that I could execute XIO Write and XIO Sense Device commands. The goal was to mirror the tests from the bench. 

I coded an XIO Write with the data word set to request an up movement, followed by an XIO Sense Device and then a wait instruction. I should see the status with bits 14 and 15 set in the accumulator register (ACC). The 1130 should have taken a step into the interrupt handler for level 3, which I set up with a wait instruction. The stepper motor should have moved one step. 

I then have an XIO Sense Device followed by another wait instruction. This is in the interrupt handler code. I should see bits 0 and 15 in the accumulator, since the movement is complete. The next instruction is an XIO Sense Device with Reset bit 15 followed by a branch out of the interrupt handler. I should return to a wait instruction following the original XIO Write and Sense Device code. 

I can update the data word and do the above a second time, so that it is now requesting to turn the drum down. This too worked properly. I set up a loop so that my program issued drum movement commands as fast as the prior one completed and we returned from the interrupt handler. The drum moved rapidly, even faster than the manual fast mode control. 

Ultimately, I powered off the Calcomp to test its behavior in that mode. When I issue the XIO Sense Device I should see that no bits are on. Doing an XIO Write to request an up movement should turn on the interrupt request but an XIO Sense Device will show only bit 0 turned on indicating that the movement completed but the plotter is not ready. 

That is exactly how it behaved. Everything I could test was working exactly as it should. 


Project to support a 1627 plotter on an IBM 1130 is a success!

FULLY SATISFIED WITH THE FUNCTIONALITY

All the testing proved out the card and connectors do exactly what the original IBM parts would do. This is a full substitute for the 5806223 card and various connectors that are installed in an IBM 1130 when IBM configured the machine to support the 1627 plotter. 

GITHUB UPDATED, PROJECT CONSIDERED COMPLETE

I made sure that the Github files for this project are up to date, with a correct bill of materials, FPGA code, PCB design files and other documents. I also shared the board on PCBWay.com so that others could order it directly from them. 

The goal of this project is to allow other IBM 1130 owners to be able to build and use this card in order to connect an IBM 1627 or Calcomp 565/563 plotter and have it draw graphs from programs, just as they would function in a machine with the original IBM 5806223 controller card installed and the 1130 configured by IBM to attach a 1627. 

Thursday, May 14, 2026

Testing with a Calcomp 535 (equivalent of IBM 1627 model 1) - part 1

I WANTED TO USE A PLOTTER FOR A FINAL CHECK OF THE PROJECT

I am restoring a Calcomp 565 plotter and it is currently disassembled because the physical plotter drum is dented and unusable. However, I can connect to it and power up the circuitry to see how it responds. The stepper motors should move if it is responding to the -up or -left commands. I should see voltage to the solenoid that will raise or lower the pen - turned on when the pen is lowered and turned off when a -raise command has executed. I can also verify that it delivers the -24V to the 1130 when the power switch is turned on. 

CABLING WORK

I was not satisfied with the quality of the SLT connector mainly due to issues with the crimp pins particularly with a few wires that were larger (but had unique colors like orange and purple). In the end, I rebuilt the connector and fidgeted with the pins as some of them were not locking into place in the connector as they should have. 

I also discovered all the ways to assemble the Cannon 19 pin connector incorrectly - one at a time - but eventually got the threads, cover, access plate, strain plate and other parts over in the proper sequence over the wiring. In other words, the cable work took surprisingly long.

I finished wiring my cable to the 19 pin connector that plugs into the plotter. Four wires from the connector run to an SMS paddle card that will plug into the IBM 1130's power block, delivering 115VAC and connecting to the signal ground of the computer. The other wires run to the SLT connector plugged into slot N5 of compartment C1 of gate A of the system. I also included the 3.9K resistor that IBM installs on the signal SMS paddle card, since I skipped the signal paddle cards for this installation. The resistor is inline in the Cannon connector now, thus making the equivalent connection from the plotter to my controller card as would occur with the IBM paddle card scheme. 

My cabling between plotter and the 1130
Controller card and connector in place

MAKING SURE THE PLOTTER WILL POWER UP AND WORK (ELECTRICALLY)

Since I haven't powered this up since I received it years ago, I needed to approach it as a restoration to get all the electrical/electronic aspects working. Then the stepper motors have to be able to move when the circuitry commands it.

First up was the power supply, which I had to get working properly before hooking it to the logic and other circuitry. This supply produces -24V, -9V, -7.5V, +1.5V and +3V all from a single bridge rectifier, using diodes in a voltage divider plus one Zener diode to produce all the individual levels, with ground sitting 3V out from one end of the 27V span out of the rectifier. Not too much to go wrong, but had to be checked. 

The -24V output was sitting at -34V, but that may be because there is no load with the power supply disconnected from the logic board and other components. There is also the reality that line voltage in the US is noticeably higher than the nominal 115V that the equipment was designed to use. 

At this point, I noticed that the diagrams that I had printed, from the IBM 1627 version of the plotter manual, had components whose numbering was changed compared to the Calcomp manual; most importantly, the component numbers on the actual plotter matched the Calcomp manual. IBM chose to drop some diagrams from their version of the manual, but I needed those diagrams to do the detailed testing I had planned.

I will print all the diagrams from the Calcomp manual when I get home tonight, so that I can finish up my testing of the plotter power supply and move on to the other components. 

Monday, May 11, 2026

Testing the plotter controller card in the IBM 1130, without a plotter hooked up - part 2

ANSWER TO THE BIT 15 MISBEHAVIOR

With the card out of the machine, I checked the pins on the backplane at slot M4 to check for shorts or unusual connections of the pin B05 that drops to 0V during an XIO Sense Device if pin B08 does not have -24V connected through a 3.9K resistor. 

I checked the card as well, testing the connections between the FPGA board, the inverter gate and the output pin. I also looked for shorts to adjacent pins. I then plugged the card into the 1130 at M4 and M5, then tested whether B05 is now shorted to B04 or B06, the likely issue if a mechanical short exists inside my connector. 

The first issue I observed with the card was that the contact seemed a bit mis-shaped. I swapped a better contact and resumed testing. I discovered that with the -24V applied, bit 15 would turn on, the opposite of what should occur. That was a simple fix to apply to my Verilog code. 

CONTINUING TESTING IN THE 1130

I had to wire up a -24V source to the 3.9K resistor on the cable in order for the controller to see the plotter as ready for commands. If that voltage isn't present, the machine sets bit 15 of the Device Status Word (DSW) to 1 and simply presents an immediate interrupt with operation completion without attempting any control of the plotter. 

I switched on the Interrupt Delay switch under the top cover of the 1130. This blocks the machine from jumping into an interrupt handler even though interrupt requests may be present. This made the testing more straightforward. 

A short program that I hand toggled into memory fired off XIO Write commands to trigger the different movements - Drum Up, Drum Down, Carriage Left, Carriage Right, Pen Raised and Pen Lowered. It could be stepped in single instruction mode to watch the interrupt level 3 request (IL3), then to look at the outputs of XIO Sense Device. 

I hooked up the scope to the output pins on the backplane of the 1130 where the plotter outputs exit the card. What I was looking for was a 12V output steady state while idle and then a 1.9ms or 50ms dip to ground when the pen movement or pen lift/lower commands were issued. The machine should also trigger an interrupt on level 3 and respond appropriately to XIO Sense Device commands. 

I also watched the interrupt level 3 request pin to verify that timing from the issuance of the XIO Write and the assertion of the interrupt request. This too passed correctly. Redoing this with -24V off showed virtually zero delay between the XIO Write and the interrupt request. 

I verified that the interrupt was requested on level 3 after a command was issued. The DSW status bits were correct after the command - Bit 0 on indicating plotter response and bit 15 off showing that -24V is present from the plotter. Turning off -24V and repeating, I saw Bit 0 and Bit 15 both set. These were the expected results. 

Running a program that issues the XIO Write and immediately performed an XIO Sense Device and stops at a Halt instruction allowed me to see if the busy bit 14 would be turned on in the DSW while the controller was active, without having to code an interrupt handler routine to run under level 3. The busy bit was set. 

The hardest test to perform was to verify if bit 14 of the device status would be turned on while the card was actively requesting a movement command and for the succeeding duration where the plotter is expected to be busy completing the task. The easier to detect was the pen raise or pen lower commands, as these should be busy for 100 milliseconds. This too was correct. 

Everything worked perfectly now. I checked the timing of when the interrupt is requested compared to the length of the plotter drive signal and that was spot on as well. I checked all six movement commands just to be certain. The card now operates exactly as the IBM built 5806223 card does, with the same signal timing, levels and behaviors. 

Purple trace is pen movement (1.9ms), yellow is Int L3 Req

USING USB SERIAL LINK TO CAPTURE MOVEMENT COMMANDS FROM CARD

The CMOD S7 daughtercard has a USB connector that can be used for both loading the FPGA configuration information onto the board and for serial communications with an external device such as a PC. It runs at 38,400 baud and emits a short line with six ASCII characters, either 0 or 1, based on the first six bits of the data word written by the XIO Write instruction. Each line is followed by a newline and a carrier return character. 

In order to protect the power supply on my controller card when the USB cable is being used for this purpose, we have to disable having the USB power drive the card; only the 12V from the 1130 into my card will power up the CMOD S7 board. There is a diode (D17) on the CMOD S7 board that connects the +5V from the USB port to the remainder of the board's power circuitry. Opening this connection ensures that the USB cable won't feed any power into the CMOD board or the rest of my controller card.

Diode D17 is circled in red

 From the point that you remove the diode, the way you can flash new code into the FPGA configuration memory device is to apply 12V to pin G02 of the card, ground to D08 and J08, then plug in the USB cable and use Vivado as usual. The card must be out of the IBM 1130, of course. 

INSTALLING A CABLE FROM SLOT N5 TO THE PLOTTER CONNECTOR

I built a cable with SLT connector to fit into slot N5 of the same compartment. That brings out the six signals that drive the plotter - pen left, pen right, drum up, drum down, raise pen and lower pen. This cable also carries the signal ground and brings the -24 supply from the plotter, through a 3.9K resistor, to be sensed by the controller card to determine that the plotter is attached and powered on. 

In order to exhaustively prove out the card, I had to verify that what it emits over the cable to the 1627 Plotter is sufficient to cause it to move the drum up/down, move the pen left/right, and raise or drop the pen onto the surface. The cable needed to be completed that took the signals from Gate A, Compartment C1, Slot N5 and out to the plotter. 

The IBM approach connected a bundle of wires from the SLT connector in Slot N5 and routed them to the Standard Modular System (SMS) connector PF6 inside the 1130. An SMS paddle card inserted into PF6 is wired to the cable that ends in a 19 pin connector (Cannon SK19-23C) which plugs into the plotter. A few wires from the 19 pin connector are hooked to an SMS power paddle card that plugs into SMS connector PP6 inside the 1130, primarily to provide 115VAC to the plotter. 

An alternate approach wires an SLT connector from slot N5 out to the 19 pin connector, with only the SMS power paddle card plugged into the original PP6 slot of the 1130. I chose this first as a faster implementation in order to complete some plotter testing. 

Sunday, May 10, 2026

Testing the plotter controller card in the IBM 1130, without a plotter hooked up - part 1

TESTING IN THE 1130

Since it did everything properly on the bench setup, it was time to verify that it works correctly with the IBM 1130 while inserted into the logic compartment. The newly constructed card was inserted again into slots M4 and M5 in compartment A-C1 of the 1130 system, which is set up for the IBM card that controls the plotter. 

I did basic verification that the slots were indeed wired up to N5 where the connection to the plotter exits the backplane. I then set up some simple tests to see how it behaved without the -24 volts from the plotter applied to pin B08.

It should produce a Device Status Word (DSW) with bit 15 set to 1, indicating that the plotter is either not attached or not powered on. I issued an XIO instruction to an IOCC specifying a Sense Device operation on area code 5 (the 1627). The resulting DSW was all zeroes. This was not what I expected.

I then changed the IOCC to specify a write operation on area code 5 pointing at a word where I had both bits 0 and 5 set to 1. When I executed the XIO, I saw the light for interrupt level 3 come on, which is exactly what I would expect. Having turned on the Interrupt Delay switch under the top cover of the 1130, it didn't jump into the interrupt handler code, so I could more easily debug the card. 

I reset the IOCC to a Sense Device operation and executed it. I saw a DSW with bit 0 turned on (operation complete) which is consistent with the interrupt request. However, I put the oscilloscope on the output pin and never saw it dip down from 12V to 0, as it should have for 50 milliseconds. 

That is consistent with the board behavior if the plotter is not turned on - immediate completion but no command signal sent to the plotter. Everything was correct with the behavior except for the lack of DSW bit 15. 

I then tried to load some memory locations but wasn't able to set bit 15 to a 1 value. Locations that previously had that value would display the 1 in bit 15, but I couldn't load any new values using that bit. The console entry switch (CES) that I used to load memory values shows every switch that is in the 1 position in a register EXCEPT the switch for bit 15 didn't turn on the register bit.

Before I proceed to more elaborate testing, I need to investigate this relatively small issue - bit 15 not appearing in the DSW nor available to load into memory. This could be a short inside my connector on the card, for example, or some other issue in the 1130 that only manifests when the card is plugged in. 

Saturday, May 9, 2026

More bench testing of 1627 controller card

COMPLEX BENCH TESTING SETUP SEEMS TO BE WORKING

The SLT breakout box provides each signal on a banana plug jack. Where it gets cumbersome is when I have to connect to a wire going into a breadboard or some other device. I have some banana cables with alligator clips but mostly they are male to male types. As you can see below, it gets messy interfacing many input and output signals from an SLT card.




I ordered quite a few banana plugs that I can solder to wire segments suitable to inserting in a breadboard or an Arduino type device. That will make this process much easier the next time around. I made up enough to rewire the testbench and clean things up. 

I put the new Arduino Uno into the testing setup and now see the XIO Write signal asserted properly. This gives my card the three signals it needs to accept a write request from the 1130 - XIO Write, Area 5 and T6. When those occur, the state machine proceeds through to generate the request for an interrupt at the completion of the commanded plotter movement. 

CONTINUING TESTING, USING SCOPE TO OBSERVE OUTPUTS

I used a four channel scope to capture sets of output signals from the card. The signals produced to drive the plotter are inverted logic 12V levels, the signals to the 1130 are inverted 3V levels, and some of them required pull-up resistors since the 1130 normally provides the pull-up. 

Activating the DC Reset line sets the board in its idle configuration - all six plotter outputs would be de-asserted to 12V levels, the four outputs to the 1130 would be de-asserted at 3V levels, and internally it should have the busy state turned off. I checked this first. Works perfectly. 

Sense while idle but no -24 power

Without plotter power connected, the DSW should show that the plotter is not ready. This occurred - bit 15 of the DSW is 1. 

Sense while idle with -24 power

The sense should show the plotter ready but not busy and no operation complete. Interrupt level 3 will remain high. The DSW has all bits off, which is correct, and no operation complete or interrupt request.

Trigger write requesting to move the pen up

The signal to the plotter should drop low for an appropriate time. After an additional interval the interrupt level 3 signal will drop low. For the model 1, the time for a plotter signal to cause this operation is 1.9 milliseconds, followed by a second 1.9 ms interval, all of which has the plotter indicating busy by putting a 1 in bit 14 of the DSW if a Sense Device is executed during this time. At the end of the 3.8 ms, the interrupt request for level 3 becomes 0 (inverted logic levels) and a DSW will have bit 0 turned on from this point onward. 

A 1627 model 2 will use 2.9 milliseconds for the duration of the command to the plotter and an additional 2.9 ms of busy time before triggering the interrupt request. I checked by temporarily placing a jumper on the card and verified the two durations  were correct for both model 1 and model 2. 

Sense then sense with reset issued

The sense should show operation complete (DSW bit 0) but not busy (DSW bit 14 off) and ready for further operations (DSW bit 15 off). It should only turn off the operation complete status (DSW bit 0) and interrupt level 3 will go high when the Sense with reset bit 15 is issued, not with a regular Sense Device. This worked exactly as intended. 

Trigger write requesting raising pen off paper

The raise command should do the same things as the prior write but the timing will be longer as is appropriate for raising and lowering the pen. The command to the plotter is held for 50 milliseconds, then a second interval of 50 milliseconds follows that; during the entire 100 ms, the plotter is shown as busy (by a 1 in DSW bit 14).  This is the same for either model of the plotter. I verified that this works correctly. 

Trigger write with both left pen movement and raising it off the paper

Requesting both types of movements should drop the 'left' command after 1.9 or 2.9 ms but maintain 'raise' for a full 50ms. The plotter is busy through the entire 100 ms interval. The interrupt level and operation complete only occur after the raise is complete. This was verified on the bench. 

Trigger above dual write test while -24 power is off

If -24V is off, no movement is commanded of the plotter but the interrupt request is immediately issued and the operation complete (DSW bit 0 set) is shown too. Initially I blipped the command signals to the plotter for 80 nanoseconds before my logic determined it should give an immediate operation completion. 

I decided to avoid this, thus recoding a bit of the FPGA state machine. It now proceeds immediately to completion status without toggling any of the signal lines to the plotter. 

RESULTS OF THE TESTING

The bench testing setup was fragile, but with some work it became reliable enough to perform all the tests I wanted. I had simulated all of this in Vivado previously but it is good to see the actual behavior match what I designed and expected. 

The board was inserted into the IBM 1130 in order to be put through its paces being driven by software commands and interacting with the 1130's interrupt and sense device mechanisms. I began building a connector to fit into slot N5 of gate A, compartment C1 of the 1130, with wiring that will deliver the six command signals to the plotter (pen left, pen right, drum up, drum down, raise pen and lower pen) as well has carry the -24V from the plotter that indicates to the controller that the plotter is ready to receive commands. 

I found the correct parts on Mouser to build SLT sockets to connect wiring to the backplane of the 1130. I started wiring the connector and cable before I ran out of steam today.