First of all, check if you meet the requirements and download the software by clicking this link. Unzip the archive using your favorite software anywhere on your local disk drive in order to use the software.


In order to run this program, you will need at least Java 8 installed on your computer. It is also required to have a USB port on your computer and a compatible Arduino board, e.g. an Arduino Uno. Finally you will need a program to upload hex files to your Arduino board.

While it is not required for running the software, it is advised to have one or more LED strips connected to your Arduino board.

Getting your arduino ready

Connect your Arduino board with a USB cable to your computer. Once connected, upload the LedController_vXXX.hex file to your Arduino board. Currently there is no built-in option for uploading hex file, but there are several programs you can use for uploading hex files. Once uploaded, reboot your Arduino and it is ready for use.

Setting communication port

Currently, the communication port is chosen by the program automatically based on connected devices with a handshake. This is still a Work In Progress feature. If you get an error saying "Could not find the COM port. Make sure the USB cable is connected.", please contact me for a solution.

Selecting strips

When you launch the application, the icon will appear in your system tray. Double click on it to open the user interface. On the left of the interface you will see a list with supported pins on the Arduino board. You can connect the DATA line of your strip to one of those pins and control it by clicking on the corresponding pin in the user interface.LedController interface empty

Setting strip type

Once you have selected the right pin you will first have to set the type of the strip. The strip type represents how your LED strip expects the data signal. Most strips expect the data in GRB (Green Red Blue) order at a frequenty of 800kHz. Check the datasheet of your LED strip for the correct data.

Setting length

Next, you will have to set the strip length to the correct value. The strip length is the amount of LEDs you want to use in the strip. As an example, setting the length to 20 will use the first 20 LEDs of your strip.

Setting brightness

The strip brightness can be adjusted using the slider. The brightness is a multiplier for all colors of the strip. This also includes colors set by your strip controller and the initial colors. Sliding it to the right will result in maximum brightness.

Choosing an initial color

The initial color of the strip is the color it will have when you boot up your Arduino board. Set this to the color you would like as a static color. This color value can also be a fallback for some controllers.

Virtual strip view

You will notice the bar above the save button has changed color. This bar represents the LED strip as a virtual display. It shows the current color state of all pixels in the strip. Left is the start of your LED strip and right is the end of the strip.LedController interface example

Saving and reloading

Save the settings by clicking the Save settings button to apply the changes and upload them to your Arduino board. All data is stored on the Arduino board, so using multiple computers and laptops with the LedController software share the same settings if you use the same board. The data can be reloaded from the Arduino board by pressing the Reload settings button.

Using controllers

To get the most out of this software you will have to use controllers for your strip. In the installation folder of the program on your local disk drive you will find a folder called controllers. This folder contains some controllers out of the box, but you can put your own controllers or controllers you have downloaded online in this folder. To use them, select the desired strip in the user interface and pick them in the Strip Controller dropdown box. The change of controller is applied directly, but not saved on the board. To do so, you will have to press the Save settings button.

Ambilight Controller

A more advanced controller like the AmbilightController also adds more options to the user interface. The Range start and Range end options are used to set which part of the screen you want to use for the ambilight. The Strip start and Strip end sliders are used to choose which part of the strip is used for the ambilight. Use these sliders to align the colors behind your screen with the content on your screen.LedController ambilight interface example

When using the ambilight controller, make sure to enable the ambilight provider by right clicking on the system tray icon and select the Enable Ambilight Provider option.