Skip to content

Hardware Documentation

tylrtrmbl edited this page Jan 31, 2013 · 14 revisions

Here's a reference for what every programmer needs to know: the hardware interface.

Device and Fosc

Device: PIC18F2685
Fosc: 40MHz (10 MIPS)

DIP Switches

A five-position DIP switch is used to select the block of DMX channels used by the heads. The switches are pulled high to indicate "off", and pulled low to indicate "on". They're on pins RA0, RA1, RA2, RA3, and RA5. RA0 is the most significant bit, RA5 is the least significant bit.

LEDs

What could be more fun than a bunch of blinking lights? There are a total of six status LEDs connected to the microcontroller. Setting a pin high results in illumination. Their usage is not completely fixed, so if you can think of something better, go for it.

Four pink LEDs are connected to RB0, RB1, RB2, and RB3. These are intended to show the status of the individual heads. Two more LEDs are connected to RB4 and RB5. These are intended to show the status of the DMX input, and possibly a self test.

LED Port Pin #
1 (Pink) RB0 21
2 (Pink) RB1 22
3 (Pink) RB2 23
4 (Pink) RB3 24
5 (Green) RB4 25
6 (Blue) RB5 26

DMX

The RS-485 DMX input and output are connected to the TX and RX serial pins. The hardware is capable of serving as a DMX master, so don't transmit anything unless you know exactly what you're doing. For the light show, don't transmit anything at all.

Function Port Pin #
Transmit TX 17
Receive RX 18

Why are hardware USART TX/RX pins used to transmit DMX? Because DMX is a layer on top of RS-485.

"Therefore, we can use the USART to accept bytes and not rely on bit-banging. It additionally allows a mild bit of "multi-threading" as the USART hardware and CPU do their work in parallel. We have to switch to interrupt-driven first though! ~tylrtrmbl"

Clone this wiki locally