Sol-20 Reproduction

I am making a full sized Sol-20 reproduction, the first fully assembled microcomputer with a built-in keyboard and television output.

Similar projects worth following
The Sol-20 was an interesting machine. It was introduced in July 1976, appearing on the cover of Popular Electronics magazine. With its 8080 microprocessor and S-100 bus, it had more in common with the Altair 8800s and IMSAI 8080s of the day, than it did with the Apple and Commodore computers that were soon to follow, despite looking more like the latter.

I distinctly remember seeing a Sol-20 in the wild. It would have been the fall of 1977 or perhaps the summer of 1978. I had just started at the University of Waterloo and was visiting my cousin in Toronto. While walking along Queen Street we passed a small computer store and the Sol was prominently displayed in the front window. What a great looking machine with it's bright blue case and walnut sides, but at roughly $1650 (CAD) it was out of my poor student price range.

Because only 12,000 were ever produced, Sol-20s are virtually unobtainable today, so I guess I'll have to build one. Talk about delayed gratification.

The Game Plan

So my plan is to make a full size case that will be as authentic looking as possible, with beautiful walnut sides for sure. I will 3D print the blue panels instead of using sheet metal so the build will be accessible to more people should they decide to make one.  

For the keyboard I have been in touch with Dave from who has designed a complete replacement keyboard for the Sol-20 using modern Cherry key switches. From the Unified Retro Keyboard Project:

The keyboard is not a replica of the original. It doesn't use the same capacitive circuit or keys. But it does have exactly the same layout with the same functionality, including the 3 LEDs (UPPER CASE, SHIFT LOCK, LOCAL) and 3 outputs (RESET, BREAK, LOCAL). It uses cherry MX or Futaba MD-4PCs keys. Neither has quite the same feel as the capacitive keys, but the Futaba keys approach the travel of the keytronic switches, and do have a nice feel.

I'm getting the keyboard as a kit and looking forward to putting it together.

On the inside I'm going to emulate the Sol-20 hardware on a Raspberry Pi 4. To that end I have a working (very basic at this point) Python based emulator I'm going to post to GitHub shortly. 

I haven't decided what to do for a monitor yet. Certainly a CRT of some sort would be ideal, but I may have to go with a LCD.

Is Emulation the Sincerest Form of Flattery?

While I was researching the project and planning the build I was working a Sol-20 emulator. I thought about using Jim Battle's Solace emulator, but it is Windows based and ultimately I hope to run my Sol-20 reproduction on a Raspberry Pi 4. 

Since the Sol-20 was based on the Intel 8080 microprocessor I thought that would be the logical place to start. Fortunately for me, Space Invaders and some of the other early arcade machines also used the 8080.  Because there is a very active gaming community helping to preserve these retro classics, there are a number of great 8080 emulators to be found on GitHub.  I ended up cloning py8080 because it's Python based and I'm more comfortable right now with Python than I am with C++.

So with a working virtual 8080 processor it was a pretty easy task to allocate some memory for it (64K because why not), load a monitor program (Solos since it was the default shipped), set the instruction pointer to the start of the program (0xC000), and run the emulator. Success! Technically I had a Sol-20 running in emulation, but it was pretty boring since I had no way to interact with it. Time to create some virtual devices.

The Display

The system memory used by the Sol-20 is as follows:

C000-C7FF - System ROM. Sol-20 "Personality Modules" like Solos are mapped here.
C800-CBFF - System RAM. Reserved by the system.
CC00-CFFF - Display RAM. Shared memory between the CPU and VDM-1 video circuit.

Although most systems shipped with only 8K or 16K of memory (or less) in those days, I have to wonder why they didn't map these addresses up into the F000-FFFF space to allow a contiguous 60K memory space for user programs. At any rate the important thing to note for display purposes is the CC00-CFFF shared video RAM.  This 1K space was used to store 16 lines of text each of which is 64 characters long. Any text written to this memory would automatically be displayed on the screen.

