diff --git a/Controllers/DDPController/DDPController.cpp b/Controllers/DDPController/DDPController.cpp index 9db04caa7..430e61f67 100644 --- a/Controllers/DDPController/DDPController.cpp +++ b/Controllers/DDPController/DDPController.cpp @@ -226,7 +226,7 @@ bool DDPController::SendDDPPacket(const DDPDevice& device, const unsigned char* // CRITICAL FIX: Use 0x41 instead of 0x40 - WLED requires the Push bit to be set header->flags = DDP_FLAG_VER_1 | DDP_FLAG_PUSH; header->sequence = sequence_number & 0x0F; // Only use 4-bit nibble (0-15) per DDP spec - header->data_type = DDP_TYPE_RGB8; // RGB 8-bit per DDP spec + header->data_type = 1; // RGB data type (keeping simple value for compatibility) header->dest_id = 1; // Default output device header->data_offset = htonl(offset); header->data_length = htons(length); diff --git a/Controllers/DDPController/DDPController.h b/Controllers/DDPController/DDPController.h index 1518d2a10..a0bb5e931 100644 --- a/Controllers/DDPController/DDPController.h +++ b/Controllers/DDPController/DDPController.h @@ -35,7 +35,9 @@ // DDP Data Type definitions (bits: C R TTT SSS) // C: 0=standard, 1=custom; R: reserved; TTT: data type; SSS: size -#define DDP_TYPE_RGB8 0x0B // TTT=001 (RGB), SSS=011 (8-bit) +// For maximum compatibility, we use simple value 1 instead of proper encoding +#define DDP_TYPE_RGB8 0x0B // TTT=001 (RGB), SSS=011 (8-bit) - spec compliant +#define DDP_TYPE_RGB_SIMPLE 1 // Simple RGB value for compatibility #pragma pack(push, 1) struct ddp_header