ESP32-S3 Firmware

Flash Your LED Matrix

Install the mood atom visualizer directly from your browser. No software installation required.

Requirements

  • ✓ Chrome or Edge browser (Web Serial API)
  • ✓ ESP32-S3 board with USB connection
  • ✓ 8×8 WS2812B LED matrix on GPIO 2

Your browser doesn't support Web Serial

Please use Chrome or Edge browser (v89 or later)

Web Serial access denied

Check browser permissions and allow serial port access

1

Connect USB

Plug in ESP32-S3

2

Click Button

Press Flash above

3

Select Port

Choose serial port

4

Wait

~30 seconds

Flashing Failed? Try Manual Boot Mode

If the device won't enter flash mode automatically, manually trigger boot mode:

  1. 1. Press and hold the BOOT button on your ESP32
  2. 2. While holding BOOT, press and release the RESET button
  3. 3. Release the BOOT button
  4. 4. Click "Flash Firmware" again

This puts the ESP32-S3 into download mode for flashing

🎭

8 Mood Atoms

Happy, Calm, Stressed, Angry, Sad, Bored - each with unique colors and speeds

Comet Trails

Beautiful fading tails (45→20→10→5→1 brightness) for smooth animations

🌊

Fluid Motion

30 FPS with momentum-based trajectories and Pac-Man style wraparound

📡

WiFi Provisioning

Beautiful captive portal for easy WiFi setup - no hardcoding credentials!

💡

LED Status Feedback

Corner LED shows WiFi status with pulsing blue (AP), flashing yellow (connecting), green/red flashes

🔍

mDNS Discovery

Find your device at howdo.local once connected to WiFi

What Gets Installed

Visual Features

  • Proportional color scaling (preserves hue)
  • Additive color blending for overlapping atoms
  • Exponential brightness fade on trails

Movement System

  • 8-directional quantized movement
  • 85% directional bias with 15% randomness
  • Periodic 45° turns every 2-6 seconds

After Flashing

1. Mood atoms start immediately - watch the colorful particles dance!

2. Device creates "Howdo" WiFi network - password: howdo2024

3. Connect your phone/laptop - captive portal opens automatically

4. Select your WiFi & enter password - device reboots and connects

5. Find it at howdo.local - or check your router for the IP

Remote Team Polling

Sync your display with a central mood API - perfect for distributed teams!

🌐 How It Works

  • Device polls your HTTPS endpoint at regular intervals
  • Endpoint returns JSON: {"moods": ["happy", "stressed", ...]}
  • Device spawns atoms at random positions with mood-based colors
  • Multiple devices can display the same team moods uniquely

🔐 Secure with BIP39

We recommend using 12-word BIP39 passphrases for authentication:

  • 128 bits of entropy (secure against brute force)
  • Human-readable (easy to share verbally)
  • Simple monthly rotation (revoke access for leavers)

Example passphrase:

abandon ability able about above absent absorb abstract absurd abuse access accident

Firmware Build Info

Version 1.1.3 • Built Nov 28, 2025

File Checksums (SHA256)

howdo-led.bin (986 KB)
aaaace59e04d534ab67b450196569d3685005b5ac11fb03ee64ca11124d0eac8
bootloader.bin (21 KB)
e49cd1f83f5373fb0c03f5584b6b515d3cd3209b1178b74795abb82bb1e2e208
partition-table.bin (3 KB)
7f00b6c042a89b15b0cac534f82ed988caf29278ff5700b0c511eb1b5bb7c820

What's New in v1.1.3

  • 🌐 Remote team mood polling with HTTPS endpoints
  • 🔐 BIP39 passphrase authentication (128-bit entropy)
  • ⏱️ Configurable poll intervals (10s to 10 minutes)
  • 🎨 Web UI for remote configuration
  • 📡 Manual "Poll Now" trigger for testing