19 ms·
The journey to controlling external monitors on M1 Macs
- 6a74 5y agoalin23 is the creator of Lunar and the author of this blog post. I'm just a fan of the program.
- planetafro 5y agoAmazing write-up! Your efforts are much appreciated. I have an Intel Mac Air with an external monitor and strongly feel that usability items like these are sorely underrated. Kudos for the great work in a seemingly closed ecosystem.
- alin23 5y agoThanks! Yes, it can be hard to let people know that an app like this actually exists. Some people don't even feel the need for such a thing and just stare hours at a time into a blinding 100% brightness panel when working at night time. I think that can cause macular degeneration much faster than just "not filtering blue light", but this is not as talked about so people don't think about its effects that much.
- GekkePrutser 5y agoI agree, and for me the problem is also that newer screens won't even go down far enough because they optimize for max brightness as that looks better on the spec sheet. Most of my monitors are way too bright at 0% at night. On my 4K I even need to work at 0% during the day and reduce contrast at night (which messes up colour depth). And yeah the OSD controls are horrible. I still work on a real VT520 CRT terminal sometimes and it amazes me how it can go from super bright to hardly readable in pitch dark. And has amazingly handy analog brightness/contrast knobs. Not all innovation is progress.
- Joeri 5y agoI had the same problem and used one of the dark overlay tools that the author of the article criticizes to bring it down further than 0% brightness. But that trick also messes up color depth. I've since switched to an iMac, and the nice thing is that while the display can go very bright, when you dial down the brightness to the lowest value it is very dim to the point of being hard to read in daylight.
- dividedbyzero 5y agoI found putting one of those Philips Hue light strips behind the monitor helped tremendously. If I set its brightness and temperature to a dim warm setting, the dimly-lit wall right behind the monitor makes mid-range screen brightness work just fine (eyes accomodate to the higher overall brightness, so the monitor needs to be brighter to "fit in", but I still perceive the whole scene as dimly-lit) and the color temperature seems to work well for me, I still get tired and sleepy. I can even control the light using the Hue bridge's REST API, so it's easy to automate as well.
- GekkePrutser 5y agoThat would help indeed, and so does keeping the lights on at a high level. But my 4K is so bright at 0% that it feels too bright for me even with the brightest artificial light I have :) Only in daylight it's OK (and I still keep it at 0% then!). But there is another reason I don't always have lights on. I live in Barcelona where it gets hot in summer and I don't have AC. So at night when the temperature outside is lower than inside I leave all the windows open to cool the house. If I have lights on it attracts bugs. So I stay mainly in the dark.
- brokenmachine 5y ago>If I have lights on it attracts bugs. So I stay mainly in the dark. Get flyscreens?
- alin23 5y ago
- unicornporn 5y agoVery cool, had no idea this was even possible. Is there anything like this for Linux?
- alin23 5y agoOn Linux, there is a very comprehensive CLI utility called ddcutil: https://github.com/rockowitz/ddcutil https://github.com/rockowitz/ddcutil The same author also made some kind of UI for it but I haven't used it so I don't know how it looks or performs: https://github.com/rockowitz/ddcui https://github.com/rockowitz/ddcui
- unicornporn 5y agoThanks!
- alufers 5y agoThere is https://www.ddcutil.com/ https://www.ddcutil.com/ It has a command line utility and a qt GUI. Unfortunately the GUI is a bit convoluted, because it exposes every option that you can change on the monitor. I once almost bricked my LG monitor, because I accidentally locked the hardware buttons on my monitor, via an undocumented manufacturer specific option. For gnome there is https://extensions.gnome.org/extension/2645/brightness-control-using-ddcutil/ https://extensions.gnome.org/extension/2645/brightness-contr... This addon adds brightness sliders in the power menu for your external monitors.
- renaudg 5y ago> Unfortunately the GUI is a bit convoluted, because it exposes every option that you can change Wow, color me surprised. That doesn't sound like a desktop Linux app at all :) >I once almost bricked my LG monitor, because I accidentally locked the hardware buttons on my monitor, via an undocumented manufacturer specific option. Reminds of the good old days of late 90s / early 2000s desktop Linux, when the wrong video timing settings in your XFree86 config could make your CRT monitor (almost literally) explode. But I'm sure 2022 will be "the year of Linux on the desktop", finally :)
- IfOnlyYouKnew 5y agoThe XDR works quite well on the MacBook Air, no journey required. Only annoyance is that it has specific ideas which side is up or down when used vertically, and I always turn it the wrong way, first.
- alin23 5y agoYes, I should have probably written something about that as well. Apple vendored displays have a proprietary protocol implemented over USB so that macOS can natively change the brightness and volume. Lunar can take advantage of that as well as you can see here at `Apple DisplayServices`: https://lunar.fyi/faq#ddc https://lunar.fyi/faq#ddc So if you want to Sync the Macbook brightness to the XDR, or sync from one XDR to another, or just get more hotkeys to control presets and contrast, Lunar can still bring something over XDR's features.
- ingas 5y ago> Apple vendored displays have a proprietary protocol OMG. What will be next? Apple vendored flash cards?
- deleted 5y ago[deleted]
- nathancahill 5y agoWell that's just stellar. I've been using https://github.com/fnesveda/ExternalDisplayBrightness https://github.com/fnesveda/ExternalDisplayBrightness on my Intel and sorely missing it for M1.
- nixpulvis 5y agoDoes the gamma solution lower the power use like a proper brightness reduction? And if so, by the same amount? Did you ever attempt to reach out to Apple about how this should be implemented on the new kernel? I would hope there's some forum for this kind of question still.
- alin23 5y agoUnfortunately no, Gamma doesnt reduce the power consumption of the LED backlight of the monitor. It may in fact increase power use a bit because rendering black pixels needs more energy to excite the crystals. I haven't contacted Apple because I don't think they are interested in implementing such a thing really. I've written more about why I think that here: https://lobste.rs/s/2zajeu/journey_controlling_external_monitors#c_uybhhu https://lobste.rs/s/2zajeu/journey_controlling_external_moni...
- nixpulvis 5y agoYep, that sounds a lot like Apple. Thanks for the thorough and interesting writeup on this. I didn't even know I wanted this so badly until now... luckily I still stand a chance I guess.
- YuccaGloriosa 5y agoI have a monitor that has "eco" mode, reducing the brightness. Is that a different DCC command or are they implementing a similar gamma reduction? If not could an eco mode be called, if indeed it is a industry wide standard for reducing energy usage?
- nixpulvis 5y agoBrightness is literally just a backlight power level (pretty much), so gamma and eco mode are a completely separate concept. Frankly I have no idea what eco mode means, but I wouldn't be surprised if it's just brightness * 0.75 + contrast * 1.25.
- kalleboo 5y ago
- digitallyfree 5y agoDDC is great - I remember saving a Samsung 193P monitor (no buttons and controlled by a proprietary driver that only worked on WinXP) that had its brightness set unusably low by its prior owner. I also remember someone using DDC scripts as a KVM solution by switching the monitor inputs programmatically.
- kadoban 5y agoYa I use DDC as part of a KVM, it works pretty well. I have a usb switcher with a button, and then my desktop I have coded up to switch the input on my monitor when the keyboard appears/disappears (udev rules trigger that).
- jmarcher 5y agoI had 2x 173P back then. Even to this day, the build quality and design is amazing. The panel not so much, but hey, it was 2004.
- jareklupinski 5y agogreat work! > reading brightness, contrast or volume from the monitor fails about 30% of the time I2C over long lengths of wire isn't the sturdiest physical layer... I would expect the low level I2C handlers to retry a few times on no ACK received, but a retry_count of 5 might resolve most of the issues around a bit flipping on its way through the wire :)
- alin23 5y agoYes, retrying always fixes the problem. And for the purpose of getting the latest monitor values from time to time to keep the UI in sync, this suffices. I'm more surprised that I2C works at all over the long, thin Thunderbolt cable of my LG. Huge bandwidth going through it for video and the USB hub, lots of current passing through for charging the MacBook at the same time, I'm amazed it works so well.
- mypalmike 5y agoIs it actually I2C over the Thunderbolt cable? I had assumed it was I2C just between the CPU and video hardware on the motherboard.
- alin23 5y agoIt is really I2C over whatever cable you have between your monitor and your computer. I don’t know how they multiplex it through the Thunderbolt little wires but it does work.
- superkuh 5y agoIt's too bad people keep trying to use the M1 for power user tasks. The hardware shortcuts and proprietary implementations make using the machine in anything but factory use cases tedious if not infeasible. Being able to change the backlight intensity shouldn't have to be a major accomplishment with unfixable sporadic hardware bugs.
- dcow 5y agoCouldn't you say the same for any SoC? Or any non-free system?
- superkuh 5y agoYes. They make bad computers to try to do actual work. They're fine DRM media streaming and social app thin clients.
- PragmaticPulp 5y agoIt’s actually been a great experience for the most part. I certainly wouldn’t call it “tedious if not infeasible”. It’s a new platform so I don’t expect every single feature of every piece of software to work on day 1, but I haven’t encountered anything show-stopping. Not being able to adjust monitor brightness using a 3rd party tool for a few months until the developer adds the new hardware isn’t really the end of the world.
- CodeIsTheEnd 5y agoI haven't used Lunar (https://lunar.fyi/ https://lunar.fyi/), the app the author built, but it looks fantastic! Clearly great effort has been put into it! I really appreciate this class of application that exposes more hardware functionality to the end user. Flux (which may or may not be a direct competitor) is another great example, as is Halide, the pro camera app for iPhones. They're certainly not flashy, but they can be great quality-of-life improvements. And they're difficult to write! They require using APIs that are often woefully under-documented, and terribly difficult to debug. I wanted to write an app that would slowly lower your device's volume over time (so you could raise the volume for a song that you like, but then not accidentally spend the next 30 minutes with the volume super loud), and even doing simple things like listing audio devices and getting their names was endlessly frustrating.
- alin23 5y agoThanks! Your idea sounds awesome! I had a great experience using SimplyCoreAudio for that task, I assume you probably already know about it: https://github.com/rnine/SimplyCoreAudio https://github.com/rnine/SimplyCoreAudio
- Synaesthesia 5y agoIt's a great app, giving you iMac like control over your screen brightness. Love it.
- dividedbyzero 5y agoYou probably could script that in Hammerspoon. I have a small script that resets the balance to center every few seconds (it sometimes wanders off-center for some weird readon), setting the volume should be possible too.
- PragmaticPulp 5y agoGreat write-up and a fun read. I was caught off guard by this note: > the delivery guy called me about a laptop: the custom configured M1 MacBook Pro that costed as much as 7 junior developer monthly salaries has arrived! I tried the MacBook Pro configurator and could only get up to $2300 USD (excluding optional software like Logic Pro). I’m sure the price and taxation are higher in the author’s country, but I still don’t understand how that could cost the equivalent of 7 months of junior developer salary anywhere.
- wil421 5y agoThe resume on the blog says University of Lasi. Google returned something about Romania so is assume that’s where he is.
- vmladenov 5y agoNo need to assume. The third paragraph of the article says he lives in Romania
- wil421 5y agoThanks. It also explains the high price. > living in a country like Romania means incredibly high prices on everything Apple.
- ddalex 5y agoIasi, not Lasi, with a capital I, pronounced like [eeashee], major university centre in Northern Romania.
- deleted 5y ago[deleted]
- IggleSniggle 5y agoDev says right at the top of the entry that they are writing from Romania. Quick Google shows an average software dev salary of 4800 USD per year. If that’s average, seems like 7x monthly of a junior salary checks out.
- superlopuh 5y agoThe Paddle mention is very interesting, I'd never heard of it before. I really hope they make the Sketch-like model an integrated part of the platform, I wish more apps used that revenue model, and I'd like to use it myself for some productivity utilities in the future.
- FireBeyond 5y agoApple seems to be making a lot of display related things difficult lately. This, and Display Stream Compression are two. Just as high refresh and HDR were becoming really mainstream, Big Sur completely broke what was working flawlessly in Catalina (and it has not been fixed as of either 11.5, or the Monterey betas so far - and by completely broke, I mean does not work, at all, for anybody, not just 'some edge case'). With Catalina, my Mac Pro happily drove 2 27" 4K monitors in 10 bit color at 144Hz. With Big Sur? I can run those same screens at 60Hz 10 bit, or 95Hz 8 bit. I guess I just need to get a Pro Display XDR...
- Teknoman117 5y agoIf your livelihood isn't dependent on that kind of a display, personally, I would try to avoid falling into their trap. I'd call it anti-competitive to have previously supported an industry standard, only to then remove that support and push their product as the only way to achieve an equivalent to that standard. I'm not saying the ProDisplay XDR isn't a good screen, or even overpriced in the class of displays it lives in, but there is a major leap between "I write code/documents/etc. all day and like vibrant monitors" and "I do professional multimedia work and need hyper-accurate displays to do my job correctly." Telling all the people who want HDR to go buy a $5,000 display they don't need is a bit of a mean spirited move.
- stefan_ 5y agoThe M1 still does DDC, it just doesn't end up exposing the raw bus to software. Which is a perfectly reasonable decision.
- DaiPlusPlus 5y ago> Which is a perfectly reasonable decision Why is that "reasonable"? How does it ultimately benefit end-users when they can no-longer use userland software to control their monitor via DDC?
- breakfastduck 5y ago
- bellyfullofbac 5y agoThe article got a bit confusing around halfway the post. If I didn't google the software it reads like I would need a configured Raspberry Pi in addition to this software...
- olivierlacan 5y agoQuite literally an insta-buy for me. Tried with an LG HDR 5K Display and it worked perfectly in trial mode. Location mode is everything I've ever wanted from non-Apple monitors with a Mac mini. https://lunar.fyi/#location https://lunar.fyi/#location
- alin23 5y agoThanks! If you ever notice Location mode is not enough for you, Lunar also supports external light sensors that you can very easily make yourself with the instructions here: https://lunar.fyi/sensor https://lunar.fyi/sensor
- smoldesu 5y agoBit of a non-sequitur, but I always laugh whenever I read a blog where someone finally discloses all of the gripes they had with their last Mac while transitioning to the new one. Of course, this new Mac is better than the old one, and won't be susceptible to the same issues they had last time. Frankly, it all just makes me happier to be out of the ecosystem. I love the fact that there are people like you willing to write beautiful, functional and native system apps, but it also hits me with a pang of sadness when I hear that you spent 7 months salary on a device that will merely give you the ability to package and distribute apps to a certain platform. It's frankly dystopian, and I get the feeling that Apple will continue to edge out "lower-level" software like this in their bid to "increase userland security" (see: gimping MacOS APIs).
- augstein 5y agoLunar is godsent. Without automatic brightness control for my external display, I had the exact same problems the author of Lunar describes in his article, constantly and manually adjusting the brightness of my display throughout the day, with its awful on screen menu. Before I got my Mac with an M1, I‘ve used Brightness Menulet, which also worked quite ok, but not nearly as polished and functional.
- almostdigital 5y agoThis seemed neat so I installed Lunar to try out on my M1 MacBook Air with a LG HDR display connected over HDMI. After launching the app my system started freezing so bad I had a hard time closing the app, inputs unresponsive for 30 sec then active for 1 sec to become unresponsive again. I figured I'd try to launch it with my monitor unplugged and worked fine, but after plugging in my monitor again it doesn't connect again. I've tried closing the app, uninstalling it and rebooting my system. Nothing works and now I'm left with no external display. What the hell?! EDIT: after unplugging my dongle from usb-c (i.e. un-powering it instead of just unplugging it from the laptop) everything works again! phew. I guess it put the dongle in some weird state?
- correct_horse 5y agoDisplay Data Channel generally doesn't work through dongles. I'm not really sure how usb-c dongles work (block diagram, etc.), so I don't know why this is the case.
- alin23 5y agoI can’t say for sure what the problem is in your case, but it’s definitely not a problem in Lunar. All the app does is call a macOS function called IOAVServiceWriteI2C to send a standard DDC message to the monitor (something like “set brightness to 30”) In your case, either the dongle or the monitor reacts unexpectedly to that message. What should happen is that the dongle should simply forward that message as it is to the monitor and the monitor should have firmware logic to interpret it correctly and either set the brightness to the sent value, or not do anything. That’s why Apple will never implement native brightness changing using DDC. They can’t risk having users come with problems like this one in the press, because the monitor or hub/dock does something funny with the DDC message and crashes. Lunar can also function in software mode using gamma by following the instructions here: https://lunar.fyi/faq#bad-ddc https://lunar.fyi/faq#bad-ddc That mode will never crash a monitor because it doesn’t send any data to it.
- almostdigital 5y agoI've tinkered around a bit and found that with another dongle that uses displayport everything works fine. Changing volume and brightness from the keyboard not having to fiddle with monitor menus is a godsend :) The dongle that's having problems is a "Selore&S-Global USB-C HDMI + DP" if that's something you want to keep on file. Thanks for the detailed response and all your work making the app possible!
- post_break 5y agoBetween this and sound over hdmi I’ve had to use a bunch of program hacks to get what I need.
- colordrops 5y agoFunny, I just started playing with DDC a few days ago. I've got a work (Mac) and a personal laptop (Dell XPS with Linux) that I like switching between. I had a thunderbolt hub, but was getting tired of moving the cable back and forth, and it was also unreliable on the Mac, causing it to heat up and slow down on occasion. I ended up just buying a pure USB hub with a switch, and running a persistent polling bash script on the Mac and the Linux machines that calls the appropriate DDC commands to switch the monitor input based on which machine the USB hub is switched to. It's fast and works great.
- pabs3 5y agoIf you get bored of the polling, there is a tool that does this in an event driven way: https://github.com/haimgel/display-switch/ https://github.com/haimgel/display-switch/ https://haim.dev/posts/2020-07-28-dual-monitor-kvm/ https://haim.dev/posts/2020-07-28-dual-monitor-kvm/ https://news.ycombinator.com/item?id=24357308 https://news.ycombinator.com/item?id=24357308
- colordrops 5y agoNice thank you. I was originally using udev and launchd to drive actions based on events, but they took up to 10 seconds to switch. A purpose built tool would like the ones you linked I assume would not have that problem.
- pabs3 5y agoI haven't used it, but the blog post makes it sound like it is instant.
- mikecarlton 5y agoI wrote a little script to do this automatically when your bluetooth keyboard switches between computers. I just updated it to work with m1 Macs based on the recent work. See https://github.com/mikecarlton/bluekvm https://github.com/mikecarlton/bluekvm
- polishdude20 5y agoAre you using some sort of website builder / pre-made styles for your writeups? I really like the layout and color/ stlye.
- alin23 5y agoI’m using Hugo as the static site generator (it really helps with blogs but I wouldn’t use it for simple presentation webpages). I started with the Blogophonic theme but I have heavily edited it since then: https://github.com/formspree/blogophonic-hugo https://github.com/formspree/blogophonic-hugo Unfortunately I don’t have some pre-made theme that I can share, I mostly improvised with colours and styles that I noticed look good on other websites, then settled on some colour scheme and style using Sass variables that I use all over the place.
- fighterpilot 5y agoIf it's easy, do you mind sharing the hex for some of the colors, such as the background? You've picked a really nice combo of colors that I'd like to bookmark
- mkl 5y agoThese are easy to look up yourself with your browser's "Inspect" functionality. E.g. in Chrome, press Ctrl-Shift-I, click the <body> tag in the Elements panel, and there's the background colour in the Styles panel: #fef7ef. If you don't use Chrome, it will be something similar; right click on part of the page and choose "Inspect" or similar.
- alin23 5y agoSure, the whole website is open source. This is the file with the colors: https://github.com/alin23/alinpanaitiu.com/blob/master/assets/_variables.sass https://github.com/alin23/alinpanaitiu.com/blob/master/asset... Although I’m not using them all. I just port them from project to project
- 5y ago
- nuker 5y ago> I went with Paddle for Lunar Curious why he did not use Mac App Store to sell his app?
- ec109685 5y agoHe's using undocumented API's.
- alin23 5y agoYes, exactly. I’ve been using IOKit since day one which is pretty much completely banned from App Store apps.
- nuker 5y agoBut have you tried? I read first page I got, and it says "it depends" https://developer.apple.com/forums/thread/51595 https://developer.apple.com/forums/thread/51595
- alin23 5y agoSince then, Lunar has acquired a lot more AppStore violations like linking to frameworks located in /System/Library/PrivateFrameworks, not being sandboxed, and not caring about a lot of their design guidelines. So I didn’t really want to go through their process when the chances of getting an approval are close to zero.
- michelb 5y agoWhy bother? They may change their mind later on and then what? Apple will come out with their own display that will just work out of the box with their own API.
- ammar_x 5y agoAlthough I'm not interested at all in brightness control and the different technologies you described, I really enjoyed reading your post. Your way of combining talking about technical issues with your personal life and challenges (your company job, having a side project along your day job, the winter cold near your house, etc.) made it possible for me to enjoy reading a post about something completely unrelated to me (DDC, etc.) Nice job.
- alin23 5y agoThanks a lot! I guess that validates a bit my choice of style. I was afraid it might sound too story-like for such a technical subject.
- ammar_x 5y agoYou're welcome :) Ans since you deliberately chose this style, I'd be interested in learning from you (maybe in a new post) how you go about the process of writing.
- howolduis 5y ago$99 to receive an update? sounds like a scam...
- fartcannon 5y agoIt's appalling that something like this necessary.
- throwanem 5y agoControlling external displays via DDC was never supported, and only works even on Intel Macs via a "private," undocumented API. It's neither appalling nor even surprising that this wasn't prioritized for the M1 kernel, and it is likewise reasonable that some more reverse engineering would be required.
- fartcannon 5y agoFrom other comments, it would appear that they did used to support this and only cut it out since Catalina?
- throwanem 5y agoIt works through at least Big Sur on Intel. Maybe it was previously documented and they pulled the docs around Catalina's release, but this would be the first I've heard of that in at least a year of active interest in the topic, and that makes it difficult to credit on pure assertion. There are almost a hundred comments in this thread, and it's close to midnight here; do you mind linking those to which you refer?
- makeitdouble 5y agoI know it’s not how it’s supposed to work, but I think once an API is used in real world, and sees useful applications that some users rely on it day to day, it should be seen as “public”. I never heard of Lunar before but completely understand the use case, all the more so it doesn’t seem Apple is interested in filling that gap outside of its pro display.
- pertymcpert 5y agoThere's no guarantee that Apple even knew that this API was being used.
- nuker 5y agoWhile not for M1 Macs, but I use this nice app: https://github.com/MonitorControl/MonitorControl https://github.com/MonitorControl/MonitorControl Ans seems they are on track to fix M1 DDC :) https://github.com/MonitorControl/MonitorControl/issues/323 https://github.com/MonitorControl/MonitorControl/issues/323
- fartcannon 5y agoI wouldn't be surprised if Apples ultimate goal was to control the monitor playback ecosystem and implement DRM such that they could get a cut of any medimedia you consume through your Mac. They'd 'curate' the content to prevent you know piracy, or whatever.
- hindsightbias 5y agoIMO, this is just proof that WFH productivity is a failure. No company with a pulse could be this incompetent.
- rfolstad 5y agoIs it a big secret that m1 macs don’t work with external monitors?? The problem has been getting worse with each new forced update. Using my monitor via HDMI and apples 100$ dongle it constantly turns off randomly and will not come back on without unplug and plug back in. Everything else is great but after like 5 updates that claim to fix the issue but still having issues maybe apple should make some notification about the problem so people don’t buy this if they have serious work they need to get done.
- spockz 5y agoMy M1 works flawlessly with my usb c LG monitors except for HDR leading to washed out colours. On the other hand, both my fullspec 2016 and 2019 MBP have days where the displays and usb and Bluetooth hubs freeze every few minutes and I’m watching a the screens go blank and the windows being retiled while I can’t type. The only thing that continues is audio over the 3.5mm port. So for me, things improved with M1.
- httgp 5y agoDo you mind sharing the exact model number of your LG monitor? And is text as sharp as the Retina display?
- spockz 5y agoSure: LG 27UL850-W. I can’t say whether it is exactly as sharp but to me it looks similarly sharp. Both scaled and on native resolution. The colours of the M1 screen are better however.
- alin23 5y agoI’m using the exact same screen and it is what led me to write Lunar actually. The screen is great, text is perfectly sharp in 4k on both M1 and Intel Macs. I don’t have the HDR function because I bought it 4-5 years ago but the colours look very good too, no washing out problem. But the damn joystick man, I just couldn’t get past it and had to spend 4 years writing an app to work around it.
- Toutouxc 5y agoGreat work, Alin. I will continue with the trial version for a while, but ten minutes in, it looks like everything is working. Brightness actually wasn't my biggest gripe, it was my monitor's stupid volume controls (three menu levels deep). And Lunar takes care of both!
- londons_explore 5y ago> reading brightness, contrast or volume from the monitor fails about 30% of the time There is a good chance this is because the read is done too fast. If it gets less reliable with a super long HDMI cable then it's almost certainly the clock speed. I2C is a clocked protocol where the host (the laptop) decides the clock speed. It isn't designed as a high speed data transfer mechanism, and requires that all the signals get to the other end of the wire and back all within every clock cycle. Since there is very little data to send, a clock speed of 10kHz should do the job just fine. But I bet the hardware is set to something silly like 10 MHz by default, since it probably uses the same I2C drivers and hardware blocks as used for communicating with other things on-chip and within the system.
- garyclarke27 5y agoYes why can’t a mac control the volume of an external monitor on usb c/display port/thunderbolt. It’s completely ridiculous when you think about it, that such a fundamental and important requirement for so many users, is completely missing, in 2021!
- salamandersauce 5y agoYup. Not being able to easily mute my speakers connected to my monitor was something that annoyed me greatly with my Mac mini.
- rollcat 5y agoFYI: https://lunar.fyi https://lunar.fyi
- aduitsis 5y agoControl the volume? How about having sound at all? :) Intel mac, usb-c sound to an external 4k monitor used to work flawlessly in Mojave. Big Sur, stopped working.
- watertom 5y agoI just want my 2 external monitors to work, 1 in portrait, the other in landscape in my M1 MacBook Pro. I bought a Pluggable doc, for $300, of course it wasn’t until after I couldn’t get it to work did Pluggable team tell me it wouldn’t work, “a known problem”, which they didn’t disclose. This was 7-8 months ago. I needed the extra ports so I kept the dock, and used both monitors in landscape mode, it killed my productivity. About 2 months ago I needed to reboot my machine, Zoom couldn’t find audio. When the machine restarted one of the monitors was in portrait mode, it hadn’t been configured in portrait mode, but it was in portrait mode. I hadn’t done any updates, automatic updates are turned off. Then machine started with 1 monitor in portrait mode. Everyone tells me it can’t work, Pluggable, Apple, Apple support forums. This experience tells me the M1 release was half baked at least on the OS side. The product was rushed to market maybe to capture market segment, maybe because component parts were already allocated, and shipping the M1 devices would help Apple to offset lost sales due to parts availability for the Intel Mac’s. Hard to say, but I would have also expected something as trivial as rotating the display to be available without the need to buy a 3rd party $300 device, that isn’t supposed to work.
- mthoms 5y agoI was able to use one landscape, and one portrait 4k monitor just fine on my M1 mini. One is connected via HDMI and the other via USB-C. Have you tried it without the dock?
- brokenmachine 5y agoIt's just ridiculous that you need to go through all this palava and reverse engineering to use standard methods to control something as basic as a monitor. I enjoyed the article though.