Skip to content

elavarasan-sr/samsung-ls24d300g-ddc-control

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Samsung LS24D300G — DDC/CI Monitor Control on macOS (Apple Silicon)

Control your Samsung monitor's input source, brightness, and contrast from the command line using DDC/CI — even while the monitor is displaying a different input.

Table of Contents


What This Is

This repository documents a practical investigation into controlling the Samsung LS24D300G monitor via DDC/CI from an Apple Silicon Mac using the m1ddc command-line tool.

The primary goal was to switch the monitor's input source (HDMI ↔ VGA) from the Mac without touching the physical OSD buttons, and to automate that switch with a mouse button in BetterTouchTool.


Status

Capability Status
Read/set luminance and contrast ✅ Confirmed working
Switch HDMI → VGA (input code 1) ✅ Confirmed working
Switch VGA → HDMI ⚠️ Open — correct input code not yet confirmed
DDC transport active while on VGA ✅ Confirmed (commands from HDMI path still applied)
BetterTouchTool mouse-button trigger ✅ Working (button detection separated from input-switch)
Exact calibration data ⚠️ Best-effort guidance only — requires colorimeter for precision

Hardware Tested

Component Details
Monitor Samsung LS24D300G (24″, 60 Hz, IPS-type)
Mac Apple Silicon Mac (M4) running macOS
Connection Mac → monitor via HDMI
Secondary input VGA (from a separate machine)

Quick Start

1. Install m1ddc

brew install m1ddc

2. Verify your monitor is detected

m1ddc display 1 get luminance

Expected output: a number like 40. If you get an error, see Mac Setup Guide.

3. Switch monitor to VGA

m1ddc display 1 set input 1

4. Install the helper script

cp scripts/monitor-ddc-probe ~/bin/monitor-ddc-probe
chmod +x ~/bin/monitor-ddc-probe

5. Pulse brightness to confirm DDC is active

monitor-ddc-probe pulse

You should see the brightness dip and recover — even if the monitor is showing VGA.


Key Finding

DDC transport from the Mac remains active while the monitor displays VGA.

Brightness and contrast commands sent over the HDMI path are applied to the panel even though VGA is the selected source. This means VGA → HDMI switching should also be possible in principle — the correct VCP input code just hasn't been confirmed yet for this specific Samsung firmware.

See DDC/CI Source Switching — Explanation for the full technical context.


Helper Script

scripts/monitor-ddc-probe is a Bash script that automates the most common investigation tasks:

monitor-ddc-probe pulse                  # brightness blink — confirms DDC is live
monitor-ddc-probe probe 17               # test input code 17 for HDMI
monitor-ddc-probe scan 5 17 3 6 18      # single pass over multiple candidates
monitor-ddc-probe loop                   # infinite loop over default candidates

Full reference: docs/reference/monitor-ddc-probe.md


Documentation

Document What It Covers
Mac Setup Guide Installing m1ddc, verifying DDC, first commands
BetterTouchTool — Mouse Buttons Mapping mouse extra buttons to terminal commands
Windows ControlMyMonitor Method Reading the true HDMI input code from the VGA machine
Finding the HDMI Code Step-by-step strategy to identify the correct VCP code
m1ddc Command Reference Useful commands and their syntax
Monitor Behavior Reference Confirmed and unconfirmed behaviors
monitor-ddc-probe Reference All script subcommands, options, and env vars
DDC/CI Source Switching — Explanation Why input switching is harder than it looks
Calibration Notes Best-effort starting profile for this monitor
ADR-001: Publication Scope What is and isn't included in this repo

Safety Notes

  • DDC/CI commands can change panel settings. Write down your current values before experimenting.
  • The scan and loop subcommands repeatedly send input-switch codes. If the monitor unexpectedly accepts one, the display will change source. Be prepared for that.
  • ddcctl was also tested but failed with framebuffer acquisition errors on this macOS build. Do not rely on it for this workflow. See Mac Setup Guide.
  • Nothing in this repo requires root. Do not run these scripts with sudo.

Contributing

See CONTRIBUTING.md.


License

MIT — see LICENSE.

Releases

No releases published

Packages

 
 
 

Contributors

Languages