Title: DMX512 Programmable Theater Lighting Controller
1DMX512 Programmable Theater Lighting Controller
Jeff Sand and Kris Kopel Advisor Dr. Don
Schertz May 8, 2001
2Outline
- Objectives
- Digital Lighting Control Overview
- System Block Diagram (Hardware)
- Firmware
- Software
- Results
3Objectives
- Generate DMX512 output to control lighting
devices - Enable PC control to change dimmer levels
- Develop USB platform for future use
- Write commercial quality firmware, driver, and
windows software - In short, Design a complete marketable system
using a top down approach
4Digital Theatrical Lighting
Console
Lights
Dimmers
Lights
DMX512
Lights
Dimmers
Lights
Intelligent Luminaries
5DMX512 Protocol
- United States Institute for Theatre Technology
(USITT) standard - Controls up to 512 dimmers/devices
- Serial and asynchronous bitstream
- 250 kbits/s
- RS-485 physical implementation
- 32 nodes on one chain
6System Block Diagram
Motorola 68376 mController
Input Blocks
Personal Computer
USB Transceiver Philips PDIUSBD12
RS485 Driver MAX483
DMX512 Output
7Microcontroller Interfaces
- Data bus, chip selects, and external IRQ used for
USB transceiver - Queued Serial Module (QSM)
- Serial Communication Interface (SCI) for DMX
output - Queued Serial Peripheral Interface (QSPI) for
input blocks - Internal RAM for data storage
- EPROMs for program code
- Background Debug Mode (BDM) for development
without a monitor program
8Input Block
QSPI Control Lines
Serial A/D MAX148
Fader Inputs
Out to mController QSM Module
Serial Shift Register 74166
Momentary Push Buttons
Latch 74373
9Firmware
- Written in assembly language
- Interrupt driven
- DMX512 output
- Fader/Button data acquisition
- USB Communication over data bus
- Main program loop for standalone mode only
10DMX Output Stream
11SCI Interrupt Routine
DMX Output Status?
break
data
mark
start
End Break
Output Start Code
Start Break
Last Channel?
no
yes
DMX Output Status lt- Start
DMX Output Status lt- Break
Set Timer
DMX Output Status lt- Mark
DMX Output Status lt- Data
Output Data Byte
Exit ISR
12QSPI Interrupt Routine
Read/Clear Status Register
Read all Buttons
Faders or Buttons?
Buttons
Faders
Read 8 Faders
yes
Last Fader Block?
Reprogram QSPI for Faders
Reprogram QSPI for Buttons
no
Increment Chip Selects
Re-Enable QSPI
Exit ISR
13USB Interrupt Routine
Bus Reset
Handle Reset
Read interrupt register
Suspend Change
Handle Change
no
Data Endpoint In
Data left to send?
Send it
yes
Data Endpoint Out
Read Data into Buffer
no
Control Endpoint In
Data left to send?
yes
Send it
Control Endpoint Out
Exit ISR
Set Address
Device Descriptor
Get Descriptor
Configuration Descriptor
String Descriptor
14Windows Driver
- Windows kernel mode USB driver
- Recognizes and initializes device
- Registers device with Windows to be accessed by
user applications - Handles reads from/writes to device
- Plug n Play and Windows power management
compatible
15Windows Device Detection
16Windows Software
- Three modes of operation
- Direct fader control
- Software dimmer patching
- Programmed lighting queues
- Uses Windows common controls
- Uses Windows timers
17Windows Software
18Results
- Completed DMX512 Output (Hardware and Firmware)
- Adjustable number of channels
- Proper output frequency
- Completed Input Blocks
- (Hardware and Firmware)
- Buttons, Faders, and control circuitry wire
wrapped onto panel - One master block and two 8 channel scenes
- Firmware capacity for 128 faders and buttons
19DMX Output Result
20Results
- Wrote a firmware routine for direct external
fader control with master control, two scenes,
and crossfade - Implemented USB firmware (all functions necessary
for this device) - Interfaced USB peripheral chip with
microcontroller on data bus - Master power switch
21Results
- Wrote functional Windows kernel mode driver
- Wrote windows user application
- Currently does not properly interface with driver
- Tested complete unit with DMX light and it worked
perfectly - We plan to test the device in the Bradley theater
in the near future