Version 3 has been released!

{DCH} command (Define channel)

 DRAFT !!! This is a draft - not yet released/complete.

The ability to define the channels available on a RemoteSign ESP devices enables one to decide what  capabilities it has in order to make the best use of the available output pins. The ability to record scripts that are also triggered by internal sensor channels means that it is possible to set up sensor pins that trigger almost any action even without a remote connection. 

The types of channels that are available are:

In addition, one can also:

Overview

  1. Channels are numbered and are loaded in increasing order.
  2. Defining a channel for a channel number will replace any existing channel, and free up the pins used by the previous channel.
  3. Once a channel is defined, it is stored for future use. i.e. you do not have to define the channels every time you use the device.
  4. If a channel definition includes a pin that is already in use, the conflict will be reported by the {ERROR} command and will appear in the log screen of RemoteSign Sequencer. Duplicate pins will not be used.
  5. Whenever RemoteSign Sequencer connects to a RemoteSign it requests a list of current channels (using the {CH?} command). The results of that can be seen in the list of channels in Sequencer.
  6. If you wish to have certain channels automatically activated when a RemoteSign ESP starts up, you can place the activation commands into a script and record that to a script called AUTORUN on the ESP. For example, if you have defined an animated lighting effect on channel 3 and you want it to run automatically record a {SIG}3 ␑ 1 command and it will start at step 1 automatically. See the Scripting page for more details.
  7. RemoteSign Sequencer provides a user friendly method of  generating the {DCH} commands for defining the channels and configuring a RemoteSign ESP. These commands need to be sent to the RemoteSign ESP only once. In order to send {DCH} commands to a RemoteSign ESP, the RemoteSign Sequencer must be registered.

Overall limitations

The hardware has a number of labeled connections called 'pins'. The number of usable pins is limited to 12 different pins, so there are limitations as to the quantity of each type of channel. Each pin of a RemoteSign ESP can only be used by one channel at a time, but one can have a mix of different channel types on a single device. In addition, the overall current supplied by the module must not exceed 192mA.

The ability to change channel configuration is limited to registered copies of RemoteSign only.

Channel types

The different 'channel types' of the {DCH} command are described below.

Network Connection Status

The connection status of a RemoteSign ESP is indicated by a blue LED on the processor. This LED is also connected to pin D4. This built-in channel can be disabled by defining a connection status channel that indicates that no connection status is to be shown, or the connection status is to be shown on another pin.

When a RemoteSign ESP is connecting to a Wi-Fi network the light flashes. When another device connects to the RemoteSign ESP (to control it or monitor sensors) the light stays on, indicating a connection has been made.

Syntax

{DCH} ch ␑ CS ␑ name  hilo ␑ pin
  • ch - channel - must be zero
  • CS - Indicates this is setting the Connection Status
  • name - an optional name for the channel
  • hilo - 1 or 0 to indicate if the pin should be set HIGH (on) or LOW (off) respectively when there is a connection
  • pin - the pin designation, any of the following: D0, D1, D2, D3, D4, D5, D6, D7, D8, RX, TX. To disable the status light use -1 as the pin. This will free the pin for other channels to use.
Default setting is: {DCH}0␑CS␑␑0␑D4
Disabled setting:  {DCH}0␑CS␑␑0␑-1

Using RemoteSign Sequencer to create the {DCH} command looks like this:

configuring connection status




Limitations
  • The network connection status is a virtual channel and exclusively and always uses channel 0 (zero) 

OLED screen

The small 32x128 and 64x128 pixel screens use pins D1 and D2. If one does not need a screen one can free up these pins by deleting the screen channel. One can also flip the screen vertically and determine if and when the screen will dim itself.

Syntax

{DCH} ch ␑ OLED ␑ name ␑ flip ␑ dim ␑ soundpin
  • ch - channel - must be one
  • OLED - Indicates this is setting an OLED channel
  • name - a name for the channel
  • flip - indicates if the screen should be 1 normal side up or 0 flipped vertically
  • dim - minutes before screen dimmer activates. Zero means never. OLED screens have a limited lifetime so dimming after some period is recommended.
  • soundpin - pin to use for making clicking sounds for split flap displays. The pin must be connected to a buzzer module along with its ground and power supply.
Limitations
  • Only one screen per RemoteSign
  • The OLED screen must always be channel 1
  • The type of screen cannot be changed without switching the firmware (via the {OTA} command)
