#dmx #lighting #ftdi #ffi #enttec

enttecopendmx

Rust bindings for the Enttec Open DMX USB and its FTDI D2XX Chip

2 releases

0.1.1 Sep 18, 2021
0.1.0 Sep 17, 2021

#15 in #ftdi

Custom license

9KB
69 lines

enttecopendmx-rs

DISCLAIMER: still in testing

Rust bindings for the Enttec Open DMX USB and its FTDI D2XX Chip.

The code is roughly based on the programming examples provided by Enttec, from which I extracted the settings for the FTDI Chip. For communication with the chip the excellent crate libftd2xx as a safe wrapper of the FTDI 2DXX driver c-bindings from the libftd2xx-ffi crate.

Usage

First install the FTDI 2DXX driver

Then, simply add this crate as a dependency in your Cargo.toml.

[dependencies]
enttecopendmx = "0.1.0"

Basic Example

This basic example sets the output of channel 1 to the maximum value of 255.

use enttecopendmx;

let mut interface = enttecopendmx::EnttecOpenDMX::new();
interface.open();
interface.set_channel(1 as usize, 255 as u8);
interface.render();

or simply run cargo run --example rgb-chase in the root directory of the (github) repository.

Changelog

The changelog can be found in the Changelog.md file.

Issues

If you encounter any problems just open an issue, but a response may take some time.

TODO:

  • restructure as a crate with example
  • add Result<T,E> return values for all methods
  • publish to crates.io
  • improve Documentation
  • add an alternative version(s) of the EnttecOpenDMX::new() method, which allows to specify the interface eg. by serial number
  • add a cli (binary) for simplified testing

Contributing

This crate is still in an early version, so if you have suggestions for improvements regarding this crate feel free to open a pull request.

Dependencies

~7.5MB
~75K SLoC