Adding a PiTube co-processor to a BBC Master
The BBC Micro and Master computers were designed by Acorn from the outset to support a second processor via the proprietary Tube interface.
Typically Acorn’s external second processors are in enclosures that matches the aesthetics of the BBC Micro and contain a power supply, processor, RAM and ROM. Essentially a computer without a keyboard and video output. The only IO is via a custom ULA that provides four bi-directional FIFO buffers.
The second processors connect to the Tube interface on the BBC Micro via a short ribbon cable. The BBC Master also has an internal Tube interface on the motherboard for the Master Turbo co-processor board. This is powered off the host PC. In either case, communications between the host and the buffers on the second processor is clocked at 2MHz, the same speed as the host 6502 CPU.
Acorn produced a handful of second processors: a second 650C2 running at 3MHz, a Z80 running at 6MHz, a 32016, and the ARM Evaluation System. Torch also produced a Z80 second processor, and there is a fabled 68000 one mentioned online in various forums.
The PiTubeDirect project provides software emulation of the Tube ULA and selected second processors. It runs on a Raspberry Pi, connected to the Tube interface via the Pi GPIO pins. An interface board is required to shift the voltage levels of the Tube interface from 5V to the 3.3V GPIO level.
The software and schematics for the interface board can be found on the project website. You can make your own board, or for the sake of £12, you can buy one ready made. I opted for an internal interface board from RetroClinic for my Master, and a Raspberry Pi Zero to run the software. External boards are also available to run on all models of BBC.
Due to the timing constraints of the Tube interface, the software runs bare-metal on the Pi. Extract the latest version here, unzip onto a blank SD card, and insert into the Raspberry Pi. The software also includes a number of emulated co-processors.
As you can see from the video I uploaded to my YouTube channel, the results are astounding.
It is worth noting that the Tube interface does not play nicely with most games. The second processor is unable to access the peripherals of the BBC micro directly. As games typically write directly to the screen memory and CRT controller chip for speed, these will not run correctly. There is one exception to the rule. A version of Elite was written to take advantage of the 6502 second processor.
Thankfully it is relatively straightforward to enable and disable the Tube interface on the Master, and a null co-processor has been included for the BBC Micro; selecting this is the same as disconnecting the Tube hardware.
However, any software that plays nicely with the BBC that uses OS calls to write to peripherals, or is written purely in BASIC, will see a significant boost in speed. The only notable bottleneck, as noted in the video, is the I/O calls from the second processor to the BBC Micro over the relatively slow 2MHz bus.
The Tube interface also opens up the option of developing on different processors including the Z80 and 6809. And with the Z80 and 80286 co-processors, one can load up CPM or DOS.
Anyway, if you have a BBC Micro or BBC Master and fancy pushing it to the limits, I would highly recommend this upgrade. It is a highly cost effective way of giving your BBC Micro a new lease of life.