Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
9b10436
Changes to provide proper config settings to rmt engine
MartinMueller2003 Jun 6, 2026
afc9790
Turned off debug counters
MartinMueller2003 Jun 6, 2026
2fabbaa
Added missing config value
MartinMueller2003 Jun 6, 2026
ae5172d
Removed function definitions that are not used in idf v5.x
MartinMueller2003 Jun 6, 2026
71b5e9f
Removed magic number
MartinMueller2003 Jun 6, 2026
3edc71b
Removed unneeded forward declaration.
MartinMueller2003 Jun 7, 2026
682b9f3
Removed unused variables
MartinMueller2003 Jun 13, 2026
905f87f
Added debug info.
MartinMueller2003 Jun 15, 2026
06ee98b
Fixed issue that could cause data buffer corruption on S3 RMT output …
MartinMueller2003 Jun 20, 2026
93bd33a
Restore buffer size to prevent output class size jump.
MartinMueller2003 Jun 20, 2026
6ce5918
Automated determining the class buffer size to preallocate.
MartinMueller2003 Jun 21, 2026
e2bf033
Updated the Serial class size calculation and the Grinch Class.
MartinMueller2003 Jun 21, 2026
950bf37
Updated a comment.
MartinMueller2003 Jun 23, 2026
0202320
Updated a comment.
MartinMueller2003 Jun 23, 2026
ce22896
Added platforms for tetra and octa 2go
MartinMueller2003 Jun 23, 2026
89a81ce
Cleaned up issue with building 8266 and measuring class size
MartinMueller2003 Jun 24, 2026
1cff6ae
Added Solo2Go Ethernet support
MartinMueller2003 Jun 24, 2026
65e18db
Fixed defaults for the user console GPIOs
MartinMueller2003 Jun 29, 2026
a8baf73
Forced Writing to rmt buffer to be inlined.
MartinMueller2003 Jul 1, 2026
255736f
Refactored to remove magic numbers and questionable calculations to d…
MartinMueller2003 Jul 3, 2026
491e7b1
Refactored RMT Debug counter support in preparation for supporting S3
MartinMueller2003 Jul 10, 2026
ce4bfda
Fixed missing options flags on some platforms
MartinMueller2003 Jul 17, 2026
6cd93ef
Added missing definition for RMT debug increment when debug is turned…
MartinMueller2003 Jul 18, 2026
632ed12
Updated IDF version output
MartinMueller2003 Jul 18, 2026
afb98e7
Updated RMT debug counter macros.
MartinMueller2003 Jul 18, 2026
12cb21a
Another debug counter fix
MartinMueller2003 Jul 18, 2026
b60801c
Fixed incorrect I2C pin definition.
MartinMueller2003 Jul 18, 2026
6963624
Updated asyncTCP to allow the newer version to be brough in. Fixes a …
MartinMueller2003 Jul 21, 2026
e5b1023
Changed how the channel buffer is allocated.
MartinMueller2003 Jul 21, 2026
77f426d
Fixed compile error when debug counters are not used
MartinMueller2003 Jul 21, 2026
c25bb14
Removed misleading comment
MartinMueller2003 Jul 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,11 +107,20 @@ jobs:
- target: "esp32_tetra2go"
chip: "esp32"
#
- target: "esp32_tetra2go_eth"
chip: "esp32"
#
- target: "esp32_octa2go"
chip: "esp32"
#
- target: "esp32_octa2go_eth"
chip: "esp32"
#
- target: "esp32_solo2go"
chip: "esp32"
#
- target: "esp32_solo2go_eth"
chip: "esp32"
# KR Lights
- target: "esp32_kr_lights_msm"
chip: "esp32"
Expand Down
123 changes: 114 additions & 9 deletions dist/firmware/firmware.json
Original file line number Diff line number Diff line change
Expand Up @@ -1144,6 +1144,41 @@
"offset": "0x3B0000"
}
},
{
"name": "ESP32 Tetra2go ETH",
"description": "D1 ESP32 based quad controller",
"chip": "esp32",
"appbin": "esp32/esp32_tetra2go_eth-app.bin",
"esptool": {
"baudrate": "460800",
"options": "--before default_reset --after hard_reset",
"flashcmd": "write_flash -z"
},
"binfiles": [
{
"name": "esp32/esp32_tetra2go_eth-bootloader.bin",
"offset": "0x01000"
},
{
"name": "esp32/esp32_tetra2go_eth-partitions.bin",
"offset": "0x08000"
},
{
"name": "esp32/boot_app0.bin",
"offset": "0x0e000"
},
{
"name": "esp32/esp32_tetra2go_eth-app.bin",
"offset": "0x10000"
}
],
"filesystem": {
"page": "256",
"block": "4096",
"size": "0x50000",
"offset": "0x3B0000"
}
},
{
"name": "ESP32 Octa2go",
"description": "D1 ESP32 based quad controller",
Expand Down Expand Up @@ -1180,9 +1215,44 @@
}
},
{
"name": "ESP32 Solo2go",
"name": "ESP32 Octa2go ETH",
"description": "D1 ESP32 based quad controller",
"chip": "esp32",
"appbin": "esp32/esp32_octa2go_eth-app.bin",
"esptool": {
"baudrate": "460800",
"options": "--before default_reset --after hard_reset",
"flashcmd": "write_flash -z"
},
"binfiles": [
{
"name": "esp32/esp32_octa2go_eth-bootloader.bin",
"offset": "0x01000"
},
{
"name": "esp32/esp32_octa2go_eth-partitions.bin",
"offset": "0x08000"
},
{
"name": "esp32/boot_app0.bin",
"offset": "0x0e000"
},
{
"name": "esp32/esp32_octa2go_eth-app.bin",
"offset": "0x10000"
}
],
"filesystem": {
"page": "256",
"block": "4096",
"size": "0x50000",
"offset": "0x3B0000"
}
},
{
"name": "ESP32 Solo2go",
"description": "D1 ESP32 based single port controller",
"chip": "esp32",
"appbin": "esp32/esp32_solo2go-app.bin",
"esptool": {
"baudrate": "460800",
Expand Down Expand Up @@ -1214,14 +1284,49 @@
"offset": "0x3B0000"
}
},
{
"name": "ESP32 Solo2go ETH",
"description": "D1 ESP32 based Single Port controller",
"chip": "esp32",
"appbin": "esp32/esp32_solo2go_eth-app.bin",
"esptool": {
"baudrate": "460800",
"options": "--before default_reset --after hard_reset",
"flashcmd": "write_flash -z"
},
"binfiles": [
{
"name": "esp32/esp32_solo2go_eth-bootloader.bin",
"offset": "0x01000"
},
{
"name": "esp32/esp32_solo2go_eth-partitions.bin",
"offset": "0x08000"
},
{
"name": "esp32/boot_app0.bin",
"offset": "0x0e000"
},
{
"name": "esp32/esp32_solo2go_eth-app.bin",
"offset": "0x10000"
}
],
"filesystem": {
"page": "256",
"block": "4096",
"size": "0x50000",
"offset": "0x3B0000"
}
},
{
"name": "ESP32 KR Lights MSM",
"description": "ESP32 based 5 port controller",
"chip": "esp32",
"appbin": "esp32/esp32_kr_lights_msm-app.bin",
"esptool": {
"baudrate": "460800",
"options": "",
"options": "--before default_reset --after hard_reset",
"flashcmd": "write_flash -z"
},
"binfiles": [
Expand Down Expand Up @@ -1256,7 +1361,7 @@
"appbin": "esp32/esp32_ka-app.bin",
"esptool": {
"baudrate": "460800",
"options": "",
"options": "--before default_reset --after hard_reset",
"flashcmd": "write_flash -z"
},
"binfiles": [
Expand Down Expand Up @@ -1291,7 +1396,7 @@
"appbin": "esp32/esp32_ka_4-app.bin",
"esptool": {
"baudrate": "460800",
"options": "",
"options": "--before default_reset --after hard_reset",
"flashcmd": "write_flash -z"
},
"binfiles": [
Expand Down Expand Up @@ -1326,7 +1431,7 @@
"appbin": "esp32/esp32_breakdancev2-app.bin",
"esptool": {
"baudrate": "460800",
"options": "",
"options": "--before default_reset --after hard_reset",
"flashcmd": "write_flash -z"
},
"binfiles": [
Expand Down Expand Up @@ -1361,7 +1466,7 @@
"appbin": "esp32/esp32_relayboardx8-app.bin",
"esptool": {
"baudrate": "460800",
"options": "",
"options": "--before default_reset --after hard_reset",
"flashcmd": "write_flash -z"
},
"binfiles": [
Expand Down Expand Up @@ -1396,7 +1501,7 @@
"appbin": "esp32s3/esp32s3_devkitc-app.bin",
"esptool": {
"baudrate": "460800",
"options": "",
"options": "--before default_reset --after hard_reset",
"flashcmd": "write_flash -z"
},
"binfiles": [
Expand Down Expand Up @@ -1431,7 +1536,7 @@
"appbin": "esp32s3/esp32s3_devkitc_Internal_SD-app.bin",
"esptool": {
"baudrate": "460800",
"options": "",
"options": "--before default_reset --after hard_reset",
"flashcmd": "write_flash -z"
},
"binfiles": [
Expand Down Expand Up @@ -1501,7 +1606,7 @@
"appbin": "esp32/esp32_devkitv_eth-app.bin",
"esptool": {
"baudrate": "460800",
"options": "",
"options": "--before default_reset --after hard_reset",
"flashcmd": "write_flash -z"
},
"binfiles": [
Expand Down
6 changes: 6 additions & 0 deletions include/GPIO_Defs.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -106,10 +106,16 @@
# include "platforms/GPIO_Defs_ESP32_ESP3DEUXQuattro_DMX.hpp"
#elif defined (BOARD_ESP32_OCTA2GO)
# include "platforms/GPIO_Defs_ESP32_Octa2go.hpp"
#elif defined (BOARD_ESP32_OCTA2GO_ETH)
# include "platforms/GPIO_Defs_ESP32_Octa2go_ETH.hpp"
#elif defined (BOARD_ESP32_TETRA2GO)
# include "platforms/GPIO_Defs_ESP32_Tetra2go.hpp"
#elif defined (BOARD_ESP32_TETRA2GO_ETH)
# include "platforms/GPIO_Defs_ESP32_Tetra2go_ETH.hpp"
#elif defined (BOARD_ESP32_SOLO2GO)
# include "platforms/GPIO_Defs_ESP32_Solo2go.hpp"
#elif defined (BOARD_ESP32_SOLO2GO_ETH)
# include "platforms/GPIO_Defs_ESP32_Solo2go_ETH.hpp"
#elif defined (BOARD_ESP32_KR_LIGHTS_MSM)
# include "platforms/GPIO_Defs_ESP32_kr_lights_msm.hpp"
#elif defined (BOARD_ESP32_BREAKDANCEV2)
Expand Down
28 changes: 3 additions & 25 deletions include/output/OutputMgr.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ class c_OutputMgr
void SetConfig (const char * NewConfig); ///< Save the current configuration data to nvram
void SetConfig (ArduinoJson::JsonDocument & NewConfig); ///< Save the current configuration data to nvram
void GetStatus (JsonObject & jsonStatus);
// void GetPortCounts (uint16_t& PixelCount, uint16_t& SerialCount) {PixelCount = uint16_t(OutputPortId_End); SerialCount = uint16_t(NUM_UARTS); }
uint8_t* GetBufferAddress () { return pOutputBuffer; } ///< Get the address of the buffer into which the E1.31 handler will stuff data
uint32_t GetBufferUsedSize () { return UsedBufferSize; } ///< Get the size (in intensities) of the buffer into which the E1.31 handler will stuff data
uint32_t GetBufferSize () { return uint32_t(OM_MAX_NUM_CHANNELS); } ///< Get the size (in intensities) of the buffer into which the E1.31 handler will stuff data
Expand Down Expand Up @@ -149,31 +148,10 @@ class c_OutputMgr
};
uint32_t NumberOfOutputProtocols = uint32_t(0);

// must be 16 byte aligned. Determined by upshifting the max size of all drivers
// #define OutputDriverMemorySize 1200
#define OutputDriverMemorySize 1400
uint32_t GetDriverSize() {return OutputDriverMemorySize;}
private:
struct alignas(16) DriverInfo_t
{
byte OutputDriver[OutputDriverMemorySize];
uint32_t OutputBufferStartingOffset = 0;
uint32_t OutputBufferDataSize = 0;
uint32_t OutputBufferEndOffset = 0;

uint32_t OutputChannelStartingOffset = 0;
uint32_t OutputChannelSize = 0;
uint32_t OutputChannelEndOffset = 0;

OM_OutputPortDefinition_t PortDefinition;
uint8_t DriverId = -1;
bool OutputDriverInUse = false;
};

// pointer(s) to the current active output drivers
DriverInfo_t *pOutputChannelDrivers = nullptr;
uint8_t NumOutputPorts = 0;
uint32_t SizeOfTable = 0;
uint8_t NumOutputPorts;

// configuration parameter names for the channel manager within the config file
#define NO_CONFIG_NEEDED time_t(-1)
Expand All @@ -186,11 +164,11 @@ class c_OutputMgr
bool ProcessJsonConfig (JsonDocument & jsonConfig);
void CreateJsonConfig (JsonObject & jsonConfig);
void UpdateDisplayBufferReferences (void);
void InstantiateNewOutputChannel(DriverInfo_t &ChannelIndex, e_OutputProtocolType NewChannelType, bool StartDriver = true);
void InstantiateNewOutputChannel(uint32_t PortIndex, e_OutputProtocolType NewChannelType, bool StartDriver = true);
void CreateNewConfig();
void SetSerialUart();
bool FindJsonChannelConfig (JsonDocument& jsonConfig, OM_PortId_t PortId, JsonObject& ChanConfig);
bool SetPortDefnitionDefaults(DriverInfo_t & CurrentOutput, e_OutputProtocolType TargetProtocolType);
bool SetPortDefnitionDefaults(uint32_t PortIndex, e_OutputProtocolType TargetProtocolType);

String ConfigFileName;

Expand Down
Loading
Loading