Skip to content

DMX Firmware for CircuitSetup's Time Circuit Display kit, known from the Delorean Time Machine

Notifications You must be signed in to change notification settings

realA10001986/Time-Circuits-Display-DMX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3b50433 · Aug 10, 2024

History

74 Commits
Mar 14, 2024
May 21, 2024
Mar 12, 2024
Mar 14, 2024
Aug 10, 2024

Repository files navigation

Firmware for Time Circuits Display - DMX controlled

This repository holds a firmware for CircuitSetup's Time Circuits Display kit which allows to control each element through DMX. It is designed to work using the Sparkfun LED-to-DMX shield. (DMX control is also available for Flux Capacitor and SID).

CircuitSetup's TCD with this firmware was used in this musical:

Watch the video
Click to watch the video

DMX channels

DMX channelFunction
1Destination Time: Month
2Destination Time: Day
3Destination Time: Year 1000s
4Destination Time: Year 100s
5Destination Time: Year 10s
6Destination Time: Year 1s
7Destination Time: Hour
8Destination Time: Minute
9Destination Time: AM/PM
10Destination Time: Colon (0-85=off; 86-170=on; 171-255=blink)
11Destination Time: Brightness (0=off; 1-255=darkest-brightest)
12Present Time: Month
13Present Time: Day
14Present Time: Year 1000s
15Present Time: Year 100s
16Present Time: Year 10s
17Present Time: Year 1s
18Present Time: Hour
19Present Time: Minute
20Present Time: AM/PM
21Present Time: Colon (0-85=off; 86-170=on; 171-255=blink)
22Present Time: Brightness (0=off; 1-255=darkest-brightest)
23Last Time Departed: Month
24Last Time Departed: Day
25Last Time Departed: Year 1000s
26Last Time Departed: Year 100s
27Last Time Departed: Year 10s
28Last Time Departed: Year 1s
29Last Time Departed: Hour
30Last Time Departed: Minute
31Last Time Departed: AM/PM
32Last Time Departed: Colon (0-85=off; 86-170=on; 171-255=blink)
33Last Time Departed: Brightness (0=off; 1-255=darkest-brightest)

If speedo support is enabled (by defining TC_HAVESPEEDO in tcd_global.h), additional channels are supported:

DMX channelFunction
57Speedo: Speed (0-255 = 0-88mph)
58Speedo: Brightness (0=off; 1-255=darkest-brightest)

Packet verification

The DMX protocol uses no checksums. Therefore, transmission errors cannot be detected. Typically, such errors manifest themselves in flicker or a corrupted display for short moments. Since the TCD is no ordinary light fixture, this can be an issue.

In order to at least filter out grossly malformed/corrupt DMX data packets, the firmware supports a simple DMX packet verifier: For a DMX data packet to be considered valid, channel 46 must be at value 100. If a packet contains any other value for this channel, the packet is ignored.

To enable this filter, DMX_USE_VERIFY must be #defined in tcd_global.h. This feature is disabled by default, because it hinders a global "black out". If your DMX controller can exclude channels from "black out" (or this function is not to be used), and you experience flicker, you can try to activate this packet verifier.

Firmware update

To update the firmware without Arduino IDE/PlatformIO, copy a pre-compiled binary (filename must be "tcdfw.bin") to a FAT32 formatted SD card, insert this card into the TCD, and power up. The TCD will display "UPDATING" and update the firmware. Afterwards it will reboot.

Build information

Requires esp_dmx library v4.0.1 or later.

Hardware: Pin mapping

TCDLED-to-DMX shield
PWR Trigger (IO13) J1 P14
TT OUT (IO14) J1 P15
TT IN (IO27) J1 P16
5V/GND from "Fake Power" or "Time Travel" J12

The required 3.3V are generated through a voltage converter (like this one) attached to the LCD-to-DMX shield:

GND is taken from J1 P4, 5V from J2 P3. The 3.3V output is on J1 P2.

About

DMX Firmware for CircuitSetup's Time Circuit Display kit, known from the Delorean Time Machine

Topics

Resources

Stars

Watchers

Forks