Primer and Tekton

Primer is a Work In Progress firmware for the OSM Microlight and Tekton is a GUI for configuring the light in real time. It works for both the OSM1 and 2s.

  • Primer requires Arduino 1.6.4 or higher
  • Tekton requires Processing 3.0.1 or higher


0.91 Update (01-12-2016)

  • IMPORTANT No longer disabling the Brown Out Detector during low power mode
  • Fix for Conjure mode not disabling
  • Fix for bundle selection not being saved properly
  • Fix for various timing issues that caused lights to desync (particularly with morphing and fading modes)
  • Removed white flash when light goes to sleep
  • Reordered conjuring and configuration sentinels (conjure first after sleep now)
  • Fixed a few inconsistencies with patterns
  • OSM1 and OSM2 speed sensitivies are now matched

0.9 Update (01-11-2016)

  • Fixes a sleep bug with both OSM versions
  • Fix to conjure mode not enabling properly
  • Fix for “Upload Light” button in Tekton
  • Other various fixes


  • 62 patterns to chose from
  • 47 customizable (with Tekton) color palette (plus a blank) with 4 shading levels per color
  • Each pattern supports up to 16 colors each
  • 4 accelerometer triggers with 3 sensitivity settings
  • 16 mode slots with 2 variations (pattern + colors) per slot
  • 4 fully custimizable mode playlists (bundles) with 16 slots each
  • Toggle Conjuring Mode (single-press on/off) for any preset
  • Light lock feature to save your lights from turned on by accident.
  • Easy to use GUI customization
  • Easy to use on-chip customization
  • Save, load, and share your custom palettes, modes, and preset playlists
  • Upload yours or your friends’ patterns to your lights or download your at-show customizations when you get home


Auto Installer (for OS X)

  • Install the latest Java Runtime Environment
  • Download the latest (0.91) Primer 0.91.dmg
  • Open the .dmg
  • Plug in one OSM light
  • Double-click the Upload primer.hex app to install the firmware.
  • Repeat previous step for all OSM lights.
  • Drag Tekton app to your /Applications directory.
  • Double-Click Tekton app to begin configuration app.

Packaged release (for PC)

  • Install the latest Java Runtime Environment
  • Download the latest (0.91) zip file for your platform:
  • Download the XLoader app.
  • Plug in one OSM light
  • Using XLoader, follow this tutorial to install the firmware.
    • Make sure to use 115200 for the speed.
    • Make sure to select “Uno(ATMega328)” from the Device dropdown.
    • Be sure to select the correct .hex file.
  • Repeat previous step for all OSM lights.
  • Drag Tekton exe to your computer.
  • Double-Click the Tekton exe to begin configuration app.

Packaged release (for Linux)

  • Install the latest Java Runtime Environment
  • Install avrdude.
  • Download the latest (0.91) zip file for your platform:
  • Plug in one OSM light and run the command: avrdude -v -patmega328p -carduino -P[path to programmer] -b115200 -D -Uflash:w:[path to .hex file]:i
  • Repeat previous step for all OSM lights.
  • Run the included “tekton” executable to begin configuration app.




Under normal operations:

  • Press - Turn on. Go to Play on release.
  • Hold 1.0s - Go to Bundle Select on release. Flashes blue.
  • Hold 4.0s - Go to Master Reset on release. Flashes red.
  • Hold 7.0s - Failsafe mode. Turns off when released.

If light lock is enabled:

  • Press or hold < 3.0s - Do nothing.
  • Hold for 3.0s - Go to Play on release. Flashes green.

Master Reset

Light glows red.

  • Press - Go to sleep.
  • Hold 3.0s - Reset and go to Play on released.

Bundle Select

Light plays first mode of the bundle.

  • Press - Cycle bundle.
  • Hold 1.0s - Selects current bundle and go to Play on release. Flashes blue.
  • Hold 2.0s - Go to Bundle Edit on release. Flashes yellow.
  • Every second you hold after cycles through select and edit.

Bundle Edit

Plays the mode currently selected for the slot.

  • Press - Cycle bundle slot to next mode.
  • Hold 1.0s - Sets current bundle slot to selected mode. Cycles to next bundle slot. Flashes magenta.
  • Hold 2.0s - Saves bundle with current bundle slot as the end of the bundle. Go to Play. Flashes white.


Under normal operation:

  • Press - Cycle to next mode.
  • Hold 0.5s - Put light to sleep on release.
  • Hold 1.5s - Enables Conjure Mode on release. Flashes blue.
  • Hold 2.5s - Go to Config Select on release. Flashes yellow.
  • Hold 3.5s - Enables Light Lock on release. Flashes red.
  • Every second you hold after this will cycle through sleep, config, conjure, and light lock options.

