Introduction: Mini IMac G4 Flat Panel - Powered by NUC
I have run across a couple of projects that were the inspiration to this build. One claims to be the world's smallest functioning iMac, but in reality it is a Raspberry Pi running a Linux distro with a MacOS theme, and cannot run real MacOS apps: links below. The second one is closer to what I want to achieve for the look, but it is only an iPad/iPod/iPhone holder, and with no other connections available, nor can it run real MacOS apps: links below. I want to run a full MacOS operating system on a smaller form factor. The format of choice will be explained later, but it ends up being an iMac G4 Flat Panel (the lamp) built at 54% scale. I captured hundreds of pictures through this build, too many to share here, but I will include as many as I can.
World's smallest iMac - It is actually twisterOS on Raspberry Pi, not MacOS.
iPhone/iPad Holder - It is an iPad/iPod, not MacOS.
Reference Materials for the original G4 iMac Flat Panel
- A real G4 iMac Flat Panel (I have both the 15" and the 17" models)
- 3D design software on a computer
- 3D Printer
- Suitable filament for 3D printer
- Digital or Analog Caliper
- Jigsaw or Scroll Saw
- Small accurate blade like Xacto
- Rotary tool with small bits
- Hand files of different shapes and sizes
- Various grits of sandpaper or sanding blocks, prefer wet versions
- Dust/Vapor mask for painting
- Power drill, corded or portable
- Drill bits
- Soldering Iron with flux and solder
- Heat gun, lighter, or mini torch (for melting parts together)
- Intel NUC board, with RAM, M.2 SSD, WiFi chip and internal antennas
- 7.9" or 8.9" LCD/IPS panel (VGA, eDP, or HDMI/MiPi)
- Appropriate cable for motherboard to LCD (and possible adapters)
- 6x8 inch piece of thin acrylic for LCD edge
- Keyboard and Mouse (wired or bluetooth)
- Thick sheet/plate aluminum (about 5x5 inches, 0.25 inches thick)
- 50mm Fan (2 inch), either 5V or 12V, two wire
- SPST switch normally open (for power button)
- USB adapter to audio in/out (secondary to the motherboard audio jack)
- USB powered mini audio amplifier
- TRRS socket and plug (for the power speaker connection)
- Two silver dome mini speakers
- Misc tiny wire leads that match motherboard headers (1.25mm/1.0mm pitch)
- Miscellaneous small screws
- Misc spring washers to apply tension to the neck, sometimes referred to as "wave washers"
- Primer and Paint (white, clearcoat, etc)
- Time and patience
- Desire to succeed
Step 1: Concept
Why this iMac? After converting my Macintosh Classic II to a color LCD, I have seen newer MiPi based screens of much higher resolution, so I ventured to purchase one. I used this higher resolution screen as a test in building another converted Macintosh Classic II for a friend. I then needed a project for the additional small screen, and considered some options. I considered the first iMac, the translucent colored ones, but I can't really print the clear plastic and molding was beyond my skills and tools. I considered the educational eMac with the flat front screen, but my printer (at the time of concept) was limited to a 5.9 inch cube. I would have to build it in small parts and do a lot of gluing and sanding. I finally considered the iMac G4 Flat Panel, and with a 4x4 inch motherboard of the NUC, it fits inside a 5.9 inch circle (giving me a 54% scale), printable as a single piece on my 3D printer (the screen bezel and back would have to be multiple parts glued together, but mostly hidden).
Step 2: Planning
Once the format was chosen, a lot of choices came with it: What to leave in, what to leave out, what to add? The CD/DVD obviously can't be made smaller to fit inside. A floppy or ZIP drive would also not fit. After playing around with some ideas and finally getting my hands on an actual Intel NUC, I saw that the front ports would be the optimal item to face out the front CD hole. Since this is not Apple hardware, I had to make sure that the NUC I had was Hackintosh compatible. I got the MacOS running for starters, and will go back and fine tune things later. So now I could add Wifi, Bluetooth, and possibly a Retina display. I also discovered the NUC had an eDP (embedded DisplayPort) which could also run a display panel. As I built and prototypes some parts, I realized I also had some small chrome speakers from an old iMac internals that matched the look of the original G4 iMac speakers. This was an additional requirement to add an audio amplifier to drive the speakers. The flexible neck has position limitations, and must support the weight of the display, as well as carry all the wiring to support the devices in the display panel. The original G4 iMac has a power indicator and a microphone in the bezel of the display. That is an additional 4 wires to add to the neck (after the USB power and HDMI signal), but at a 54% scale, and it being 3D printed PLA, I don't think I have the space for those items. I purchased the smallest white keyboard I could find off eBay.
Step 3: Prototyping
I don't use typical CAD software, but an old animation software called LightWave 3D. I learned this on an Amiga and Video Toaster back in the 90s, and I have kept it updated over the years and continue to use it. I thought maybe I could find a 3D model online, but being the frugal type, I did not want to pay $50 plus dollars for some versions that were out there. So I modeled my own. I started with my gutted 15" iMac and started measuring things and building my model. As I acquired parts, I modeled those into it. It is a good idea to have everything physically so you can calculate placement and still have enough airflow for cooling.
My tests with various size fans and voltages left me with a 50mm 12v two-pin fan. Although the fan will be powered by a 5V USB port, it should have ample air flow out the top of the dome. To reduce restriction, I enlarged the holes slightly. The 5V USB test fans seemed to be too loud for my taste in this project.
Originally, I wanted the NUC motherboard with the removable components facing downward, so they could be accessed through the base panel, just like the original G4 iMac. While good in theory, it did not line up well with the CD flip down cover on the front. I would have had to move the motherboard up higher, increasing my 5.9 inch circle and beyond my printers capabilities. So, I flipped the motherboard and the CPU cooler is now facing downward, allowing the front and rear ports to line up properly with the holes. The original G4 iMac had all the ports along the rear curved surface. Rather than add extra cabling and complexity, I opted for a copy of the front port to be permanently opened at the rear, exposing the video ports, Ethernet, power, and dual USB. I had to slightly enlarge the opening to make access easier. The CPU cooler airflow will be below these ports, but should have a face plate that forces it to exit the structure.
The speakers were easy and quick to model. The tiny chrome dome speakers I had were slightly larger than a 54% reduction, but still fit into the exterior shells at 54%. Since I can't print clear PLA, I will opt to paint them white, like the shell of the iMac. These speakers are rated at 5W and 8 Ohms. I found a small USB powered audio amplifier that will deliver 5W at 2 Ohms, or 1.5W at 8 Ohms. I will connect this to a USB headphone/mic adapter and solder everything internally so that the forward facing audio jack is still available to the user. The exterior speaker connection is a TRRS 3.5mm (1/8 inch) phono plug so that I have 4 wires available. The audio amplifier has built in overload protection so it should not be problem is someone plugs in the wrong device (fingers crossed).
I printed partial components to test fit and functionality. When I got to the point where I thought I had modeled everything, I decided to print the complete dome, and it took over 40 hours on my printer. Then I realized I forgot to leave a hole for the power switch. Rather than redo a 40 hour print, I found a small enough button and headphone jack to put on the lower base piece. I had to increase the lower base piece slightly to accommodate those two items. I have a large bin of sample and test prints from developing this design.
Step 4: Troubles
Just before finishing all the 3D parts, my printer started acting up. It failed on two attempts to complete the lower base. So I started some maintenance on the printer, and seemed to have broken it more. So, now pending some replacement parts, I can focus on electronics and painting the existing parts while I wait for the printer repairs. If no repairs are possible, I will opt for a new printer.
The 7th Gen NUC is slightly different in dimensions than the 5th Gen NUC, so I had to reprint the shell anyway. I put the cutout a little too close to the outer shell, and there are a few pinhole gaps that paint will hopefully fill in. It seems every NUC is a little different, so front and back IO plates have to be adjusted for the ports that exist on each motherboard. I will likely create a 2nd build with the 8.9" screen and another NUC.
The neck was difficult to fit wires inside, and I had several 'ultra-thin' HDMI cables that were really not that much thinner than the average. I ordered a 'Nanosecond' wire which claims to be the world's thinnest HDMI cable. Another design flaw: The top of the dome has a hole for the neck measuring 1/2 inch. The regular size HDMI is over 1/2 inch and will not fit through. Mini-HDMI with a fat shield will not fit through without some carving, so I opted for Micro-HDMI and an adapter to bring it back to full size HDMI at my display controller. The neck is not spring loaded for the weight. I opted for spring wave washers to add tension at the joints. It is not an ideal solution, but will suffice for now. The actual completed screen weight is almost 9 ounces, so there can be a lot of pressure on those small joints.
The front flip down cover is very fragile. I needed the clearance for USB to plug in, and in hind sight, I should have just made the opening larger to accommodate the door hinge. Several designs were attempted, and all failed by breaking at weak points. I finally came up with a design that utilized the strength of the 3D printed layers by printing 3 pieces flat, then snapping them together at the angles required for the piece to work. Instead of gluing, I used a mini torch to heat an Xacto knife and melt the pieces together near the seams.
You can see all the colors of PLA filament I have been using. I wanted to print in dark colors to block the light, but then the trouble I had with painting caused me to switch to white so I could get this done for display purposes until I get time to do all the painting. The internal LED power light shines right through. That leaves me with the need to paint the interior black, or go back to dark PLA.
Step 5: Testing
In hindsight, I am going to suggest this be the first step before the prototyping. As I gathered components and built things, I found some incompatibilities, and I had to work through a few things.
The first NUC I bought was a 5th Generation i5 model. It had built in HD 5500 graphics, eDP and two mDP ports. The retina 7.9" 2048x1536 screen I had did not like MacOS. I then bought an 8.9" 2560x1600 panel and it has the same issue. My original 7.9" 1024x768 seems fine, but runs best on VGA input, which needs several adapters from mini-DisplayPort as well as 12v to operate. And a VGA cable is not thin enough to run through the neck. I bought another NUC, a 7th Gen i3 model. This has an eDP and two HDMI ports. I really want to run the display from an internal port, but finding the correct eDP connector and pinout is stretching my Google-Fu capabilities.
Some of the HDMI to MiPi panels look purple in MacOS. This is due to monitor EDID information passed back to MacOS upon initialization. I found a hack to force it from YPbPr color space to RGB color space to try and fix that issue, but so far it has been unsuccessful. I used another tool called Hackintool and it created the correct profile and resolution options and both the 7.9 and 8.9 screens work fine on the 7th Gen NUC.
I utilized a USB to headphone/mic adapter for the powered speakers, as this device is always recognized by all versions of MacOS. I removed the plugs from the board, and soldered leads to a connector for the motherboard. A PAM8406 USB power amplifier is used to amplify the headphone output to the speakers. Soldered everything together and powered the amp off the SATA power port. There is a little bit of hiss when things are playing, not sure if it is a power issue or shielding issue. The amp has a 1000uf 10V capacitor across the power input, so maybe I need a faraday cage (tinfoil or aluminum tape on the interior?).
I installed Catalina with Clover boot loader to get everything working.
Possible screens are:
- MiPi 7.9" 2048x1536 (iPad 3), USB powered (does not like the HD5500)<--this one worked best
- VGA 7.9" 1024x768, 12v power required only 3.3 and 5v on NUC, 12V up-converter didn't work
- MiPi 8.9" 2560x1600, USB powered (does not like the HD5500)
- eDP 8.9" 1920x1200, eDP powered, untested as unknown connector type (more google-fu)
Step 6: Painting
- sand, sand, sand
- prime, sand
- paint, sand
- epoxy fill, sand
- clear coat, clear coat
As I started to sand and paint items, it was taking a long time to dry/cure in the unheated garage in unseasonably cold weather. So I thought I could bake it at low temp. Due to my impatience, the lowest setting on my kitchen oven is 175F, and PLA actually deforms and shrinks around 125F. I ruined several pieces and the only way to get back on track was by reprinting them. I chose white PLA this time, so if I have to use them without paint, it will suffice until I have time to do the painting.
I did some painting, like the fake chrome on the arm, and a 2nd set of components for another build are being painted. It is just overly time consuming and I wanted to share this build with the world as soon as I could.
The speakers in the final shots of the last step are still 3D printed in brown, but needed some epoxy filler, and sanding, and another coat of paint.
Step 7: Assembly
- Insert screen into bezel frame. Apply a small amount of hot glue to get rid of any wiggle.
- Install clear outer rim. Apply a small amount of hot glue here as well.
- Install driver board mount, driver board, and cables.
- Insert power and HDMI into the neck and screw it together.
- Insert neck into the back of the display panel and secure neck with screws.
- Connect display cables to driver board and attach panel back to front bezel. Attach with screws.
- Add a little lubricant to the neck base and insert into the top of the dome.
- Connect the retaining clip to the base of the neck inside the dome. Route cables out the hole in the fan trim.
- Install 50mm fan with 4 screws.
- Adhere Wifi and Bluetooth antennas to interior of dome.
- Use hot glue to hold USB-audio board and AMP to interior of dome.
- Connect all cables to motherboard (NUC).
- Insert motherboard and secure with 4 screws.
- Install power switch and TRRS socket into base. Hot glue power button cover to power button.
- Connect wires to motherboard.
- Insert IO panels into dome.
- Insert front USB flip cover.
- Attach bottom shell to dome shell with 4 screws.
- Adjust front cover to fit in hinge point.
- Attach base aluminum plate to bottom shell.
- Attach power cord.
- Attach HDMI from display to back port
- Turn on mouse and keyboard.
- Turn on iMac Mini.
Step 8: Comparison
Let's compare these machines:
Original iMac G4 Flat Panel
- Introduction 2002
- Weight 22lbs
- Height 15"
- Screen 17"
- Resolution 1024 x 768
- CPU PPC G4 800MHz
- Graphics nVidia GeForce 2 MX
- Memory 1Gb max
- Storage 60Gb 3.5 Hard Drive
iMac Mini Flat Panel
- Introduction 2020
- Weight 3lbs
- Height 10"
- Screen 8"
- Resolution 2048 x 1536
- CPU Intel i3-7100U 2.4GHz
- Graphics HD 620
- Memory 16Gb
- Storage 256Gb M.2 SSD
The neck is fully articulated, it will tilt up and down, and rotate a full 180 degrees, just like the original.
This build took hundreds of hours to plan, 3D print multiple times, test prototypes, assemble and reassemble. In the end, it was worth the learning curve. I also purchased a new 3D printer in the process and learned about painting PLA. Now I have the worlds smallest fully functional iMac Flat Panel. A vision come true.
3D STL files in the final step!
Step 9: STL Files
These are the final modified versions for the NUC I had at the time of production. While the NUC mount holes are the same on every NUC, it seems the peripherals and some minor edges are different on each model. You may have to adjust these files accordingly. And if you do print one, please share!
Participated in the
1 year ago
Fantastic build and I cant even imagine the time it took to do this, well done and thank you for sharing with us. I love this version of the Mac and still have mine running as a photo viewer in the hallway as you come in the front door, Lots of friends always comment on it.
Even today I believe this was and still is the best ever designed Mac.
Here in spain there are a couple of shopping centres in Barcelona that still use this mac on their information desk and its purely down to aesthetics. People love the look of it.
Question 1 year ago
would it be possible to change the design to make it look like a modern mac and also use the i5 NUC?
2 years ago on Step 8
How much are you gonna charge for the STL's once they are done? I would love to have an accurate model of the iMac G4!
Reply 2 years ago
I uploaded them as step 9. Have fun!
Reply 2 years ago
2 years ago
This is ridiculous. I love it! :)