This implements a Wifi Artnet receiver to receive Artnet frames and send them out over DMX. The Idea is to fit the modules into DMX equipment and be able to use Wifi instead of DMX cabling.
The module uses WifiManager to connect to a Wifi network on initial startup. On subsequent boots, it will reconnect to the same network again with, no configuration necessary. The initial hostname is based on the hardware ID of the ESP8266. This name can be changed and saved.
The Artnet/DMX Universe can be configured, along with the max frame size and the update rate.
A WS2812 RGB LED is used to show the display status. The same status can be seen on the console output or the webinterface.
The colors displayed are as follows:
Color | Meaning |
---|---|
Red | The device is booting |
Yellow | Connecting to Wifi |
Green (blink slow) | Device is ready and connected to Wifi |
Cyan | Artnet frames are detected, but ignored as the universe does not match |
Green | Artnet frames are received and transmitted to DMX |
Green (blink fast) | DMX frames are transmitted from buffer after Artnet signal loss |
Wherever there is activity on the web interface (configuration, monitoring), the LED turns blue. During web interface activity, the DMX512 output is silenced. A smooth web interface and smooth DMX signalling don't go together.
- The MAX485 transmitter is switched off, when no frames are sent. This places the driver in high-Z mode and allows to use the DMX input with the ESP-DMX device still connected. The aim is to solder the device directly to the DMX fixture, but retaining the option to use conventional DMX.
- Fan control of the internal fan dependent on the measured temperature
- Programmable hold time to hold the last setting if the Artnet signal goes away. For example if I use a tablet as remote control it may go to sleep, stopping to transmit Artnet frames. This feature keeps the lights on.
- My cheap PARs seem not to like frames shorter than 512 channels.
Most ESP8266 modules or boards can be used. Personally I use the Wemos D1 with the protoboard shield. The circuit is built on the protoboard.
- Wemos D1 mini
- MAX485 module or chip
- WS2812 RGB LED
- NPN transistor (with enough current for your fan), optional
- 100k NTC for temperature measurement, optional
Wemos D1:
+-----+
Rst + W + Tx
NTC <- A0 + E + Rx
Fan <- D0/GPIO16 + M + D1/GPIO5 -> RS422 En
LED_B <- D5/GPIO14 + O + D2/GPIO4
LED_R <- D6/GPIO12 + S + D3/GPIO0*
NEO/LED_G <- D7/GPIO13 + + D4/GPIO2* -> RS422 Tx
D8/GPIO15* + D + Gnd
3V3 + 1 + 5V
+-----+
MAX485: 1 Rx vcc 8 -> Wemos D1 3V3 power
2 RxEn outb 7 -> DMX fixture
Wemod D1 D1 <- 3 TxEn outa 6 -> DMX fixture
Wemod D1 D4 <- 4 Tx gnd 5 -> Wemos D1 Gnd
There is are schematics and a wiring diagram among the files.
Some remarks:
- There is a prototype board for the D1 on which the Max485 fits nicely
- I don't use a 120 Ohm termination resistor as it is not necessary with the short cable length within the fixture itself and would require to be disconnected if the fixture cabled conventionally.
See the todo list
The Sketch by Robert Oosterveld http://robertoostenveld.nl/art-net-to-dmx512-with-esp8266 has served as starting point.