german:     DMX for LINUX: There are only few interface cards for DMX512 available. Most of these cards are not supported for use with Linux. These universal drivers support four SLH card models and open the path to applications, which can be run under Linux, a safe, affordable and convenient operating system. See HARDWARE for card details.   
...for DOS
...for WINDOWS 3.1, 95, 98
...for LINUX

Description of Hardware


Accessing the cards under Linux has successfully been done. Some examples are published here.

Programs, examples and drivers are published "as is". Any modifications, in software and in hardware, which are related to technical progress, are reserved.

These pages will be updated as changes occur.
last updated: 28.06.2000.


Tha latest driver file for Linux has been programmed by Jacob Schröder. This version will be the one, which is officially supported by the interface card manufacturer, SOUNDLIGHT. This tar file features a stable kernel module for all PCDMX card types.

This software is licensed under GPL, except the interface card OS files. Copyright for the files 'SLHDMX12.BIN','SLHDMX16.BIN' and 'SLHDMX17.BIN' will remain with SOUNDLIGHT. Hannover.


If you have any questions regarding this driver set, contact  Helge Wehder at SOUNDLIGHT.
Comments welcome.

Latest LINUX Driver by Michael Stickel

Please load the DMX4LINUX project from

LINUX Demo from D. Richards (USA)
The code has not been verified and is published as submitted.
Please comment on this proposal, send comments to

The SOUNDLIGHT Linux device driver supports the following operations:

These operations allow an application to initiate/terminate the use of a SOUNDLIGHT DMX-512 board. Any process can open the /dev/slh device read only (O_RDONLY) and read the device to obtain the current DMX-512 channel values. The first process to open the device read/write (O_RDWR) is considered the device owner and can set and retrieve DMX-512 channel values. Only the device owner can set DMX-512 channel values.

The read() system call will return 512 bytes of binary data corresponding to the current 512 DMX-512 channel values.

The write() system call has no meaning for the /dev/slh device and will return EINVAL if called.

ioctl( SLH_IOCPUMP ):
The SLH_IOCPUMP ioctl() operation is used to pump the SOUNDLIGHT board with firmware. The application must read the firmware from a file, place it in a buffer, and pass the buffer address to ioctl(). When the board is pumped, the board parameters are loaded, the DMX-512 channels initialized to zero, and the board started. At this point the driver will instruct the board to transmit DMX-512 channel data every 50ms.

ioctl( SLH_IOCSET ):
The SLH_IOCSET ioctl() operation is used to change the DMX-512 channel values. Any number of channels (1 - 512) can be changed in one operation. For each channel to be changed, both the new channel value and transition time are specified. The transition time is the number of milliseconds to transition (or dim) a channel from the current value to the new value. A description of each file associated with the SOUNDLIGHT Linux device driver is given below:

This is the makefile that is used to make the kernel module "slh" and the "slh_demo" program.

This file contains the "board" software module. It contains constant definitions and C functions that interface directly with the SOUNDLIGHT boards.

This file contains the "channel" software module. It contains the data structures and C functions that maintain and modify the DMX-512 channel values. This module uses a repetitive timer to update the DMX-512 channels every 50ms. This module also performs dimming operations.

This file contains the main device driver C functions.

This file contains miscellaneous definitions used in the slh device driver.

This file contains a demo program that demonstrates how to use the device driver to initialize and use a SOUNDLIGHT DMX-512 board in a Linux system.

The "load" shell script is used to load the SOUNDLIGHT device driver module into the Linux kernel and create the /dev/slh device file. The kernel dynamically assigns a major number to the driver and can be determined by looking at /proc/devices. The file /proc/slh is also created and can be used to determine which process owns the driver when it is in use and which DMX-512 channels are non-zero.

The "unload" shell script is used to unload the SOUNDLIGHT device driver module from the Linux kernel and remove /dev/slh and /proc/slh. The major number dynamically assigned to the slh driver will also be freed.


Load Archive File: SLH.CPI

Load Archive File: SLH.TAR