Thursday, October 16, 2014

A lot of Arduino coding, some hardware prototyping


I received all my parts and began assembling the disk drive delay system that waits 90+ seconds after the platter motor spins before loading the heads. I gave up on trying to shoehorn it all inside the power box in the place that the relay itself had taken, instead placing the circuit into a plastic project box that I can put nearby to the power box but still within the 1131.

I wasn't happy with the performance of my first circuit after some testing. I will try a different approach. I certainly don't want anything that might dump the heads onto the disk surface too early.


I coded the remainder of the Arduino code for the keypunch interface today. While I still believe it would be better to add a signal from the keypunch when it is actually punching, both for validating proper execution and to time the release of the punch relays,

I implemented this with the timing based logic used in the original keypunch interface. For example, the punch relays are held for 10 milliseconds then released, after which I wait another 100 milliseconds for the punch cycle to complete.

I believe that the read pins in the duplicate station are active just after I drop the punch relays, which is how I coded the controller, but I can slide this anywhere in the 110 ms total cycle to ensure I capture the state of the holes at the read station while in the midst of punching at the punch station.

I have a small bit to change in how I handle the binary mode lines, otherwise this is ready to begin testing.


  1. There was a period around 1967-9 when I worked on so many 026's and 029's that I could almost draw their schematics from memory. Owing to the intervening 45(!) years I can't do that now, but I am sure that there are timing signals from cam-operated switches for every important phase of the punch cycle. For one example, that's what triggers operation of the keyboard restore bail, so you can't press a new key until the prior input has punched. So I definitely think you should rework the interface to bring one or several cycle pulses back from the KP to the arduino's input pins. Then you would not have to rely on arbitrary timing. I suspect that with a fixed 100ms cycle time you are under-rating the punch, and if driven off the actual mechanics, it would go faster (12cps sticks in my memory...).

  2. That was my sense as well. I am trying to walk a line here between compatibility with the wired keypunches at CHM from the original interface, versus a good design.