IO Selectric, disk and DGM work week ending May 11, 2014


Last week I was unable to see the SPI clock signals when the Arduino master was sending bytes to the fpga, in spite of many attempts to investigate. Since the Arduino was able to communicate with the SD card shield and appeared to work properly with the ramboard as well, I initially thought it was an fpga side issue. However, it appears that my method of directly accessing the SPI registers, after the SDfat library had initialized and used SPI for its own purposes, was bumping into some pathology in the library itself.

I discovered this by skipping the SDfat library initilization, instead issuing the SPI library begin() method to start the SPI link, then used my existing code to write to the link. It worked perfectly at full speed with the scope showing clean clear signals and my fpga code detecting the incoming traffic.

My solution will be to learn from the SDfat library in order to code my own access to the SD card, thereby dropping all use of the SDfat library. In order to lessen the amount of debugging, I lifted as much code as I could from the SDfat library, but modified it to be more friendly to SPI bus sharing. That still involved quite a bit of battling with all the header files, named constants and other references between files that I had to conform to in order to get a clean compile.

The debugging showed me a nice set of clock pulses for the first set of signals out to the SD card shield, but it stopped working properly before the next command was complete. That set off a good hour of investigation, tests and monitoring. I have made decent progress since then; the problem at this point is that the SD card response to a command is not what the code expects.

The defect was in my conversion of the library, where I inadvertently missed that a FOR loop had only a null statement in the original, thus my block afterwards was not executed in the loop, it came afterwards. Since the block updated a variable used in the loop condition test, the loop never ended but timed out.

Now that the link is working, it became time to debug the synchronization between the two sides. Startup worked correctly some times, putting the two sides in a ready state for when a virtual disk cartridge is mounted in the Arduino and ready for access by the 1130. Other times, it did not. This will require some detailed data collection to sort out the cause and best correction.


The paper hold-down, that users flip down to hold the paper on the platen or flip up when loading or removing pages, was snapped before I got the unit. I thought I had plenty of replacements with the other Selectric based machines I have, but they all have a different mounting point and shape than this machine. I will have to repair this hold-down, which had one end snapped off.

Amazingly, on ebay I found some Selectric parts auctions and one was for two of the arms - one of them is the correct part I need! I have bid on it and hopefully will pick it up at a reasonable price. I also focused more on the mechanical situation - although I don't see heavy gunk, their is enough corrosion and other age related problems that the motor can't turn the main rods.

The print mechanism is partway through a print cycle, the carrier is all the way to the left possibly due to a carrier return operation still in mid-stroke, but I see that it could be tab or other conditions coupled with sticking parts.

Wednesday evening I found that the major cause of the problem is that the print cycle bar was frozen in place by corrosion. I got it apart, cleaned it up and greased it.At this point, the mechanisms seem to be basically working, but with some remaining corrosion binding a few spots.

The carrier does not snap ahead one space when the spacebar function is actuated, mainly because the cable pulling it to the right is not moving easily. Also, when I apply motor power the operational shaft is not rotating smoothly, showing that some of the clutches and other parts of it are binding a bit. I need to really attack the corrosion and relube the mechanism before I go too much further.

Doug Martin had located the operators manual for the word processor within the Computer History Museum archives. We retrieved it and took pictures of the book. Now I can try this with all the Itel electronics plugged in, to see how it works before I modify it to be a terminal or console.

The corroded parts for the ribbon mechanism have been replaced with new parts I had in my random pile of Selectric type parts. It now works perfectly. As I discover additional places that have been corroded and won't work well, I will replace the parts as possible.

Usually a selectric system is jammed by solidified grease and oil, but this system is free of that. In fact, it had so little grease and oil that it developed some corrosion. A different set of problems than one typically finds but no worse, hopefully.

After more cleaning and work, I conceded defeat and had to begin disassembling major parts of the mechanism, so they could be returned to working condition. The main spring was broken, for example, and there are several parts of the mechanism that are corroded stuck. By Thursday evening I had the tilt and rotate tapes off, the shifter mechanism removed, the operational cam out, the mainspring and carrier return system removed, and various parts removed that blocked access.

Since this is not a stock IO Selectric mechanism,there are several places where none of the documentation matches the actual arrangement. I took some pictures and hope I remember how to get it together once I fix the operational cam parts. With all that I removed, pretty much every adjustment must be redone which is quite an elaborate and tedious process.

I cleaned up and verified the operation of the operational shaft elements, so it is ready to put back once I clean and validate the various linkages and parts that connect with it. Proceeding with cleaning, oiling and greasing, ensuring everything that should rotate or move, does so. I found a spring that had corrosion in the middle and snapped apart - have to replace it when I reassemble. It holds the armature of one of the operational solenoids (functions like tab, carrier return, and backspace) in the deactivated position.


I am training an intern who will be revamping the museum's web site over the next four months. To set up for this, we had to prepare a development testing server and fit into the workflow already in place. I bought a desktop system and set it up with the software necessary to run a local copy of the entire website. With that, extensive testing can be done on everything before it is pushed to production.

The first phase of the intern's training is on the tools and processes that are used in real development environments - source control, project tracking and the related disciplines. We began already and are making good progress.

No comments:

Post a Comment