Skip to content

dtechniker/OLED-Display-StudioV3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OLED-Display-StudioV3

OLED Studio Interface

📘 OLED Studio V3.0

Web-based LED Matrix Toolkit & Pixel Editor

English Version | Deutsche Version

🔧 Overview

OLED Studio is a comprehensive web-based toolkit designed for embedded developers, makers, and UI designers. It combines a high-performance pixel editor, a flexible import system, and a template/stamp engine into a unified workflow.

The project was born from the need to simplify the workflow with microcontrollers (ESP32, Arduino, STM32). It eliminates the frustration of manual bit-shifting and provides instant visual feedback.

Note for Recruiters & Reviewers: While this started as a passion project, it serves as a demonstration of professional, modular software architecture. It showcases the transition from monolithic "hobby code" to a decoupled, testable, and scalable system.

✨ Features

🎨 Advanced Pixel Editor & Workshop

Canvas: Interactive 128×32 drawing surface (SSD1306 optimized) with 1:1 Mini-Preview.

Tools:

Text Stamping: Convert text input directly into positionable icon stamps.

Transformation: Mirror (H/V), Rotate (90° steps), Scale, and Invert patterns.

Toggle: Bulk toggle rows or columns.

Export Formats:

C-Arrays: Compact Hex (0xFF) for direct code usage.

Binary: Visual bit representation (0b1010...).

ASCII Art: Text-based export for documentation.

🧩 Grids & Layout

Flexible Geometries: Supports 8×8, 16×16, 32×32, 8×16, and 16×8 layouts.

Navigation: Fast content shifting using Arrow Keys.

Independence: Each grid functions as an independent workspace.

🔍 Intelligent Import System

OLED Studio features a robust parsing engine that automatically detects and processes various input formats:

Smart Detection: Identifies RowHex, Binary, and native SSD1306 Bitmaps.

Vertical Paging: Correctly decodes the specific memory structure of SSD1306 displays.

Auto-Dimension: Infers width and height from input data strings.

🌐 Workflow & Internationalization

Offline Capable: No backend required. All assets are embedded locally.

Languages: 🇩🇪 German, 🇬🇧 English, 🇪🇸 Spanish, 🇫🇷 French, 🖖 Klingon.

Secret Features: Try Ctrl+K for the hidden Theme Switcher.

🧱 Architecture & Engineering

This project demonstrates a strict separation of concerns, moving away from spaghetti code to a maintainable enterprise-grade structure. The V3.0 refactoring focused on:

✅ Encapsulation: Logic is strictly isolated from UI.

✅ Standardization: Unified module interfaces.

✅ Performance: Optimized rendering pipeline.

Module

Responsibility

ImportLogic

Pure logic layer. Handles format detection, parsing, dimension calculation, and matrix conversion. Zero UI dependencies. Fully unit-testable.

ImportManager

Orchestrator. Routes data to appropriate handlers, manages the Stamp System, and handles error/success states.

UI-Renderer

Presentation layer. Responsible for rendering the DOM, pixel grids, and visual feedback. Contains no business logic.

ErrorManager

Centralized exception handling. Provides user-friendly error messages and debug traces for invalid tokens.

📂 Project Structure

The codebase enforces the MVC pattern (Manager/View/Logic) across all modules:

/src ├── main.js # Entry point
├── /core # Core Systems (Singleton patterns)
│ ├── App.js
│ ├── DomMap.js
│ ├── ErrorSystem.js
│ ├── InfoSystem.js
│ ├── LangSystem.js
│ ├── MasterBindings.js
│ └── MasterUtils.js
├── /modules # Feature Modules (Strict Separation)
│ ├── /export
│ │ ├── Export.logic.js
│ │ ├── Export.renderer.js
│ │ └── Export.manager.js
│ ├── /import
│ │ ├── Import.logic.js
│ │ ├── Import.renderer.js
│ │ └── Import.manager.js
│ ├── /mainGrid
│ ├── /stamp
│ │ ├── font.data.js
│ │ ├── Stamp.logic.js
│ │ ├── Stamp.renderer.js
│ │ └── Stamp.manager.js
│ ├── /templates
│ └── /workshop
└── /ui # Assets & Shared UI Components
├── /fontawesome
├── /pics
├── ClassMap.js
├── style.css
├── UiOutput.js
└── UiPanelManager.js

🚀 Deployment & Usage

OLED Studio is a client-side application (HTML/JS/CSS).

Installation:

git clone https://github.com/YOUR_USERNAME/OLED-Studio.git

Run: Simply open index.html in any modern web browser. Works completely offline.

🔧 Überblick

