Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

exploradorgt

macrumors member
Original poster
Aug 25, 2023
60
32
Hi, it's always good to give back.

Bought a second hand late 2009 - 27" iMac, Core i5, quite fast and naturally the screen is awesome, but shortly after the original GPU (AMD RADEON HD 4850 - 512MB) died. Checked the long thread (on this forum) about GPU upgrades and there is lots of information (but a bit confusing and without perfect order if you ask me, I'm not complaining, just saying you might face the same difficulties I faced), I'm creating this thread to point to very specific information so you don't have to dig, search, etc.

The GPU replacement. Where I live :( it's very difficult to find compatible parts, and buying online from other countries means long waiting with the risk of receiving a non working part. So I asked on technician groups for cards that look like the one I needed and got lucky with 2 models (1 didn't work, let's not talk about that by now and focus on what worked). The other card is an Nvidia Quadro 1000m. These come with old gamer Windows laptops, sadly... these are not fully supported and there are no official drivers for MacOS, but I can live without it using Windows.

Lucky me, while the card is not recognized by MacOS, it works out of the box with Windows, it even provides the full 2K resolution (2560 x 1440), the sleep/wake functions didn't work with the generic drivers, so I just installed the official Windows drivers and I got right away a fully working GPU.

Problems?
  • Without fully supported GPU's you loose the boot menu, it's not like... you can't see anything on the screen on boot (hidden?) no, it's gone, you can't boot from USB no more, but again, I don't care, I can work around this.
  • You loose brightness control <- and this is a big problem.
A bit of an explanation so you don't have to guess and wonder. Brightness control is lost on these GPUs because the Apple hardware and video bios work differently, in fact, Mac GPUs come with a vBios chip. On Pcs, the cards don't need this as the PC bios deals with the hardware differently. But you would be surprised on how many PC users face this problem anyway due to drivers issues, why? specific computers come with customized drivers... so good luck finding the one that works with your model (I didn't have luck, just like tons of other users), some... get around this installing VERY old and VERY specific drivers, but sure there is a lot to loose there, some are stuck with Windows 7, as these drivers won't work with W8, W10, etc.

Why do you want full brightness control? Well, it's obvious. Besides, without this your iMac will overheat, like... seriously. Both the LCD screen and the LCD backlight driver will produce high amounts of heat, this will waste energy, hurt your eyes, overheat the computer body, and eventually will reduce the life of the components. how serious is this? really serious. "Yeah, but the Nvidia drivers have an specific area where you can adjust the gamma, brightness and contrast", well, yes but NO. These options only allow you to modify the color LEDS of your screen producing diff tones to overcome the LCD brightness, you don't really target the leds lightning the panel, and you will notice this on the heat being produced, and the super white cursor that remains unchanged.

What are your options?
  • Flashing your GPU with a compatible, or modified (made compatible) vBios. Honestly? good luck with that, because you will need a chp programmer and the right vBios flash, I had no luck with this.
  • Solder the right vBios chip on your GPU, or solder an empty one and then upload your compatible vBios. Honestly? again: good luck with that, I tried this with the other card I got and luck wasn't kind with me.
  • Use your GPU as it is (if it's recognized at hardware level, even with stuck brightness control at maximum)
    • 1. And use Linux
    • 2. Or perform a hardware modification on your iMac
1. Move to Linux
Let's talk about the easiest option. Linux uses out of the box some nice open source drivers created by Nouveau. These in all it's power allow to send the right signal to the LCD backlight driver circuit to adjust brigthness, no... there are no Nouveau drivers for MacOS or Windows, so this only works on Linux.

How great it is? well, in fact: awesome. You can somehow get REALLY low brightness levels working, and to be honest after testing and testing, the iMac runs REALLY fast and REALLY cool, no overheating at all. Yeah, you can then install the official Nvidia drivers and you will gain full video acceleration, but you will then loose brightness control again.

Why using Linux is suggested as your first option? hey, I want to use MacOS or Windows!, no Linux!, well... it's simple, Linux works wonderful, and you will be surprised on the fast virtual machines you can create and run inside Linux, because you will be in fact able to have a Mac inside Linux, or a Windows box, whatever you want. I won't guide you on this, I'm just explaining it's possible and it works, and the video will work using your Linux video, drivers and resolution. During my tests, VirtualBox (free) wasn't as fast as Qemu with KVM, the only problem is you don't get full 2K resolution, perhaps there is away, I just couldn't find it, so you are stuck with 1920 x 1080.

2. Perform a hardware modification on your iMac
I didn't come up with this, other people found out so all the credit goes to them respectively. "Fixing Things" (author) posted an article at Medium, here: https://medium.com/@fixingthings/im...lcd-pwm-brightness-with-an-esp32-bc32da61a0e7, I will explain a bit because sometimes the articles are removed and you end up with a broken link. The author describes with full detail how the brightness control works, and who found out about this, in fact, these guys are members of this forum, thanks!.

OK, your GPU and motherboard use 2 wires to send signals to the LCD backlight driver, one is for backlight on/off, and the other for PWM brightness control. These are in fact identified on the PCB of the backlight driver (top left of your early iMac). Check it out and you will confirm this info. Also, the pins of the wiring are also identified if you look carefully.​

The brightness control is managed via a 13Khz signal cable, without this signal the screen goes off. And the level of brightness is specified via the duty cycle on the signal (shorter = less brightness, longer = more bright). Then the author describes how to produce this signal using an SP32 board (it's like an Arduino). Keep in mind the voltage of the signal, it's 3.25v. If you don't adjust the peak voltage you might fry your board.
There are multiple ways to produce this signal, the SP32 is one and the explanation provided is super helpful. You will need an oscilloscope to confirm your values, or an advanced multimeter able to measure 10-20Khz frequencies and duty cycles. Don't worry, this doesn't have to be perfect 13khz, you can get away with 13.05 / 13.10 etc. The article also mentions this can be done using the dyinglight module created by dosdude1.

I didn't want to spend money, and having a couple of cheap Arduino Uno boards I decided to try. You might find information saying these boards can't produce the 13khz signal, but that's not true, you can, and for some reason this is achieved on specific pins (pin9), the source code is quite weird but you can find it online pretty easily.

Unlike the medium article by Fixing Things, and dosdude1 solution, I didn't want to solder wires to my computer board (even if this meant not having full keyboard control over brightness), so I decided to use buttons, simple push buttons attached to the imac case. Long story short I made it.

Important: the Arduino Uno produces 5v peak voltage signals on the output pins, so you have to use a voltage divider (with 2 resistors) to lower this value. The Arduino Nano is even a better option, as it's already produces 3.25v output signals.​
Just like these guys suggest, you can get the energy from diff areas of the board (be it 5v or 12v) to power your Arduino Uno (or whatever board you want to use). My guess is... if you live in the US or any similar country, you can easily get the parts mentioned on the Medium article faster than me, so most likely you won't be interested on the Arduino Uno solution. Long story short, I decided to wire and power the Arduino directly to an USB port, this way I can update the code whenever I need to without opening the iMac, that's jut me.

So yes, I now have full brightness control on this old 2009 Corei5 iMac, besides I enjoy 2G of video memory, it's a very fast GPU. Also, the machine runs REALLY cool, no overheating whatsoever. There is still no USB booting, but that's no problem, and the 1T hard drive has Ventoy with multiple operative systems, and the optical drive was replaced by a fast SSD.

I really HATED opening this iMac over and over, so, I made a modification moving the HDD caddy (with the SSD) to the back stand via a simple hole on the case, now I can access the drive anytime, fast and easily, even replace it as if it was a diskette.

No, these machines are not obsolete, in fact are quite fast, don't throw it away, just give it a second life or donate the computer to someone who will use it.
 
  • Like
Reactions: Nguyen Duc Hieu

exploradorgt

macrumors member
Original poster
Aug 25, 2023
60
32
Ah? modifications? oh yes. Here.

This is the HDD caddy outside the iMac.
1696111639145.jpeg




And this is another mod I made on the inside


Original:
1696111669750.jpeg


Modifications improving airflow:

1696111722345.jpeg



If you ask me, the HDD caddy outside is the best mod, because it allows me great flexibility switching drivers or making backups of the SSD inside. Keep in mind this machine comes with USB2 ports, and moving 40 -140 gigs of files takes a lot of time, with this mode I can easily move the drive to my daily driver computer and copy files fast.

Good luck with your modifications
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.