The OLED screen definition screen in RemoteSign Sequencer also offers the option of installing different firmware using the {OTA} command if you wish to change the type of screen hardware.

Defining an OLED screen in RemoteSign Sequencer



Sensors

Up to 10 sensors can be defined in a single sensor channel. For most pins, the sensors go 'on' when its pin is connected with the ground (GND) pin of the the RemoteSign ESP, and 'off' when the connection to ground is lost. One pin (A0) operates with the 3.3V output pin, going 'on' when it gets 3.3V and 'off' when not connected. Changes in the state of each sensor are reported to any device that is connected to the RemoteSign ESP over wifi. Sensor changes can also be used to trigger:
  • Signal aspects
  • Pedestrian crossing sequences for traffic lights
  • Local scripts

Syntax

{DCH} ch ␑ S ␑ name ␑ nsensors ␑ pinlist 
  • ch - channel - must be zero
  • S - Indicates this is defining a Sensor channel
  • name - an optional name for the channel
  • nsensors - the number of sensors being defined
  • pinlist - a list of pairs of pins and the type of sensor separated by spaces. Allowable pins are: D1, D2, D3, D4, D5, D6, D7, RX, TX & A0. Sensor types are:
    • 0 = Sensing ground (connection to GND pin)
    • 1 = Sensing 3.3 Volts (connection to 3V3 pin)
    • 2 = Touch capacitance (potential future type, not available on ESP8266)

Limitations
  • Only one sensor channel per RemoteSign
  • Pins that can be used by connecting to GND: D1, D2, D3, D4, D5, D6, D7, RX, TX
  • Pins that can be used by connecting to 3V3: A0
  • Pins D0 and D8 cannot be used

RemoteSign Sequencer screen for defining sensors:
defining sensors in RemoteSign Sequencer


Signals

Train signals with up to 9 aspects can be defined with up to 10 lights per signal. Each combination of light and aspect can be defined to be on or off, flashing, or flashing rapidly. Any aspect can also indicate a sensor number on the same device that will automatically set that aspect. 

Syntax

{DCH} ch ␑ SIG ␑ name ␑ nul ␑ fade ␑ naspects ␑ nlights ␑ pinlist 
  • ch - channel - must be zero
  • SIG - Indicates this is defining a Signal channel
  • name - an optional name for the signal
  • nul - not used for signals
  • fade - indicator that lights should fade out to simulate incandescent lights. 0 means no fade 1 means fade
  • naspects - the number of aspects being defined. Eg 3 aspects defines aspects 0, 1 and 2
  • nlights - the number of independent lights the signal has
  • pinlist - A series of parameters separated by spaces as follows:
    • for each aspect:  s pin0 state0 pin1 state1 ... pinn staten
      • s = a sensor number to trigger the aspect, 0 for no sensor. If the same sensor is set for more than aspect then that sensor will act to cycle through the signal aspects.
      • pin0, pin1 .. pinn the pin designation to use. Allowable pins are: D0, D1, D2, D3, D4, D5, D6, D7, D8, RX, TX 
      • state0, state1 ...staten the desired state for that pin for that aspect. State code are:
      • - = off (dash)
      • X = on
      • F = Flashing starting On
      • f = Flashing starting Off
      • R = Rapid Flashing starting On
      • r = Rapid Flashing starting Off
Signal channels can be controlled via the {SIG} command. When a RemoteSign ESP starts up all its signals will initially be set to aspect 0.

Limitations

The number of hardware pins limits the total number of aspects across all signals and LED animations to 10, so,...
  • A combination of up to 5 signals and LED animation channels can be defined
  • A combination of up to 10 lights and aspects can be defined in any signal.
It is highly recommended to use RemoteSign Sequencer to define signal channels. It also has a number of predefined signals that you can select and then customize the pins and optional sensors.

If a signal is to be triggered by sensors on the same RemoteSign ESP, then define the sensors on a lower numbered channel so that they are in place when the signal is set up. E.g. Sensors on channel 2 and signals that use those sensors on channels 3 and higher.

Using RemoteSign Sequencer to define a signal

