The PIC32 Unix Box

A matchbox sized UNIX™ computer

The VAX-11/780 and BSD

It is the 40th anniversary since the introduction of the VAX-11/780 minicomputer manufactured by the Digital Equipment Corporation (DEC) back in 1977. DEC's preferred operating system of choice at the time was VMS and was also released in the same year. Following this, in 1978 a VAX-11 computer was installed at the University of California Berkeley site, and shortly afterwards BSD Unix was ported by Berkeley students to run on the VAX-11 hardware. The first version did not make use of the new virtual memory architecture, but this was fixed with the release of 3BSD by 1980. Subsequent improved versions were released by Berkeley up and until the penultimate version 4.4BSD-Lite version which was released in 1994.

The picture gives an indication of the size of the original 1970s minicomputer.

The PIC32 Minimalist Equivalent

As a mark to this colossal machine and to Unix, I decided to construct a working computer capable of running BSD in similar fashion to the 11/780 in a rather more manageable size. Luckily technology has moved on somewhat since the 1970s, and the challenges facing the DEC hardware engineers back then are no longer relevant to the casual constructor. Thanks to the work done by Serge Vakulenko, the developer responsible for porting one of the final versions 4.4BSD-Lite over to the Microchip PIC32MZ, and the fact that the PIC32 microcontroller uses the MIPS instruction set, running native BSD Unix code on this single chip is certainly possible. The amazing PIC32MZ2048ECM064 microcontroller has built in 2MB of flash memory used to store the kernel, 512kB of memory managed RAM to give 4GB of addressable memory space necessary to run a multi-user / multi-tasking operating system such as BSD.

You may be thinking 'well I can do the same thing on my Raspberry Pi'. You're right you can, but the difference is that the Pi uses the SIMH system emulator to translate instructions and does not actually run native Unix code, and so will run with degraded performance.

As a basic computer with just one serial terminal port fitted and without the optional Ethernet, the circuit diagram is surprisingly sparse and simple.

Board Construction

The construction of the PIC32 Unix Box is fairly straightforward, and should not pose a problem to the experienced electronics constructor. All the components are mounted on the top side of the PCB matrix board, and interconnections are wired underneath. Space was left at the top of the board to allow for the possible later fitting of the an Ethernet PHY board, at such time when the kernel is reconfigured accordingly.

SMT Chip Soldering

The only issue for some constructors including myself, was soldering the 64pin QFP chip to the SMT adapter board. The method I found successful, was to first apply flux to the pads then overlaying a fine line of solder paste to each row of pads, followed by carefully lowering the IC down so it sits correctly aligned, and then melting the solder paste using a soldering heat gun station. I removed any solder bridges between pins using solder wick dipped in flux, and cleaned off any residue flux. I managed to do all of this without the use of a microscope, but I certainly needed a strong magnifying glass and a steady hand.

VT100 Terminal Operation

The PIC was programmed with the BSD kernel image and the micro SD card was loaded with the BSD file system. Further details of which and the necessary software can be downloaded from GitHub site.

After powering up and connecting a VT100 terminal emulator to the board, the familiar boot screen was displayed which brought back fond memories of the early 90s when I used to use and program such machines. Project success!

Machine Specification Comparison

Although no benchmark tests have been performed as yet, on paper the PIC32MZ device will easily outperform the VAX-11/780 machine in nearly every category. This being a true testament to the technological progress that has been achieved over the past 40 years.

PIC32 Unix Box DEC VAX 11/780
CPU Microchip PIC32MZ TTL logic
Price $20 USD (2018) $120,000 - $160,000 USD (1978)
Bus width 32 bit 32 bit
Clock speed 200MHz 5MHz
Performance 330 MIPS 1 MIPS
RAM 512kB 128kB - 8MB (typically 4MB)
Disk 16GB (Micro SD Card) 205MB (14" Winchester)
Dimensions 7 x 5 x 2 cm 153 x 118 x 76 cm
Weight 0.05kg 498kg
Power 0.25W (5V) 6225W (Mains 3-phase)

External References



A kind comment from Professor Brian Kernighan, whom originally coined the term "Unix", and instrumental to the development and success of this monumental operating system.

Hi, Guy

That's pretty remarkable, I must say. I used VAXen quite happily for a long time, though more with variously 7th through 10th edition Unix, which was our local version. The table at the end of your blog is striking. I know all about Moore's Law and so on, but seeing a head to head comparison like that is really interesting.

Thanks for telling me about it.


20 May 2018