In conjure mode, if the light is off for 3 minutes, the light will go to sleep. This disabled conjure mode but will save your batteries.

  • Press - Toggle light on/off (processor still running).
  • Hold 3s - Disabled Conjure Mode on release. Flashes blue.

Config Select

  • Press - Cycle between configuration options. Color indicates what configuration mode will be selected.
    • Colors A - red
    • Colors B - blue
    • Pattern A - magenta
    • Pattern B - cyan
    • Accelerometer mode - green
  • Hold 1.0s - Go to Configure for current configuration mode on release. Flashes yellow.
  • Hold 2.0s - Go to Play on release. Flashes white.

Color Select

  • Press - Cycle forward through palette options.
  • Hold 0.5s - Select color.
  • Every second you hold after, the shade will cycle. On release, go to Confirm Color.

Confirm Color

  • Press - Accept color.
    • If last color slot, save and go to Play. Flashes white.
    • Otherwise, go to Color Select for the next color.
  • Hold 1.0s - Reject color and go to Color Select for color. Flashes red.
  • Hold 2.0s - Accept, save, set current color slot as last color, and go to Play. Flashes white.

Pattern Select

  • Press - Cycles to next prime.
  • Hold 1.0s - Accept, save, and go to Play. Flashes white.

Accelerometer Mode Select

  • Press - Cycle to next accelerometer mode. Color indicates what mode will be selected.
    • Off - dim white
    • Speed - red
    • Tilt X - blue
    • Tilt Y - yellow
    • Flip Z - green
  • Hold 1.0s - Select mode.
  • Every second you hold after, the sensitivity will cycle. On release, go to Play.


The controls along the left control the entire light or the mode Tekton is in. The top three buttons define the editing mode as either editing presets, the palette, or bundles.

Below those controls are controls that use the light’s memory. Reload Light loads the light’s saved settings and effectively undoes all changes made in Tekton since the last save. Write Light saves all of the changes made in Tekton to the light. Upload light loads the filename in the box below and writes those settings to the light. This is to save time when writting saved settings to multiple lights at once.

The text box and Save and Load Light buttons are for saving and loading the light’s settings to/from disk.

Disconnect allows you to remove a plugged in light without having to exit Tekton (unlike earlier versions) while exit functions as normal. When a new light is connected after disconnecting, or a light is put to sleep and woken back up while plugged in and disconnected, Tekton will reconnect to the light and put it back into slave mode.

Edit Presets

When editing bundles, the arrows to the left and right of the “Preset X” title go to the previous and next mode respectively. The bottom of the screen is the color palette + shade levels that are selectable. The dropdowns right below define the patterns and accelerometer settings the mode uses. Keyboard shortcuts for changing Pattern 1 are up and down. To change Pattern 2, hold the shift key when pressing up or down.

Below the mode settings are the colors for Patterns 1 and 2. The Less and More buttons decrease or increase the number of color slots in use. Clicking on a color slot and clicking a color will change the selected color.

The controls below the pattern colors are for reloading the preset from the light’s memory, saving the edited preset to memory, or for saving and loading to a file on your computer. The file is saved to the directory of the tekton executable.

Edit Palette

When editing the palette, select the color to edit with the lower part of the screen and edit the color using the sliders at the top.

Keyboard controls for increasing and decreasing each color channel exist. q, w, e, and r are used to change red by -8, -1, +1, +8. a, s, d and f are used for green and z, x, c, and v are used for blue.

Edit Bundles

When editing bundles, the bundles have Less and More buttons just like the pattern colors from the Preset Editor. Setting a slot to a preset works in the same way as setting colors in the Preset Editor.


These images represent a selection of animations. 1 horizontal pixel represents 0.5s of animation time. Some animations take too long and are truncated in some way. Those are denoted with an Nx, with N being about how much shorter the animation is.

NOTE: Colors displayed on the monitor differ from colors displayed on the light. These colors are approximations. Anything grey tends more to white than grey when shown on the LED.

Ribbon Hyper Strobe Nano Dops Slow Strobe Strobie Faint Signal Blaster Heavy Blaster Auto Blaster Strobe2 Hyper3 Dops3 Blaster3 Heavy Blaster3 Auto Blaster3 Tracer DashDops DopsDash Vexing Vexing3 Ribbon Tracer Dotted Firework Bottlerocket Grow (4x) Shrink (4x) Stretch (4x) Wave (16x) Shift (4x) Comet (16x) Meteor (16x) Embers (16x) Influx (4x) Sword Sword5 Razor Razor5 Barbs Barbs5 Cyclops FadeIn StrobeIn FadeOut StrobeOut Pulse Pulsar Slow Morph Morph DopMorph StrobieMorph StrobeMorph HyperMorph DashMorph Fuse DopFuse StrobieFuse StrobeFuse HyperFuse DashFuse