An open API service indexing awesome lists of open source software.

https://github.com/reala10001986/sid-dmx

DMX Firmware for CircuitSetup's SID kit, known from the Delorean Time Machine
https://github.com/reala10001986/sid-dmx

bttf circuitsetup delorean deloreantimemachine esp32 sid timemachine

Last synced: 2 months ago
JSON representation

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

Awesome Lists containing this project

README

        

# Firmware for SID - DMX controlled

This repository holds a firmware for CircuitSetup's [Status Indicator Display](https://circuitsetup.us/product/delorean-time-machine-status-indicator-display-sid/) (SID) kit which allows control through DMX. It is designed to work using the [Sparkfun LED-to-DMX](https://www.sparkfun.com/products/15110) shield. (DMX control is also available for [Time Circuits Display](https://github.com/realA10001986/Time-Circuits-Display-DMX) and [Flux Capacitor](https://github.com/realA10001986/Flux-Capacitor-DMX))

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

| [![Watch the video](https://img.youtube.com/vi/IywO5m0-ziw/0.jpg)](https://youtu.be/IywO5m0-ziw?si=xcBQazYC4C0hpwi8) |
|:--:|
| Click to watch the video |

### DMX channels

DMX channelFunction
34Brightness (0=off; 1-255=darkest-brightest)
35Auto-animate (1-255=lowest-highest=tt; 0=off, use ch36-45)
36Column 1 height
37Column 2 height
38Column 3 height
39Column 4 height
40Column 5 height
41Column 6 height
42Column 7 height
43Column 8 height
44Column 9 height
45Column 10 height

#### 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 SID 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 sid_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 "sidfw.bin") to a FAT32 formatted SD card, insert this card into the SID, and power up. The SID will show an egg timer while it updates its firmware. Afterwards it will reboot.

### Build information

Requires [esp_dmx](https://github.com/someweisguy/esp_dmx) library v4.0.1 or later.

### Hardware: Pin mapping

The SID control board has a row of solder pads next to the ESP32 dev board. All below pins are accessible on this row of solder pads:

The pin numbers listed below in SID column refer to above picture:


SIDLED-to-DMX shield


GPIO35 (pin 14)
J1 P14


GPIO14 (pin 8)
J1 P15


GPIO32 (pin 13)
J1 P16


3V3 (pin 19)
J1 P2


5V (pin 1)
J12 +


GND (pin 6)
J12 -

For some mysterious reason, the SID sometimes experiences transmission errors which go away when an SD card is in the SID's card slot.