diff options
| author | mrcodetastic <12006953+mrcodetastic@users.noreply.github.com> | 2025-02-19 01:39:09 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-19 01:39:09 +0000 |
| commit | 35e441e8af48faa2d351a63bad7c55dddaae3014 (patch) | |
| tree | faf8f247dbc1760875b0e1d5a4fced3b3df42629 /examples/VirtualMatrixPanel/README.md | |
| parent | 3a78a9dfb68c695a4ee194cad992ef6296525d5b (diff) | |
| parent | 42f5da448fc23ab47689ab67a10251c7b9799c13 (diff) | |
Merge pull request #757 from mrcodetastic/virtdev
Migrate new VirtualDisplayPanel_T changes to master.
Diffstat (limited to 'examples/VirtualMatrixPanel/README.md')
| -rw-r--r-- | examples/VirtualMatrixPanel/README.md | 48 |
1 files changed, 27 insertions, 21 deletions
diff --git a/examples/VirtualMatrixPanel/README.md b/examples/VirtualMatrixPanel/README.md index c5aca88..7012f3f 100644 --- a/examples/VirtualMatrixPanel/README.md +++ b/examples/VirtualMatrixPanel/README.md @@ -1,4 +1,9 @@ -## Chained Panels example - Chaining individual LED matrix panels to make a larger panel ## +# The 'VirtualMatrixPanel_T' class +The `VirtualMatrixPanel_T` is used to perform pixel re-mapping in order to support the following use-cases that can be used together: +1. To create a larger display based on a chain of individual physical panels connected electrically in a Serpentine or Zig-Zag manner. +2. To provide support for physical panels with non-standard (i.e. Not a 1/2 scan panel) pixel mapping approaches. This is often seen with 1/4 scan outdoor panels. + +## 1. Chaining individual LED matrix panels to make a larger virtual display ## This is the PatternPlasma Demo adopted for use with multiple LED Matrix Panel displays arranged in a non standard order (i.e. a grid) to make a bigger display. @@ -19,33 +24,34 @@ For example: You bought four (4) 64x32px panels, and wanted to use them to creat 1. [Refer to this document](https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-DMA/blob/master/doc/VirtualMatrixPanel.pdf) for an explanation and refer to this example on how to use. -2. In your Arduino sketch, configure these defines accordingly: -``` -#define PANEL_RES_X 64 // Number of pixels wide of each INDIVIDUAL panel module. -#define PANEL_RES_Y 32 // Number of pixels tall of each INDIVIDUAL panel module. +2. Read the `VirtualMatrixPanel.ino` code -#define NUM_ROWS 2 // Number of rows of chained INDIVIDUAL PANELS -#define NUM_COLS 2 // Number of INDIVIDUAL PANELS per ROW +## 2. Using this library with 1/4 Scan Panels (Four Scan) -#define PANEL_CHAIN NUM_ROWS*NUM_COLS // total number of panels chained one to another +This library does not natively support 'Four Scan' 64x32 1/8 or 32x16 1/4 scan panels such [as this](https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-I2S-DMA/issues/154) by default. -#define VIRTUAL_MATRIX_CHAIN_TYPE <INSERT CHAINING TYPE HERE - Refer to documentation or example> - -``` -VIRTUAL_MATRIX_CHAIN_TYPE's: - +### Solution +Read the `VirtualMatrixPanel.ino` code. +The VirtualMatrixPanel_T class provides a way to additionally remap pixel for each individual panel by way of the `ScanTypeMapping` class. -3. In your Arduino sketch, use the 'VirtualMatrixPanel' class instance (virtualDisp) to draw to the display (i.e. drawPixel), instead of the underling MatrixPanel_I2S_DMA class instance (dma_display). +You can create your own custom per-panel pixel mapping class as well should you wish. +```cpp +// --- Example 3: Single non-standard 1/4 Scan (Four-Scan 1/8) --- -#### Thanks to #### -* Brian Lough for the Virtual to Real pixel co-ordinate code. +// Use an existing library user-contributed Scan Type pixel mapping +using MyScanTypeMapping = ScanTypeMapping<FOUR_SCAN_32PX_HIGH>; -YouTube: https://www.youtube.com/brianlough - -Tindie: https://www.tindie.com/stores/brianlough/ +// Create a pointer to the specific instantiation of the VirtualMatrixPanel_T class +VirtualMatrixPanel_T<CHAIN_NONE, MyScanTypeMapping>* virtualDisp = nullptr; +``` -Twitter: https://twitter.com/witnessmenow +The library has these user-contributed additions, but given the variety of panels on the market, your success with any of these may vary. -* Galaxy-Man for the donation of hardware for testing. +```cpp + FOUR_SCAN_32PX_HIGH, ///< Four-scan mode, 32-pixel high panels. + FOUR_SCAN_16PX_HIGH, ///< Four-scan mode, 16-pixel high panels. + FOUR_SCAN_64PX_HIGH, ///< Four-scan mode, 64-pixel high panels. + FOUR_SCAN_40PX_HIGH ///< Four-scan mode, 40-pixel high panels. +```
\ No newline at end of file |
