Version 0.91, 2020-08-23
(Click images to play video)
The M5StickC is an ESP32-powered unit, programmable with Arduino IDE. Built-in 80x160 color screen, LED, wifi, bluetooth, IR sensor, microphone, accelerometer, battery. It also has connectors for additional modules to extend its capabilities.
It's $10 direct from the manufacturer, but it will take a few weeks to arrive.
Or if you can't wait, you can buy it for $20 from Amazon.
- Follow the arduino tutorial on the M5Stack website.
- Instead of Arduino IDE you can also use Visual Studio Code with the Arduino extension.
- Download this project from github onto your computer (click on the green
Code
button at the top of the page). - Copy the libraries that are used by this project (found in the
~\libs
folder) to%userprofile%\Documents\Arduino\libraries
.
Copy ~\src\vmix_tally_app\AppSettingsDefaults.h.template
as AppSettingsDefaults.h
and change the values to match your setup. The second set of settings are optional, uncomment and update them if needed. You will want to configure your router so that the vmix machine has a static IP address.
#define SETTINGS0_WIFI_SSID "your_wifi1"
#define SETTINGS0_WIFI_PASS "wifi_pass1"
#define SETTINGS0_VMIX_ADDR "192.168.1.100" // or hostname
#define SETTINGS0_VMIX_PORT 8099 // default TCP API port
#define SETTINGS0_TALLY_NR 1 // initial tally number
Using the IDE, compile and upload to your M5StickC.
- Turn on device
- Wait for wifi and vmix connection
- The first screen is the tally status
SAFE
: input not in preview or livePRE
: input in previewLIVE
: input is live????
: tally status unavailable- M5 button single-click: display the tally number screen
- M5 button long-click: cycle screen brightness
- Side button long-click: QuickPlay this input
- The second screen is the tally number
- M5 button single-click: display the connection settings screen
- M5 button long-click: cycle screen brightness
- Side button double-click: increment the tally number
- Side button long-click: reset tally number to 1
- The third screen is the settings
- SSID, IP, vMix IP/port, Runtime.
- M5 button single-click: display the tally status screen
- Side button long-click: load next settings and restart
- Screen does not indicate when vmix/wifi is disconnected and reconnection is being attempted.
- Store uptime info as current + last, copy from current to last on startup
- Use Preferences.h instead of EEPROM.h for settings (maybe keep EEPROM for last used settings & tracking)
- Battery indicator on all screens
- Detect and indicate when battery is fully charged
- Restore last used settings on boot (instead of just #1) OR ability to select settings on boot
- Continued cleanup and refactor of logic - event-driven model
- Hard-reset capability from settings or error screen
- Access Point mode when not connected to a WiFi network
- Webserver for easy configuration
- Screens revamp:
- Splash screen
- Delay then switch to Connection screen
- Connection screen
- Connect to wifi, then vmix
- If successful, switch to Tally screen
- else, switch to Connection Error screen
- Connection Error screen
- Display WiFI & vMix settings
- M5 short-press to switch to retry
- Side short-press to cycle connection settings and retry
- Tally screen
- M5 short-press to switch to Settings screen
- M5 long-press to enter brightness mode
- M5 short-press to cycle brightness
- Side short-press to toggle high viz
- Side long-press?
- M5 long-press to exit brightness mode
- Side short-press?
- Side long-press to QuickPlay after 3s delay
- Settings screen
- M5 short-press to switch to Tally screen
- M5 long-press to enter settings edit mode
- M5 short-press to cycle through setting screens (settings index, tally number)
- Side short-press to cycle through setting values
- Side long-press to reset setting value to default
- M5 long-press to exit settings edit mode
- Side short-press?
- Side long-press?
- Splash screen
Runtime (pre-0.9)
- 1h07m on LIVE/HIGH (red bg & LED on) @ 60% brightness.
- 1h05m on LIVE/LOW (black bg & LED on) @ 60% brightness.
- 1h39m on LIVE/LOW (black bg & LED off) @ 60% brightness.
- 1h00m on LIVE/LOW (black bg & LED on) @ 100% brightness.
- 1h11m on PRE/HIGH (green bg) @ 60% brightness.
- 1h37m on PRE/LOW (black bg) @ 60% brightness.
- 1h20m on PRE/LOW (black bg) @ 100% brightness.
- 2h02m on SAFE/LOW (black bg) @ 60% brightness.
- 1h20m on SAFE/LOW (black bg) @ 100% brightness.
This project is a fork of Guido Visser's vMix-M5Stick-Tally-Light, which inspired me and got the ball rolling.