Introduction: PiBM PS/2 Model 25 - 3D Printing, Assembly, and Electronics

About: Tinkerer of computers, music, and electronics

Fully operational mini version of the IBM PS/2 Model 25 from 1987, recreated using a Raspberry Pi 4B as the computer.

The original has an all-in-one design, which mimicked the popular original Macintosh. There are several variants, but the one our family owned was an Intel 8086 8MHz CPU, 12" MCGA display, 720KB 3.5" disk drive, and 512KB RAM. I no longer own this, but after seeing this project of a mini Commodore 64 monitor, it seemed possible that the PS/2 25 could be likewise crafted.

This version is built around a 10.4" 1024x768 LCD Panel, the Raspberry Pi, and a 10A power supply. It also features mounting for a power-switch that is very similar to the original, working LED power and disk activity lights, a spring loaded eject button (otherwise non operational), audio amplifier with control knob and speaker mounting, and mounting for a switching headphone jack. See all the parts listed below.

Here is the printables page with all the STL for the pieces.

There are more than a few pieces to fit together. Many of them don't require much (or any) printing support. All the components are mounted using threaded inserts and bolts, but the case itself is mostly attached using super glue. The pieces have small lips and groves at their adjoining edges to help guide a good fit. Clamps are highly recommended for securing them together tightly. Included are STEP files for the display bezel and the electronics mounting board. It should be possible to modify the bezel to accommodate a similarly sized display panel, and another single board computer could be fit.

The printing was all done on an Ender 3. A few of the pieces (the case bottom and rear panel) take up most of the bed - mine required some fine tuning to get good first layers.

This facebook group devoted to the Model 25 and 30 was a great resource for reference photos and design feedback. Thanks!

Supplies

3D Files: STL on printables

3D Printer Filament

This used all PLA2/plus. If finishing with paint, any neutral color will be fine. Here are some that are pretty close to the desired colors:

Electronics and Hardware

Threaded Inserts and Bolts

Finishing Supplies

Tools

Step 1: Base

Pieces: Front Panel, Case Bottom and Lid, Stand Leg and Flip, Audio Knob ×2, Extra Knob Mount

Printing Notes

  • The Front Panel needs support for the diskette bay overhang - but all the threaded insert slots won't need support. Use the Support Blocker in your slicer to avoid the hassle of removing these.
  • The Case Bottom no longer needs support, it has been split into an accompanying "Lid" piece which will need to be glued securely to the base.

Threaded Inserts

  • Diskette Bay Mount, 2× M2×6mm Inserts connected with M2×6mm Bolts 
  • Audio Board Mount, 2× M2×4mm Inserts connected with M2×6mm Bolts 
  • Extra Knob Mount, 1× M2×6mm Inserts connected with M2×6mm Bolt
  • Power Switch Holder, 2× M2×4mm Inserts connected with M2×6mm Bolts
  • The switch was securely fastened by the tight fit and springy plastic parts on the casing, so I didn't end up using these
  • Electronics Panel Mount 1× M3×6mm Inserts connected with M3×6mm Bolts

Finishing Notes

  • Glue and clamp pieces together
  • The diskette bay overhand will need to be sanded well to remove some of the support lines.

Step 2: Display

Pieces: Display Front Lower Left, Display Front Lower Right, Display Front Upper Left, Display Front Upper Right, Display Rear Bottom Left, Display Rear Bottom Right, Display Rear Top Center, Display Rear Top Left, Display Rear Top Right

Printing Notes

  • None should require support, it has been included into the STLs with 50 degree upward ramps for any overhangs
  • However, you may want to use brims, depending on your printer setup

Hardware

  • There's a threaded insert to connect the Display and Case, located in the center of the Display Rear Center piece. This was mostly used to align the pieces while gluing. Use a M3×6mm Insert, connect with a M3×16mm or greater bolt.

Finishing Notes

  • Clean up any support, brim, or stringy material from the vents.
  • Glue and clamp pieces together, one by one
  • A good strategy for joining pieces gradually evolved while doing this project: try to minimize degrees of freedom for the glue/clamping. This isn't how it appears in the first photos here, but I'd recommend first glue/clamp together two of the four Display Front pieces, and then the other two separately, and then join those two sets together using single direction of clamping. Likewise, then join the Display Rear pieces in a similar manner. Once the Front and Rear assemblies are complete, finish the Display by joining these with a final axis of gluing/clamping.
  • Add spot putty on joints
  • Sand well with 400grit until smooth

Step 3: Case

Pieces: Case Top Left, Case Top Right, Case Tippy Top, Case Rear Panel, Case Rear Panel Handle, 60mm Fan Cover

Printing Notes

  • There are several version of the Case Top Left and Top Right pieces which have different mounting sizes for different speakers. Select which one fits - if there is a popular speaker size that isn't listed, I can help make another version with the provided dimensions.
  • The venting printed on the bed of the Case was troublesome to print on my PEI. After increasing bed temperature, leveling with OctoPrint Bed Visualizer and BL Touch a number of times, and adding some brim support in Cura, it finally started to stick well.
  • The Case Rear Panel was similarly tricky, it is nearly as big as the entire Ender 3 bed surface - any discrepancy in leveling resulted in peeling. I ended up printing with Brim Only on Outside unchecked, which caused brim material inside the groove. This helped it to stick, but it was terrible to remove all that material.
  • Note: the design on the original PS/2 has an inlay on the exterior surface of the vent. To faithfully recreate this without massive amount of jagged support material, it is necessary to print this portion bottom up. Unfortunately, the sides of the case, which are attached here need to be printed in the opposite direction. So these pieces were split to keep the original effect intact, while still being print-able.
  • If you don't already, you'll have a well calibrated printer once you're finished printing all these pieces.

Threaded Inserts

  • Power Supply Mount, 2× M3×6mm Inserts connected with M3×6mm Bolts
  • Rear Panel, 4× M3×6mm Inserts connected with M3×6mm Bolts 
  • Speakers, 8× M3×6mm Inserts connected with M3×8mm Bolts
  • Fan, 4× M3 washers & nuts connected with M3×12mm Bolts 

Finishing Notes

  • Glue and clamp pieces together, one by one
  • I combined the Case Top Left and Right together first, and then aligned the Tippy Top to complete.
  • Gluing the Tippy Top and the Case Top pieces together a bit awkward with all the venting, especially on the sides. I came back and did a second pass on some side vent pieces that didn't glue well the first time.
  • The Case Rear Panel Handle gets glued to the Rear Panel, this removes the need to add support material
  • Add spot putty on joints - this is mostly just at the rear section where Top and Tippy Top pieces meet.
  • Sand well with 400 grit until smooth

Step 4: Case Assembly

  • Glue/Clamp together the Display and Case
  • Glue/Clamp this to the Base assembly - this will complete the outer shell assembly

Step 5: Case Finishing

  • Add spot putty on joints
  • Sand putty and all surfaces with 400 grit until smooth. I also did a pass with 1000 grit on all surfaces.
  • Cover threaded inserts so that paint doesn't get stuck in the threads - I used little squares of painter's tape.
  • Prime and Paint with "Heirloom" paint, 2 coats, and finally Seal.

Step 6: Electronics Board

Pieces: Electronics Panel, 6mm button Cover ×6

Printing Notes

  • Supported needed for the Electronics Panel for the power socket and raspberry pi socket openings (unless your printer is up to epic bridging!)
  • I did this by adding support everywhere, and then using Support Blocking for the circular openings and the display controller icons.

Threaded Inserts

  • Rasp Pi Mount, 4× M2×6mm Inserts connected with M2×6mm Bolts 
  • LCD Control Keyboard mount, 3× M2*6mm Inserts connected with M2×6mm Bolts 
  • Buck Converter Mount, 2× M2×6mm Inserts connected with M2×6mm Bolts 
  • Power Socket Mount, 2× M2×6mm Inserts connected with M2×8mm Bolts 

Finishing Notes

  • Sand well with 400 grit until smooth
  • Cover threaded inserts with tiny squares of painter's tape.
  • Prime and Paint "Onion Grey", 2 coats

Step 7: Bezel

Pieces: Bezel Lower Left, Bezel Lower Right, Bezel Upper Left, Bezel Upper Right, Bezel Front Icons, Bezel LED Mount, Bezel PiBM Logo

Printing Notes

  • Supported needed for the Bezel Lower Right for the LED mount and Icons
  • The PiBM Logo is legible with this printing set up, but switching to a smaller nozzle size for both that and the Front Icons might lead to a cleaner result.
  • Print the LED Mount in black.

Threaded Inserts

  • Rasp Pi Mount, 4× M2×6mm Inserts connected with M2×6mm Bolts 
  • LCD Control Board mount, 3× M2×6mm Inserts connected with M2×6mm Bolts 
  • Buck Converter Mount, 2× M2×6mm Inserts connected with M2×6mm Bolts 
  • Power Socket Mount, 2× M2×6mm Inserts connected with M2×8mm Bolts 

Finishing Notes

  • Glue Front Icons onto the Lower Right piece
  • Glue together bezel pieces. The photo has an attempt to glue all four corners together at once - this worked, but next time I will do two at a time.
  • Add spot putty on joints, sand until smooth
  • Prime and Paint "London Grey", 2 coats

Electronics

  • Insert a green LED into the LED Mount
  • Then solder a resistor to one of the leads - either is fine, I put it on the negative.
  • Solder two strands of hookup wire to the resistor and the other lead, enough to reach from the lower right of the bezel to the lower left of the case. 35cm should be enough, 40cm to be safe. Standard is black wire for negative on DC circuits, and I used green for the positive.
  • Heat shrink wrap the exposed wire.
  • Be careful not to melt the mount!
  • Attach Dupont connectors at the opposite end for connecting to the Raspberry Pi.

Step 8: Diskette Bay

Pieces: Diskette Mount, Eject Button

Printing Notes

  • Supported needed for the Diskette Mount, just for the bolt slots. Adjust overhang until nothing else is supported. Print in black
  • Print Eject Button a light blue, or paint later

Electronics

  • Connect another Green LED, exactly like the Power LED - soldering the resistor and hookup wire, heat shrinking exposed leads, and crimping female Dupont pins on opposite ends.

When mounting, first place the SD card reader into place (if it works!), then place the spring in the Eject Button slot and then cover with the Eject Button. Have the Front Panel facing downward. Get both bolts and washers into place, and carefully slide into position. I highly recommend using a longer hex screwdriver for this step, the space is a little tight.

This completes all printable components - now it's time to wire it up.

Step 9: Power Supply

First build the connections to plug in the power supply. The idea is to connect the neutral and ground to from the socket to power supply, and have the hot wire routed through the power switch.

Use caution not to touch any exposed wiring, it's not pleasant to get a shock from house level voltages.

  • Wires needed. I used 14 AWG
  • Neutral and Ground wire, long enough to go from Power Socket on the electronics panel up to the terminals on the Power Supply
  • Two hot wires, one long enough to go from power socket to the power switch under the display, and another to go from power switch up to the terminals on power supply
  • Use female spade connectors to connect to the Power Socket, one for each neutral, ground, and hot.
  • Also use female spade connectors to connect to the Power Switch, one for in and another for out.
  • Use fork terminal connectors to connect to the Power Supply, one for each neutral, ground, and the hot coming from the Power Switch.
  • Heat shrink all the terminal connectors after they're attached.

After all the all components have been tested against the Power Supply, it will be time to mount everything. Try to run the wiring underneath so that it doesn't interfere with other component wires. Also use zip ties to keep them under control.

  • Mount the Power Supply using two M3 bolts on the right side of the case.
  • Mount the Power Switch in its position on the right side of the front panel.
  • This was quite secure after squeezing it in, I didn't end up attaching any brackets.
  • Orient it so that the "On" setting is switched to the right.
  • Mount the Power Socket into the Electronics Panel using two M3 bolts.

Step 10: Powering Components

There are four components requiring power:

  • Raspberry Pi
  • 5volt USB C connector
  • Video
  • 12volt 5.5 barrel jack connector
  • Fan
  • 12volt 4-pin PC Fan Connector
  • Audio Amp
  • 12volt wire terminal connector

The Raspberry Pi is powered at 5 volts, so a Buck Converter is needed between the Power Supply to reduce the voltage. It will need to be calibrated. First attach the input side of the Buck Converter to positive/negative terminals on the Power Supply. I used hookup wire attached to alligator clips on one end, and fork terminal connectors on the other. Then attach a multimeter to the output of the Buck Converter - make sure you've got the polarity correct or you'll be reading negative values! Turn your multimeter to voltage measuring settings, and then turn on your Power Supply. Use a precision screwdriver to turn the adjustment knob on the trimmer until the reading is at exactly 5v. Turn off the Power Supply before disconnecting.

Now that it's calibrated, add permanent connections to the Buck Converter. On the input side, this will be two hookup wires with fork terminals on one end and soldered to the converter on the other. These wires need to be long enough to reach from the converter to the Power Supply terminals, maybe 20cm or a little more. For the output, trim the cable of a USB C power cable pigtail. It doesn't need to be very long, maybe 10cm or even less, measure against the electronics panel where the Buck Converter and Raspberry Pi are mounted. Solder the white wire to the positive output on the converter, and black to the negative.

The Video, Fan, and Audio Amp are all powered at 12v, but with three different kinds of end terminals. Use hookup wire for each of these, crimping fork terminal connectors on one end and soldering/heat shrink the Connector on the opposite. For the audio amp, I had crimped on #6 spade connectors and used these to insert into the terminal block screw holds. It took a little trimming of the metal, but it seemed a lot better connection than jamming in the bare wire. There may be fork/spade connectors that were made for this size of block, I'll try to to research this.

There are four sets of positive/negative wires to attach to the Power Supply. This one has two pair of output terminals, so I attached two of the wires to each.

Step 11: Audio

The audio amp will allow you to hear your PiBM in magnificent stereo. It is mounted on the back of the Front Panel so that one of the forward facing knobs controls the volume. But before that, the first step is to wire up the speakers and give them a test.

