To convert between TTL and RS-232 signaling, an adaptor is needed. I used a module from DaFuRui¹ which is based upon the very popular MAX3232 chip. The build quality on the module seems good and it is at least relatively tolerant of electrical errors (see below). Assuming your Raspberry Pi already has the GPIO headers in place, you'll only need for F/F jumper wires to connect the module. If the GPIO header is not present, you can add the 40-pin header or directly wire the connection to only the relevant pins (see below).
This works on any (non-pico) model Raspberry Pi.
The DaFuRui module exposes pins for VCC, RXD, TXD, and GND. These should be wired to the Raspberry Pi's GPIO pins 1, 10, 8, and 6.² When I first wired up the module, I connected VCC to the raspberry pi's pin 4. This will power the module, but at 5V instead of the rated 3.3v. It did not seem to do any damage for the few minutes I had it connected this way, but the unit did get very warm very quickly. I did not test data transmission under this configuration.
First we will need to tell the Raspberry Pi bootloader to enable the uart by editing config.txt on the boot volume. If you're doing this on the pi running Plan 9, run c: to mount the boot dos partition, then edit /n/c/config.txt to add this line:
enable_uart=1
echo b9600 > /dev/eia0ctl
The simplest test is to run con /dev/eia0 with the converter connected to a suitable serial port on another device.