[Tutorial] How to Build Your Own MacBook Pro for $700 Dollars

Disclaimer: This hack is for learning purposes only, not for commercial use.

No, it’s not a click bait. With enough determination, you can make this happen for you too! But be warned, this hack is not for the faint hearted.

First off, let me share some of the performance specs of this hack.

  • GeekBench SingleCore – 3798, Multicore – 7890
    • Note: Latest 2018 flagship Macbook Pro ($2500 + ) performs at 5678 Singlecore
    • Note: Beats MacBook Pro (15-inch Retina Mid 2015) Intel Core i7-4770HQ @ 2.2 GHz (4 cores) at single core
    • One more note, most daily trivial tasks weigh more on single core performance. Only stuff like rendering and training a neural net would require multi processor crunching power
  • Battery Life: 6 hours
  • Memory: 8GB
  • Storage: 512GB SSD
  • Weight 3.3 Lbs
  • MacOS Sierra (installed last year, got lazy and never upgraded)
  • Working Features
    • SD Card Slot
    • USB-C
    • HDMI Output
    • Webcam
    • Speakers
    • Apple Native Multi-touch
    • Backlit Keyboard
    • Sleep – Wake
    • Bluetooth features
    • WiFi Features
  • iCloud
    • iMessage
    • Notes
    • Calendar
    • Mail
    • Facetime
    • Reminder
    • iCloud Drive
    • Basically everything you get with a Mac
  • Untested Features
    • USB-C Charging
  • Still having issues
    • Built-in microphone input

The cost breakdown of this hack consists of 

  • $500 – Acer Swift3, refurbished  (ref new Amazon link )
  • $35 – BCM94352G WiFi+BT Module (ebay search)
  • $7 Audio Codec (link)
  • $6 USB Hub (link)
  • $2 SD Card Reader (link)
  • $80 (Optional) 500GB SSD Upgrade  (link)
  • $15 (Optional)Apple Stock Trackpad, Look for A1466 Model
    • Seasonal, check ebay for current price
  • $10 (Optional) Vinyl Wrap for finish (link)
    • This is the best color match I could find, people actually can’t tell it’s not a Mac with the wrap lol
  • Total : $655 

There are already plenty of Laptop MacOS Installation tutorials online. I’m going to just focus on the Hardware specific side of things here.

The Acer Swift 3 comes as a pretty solid budget mid-performance laptop. It’s one of the cheapest you can get with the performance metrics it offers, and conveniently, it looks almost just like a MacBook Air knock off.

Step0: Upgrade your SSD & WiFi

If you want to upgrade your SSD, do it now. It’s a simple swap as long as your have a M.2 SATA drive. Note: NVMe Drives are not supported on this computer according to my test

WiFi+BT

The OEM WiFi card is a intel card which MacOS has no support of, buy the card suggested above

Step 1: Install OSX

Without any hardware modification yet, install OSX so we can easily test each additional feature fix. After following the standard installation guide, you will need to face your first obstacle: Configuring your EFI correctly so that the OS/installation wizzard even boots. After you have your bootable USB ready, go ahead and use the EFI files provided here https://github.com/rmr1012/Acer-Swift3-EFI

Then babom! You should have a minimal working OSX installation. Besure that you have clover configurator handy on your newly installed Mac, other handy tools include

  • MaciASL
  • Geekbench4
  • IORegistryExploere (From Apple Developer Downloads)
  • Intel Power Widget
  • Karabiner-Elements

Step 2: Test working features

At this point, there should be a bunch of stuff NOT working. Thanks to a good EFI you should at least have:

  • Full-res graphics (thanks to IGPU drivers)
  • Speaker Audio
  • WebCam
  • HDMI Output
  • WiFi+BT

Features that require hardware hacks at this point include:

  • Audio Jack I/O
    • The audio codec for managing the 3.5mm Jack is unsupported by OSX, buy the external USB audio card above and I’ll show to how to fix it
    • If you don’t use 3.5mm jacks, feel free to ignore this fix
  • SD Card
    • ODM SD card interface is unsupported by OSX.
  • Native Multitouch experience
    • The trackpad experience on non-Mac hardware is trash in my opinion. Most PCs use Elantec and Synaptics. Although there are some 3rd party Mac Drivers for both vendors (VoodooPS2, AppleSmartTrackpad), the experience is still heaven to hell compared to the true Mac experience. I can’t emphasis enough, without the smooth scrolling, rich gestures, and accurate tracking, you’re not really using a Mac.
    • But again, if you really don’t care about this experience, feel free to skip, your hackintosh would work just fine

Besides the WiFi requirement being super obvious, The other features are optional depends on how much work you want to do and how well you want your machine to run.

Aside: Mod Plans

The easiest most readily available interface in computers nowadays is USB. USB is awesome for us because it has a huge array of cheap products we can choose from, and very good support on the driver side. We usually use USB external to the computer connecting diffrent gagets, little did we know USB is also used heavily to connect the internal peripherals of a PC. For example, most of our built-in webcams actually sit on USB, so does a lot of Bluetooth interfaces.

