I (xopr) managed to not get the Gigatron up and running on the first try (please don't judge me)
Advanced troubleshooting (with cheap/affordable hardware)
for people fairly new to electronics
One of the first things in troubleshooting (and also mentioned by the manual) is: measure the power supply and clock signals.
Since the clocks are alternating between GND and 5V every 80 nanoseconds (with a 50% duty cycle), the multimeter will pick this up as roughly half of the supply voltage.
Measure signals is harder since the bit pattern can be somewhat random which will result in an unstable value, but can give an indication of a busy bus.
There are a variety of 'scopes in all different price ranges; one of the cheapest ones can measure till about 200kHz and will set you back around $15,-. This one is not nearly fast enough to measure the clock signal, but can display the slower switching values like the upper program counter or RAM address bus bits.
With a cheap DSO138, the ROM's pin 25 activity can be seen with about 195kHz, pin 26 with 97kHz and pin 27 with 50kHz, depending a bit on how irregular the software jumps/branches.
Pins 21 to 24 (the lower nibble of the program counter) is readable with a faster (real) oscilloscope.
The upper byte of the program counter might actually not change that much if the program loop doesn't reach that part of the ROM.
Chances are, you have an Arduino lying around.
You can use it to generate a slow clock signal (with the option to pause/step through the program).
Connect the generated clock signal to the left side of R1 with a crocodile clip and make sure to match GND (for example, have both Gigatron and Arduino use the same USB power supply and don't use long USB cables.
Downside is that audio and video will not be generated correctly and won't work. Optionally, you can use Arduino Uno input 13 (the LED) to verify one designated bit on the Gigatron.
You can expand this set-up in two ways:
- inject a set of custom opcodes and operands on pins x-y in the socket with dupont/jumper cables where the ROM would go (remove it). You will need an extra 16 I/Os for this, so an Arduino Uno will suffice. Pins 19-12 are for the opcode/instruction, and pins 10-3 are for the operand
- use it to read the bits off a bus. You need at least the same amount of I/Os as the number of bits on the bus. Note that this set-up is somewhat similar to the logic analyser set-up
Far-out the most effective way to troubleshoot the Gigatron is using a logic analyser.
Look on the internet for Saleae Logic or USBee (clones) in conjunction with sigrok's PulseView (open source: see https://sigrok.org/wiki/Supported_hardware for the supported hardware). Make sure to include probe hooks. With less than $10,- it's worth a try.
This will sample a short amount of time with a predefined sample rate, which you can inspect (and decode if its regarding a protocol) later on.
Here is a screenshot: Other ideas
- One can also use a double throw switch with a flip-flip, or pushbutton with RC circuit combined with a schmitt trigger to generate a manual clock
- Likewise, command injection could be done with a set of 16 extra switches to 'key' in an instruction similar to the Altair 8800 or PDP-8