Skip to content

cscashby/esp32-showcontrol

Repository files navigation

esp32-showcontrol

Showcontrol with an ESP32.

Control box front

Overview

The box is PoE powered (if you use a suitable board, I highly recommend the ESP32-PoE-ISO which has adequate isolation for the network port, or can be powered using a Micro USB connector and will support WiFi (though this is not recommended for production use for obvious reasons, and hasn't yet been implemented).

The current design allows for Go, Stop, Pause, Next and Previous buttons, and a Jack terminated footswitch (likely mapped to Go, obviously).

It communicates via one ore more QLab machines via OSC over UDP and (not yet implemented) will have a web interface to configure QLab machine IP address, button mapping, display layout (maybe!).

The control box has a display (The first iteration has a 0.94-0.96" screen which can display 3-4 lines of text) and will show the currently playing and next cue, although this is customizable, as well as a 'heartbeat' indicator to show QLab is running and accepting network traffic.

The good, the bad and the ugly of the creation process are documented in this photo album.

You can see the current version in action here.

Known issues

Check out the GitHub issues page

Key show-stopper(s) right now:

Wiring

The box wiring is currently soldered wires directly onto pushbuttons and LEDs, and soldered onto the OLED board. Pinouts are documented in a separate file for the ESP32-POE-ISO board.

Development

IDE Setup

To set up the Arduino IDE to develop on the ESP32-PoE-ISO board, you will need the drivers from the manufacturer's website.

You will also need the ESP32 default board set up through Board Manager within the Arduino IDE, using these instructions.

In addition, you will need to install the following list of libraries, either from Libraries manager (version given at time of writing), or as ZIP/Folder from the URLs given:

  • SSD_13XX (Submodule)
  • ArduinoOSC (Submodule)
  • ArduinoJson (6.14.1)

For Submodules, don't forget to download them after cloning with git submodule update --init