Project tutorial
MIDI Adobe Lightroom Controller

MIDI Adobe Lightroom Controller © MIT

An upgraded version of the Mini UNTZtrument by Adafruit.

  • 1 comment
  • 25 respects

Components and supplies

Apps and online services

About this project

Being a commercial photographer I use Lightroom almost daily.

I am always trying to save time sitting in front of the computer, especially when working on a lot of different images at the same time. Using a dedicated controller for Lightroom can be extremely time saving and I was looking for an affordobale DIY version - small enough to fit into one hand while using by other hand to control it.

Adafruit has some great and detailed projects on their website and I stumbled upon this one:

This looked very promising and I just needed to change a few details to make it more suitable as a Lightroom MIDI controller.

  • Replace the 4 analogue potentiometers with digital Encoders to avoid start and end points
  • Add pushbuttons to add more functionality
  • Make the main body slimmer
  • Reinforce the USB connector

So, I slightly revised the main body but mainly followed their detailed instructions to put it all together. I additionally drilled 4 holes (2 on each side) for the 4 pushbuttons. The pushbuttons I used are IP67 rated - not that I want them to use in the rain - but I choose them for their size (especially the connectors end), comfort and how nicel they click.

Wiring and pin outs

I think it's best to use this list to solder the connections instead of using the schematics - as it can be confusing at first.

Please note this is one of my earlier projects, the soldering the technique can be improved in many areas. As you can see there are a lot of wires to be dealt with. Many more than the original project by Adafruit and they even had a bigger main body to fit it all in!

The circuit boards of the rotary encoders just fit it with a small overlap. There isn't much room for the side pushbuttons. Lot's of this can be done better but my unit is working reliably since a long time without any issues so no need to change it.

Rotary Encoders with Pushbutton

Encoder 1

DT > 11
CLK > 12
SW > 7
+ > 5V

Encoder 2

DT > 4
CLK > 5
SW > A4
+ > 5V

Encoder 3

DT > 6
CLK > 10
SW > A5
+ > 5V

Encoder 4

DT > 8
CLK > 9
SW > 13
+ > 5V

Pushbuttons for the side

Pushbutton 1 (Right UP)      > A0 & GND
Pushbutton 2 (Right DOWN) > A1 & GND
Pushbutton 3 (Left UP) > A2 & GND
Pushbutton 4 (Left DOWN) > A3 & GND

Adafruit Trellis Board

5V > 5V

Uploading Sketches to Leonardo

Once it's all connected and also fits into the housing - pad on the back - it's time to upload the code.

You need to install the hardware add-on TeeOnArdu by Adafruit for Arduino IDE!

Open the sketch and select “TeeOnArdu (Leo on TeensyCore)” from the Tools→Board menu and “MIDI” from the Tools→USB Type menu. Unplug and replug the USB cable from the device and then quickly press the Upload button (if this fails the first time, try again, there’s about a 10 second window for uploading the code).

In most cases, once the Arduino Leonardo has the MIDI uploaded, it won't be able to upload new code until the reset button is pressed. Keep this in mind when attempting to upload new sketches.

The libraries you need are:



Arduino Trellis

How to use it!

In order to use this device with Lightroom you need to install the software MIDI2LR by rsjaffe. It's free and brilliant for this use. Once installed it should recognise your Arduino Leonardo as a MIDI device. Otherwise try Rescan MIDI device and make sure you uploaded the code as a MIDI.

I added a configuration file (XML) of my setup but feel free to change it to your needs - there are endless ways to configure it and you will find all the documentation on the MIDI2LR website on how to do it.

Please note in order to make the encoders work properly make sure to adjust the CC channel settings (right click on a CC channel) to "Two's Compliment" with a resolution of approx. 400 > Then "Apply to all"

Also note: Pushbutton 3 and 4 ( which I placed on the left hand side of the device) are NOT sending any MIDI commands. I use them as Shift buttons, e.g. Encoder 1 changes the exposure. Left Button Up + Encoder 1 changes the temperature.