Depending on which speakers you have, it most straightforward to solder your wires directly to the speaker connections. Label those wires for Left/Right & Positive/Negative. To plug the opposite ends of the wire into the amp, I used the same idea of a spade terminal connector, trimmed slightly. Mount the speakers in the top of the case using M3 bolts.

I used an audio device plugged into the amp with the 3.5mm jack. You can test using your Raspberry Pi - just make sure it is set to output via analog. Secure all the speaker wiring in place, then plug in the power connections and turn it on and turn it up.

If this is all working, carefully turn off the power and disconnect the wiring. Next it is time to connect the switching audio jack - this is where it gets a bit more complicated. This device has five pins to route the audio. The first three are Sleeve, Tip, and Ring, which are the standard pins to connect stereo audio. These will be routed to the audio out jack on the Raspberry Pi. The fourth and fifth pins on the switching audio jack are used to route the audio signal to another device if nothing is plugged in. These will be routed to the amplifier. See the schematic.

First solder hookup wires to the audio jack. Also get a 3.5mm audio plug ready - I reused one from an old pair of malfunctioning headphones, finding the Tip Ring Sleeve (TRS) using continuity mode on the multimeter. Use a circuit breadboard and wire up the schematic, testing the audio in the same manner as before. This time, make sure audio is being delivered to both speakers, and when a headphone plug is inserted into the switching jack, the audio is routed though the headphones and not to the speakers.

Finally, use a small prototyping board and three JST XH housings/plugs, one 5 pin and two 3 pin, and connect the pins with soldered wiring as they had been on the breadboard and schematic. I used a M2 riser (and some M2 washers) to mount this board above one of the corners of the Raspberry Pi.

The headphone jack is designed to snap into place on the board, with the pins facing towards the Raspberry Pi. The Audio Amp gets mounted on the Front Panel, make sure to install this before the Diskette Mount, as it will block access to the lower mounting bolt.

Update 1/19/2023

  • I've added a PCB gerber file for an audio jack connection board - this simplifies all the wiring. It requires the 3.5mm jack and two JST XH 3 pin housings. I ordered from PCBWay and it was a 20 min job to solder and replace the existing connections. Get the source in the "Other files" section here.

Step 12: Video

  • Mount LCD Panel into the bezel using M2 bolts and washers
  • Mount Video Control board over the panel, I had cut a piece from an anti-static electronics bag and attached it with polyimide tape to the back of the board to guard against any shorts
  • Print and insert 6mm keys into the back of the Electronics Panel, attach the LCD Control Keyboard using M2 screws.
  • Connect Video Control board to Raspberry Pi using Micro HDMI to HDMI cable.

Step 13: Final Assembly

  • Finalize all mounting. In the end, I'd recommend going in this order, but your mileage may vary
  • LCD Panel, LCD Control Panel, Video Control Keyboard, Speakers, Power Switch, Audio Amp, Extra Knob, Diskette Mount, Power Supply, Power Socket, Buck Converter, Raspberry Pi, Audio Connector board, Headphone Jack, Fan.

The Raspberry Pi OS, Raspbian, will need to be installed on your SD card and booted. Additionally, confirm or add these lines in the /boot/config.txt:

dtoverlay=act-led,gpio=19 #disk activity will be reported on gpio 19
enable_uart=1 #enable power LED

Here is additional information on the activity LED, and power LED. Audio may also need to be set to output on the 3.5mm jack using the raspi-config tool under 1. System Options -> S2 Audio -> 1 Headphones.

The last step is to add the stand attached to the Case Bottom. This mimics, but with a simplified design, the stand on the original. Attach one leg to the flip with a bolt, insert that leg into the mounting hole, then mount the other leg and finish with bolting it to the flip. The video clip will clarify this procedure.

Step 14: Retrospective

  • Switched from using epoxy to super glue
  • Epoxy does a good job, but requires mixing, smells worse, and is a little more finicky to get into place. The (quality) super glue was a good upgrade and holds quite well.
  • Preplan every glue
  • Set up the pieces with clamps in the desired directions. I often added a little tape on one side of where the pieces meet. Loosen the clamps, separate pieces, add glue, and get it clamped back up as planned. Plan to minimize the degrees of freedom between the pieces, clamp in one direction at a time.
  • In 2022 the Raspberry Pi 4b is no longer readily available for purchase - best bet seems to be buying used on eBay.
  • Alternatively, using the STEP version of the Electronics Panel to design mounting and slots for an alternate single board computer.
  • Use "sudo apt install dosbox" from the command prompt to run some old software. Here is a download link for the IBM PS/2 Model 25 software demo disks.

This was a fun project to recreate a childhood memory. If you had one of these growing up too, feel free to share a memory in a comment. Also if there is an improvement that would save time or make it look better, please share that as well!

CNC and 3D Printing Contest

Second Prize in the
CNC and 3D Printing Contest