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