OLE Developer Guide  Latest Git
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages


OLE is an Open Source DMX512 / RDM stack for PIC32 microcontrollers. It contains code to function as either an DMX / RDM controller (transmitter) or as an DMX receiver / RDM responder.


USB to DMX / RDM Controller

  • Configurable transmit timing parameters, including:
    • Break duration
    • Mark duration
    • RDM response Timeout / Broadcast response timeout
  • Response timing information, including:
    • Break time
    • Mark time
    • Response delay

DMX512 / RDM Receiver

  • The ability to simulate many different types of RDM Models. Together, they support all PIDs from the E1.20, E1.37-1 & E1.37-2 standards. This allows RDM controllers to be tested without having access to a large number of RDM devices. The code can act as:
    • An LED driver
    • A moving light
    • A proxy, which will ACK_TIMER all requests to the child devices.
    • A sensor only device (No DMX footprint)
    • A dimmer, with sub-devices including all PIDs from E1.37-1
    • A network device, including all PIDs from E1.37-2.
  • Configurable RDM response delay, with an option to introduce jitter
  • Identify & Mute status indicators.
  • RGB pixel control using SPI (LPD8806 only for now).


  • USB Logging, with adjustable log levels. Requires Linux or MAC OS X 10.7 or greater.
  • Extensive Unit Tests.

Supported Platforms

This code is targeted at the PIC32 series MCUs. It uses the parts of the Harmony framework, so it won't work on other platforms without some porting effort.


The embedded system running this code.
The system that typically runs a full OS, and is the USB / SPI bus master.
A structured sequence of bytes exchanged between the Host and the Device.
An RDM Responder, depending on the configuration of a Device, it may act as an RDM Responder.

Getting Started

See the Reference Hardware Design for the necessary hardware. Once you have the hardware, the MPLAB X Development Environment page explains how to get started building the firmware.


The Ja Rule codebase is licensed under the LGPL.

The unit-testing code & mocks are licenced under the GPL.