Translate

Tuesday, 21 December 2021

Building an Altair 8800 Clone.

Having had a bit of a clear out of the workshop recently, I found a very posh (and expensive at the time!) rack case. 

I need something to build into it. Let's re-create someone else's project for a change..

What about a MITS Altair 8800 clone? That would be exciting, and there's a ready-to-roll Arduino emulator available. It really is an extensive project, but using inexpensive hardware. Details can be found here.

So, parts are procured... An Arduino Due clone, a bunch of LEDs and switches.

The original clone project called for a bunch of buffer transistors to drive the LED's, as if they were all lit up, the maximum source current of the Due would be exceeded. I must say, the designer does like to run his LED's at a higher current.But who doesn't like some bright LED's? You could increase the current limiting resistors, and not bother with a buffer, but who doesn't like some bright LED's? The buffer board consists of a lot of transistors. Let's simplify this and use a few 74HCT541 non inverting buffer IC's. We've got more bits than we need.. you never know.. expansion or something!


A PCB is created, and sent for manufacture.. 







Now we're going to need a front panel made, and I used Front panel designer to re-create something a bit like the original. It's sent off to ATP Projects to make it reality. Files for the front panel, and buffer PCB can be found on my github page here.
 


Now, as well as the human/machine interface being handled by the front panel LEDs and switches, it also has a terminal interface. I dislike the idea of hooking this up to a modern computer, running some serial terminal. I'd rather it had an interface of it's own. Now various bits of video hardware are supported by the emulator. I like the idea of a composite output, emulating a old style terminal (I did look, briefly, at procuring an old VT52/100 compatible terminal... whoa, there's some money now!). I can make a serial terminal to output composite video easily enough using Arduino, and to send data from a PS2 keyboard, but there's already a polished, open source solution already out there, courtesy of Geoff's projects. It supports PAL and NTSC and VGA, and emulates a few different terminals. The gerbers are downloaded, and sent for manufacture.

The front panel arrives . It's superb. 





... as do the PCB's...









The buffer board is the first to be populated. 











The LED's are fitted to the front panel and held in place with a dab of adhesive. 








While this is drying, the Due clone is uploaded with the code. You'll need to install any missing libraries, and ensure the version of the SdFat library installed is 1.1.4, later versions throw the error 'File' has no member named 'getSFN'.

The front panel switches are added in...









... and the long, tedious job of wiring it all up...









... LEDs to the buffer ...









... buffer to the Due, with SD card adaptor used as a reader as per the instructions. I hope you like the "mother" board ðŸ˜†.



Switches connected...  Note the micro SD card adaptor is used to connect SD storage to the Due.


... and a quick test shows some fault finding is needed as a couple of the LED's aren't working, which is thankfully easily sorted. 

Next the video interface is built up, and programmed with Pickit 5 (Graham's design uses a 32 bit PIC microcontroller)


 





The MPLAB IDE faultlessly uploading the firmware.










In the interim period, I'd managed to get hold of a small black and white CRT monitor on Facebook Marketplace, for peanuts. I'd tested it, and it performed well with a test pattern from the video rack. Thanks Colin! 

It's not got a makers name, but I'm thinking it may be a Hitachi or Shibiden. 

It's vintage and looks the part... 








Hooking the output from the PCB to the monitor and switching on produced less than encouraging results. If you look carefully, you can *just* make out some text in the top right of the tube ... and why is the line sync showing up white?? 




Reversing the video connection solved the issue. Serves me right for using the wrong type of socket! 





... and once a compatible keyboard is located, RX and TX pins shorted together to get an echo test to work ... 

Brilliant. Now to connect it to our Altairduino!




The RX & TX lines are connected to pins 18 & 19 of the Due, and the unit powered up. With a serial terminal opened via the USB port on the Due and my PC, the Stop and AUX1 switches are raised to put the unit into config mode, where the default serial terminal can be moved to pins 18 & 19. Don't forget to save as default! (If you do this without an SD card present, the default settings are saved to EEPROM within the Due. If you subsequently fit an SD card, the process will need to be repeated, as the default is then saved to the SD card. 

So far the machine has been running from 5V supplied by my bench supply. A simple power supply is built up on a piece of perfboard. It's a rectifier, some smoothing and a 7805 regulator. LEDs are added to the input and output, just because ... 


A suitable 6V transformer is mounted into the enclosure, along with the supply board, and connected up .. 

Mains will eventually be supplied via an IEC connector on the rear panel.



I want to replicate the Altair badge on the front of the machine, so I order a piece of thin aluminium, cut to the required dimensions by eBay seller Penninehardwaredirect. Just message them the required size, and they do the rest. A first class service. 

I spent a while searching for the right sort of font, and 256-bytes fits the bill.


It's flipped to mirror image and laser printed onto some glossy photopaper, and that is then ironed onto the aluminium strip, with the iron on the hottest setting. It's exactly the same procedure as making a toner transfer PCB.

Soak off the paper... 
... and give it a light coating of clear protective lacquer...









.. and stick it to the front panel with some contact adhesive. Smart.







A back panel is fabricated from aluminium to (my now) legendary high standards (ahem). It's not from this rack unit though, and this rack doesn't appear to have any means to attach a back panel....
So some doo-hickies are drawn up on CAD, and 3D printed....









... and pressed into service ... 

Nice ...










The back panel is secured into place, and I'm thinking it's finished. I was wrong. 









The keyboard interface isn't working. It was previously working fine. Doing a loop-though test, the terminal appears to be sending data, and that's confirmed with the oscilloscope.... Some head-scratching occurred... Also another weird thing was happening. Any traffic on the USB com port of the Due was being relayed to the terminal board via pins 18/19. The Due was erased and re-flashed. Same weirdness... It's also refusing to read the SD card... 

A replacement (genuine this time!) Due was ordered,  and some aspirin to cure the headache caused by the wiring, and this sorted the issue.


I also ordered an SD extender , and used this instead of the adaptor. I can conveniently locate the SD card reader on the exterior of the case now. 







Right... I'm off to see if I can complete Infocom's hitchhiker's guide to the galaxy!






No comments:

Post a Comment