spellmux / blackstaff

Custom ESP32 macropad with OLED display, 25 keys, and a rotary encoder. Mode-aware Home Assistant control for music, lighting, and tabletop gaming.

Repository from Github https://github.comspellmux/blackstaffRepository from Github https://github.comspellmux/blackstaff

Blackstaff Macropad

Blackstaff is a custom-built ESP32 macropad designed for smart home control, media automation, and TTRPG immersion. Inspired by arcane themes and powered by ESPHome, it combines a hand-wired numpad layout, rotary encoders, an OLED screen, and multi-mode logic to create a uniquely powerful interface for Home Assistant.


โœจ Features

  • ๐Ÿ–ฅ๏ธ OLED Display (SSD1306) with arcane-style animations
  • ๐ŸŽ›๏ธ Rotary encoder for volume, brightness, or contextual control
  • ๐ŸŽน 25-key hand-wired matrix keypad with multi-click input (click, double click, hold)
  • ๐Ÿ”‹ Battery-powered with MAX17048 fuel gauge integration
  • ๐Ÿ”„ Idle screen animations, startup effects, and wake/sleep dimming
  • ๐Ÿง  Mode switching for:
    • Music control (playlists, shuffle, radio)
    • Lighting automation
    • Dice roller for D&D sessions
    • Ambient/SFX channel controls
    • Diagnostic output and future expansion

๐Ÿ”ง Hardware Overview

  • ESP32 Feather (or equivalent)
  • SSD1306 128x64 OLED Display
  • MAX17048 LiPo Fuel Gauge
  • 25-key matrix keypad (hand-wired)
  • Rotary encoder with push-button support
  • LiPo battery and charging circuit
  • Custom 3D-printed enclosure
  • Optional: Small speakers + passive radiators for local audio feedback

๐Ÿ“ Project Structure


๐Ÿ“ท Demo Preview

(Coming soon: photos and video showcasing dice rolls, encoder interactions, and arcane effects.)


๐Ÿ“œ Attribution

This project builds on the excellent work of others and is licensed to respect their contributions:

Enclosure Design

Configuration Code

  • ESPHome YAML adapted from ESPDeck by AeroSteveO, licensed under the MIT License.
    Modifications include multi-mode support, advanced display scripting, idle timers, dice logic, and battery state management.

โš–๏ธ License

See LICENSE.md for full details.


๐Ÿ”ฎ Future Plans

  • GitHub Pages build guide with schematics and walkthroughs
  • Expanded FoundryVTT integration
  • Larger screen upgrade with mode-select menu
  • Soundboard-style SFX triggers

๐Ÿ“ฌ Contact

This project is a personal build but is shared for learning, collaboration, and fun.
Feel free to open an issue or discussion if youโ€™d like to contribute, remix, or just say hello.

About

Custom ESP32 macropad with OLED display, 25 keys, and a rotary encoder. Mode-aware Home Assistant control for music, lighting, and tabletop gaming.

License:Other