Weekend of Mar 16-17 2013 - progress on many fronts

I completed the testing of the plotter interface, deciding during the late part of the testing to change the method for clocking a single button press from the prior method that simply did an OR of all the buttons, then delayed them slightly as as a clock for the shift register. I instead used the edge detector approach that was already in other portions of this interface. It did require adding one additional 74HCT175 dual D flip flop chip since the signal needed to be synced to the clock domain and then have its edge detected, a total of 3 D FFs being necessary for those tasks but only 2 were available within the existing chip count.

Schematic of the final tested plotter interface logic
I was very pleased to be able to use the buttons to move one step left or right, roll the drum one step up or down, and to do the same operations in 'fast' mode at about 100 steps per second. The 1130 logic lines were tested and are able to move one step left or right, roll the drum one step up or down, and to lift or lower the pen onto/from the paper on the drum.

The interface was wired on breadboard strips - phenolic boards with a pattern of holes drilled and small copper solder pads around each hole on the bottom. I used three of the breadboard strips plus a slice of a different, larger breadboard into which I installed the 20 pin connector for the ribbon cable to the plotter. Discrete wires carried signals between pins and components, as well as between the various boards that comprised the interface.
Basic breadboard used for prototyping and testing - also kept for plotter interface
Once it was working to my satisfaction, I folded it so that the three boards were stacked vertically, using spacers and bolts to hold the assembly together. This slid into a plastic box, with suitable openings nibbled away for the wires that run to the FPGA and the power supply, plus a slot for the ribbon cable. The sliver of the big breadboard which held the ribbon connector was bolted to the underside of the box lid, allowing the cable to be installed and removed through the slot on the top without opening the box.

My interface with the three stacked breadboards inside the plastic box

The IBM 1627 plotter has switches that rotate left and right from a home position, returning to home when released, used to move the pen left or right, and the drum up or down, both at slow and fast speeds. I found some knobs that look similar to the originals, see pictures below, to be used as I dress up the Strobe 100 plotter to look similar to an IBM 1627.
Knobs I located to match the plotter (plus elapsed time meter I will use with 1130)
Knobs on original equipment plotter for comparison.

As can be seen in the picture of my knobs, I have elapsed time meters to build into the 1130 console to match as well as I can the two that recorded operating time in normal and CE mode, located on a small panel along with the CE key slot.  I have two different types, but the rectangular portion that will be exposed in the final replica are all that matter, not the remainder of either's shape.
Two elapsed time meters to install on 1130 replica
Meanwhile, I assembled the master interface board, which implements the keyboard interface logic but also houses the 100 pin connector to the FPGA board. This board breaks out various signals to other interface boards, delivering signals to the typewriter board, the input switch/button board and the LED console display panel board.
Master interface board after assembly
You can see it partially connected here - still missing the three connectors to the typewriter board and the +5V, +12V and +20V power input connections - as I am gearing up for a more thorough test with all the boards hooked through this master interface.
Master interface cabled to input board, LED console panel driver board, and wired to the keyboard mechanism
I did successfully cable up the keyboard to this interface board and verified that it operates properly up to the I2C link chip - pushing keys down swings the logic levels between 3.6 and  0.1V, clear of the schmitt trigger thresholds by a good margin on each side, thus will be reliable. The local keyboard reset also works perfectly, energizing the solenoid to release the locked down key when REST KB key is pressed.

I then put in some temporary code to display the encoded photocell values on the LEDs and the seven segment display digits, hooked up the fpga board but didn't have the test working properly. Upon investigation it is clear I didn't set up the test code correctly. I will defer this fix until tomorrow, it is late on Sunday and time to wrap up the weekend's work..

I have looked over one of my new acquisitions - the card punch unit - to begin planning for its interfacing and use. I was set aback by discovering that the actual punch head is designed to be cooled by the release of liquified ammonia. I don't want to buy or store anhydrous ammonia, as it is toxic, combustible and subject to the risk of theft by criminals operating meth labs for which this is apparently a key ingredient that is not easily purchased except for farms and commercial refrigeration installations. It will need some cooling, but I won't be installing the ammonia; this requires some conversion which is going to be quite a complication.

There may be a very slow mode of operation I could attain that keeps the punch temperature at reasonable levels, but there is no way of knowing for certain right now. If I substitute another refrigerant, whether freon, carbon dioxide, water, glycol or something else, they all are less efficient in removing heat, thus would require a higher volume or flow rate than the unit is built to sustain with its ammonia. This is why commercial large scale refrigeration plants are all based on ammonia. My skills as a refrigeration engineer are nil, so too I am unprepared to design and build pressurized systems.

Two other units I have secured are not yet here - the DEC RK-05J disk drive unit is with Fedex scheduled for delivery on Monday, and the HP impact line printer is at a facility about an hour's drive away, awaiting an agreement on the time for me to head over and pick it up.

Interfacing the printer will be easy, it passes self test now and was operational with no reported issues before it was decommissioned. The printer is fast enough to stand in for either the IBM 1403 or IBM 1132 printers with appropriate interface and emulation logic.

The disk drive, on the other hand, does not power on (probably a safety issue since no interface card was installed in it), but is in unknown condition. I may be able to restore it to operation, using it to hold the DMS2 software that controls the 1130, or it may simply provide a realistic slot in my 1130 in which to load and remove disk cartridges although actual disk IO would be provided by a more modern but hidden device.

The RK05 is not an exact match for the ramkit drive inside an 1130. The physical platter and recording mechanism is the same, but many related details make the cartridges incompatible and yield different outcomes. The IBM cartridge has the sector and index markers magnetically encodes on the hub and a magnetic transducer to sense them. On the other hand, the DEC cartridge has slots cut on the hub for this purpose and optical sensing to detect them. The 1130 uses an array of v-shaped notches along a bar to match each of the 202 radial positions of the heads (thus the 202 cylinders) and a solenoid driven tooth that engages. This produces the characteristic grunting sound of a seek on a ramkit drive. DEC uses a glass plate that has patterns etched into in which are read by an array of photocells, this determines the radial position and also provides feedback on the current arm velocity when moving. The ramkit drive has a separate 'tachometer' to sense the speed of the arm. Finally, the ramkit cartridge divides the rotation of the platter into eight physical sectors each with a marker, although the 1130 adapter ignores every other marker thus treating the platter as having four sectors per rotation. The DEC cartridges come in two formats, for the 12 bit PDP8 machines and for 16 bit machines, with the former having sixteen sectors around the circumference while the latter has only 12.

I don't expect any difficulty recording longer sectors (the 1130 records 321 16-bit words per sector) by combining several DEC sectors into one, since the sector markers are on the hub not the platter surface which remains usable even passing over a sector market position. This is exploited by the 1130's implementation which writes its 321 word sectors starting after one sector marker but spanning right across the next marker and ending just prior to the next-plus-one marker. Speeds of rotation, bit rates and the recording method (non return to zero encoding) are compatible. I can manage the seek behavior to provide the same timing as the 1130, too, as the settling time for the heads to cease shaking after movement masks any smaller differences.

There is no problem generating the sector markers and index marker since these are physical notches on the hub. I can hide some of them from the adapter logic so that the drive appears just like a ramkit with eight sector pulses per rotation. For the 16 sector version of the DEC, it is straightforward as every other sector pulse is masked. For the 12 sector version of the DEC cartridge, I can't generate eight evenly spaced sector pulses but I can ensure that the four pulses which are actually used by the 1130 are based on every third real pulse from the drive. I can ignore one and pass along a second of the intervening pulses, which will be asymmetric to the visible pulses, coming about a third of the way or two-thirds of the way through an 1130 sector.

This asymmetry does not matter, because the 1130 adapter is only using that alternating sector pulse to toggle a flip flop to the 'block sector pulse passthru' state from which it waits for the next pulse to retoggle and send it through as a sector. If I line up after the index marker so that the first sector pulse is delivered, the second sector pulse is delivered, and the third pulse is blocked, the adapter will see its two pulses, skip the second one it sees, and be happy.

The RK05 has more functionality in the drive than does the adapter on an 1130, for example it is given a destination cylinder number and handles all the details of the seek itself, whereas the 1130 drive can only do a 1 or a 2 track seek at a time. The adapter logic repeatedly issues 2 track seeks and a final 1 track if the total distance is odd, based on the number of cylinders requested in the seek command. Thus, the grunting is the tooth entering the notches to lock the arm at each little step. The DEC drive moves the arm smoothly to the target cylinder, figuring out the number of cylinders to move itself and accomplishes it in one movement. F

Finally, the ramkit holds the arm in position on a cylinder by the tooth engaged in a v-shaped notch, while the DEC drive holds the arm in position by continued tweaking of the linear actuator motor to keep it on position. In effect, the DEC drive is always seeking, sometimes moving the arm only if the optical sensors indicate it is drifting off position, thus causing it to stay at the chosen cylinder, other times it is moving to actually seek to a different cylinder. The ramkit expends no linear actuator energy to stay in position on a cylinder, depending on the tooth to lock the arm position appropriately.

Theoretically, it would be less likely for the ramkit drive to move off cylinder or write an elliptical track other than from vibration of the arm itself, while the DEC may be wavering a bit within the sensitivity range of its feedback system that maintains the arm position. Both of these track the position of the heavy arm mechanism but not the end with the heads that might be vibrating off the desired path. As well, the accelerations caused by the active detente mechanism keeping the DEC arm on cylinder will induce vibrations in the read heads.

I will have to investigate the two cartridges I own to see if they are the optical sector type and how many sectors are configured on each one. If they are both the same, my job is easier than if I need some kind of logic to count the sectors and adapt my interface logic accordingly, but it poses no real challenge to make this happen.

I built the card reader interface box, installing my modified version of an input board plus a small driver card to deliver the sink current demanded by the reader - up to 16ma at logic low for the pick signal. Thus, my interface logic takes an inverted pick signal for simplicity, with a logical 1 on my input causing the driver transistor to conduct and pull the reader pick line down to logic level 0. I am still working on the mechanical issues with card movement in the reader.

Putting a shield around the 38 pin connector that hooks to the reader was important to protect the fragile twisted wire connections was a priority. I found a small aluminum project box about the right size to put on the back of the connector, but it was the only such box at the Frys store I visited and it was open with no product code or price attached. It took more than an hour to get the store to let me buy it - I was willing to pay the same price as the larger box from the same maker, but this was a real challenge. Even the components manager was not able to get it done as he couldn't get it signed off. The bigger was was $3.89, to put this into context, and the cashiers and workers in the department said the unit was permanently unsaleable due to lack of markings. The manager offered to reduce the price further, although that wasn't the issue at all for me, it was just to buy it and leave. He was in the back office for quite a while and was unable to get someone able to sign off on this and approve it, at least at this time of day. He had to spend his time standing in the cashiers line with me, then verbally approving the sale, which still required a second manager to come over and approve it.

It was a tedious and slow process, but the shield was in place finally and I could begin wiring the cable into the interface in its enclosure. I placed it in an oversize aluminum box, as the other sizes were just too small to easily fit the 6.25 x 4.25 inch PCB. Once that was done, I closed up the enclosure which is now ready to connect once the card reader is mechanically adjusted and able to read cards. It has a cable to provide power (+5V and +3.3V), an I2C cable to connect inputs from the reader to the 1130 system, the 38 wire cable bundle that hooks to the reader, and a single wire link to the 1130 for its output to the reader interface.

No comments:

Post a Comment