LinnStrument Source Code

LinnStrument and LinnStrument 128 use the same source code and firmware. Both are based on the popular Arduino development platform, and specifically on the 84 mHz ARM Arduino Due circuit.  More information on Arduino can be found at  The firmware for the LinnStrument is also open-source.  Modifying the source code for the LinnStrument firmware can be done simply by using the Arduino IDE.

Downloading the LinnStrument Firmware

The LinnStrument firmware is available on Github.  Visit the Roger Linn Design company page on Github.    

Click "Clone or Download" then "Download Zip" then place the zip file wherever you wish on computer. After unzipping, rename the top-level folder from 'linnstrument-firmware-master' to 'linnstrument-firmware'.

Downloading and setting up the Arduino IDE (Integrated Development Environment)

  • Visit the Ardunino downloads page and follow the instructions for downloading the latest Arduino IDE.
  • Launch the "Arduino IDE" app.
  • Connect your LinnStrument via USB, then turn on UPDATE OS mode (Global Settings > Actions column).
  • In the Arduino IDE, Click Tools menu > Board > "Boards Manager...", then Install "Arduino SAM Boards". Then click Tools menu > Board > "Arduino SAM boards (32 bit ARM Cortex M3)" > "Arduino Due (Programming Port)".
  • Go to Sketch > Include Library > "Manage Libraries...". Search for "DueFlashStorage" and install it.
  • Go to File menu > "Open..." and select the file "linnstrument-firmware.ino" in the "linnStrument-firmware" directory that you downloaded above.
  • Go to Tools menu > Port and select your LinnStrument port from there. (It starts with /dev/cu.usbmodem followed by a number.)
  • In the "linnstrument-firmware" window, click the top-left check mark icon (Verify) to compile the code. If you receive compilation errors or warnings, check the above steps.

Note: You can simply click the Upload button (right-facing arrow) in the IDE to upload your code to LinnStrument, but this will reset LinnStrument's sequencer data, stored panel settings, and sensor calibration data to defaults, requiring you to perform a subsequent 'Global Settings > Calibration' after the upload. To avoid losing this data, do the following additional steps:

  • Compile your LinnStrument firmware as above by clicking the Arduino IDE's "Verify" button (the checkmark button in upper left corner).
  • In the IDE's Output pane, select and copy the file path that will appear similar to the picture at the bottom of this page, starting with "/var" and ending with ".bin":
  • On mac, open a finder window, press Shift + Command G, paste the line you just copied and press Enter. This will take you to the location of the newly-compiled OS file. On Windows, go to the directory indicated by the file path.
  • From the LinnStrument Support page, click the "Update OS" page and download the latest Updater app. If on Mac, place both your newly compiled OS file and the Updater app on your Mac desktop. If on Windows, place both in the same folder. Now start the Updater app and it will load your newly compiled OS file instead of its internal OS file. By using this method to load your edited source code, your LinnStrument's settings and calibration data will be preserved.