Simple RGB LED controller for Mac OS X
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Thomas Buck cff57b659e catch serial exception on opening port 2 years ago
CaseLights CTRL-click on an audio device to display debug FFT window 8 years ago
CaseLights.xcodeproj Added (empty) AudioVisualizer class files 8 years ago
EZAudio @ f27e299258 Added EZAudio project 8 years ago
JSystemInfoKit @ c1abc02fca Added basic SystemInfoKit support 8 years ago
linux catch serial exception on opening port 2 years ago
.gitignore Added folder icon to gitignore 8 years ago
.gitmodules Added EZAudio project 8 years ago
COPYING Added license 8 years ago
CaseLights.ino Added Ambilight-clone functionality 8 years ago CTRL-click on an audio device to display debug FFT window 8 years ago


CaseLights is an Arduino based RGB LED controller using a simple MOSFET setup. The lights are controlled with a Mac OS X Menu Bar App that can set static colors, animations, or visualize various computer status values using the included libraries JSystemInfoKit and EZAudio.

If you don’t want to compile the CaseLights App yourself, download the latest binary from the GitHub releases page.

Arduino Sketch

You could connect pretty much any hardware. I’m using a N-Channel MOSFET Setup with IRF530 and a 10-piece RGB LED strip as well as an UV light tube.

fritzing Schematic

My finished setup is made with a cheap Arduino Pro Mini clone from China and a dead simple RS232-TTL converter connected to its serial port. You may need to change Serial to Serial1 in the Sketch if you’re trying to do this with an Arduino Leonardo, as I did at first.

Uncomment the #define DEBUG at the beginning of the Sketch to enable very verbose debug messages sent on the serial port. This is not recommended for use with the CaseLights App.

Mac OS X App

The CaseLights XCode project includes the projects from the submodules in this repository. Just run xcodebuild on the command line or open the project in XCode and click Run to start the App.


CaseLights is only visible in the system menu bar. You can enable or disable the fourth channel (used for UV lighting in my case), set the RGB LEDs to static colors or simple animations, and select different visualizations for the RGB LEDs like CPU, GPU and RAM usage or hardware temperatures. The minimum and maximum values for these modes are hardcoded, but can be modified easily.

You can also select one of the displays connected to the Host machine. The CaseLights App will then create a Screenshot of this display 10-times per second and calculate the average color to display it on the RGB LEDs.

CaseLights is also able to visualize sound coming from a system audio input. To be able to directly visualize the system sound output, install Soundflower and create a Multi-Output-Device in the Mac Audio Midi consisting of Soundflower (2ch) and your normally used output device. Set this device as audio output. Then, in CaseLights, select Soundflower (2ch) as input. Click on an audio device with a CTRL-click to display a window with the fast-fourier-transformation plot.

Working with Git Submodules

To clone this repository, enter the following:

git clone
git submodule init
git submodule update

When pulling changes from this repository, you may need to update the submodule:

git submodule update


The included JSystemInfoKit project is licensed under the GPLv2. See the LICENSE file in the submodule directory.

The included EZAudio project is licensed under the MIT license. See the LICENSE file in the submodule directory.

CaseLights itself is made by Thomas Buck and released under a BSD 2-Clause License. See the accompanying COPYING file.