A set of predefined signals are available in RemoteSign Sequencer. Currently these are:
  • Austrian distant
  • Austrian main
  • French
  • German Hp01
  • German Hp012
  • German Vr01 (using 3 wires)
  • German Vr01 (using 5 wires)
  • German Vr012 
  • German Vr012 (with Dunkelschaltung)
  • German Sh01
  • German Bü (level crossing) old style
  • German Bü (level crossing) old style with traffic light
  • Level crossing alternate flashers
  • Swiss distant signal (type L)
  • Swiss Main (type L)
  • US 3-color head  (Use two or three for 2- or 3-head lights)

defining a signal in RemoteSign Sequencer

In addition to these predefined signals, one can define almost any color light signal imaginable within the limitations of the pins available. Select the number of wires that have to be switched (i.e. leave out the common return/supply) and the number of aspects needed.

You can set the color for each light by clicking on the LEDs and picking its color. (Note this just helps the visualization in the user interface, you still have to connect the correct color LED wire to the pin.)

In the matrix of lights and aspects, the style of light is displayed as follows:
  • - = Light will be off
  • X = Light will be on
  • F = Light will flash (starting on)
  • f = Light will flash (starting off)
  • R = Light will flash rapidly (starting on)
  • r = Light will flash rapidly (starting off)
Clicking each cell will toggle between on and off. To get the flashing modes, right click for a complete list. 

Each aspect (row) also has a radio button that can be used to preview the LED indicators, including flashing. i.e. to see aspect 1, click the radio button for aspect 1

If you select the same pin more than once, the duplicate will be highlighted in red and you will not be able to click OK.

If a signal is driven by sensors on the same device:
  • Define the sensors on a lower numbered channel so that they are in place when the signal channel is defined.
  • The device does not need to connect to a Wi-Fi network.

Animations

Either a single light or a combination of lights can be animated to produce a wide variety of lighting effects. An animation can have up to 9 steps and up to 10 lights per signal. At each step, each light can be set to be on or off, flashing, or flashing rapidly. Each step also sets a duration in milliseconds before the next step is automatically activated. If desired the animation can loop back to either the first (step 0) or second step (step 1) when it has reached the end if the last defined step. This allows a repeating sequence to be defined as well as a way of optionally switching the animation off. Animations are essentially a special variant of a signal that can automatically advance from one aspect (step) to the next.

Syntax

{DCH} ch ␑ ANI ␑ name ␑ loop ␑ fade ␑ nsteps ␑ nwires ␑ pinlist 
  • ch - channel - must be zero
  • ANI - Indicates this is defining an Animation
  • name - an optional name for the signal
  • loop - 0 indicates no looping. 1 indicates that the animation should automatically loop every time it is complete. If the duration of step 0 is zero, it will loop to step 1. If the duration of step 0 is greater than zero, it will loop back to step 1 instead.
  • fade - indicator that lights should fade out to simulate incandescent lights. 0 means no fade, 1 means fade
  • nsteps - the number of steps being defined. Eg 3 steps defines steps 0, 1 and 2
  • nwires - the number of independent wires (lights) the animation uses
  • pinlist - A series of parameters separated by spaces as follows:
    • for each step:  dur pin0 state0 pin1 state1 ... pinn staten
      • dur = a duration of the step in milliseconds. A value of zero will prevent the animation going to the next step. (Maximum is 2²³ -1 or about 49 days.)
      • pin0, pin1 .. pinn the pin designation to use. Allowable pins are: D0, D1, D2, D3, D4, D5, D6, D7, D8, RX, TX 
      • state0, state1 ...staten the desired state for that pin for that aspect. State code are:
      • - = off (dash)
      • X = on
      • F = Flashing starting On
      • f = Flashing starting Off
      • R = Rapid Flashing starting On
      • r = Rapid Flashing starting Off
Animations can be controlled via the {SIG} command. When a RemoteSign ESP starts up, all animations will initially be set to step 0.

Looping
The looping feature is designed so that in the simplest form, the entire sequence is repeated from the start every time it completes. It will automatically start, and keep repeating forever. If however, you wish to be able to switch a looping animation an and off, then do this:
  1. Set all the lights for step 0 to OFF
  2. Set the duration of step 0 to zero.
When the animation starts, it will set the lights for step 0 (all off) and then stop because the duration is zero. 

To start the animation at step 1, send a {SIG} command to activate step 1. 
To stop the animation, send a {SIG} command to activate step 0. 

Limitations

The number of hardware pins limits the total number of aspects across all signals and LED animations to 10, so,...
  • A combination of up to 5 signals and LED animation channels can be defined
  • A combination of up to 10 lights and aspects can be defined in any animation.
