Getting a terminal into the PiDP-8


 

Raspberry Pi's are very flexible. You need a screen & keyboard, and it could just be the HDMI plus a USB keyboard. But that was not the intention for the PiDP. Although you can use it for sure. A normal HDMI cable is a tight fit into the (2019 version) case but it will fit if you insert it into the PiDP PCB and then mount the PCB into the case. Or buy an angled HDMI cable.

Anyway, most people configure their Pi to have a ssh terminal connection over Wifi, it seems. Nice and clean. You can even have 6 terminals hooked up this way (for the multi-user operating systems) without spending a dime on cables.

Three alternative options for getting a terminal on the PiDP:

1) A real VT-100, VT-220 or similar serial terminal. Use a USB-RS-232 adapter cable. They cost $5 or so (search on Aliexpress and similar sites).

2) Only if you use the Pi Zero (or Zero W): A single USB cable can provide power to the PiDP from your laptop, and at the same time, provide a network-over-USB connection into the Pi. So one cable is all you need. Neat! You can use the cheapest $5 Pi Zero (without W) and get it on the internet this way. It can deliver the Pi's GUI and graphics over VNC, and ssh terminal sessions using puTTY, MobaXTerm or whatever terminal program you prefer. It is simple to set up, see here (link).

 

3) Two joined-together TTL serial over USB cables to hook up your laptop. The Pi supports, out of the box, the super-cheap (<$3) USB-to-TTL-Serial cables. The ones that are often used by the Arduino crowd: PL2303 cables. The link points to Adafruit, which is always good but a bit more expensive. If you are not afraid of Aliexpress, they're <$3. Including shipping. Sheesh.

If you plug one of these cables in the Pi's USB port (or the USB hub if you follow my original intention), it ends in GND, TX and RX pins. Simply connect these with a second, identical cable. As follows: RX-TX, TX-RX, and GND-GND. In other words, white-green, green-white, black-black. Do not connect the red pin, which is 5V, it'll conflict with your 5V power supply.

Now you have a USB connector that goes into your laptop, and you can use your favourite terminal program (Teraterm, or puTTY, or minicom). Some Linux-foo is required to set up the Pi so that it has a console port assigned to the USB-Serial port. Here's a link to how that is done.

People sometimes report problems with the PL-2303 driver on Windows. Adafruit has an explanation. It makes sense to first test one cable, with the TX and RX pins shorted, and check if you can see what you type. Then you know the Windows end is working, and the Pi end can be connected as described.

Click to enlarge:

R23 and 24 are in the same place in Raspberry PI Model A+/B+ and 2. If you want a serial port, they need to be removed.

The J_COL1 and 2 jumper blocks: on both, cut the PCB trace between pins 1-2, and jumper pins 2-3.

Apologies: the cuts need to be on the other side of the board from where the markings are. So on the other side from the picture above. If you do it on the wrong side, no damage arises but beg your pardon.

For 2015-2018 kits only: enabling the Pi's serial port


 

ONLY FOR 2015-2018 KITS. The easier way to hook up a serial port was described above. But if you insist, you can still add a serial port the old way, through the modification below. Recommendation: forget about this - the USB-Serial solution above is better. Still... if you insist on using  the GPIO serial port, the problem that needed to be solved was the following: The Pi reserves two GPIO pins (14/15) for a classic serial port. Another two pins (3/4) are reserved for I2C interfacing, with troublesome pull-up resistors added in front of them. But the PiDP needs 2 of these 4 pins to work. Hence two options:

  • ​Default: the serial port is disabled and its pins 14/15 are repurposed for the PiDP.

  • Modified: the serial port is freed up.

    • You need to modify the Raspberry Pi by removing the SMD resistors R23 and R24.

      • Unsolder these SMD resistors, by pressing the soldering iron on the right-hand side of the resistor, hold it for 15 seconds and flick the resistor up, out and away.

      • Or just tear the resistors off with a side cutter and reflow the solder on their solder pads to clean up. You do need magifying glasses to inspect the result of your butchery.

    • On the PiDP board, look at the jumpers J_COL1 and 2 above the gpio connector. You need to cut the two traces between their pins 1 and 2 on the other side from the text markings (see picture to the left). Use a sharp knife to cut. Check with a multimeter that the connections between pins 1 and 2 is indeed cut.  

    • On both J_COL1 and J_COL2, solder jumper wires between their pins 2 and 3.

    • This frees up gpio pins 14 and 15 for the serial port. Solder resistors (their value is not very critical but recommended is X=500 ohms, 2*X = 1K ohms. One must be twice the value of the other. You can also use one 1K Ohm resistor for 2*X, and two 1K Ohms in parallel, wedging them into the single footprint, for the X resistor), and a pin header for the serial port next to them. The resistors make the serial port 5V tolerant, even though the Pi works on 3.3V. Note these resistors must NOT be soldered in if you do not enable the serial port!

 

Note:

  • Use a 5V TTL Serial to USB cable ($5 or so) to connect with a PC.
    The pinout of the serial port is compatible with what's used on the Arduino Pro Mini. So it has a 5V power supply pin, GND, RX and TX. You can power a Pi A+, B+ or Zero with the same cable!

  • Using a TTL Serial to RS-232 converter ($2 or so) will allow you to hook up a serial terminal.

  • Warning: take extreme care when connecting the serial cable. Plug it in the wrong way and you risk damage to the Pi. Only the RX pin is protected from 5V signals.

  • To let the PiDP operate correctly, recompile the source as per the instructions in this forum post.

CELEBRATING 50 YEARS OF PROGRAMMED DATA PROCESSING

PiDP-8/I: RECREATING THE PDP-8/I

7120711513027485198.jpg

Recommended:

Gigatron - the computer without a microprocessor!