german:     DMX Interface Hardware: this is a complete step-by-step description how to access the hardware, and how to set the working parameters required for DMX512/1990. Find memory maps, hardware addresses and other hardware-related stuff.   
512ch DMX Send Card
512ch DMX Send Card
512ch opto-isolated card
10124ch DMX Read/Write Card
DMX PrinterPort Interface
PMX/DMX Serial Port Converter Interface
DMX USB Port Interface
PCMCIA DMX  Interface Card

Hardware Description
   Get this page in PDF format


[PC DMX PrinterPort Interface DMXPCP]

We offer a range of PC interface cards, not only readily available but affordable and easy to program. Besides we offer ready-to use software packages for free.

Programming of our DMX512 interfaces cards is really simple. Here are the few steps to get things running.

  • self-contained interface, operates independent of PC
  • Output and Merge-Input support 512 DMX channels
  • optically isolated output drivers (potential-free)
  • for EVERY computer supporting a Centronics-compatible parallel port
  • low-cost

Please find a short presentation of the interface architecture and the command set.


PrinterPort Interface Compatibility

The DMXPCP DMX PrinterPort Interface is an external interface for connection to a Centronics compatible parallel printer port. It may be used with every platform from '286 to Celeron, but also Atari ST, Amiga and other computers featuring a Centronics-compatible port. The interface consists of its own CPU and can perform DMX output completely independent of the attached host computer.


Interface architecture

The Interface is an intelligent interface. The transmit mode starts automatically as soon as the power supply is connected, and defaults to the factory settings.

Internal construction


RAM Allocation

The interface memory area can be written from both, the host computer interface and the DMX input circuitry. Data are merged through the selected filter function. Memory contents are then output to the opto-isolated DMX512 output.

Memory allocation is done internally and cannot be changed by the user..


Communicating to the Interface

All communication from the PC to the interface is done via the parallel port. Please note, that the PC can write data to, but not read data from the interface due to timing limitations of the parallel port. If your PC parallel port can be configured via SETUP routines, please configure it as STANDARD port preferable, not in EPP or Extended mode.

Access Timing


The Interface Command Set

There are no special steps to set the interface to operation succesfully. Just write the data to the interface, that's it. To provide efficient and fast data transfer, multiple commands allow for different data transfer schemes (single data, block data etc.).

ESC C 1B 43 hi lo 27 67 hi lo Channel count 001-512 (00 00= 100 channels [DEFAULT])
hi = INT (channels/256)
lo = channels - hi*256
ESC D 1B 44 hi lo nn dd... 27 68 hi lo nn dd... Send data w/ block length and DMX data nn = number of cannels to follow (1-255)
0 = 256 channels follow
hi = INT (Startchannel/256)
lo = Startchannel - hi*256
ESC d 1B 64 lo dd 27 100 lo dd Send data for one DMX channel (001-256) lo = (Startchannel - 1)
ESC e 1B 65 lo dd 27 101 lo dd Send data for one DMX channel (257-512) lo = (Startchannel - 257)
ESC F 1B 46 27 70 Factory Default 100 channels, 88 us, StartByte 0
ESC G 1B 47 27 71 GO: Start DMX transmission Default: ON
ESC H 1B 48 27 72 HALT: Stop DMX transfer Default: OFF
ESC I 1B 49 72 73 Initialize Interface Clears complete DMX data memory
ESC L 1B 4A hi lo 27 74 hi lo Receive data Length 001-512 (512 Default)
hi = INT (Length/256
lo = Length - hi*256
ESC O 1B 4F hi lo 27 79 hi lo Offset for Receive data (000-511) Default: 000
hi = INT (Offset/256)
lo = Offset - hi*256
ESC P 1B 50 vv 27 80 vv Save DMX data to memory vv=0...7
ESC Q 1B 51 vv 27 82 vv Recall DMX data from memory vv=0...7
ESC R 1B 52 hi lo 27 82 hi lo Receive Start Address -1 (000...511) Default: 000
hi = INT (Address/256)
lo = Address - hi*256
ESC S 1B 53 vv 27 83 vv Startbyte value vv=000...255
ESC T 1B 54 vv 27 84 vv Startsync Timing vv=1...4 * 44 us
>88us Default
ESC W 1B 57 vv 27 87 vv Repeat Rate [ms[ vv = 10...50
10ms Default
ESC Z 1B 5A 27 90 Clear all data memory (ZERO)


Instruction Execution Time
Programmers should be aware of the fact, that some commands handling larger memory areas require extended execution times. Some of these commands are:-

ESC F 12 ms Clear Memory and load Factory Default Settings
ESC I 48 ms Initialize Interface
ESC P 3,5 ms Transfer Data Block
ESC Q 3,5 ms Transfer Data Block
ESC Z 12 ms Clear Interface

The internal command receive buffer can hold up to 120 Bytes. The typical execution time per byte may vary between 10 to 20 us. Any application software should be designed such that buffer overrun, which would result in interface response delay, is avoided.

Designing Application Software

That's all you need to know to design your own application program. The simplest choice would be to modify some existing printer driver, since the command scheme has been designed similar to ESC commands used to control your printer.

More sophisticated approaches may write to the printer port directly. Generally there are no restrictions writing to the printer port as long as DOS is used. Date can be transferred to the interface at any time. To minimize data throughput, only changed values should be transmitted to the interface. This is a very simnple demo showing initialization and data transfer:

ESC$ = CHR$(27) 'Definitions
NULL$ = CHR$(0)
LPRINT ESC$ + "I" 'Initialization
LPRINT ESC$ + "C" + NULL$ + CHR$(30) 'Set 30 Send Channels
LPRINT ESC$ + "D" + NULL$ + NULL$ + CHR$(30); 'Set 30 channels to Zero
FOR N=1 TO 30 'Send 30x NULL
LPRINT " " 'Terminate Command
LPRINT ESC$ + "D" + NULL$ + CHR$(5) + CHR$(1); 'Introduction Command CH 5
LPRINT CHR$(255) 'Set Channel to ON and terminate Command

Have Fun experimenting with the DMXPCP Parallelport Interface! We always welcome your Comments. Application Examples and Demos. Just mail to

DMX-Tester Measuring and Testing Equipment for Lab and Road Use
Interfaces DMX/Analog Decoder, Relay- and Dimmer-cards