STATUS: Completed
Completion Date: 7/12/24 11:59PM

World’s Biggest
Mac Plus

What do you do when you buy a 21” medical monitor, get it home, and find out you have NO idea what to use it for? Well, you come up with the most out-of-this-world idea you can think of.

Meet Big Mac, a 1986 Macintosh Plus built at an insane 237% scale to real life. The machine stands at almost 3 feet tall, weighs 75 lbs with mouse and keyboard, and replicates every single feature the original Mac, both cosmetically and functionally.

As seen at Open Sauce 2024

  • Seen by thousands of spectators and dozens of popular YouTubers to incredibly positive feedback.

  • Noted as a best-in-show by Jeff Geerling and voted as receiver of the orange ticket prize by Ivan Miranda

  • Mentioned on stage and applauded by show organizer William Osman

  • Drew both adults and children alike with the play on such an old computer. The stand overall was quite approachable and easy for people to use and have fun with.

Features

  • Custom built and modeled 3D printed chassis. Consists of 85 individual pieces, all finished and painted with automotive grade body work.

  • Reverse Engineered 21” QXGA Greyscale Medical monitor, with custom video rendering and filtering system for accurate emulation of the original CRT display, including underscan, anamorphic pixels, and contrast based display dimming

  • Fully functional enlarged keyboard with custom key switches and keycaps to provide the correct key travel and weighting.

  • Designed and engineered on a strict 14 week development cycle, delivered on time meeting all requirements.

Mechanical Design

It’s not exactly easy to create a 3 foot tall 3D print, let alone one capable of being sturdy enough to retain a 14lb LCD panel, and stand up to the tough environment of a trade show.

Gluing parts together can be tedious and hard to align. My solution uses steel pins between every piece to keep everything inline during gluing. This has a secondary effect of preventing twisting of the joints, in which superglue is not as strong.

Inside the case, fitted “modules” allowed for easy and quick mounting and serviceability of the individual components such as the Mac Mini and power supply units.

Keyboard Mechanics

  • Designed a custom keyboard for this machine

  • Built around a standard off-the-shelf 60% keyboard, then enlarged by routing each individual key switch to a larger module.

  • Each module contained a extremely heavy 110g standard keyboard switch, with a spring on top to add weight

  • 3D printed housing and sliders were used, tolerances were closely matched, and layer orientation prioritized to ensure a smooth running key travel.

  • Custom large stabilizers were created for the space bar to prevent key wobble and smooth actuation.

  • Final key weight was 180g at 8.2mm of travel.

Reverse Engineering

The Mac contains a brightness control on the front panel, and I was going to have Big Mac’s brightness knob functional as well. This would pose the question: how to get software controlled brightness working.

The display used is the NDS Dome E3 built by Planar Imaging Systems. This display provided little information, proprietary drivers to configure, along with no OSD. Through digging, it was claimed this display was capable of DDC/CI support.

Further analysis found that this display has no detected devices on 0x37 bus, despite the DDC bus being active on ID’s 0x20,0x40,0x50,0x55,0x60

0x20 was found to be a configuration channel, consisting of a 3 byte code and a 1 byte acknowledgement

0x40 was found to be a blank page

0x50, 0x55 are both EDID, 0x55 being a identical copy, as expected with the DDC2B+ standard

0x60 contains the calibration data for the panel

A bug was found in the inbuilt firmware allowing the panel to be soft-bricked over the 0x20 config channel and further RE work was stopped

Innovative workarounds

To circumvent the hardware brightness issue from above, it was decided to fall back onto software dimming. This was attempted in several methods, before finding a quite hacky, but well-functioning method.

Attempt 1: Using Lunar as a software overlay. However, the way I had the emulator setup using SDL2, this did not work due to direct draw bypassing the overlay.

Attempt 2a: Using MAME’s internal rendering engine to control brightness. This works, however I had no way of controlling this using software, just the on screen controls.

Attempt 2b: Using Lua scripts inside MAME: this works, however the brightness control with keyboard inputs is relative up and down, not absolute positioning.

Attempt 2c: Trying to read a joystick in MAME using Lua results in segmentation fault. A bug in MAME 0.261 (latest version available for Intel MacOS) prevents this from being usable

Final Solution: despite the keyboard input being in theory relative, I found its possible to get an analog value through the keyboard.

  • A Raspberry Pi Pico reads a potentiometer value off the front panel and acts as an HID keyboard

  • When the knob is moved, the Pico sends an “interrupt” to MAME by pressing the F7 key. After, it converts the potentiometer value into a 6 bit number.

  • MAME knows that the brightness will now need to update, and it will read the F1-F6 keys as a binary coded input to see the updated brightness value. This is re-translated into a float on MAME’s side and set to the brightness.

Painting and Smoothing

  • Body work was done in my backyard, with repetitive layers of Bondo and filler primer to smooth out imperfections

  • Large gaps between panels were filled with epoxy, before continuing the use of Bondo to fill the now smaller gap.

  • Once smoothed to a satisfactory finish, the pieces were moved indoors to the basement for painting and clear coating. Matte clear coat was used to replicate the original textured plastic.

  • Labels were added using waterslide decals, and the Apple logo painted with nail polish