We are going to focus on the expansion and use of the USB bus internal to the computer to fix and expand the features identified as not working above. We are going to hijack a existing USB port, inject a USB Hub in between, and add replacement peripherals on the new hub, then have the outputs connect to the mechanical connectors. All of this must be done within the tiny body of this PC

Step 3: Adding a USB Hub

Pry open the cheapo USB hub we just bought, a USB hub can be simplified down to a single chip. Yep, that’s all we need. We are going to strip everything away except for the very chip and some connection points. In my case, I identified the chip being this black gue-covered patch. I identified 4 out-going differential pairs and 1 in-coming diff pair. I traced the power buses using a DMM and identified the GND traces and the VCC traces (5V).

After stripping it down, promptly solder 30 Gauge hook-up wires to these pads. They’re delicate, be careful.

Now, let’s hijack a USB diff pair from the IO card. Cut the trace, connect the System-side of the trace to hub-usb-in, the connector side to one of the hub usb outputs

Step 4: Fixing the SD Card Reader

Unsolder/ cut traces to the 9 pins of the SD Card jack. attach hook-up wires on each of pin.

Prep the new reader, strip down to the bard PCB, identify the SDIO pins in order. It helps to hold a actual SD-micro in place to make sure your pin-mapping is correct

Now, connect the new reader to the SD card slot

Connect the USB reader to the USB hub, don’t forget the power wires, 5V and GND. Connect to your computer to test functionality

Step4: Fixing the Audio Jack

The onboard audio chip sits on SPI, which Mac doesn’t have support for sadly. Let’s fix that

Strip your soundcard to bare PCB

Connect the USB side to one of the hub outputs

This audio card in particular has two jacks, one 2-ch headphones, one 2-ch microphone. We really only need 1 microphone. The PC comes with a 4-conductor jack, two for L-R audio, on for Mic in, then of course ground. We are going to map the two audio outputs to the jack, and only choose one Mic input from the jack to feed to the chip

Cut traces on the IO card to disconnect the jack from the original codec

fly hook-up wires in, connect to new audio codec

Babam, you should now have a working audio card

 

Step 5: !!! The Native Touch Experience !!!

Here comes a touch of Steve. Man having a nice trackpad flow is almost erotic. Too good

Apple hasn’t not always used USB as the interface for their track pads. After some research I realized that only a short span from 2009-2013 is where you can find trackpads that has a USB interface. I choose the the 2013 Macbook Air trackpad because its newer, cheap, and fits perfectly size-wise.

 

Image result for A1466 trackpad

By googling for about 30 seconds, you can find a schematic for the trackpad’s original mac

Try this

http://schemadata.blogspot.com/2013/03/apple-macbook-a1386-mbp-15mlb-macbook.html

Disclaimer: Found it on Google, I don’t endorse nor participating in data piracy

By looking up the schematic of the trackpad’s correcponding MLB, you can decipher the pin-mapping of the ribbin cable connector. Simple ctrl-F on trackpad keyword reveals this connector

Go ahead and find the D+, D-, 3.3V, 5V, and GND connections on the trackpad, these are all you need

I kinda did a bad job soldering this one, almost botched it completely lol

Put some epoxy over the connection to protect your delicate work, done!

Gently place the trackpad in place, the button lines up with the mechanical frame perfectly. Just need to cut a bit of plastic to make room for the wires

Voalaa!

Step 5: Body Works

Well, it ain’t not Mac if it doesn’t look nice. Let’s do a bit of fine body work to make it look like just that

Easy first-step, everything’s gotta fit inside. Not much I can show here, just gotta finesse your own way to make everything go in the shell. In my case …

Then, let’s work on the outside grind away the Acer logo with a dermal or sand paper

Don’t worry if it’s not super flat, we’ll fix that

Add some bondo to the surface, when dry, sand it flat

(Pic below it my botched attempt to spray painting the finish. It’s too delicate and hard to get even, wrap is better!)

Now, cut the wrap according to size

Stick a Apple sticker on there Done!

Step 6: Optimize Power and Performance

SSDT hugely affects the performance of your computer. I actually suffered from incorrect SSDT for almost a year until I decided to look into it. SSDT basically details the additional attributes about your computer and share that information with the OS. In our case, without proper SSDT, MacOS actually isn’t aware of the power states of the processor. Prior to optimization, I was getting 2 hours of battery life, and super slow computing speed. Geekbench around 1300 points…

And sadly, idling/working looks like this

This graph shows that the processor always chills around 900MHz, about 1/3 of its capacity, and 2W, about 1/7 of its capacity, for BOTH idle and working. This means that it doesn’t throttle down when chilling, and doesn’t throttle up when working.

Following Piker Alpha’s ssdtGen tool, you can generate the correct power definitions. Also, in Clover, play with the SSDT/PluginType, Kernel../AppleIntelCPUPM, Kernel../KernelPM, CPU/HWPEnable options. The EFI I shared should work out of box, but in case you want to furthur optimize, use these as a hint.

After: 

Look at that beautiful not-so-flat curve!

 

That’s it for now, happy hacking!