Document and create a modern replica of the Harwell Dekatron computer known as the WITCH
Well.... sorta! The original WITCH computer ended up with 10 available storage locations, with each storage location having 10 addressable registers, however it didn't start that way. During the early prototype and development of the WITCH, there were only 3 storage locations available! With this in mind, I made similar design/prototype choices during Phase-2 of WITCH-E to only make 3 storage locations. Phase-2 also only supports four functions instead of the full 10 on the original WITCH. The four functions are: Add, Add with Clear, Subtraction, Subtraction with Clear. The Relay Set D Decode board needs to support the eventual capacity of all 10 storage locations so that is how I designed it, but at this stage, with only 4 functions, and 3 storage locations (with 4 registers each), there is no need to build up all of the support on the Decode board. I KNOW I will eventually have to make changes to the Decode board due to testing and debugging, so it just makes sense not to build up the full support and waste parts at this time.... Yeah... I know... it does look a little "Half-Ass" but hey, we can all try to be optimists and think of it as "room to expand"!
During Phase-2 of the project it was necessary to create a small test board to enable the various functions and memory locations. That board is the "green one" in the picture above. It basically consists of a number of switches that all each of the memory locations to be activated as well as select things like addition, subtraction, and clear functions. To bridge the work done in Phase-2 to the input system built in Phase-3, I need to replace the green test board with a bridge board that will connect the two development phases together. This basic board has some Schmitt triggers on it to clean up the signals from the long wires and then route the signals to separate connectors for each of the input system decoders. It's a super simple board, but it is essential to connecting the two sections together!
I had hoped that using a schmitt trigger and some large RC (Resistor/Capactor) values would have been enough to debounce the valid data and select signals, but it just wasn't the case. After reviewing the timing on the oscilloscope, I decided to prototype a monostable multivibrator with a 555. Now, I couldn't just use the standard circuit that is usually associated with a monostable 555 that is found on the net. The main issue is that if you have a timer set for 1 second, and you hold the trigger signal low for 2 seconds, the timer expires. What I needed was a timer to start AFTER the trigger is released. Of course, like most things in electronics there hundreds of ways to do this, but this is what I came up with. Now time to update the PCB layout...
So I finish up extremely late this evening with my "DayJob", and despite being a bit a drained from debugging some new hardware all day, I decided to build up another Relay-D Latch board. I also found some scrap acrylic in the the garage and drilled some holes to mount the modules. I plan to get laser cut acrylic via Ponoko.com , but for now this will help test the cable routing and keep things from flopping around. I had to tweak the schmitt trigger RC values some to get the firs latch to work, but it eventual worked. Unfortunately, tweaking the RC values wasn't enough to keep the second latch from getting a carry over from the first latch. I'm going to have to work on my "key up" and debouncing before I do the next revision...
This new revision of the Input Sequencer board only had some minor changes to it. During my over-haul of the cabling and connections, I realized I needed to pass a few signals through the input sequencer. I also thought I might need an extra reset signal out to some of the modules, so I added a Schmitt trigger output, but not populating it until I actually need it. One think I might change in a feature revision is the decade counter. Right now I am just using a standard 4017 chip, but for looks, I think I replace it with a Dekatron Sim, like I did on the pulse generator module. Next step is to build up the Relay-D Latch boards....
So my daughter was off to work and stopped by my office. She saw that I was experimenting with different cable routing paths, so she took a few minutes to draw a block diagram. For this phase of the project, there are 4 large sections of laser cut acrylic that would hold each of the modules. I was struggling to see how I could mount all the modules and get them connected. I really see the challenge of the early computer developers on how to route and connect all these modules together. Before Integrated Circuits (ICs), this was often referred to as the "Tyranny of Numbers". How do you exactly plan for the massive number of wiring connections between modules and make sure that the minimum number of necessary connections are made. It takes a completely different way of thinking to do this. The really scary part of this log post is that there was very little I had to explain to my daughter. She "just drew" this with little guidance, and I am thinking "wow! did I really inadvertently ruin my children with my nerdy projects?" Maybe... but at least she can laugh knowing that she is fully aware of how to use a soldering iron and can point out the obvious to other people.... ouch! Smells like chicken!
The new keypad encoder is 'All Done!'. It mates up directly with the male headers on the keypad PCB, so no need for cables to connect the two. When I design the laser cut acrylic for this section, I'll need to leave some tolerance for the screw holes so I can make sure it sits snuggle together.
Well it's been a while since i had use for my "bending template"! I took a break from my "day job" work today to assemble the new keypad encoder. I again used the vintage diodes as discussed in an earlier log ( Keypad Encoder ). I kind of regret using them now as they make the board a lot bigger than it really needs to be, but it does add a nice look to the overall design. The keypad encoder breaks the key encoding into one connector that goes to each of the latches, and a separate connector for the reset, execute, and "key-up" signal. During the last round of integration testing ( You WILL be integrated! ), I realized that the keypad and the encoder really need to be close together, so instead of using male headers with female cables, I replace the male header with a female header. This will allow the two boards to be easily connected together with minimal wasted space. Back to bending diodes..... where is Bending Bender Rodriguez when you need him?
The new PCBs for the keypad encoder, input sequence generator, relay-d latch, and relay-d decoder arrived this afternoon. It is always a bit exciting to receive a new batch of PCBs. No matter how trivial the boards are, opening up the box with a little voice saying in your mind "I MADE THIS!". I mostly use PCBWay for prototype PCBs, and they often throw in something interesting with shipments. sometimes a pen or post-it notes. This time it was some Chinese Zodiac stickers! Looks like I have some work do this weekend assembling some boards!
So after my integration testing ( You WILL be integrated! ), I realized that the routing of the cables and signals between the boards wasn't very optimal. I had already come to conclusion that I needed new PCBs to fix a bunch of small design issues, so I decided to overhaul the connections. I spent an entire evening making some mockups and routing cables to figure out the best way to connect everything, then updated all the design files, and ordered new PCBs. They should be in later next week! Fun Fun Fun!