OLED Studio ist ein webbasiertes LED-Matrix-Toolkit für Entwickler, Maker und UI-Designer. Es vereint einen leistungsfähigen Pixel-Editor, ein flexibles Import-System und eine Template-Engine in einer modularen Anwendung.

Das Projekt entstand aus dem Wunsch heraus, die Arbeit mit Mikrocontrollern zu vereinfachen: Schnelle Vorschau, automatisierte Umrechnung und ein klar strukturierter Workflow sparen Zeit und vermeiden Frust bei der Entwicklung von Embedded GUIs.

Hinweis zur Architektur: OLED Studio dient als Arbeitsprobe für professionelle Software-Architektur. Es demonstriert, wie man eine komplexe Frontend-Anwendung modular, wartbar und zukunftssicher gestaltet.

✨ Hauptfunktionen

🎨 Pixel-Editor & Workshop-Tools

Canvas: 128×32 Zeichenfläche, optimiert für SSD1306, mit 1:1 Mini-Vorschau.

Werkzeuge:

Text-Stempel: Verwandelt Texteingaben direkt in platzierbare Icons.

Transformation: Spiegeln (H/V), Rotieren (90°), Skalieren und Invertieren.

Pixel-Verschiebung: Präzises Positionieren via Pfeiltasten.

Export: Generierung von Hex-Arrays (0xFF), Binär-Strings (0b1010) und ASCII-Art.

🧩 Grids & Templates

Formate: Unterstützt Raster wie 8×8, 16×16, 32×32 und mehr.

Stempel-System: Speichern von Mustern als wiederverwendbare Stempel. Drag & Drop Logik.

Template-Engine: Gleichzeitige Arbeit mit mehreren Referenz-Assets.

🔍 Intelligentes Import-System

Das System erkennt Eingabedaten automatisch und verarbeitet sie:

Format-Agnostisch: Liest RowHex, Binary und natives SSD1306 Vertical Paging.

Auto-Dimension: Berechnet Breite und Höhe automatisch aus dem Datenstrom.

Robust: Fehlerhafte Tokens werden abgefangen und gemeldet.

🌐 Workflow

Offline-Fähig: Keine Server-Abhängigkeit, Assets sind lokal eingebettet.

Themes: Versteckter Theme-Switcher über Strg+K.

I18n: Volle Lokalisierung in Deutsch, Englisch, Französisch, Spanisch & Klingonisch.

🧱 Architektur & Design Patterns

Das Update auf Version 3.0 folgte strikten Engineering-Prinzipien, um "Hobby-Code" in eine professionelle Struktur zu überführen:

✅ Logik gekapselt: Algorithmen sind strikt von DOM/UI getrennt.

✅ Rendering getrennt: Die View-Schicht enthält keinerlei Business-Logik.

✅ Manager-Pattern: Zentrale Orchestrierung statt Spaghetti-Code.

✅ Einheitliche Module: Standardisierte Schnittstellen für Export, Import und Tools.

📂 Projektstruktur

Die Dateistruktur belegt die konsequente Umsetzung des MVC-Patterns (Manager/View/Logic):

/src ├── main.js # Einstiegspunkt
├── /core # Core Systeme (Singleton Pattern)
│ ├── App.js
│ ├── DomMap.js
│ ├── ErrorSystem.js
│ ├── InfoSystem.js
│ ├── LangSystem.js
│ ├── MasterBindings.js
│ └── MasterUtils.js
├── /modules # Feature Module (Strikte Trennung)
│ ├── /export
│ │ ├── Export.logic.js
│ │ ├── Export.renderer.js
│ │ └── Export.manager.js
│ ├── /import
│ │ ├── Import.logic.js
│ │ ├── Import.renderer.js
│ │ └── Import.manager.js
│ ├── /mainGrid
│ ├── /stamp
│ │ ├── font.data.js
│ │ ├── Stamp.logic.js
│ │ ├── Stamp.renderer.js
│ │ └── Stamp.manager.js
│ ├── /templates
│ └── /workshop
└── /ui # Assets & UI Komponenten
├── /fontawesome
├── /pics
├── ClassMap.js
├── style.css
├── UiOutput.js
└── UiPanelManager.js

📜 Lizenz & Credits

Lizenz: AGPL-3.0

Copyright: (c) 2026 DTechniker

Autor: DTechniker Modularer Denker. UI-Architekt. Pixel-Perfektionist.

About

OLED Display Studio V3: Web-based toolkit for SSD1306 Bitmaps. Complete architectural refactoring from sequential hobby-coding to modular enterprise patterns. Includes Pixel Editor, Import/Export Engine & Template System.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors