Romantic Robot Multiface 128 Re-Creation
A while ago, I remembered what fun I had on the Sinclair Spectrum, an AT&Y SPEC-MATE and Microdrives, hacking games for infinite lives and such. Sadly, try as I might, I can’t find a SPEC-MATE for sale anywhere (please contact me if you have one!). This led me on to the Multiface. A device produced by a company called Romantic Robot. With one attached, the user is able to freeze a program, save it to a variety of formats (Tape, Microdrive, Disk etc.) and add ‘pokes’ (change RAM values) for said infinite lives.
I first tried to re-create a simpler interface, the Spanish Phoenix III. My prototype appears to work with the Phoenix ROM but can’t page out at the moment. It also seems to work with the SPEC-MATE ROM but with the same issue. Research on that one continues.
In the meantime, I sought to investigate how these interfaces work and see if I could re-create one from the hardware itself. I chose to work on the Multiface 128 since it is compatible with the 48K/128K and +2 models of Spectrum and I am in contact with someone re-creating the Multiface 3 which is compatible with the +2A/B and +3 models. Between us, all the models are covered!
The first step was to photograph the board in detail to use as a reference for re-building later and for chip placements etc. I will post the images I captured along with the design files below.
Following this, I stripped my Multiface down to bare board. I acheived this using a de-solder gun, a most useful piece of equipment. I tried very carefully to de-solder all the chips without damage. Sadly, the 74LS27 was very stubborn and got a bit mangled! On the positive side, the PCB wasn’t damaged at all during the process which means I should be able to re-build the interface at a later date.
I placed all the chips on an non-conductive sponge in a box, along with the rest of the components. The only part I didn’t remove was the edge connector and passthrough board. This would have been a difficult job to do without causing unnecessary damage.
I then proceeded to lay out a set of components in the EDA Program KiCad. A free Schematic capture and PCB Layout program. I recently converted from EagleCAD and I have grown used to the different methodology without too much difficulty. Once I had laid out a full set of components, some of which I had to draw from scratch, I added the connections for the edge connector. I prefer to use net labels to indicate connections rather than the more conventional bus lines. I find it makes for a cleaner diagram.
When I had completed the edge connector, I traced each connection along it. I started with the upper connections since they were easier to access. I followed the tracks with a pointing device, in this case a pencil! Where I was unsure a connection got to a particular destination due to interconnecting vias, I would double check with a multimeter set on it’s lowest resistance range. Most modern meters have a continuity/diode check that can be used for this purpose. My aged Fluke 73 has to make do with resistance ranges.
This process was quit painstaking but essential to get correct. Lots of the connections go to more than one chip’s pin so checking multiple times is essential. When I had gone through all the edge connector connections, I continued by tracing every chip pin one by one. The board isn’t marked so I added my own component designations to one of the images I had captured and copied those in KiCad.
Each chip pin was traced and gradually, I assembled the circuit diagram, line by line. Again, checking, double checking and even triple checking was necessary to avoid mistakes. After all the chips were done, I added the two resistors, NMI button and the protection diode on the edge connector. This diode is omitted on the prototype since I wasn’t intending to put a passthrough on it but can easily be added. Finally, after a good few man hours, the job was done.
Time to design a PCB. I intended to get the prototype PCBs fabricated by EasyEDA due to the fairly fast turnaround and good price point for prototype boards. The final boards I will have made by Hackvana since they are of very high quality. To hit EasyEDAs Prototype price point, the PCBs needed to be within 100mm x 100mm in size. The original Multiface board is 114mm x 70mm, so I shuffled it around slightly. Later on I will expand the board out to fit the original case.
The PCB was quite challenging to lay out. It required mutiple vias and some creative routing. I hand routed all of the connections one by one. This is my favorite part of any design though.
Having routed the board, I did a DRC check to make sure the connections were all complient with the design rules I had set up. All was fine. I then plotted Gerbers and drill files which would be submitted to the fabricator. Rather than trust these files are OK, it’s good practice to check them externally to KiCad. I use Gerblook at the moment but I have noticed a message on the site to say it has been bought. Hopefully the service will remain free of charge.
Having checked the board looked correct on Gerblook, I uploaded the ZIP of Gerber files and drill file to EasyEDA and ordered the prototype boards. Time passes….
…And the boards arrive. they took around 2 weeks from the time I ordered them. Not bad for a budget service.
A quick visual check found the boards in good order. I assembled all the components, including a few from the original device since I had none of those particular ones in stock. I soldered the de-coupling capacitors first since they are the lowest profile. I followed these with the resistors and NMI button, then all of the chip sockets.
The above image is the completed interface mounted on the rear of a 48K Spectrum Plus. You will note that the edge connector faces the Spectrum and the chips are on the reverse of the board. This is in keeping with the original design. It also means that the board has extra room behind between it and the Spectrum. You will also notice that the ROM chip U1 has no Erase window. This is because I had no 27C64 EPROMs in stock. This is an OTP chip (One Time Programmable).
I was very pleasently surprised to see the interface work first time!
One press of the NMI button brings up the familiar menu. I have gone through the motions of testing the unit by initiating a tape save and poking 16384 with 255. It all seems OK. I can’t test with Microdrives as yet since I have none working. I will update when I have the chance.
In the meantime, if you would like to investigate this first iteration of the design or build one for yourself in it’s present state, the design files are below. I will be updating the design in due course by extending the PCB to fit the original case.
Here are all the files for fabricating the Recreated Multiface 128 PCB v1:
- Recreated Multiface 128 PCB .SCH schematic file
- Recreated Multiface 128 PCB .PCB board file
- Recreated Multiface 128 PCB .PRO file
- Recreated Multiface 128 PCB .LIB file
- Recreated Multiface 128 PCB Gerber .ZIP file
- Recreated Multiface 128 PCB Schematic .PDF file
- Recreated Multiface 128 PCB BOM .TXT File
The entire directory of resources is available at: Recreated Multiface 128 PCB
Please note, due to the way the website server stores and accesses files, I have added underscores to filenames.
I haven’t included the ROM file due to the unknown copyright status. however, it is available from multiple sites. The version that works in this hardware is 87.12 Search for ‘Multiface 128 ROM version 87.12’
This project was a proof of concept for me. I wanted to challenge myself in re-creating a fairly complicated piece of retro hardware and use it to aid in my understanding of how such hardware worked. I also wanted to preserve the design for retro enthusiasts enabling them to re-create their own. I’d welcome any contact with the original IP holder/s In the meantime, I make no claim as to the validity of my re-creation or fitness for purpose. I have checked it to a point on my own hardware but this is no guarantee of it working on any other hardware. In short, you use these files at your own risk and any loss or damage caused is entirely your own responsibility.
If you do make one of these interfaces, I’d love to know.
Sinclair Spectrum Composite Mod PCB
I designed a PCB to house several versions of the Spectrum Composite Mod. Details of how to impliment the PCB can be found in my series on Refurbishing a 48K Rubber Keyed Spectrum. The PCB simply replaces the existing Modulator PCB. I would recommend that you remove the original carefully and put it in storage, in case you ever wish to re-install it for authenticity.
The PCB itself is very simple, requiring just a few components to operate. Choose which of the three options you would like to use.
Option 1 is an Inverted Emitter Follower recommended to me by Andrew Gostling in an attempt to get a Dell UltraSharp 2007FP Monitor to work with a 48K Spectrum. Sadly, the monitor is extremely picky about it’s composite input and is well documented for it. In this instance it didn’t work. However, the composite mod works with all the other monitors I have tried it with.
Option 2 is a simple NPN transistor and resistor mod. the NPN Transistor can be any general purpose device. I have used a BC547 in the past.
Option 3 is a single 100uF capacitor which is seen to be the minimum required.
I have had several conversations around the need for other components with regard to the composite mod. Some say that it is not necessary at all and others say that, in case the monitor goes faulty or is very badly designed, it can feed voltage back to the Spectrum. I recommend you do your own research and choose the option that best suits you (including a direct connection and/or suspending the components outside of the modulator box retaining the original PCB inside the modulator).
Here are all the files necessary for fabricating the Spectrum Composite Mod PCB:
- Spectrum Composite Mod PCB .SCH schematic file
- Spectrum Composite Mod PCB .PCB board file
- Spectrum Composite Mod PCB .LIB file
- Spectrum Composite Mod PCB Gerber .ZIP file
- Spectrum Composite Mod PCB Schematic .PDF file
The entire directory of resources is available at: Spectrum Composite Mod PCB
To create the board, you can simply copy the Gerber ZIP file and submit to your favourite fabricator, I use Hackvana for my boards.
All these files are provided freely in the spirit of Open Hardware. Feel free to copy and modify the design for your needs, however, I would appreciate a credit if you do. Use at your own risk. Any damages caused as a result of using this design are your own responsibility.
ESP8266 ESP01/03 Flash/Proto Board v1.4
This section holds all the design files and information to make and program the ESP8266 ESP01/03 Flash/Proto Board v1.4 The design is released under Creative Commons Attribution Share-Alike. This means that you can freely copy the design and adapt it for your own purposes provided you attribute the design to ‘ProjectAVR – Steve Smith G0TDJ’ and use the same license for your adapted designs. Full information on the Creative Commons website. The intention is to make this design Open Hardware. The board has been assembled and tested by myself. Although I don’t attach any warranty or fitness for purpose. If you wish to use the design you may do so freely, but at your own risk.
Having read that the ESP8266 was a micro-controller and had the facility to be programmed via the Arduino IDE, I set about designing a PCB to accommodate either the ESP-01 or ESP-03 modules. I came up with this design after a few iterations.
I had it fabricated and realised I had made a few mistakes. I hadn’t known that GPIO15 on the ESP-03 had to be grounded for normal or programming operation. I also didn’t know that for programming the ESP-03 module, GPIO-2 needed to be taken to VCC either. However, I did build up an example of the v1.3 board using both the ESP-01 and ESP-03 modules.
You can see the flying leads I added on to the right-hand board for GPIO-15/16. Although a little ‘clunky’ to work with, both the boards worked fine and proved the concept. I had a long think about how to improve on the design and I resolved to make it an SMD board. There aren’t may components to solder and making the board surface mount would make for a more compact design, ideal for IoT applications.
This is what I came up with. A much more compact layout with GPIO-15 grounded and GPIO-2 (along with GPIO-0 for use with ESP-01’s) on a single switch which has Program and Run positions. I also replaced the power selector switch with a jumper since it would be seldom changed. This allows selection of the power source between either the 6-pin serial header or the USB/JP1 header. I also removed a few header pins that had no connection on the previous version.
I had the new v1.4 PCBs fabricated by the excellent Hackvana who always produces clean PCBs with a good silkscreen. The Gerber files here are optimised for Hackvana and other fabricators may have issues with such tight tolerances. You can, of course, produce your own adjusted gerber files from the Eagle files below if you wish.
Here are all the files necessary for fabricating the ESP8266 ESP01/03 Flash Proto Board v1.4:
- ESP01/03 Flash Proto Board v1.4 .SCH schematic file
- ESP01/03 Flash Proto Board v1.4 .BRD board file
- ESP01/03 Flash Proto Board v1.4 Gerber .ZIP file
- ESP01/03 Flash Proto Board v1.4 Parts List .TXT file
- ESP01/03 Flash Proto Board v1.4 Schematic .PDF file
The entire directory of resources is available at: ESP8266_Board
One little gotcha is the reset line for the ESP-03 modules. There are two small connections near the ceramic antenna on the ESP8266 chip side. If you wish to utilise the reset switch on the PCB, you will need to add a shorting link across these.
It’s quite a task. I used a fine soldering iron tip under a magnifying glass supported with my ‘Helping Hands’ The link is a piece of resistor lead, cut down to size and held in place for soldering with angled tweezers.
Programming the ESP8266 via the Arduino IDE requires the installation of some free software that can be downloaded from GitHub. This adds options into the menus of the IDE for direct programming via serial. I use a simple USB to Serial adaptor that I sourced on eBay. The header pins on the board are positioned with this in mind.
If a different USB to Serial adaptor is used, dupont type flying leads can be utilised for the connections. Once connected, set the Run/Program switch on the flash board to the Program position, select ‘Generic ESP8266 Module’ in the Boards menu of the Arduino IDE and all should be well.
ESP8266 ESP-01/03 Flash/Proto Board by ProjectAVR – Steve Smith G0TDJ is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Universal 78(X)XX Regulator Board v1.00
This section holds all the design files and information to make the Universal 78(X)XX Regulator Board v1.00. The design is released under Creative Commons Attribution Share-Alike. This means that you can freely copy the design and adapt it for your own purposes provided you attribute the design to ‘ProjectAVR – Steve Smith G0TDJ’ and use the same license for your adapted designs. Full information on the Creative Commons website. The intention is to make this design Open Hardware. The board has been assembled and tested by myself. Although I don’t attach any warranty or fitness for purpose. If you wish to use the design you may do so freely, but at your own risk.
A little while ago, I realised that I use the same type of regulator for most of my projects. This is normally a 7805 with the associated components. I had the idea of designing a PCB that could be configured for any of the 78XX devices or alternatively, the 78LXX devices. This is the result.
I designed it to be a quick and easy way to get a fixed voltage set up for a project, or to have in the tool box to regulate a source such as a badly regulated ‘wallwart’ style PSU or rechargeable battery. The board has several features, including a 1N4001 (or similar) polarity protection diode on the input, an optional power LED and associated resistor (R2) and a choice of capacitor sizes. There is also a snap-off heatsink support (Snap off before assembly) and jumper connections for Vin and Vout.
To assemble the board, you just use the components you require for the device you have chosen. C1 and C3 are on the input, while C2 and C4 are on the output. D1 protects the input from reverse polarity and LED1 is fed off of the output voltage (Choose R2s value to suit).
Here are all the files necessary for fabricating the Universal 78(X)XX Regulator Board v1.00:
- Universal 78(X)XX Regulator Board v1.00 .SCH Eagle Schematic file
- Universal 78(X)XX Regulator Board v1.00 .BRD Eagle Board file
- Universal 78(X)XX Regulator Board v1.00 .ZIP Gerber file
- Universal 78(X)XX Regulator Board v1.00 .PDF Schematic file
- Universal 78(X)XX Regulator Board v1.00 .ZIP Archive (All Files)
The entire directory of resources is available at: Universal Regulator Board v1.00
Universal 78(X)XX Regulator Board v1.00 by ProjectAVR – Steve Smith G0TDJ is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.