It is highly recommended to use RemoteSign Sequencer to define signal channels. It also has a number of predefined animations that you can select and also customize the lights and durations.

Here is an example of a chase pattern using 8 lights. Step 0 defines all 8 lights to be off. Each subsequent step turns off all the lights except for one, for a duration of 100ms. When step 8 has completed it will loop back to step 1. If step 0 is activated with a {SIG} command it will sit at step 0 with all the lights off. If any other step is activated the lights will chase each other in a loop, at a rate of 100ms per light!

defining an animation in RemoteSign Sequencer



The predefined animations are:
  • Police lights (with off step)
  • Wig-wag (alternate flashing)  (with off step)
  • Railroad level crossing (alternate flashing)  (with off step)
  • Chase pattern
  • Vehicle direction indicator with off, left, right and hazard modes 
  • German Bü (level crossing) new style with traffic light that changes yellow to red
  • Dutch rail crossing with traffic lights and flashers
The rail crossing are animations as apposed to being signals because there is an automatic transition from yellow to red for the traffic lights.

Note: the delays can be changed faster by holding down Ctrl when increasing or decreasing the value.
The maximum duration that RemoteSign Sequencer supports is 357 minutes, just under 5 hours.

Monochrome Light

A Monochrome Light channel defines a single LED that can be set to any level of brightness from 0% to 100%  Transitions over a specific number of seconds from any brightness to any other brightness as well as special lighting effects can be activated for such channels using the using the {LM} command.

Currently the following Monochrome Light effects are available:
  • On
  • Off
  • Off (with simulated incandescent fade)¹
  • Transition (fade) from current brightness to a new brightness over n seconds¹
  • Lightning
  • Fluorescent light flickering on and then staying on
  • TV screen flicker¹
  • Arc welder²
  • Flames¹
  • Glowing coals¹
  • Fixed on & off periods (in minutes or seconds)
  • Random on & off periods (in minutes or seconds) with settable limits
  • Cooling slag¹
  • Camera flash gun
  • Cell phone camera flash
  • Sunrise¹
  • Sunset¹
¹ Do not use with a relay as this effect uses pulse width modulation (PWM), use a MOSFET rather
² Ensure any relay you use can handle switching at 30ms intervals or use a MOSFET


Syntax

{DCH} ch ␑ LM ␑ name ␑ pin ␑ maxbrightness
  • ch - channel - must be zero
  • LM - Indicates this is defining a Monochrome Light
  • name - An optional name for the channel
  • pin - the pin to use for the light. The following pins can be used: D0, D1, D2, D3, D4, D5, D6, D7, D8, RX, TX (Remember to disable connection status to use D4)
  • maxbrightness - optional, the maximum brightness value that should be used for any effects. A value between 1 and 1023. If higher brightness values of the connected light do not look any brighter, then you can set the maximum pulse width value for the light to a lower value. This will result in transitions with a visible brightness difference from 0% to 100% If you set a maximum brightness value below 1023, do not use the pin to drive a relay.
Limitations
  • A total of 11 Monochrome Light channels can be defined
Using RemoteSign Sequencer to create the {DCH} command looks like this:


If you have the RemoteSign ESP connected, you can use the slider to see the brightness levels of the pin. (Make sure you have not selected a pin in use by some other channel.) Set it to the lowest value just above the level where you can still see the brightness changing, and consider the ambient light levels of the room where the light will be used.

Color Light  [in development]

A Color Light channel defines three outputs (Red, Green and Blue) each of which can be set to any level of brightness from 0 to 255. The combined light intensities allows 16 million colors to be defined.  Transitions over a specific number of seconds from the current color to any other color as well as special lighting effects can be activated for such a channel using the using the {LC} command.

Currently the following Color Light effects are available:
  • Color (set a specific color)
  • Off
  • Off (with simulated incandescent fade)
  • Transition (fade) from current color to a new color over n seconds
  • TV screen flicker
  • Flames
  • Glowing coals
  • Fixed on & off periods (in minutes or seconds)
  • Random on & off periods (in minutes or seconds) with settable limits
  • Cooling slag
  • Sunrise
  • Sunset

Syntax

