This project is the byproduct of a simple problem described over a late night burrito at Chipotle. DosDude1 (Of High Sierra Patcher fame) had created a mod for MacBooks who’s dedicated graphics chip had died. This mod allowed an owner to permanently bypass the dedicated graphics to use the integrated graphics instead. This was done by bypassing the graphics muxing chip on the mainboard of the machine. You can read more about it here on his MacRumors post.
There was one slight problem. This mod required the owner to pass 3.3v to the backlight controller. This device, because it takes a PWM signal would interpret the 3.3v as max brightness. This usually isn’t an issue, until someone would like to use their MacBook in the dark.
Quite simply a solution to output the proper PWM signal to the backlight controller was needed. This was easy, until you factor in the fact that the user is going to want to control the backlight using the native controls on their system. DosDude and I began our deep dive into hardware modding taking on the concatenation of our usernames DosLab as our psuedonym for this project. Below you will learn all about project DyingLight including how to use it to return your MacBook to almost-native glory.
If you would like you can DONATE to the project. This will help bring production cost down.
The board pictured below is the original Mk.I board. The Mk.II board is connected the same way, and is smaller, allowing it to fit better inside the system case.
DyingLight is a simple USB v1.1 device that is soldered onto an unused USB header on MacBook mainboards. It takes power from any 3.3v rail on the system and sits above the hard drive in the hard drive tray. The PWM signal line for the backlight controller requires that a 0Ohm resistor be removed at a specific point on the board. The signal line will be soldered to the pad the 0Ohm resistor used to use. Once everything is wired up you’re all set for first boot to install the drivers. The DyingLight chip defaults to full brightness on first boot enabling you to access the system to install the drivers. If all soldering jobs are done perfectly the backlight should come on immediately at boot.
You can purchase your own module from EBay HERE DyingLight chips are available.
There is a waitlist here if the EBay listing is sold out: Google Form
To install the device, it is recommended to connect each pad on the DyingLight board to its respective point on the MacBook logic board using small jumper wires. Route these wires to be long enough to reach from the hard disk drive area (17” MacBooks) or beside the wireless module (15” MacBooks) to the respective points on the logic board. First, though, a few components need to be removed from the board, in addition to those removed to perform the inital gMux IC bypass. First, R9704 needs to be removed. This resistor is what connects the BKLT_PWM rail to the gMux IC, and removing it will prevent the gMux from pulling the line down. Second, the 2 pullup resistors on the unused USB data lines need to be removed. These are R0915 and R0916. Once these are removed, we are now ready to begin soldering the wires.
The pad labeled 3.3V on the DyingLight board needs to be connected to the PP3V3_S3 rail on the logic board. There are many points on the board where this rail is located, but I’d recommend solding it to pin 1 of C5926.
The ground pad (labeled GND) needs to be connected to any grounding point in the system. I’d recommend soldering it to the shield on one of the USB ports of the logic board, or to one of the many grounding pins sticking up off the board.
The next line we need to solder is the PWM output line. This needs to connect to pin 2 of R9704, which is the resistor you previously removed off the BKLT_PWM rail.
Lastly, the USB data lines need to be soldered. The D+ line will be soldered to pin 2 of R0915 (previously removed), and the D- line needs to be soldered to pin 2 of R0916 (previously removed).
These are high definition images it is recommended that you open them in a new tab and zoom in on them for reference during install. The liquid you see on the board around the DyingLight traces is flux used for soldering.
Once all the wires are soldered, mount the board onto the top of your hard disk drive. Be sure to insulate the entire DyingLight board (conformal coating, wrap w/ electrical tape, etc.), and secure it to the top of the drive with adhesive or double-sided tape.
Here is a video of the functioning device:
DyingLight is compatible with any operating system that will run on your MacBook Pro, including Windows, various Linux distros, and of course, Mac OS X. Since most users will be using the device under Mac OS X, the OS X software includes many enhancements, integrating it seamslessly with the OS. The Windows and Linux versions are command-line apps that are easily used with hotkey bindings and startup entries.
To get the driver running, all you’ll need to do is run the installer package and reboot your machine.
The driver is a command line interface with flags that allow easy keybinding and startup entries.
The driver comes bundled with the libusb DLL files it requires, do not separate them.
DyingLight 0.2.1
LogoiLab:DosDude1
A utility to set the backlight brightness of a system with the DyingLight mod installed.
USAGE:
dyinglight [FLAGS] [OPTIONS]
FLAGS:
-a, --align Fixes brightness after a reboot. Should be called by a startup process
-d, --down Turns the brightness down one tick
-h, --help Prints help information
-u, --up Turns the brightness up one tick
-V, --version Prints version information
OPTIONS:
-s, --set <set> <1-16>: Sets the brightness to a specific value
The driver is a command line interface with flags that allow easy keybinding and startup entries.
There are a few things you must do to get the driver working for linux.
Install the libusb
package.
ArchLinux: libusb
Ubuntu/Debian: libusb-1.0-0-dev
Then type the following command into your terminal:
sudo vim /etc/udev/rules.d/99-dying_light.rules
Then paste this into vim:
ACTION!="add|change", GOTO="dying_light_rules_end"
SUBSYSTEM!="usb|tty|hidraw", GOTO="dying_light_rules_end"
ATTRS{idVendor}=="fa11", ATTRS{idProduct}=="5afe", MODE="664", GROUP="plugdev"
LABEL="dying_light_rules_end"
Save your changes by hitting esc
and typing :wq
.
Type the following command:
sudo usermod -aG plugdev $USER
You may have to replace $USER
with your username.
Log out and log back in and you should be ready to go.
Mac OS X >= 10.6 Snow Leopard 64-bit PGP signed version: here
SHA256: e34f1ef2a80fbec0e6ae28b5ee4fbf467a96d3350bef8798868160b77981600f
Windows 7/8/10 64-bit PGP signed version: here
SHA256: c414305a9265593b5f9a9ee338c8053d2c9df3de28280c00dbc2cdff6521cbac
Linux 64-bit PGP signed version: here
SHA256: ab2a544ebd5cb90a9a1ae4846ca44dae756843b97005836006b3abb45483d2b5