I am very happy with this project and I use this controller on a daily basis. I can run through and adjust a lot of photos without ever needing to touch the keyboard and mouse. After a few hours of use the mapping of the buttons and encoders came more naturally and I didn't need to look at my reference list anymore

The design can be of course improved. Something that sits in the hand even better or more buttons and encoders?


Configuration file for MIDI2LR
<?xml version="1.0" encoding="UTF-8"?>

  <setting channel="1" controller="15" command_string="Unassigned"></setting>
  <setting channel="1" controller="14" command_string="Unassigned"></setting>
  <setting channel="1" controller="13" command_string="Unassigned"></setting>
  <setting channel="1" controller="12" command_string="Unassigned"></setting>
  <setting channel="1" note="58" command_string="SetRating1"></setting>
  <setting channel="1" controller="2" command_string="Highlights"></setting>
  <setting channel="1" note="56" command_string="LRCopy"></setting>
  <setting channel="1" controller="4" command_string="Temperature"></setting>
  <setting channel="1" note="60" command_string="LRPaste"></setting>
  <setting channel="1" note="71" command_string="Undo"></setting>
  <setting channel="1" controller="6" command_string="Whites"></setting>
  <setting channel="1" note="48" command_string="Preset_3"></setting>
  <setting channel="1" note="62" command_string="SetRating0"></setting>
  <setting channel="1" controller="0" command_string="Exposure"></setting>
  <setting channel="1" note="57" command_string="Preset_2"></setting>
  <setting channel="1" note="55" command_string="ToggleZoomOffOn"></setting>
  <setting channel="1" note="59" command_string="ZoomOutSmallStep"></setting>
  <setting channel="1" controller="3" command_string="PerspectiveRotate"></setting>
  <setting channel="1" note="70" command_string="WhiteBalanceAuto"></setting>
  <setting channel="1" controller="5" command_string="Contrast"></setting>
  <setting channel="1" note="61" command_string="Preset_1"></setting>
  <setting channel="1" note="72" command_string="Redo"></setting>
  <setting channel="1" controller="7" command_string="PerspectiveVertical"></setting>
  <setting channel="1" controller="1" command_string="Shadows"></setting>
  <setting channel="1" note="63" command_string="ZoomInSmallStep"></setting>
  <setting channel="1" note="54" command_string="SetRating2"></setting>
  <setting channel="1" note="53" command_string="Pick"></setting>
  <setting channel="1" note="52" command_string="ResetAll"></setting>
  <setting channel="1" controller="10" command_string="Saturation"></setting>
  <setting channel="1" note="75" command_string="Next"></setting>
  <setting channel="1" note="73" command_string="UprightAuto"></setting>
  <setting channel="1" controller="8" command_string="Tint"></setting>
  <setting channel="1" note="49" command_string="RemoveFlag"></setting>
  <setting channel="1" note="50" command_string="SetRating3"></setting>
  <setting channel="1" controller="11" command_string="PerspectiveHorizontal"></setting>
  <setting channel="1" note="51" command_string="SwToMlibrary"></setting>
  <setting channel="1" note="74" command_string="Prev"></setting>
  <setting channel="1" controller="9" command_string="Blacks"></setting>

Custom parts and enclosures

STL files for 3D printing


Simple Wiring diagram
I recommend using the PIN out list as a better reference
Screen shot 2020 10 28 at 7 02 22 pm lyfygd8kdz


Similar projects you might like

Arduino: Continuous MIDI Controller / Keyboard

Project tutorial by abhilash_patel

  • 1 comment
  • 15 respects

Arduino MIDI Controller with Encoder + OLED Display + EEPROM

Project in progress by yilmazyurdakul

  • 42 respects

Arduino LED MIDI Controller with FL Studio

Project tutorial by reyadeetopee

  • 1 comment
  • 20 respects

Ondes Martenot Style MIDI Controller

Project showcase by christophemagnanb

  • 1 comment
  • 9 respects

Unopad - Arduino MIDI Controller with Ableton

Project tutorial by Stefan Vasic

  • 9 respects

Midi Keypad

Project tutorial by Team labsud

  • 8 respects
Add projectSign up / Login