{DCH} ch ␑ RGB ␑ name ␑ rpin ␑ rmaxbrightness ␑ gpin ␑ gmaxbrightness ␑ bpin ␑ bmaxbrightness
  • ch - channel - must be zero
  • LM - Indicates this is defining a Monochrome Light
  • name - An optional name for the channel
  • rpin, gpin, bpin - the pin to use for the light. The following pins can be used: D0, D1, D2, D3, D4, D5, D6, D7, D8, RX, TX (Remember to disable connection status to use D4)
  • rmaxbrightness, gmaxbrightness, bmaxbrightness -  A value between 1 and 1023, the maximum brightness value that will map to a color channel value of 255. If one of the colors is too intense (Eg too blue, then you can set the maximum pulse width value for (blue) to a lower value. 
Limitations
  • A total of 3 Monochrome Light channels can be defined
  • This channel should not be used with relays as it uses pulse width modulation (PWM), use a MOSFET module on the output pins.
Using RemoteSign Sequencer to create the {DCH} command looks like this:


Using RemoteSign Sequencer to create the {LC} command looks like this:


Traffic light controller

This channel can drive the LEDs for:
  • Two street traffic intersection with pedestrian crossings in both directions!
  • Two street traffic intersection without pedestrian crossings
  • Single street traffic with pedestrian crossing
The duration of the traffic flow aspects as well as the overlap and safety margins can all be configured.

Both German style and US style traffic light pattern can be defined. In Germany, the amber light comes on with the red for a few seconds before the traffic light goes green. This allows drivers to get the vehicle into gear and ready to go when the green light comes on.

The traffic light pattern starts automatically and cycles continuously.

Two sensors can also be used to initiate pedestrian crossing demand. If sensors are defined, the pedestrian lights will remain on red unless one of the sensors is actuated. Once one of the 'push to walk' sensors has been pressed the corresponding pedestrian crossing will allow crossing at the next cycle.

When defining a traffic light channel, the road directions are referred to as either North-South or East-West so that one can conceptually differentiate them. Of course the angles and orientation of the actual roads can be anything you like.

Syntax

{DCH} ch ␑ TL ␑ name ␑ green ␑  amberB4green ␑ amberB4red ␑ pedgreen ␑ pedsafety ␑ redred ␑ EWsensor ␑  NSsensor ␑ pins 
  • ch - channel number
  • TL - Indicates this is defining a traffic light channel
  • name - an optional name for the traffic light
  • green - duration (in seconds) of green traffic light
  • amberB4green - duration (in seconds) of the amber light that comes on with the red traffic light before it changes to green (German style). If you do not want the amber to come on before the green, set the value to zero.
  • amberB4red- duration (in seconds) of the amber light that comes on between the green and red traffic lights
  • pedgreen - delay (in seconds) between the traffic getting a green light and the pedestrian crossing in the same direction going green
  • pedsafety - duration (in seconds) of the safety period after the pedestrian crossing goes red and the traffic light starts changing to green
  • redred - duration (in seconds) of overlap of red traffic lights in both directions
  • EWsensor - sensor number to request East-West pedestrian crossing sequence. Set to zero if no sensor input is desired.  
  • NSsensor - sensor number to request North-South pedestrian crossing sequence. Set to zero if no sensor input is desired. 
  • Pins - a list of pins to be used for the lights, separated by spaces, and in the following order
    • North-South traffic green
    • North-South traffic amber
    • North-South traffic red
    • East-West pedestrian green
    • East-West pedestrian red
    • East-West traffic green
    • East-West traffic amber
    • East-West traffic red
    • North-South pedestrian green
    • North-South pedestrian red
If a pin is not needed, specify it as XX

Example:

{DCH}2TLBachstr.40374056421D0 D1 D2 D3 D5 D6 D7 D8 RX TX 

Notes

It is highly recommended to use RemoteSign Sequencer to define traffic light channels:
configuring a traffic light


The durations and delays of the lights apply to both directions.

The number of roads involved is determined by the pin for East-West green. If a valid pin is specified for EWgreen, then there are two roads, North-South and East-West. If no pin is defined for EWgreen, then there is just one road - North South.

If there is only one road (North-South), then East-West pedestrian light pins must be specified (otherwise there is no need for the traffic lights).

If no pedestrian sensor is specified (zero) for a direction, and pedestrian lights are defined, then the pedestrian crossing sequences will occur automatically. If a sensor is specified, then the pedestrian crossing sequence for that direction will only occur if the sensor has gone on. Requests for pedestrian crossing will be honored again after the pedestrian light goes red again.

In addition to physical pedestrian sensors buttons connected to the sensors, requests for pedestrian crossing sequences can also be triggered remotely using the {S} (sensor) command. For example:
{S}2␑1
will have the same result as pressing the button connected to the S2 pin. There is no need to 'turn the sensor off' with {S}2␑0

By default, RemoteSign Sequencer will avoid using pin D4 as that is usually used for the connection status. If your traffic light has traffic and pedestrian crossing in both directions, this leaves only two pins available for use as sensors, D4 and A0. To use sensors them with a traffic light, disable the connection status to free up pin D4. Define a sensor channel (Eg channel 1) using D4 and A0, then define the traffic light on say channel 2. If you use pin A0 for a sensor remember it senses 3V from the 3V3 pin and not GND.

Limitations
  • One traffic light controller can be defined per RemoteSign ESP

RemoteSign Server connection

This defines a RemoteSign Server that the device should attempt to connect to

Syntax

{DCH} ch ␑ SERVER ␑ name ␑ port ␑ URL ␑ retry
  • ch -  channel number
  • SERVER - Indicates the RemoteSign should attempt to connect to a server
  • name - an optional name for the channel
  • port - the TCPIP port to use. Default is 50603
  • URL - the IP address or network address to connect to
  • retry - initial number of seconds between connection attempts.
This allows a RemoteSign to initiate a connection to another RemoteSign computer as a client. Once a connection is made, the RemoteSign will send and {AUTH} commands that includes its unique ID and server token if it has received one with a {TOKEN} command. The connection will be held open until either side disconnects. The RemoteSign will then attempt to connect again. After each failed attempt to connect, the delay between attempts is increased by one second.

Here is the RemoteSign Sequencer UI for defining a RemoteSign server channel:

defining a RemoteSign server in RemoteSign Sequencer

Delete a channel

Use DELETE to remove a channel definition.

Syntax

{DCH} ch ␑ DELETE
  • ch - The channel number to be deleted
  • DELETE - Indicates this command should remove the specified channel
This command will take effect when sent to the RemoteSign ESP

Reset to factory configuration

Use RESETALL to remove all channel configuration changes and go back to the factory settings. The factory defined channels will reappear after restarting.

Syntax

{DCH} nul ␑ RESETALL ␑ reset
 
  • nul - not used. The command applies to all channels.
  • RESETALL - Indicates this command should remove all previous channel definitions
  • reset - optional, indicates if the RemoteSign ESP should reset itself immediately. 1 means reset and anything else means no reboot. 
This command will take effect when sent to the RemoteSign ESP.
It will not delete scripts from the RemoteSign ESP, only channel definition data.


Overview and list of all RemoteSign commands: API reference

Supported by:
RemoteSign Windows
RemoteSign Sequencer (send)
RemoteSign ESP

Standard configuration

From version 3.1 onwards, the standard configuration of channels is as follows:

  • 0 Connection status using pin D4
  • 1 OLED screen using pins D1 & D2
  • 2 Sensors S1 to S4 using pins D5, D6, D7 and RX
To return to the factory configuration, use the {DCH} ResetAll command.

Connecting things up electrically

Supply the RemoteSign ESP with 5V DC either to the VCC (+) and GND (-) pins or from a USB cable, but not both. All other wires must only come to the RemoteSign ESP. For example, if connecting a signal, use the GND for the common return for all the aspect LEDs. Do not connect the live or ground of the signal LEDs to some other ground (such as that of a train layout).

The load that can be applied to each pin must be less than 20mA. The voltage is 3.3V which is sufficient for a single LED circuit per pin. Typically any LED circuit should include at least a 50 Ohm resistor.   Note that the long strips of LEDs contain multiple LED circuits and present a huge load, and for that, there are two options:

  1. Use a relay. This is an option only if the output will be on or off. It should not be used if there are intermediate brightness outputs possible, E.g. lighting effects such as dimming, incandescent fade outs, flames, signals using fades, etc. The relay must be able to be triggered with 3.3V.
  2. Pass the LED signal into a MOSFET driver with a MOSFET circuit. This can handle rapid changes as well as variations in brightness. The MOSFET circuit must be able to be triggered with 3.3V.
I am sourcing both relay and MOSFET modules that can be used with the RemoteSign ESP modules.

Note that if you use an output pin to drive a relay you can indicate that the monochrome light channel is not to use dimming. This will prevent RemoteSign ESP from using any lighting effects that require dimming on that pin.