-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
101 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -39,7 +39,15 @@ lib_deps = | |
build_flags = | ||
-D USERMOD_WLEDAUDIO | ||
lib_deps = | ||
https://github.com/netmindz/WLED-sync#v0.14.0.b16 | ||
https://github.com/netmindz/WLED-sync#v0.14.0.b16 | ||
|
||
[usermod_hub75] | ||
build_flags = | ||
-D USERMOD_HUB75 | ||
lib_deps = | ||
; https://github.com/pixelmatix/[email protected] | ||
https://github.com/netmindz/SmartMatrix.git#platform-2-support | ||
|
||
|
||
[env:esp32dev] | ||
platform = espressif32 | ||
|
@@ -53,12 +61,14 @@ build_flags = | |
${usermod_e131.build_flags} | ||
; ${usermod_ha.build_flags} | ||
${usermod_wledaudio.build_flags} | ||
${usermod_hub75.build_flags} | ||
lib_deps = | ||
${starmod.lib_deps} | ||
${appmod_leds.lib_deps} | ||
${usermod_e131.lib_deps} | ||
; ${usermod_ha.lib_deps} | ||
${usermod_wledaudio.lib_deps} | ||
${usermod_hub75.lib_deps} | ||
; RAM: [== ] 15.6% (used 51124 bytes from 327680 bytes) | ||
; Flash: [======= ] 68.1% (used 892033 bytes from 1310720 bytes) | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
/* | ||
@title StarMod | ||
@file UserModHub75.h | ||
@date 20231016 | ||
@repo https://github.com/ewowi/StarMod | ||
@Authors https://github.com/ewowi/StarMod/commits/main | ||
@Copyright (c) 2023 Github StarMod Commit Authors | ||
@license GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 | ||
*/ | ||
|
||
#include <MatrixHardware_ESP32_V0.h> | ||
#include <SmartMatrix.h> | ||
|
||
#define COLOR_DEPTH 24 // Choose the color depth used for storing pixels in the layers: 24 or 48 (24 is good for most sketches - If the sketch uses type `rgb24` directly, COLOR_DEPTH must be 24) | ||
const uint16_t kMatrixWidth = 32; // Set to the width of your display, must be a multiple of 8 | ||
const uint16_t kMatrixHeight = 32; // Set to the height of your display | ||
const uint8_t kRefreshDepth = 36; // Tradeoff of color quality vs refresh rate, max brightness, and RAM usage. 36 is typically good, drop down to 24 if you need to. On Teensy, multiples of 3, up to 48: 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48. On ESP32: 24, 36, 48 | ||
const uint8_t kDmaBufferRows = 4; // known working: 2-4, use 2 to save RAM, more to keep from dropping frames and automatically lowering refresh rate. (This isn't used on ESP32, leave as default) | ||
const uint8_t kPanelType = SM_PANELTYPE_HUB75_32ROW_MOD16SCAN; // Choose the configuration that matches your panels. See more details in MatrixCommonHub75.h and the docs: https://github.com/pixelmatix/SmartMatrix/wiki | ||
const uint32_t kMatrixOptions = (SM_HUB75_OPTIONS_NONE); // see docs for options: https://github.com/pixelmatix/SmartMatrix/wiki | ||
const uint8_t kBackgroundLayerOptions = (SM_BACKGROUND_OPTIONS_NONE); | ||
const uint8_t kScrollingLayerOptions = (SM_SCROLLING_OPTIONS_NONE); | ||
const uint8_t kIndexedLayerOptions = (SM_INDEXED_OPTIONS_NONE); | ||
|
||
SMARTMATRIX_ALLOCATE_BUFFERS(smartMatrix, kMatrixWidth, kMatrixHeight, kRefreshDepth, kDmaBufferRows, kPanelType, kMatrixOptions); | ||
|
||
SMARTMATRIX_ALLOCATE_BACKGROUND_LAYER(backgroundLayer, kMatrixWidth, kMatrixHeight, COLOR_DEPTH, kBackgroundLayerOptions); | ||
|
||
class UserModHub75:public Module { | ||
|
||
public: | ||
|
||
UserModHub75() :Module("HUB75") { | ||
USER_PRINT_FUNCTION("%s %s\n", __PRETTY_FUNCTION__, name); | ||
|
||
isEnabled = false; //default off | ||
|
||
USER_PRINT_FUNCTION("%s %s %s\n", __PRETTY_FUNCTION__, name, success?"success":"failed"); | ||
}; | ||
|
||
//setup filesystem | ||
void setup() { | ||
Module::setup(); | ||
USER_PRINT_FUNCTION("%s %s\n", __PRETTY_FUNCTION__, name); | ||
|
||
parentVar = ui->initModule(parentVar, name); | ||
|
||
smartMatrix.addLayer(&backgroundLayer); | ||
smartMatrix.setBrightness(125); | ||
smartMatrix.begin(); | ||
|
||
buffer = backgroundLayer.backBuffer(); | ||
|
||
USER_PRINT_FUNCTION("%s %s %s\n", __PRETTY_FUNCTION__, name, success?"success":"failed"); | ||
} | ||
|
||
void loop() { | ||
// Module::loop(); | ||
|
||
if(!SysModModules::isConnected) return; | ||
|
||
if(!lds->newFrame) return; | ||
|
||
int bri = mdl->getValue("bri"); | ||
|
||
for (size_t i = 0; i < ledsV.nrOfLedsP; i++) { | ||
CRGB pixel = ledsP[i]; | ||
buffer[i] = rgb24(scale8(pixel.r, bri), scale8(pixel.g, bri), scale8(pixel.b, bri)); | ||
} | ||
|
||
backgroundLayer.swapBuffers(true); | ||
} | ||
|
||
private: | ||
rgb24* buffer; | ||
|
||
}; | ||
|
||
static UserModHub75 *hub75Mod; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters