HDMI DDC Keypad Controls Monitor From Rack

Sometime last year, [Jon Petter Skagmo] bought a Dell U3421WE monitor. It’s really quite cool, with a KVM switch and picture-by-picture support for two inputs at the same time. The only downside is that control is limited to a tiny joystick hiding behind the bezel. It’s such a pain to use that [Jon] doesn’t even use all of the features available.

[Jon] tried ddcutil, but ultimately it didn’t work out. Enter the rack-mounted custom controller keyboard, a solution which gives [Jon] single keypress control of adjusting the brightness up and down, toggling picture-by-picture mode, changing source, and more.

How does it work? It uses the display data channel (DDC), which is an I²C bus on the monitor’s HDMI connector. More specifically, it has a PIC18 microcontroller sending those commands via eight Cherry MX-style blues.

Check this out — [Jon] isn’t even wasting one of the four monitor inputs because this build uses an HDMI through port. The finished build looks exquisite and fits right into the rack with its CNC-routed aluminium front panel. Be sure to check it out in action after the break.

Ever wonder how given keyboard registers the key you’re pressing? Here’s a brief history of keyboard encoding.

20 thoughts on “HDMI DDC Keypad Controls Monitor From Rack

  1. I knew about DDC but had no idea monitors could be controlled in this way. This opens a lot of exciting possibilities for automating my own workstation.

    Great job!

  2. ╭( ๐_๐)╮

    As an AV professional I rate this 11 out of 10!

    That also appears to be a euro rack form factor? That deserves it’s own call out as euro rack is underrated for it’s flexibility for modular hardware. It’s not just for synths!

    1. Agreed on the eurorack, but the cost (at least in Canada), is a pretty big drawback. If anyone knows of a supplier of inexpensive eurorack hardware in the Great White North, please chime in.

    1. Most can, over DP or HDMI (or DVI if the monitor is old enough to support that).

      Some operating systems may allow the user to send messages from keyboard remapping SW such as Autohotkeys, allowing you to map function keys on your keyboard to DDC messages to control the monitor.

      The real challenge is finding out exactly which messages are supported by a particular monitor.

      1. I’ve been using AutoHotKey with Nirsoft’s ControlMyMonitor, it’s a great tool for this.
        I created keyboard shortcuts to change the brightness without having to navigate through the OSD menu with a badly placed control button on my monitor…

        1. Depends on whether the specific TV supports I²C commands, I guess?

          TV makers are already bad enough about supporting HDMI CEC commands properly, though, and that’s a frequently used and actually advertised feature, so I wouldn’t get my hopes up.

  3. Monitors can also be controlled from computer, using simple scripts to call controlmymonitor on windows or ddcutil on linux. I have an ESP with couple encoders and simple 3d printed case that latches on a bottom side of the monitor and sends brightness commands to pc over simple uart-usb.

  4. I was thinking about hacking internal I2C or emulate clicks to add some hardware buttons to my LG monitor to replace that annoying joystick.

    Solution from this post seems much nicer, but… after testing with ddcutils looks like my LG monitor responds only to commands from port that is currently active, is there any workaround to this?

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.