currently trying: USB-C->DisplayPort cord with SwitchResX to "force" the display up to a reasonable level
My home office setup has suffered some problems of late that are driving me insane.
The most annoying is my wired mouse. I use a wired Redragon Mammoth hooked up to my USB-C hub, and it started giving me problems when dragging anything. Like... a file, a screenshot, a window, it would rapidly (dozens of times a second) "drop" what I was dragging and then pick it up again.
This had extremely unpredictable effects, and was highly disruptive to my workflow.
I don't think my mouse is failing (my bluetooth mouse works fine, and for a variety of reasons I think the problem is my monitor is running at 30hz, not 60. more on that later.)
Anyway, at the same time, my monitor started misbehaving....
I'll focus just on the issues with my external monitor.
For a while, every now and again (not even daily) my monitor would flicker. It would go black for two or three seconds, then pop back.
The laptop wouldn't detect it as disconnecting; the windows wouldn't move around like they would if I unplugged the monitor. I would just lose the display, and it would come back.
Then it started happening more and more. It would happen multiple times an hour, and it was extremely distracting, so I finally decided to try to fix it.
Monitor technology is complicated, I can hardly wrap my mind around the moving pieces.
Here's the setup I had for 2 years without a problem:
- 2016-era 13" MacBook Pro. (more details below)
- Connected to a HooToo USB C Hub, USB C Adapter with Ethernet Port, 4K HDMI, 100W Power Delivery, 3 USB 3.0 Ports for MacBook Pro & Google Chromebook & and More Type C Laptops - Silver, per the recommendation of the Wirecutter
- The cord from the dock to my laptop was a bit short, so I have an 18" USB-C extension on it. UGREEN USB C Extension Cable Type C Extender Cord Male to Female Compatible with Thunderbolt 3 Compatible for Nintendo Switch, MacBook Pro, Google Pix
- An HDMI cable connecting the dock to an Acer CZ340CK. Importantly, it purports to be able to do two important things: Run at a 75Hz refresh rate, and display with a 3440x1440 resolution.
- MacBook Pro: (13-inch, 2017, Four Thunderbolt 3 Ports)
- Processor: 3.1 GHz Dual-Core Intel Core i5
- Memory: 16 GB 2133 MHz LPDDR3
- Graphics: Intel Iris Plus Graphics 650 1536 MB
- Acer CZ340CK Display
- 34-inch (3440 x 1440)
- Intel Iris Plus Graphics 650 1536 MB graphics
For 2 years, I couldn't get the refresh rate above 29hz. It wasn't a problem to me, I didn't even know I had such a low refresh rate. I write software, I don't game, so... it wasn't a problem.
But then the flickering started, so I started trying to see what the problem was.
Looked at my display settings, realized the refresh rate was stuck. Thought this might mean the monitor was trying to slurp up data from my MBP through a straw, with sub-optimal cables.
Turns out there's a big difference between using a dock+HDMI, and a different dock+HDMI, or running straight from the laptop to the monitor with USB-C-DisplayPort, etc.
I didn't know what the hell the problem was, so I bought a $50 high-quality USB-C->Displayport cord, straight from Apple. This came recommended from a forum somewhere, I don't remember where.
When I plug it in, connected straight from my laptop to my monitor, I get a 60hz refresh rate but crazy-low resolution:
Connecting from MBP>Monitor via USB-C->DisplayPort cable
Here's the setup
system preferences > displays
And here's what my editor/terminal looks like. Laughably low resolution. I've labeled the line counts in various spots, so you can compare to how much screen real-estate this costs me:
It seems that with this setup, my screen isn't doing the flicker thing. I have a high refresh rate, but I take an unbelievable hit with resolution.
Connecting from MBP>Dock>Monitor via HDMI cable
note: I'd been using some HDMI cable I had sitting around. Many forum posts discussed cable quality, so I've since upgraded the HDMI cable to this BlueRigger 4K HDMI Cable (6.6 Feet, Black, 4K 60Hz, High Speed, Nylon Braided)
And I still see some flickering. It might be less than with the other cable. I have two HDMI ports on my laptop, I've tried both of them.
System Preferences > Displays
Here's the resolution I have with the HDMI cable:
I'm totally fine with the 30hz, but I'm not ok with my monitor going black regularly for a few seconds.
I'm losing my mind. I could imagine the monitor blanking out because the "bandwidth" of the cable is too low; this is implied by the max refresh rate of 30hz. When I upgrade the connection, I get 60hz, but half the resolution?
I'm not sure what to do. I am extremely frustrated by this. I've now spent over $100 on new cables, and hours of trying to figure out what the problem might be.
I don't like wasting money. If there was a slam-dunk solution, like
use such-and-such dock, with such-and-such cables, and you'll certainly get enough bandwidth to meet a solid refresh rate and resolution
I'd probably spring for it, eventually.
But since this seems like it wasn't a problem for a long time until recently, I wonder if my laptop is failing on me? or my dock? or my monitor?
I'm unwilling to replace the larger pieces of equipment until I can be confident that they'll fix the problem.
and this is all just so I can get back to doing the work that I actually want to do. I don't game, I sometimes watch movies on this laptop, and I use code editors, and occasionally iMovie. I have such minimal needs.
A Fraction of my research
Here's what I've googled this morning, which is probably my third or fourth session trying to sort this out:
usbc to display port 2560x1080, cannot get to 4k
usbc display port not giving full resolution
macbook pro external display refresh rate stuck 29 hz
macbook pro option click scaled to change external display resolution not working
Links/articles/videos I've evaluated
- The Best USB-C Hubs and Docks (Wirecutter)
- P52s with USB-C Dock, low monitor resolution issue (Lenovo forums)
- Should You Use HDMI, DisplayPort, or USB-C for a 4K Monitor? (howtogeek)
- 4K@30Hz vs 4K@60Hz? (avsforum)
- [Troubleshoot] LG 27UD68-W 4K 27" Monitor 30Hz to 60Hz (Mouse Lagging, Low Graphic Problem) (YouTube)
- Which USB-C to HDMI Dongle Adapter Outputs 60hz 4K on The New Macbook Pro? Anker Review & Tutorial (YouTube)
- Why do all the USB-C docks only support 30Hz @ 4K? (macrumors forum)
- My external monitor doesn't work at full resolution with my MacBook (Apple.stackexchange.com)
- SwitchResX to force the monitor to higher resolution, but at 34.88hz, per this forum thread
I'm generally pretty good at troubleshooting. Examples:
- debugging character encoding issues in a Rails app
- Debugging and fixing unwanted duplicate entries in the same app
I know how to propose possible problems and rule in/out various portions of the problem space.
I have been struggling so hard to narrow the "problem space" of this issue.
If there was some terminal utility that could show the throughput for various ports under various situations, maybe that would help.
Or a tool that would show "dropped" packets, or how hard the monitor CPU was working to decompress/render the data.
I just don't know where to even begin inspecting what's happening under the hood. If you have suggestions, or even want to pair on this, I'd be deeply thankful.
Think you can help but would want to pair? I'll pay you for your time, even if it doesn't work. $50/hr for pairing?
I'll be happy once:
- the monitor doesn't flicker
- I get 60 hz at 4k
- bonus points: my mouse stops with the weird drag-and-drop issue.