5K iMac: Creating an external display with a server inside
With the resolution of the 5k iMac saga, I was left with a beautiful iMac15,1 sitting on my desk. Throughout my testings with the machine, I would use AirPlay to Mac as a substitute for a proper external display. However, due to limitations with macOS, this was not ideal:
- Limited to 4k resolution
- Added latency
- Reduced colour space
- Requires AirPlay (ie. no UEFI support)
Thus I looked into options to convert this beautiful system into an external monitor while keeping the iMac inside alive.
Table of Contents
- Driver Board Research
- Display Panels
- Personal Setup
- Closing Thoughts
Driver Board Research
Since the release of the 5k iMac back in 2014, many 3rd party driver boards have appeared on the market to drive these panels. At the time of writing, the following driver boards are available:
|Driver Board||Connection Types||DisplayPort Version||5k and 10Bit Colour||Price (USD)|
|R1811||DisplayPort (x2), HDMI 2.0 (x2), USB-C||DisplayPort 1.4 with DSC||Requires DSC support on GPU, otherwise drops to 8Bit Colour||$265|
|R9A18||DisplayPort (x2), HDMI 2.0 (x2)||DisplayPort 1.2||Requires dual DP streams||$179|
|U49||DisplayPort (x1), HDMI 2.0 (x2), USB-C||DisplayPort 1.4||8Bit Colour only||$225|
Additional Board Views:
R1811 - DisplayPort 1.4 DSC
Currently, the most desirable board is the R1811 as it’s a single cable solution with the best OS support across macOS and Windows. Additionally DDC support for controlling backlight and such works out of box with MonitorControl. However, to achieve 10Bit Colour, you’ll need a GPU supporting DisplayPort 1.4 and Display Stream Compression. Currently, the following GPUs in macOS support this:
|AMD||Navi 10/20||RX 5xxx/6xxx series|
|Apple||AGX G13||M1 series|
|Intel||IceLake||G4/G7 Iris (10th gen)|
For completeness’ sake, I’ve added DisplayPort 1.4 (without DSC, limited to 5k 8bit) information below:
|AMD||Polaris/Vega||RX 4xx/5xx/56/64 series|
- Intel Kaby and Coffee Lake support DisplayPort 1.4 however only for internal displays with eDP, external displays are limited to DisplayPort 1.2
Additionally, while Polaris and Vega GPUs support DisplayPort 1.4, all 2017 and older Macs do not due to the Thunderbolt Controller present. Titan Ridge released with the 2018 Coffee Lake series Macs is the first to support DisplayPort 1.4 via external displays.
R9A18 - Dual DisplayPort 1.2
In second place is the R9A18, this older board is based on the internal logic of the 5k iMac itself by combining 2 DisplayPort 1.2 connections. This allows for 5k at 10bit colour support however requires users to connect 2 DisplayPort cables simultaneously to work. Additionally, many have reported mixed experiences with DDC for Display Control. However onscreen controls via the Driver Board’s menu are still supported.
- For Macs/GPUs lacking DP 1.4, this is the only option to achieve 5k
- Requires 2 DisplayPort connections, cannot be mixed with HDMI
- Reports of success with Nvidia GPUs is also mixed, recommend Intel or AMD GPU
The following GPUs support DisplayPort 1.2:
|AMD||GCN 1.0+||HD 7000 series|
|Intel||Ivy Bridge+||HD 4000 series|
However similar to the 2018 Thunderbolt situation, DisplayPort 1.2 is only available on Thunderbolt 2-based Macs. Thunderbolt 1 controllers max out at DisplayPort 1.1.
U49 - DisplayPort 1.4
Finally, the U49 is one of the newest boards I’ve found and is mainly a cheaper version of the R1811. The main difference is simply the lack of DSC and thus maxing out at 5k 8bit colour. This board is also a single cable solution so an ideal candidate for a little/no-fuss setup for machines.
With regards to hardware support, see the R1811 section.
For the years that the 5k iMac has been around, Apple’s used many panel revisions within the units. LM270QQ1 is used by Apple while LM270QQ2 is used by LG in the Ultrafine series:
|SDC1||iMac18,3||DCI P3 Colour|
|SDE1||iMac19,1||DCI P3 Colour|
|SDF1||iMac20,x||DCI P3 Colour|
For the SDA2 and SDB1 panels, usage with the driver boards is plug-n-play. However, for panels supporting DCI P3 Colour, you’ll need an additional Constant Current Board to achieve proper brightness on the panels. Older panels may benefit from this additional current if you’re having brightness issues.
As mentioned earlier, my unit was a 2014 5k iMac which includes the LM270QQ1-SDA2 panel. For simplicity’s sake, I decided to spend the extra dollar and get myself the R1811 Driver Board. The unit that arrived was the R1811 V4, and I had decided to skip purchasing the Current Board for this setup.
Once the unit arrived, I had the following systems planned to use with:
|MacBook Pro 14” M1 Pro||1.4||Supported|
|X299 Hackintosh RX 470||1.4||Unsupported|
|iMac 5K 2014 (external)||1.2||Unsupported|
14” MacBook Pro Experience
For the 14” MacBook Pro, I had zero issues achieving 5k at 10Bit Colour. The system worked out of the box, however, colour profile in macOS was a bit wonky with the default
DP 5K3K profile. Switching to the generic
Display profile used by iMacs resolved the issue (
Display P3 is right below it).
Otherwise, this panel’s been functioning great with the system.
X299 Hackintosh Experience
With the RX470, I knew that I would be lacking 10 bit colour support. However upon first usage, I didn’t even noticed until I pulled out some 10Bit reference images. At least to my untrained eye, regular usage with the panel was quite well. However, for the majority of the time, I planned to play games in Windows on this system. So no actual colour work was planned regardless.
5k iMac Experience
Finally, we have our first non-DisplayPort 1.4 candidate. Overall this machine was extremely difficult to work with initially. I had only found out after taking the iMac apart that this system throttles itself heavily if no Display is attached. This is apparently expected design from 2012 and newer iMacs.
The specific reason is due to 2 missing sensors present in the Display itself,
LCD Flying Lead and
Timing Controller (TCON). When neither of these reports back to the firmware, Apple forces a fail-safe mode:
- Fans start to max out (6000rpm)
BD PROCHOTMSR is triggered throttling the CPU to 1100Mhz
- GPU is down-clocked to 300Mhz and locked there
However thankfully I’ve had experience with firmware throttling previously with a MacBookPro8,2, unfortunately, this is my first time working with an XCPM supported system.
The short answer to resolving this is:
- Fans can be overridden in macOS via Mac Fan Control, reboots and OS updates still retain the custom fan curve
- CPU throttling can be resolved with SimpleMSR and disabling of X86PlatformPlugin.kext
- Disabling X86PP is fairly easy using ASPP-Override.kext, which forces
ACPI_SMC_PlatformPluginto outmatch the XCPM kext
- Disabling X86PP is fairly easy using ASPP-Override.kext, which forces
- GPU throttling has yet to be resolved, however for a server that’s enough for me
Once I had resolved these issues, I was onto booting the iMac. With the display connected, I received a 4k signal and all worked fairly well. For the majority of this system’s life, I planned to run it through VNC as Thunderbolt 2 NAS (approximately 16Gbps~ when running the x4 PCIe 2.0 lanes).
With regards to achieving 5k on the iMac, there are reports the R1811 driver board has a hidden dual DisplayPort 1.2 fallback mode. Unfortunately, I do not have any additional DisplayPort to Mini DisplayPort adapters so I was unable to test this.
Having gone through this experiment, I have to say I’m extremely pleased with the results. The 5k panels are beautiful and this is currently the only way to get a 5k panel working with standard DisplayPort 1.4. This allows for great flexibility with devices and extends the life of the machine long after you’ve upgraded Macs. The fact that this 2014 iMac is being used with a 2021 MacBook Pro is amazing.
However looking at the headless 5k iMac, it’s quite frustrating the hurdles required to get the machine even usable. Not to mention the fact that the GPU is crippled horribly. However, the iMac is still working as a reliable server and test system for OpenCore Legacy Patcher 🦾. Excited to see this setup run macOS 13 in a couple of months.