astrorat.com

Altair 8800 Clone Meet Raspberry Pi


I have seen on the Altair Clone Form that several Clone owners have put their units on the internet for sharing or remote access. I too wished to have remote access to my Altair via the internet. To achieve my goal, I used a Raspberry Pi with supporting electronics. I also did not want to lose the main serial connector on the back of the Clone. A need to select between my external Wyse 55 terminal via the standard serial connector and the Raspberry Pi is needed. Luckily last month I already design, built and tested a serial AB switch which can be found on this web site under the link “Serial AB Switch”. 


I will now focus on the integrating of the Raspberry Pi in to my Altair Clone with the already installed Serial AB switch.

As seen above, my implementation uses the older Raspberry Pi Model B 756-8308 Motherboard (RASPBRRYPCBA512) which I already had a number of.

The first challenge is interfacing the Serial AB Switch’s RS232 levels to the RPi 3.3V levels. I achieved this by purchasing a plugin shield board that sits on top of the RPi. As seen here, the board selected is the “SainSmart RS232 / GPIO Shield for Raspberry Pi”. This GPIO shield not only gives me the needed serial interface but also supplied a breakout of many of the RPi’s General Purpose Input Output (GPIO) lines needs in another phase of this project.


The RPi is using a minimal version 2015-2-16 of RASPBIAN. RASPBIAN is just a version of Linux at the core. The initial setup is nothing special so I just followed the process outlined at the Raspberry Pi web site.


Once the RPi RASPBIAN is up and running, I needed to prevent the Linux from using the serial port. The Broadcom UART appears as /dev/ttyAMA0 under Linux. There are several minor things in the way if you want to have dedicated control of the serial port on a Raspberry Pi. The kernel will use the port as controlled by kernel command line contained in /boot/cmdline.txt. The file will look something like this:


dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait


The console keyword outputs messages during boot, and the kgdboc keyword enables kernel debugging. All references to ttyAMA0 need to be removed. The resulting /boot/cmdline.txt, should now contain:

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

You must be root to edit this (e.g. use sudo nano /boot/cmdline.txt). Be careful doing this, as a faulty command line can prevent the system from booting.

A login prompt appears on the serial port after boot up and will need to be disabled. This is controlled by the following lines in /etc/inittab:

#Spawn a getty on Raspberry Pi serial line
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

You will need to edit this file to comment out the second line like so:

#Spawn a getty on Raspberry Pi serial line
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

Now reboot the RPi for the new settings to take effect. You can use /dev/ttyAMA0 like any normal linux serial port, and you will not get any unwanted traffic confusing any attached devices like the Altair Clone.

I use two different serial software packages to communicate with my Altair. Minicom and ser2sock. Each are accessed using different methodology.

Minicom is a terminal emulation program in Linux. To access minicom I first have to connect to the RPi via SSH and then login to Linux via a user account. From there I run the minicom program within the user shell. This method provides a nice form of data security and limits access rights to only approved users.

Ser2sock is a utility program that allows sharing of a serial devices over a TCP/IP network. It also supports encryption and authentication via OpenSSL. In my setup ser2sock is setup as a simple serial over TCP/IP on port 10000 with no encryption. I just use putty, Tera Term, etc. to access the Altair. For more information on ser2sock visit the project site at https://github.com/nutechsoftware/ser2sock

There is one final connection that needed to be made between the RPi and the Serial AB Switch board.  In the AB Switch project I included an input that would let the AB Switch remotely select the B channel. This option becomes useful for all the times I am at my computer at work and realized I forgot to switch the Serial AB Switch over to the RPi’s B channel.  I have connect the GPIO 18 line on the RPi through a level converter, remember that RPi is 3.3V not 5V, which I constructed on a prototype daughter board and plugged on top of the SainSmart RS232 / GPIO Shield. Now making a three board stack.  A short 2-pin to 2-pin interconnection cable is used to connect the two units.



In my original setup, I used a DB9 to DB25 serial cable to connect the Altair to the RPi. I placed the RPi on the top of the Altair case. Then one day while working on the Serial AB Switch project, I noted all the open space within the Altair Clone’s case. There were still unused mounting holes and the Serial AB Switch was already mounted in side. The AB Switch had just enough 5VDC power needed to power the RPi. It was much neater to route a short remote select line between the RPi and the AB Switch. So that is where the RPi is now installed.


The wire diagram shown details all the interconnections needed between the RPi, the Serial AB Switch and the Altair main board. To understand all that is going on in this diagram and the following picture, you should also look over the Serial AB Switch project descriptions.  There I fill in some of the details of the AB Switch not covered here.

Final Altair Clone plus Serial AB Switch plus RPi

Known Issues and whats next?


To make the installation even cleaner, I am thinking of designing an optimized shield to sit on top of the RPi that integrates both the serial interface and remote serial select signal functions.


Add aJ8 +5VDC power connector to the Serial AB Switch board to power the RPi unit.  Test a switching replacement for the 7805 to allow for a higher current rating to power newer B+ and beyond RPi boards.


share the Python and shell scripts used to trigger the remote serial switch.


Right now there is a network cable going through one of the serial holes in the back of the Altair Clone. Design a nice RJ45 infill panel to dress up the network connection.


The RPi version of Minicom has two issues. It does not support the VT100 special graphics I like using in my 

programming and the Xmodem does not work dependably with the Altair Clone. I hope to find solutions to these problems.