Skip to content

Project Overview

Alex Tants edited this page Aug 2, 2026 · 1 revision

Project overview

What TinyPanel Studio is

TinyPanel Studio combines four parts in one local development workflow:

  1. A Node.js application runtime and Canvas renderer.
  2. A TCP display server that streams RGB565 updates.
  3. A browser-based Device Studio for editing, previewing, configuring, and debugging.
  4. ESP32 firmware that receives commands and writes them to a physical display.

Applications stay on the host computer. The ESP32 firmware remains small and generic, reconnects over Wi-Fi, receives frames, draws them over SPI, and acknowledges each completed frame.

Current features

  • Root-level application library under apps/
  • CodeMirror 6 JavaScript editor with themes, syntax highlighting, folding, search, color tools, manual Ctrl+S mode, and fullscreen workspace
  • Per-app JSDoc metadata, logical screen size, orientation, and target FPS
  • Native Canvas 2D rendering with TinyPanel helper methods
  • RGB565 framebuffer conversion and dirty rectangle transport
  • Browser preview built from the exact bytes sent to the ESP32
  • Coordinate rulers around the preview
  • App errors, app logs, serial monitor, and firmware logs in docked tabs
  • Hardware Setup for controller, panel driver, bus, pins, dimensions, rotation, color order, SPI frequency, and Wi-Fi
  • PlatformIO build and flash from Studio
  • JPEG transport for video and photographic frames
  • Built-in Blank Canvas, Crypto Tracker, and Synthwave applications

Design principles

  • Thin client: display logic stays on the host; firmware focuses on transport and drawing.
  • One frame in flight: frame-level ACK prevents an unbounded stale-frame queue.
  • Exact preview: Studio replays the transport bytes instead of independently rerendering the app.
  • Bounded state: the server keeps current framebuffers and bounded logs, not frame history.
  • Familiar API: app authors use JavaScript and Canvas-style calls.
  • Hardware configuration is explicit: changing a physical target generates firmware configuration and requires a rebuild.

Current limitations

  • The validated hardware path is ESP32-C3 Super Mini with ST7735S 160×128.
  • Current firmware display rotation commands support the two landscape orientations.
  • Apps execute on the host and require the server for normal streaming.
  • The JavaScript runtime is a Node VM context, not JavaScript compiled for or executed on the ESP32.
  • One physical display has been the primary validation target; multi-device internals exist, but broader UI workflows remain future work.
  • Full offline app packages, OTA-managed runtime updates, capability handshake, authentication, and a no-code settings schema are roadmap items.

See the repository Roadmap for planned offline packages, device management, packaging, and production hardening.

Clone this wiki locally