Using PyGame I created my virtual screen. I could have written the characters from the shared video memory directly to the screen but the Sol-20 used a lot of unique character glyphs.

So based on the original 6574 character ROM I created a set of character tiles that I could easily "blit" to the screen. I wrote a function to iterate over the 64 x 16 array of characters in the shared video memory and write them out to the screen and added this function to the main loop of my emulator. When I did that I was rewarded with this. I know the aspect ratio is off here....

Read more »

  • Final Thoughts

    Michael Gardi11/28/2021 at 22:06 0 comments

    Well it's been about 45 years since that poor college student version of me saw his first Sol-20 at that small computer store on Queen Street in Toronto. It was something that I never forgot. For me the wait is over. I now have a working Sol-20 and have been having a ball running all of the cool programs that were written for it those many years ago. 

    I have to thank Dave from who designed the complete replacement keyboard for the Sol-20 using modern Cherry key switches. He was a great help throughout the project. Without this great piece of kit to build on I may not have even attempted this project. 

    This was the first project I can remember where I didn't have to scour the far corners of the internet for information about the Sol-20. Jim Battle has done an amazing job of gathering a huge treasure trove of Sol-20 materials into one site, A one stop shop for the would be Sol-20 replicator, or anyone with an interest in this wonderful retro computer. 

    Rick Downs (redjr16), who actually owns a Sol-20 (I'm totally jealous), was kind enough to take the time to answer my many questions, take pictures, and more. Thanks Rick!

    When he saw my project Nyles sent me a huge pile of original manuals that he had been keeping. 

    Once the hardware and emulator were done, these have been invaluable resources for helping me figure out how to run the software that's out there. Thank you Nyles.

    It's been a lot fun learning about this wonderful machine. I'll leave you with a side-by-side of my Sol-20 reproduction and the original. 

  • Wrapping Up

    Michael Gardi11/28/2021 at 21:30 0 comments

    One of the finishing touches I wanted on this project is to make the Raspberry Pi boot directly into the Sol-20 emulator on startup. 

    I created an autostart folder on my Pi and switched to that folder.

    mkdir /home/pi/.config/autostart
    cd /home/pi/.config/autostart

    Into the autostart folder just created I added the following two files.


    cd /home/pi/Sol-20


    [Desktop Entry]
    Type=Application Name=Sol-20

    In addition the runSol-20 file must be made executable with the following command:

    sudo chmod 777 runSol-20

    Now if you reboot the system, you should briefly see the desktop appear, and shortly after Sol-20 emulator will load.

  • Wiring Up a Serial Port

    Michael Gardi11/28/2021 at 21:17 0 comments

    I felt that it was important that my Sol-20 reproduction work with a real HW Serial port. It is the Sol Terminal Computer after all.  I thought that adding an RS-232 Serial hat like I did for my VT100 reproduction would complicate things since I was already using a Voltage-Level Shifter Module hat for the keyboard. So I purchased a USB to Serial Converter from Amazon.

    I found that the version of Raspberry PI OS that I was using recognized this device without having lo load any drivers. I did have to figure out what the device name was. I did this by listing all of the USB devices.

    pi@raspberrypi:~ $ ls /dev/*USB*
    pi@raspberrypi:~ $

    Then it was a pretty simple process to integrate /dev/ttyUSB0 into my emulator using the Python serial library.

    pip install pyserial

    I won't go into too many details here, but on a Sol-20 the serial port works just like keyboard. When the Sol-20 monitor program is waiting for a character from the serial port, it will make repeated IN requests to port 0xF8 to fetch the Serial Status Port. If there is a character in the port's input buffer I return the 8-bit status result with the Serial Data Ready (SDR) bit (0x40) "set" otherwise that bit will be "cleared". When it "sees" that there is a character ready, the monitor program will make a subsequent IN request on port 0xF9 to fetch the character which I then returned from the serial port's buffer.  Similarly if the monitor wants to send a character to the serial port, it checks port 0xF8 with an IN to see if the Serial Transmit Buffer is Empty (STBE) bit (0x80) is "set" and if so an OUT to port 0xF9 is issued with the character to send which I write to the serial ports output buffer.

    I wired the TX, RX, and GND from the USB Serial Converter to the DB9 connector.

  • Soft Switches

    Michael Gardi11/25/2021 at 19:15 0 comments

    The Sol-20 had 4 banks of DIP switches on the motherboard to control various aspects of the machine's operation. Here's a photo of three of them. 

    I didn't see an advantage to using physical switches for my emulated hardware so I created a configuration file instead.

    # This configuration file replaces the four physical setup switch banks on the Sol-20.
    # Display Control
    S1-1 = 0   # 0-Run  1-Restart to Zero.  (N/A for emulator.)
    S1-2 = 0   # Not used.
    S1-3 = 0   # 0-Show control characters. 1-Blank control characters (ASCII values < 32).
    S1-4 = 0   # 0-Colored characters on black background. 1-Black characters on colored background.
    S1-5 = 0   # 0-Solid or NO cursor. 1-Blinking cursor. (NOTE: Requires apscheduler - "pip install APScheduler")
    S1-6 = 1   # 0-Blinking or NO cursor. 1-Solid cursor.
    S1-7 = 0   # 0-White screen. 1-Green screen. 2-Amber screen. (Emulator extension.)
    S1-8 = 0   # 0-6574 character ROM. 1-6575 character ROM.     (Emulator extension.)
    # NOTE: No cursor if S1-5 and S1-6 are off at the same time.
    # Sense Switch
    S2-1 = 1   # Sense switches in LSB to MSB order. Read by the system with an IN 0xFF instruction.
    S2-2 = 1   # Not used by many applications.
    S2-3 = 1
    S2-4 = 1
    S2-5 = 1
    S2-6 = 1
    S2-7 = 1
    S2-8 = 1
    # Serial I/O Baud Rate Switch
    S3-1 = 0   # 1-75 Baud.
    S3-2 = 0   # 1-110 Baud.
    S3-3 = 0   # 1-150 Baud.
    S3-4 = 0   # 1-300 Baud.
    S3-5 = 0   # 1-600 Baud.
    S3-6 = 0   # 1-1200 Baud.
    S3-7 = 0   # 1-2400 Baud. 2-4800 Baud. (Emulator extension.)
    S3-8 = 0   # 1-9600 Baud.
    # Do not turn on more than one switch at a time.
    # Serial I/O Control Switch.
    S4-1 = 0   # 0-Parity even if S4-5 set to 1. 1-Parity odd.
    S4-2 = 0   # Data word length.  | 0        | 1         | 0         | 1
    S4-3 = 0   #                    | 0-8 Bits.| 0-7 Bits. | 1-6 Bits. | 1-5 Bits.
    S4-4 = 1   # 0-2 stop bits(1.5 if 5 bit words). 1-1 stop bit.
    S4-5 = 0   # 0-No parity. 1-Parity.
    S4-6 = 0   # 0-Full duplex. 1-Half duplex. (N/A in Emulator)

    This file switches.cfg is loaded when the emulator starts up, so if you make any changes to the file you will have to restart the emulator to pick them up. I have posted this file and the updated code that implements these changes to github.

  • Interfaces

    Michael Gardi11/22/2021 at 02:04 0 comments

    Here is a photo of the back of an original Sol-20.

    You can see that the whole left side is taken up with power supply components: power button, fan, fuse, and  power cord connection. Since my reproduction does not require any of these I chose to focus on and highlight the interface section in the lower right part of the rear panel.

    So I designed and printed my own "interface" panel and dug through my parts box for the components to populate it.

    I then attached the interfaces panel to the rear panel with glue and braces.

    Then I added the connection hardware. Here is what the back of my reproduction look like.

    Understand at this point these ports are mostly for show. I already have a "virtual" cassette so I'm unlikely to implement a physical one. I do plan to get the serial interface working, but since I have nothing with a parallel interface to connect to, I probably won't wire that one up. While I don't plan to support real Sol-20 personality modules, I do have an idea that I might simulate a personality module with perhaps RFID tags to have the Sol-20 reproduction load different software modules on system startup.  Right now the personality module slot is just a simple hole.  

  • A View Into the Soul of the Sol-20

    Michael Gardi11/21/2021 at 17:03 2 comments

    From the beginning of my work on the Sol-20 reproduction I wondered what kind of display I would use with it. Of course a small CRT based TV or monitor would be ideal. To that end I put out feelers with my maker mates and even had someone at a local electronics recycling depot keeping an eye out for me. But after a couple of months and no success I realized I needed a Plan B.

    I started thinking "What if Processor Technology had sourced and branded a monitor for the original Sol-20?". What would that look like? Well it might have looked something like this.

    This design takes its cues from the Sol-20 with the wooden sides and color scheme. It has a retro CRT look while using a period correct 4:3 aspect ratio LCD panel. I my humble and somewhat biased opinion it looks great sitting on top of the Sol-20 reproduction.

    The build for this was pretty straight forward. I started by laying out the side panels in Fusion 360.

    I used the DXF file to laser cut from 1/4 inch plywood two of the smaller side pieces with both sets of holes and two of the larger side pieces with only the one set of holes closest to the center. Using four 1/2 inch wooden dowels cut to 188 mm and with pre-drilled starter holes in the ends I assembled the inside frame (smaller panels) with No. 6 x 1 inch wood screws.

    The larger panels I sanded down and stained with the same Minwax Walnut gel that I used on the Sol-20 sides.

    The funky grain patterns were a bit of a surprise but I'm kind of liking it. I could have used walnut here but balked a bit at the additional cost. Then I attached the outer panels to the inner frame with M3 x 14 mm bolts.

    For the display I repurposed the screen frame that I used in my 2:3 Scale VT100 Reproduction

    I had to tweak the design a bit and I added the logo but overall it saved me a lot of time to repurpose the design. I used the same display as the VT100's a PIM372 (Digi-Key part number 1778-1225-ND), an 8 inch 1024x768 XGA display. 

    Th display panel just snaps into the frame. Be sure to get the orientation right with the display connector at the top of the screen frame. I printed a "caddy" for the driver board and after I connected the ribbon cable attached the board and caddy to the back of the display panel with two sided tape. 

    Next I designed and printed the "skin" used to wrap the monitor.  

    I attached the two pieces with glue and a brace for support.

    Then I wrapped the monitor frame with the skin. If you loosen the bolts holding the larger side panels in place the skin should slide in easily. Then tighten the bolts again to hold the printed panels in place.

    Finally insert the screen frame and display into the monitor.

    I connected the display to the Raspberry Pi with an HDMI cable. I was also able to power the display panel via a micro USB cable from one of the Pi's USB ports. 

    It was fun to imagine an alternate timeline where Processor Technology sold a branded monitor with their Sol-20s. 

  • The InSide Story

    Michael Gardi11/16/2021 at 02:45 4 comments

    The walnut sides of the Sol-20 are beautiful and help to set it apart from all of the other computers of the era. I really wanted to do them justice in my reproduction. I also saw the fabrication of the sides as an opportunity to advance my woodworking skills.

    A couple of years ago I was thinking about building my own CNC router. At that time the The Mostly Printed CNC (MPCNC) was a popular choice. At the same time a friend told me about the Kwartzlab makerspace so I took a tour on one of their Tuesday Open Nights. I saw their massive Mach3 driven CNC router with a 4x4 foot cutting bed, plus their 100 watt laser cutter, complete woodworking, metal fabrication, craft, and electronics shops and decided to join on the spot. The cost of the parts for a MPCNC would pay for a years worth of access to Kwartzlab. I was attracted by the cool tools, but what I didn't consider at the time was all of the great people that I would get to know there.

    Despite the fact that I have had access to the CNC at the "lab" for almost three years now, I have never actually used it. Finally now I had a great reason to remedy that. I had to take some online courses and one-on-one training but eventually I made my first CNC artifact. 

    This of course is a Sol-20 side piece that I cut from a scrap piece of plywood I had lying around. I wasn't about to risk my expensive slab of walnut on my first attempt! But it went well so I took the plunge.

    And thankfully that went OK too. But I was not quite done. The CNC just cut out the side shapes. I wanted to get the nice rounded edges as well. I learned that this was accomplished by using a round over routing bit (pretty clear at this point that I'm not a woodworking guy right). With a little more expert coaching from some lab mates I got this done as well learning how to use a handheld router.

    Finally to finish off the pieces I applied some Minwax Walnut Gel Stain. This couldn't have been easier. The stain is applied evenly to the wood with a brush or rag and after only 3 minutes the excess is removed by wiping it off following the grain of the wood with a rag. 

    This afternoon I installed the walnut sides onto my Sol-20 reproduction.

    So happy with the result.

  • Wiring the Keyboard

    Michael Gardi11/08/2021 at 21:57 0 comments

    The keyboard encoder is expecting 5V while the Raspberry Pi 4 operates at 3.3V. So to overcome this I purchase a Voltage-Level Shifter Module from Amazon. I also printed a "caddy" to hold the Pi 4 in place and added a small 30 mm x 30 mm x 10 mm blower fan for good measure to keep things cool. The fan I used is from Amazon:  GDSTIME 3cm 30mm x 10mm 5V DC Brushless Small Blower Cooling Fan, with Dual Ball Bearings. The fan and the keyboard will be run off of the Pi's power supply. The Pi is secured in place to the caddy with two sided tape.

    I then mounted this unit onto the back support of the Sol-20 frame again using two sided tape. The USB and HDMI ports are facing to the rear of the unit.

    So we are ready to wire the keyboard to the Pi. Here is what the Sol-20 header pinout looks like.

    And the Raspberry Pi level shifter hat.

    So here is how I wired the keyboard. Note that for the exception of +5V and GND lines which are wired to the 3.3V side or the level shifter, all of the other connections are wired to the 5V side.

    Keyboard EncoderRaspberry Pi Description
    D0GPIO6Key 0 bit (low)
    D1GPIO13Key 1 bit
    D2GPIO19Key 2 bit
    D3GPIO26Key 3 bit
    D4GPIO21Key 4 bit
    D5GPIO20Key 5 bit
    D6GPIO16Key 6 bit
    D7GPIO12Key 7 bit (high)
    STROBEGPIO5Key ready on falling edge.
    OUT1GPIO23LOCAL button. Toggle. HI when LED on.
    OUT2GPIO22BREAK button pressed when rising edge.
    OUT3GPIO24RESET button pressed when falling edge.

    Here is what the wiring looks like.

    I'm investigating a BREAK key issue with Dave, but otherwise everything is working great. The keyboard is now integrated with the emulator. Getting close. Very exciting.

  • Mounting the Keyboard

    Michael Gardi11/08/2021 at 21:32 0 comments

    I wired the keyboard up to the Raspberry Pi 4 I will be using to run the Sol-20 emulator. I did enough testing to ensure that all of the keys are working as expected. At first some of the keys were not responding, but with Dave's help I discovered I had missed installing a couple of jumpers and also I found a solder bridge that shouldn't have been there. When I was satisfied all was well I installed all of the keycaps. 

    Using the finished keyboard I was able to refine the measurements for the keyboard cutouts in the front panel. I reprinted the panel with the changes in the "new" light blue filament and reinforced it as I had the first one.

    I added some 1/2" x 1/2" wooded supports for the keyboard on the side frame positioned about 2mm below the top edge that the front panel will be resting on.

    Using the printed front panel as a guide, I positioned the keyboard and locked it in place with four #6 x 5/8 inch wood screws.

  • Keyboard Construction

    Michael Gardi10/27/2021 at 01:00 0 comments

    My Fubata MD-4PCS key switches finally arrived! Time to get the keyboard put together. The first step was to add the 85 IN4148 diodes. To save some time I printed a diode lead bender from Thingiverse.

    I was super careful to double and triple check the orientation of each diode since trying to replace one after all the switches are installed would be very hard.

    You can also see that I have installed the screw-in stabilizers for the space bar and Shift keys plus the three limiting resistors for the Local, Upper Case, and Shift Lock key LEDs. On the back a 2x20 pin female connector was added to mate with the encoder.

    On the aligner PCB there are four extenders to be used with the Spacebar and Shift Stabilizers.

    Snip these off and as the text instructs you have to file down one end so that it is 1.5 mm thick so they will fit into the keycaps. 

    This is how they will be installed when you first start adding switches attaching the aligner and keyboard PCBS.

    Make sure that they pass through the openings in the aligner as pictured above.

    I followed Dave's advice adding the switches.

    • Snap a few Futaba keys into the aligner, perhaps 3 or 4 evenly spaced per main keyboard row, and one at each corner of the keypad.   Then fit the aligner with keys to the keyboard PCB. At this point you should have the extenders connected and ready to go as pictured above.
    • Solder in one lead of each switch.  Then, go through all the switches and reflow each solder joint while applying tight clamping pressure (with your fingers) to push the aligner and PCB together so each switch is flush.  This makes a torsion-box structure for the keyboard.
    • Now solder the second lead of each switch.
    • Now snap in a few more keys, spaced evenly between the already installed switches, and repeat the same procedure as above.
    • Now install the rest of the switches, snapping in enough switches to fill one of the gaps between keys, then soldering all the leads at once.

    Here is what I have so far. The wires you can see on the left had side of the keyboard are for the Local, Upper Case, and Shift Lock key LEDs since I found that the leads on the LEDs that I had were too short.

    Using one of the keycaps I cut the wires so that when the LED was attached it would extend up into the keycap without touching the top when the key was depressed.  Looks like this.

    Finally I attached the encoder via the 40 pin connector.  There were holes on the encoder and keyboard PCBs but I found they did not line up correctly and would have been hard to reach at any rate. So I printed a brace to secure the front part of the encoder board.

    That's pretty much it for the keyboard. I'll attach the keycaps once I have verified that everything is working as expected. 

View all 23 project logs

Enjoy this project?



Dave wrote 12/10/2021 at 16:30 point

Very nicely done.  It has been a pleasure to see this project take shape from the ground up.  Bravo!

  Are you sure? yes | no

Michael Gardi wrote 12/10/2021 at 19:51 point

Thank you Dave. I appreciate your following along.

  Are you sure? yes | no

J. Peterson wrote 12/07/2021 at 20:24 point

I actually built an actual Sol back in the day, from the kit. I really wanted blinkenlights on it though, so I cut slots in the panel above the keyboard, and made a perfboard with address, data and status lights. This was wired to a sawed-off S-100 connector placed into the top S-100 slot. I wish I had a photo of it handy, I do plan to restore it someday.

In the mean time, I've posted a lot of old Sol / S-100 memorabilia to my library:

  Are you sure? yes | no

Michael Gardi wrote 12/07/2021 at 21:39 point

Thanks for sharing!  I would love to see your machine in action again.

  Are you sure? yes | no

Dan Maloney wrote 11/30/2021 at 21:14 point

Hey Mike, another beauty of a build. I wrote this up for the blog, should publish soon. Great job!

  Are you sure? yes | no

Michael Gardi wrote 11/30/2021 at 21:36 point

Thanks Dan. 

  Are you sure? yes | no

llcameron wrote 10/24/2021 at 18:32 point

You're work on this is amazing!  Its great to see the SOL-20 finally get the love it deserves!  I'm hoping you will make kits avaiable so we can build one of these beauties ourselves!

  Are you sure? yes | no

Michael Gardi wrote 10/24/2021 at 20:34 point

Thank you. I’m not sure about a kit, but I will be creating an Instructable with all the steps necessary to make one.

  Are you sure? yes | no

D2 wrote 10/16/2021 at 00:59 point

all this is awesome.  Well-done, and I’m eager to see your progress. 

  Are you sure? yes | no

Michael Gardi wrote 10/16/2021 at 04:41 point

Thank you.

  Are you sure? yes | no

Atsushi Takahashi wrote 10/04/2021 at 17:00 point

I built an S-100 bus computer or two in the early 80s... My friend had an EPROM programmer running on a SOL-20! They were so cool because of the integrated S-100 bus slots and the built-in video and keyboard! Another friend had an IMSAI with the cool blinky light front panel.

  Are you sure? yes | no

Michael Gardi wrote 10/04/2021 at 23:25 point

Wow. That’s pretty neat. Was the EPROM programmer running on a card in one of the slots or using the serial or parallel ports?

  Are you sure? yes | no

redjr16 wrote 09/22/2021 at 03:47 point

Did you know that Les Solomon only agreed to publish the article if his name was on it.  Hence Sol-20

  Are you sure? yes | no

Michael Gardi wrote 09/22/2021 at 14:36 point

From Lee Felsenstein 's account about making the Sol-20: "

And somewhere in the midst of all this I looked up at Bob and said: "Let's advertise it as having 'the wisdom of Solomon."' From the comment came the name Sol, which is meant to be written in biblical-movie-poster letters chiseled out of stone. Les will never live it down. " (Maybe he was just being politically correct?)

  Are you sure? yes | no

redjr16 wrote 09/22/2021 at 03:43 point

I’ll be following with much interest.  I built the original and it basically helped to launch my  professional career.    I used it for many years and learned a lot.  I even bought a 2nd one.  The original has been boxed up since the late 80s and remains in great condition.  I do not if it will even fire up.  Sadly, the main manual got discarded years ago by accident, and I don’t remember how I booted it.  I know I had a NorthStar disk subsystem attached(floppy of course).  It was a great machine in its day.   Great project Michael. 

  Are you sure? yes | no

Michael Gardi wrote 09/22/2021 at 14:43 point

Thanks for following.  I really like hearing how some of these machines affected the course of people lives in a positive way. 

  Are you sure? yes | no

Dave's Dev Lab wrote 09/16/2021 at 19:58 point

are the schematics available for the original? i am curious as to how hard it would be to design a modern pcb....

  Are you sure? yes | no

Michael Gardi wrote 09/16/2021 at 20:36 point

The Sol System Manual has the schematics, PCB artwork, and mechanical drawings. Here is a link to the starting page:

Looks like we have @J. Peterson  to thank for them.

  Are you sure? yes | no

Dave's Dev Lab wrote 09/16/2021 at 20:59 point

ahh dandy! i will have a look!

  Are you sure? yes | no

Rod Rowley wrote 09/16/2021 at 19:56 point

I have one that i build in '77-'78. Hand assembling programs for it taught me tons.

  Are you sure? yes | no

Michael Gardi wrote 09/16/2021 at 20:37 point

Just out of curiosity is it still in running condition? I did a fair amount of hand assembly in my day too but mostly 6502 stuff.

  Are you sure? yes | no

Rod Rowley wrote 09/16/2021 at 22:09 point

I have not even tried to fire it up in 40 years, so i doubt it.  Did you have a little slide rule thingy to tell you the hex codes to enter for the various flavors of the instructions?  I still have mine.

  Are you sure? yes | no

Michael Gardi wrote 09/17/2021 at 00:26 point

I can remember a well worn paperback size 6502 Assembly Language Instruction manual and of course one of those folded reference cards ;-)

  Are you sure? yes | no

J. Peterson wrote 09/17/2021 at 23:35 point

The Sol-20s used foam "springs" for the keyboard. Google "Sol-20 keyboard repair". After a decade or two, these usually turn to dust, and need to be replaced. There's also the usual issues with capacitors failing, etc.

  Are you sure? yes | no

J. Peterson wrote 09/15/2021 at 21:14 point

Built one of the kits back in the day. I scanned in the manual and other documentation at[]=subject%3A%22S-100%22

I recall I really wanted a computer with blinkenlights, so I modified my SOL by cutting away a couple of slots above the keyboard and mounting LEDs behind it. I then cut the edge connector off a proto board, stuck that in the top slot, and used the signals to drive the LEDs. It worked, but probably not ideal for signal integrity on the S-100 bus.

  Are you sure? yes | no

Michael Gardi wrote 09/16/2021 at 02:27 point

I love hearing stories like this. One of the reasons I like making reproductions. Thanks for sharing.

  Are you sure? yes | no

Syd Kahn wrote 09/15/2021 at 18:42 point

This is the first microcomputer I ever got paid to program - when no one was wanting to watch the tv that is - the wood sides allowed the hertz out - it radiated like a small star - Had an 8K board in it - a lot for the time - brings back fond memories ...

  Are you sure? yes | no

Michael Gardi wrote 09/16/2021 at 02:32 point

Thanks for sharing Syd. Not sure if I'll have the same radiation problem with a Raspberry Pi 4 inside. My only memory is seeing a Sol-20 in that computer store those many years ago. Now I'll get a chance to make more memories.

  Are you sure? yes | no

Andrew Wasson wrote 09/15/2021 at 17:40 point

Cool! I'm more of a CDP1802 enthusiast but I was also drooling over 8080 computers in Popular Electronics / Radio Electronics / ETI / etc... in the mid-late 70's. 

BTW I too have one of Oscar's PiDP-8/Is and I love it. It hangs on my network just waiting for a game of adventure or some old school programming.

  Are you sure? yes | no

Ken Yap wrote 09/15/2021 at 08:12 point

>Talk about delayed gratification.

I know the feeling. I remember those ads in computer magazines I used to compare and drool over. More power to you, and looking forward to updates.

  Are you sure? yes | no

Nyles wrote 09/14/2021 at 18:18 point

I have several software manuals for the SOL-20 if you're interested.

  Are you sure? yes | no

Michael Gardi wrote 09/14/2021 at 20:25 point

I do have PDF copies of the manuals, but I love having the originals if I can get them. What manuals do you have? Of course I'd be happy to pay for shiipping.

  Are you sure? yes | no

Nyles wrote 09/14/2021 at 22:46 point

User's Manuals, in no particular order:

Music System



Extended Cassette BASIC

Cassette PILOT




Software #1 Resident Assembler

ASSM 8080 Assembler

DEBUG 8080 Debugger



  Are you sure? yes | no

Peabody1929 wrote 09/14/2021 at 17:11 point

Do you plan to build an exact HW replica or emulate the SOL-20 in SW?  An example would be the PiDP-11.

  Are you sure? yes | no

Michael Gardi wrote 09/14/2021 at 20:31 point

I plan for the case to be as authentic looking as possible, with walnut sides for sure, but I may 3D print the panels instead of using sheet metal so the build would be accessible to more people should they decide to make one. I am going the emulator route. In fact I'll be posting an alpha version of that very shortly. BTW I have one of Oscar's PiDP-8/Is and I love it.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates