Awesome Open Source
Awesome Open Source


USBDMX, a versatile USB DMX library written in Go for programatic show control and special effects.

Supported Controllers

Planned for support:

  • Enttec DMX USB Pro Mk2

If you don't see your controller here, but would like it to be added, create an issue with the name of the device and a link to any more information.

Quick Start

This will create a mock controller, set channels 1,2 and 3 to 255 and render the output to stdout once. If you have a real world controller that is supported you can create a controller in the same way.

config := usbdmx.NewConfig(vid, pid, outputInterfaceID, debugLevel)

controller := mock.NewDMXController(config)
if err := controller.Connect(); err != nil {

// set a fixture to bright white
controller.SetChannel(1, 255)
controller.SetChannel(2, 255)
controller.SetChannel(3, 255)

if err := controller.Render(); err != nil {


Documentation is a big part of any project, but writing it is very time consuming. Any documentation is greatly appreciated, please adhere to the Go standards for writing documentation. Translations of existing documentation to other languages will also be required.

Contributing code should have tests associated with it and all tests should pass. Code will not be merged into the master branch until it has been proven to work and has passing tests.


Oliver Read (Twitter: @oli_read)


If you would like to donate hardware please contact me either via Twitter. Alternatively you can email me, my email can be found in my profile.


This project is released under a GNU GPLv3 license, more information can be found at: GNU GPLv3 Website

To summarise: You may copy, distribute and modify the software as long as you track changes/dates in source files. Any modifications to or software including (via compiler) GPL-licensed code must also be made available under the GPL along with build & install instructions. If you wish to discuss any of these you can email me, which can be found in my profile.

Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Golang (163,767
Go (163,767
Usb (10,645
Dmx (506
Dmx512 (65