Skip to content

Conversation

@91volt
Copy link

@91volt 91volt commented Nov 28, 2025

Summary

This PR updates the documentation for the LED Matrix Painter example to reflect its capabilities, covering database persistence, animation sequencing, and C++ code generation.

What changed

Documentation:

  • Description: Updated the overview to highlighting features like 8-bit grayscale control, real-time board preview, and database storage.
  • Usage Guide: Added a step-by-step walkthrough for the editor interface, including the use of transformation tools (Flip, Rotate, Invert), the new Code Panel, and the Animation mode.
  • Technical Explanation: "Understanding the Code" section details the specific API endpoints defined in main.py (e.g., /persist_frame, /play_animation), the SQLStore database initialization, and the auto-persist logic in the frontend.
  • Architecture: High-level data flow diagram to illustrate the synchronization between the Web Browser, Python Backend, SQLite Database, and the Arduino Sketch.

Assets:

  • Added thumbnail.png to the assets/docs_assets/ folder to provide a visual preview of the application interface.

@91volt 91volt marked this pull request as ready for review November 28, 2025 15:00
@91volt 91volt requested review from TaddyHC and mcmchris November 28, 2025 15:24
Copy link

@TaddyHC TaddyHC left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Few suggestion for you consideration, lgtm!

The application uses the Router Bridge to communicate between the web interface (running on Linux) and the Arduino sketch (running on the microcontroller), enabling real-time updates to the physical LED matrix.
Key features include:
- **Real-time Control:** Drawing on the web grid updates the UNO Q matrix instantly.
- **8-bit Grayscale:** Support for 8 brightness levels per pixel (0-7).
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **8-bit Grayscale:** Support for 8 brightness levels per pixel (0-7).
- **Grayscale Control:** 8 brightness presets (0-7) for intuitive pixel control, with full 8-bit precision (0-255) supported at the hardware level.

A suggestion 👀 Can be discarded if the original explanation is considered sufficient enough

def to_c_string(self) -> str:
c_type = "uint32_t"
parts = [f"const {c_type} {self.name}[] = {{"]
# ... logic to format array data ...
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# ... logic to format array data ...
# Converts pixel brightness data to uint32_t hex format

A suggestion


The Python application manages the HTTP API, database operations, and communication with the Arduino.
1. **Run the App**
Launch the App clicking the **Run** button from Arduino App Lab.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Launch the App clicking the **Run** button from Arduino App Lab.
Launch the example by clicking the **Run** button from Arduino App Lab.

A suggestion

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants