Skip to content

SiwatINC/espmega-lightshow

Repository files navigation

ESPMega Light Show

This is a program made for the ESPMega PLCs for easily programming light show and running light show script

Features

  • User Interface for configuring controller
  • Light Grid Generator
  • Easy Clickable Light Programming
  • Dynamic Physical Light Configuration
  • Custom Script using Python
  • BPM Counter
  • Quick Load Preset

Installation

  • For Windows, run the following command in a powershell windows with admin rights
    Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/SiwatINC/espmega-lightshow/main/installer_win.ps1'))
  • Ubuntu Linux
    bash <(curl -s https://raw.githubusercontent.com/SiwatINC/espmega-lightshow/main/installer_ubuntu.sh)
  • macOS
    bash <(curl -s https://raw.githubusercontent.com/SiwatINC/espmega-lightshow/main/installer_macos.sh)

Running

  • The program can be run from the CLI using the command:
python -m espmega_lightshow
  • The program can also be run from the desktop/startmenu shortcut after installation.

Scripting

This template script can be used to program custom lightshow

from espmega_lightshow.scripting import UserScript
class CustomUserScript (UserScript):
    def draw_frame(self, current_time: float):
        # This function is called every frame
        # You can use self.rows and self.columns to get the number of rows and columns
        # You can use self.set_tile_state(row, column, state) to set the state of a light at row, column
        # You can use self.get_tile_state(row, column) to get the state of a light at row, column
        # You can use current_time to get the current time elapsed in seconds
        # You can use self.frame_count to get the number of frames that have passed
        pass

The script can be run by going to FileRun Script