The brief
Mr Lim's 520i had the aircon not cold, and like a lot of people, his first thought was the compressor, an expensive part. But aircon faults are easy to misdiagnose, so we read it on the BMW handset rather than guess, and the answer wasn't the compressor at all. The blower fan that pushes air through the vents is controlled by the blower motor resistor, a small module that varies the fan speed. It carries the full fan current and gets warm doing it, and over the years it overheats and fails, so the fan stops pushing air properly, or only runs on one speed, and the cabin doesn't get the cold air the system is making. A failed resistor doesn't recover, so it gets replaced, and the compressor, which was fine, stays where it is.
The diagnosis
The BMW handset narrowed it down accurately: the blower motor resistor had failed, which is why the cold air wasn't reaching the cabin. The compressor, the refrigerant charge and the rest of the aircon were fine. While the blower was apart, it was worth a note that the blower cover should be checked at every service so dirt doesn't get trapped in the cabin filter. That's a blower motor resistor replacement, not a compressor, so a small fix rather than a big one.
The work
The failed blower motor resistor was removed and a new genuine BMW-spec resistor fitted, the connector checked clean and tight, the blower cover checked, and the trim put back properly. The blower was tested across the full range of speeds and on auto to confirm it steps smoothly from low to high and pushes the cold air through. A check confirmed the fan working on every speed, the aircon back to its usual coldness, and the climate control behaving normally.
The outcome
The cabin fan working across all speeds, the aircon back to full, cold airflow, the climate control behaving normally, and the compressor untouched because it was never the problem. Mr Lim got the 520i back with the aircon fixed. Reading it on the handset rather than assuming the compressor meant the small part that had actually failed got replaced, which saved a lot over the part everyone assumes it is.