From ebe75dcaba0239d225243cdedd31aaf860abbd0a Mon Sep 17 00:00:00 2001 From: mrfaptastic <12006953+mrfaptastic@users.noreply.github.com> Date: Fri, 30 Sep 2022 03:17:19 +0100 Subject: [PATCH 01/13] Update to include S3 support. Refactor tonnes of code. Double buffering not yet fully tested. PSRAM support doesn't work at all - garbled mess. Enable in platformIO using: build_flags = -DSPIRAM_FRAMEBUFFER=1 --- .../ESP32-HUB75-MatrixPanel-I2S-DMA.cpp | 369 ++++------- .../ESP32-HUB75-MatrixPanel-I2S-DMA.h | 151 ++--- .../ESP32-HUB75-MatrixPanel-leddrivers.cpp | 0 .../ESP32-VirtualMatrixPanel-I2S-DMA.h | 0 .../esp32_i2s_parallel_mcu_def.h.txt | 0 src/platforms/esp32/esp32-default-pins.hpp | 18 + .../esp32/esp32_i2s_parallel_dma.c.txt | 0 .../esp32/esp32_i2s_parallel_dma.cpp | 571 ++++++++++++++++++ .../esp32/esp32_i2s_parallel_dma.h.txt | 0 .../esp32/esp32_i2s_parallel_dma.hpp | 138 +++++ .../esp32s2/esp32s2-default-pins.hpp | 16 + .../esp32s3/ESP32-S3-DevKitC-1-pin-layout.png | Bin 0 -> 497667 bytes src/platforms/esp32s3/Readme.md | 16 + .../esp32s3/ReservedPinsForPSRAM.PNG | Bin 0 -> 94554 bytes .../esp32s3/esp32s3-default-pins.hpp | 18 + src/platforms/esp32s3/gdma_lcd_parallel16.cpp | 356 +++++++++++ src/platforms/esp32s3/gdma_lcd_parallel16.hpp | 176 ++++++ src/platforms/platform_detect.hpp | 57 ++ 18 files changed, 1559 insertions(+), 327 deletions(-) rename ESP32-HUB75-MatrixPanel-I2S-DMA.cpp => src/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp (67%) rename ESP32-HUB75-MatrixPanel-I2S-DMA.h => src/ESP32-HUB75-MatrixPanel-I2S-DMA.h (85%) rename ESP32-HUB75-MatrixPanel-leddrivers.cpp => src/ESP32-HUB75-MatrixPanel-leddrivers.cpp (100%) rename ESP32-VirtualMatrixPanel-I2S-DMA.h => src/ESP32-VirtualMatrixPanel-I2S-DMA.h (100%) rename esp32_i2s_parallel_mcu_def.h => src/esp32_i2s_parallel_mcu_def.h.txt (100%) create mode 100644 src/platforms/esp32/esp32-default-pins.hpp rename esp32_i2s_parallel_dma.c => src/platforms/esp32/esp32_i2s_parallel_dma.c.txt (100%) create mode 100644 src/platforms/esp32/esp32_i2s_parallel_dma.cpp rename esp32_i2s_parallel_dma.h => src/platforms/esp32/esp32_i2s_parallel_dma.h.txt (100%) create mode 100644 src/platforms/esp32/esp32_i2s_parallel_dma.hpp create mode 100644 src/platforms/esp32s2/esp32s2-default-pins.hpp create mode 100644 src/platforms/esp32s3/ESP32-S3-DevKitC-1-pin-layout.png create mode 100644 src/platforms/esp32s3/Readme.md create mode 100644 src/platforms/esp32s3/ReservedPinsForPSRAM.PNG create mode 100644 src/platforms/esp32s3/esp32s3-default-pins.hpp create mode 100644 src/platforms/esp32s3/gdma_lcd_parallel16.cpp create mode 100644 src/platforms/esp32s3/gdma_lcd_parallel16.hpp create mode 100644 src/platforms/platform_detect.hpp diff --git a/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp b/src/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp similarity index 67% rename from ESP32-HUB75-MatrixPanel-I2S-DMA.cpp rename to src/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp index 60df498..6d8e521 100644 --- a/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp +++ b/src/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp @@ -1,190 +1,40 @@ -#include #include "ESP32-HUB75-MatrixPanel-I2S-DMA.h" - -#if defined(ESP32_SXXX) - #pragma message "Compiling for ESP32-Sx MCUs" -#elif defined(ESP32_CXXX) - #pragma message "Compiling for ESP32-Cx MCUs" -#elif CONFIG_IDF_TARGET_ESP32 || defined(ESP32) - #pragma message "Compiling for original (released 2016) 520kB SRAM ESP32." -#else - #error "Compiling for something unknown!" -#endif - - -// Credits: Louis Beaudoin -// and Sprite_TM: https://www.esp32.com/viewtopic.php?f=17&t=3188 and https://www.esp32.com/viewtopic.php?f=13&t=3256 - -/* - - This is example code to driver a p3(2121)64*32 -style RGB LED display. These types of displays do not have memory and need to be refreshed - continuously. The display has 2 RGB inputs, 4 inputs to select the active line, a pixel clock input, a latch enable input and an output-enable - input. The display can be seen as 2 64x16 displays consisting of the upper half and the lower half of the display. Each half has a separate - RGB pixel input, the rest of the inputs are shared. - - Each display half can only show one line of RGB pixels at a time: to do this, the RGB data for the line is input by setting the RGB input pins - to the desired value for the first pixel, giving the display a clock pulse, setting the RGB input pins to the desired value for the second pixel, - giving a clock pulse, etc. Do this 64 times to clock in an entire row. The pixels will not be displayed yet: until the latch input is made high, - the display will still send out the previously clocked in line. Pulsing the latch input high will replace the displayed data with the data just - clocked in. - - The 4 line select inputs select where the currently active line is displayed: when provided with a binary number (0-15), the latched pixel data - will immediately appear on this line. Note: While clocking in data for a line, the *previous* line is still displayed, and these lines should - be set to the value to reflect the position the *previous* line is supposed to be on. - - Finally, the screen has an OE input, which is used to disable the LEDs when latching new data and changing the state of the line select inputs: - doing so hides any artefacts that appear at this time. The OE line is also used to dim the display by only turning it on for a limited time every - line. - - All in all, an image can be displayed by 'scanning' the display, say, 100 times per second. The slowness of the human eye hides the fact that - only one line is showed at a time, and the display looks like every pixel is driven at the same time. - - Now, the RGB inputs for these types of displays are digital, meaning each red, green and blue subpixel can only be on or off. This leads to a - color palette of 8 pixels, not enough to display nice pictures. To get around this, we use binary code modulation. - - Binary code modulation is somewhat like PWM, but easier to implement in our case. First, we define the time we would refresh the display without - binary code modulation as the 'frame time'. For, say, a four-bit binary code modulation, the frame time is divided into 15 ticks of equal length. - - We also define 4 subframes (0 to 3), defining which LEDs are on and which LEDs are off during that subframe. (Subframes are the same as a - normal frame in non-binary-coded-modulation mode, but are showed faster.) From our (non-monochrome) input image, we take the (8-bit: bit 7 - to bit 0) RGB pixel values. If the pixel values have bit 7 set, we turn the corresponding LED on in subframe 3. If they have bit 6 set, - we turn on the corresponding LED in subframe 2, if bit 5 is set subframe 1, if bit 4 is set in subframe 0. - - Now, in order to (on average within a frame) turn a LED on for the time specified in the pixel value in the input data, we need to weigh the - subframes. We have 15 pixels: if we show subframe 3 for 8 of them, subframe 2 for 4 of them, subframe 1 for 2 of them and subframe 1 for 1 of - them, this 'automatically' happens. (We also distribute the subframes evenly over the ticks, which reduces flicker.) - - In this code, we use the I2S peripheral in parallel mode to achieve this. Essentially, first we allocate memory for all subframes. This memory - contains a sequence of all the signals (2xRGB, line select, latch enable, output enable) that need to be sent to the display for that subframe. - Then we ask the I2S-parallel driver to set up a DMA chain so the subframes are sent out in a sequence that satisfies the requirement that - subframe x has to be sent out for (2^x) ticks. Finally, we fill the subframes with image data. - - We use a front buffer/back buffer technique here to make sure the display is refreshed in one go and drawing artefacts do not reach the display. - In practice, for small displays this is not really necessarily. - -*/ - - -// macro's to calculate sizes of a single buffer (double buffer takes twice as this) -#define rowBitStructBuffSize sizeof(ESP32_I2S_DMA_STORAGE_TYPE) * (PIXELS_PER_ROW + CLKS_DURING_LATCH) * PIXEL_COLOR_DEPTH_BITS -#define frameStructBuffSize ROWS_PER_FRAME * rowBitStructBuffSize +static const char* TAG = "MatrixPanel"; /* this replicates same function in rowBitStruct, but due to induced inlining it might be MUCH faster when used in tight loops * while method from struct could be flushed out of instruction cache between loop cycles * do NOT forget about buff_id param if using this + * + * faptastic note oct22: struct call is not inlined... commenting out this additional compile declaration */ -#define getRowDataPtr(row, _dpth, buff_id) &(dma_buff.rowBits[row]->data[_dpth * dma_buff.rowBits[row]->width + buff_id*(dma_buff.rowBits[row]->width * dma_buff.rowBits[row]->color_depth)]) +//#define getRowDataPtr(row, _dpth, buff_id) &(dma_buff.rowBits[row]->data[_dpth * dma_buff.rowBits[row]->width + buff_id*(dma_buff.rowBits[row]->width * dma_buff.rowBits[row]->color_depth)]) bool MatrixPanel_I2S_DMA::allocateDMAmemory() { - - /*** - * Step 1: Look at the overall DMA capable memory for the DMA FRAMEBUFFER data only (not the DMA linked list descriptors yet) - * and do some pre-checks. - */ - - int _num_frame_buffers = (m_cfg.double_buff) ? 2:1; - size_t _frame_buffer_memory_required = frameStructBuffSize * _num_frame_buffers; - size_t _dma_linked_list_memory_required = 0; - size_t _total_dma_capable_memory_reserved = 0; - // 1. Calculate the amount of DMA capable memory that's actually available - #if SERIAL_DEBUG - Serial.printf_P(PSTR("Panel Width: %d pixels.\r\n"), PIXELS_PER_ROW); - Serial.printf_P(PSTR("Panel Height: %d pixels.\r\n"), m_cfg.mx_height); - - if (m_cfg.double_buff) { - Serial.println(F("DOUBLE FRAME BUFFERS / DOUBLE BUFFERING IS ENABLED. DOUBLE THE RAM REQUIRED!")); - } - - Serial.println(F("DMA memory blocks available before any malloc's: ")); - heap_caps_print_heap_info(MALLOC_CAP_DMA); - Serial.println(F("******************************************************************")); - Serial.printf_P(PSTR("We're going to need %d bytes of SRAM just for the frame buffer(s).\r\n"), _frame_buffer_memory_required); - Serial.printf_P(PSTR("The total amount of DMA capable SRAM memory is %d bytes.\r\n"), heap_caps_get_free_size(MALLOC_CAP_DMA)); - Serial.printf_P(PSTR("Largest DMA capable SRAM memory block is %d bytes.\r\n"), heap_caps_get_largest_free_block(MALLOC_CAP_DMA)); - Serial.println(F("******************************************************************")); - - #endif - - // Can we potentially fit the framebuffer into the DMA capable memory that's available? - if ( heap_caps_get_free_size(MALLOC_CAP_DMA) < _frame_buffer_memory_required ) { - - #if SERIAL_DEBUG - Serial.printf_P(PSTR("######### Insufficient memory for requested resolution. Reduce MATRIX_COLOR_DEPTH and try again.\r\n\tAdditional %d bytes of memory required.\r\n\r\n"), (_frame_buffer_memory_required-heap_caps_get_free_size(MALLOC_CAP_DMA)) ); - #endif - - return false; - } - - // Alright, theoretically we should be OK, so let us do this, so - // lets allocate a chunk of memory for each row (a row could span multiple panels if chaining is in place) + // Alright, theoretically we should be OK, so let us do this, so + // lets allocate a chunk of memory for each row (a row could span multiple panels if chaining is in place) dma_buff.rowBits.reserve(ROWS_PER_FRAME); // iterate through number of rows for (int malloc_num =0; malloc_num < ROWS_PER_FRAME; ++malloc_num) { - auto ptr = std::make_shared(PIXELS_PER_ROW, PIXEL_COLOR_DEPTH_BITS, m_cfg.double_buff); + auto ptr = std::make_shared(PIXELS_PER_ROW, PIXEL_COLOR_DEPTH_BITS, m_cfg.double_buff); - if (ptr->data == nullptr){ - #if SERIAL_DEBUG - Serial.printf_P(PSTR("ERROR: Couldn't malloc rowBitStruct %d! Critical fail.\r\n"), malloc_num); - #endif - return false; - // TODO: should we release all previous rowBitStructs here??? - } - - dma_buff.rowBits.emplace_back(ptr); // save new rowBitStruct into rows vector - ++dma_buff.rows; - #if SERIAL_DEBUG - Serial.printf_P(PSTR("Malloc'ing %d bytes of memory @ address %ud for frame row %d.\r\n"), ptr->size()*_num_frame_buffers, (unsigned int)ptr->getDataPtr(), malloc_num); - #endif - - } - - _total_dma_capable_memory_reserved += _frame_buffer_memory_required; - - - /*** - * Step 2: Calculate the amount of memory required for the DMA engine's linked list descriptors. - * Credit to SmartMatrix for this stuff. - */ - - - // Calculate what colour depth is actually possible based on memory available vs. required DMA linked-list descriptors. - // aka. Calculate the lowest LSBMSB_TRANSITION_BIT value that will fit in memory - int numDMAdescriptorsPerRow = 0; - lsbMsbTransitionBit = 0; - - - while(1) { - numDMAdescriptorsPerRow = 1; - for(int i=lsbMsbTransitionBit + 1; idata == nullptr) + { + #if SERIAL_DEBUG + Serial.printf_P(PSTR("ERROR: Couldn't malloc rowBitStruct %d! Critical fail.\r\n"), malloc_num); + #endif + return false; + // TODO: should we release all previous rowBitStructs here??? } - size_t ramrequired = numDMAdescriptorsPerRow * ROWS_PER_FRAME * _num_frame_buffers * sizeof(lldesc_t); - size_t largestblockfree = heap_caps_get_largest_free_block(MALLOC_CAP_DMA); - #if SERIAL_DEBUG - Serial.printf_P(PSTR("lsbMsbTransitionBit of %d with %d DMA descriptors per frame row, requires %d bytes RAM, %d available, leaving %d free: \r\n"), lsbMsbTransitionBit, numDMAdescriptorsPerRow, ramrequired, largestblockfree, largestblockfree - ramrequired); - #endif - - if(ramrequired < largestblockfree) - break; - - if(lsbMsbTransitionBit < PIXEL_COLOR_DEPTH_BITS - 1) - lsbMsbTransitionBit++; - else - break; + dma_buff.rowBits.emplace_back(ptr); // save new rowBitStruct into rows vector + ++dma_buff.rows; } - - #if SERIAL_DEBUG - Serial.printf_P(PSTR("Raised lsbMsbTransitionBit to %d/%d to fit in remaining RAM\r\n"), lsbMsbTransitionBit, PIXEL_COLOR_DEPTH_BITS - 1); - #endif - - - #ifndef IGNORE_REFRESH_RATE + // calculate the lowest LSBMSB_TRANSITION_BIT value that will fit in memory that will meet or exceed the configured refresh rate while(1) { int psPerClock = 1000000000000UL/m_cfg.i2sspeed; @@ -214,17 +64,13 @@ bool MatrixPanel_I2S_DMA::allocateDMAmemory() break; } - #if SERIAL_DEBUG - Serial.printf_P(PSTR("Raised lsbMsbTransitionBit to %d/%d to meet minimum refresh rate\r\n"), lsbMsbTransitionBit, PIXEL_COLOR_DEPTH_BITS - 1); - #endif - - #endif + /*** * Step 2a: lsbMsbTransition bit is now finalised - recalculate the DMA descriptor count required, which is used for * memory allocation of the DMA linked list memory structure. */ - numDMAdescriptorsPerRow = 1; + int numDMAdescriptorsPerRow = 1; for(int i=lsbMsbTransitionBit + 1; i DMA_MAX ) { + if ( dma_buff.rowBits[0]->size() > DMA_MAX ) { #if SERIAL_DEBUG Serial.printf_P(PSTR("rowColorDepthStruct struct is too large, split DMA payload required. Adding %d DMA descriptors\n"), PIXEL_COLOR_DEPTH_BITS-1); @@ -249,24 +95,12 @@ bool MatrixPanel_I2S_DMA::allocateDMAmemory() * Step 3: Allocate memory for DMA linked list, linking up each framebuffer row in sequence for GPIO output. */ - _dma_linked_list_memory_required = numDMAdescriptorsPerRow * ROWS_PER_FRAME * _num_frame_buffers * sizeof(lldesc_t); - #if SERIAL_DEBUG - Serial.printf_P(PSTR("Descriptors for lsbMsbTransitionBit of %d/%d with %d frame rows require %d bytes of DMA RAM with %d numDMAdescriptorsPerRow.\r\n"), lsbMsbTransitionBit, PIXEL_COLOR_DEPTH_BITS - 1, ROWS_PER_FRAME, _dma_linked_list_memory_required, numDMAdescriptorsPerRow); - #endif - - _total_dma_capable_memory_reserved += _dma_linked_list_memory_required; - - // Do a final check to see if we have enough space for the additional DMA linked list descriptors that will be required to link it all up! - if(_dma_linked_list_memory_required > heap_caps_get_largest_free_block(MALLOC_CAP_DMA)) { -#if SERIAL_DEBUG - Serial.println(F("ERROR: Not enough SRAM left over for DMA linked-list descriptor memory reservation! Oh so close!\r\n")); -#endif - return false; - } // linked list descriptors memory check - // malloc the DMA linked list descriptors that i2s_parallel will need desccount = numDMAdescriptorsPerRow * ROWS_PER_FRAME; + dma_bus.allocate_dma_desc_memory(desccount); + +/* //lldesc_t * dmadesc_a = (lldesc_t *)heap_caps_malloc(desccount * sizeof(lldesc_t), MALLOC_CAP_DMA); dmadesc_a = (lldesc_t *)heap_caps_malloc(desccount * sizeof(lldesc_t), MALLOC_CAP_DMA); assert("Can't allocate descriptor framebuffer a"); @@ -289,15 +123,7 @@ bool MatrixPanel_I2S_DMA::allocateDMAmemory() return false; } } - -#if SERIAL_DEBUG - Serial.println(F("*** ESP32-HUB75-MatrixPanel-I2S-DMA: Memory Allocations Complete ***")); - Serial.printf_P(PSTR("Total memory that was reserved: %d kB.\r\n"), _total_dma_capable_memory_reserved/1024); - Serial.printf_P(PSTR("... of which was used for the DMA Linked List(s): %d kB.\r\n"), _dma_linked_list_memory_required/1024); - - Serial.printf_P(PSTR("Heap Memory Available: %d bytes total. Largest free block: %d bytes.\r\n"), heap_caps_get_free_size(0), heap_caps_get_largest_free_block(0)); - Serial.printf_P(PSTR("General RAM Available: %d bytes total. Largest free block: %d bytes.\r\n"), heap_caps_get_free_size(MALLOC_CAP_DEFAULT), heap_caps_get_largest_free_block(MALLOC_CAP_DEFAULT)); -#endif + */ // Just os we know initialized = true; @@ -310,57 +136,48 @@ bool MatrixPanel_I2S_DMA::allocateDMAmemory() void MatrixPanel_I2S_DMA::configureDMA(const HUB75_I2S_CFG& _cfg) { - #if SERIAL_DEBUG - Serial.println(F("configureDMA(): Starting configuration of DMA engine.\r\n")); - #endif - - lldesc_t *previous_dmadesc_a = 0; - lldesc_t *previous_dmadesc_b = 0; + // lldesc_t *previous_dmadesc_a = 0; + // lldesc_t *previous_dmadesc_b = 0; int current_dmadescriptor_offset = 0; // HACK: If we need to split the payload in 1/2 so that it doesn't breach DMA_MAX, lets do it by the color_depth. int num_dma_payload_color_depths = PIXEL_COLOR_DEPTH_BITS; - if ( rowBitStructBuffSize > DMA_MAX ) { + if ( dma_buff.rowBits[0]->size() > DMA_MAX ) { num_dma_payload_color_depths = 1; } // Fill DMA linked lists for both frames (as in, halves of the HUB75 panel) and if double buffering is enabled, link it up for both buffers. for(int row = 0; row < ROWS_PER_FRAME; row++) { - - #if SERIAL_DEBUG - Serial.printf_P(PSTR( "Row %d DMA payload of %d bytes. DMA_MAX is %d.\n"), row, dma_buff.rowBits[row]->size(), DMA_MAX); - #endif - // first set of data is LSB through MSB, single pass (IF TOTAL SIZE < DMA_MAX) - all color bits are displayed once, which takes care of everything below and including LSBMSB_TRANSITION_BIT // NOTE: size must be less than DMA_MAX - worst case for library: 16-bpp with 256 pixels per row would exceed this, need to break into two - link_dma_desc(&dmadesc_a[current_dmadescriptor_offset], previous_dmadesc_a, dma_buff.rowBits[row]->getDataPtr(), dma_buff.rowBits[row]->size(num_dma_payload_color_depths)); - previous_dmadesc_a = &dmadesc_a[current_dmadescriptor_offset]; + //link_dma_desc(&dmadesc_a[current_dmadescriptor_offset], previous_dmadesc_a, dma_buff.rowBits[row]->getDataPtr(), dma_buff.rowBits[row]->size(num_dma_payload_color_depths)); + // previous_dmadesc_a = &dmadesc_a[current_dmadescriptor_offset]; + + dma_bus.create_dma_desc_link(dma_buff.rowBits[row]->getDataPtr(), dma_buff.rowBits[row]->size(num_dma_payload_color_depths)); if (m_cfg.double_buff) { - link_dma_desc(&dmadesc_b[current_dmadescriptor_offset], previous_dmadesc_b, dma_buff.rowBits[row]->getDataPtr(0, 1), dma_buff.rowBits[row]->size(num_dma_payload_color_depths)); - previous_dmadesc_b = &dmadesc_b[current_dmadescriptor_offset]; } + dma_bus.create_dma_desc_link(dma_buff.rowBits[row]->getDataPtr(), dma_buff.rowBits[row]->size(num_dma_payload_color_depths), true); + //link_dma_desc(&dmadesc_b[current_dmadescriptor_offset], previous_dmadesc_b, dma_buff.rowBits[row]->getDataPtr(0, 1), dma_buff.rowBits[row]->size(num_dma_payload_color_depths)); + //previous_dmadesc_b = &dmadesc_b[current_dmadescriptor_offset]; + } current_dmadescriptor_offset++; // If the number of pixels per row is too great for the size of a DMA payload, so we need to split what we were going to send above. - if ( rowBitStructBuffSize > DMA_MAX ) + if ( dma_buff.rowBits[0]->size() > DMA_MAX ) { - #if SERIAL_DEBUG - Serial.printf_P(PSTR("Splitting DMA payload for %d color depths into %d byte payloads.\r\n"), PIXEL_COLOR_DEPTH_BITS-1, rowBitStructBuffSize/PIXEL_COLOR_DEPTH_BITS ); - #endif for (int cd = 1; cd < PIXEL_COLOR_DEPTH_BITS; cd++) { - // first set of data is LSB through MSB, single pass - all color bits are displayed once, which takes care of everything below and including LSBMSB_TRANSITION_BIT - // TODO: size must be less than DMA_MAX - worst case for library: 16-bpp with 256 pixels per row would exceed this, need to break into two - link_dma_desc(&dmadesc_a[current_dmadescriptor_offset], previous_dmadesc_a, dma_buff.rowBits[row]->getDataPtr(cd, 0), dma_buff.rowBits[row]->size(num_dma_payload_color_depths) ); - previous_dmadesc_a = &dmadesc_a[current_dmadescriptor_offset]; + dma_bus.create_dma_desc_link(dma_buff.rowBits[row]->getDataPtr(cd, 0), dma_buff.rowBits[row]->size(num_dma_payload_color_depths)); if (m_cfg.double_buff) { - link_dma_desc(&dmadesc_b[current_dmadescriptor_offset], previous_dmadesc_b, dma_buff.rowBits[row]->getDataPtr(cd, 1), dma_buff.rowBits[row]->size(num_dma_payload_color_depths)); - previous_dmadesc_b = &dmadesc_b[current_dmadescriptor_offset]; } + dma_bus.create_dma_desc_link(dma_buff.rowBits[row]->getDataPtr(cd, 0), dma_buff.rowBits[row]->size(num_dma_payload_color_depths),true); + //link_dma_desc(&dmadesc_b[current_dmadescriptor_offset], previous_dmadesc_b, dma_buff.rowBits[row]->getDataPtr(cd, 1), dma_buff.rowBits[row]->size(num_dma_payload_color_depths)); + //previous_dmadesc_b = &dmadesc_b[current_dmadescriptor_offset]; + } current_dmadescriptor_offset++; @@ -374,18 +191,18 @@ void MatrixPanel_I2S_DMA::configureDMA(const HUB75_I2S_CFG& _cfg) // because we sweep through to MSB each time, it divides the number of times we have to sweep in half (saving linked list RAM) // we need 2^(i - LSBMSB_TRANSITION_BIT - 1) == 1 << (i - LSBMSB_TRANSITION_BIT - 1) passes from i to MSB - #if SERIAL_DEBUG - Serial.printf_P(PSTR("configureDMA(): DMA Loops for PIXEL_COLOR_DEPTH_BITS %d is: %d.\r\n"), i, (1<<(i - lsbMsbTransitionBit - 1))); - #endif for(int k=0; k < (1<<(i - lsbMsbTransitionBit - 1)); k++) { - link_dma_desc(&dmadesc_a[current_dmadescriptor_offset], previous_dmadesc_a, dma_buff.rowBits[row]->getDataPtr(i, 0), dma_buff.rowBits[row]->size(PIXEL_COLOR_DEPTH_BITS - i) ); - previous_dmadesc_a = &dmadesc_a[current_dmadescriptor_offset]; + // link_dma_desc(&dmadesc_a[current_dmadescriptor_offset], previous_dmadesc_a, dma_buff.rowBits[row]->getDataPtr(i, 0), dma_buff.rowBits[row]->size(PIXEL_COLOR_DEPTH_BITS - i) ); +// previous_dmadesc_a = &dmadesc_a[current_dmadescriptor_offset]; + + dma_bus.create_dma_desc_link(dma_buff.rowBits[row]->getDataPtr(i, 0), dma_buff.rowBits[row]->size(PIXEL_COLOR_DEPTH_BITS - i) ); if (m_cfg.double_buff) { - link_dma_desc(&dmadesc_b[current_dmadescriptor_offset], previous_dmadesc_b, dma_buff.rowBits[row]->getDataPtr(i, 1), dma_buff.rowBits[row]->size(PIXEL_COLOR_DEPTH_BITS - i) ); - previous_dmadesc_b = &dmadesc_b[current_dmadescriptor_offset]; + dma_bus.create_dma_desc_link(dma_buff.rowBits[row]->getDataPtr(i, 0), dma_buff.rowBits[row]->size(PIXEL_COLOR_DEPTH_BITS - i), true ); + //link_dma_desc(&dmadesc_b[current_dmadescriptor_offset], previous_dmadesc_b, dma_buff.rowBits[row]->getDataPtr(i, 1), dma_buff.rowBits[row]->size(PIXEL_COLOR_DEPTH_BITS - i) ); + //previous_dmadesc_b = &dmadesc_b[current_dmadescriptor_offset]; } current_dmadescriptor_offset++; @@ -394,7 +211,7 @@ void MatrixPanel_I2S_DMA::configureDMA(const HUB75_I2S_CFG& _cfg) } // end color depth loop } // end frame rows - +/* #if SERIAL_DEBUG Serial.printf_P(PSTR("configureDMA(): Configured LL structure. %d DMA Linked List descriptors populated.\r\n"), current_dmadescriptor_offset); @@ -433,12 +250,45 @@ void MatrixPanel_I2S_DMA::configureDMA(const HUB75_I2S_CFG& _cfg) }; // Setup I2S - i2s_parallel_driver_install(ESP32_I2S_DEVICE, &dma_cfg); - i2s_parallel_send_dma(ESP32_I2S_DEVICE, &dmadesc_a[0]); + //i2s_parallel_driver_install(ESP32_I2S_DEVICE, &dma_cfg); - #if SERIAL_DEBUG - Serial.println(F("configureDMA(): DMA setup completed on ESP32_I2S_DEVICE.")); - #endif +*/ + +// +// Setup DMA and Output to GPIO +// + auto bus_cfg = dma_bus.config(); // バス設定用の構造体を取得します。 + + //bus_cfg.i2s_port = I2S_NUM_0; // 使用するI2Sポートを選択 (I2S_NUM_0 or I2S_NUM_1) (ESP32のI2S LCDモードを使用します) + bus_cfg.bus_freq = _cfg.i2sspeed; + bus_cfg.pin_wr = m_cfg.gpio.clk; // WR を接続しているピン番号 + + bus_cfg.pin_d0 = m_cfg.gpio.r1; + bus_cfg.pin_d1 = m_cfg.gpio.g1; + bus_cfg.pin_d2 = m_cfg.gpio.b1; + bus_cfg.pin_d3 = m_cfg.gpio.r2; + bus_cfg.pin_d4 = m_cfg.gpio.g2; + bus_cfg.pin_d5 = m_cfg.gpio.b2; + bus_cfg.pin_d6 = m_cfg.gpio.lat; + bus_cfg.pin_d7 = m_cfg.gpio.oe; + bus_cfg.pin_d8 = m_cfg.gpio.a; + bus_cfg.pin_d9 = m_cfg.gpio.b; + bus_cfg.pin_d10 = m_cfg.gpio.c; + bus_cfg.pin_d11 = m_cfg.gpio.d; + bus_cfg.pin_d12 = m_cfg.gpio.e; + bus_cfg.pin_d13 = -1; + bus_cfg.pin_d14 = -1; + bus_cfg.pin_d15 = -1; + + dma_bus.config(bus_cfg); + + dma_bus.init(); + + dma_bus.dma_transfer_start(); + + + //i2s_parallel_send_dma(ESP32_I2S_DEVICE, &dmadesc_a[0]); + ESP_LOGI(TAG, "DMA setup completed"); } // end initMatrixDMABuff @@ -499,7 +349,7 @@ void IRAM_ATTR MatrixPanel_I2S_DMA::updateMatrixDMABuffer(int16_t x_coord, int16 * data. */ -#ifndef ESP32_SXXX +#if defined (ESP32_THE_ORIG) // We need to update the correct uint16_t in the rowBitStruct array, that gets sent out in parallel // 16 bit parallel mode - Save the calculated value to the bitplane memory in reverse order to account for I2S Tx FIFO mode1 ordering // Irrelevant for ESP32-S2 the way the FIFO ordering works is different - refer to page 679 of S2 technical reference manual @@ -539,7 +389,8 @@ void IRAM_ATTR MatrixPanel_I2S_DMA::updateMatrixDMABuffer(int16_t x_coord, int16 // Get the contents at this address, // it would represent a vector pointing to the full row of pixels for the specified color depth bit at Y coordinate - ESP32_I2S_DMA_STORAGE_TYPE *p = getRowDataPtr(y_coord, color_depth_idx, back_buffer_id); + //ESP32_I2S_DMA_STORAGE_TYPE *p = getRowDataPtr(y_coord, color_depth_idx, back_buffer_id); + ESP32_I2S_DMA_STORAGE_TYPE *p = dma_buff.rowBits[y_coord]->getDataPtr(color_depth_idx, back_buffer_id); // We need to update the correct uint16_t word in the rowBitStruct array pointing to a specific pixel at X - coordinate @@ -592,7 +443,8 @@ void MatrixPanel_I2S_DMA::updateMatrixDMABuffer(uint8_t red, uint8_t green, uint --matrix_frame_parallel_row; // The destination for the pixel row bitstream - ESP32_I2S_DMA_STORAGE_TYPE *p = getRowDataPtr(matrix_frame_parallel_row, color_depth_idx, back_buffer_id); + //ESP32_I2S_DMA_STORAGE_TYPE *p = getRowDataPtr(matrix_frame_parallel_row, color_depth_idx, back_buffer_id); + ESP32_I2S_DMA_STORAGE_TYPE *p = dma_buff.rowBits[matrix_frame_parallel_row]->getDataPtr(color_depth_idx, back_buffer_id); // iterate pixels in a row int x_coord=dma_buff.rowBits[matrix_frame_parallel_row]->width; @@ -688,14 +540,14 @@ void MatrixPanel_I2S_DMA::clearFrameBuffer(bool _buff_id){ // switch pointer to a row for a specific color index row = dma_buff.rowBits[row_idx]->getDataPtr(coloridx, _buff_id); - #ifdef ESP32_SXXX - // -1 works better on ESP32-S2 ? Because bytes get sent out in order... - row[dma_buff.rowBits[row_idx]->width - 1] |= BIT_LAT; // -1 pixel to compensate array index starting at 0 - #else + #if defined(ESP32_THE_ORIG) // We need to update the correct uint16_t in the rowBitStruct array, that gets sent out in parallel // 16 bit parallel mode - Save the calculated value to the bitplane memory in reverse order to account for I2S Tx FIFO mode1 ordering // Irrelevant for ESP32-S2 the way the FIFO ordering works is different - refer to page 679 of S2 technical reference manual row[dma_buff.rowBits[row_idx]->width - 2] |= BIT_LAT; // -2 in the DMA array is actually -1 when it's reordered by TX FIFO + #else + // -1 works better on ESP32-S2 ? Because bytes get sent out in order... + row[dma_buff.rowBits[row_idx]->width - 1] |= BIT_LAT; // -1 pixel to compensate array index starting at 0 #endif // need to disable OE before/after latch to hide row transition @@ -704,11 +556,7 @@ void MatrixPanel_I2S_DMA::clearFrameBuffer(bool _buff_id){ do { --_blank; - #ifdef ESP32_SXXX - row[0 + _blank] |= BIT_OE; - row[dma_buff.rowBits[row_idx]->width - _blank - 1 ] |= BIT_OE; // (LAT pulse is (width-2) -1 pixel to compensate array index starting at 0 - #else - + #if defined(ESP32_THE_ORIG) // Original ESP32 WROOM FIFO Ordering Sucks uint8_t _blank_row_tx_fifo_tmp = 0 + _blank; (_blank_row_tx_fifo_tmp & 1U) ? --_blank_row_tx_fifo_tmp : ++_blank_row_tx_fifo_tmp; @@ -717,7 +565,9 @@ void MatrixPanel_I2S_DMA::clearFrameBuffer(bool _buff_id){ _blank_row_tx_fifo_tmp = dma_buff.rowBits[row_idx]->width - _blank - 1; // (LAT pulse is (width-2) -1 pixel to compensate array index starting at 0 (_blank_row_tx_fifo_tmp & 1U) ? --_blank_row_tx_fifo_tmp : ++_blank_row_tx_fifo_tmp; row[_blank_row_tx_fifo_tmp] |= BIT_OE; - + #else + row[0 + _blank] |= BIT_OE; + row[dma_buff.rowBits[row_idx]->width - _blank - 1 ] |= BIT_OE; // (LAT pulse is (width-2) -1 pixel to compensate array index starting at 0 #endif } while (_blank); @@ -786,13 +636,13 @@ void MatrixPanel_I2S_DMA::brtCtrlOE(int brt, const bool _buff_id){ do { --_blank; - #ifdef ESP32_SXXX - row[0 + _blank] |= BIT_OE; - #else + #if defined(ESP32_THE_ORIG) // Original ESP32 WROOM FIFO Ordering Sucks uint8_t _blank_row_tx_fifo_tmp = 0 + _blank; (_blank_row_tx_fifo_tmp & 1U) ? --_blank_row_tx_fifo_tmp : ++_blank_row_tx_fifo_tmp; row[_blank_row_tx_fifo_tmp] |= BIT_OE; + #else + row[0 + _blank] |= BIT_OE; #endif //row[0 + _blank] |= BIT_OE; @@ -915,12 +765,12 @@ void MatrixPanel_I2S_DMA::hlineDMA(int16_t x_coord, int16_t y_coord, int16_t l, do { // iterate pixels in a row int16_t _x = x_coord + --_l; -#ifdef ESP32_SXXX - // ESP 32 doesn't need byte flipping for TX FIFO. - uint16_t &v = p[_x]; -#else +#if defined(ESP32_THE_ORIG) // Save the calculated value to the bitplane memory in reverse order to account for I2S Tx FIFO mode1 ordering uint16_t &v = p[_x & 1U ? --_x : ++_x]; +#else + // ESP 32 doesn't need byte flipping for TX FIFO. + uint16_t &v = p[_x]; #endif v &= _colorbitclear; // reset color bits @@ -956,7 +806,7 @@ void MatrixPanel_I2S_DMA::vlineDMA(int16_t x_coord, int16_t y_coord, int16_t l, blue = lumConvTab[blue]; #endif -#ifndef ESP32_SXXX +#if defined(ESP32_THE_ORIG) // Save the calculated value to the bitplane memory in reverse order to account for I2S Tx FIFO mode1 ordering x_coord & 1U ? --x_coord : ++x_coord; #endif @@ -994,7 +844,8 @@ void MatrixPanel_I2S_DMA::vlineDMA(int16_t x_coord, int16_t y_coord, int16_t l, // Get the contents at this address, // it would represent a vector pointing to the full row of pixels for the specified color depth bit at Y coordinate - ESP32_I2S_DMA_STORAGE_TYPE *p = getRowDataPtr(_y, color_depth_idx, back_buffer_id); + //ESP32_I2S_DMA_STORAGE_TYPE *p = getRowDataPtr(_y, color_depth_idx, back_buffer_id); + ESP32_I2S_DMA_STORAGE_TYPE *p = dma_buff.rowBits[_y]->getDataPtr(color_depth_idx, back_buffer_id); p[x_coord] &= _colorbitclear; // reset RGB bits p[x_coord] |= RGB_output_bits; // set new RGB bits diff --git a/ESP32-HUB75-MatrixPanel-I2S-DMA.h b/src/ESP32-HUB75-MatrixPanel-I2S-DMA.h similarity index 85% rename from ESP32-HUB75-MatrixPanel-I2S-DMA.h rename to src/ESP32-HUB75-MatrixPanel-I2S-DMA.h index d9b029a..7851a6d 100644 --- a/ESP32-HUB75-MatrixPanel-I2S-DMA.h +++ b/src/ESP32-HUB75-MatrixPanel-I2S-DMA.h @@ -4,6 +4,8 @@ /* Core ESP32 hardware / idf includes! */ #include #include +#include + #include "freertos/FreeRTOS.h" #include "freertos/task.h" @@ -11,7 +13,8 @@ #include "freertos/queue.h" #include "esp_heap_caps.h" -#include "esp32_i2s_parallel_dma.h" +#include "platforms/platform_detect.hpp" + #ifdef USE_GFX_ROOT #include @@ -25,19 +28,11 @@ * Changing the values just here won't work - as defines needs to persist beyond the scope * * of just this file. * *******************************************************************************************/ -/* Enable serial debugging of the library, to see how memory is allocated etc. */ -//#define SERIAL_DEBUG 1 - /* Do NOT build additional methods optimized for fast drawing, * i.e. Adafruits drawFastHLine, drawFastVLine, etc... */ -//#define NO_FAST_FUNCTIONS +// #define NO_FAST_FUNCTIONS -/* Use GFX_Root (https://github.com/mrfaptastic/GFX_Root) instead of Adafruit_GFX library. - * > Removes Bus_IO & Wire.h library dependencies. - * > Provides 24bpp (CRGB) colour support for Adafruit_GFX functions like drawCircle etc. - * > Requires FastLED.h - */ -//#define USE_GFX_ROOT 1 +// #define NO_CIE1931 /* Physical / Chained HUB75(s) RGB pixel WIDTH and HEIGHT. * @@ -62,48 +57,6 @@ #define CHAIN_LENGTH 1 // Number of modules chained together, i.e. 4 panels chained result in virtualmatrix 64x4=256 px long #endif -/* ESP32 Default Pin definition. You can change this, but best if you keep it as is and provide custom pin mappings - * as part of the begin(...) function. - */ -// Default pin mapping for ESP32-S2 and ESP32-S3 -#ifdef ESP32_SXXX - - #define R1_PIN_DEFAULT 45 - #define G1_PIN_DEFAULT 42 - #define B1_PIN_DEFAULT 41 - #define R2_PIN_DEFAULT 40 - #define G2_PIN_DEFAULT 39 - #define B2_PIN_DEFAULT 38 - #define A_PIN_DEFAULT 37 - #define B_PIN_DEFAULT 36 - #define C_PIN_DEFAULT 35 - #define D_PIN_DEFAULT 34 - #define E_PIN_DEFAULT -1 // required for 1/32 scan panels, like 64x64. Any available pin would do, i.e. IO32 - #define LAT_PIN_DEFAULT 26 - #define OE_PIN_DEFAULT 21 - #define CLK_PIN_DEFAULT 33 - -// Else use default pin mapping for ESP32 Original WROOM module. -#else - - #define R1_PIN_DEFAULT 25 - #define G1_PIN_DEFAULT 26 - #define B1_PIN_DEFAULT 27 - #define R2_PIN_DEFAULT 14 - #define G2_PIN_DEFAULT 12 - #define B2_PIN_DEFAULT 13 - - #define A_PIN_DEFAULT 23 - #define B_PIN_DEFAULT 19 - #define C_PIN_DEFAULT 5 - #define D_PIN_DEFAULT 17 - #define E_PIN_DEFAULT -1 // IMPORTANT: Change to a valid pin if using a 64x64px panel. - - #define LAT_PIN_DEFAULT 4 - #define OE_PIN_DEFAULT 15 - #define CLK_PIN_DEFAULT 16 - -#endif // Interesting Fact: We end up using a uint16_t to send data in parallel to the HUB75... but // given we only map to 14 physical output wires/bits, we waste 2 bits. @@ -124,12 +77,9 @@ #define COLOR_CHANNELS_PER_PIXEL 3 -// #define NO_CIE1931 - - /***************************************************************************************/ /* Definitions below should NOT be ever changed without rewriting library logic */ -#define ESP32_I2S_DMA_MODE I2S_PARALLEL_WIDTH_16 // From esp32_i2s_parallel_v2.h = 16 bits in parallel +#define ESP32_I2S_DMA_MODE 16 // From esp32_i2s_parallel_v2.h = 16 bits in parallel #define ESP32_I2S_DMA_STORAGE_TYPE uint16_t // DMA output of one uint16_t at a time. #define CLKS_DURING_LATCH 0 // Not (yet) used. @@ -212,11 +162,18 @@ struct rowBitStruct { * NOTE: this call might be very slow in loops. Due to poor instruction caching in esp32 it might be required a reread from flash * every loop cycle, better use inlined #define instead in such cases */ - ESP32_I2S_DMA_STORAGE_TYPE* getDataPtr(const uint8_t _dpth=0, const bool buff_id=0) { return &(data[_dpth*width + buff_id*(width*color_depth)]); }; + inline ESP32_I2S_DMA_STORAGE_TYPE* getDataPtr(const uint8_t _dpth=0, const bool buff_id=0) { return &(data[_dpth*width + buff_id*(width*color_depth)]); }; // constructor - allocates DMA-capable memory to hold the struct data rowBitStruct(const size_t _width, const uint8_t _depth, const bool _dbuff) : width(_width), color_depth(_depth), double_buff(_dbuff) { + +#if defined(SPIRAM_FRAMEBUFFER) + #pragma message "Enabling PSRAM / SPIRAM for frame buffer." + data = (ESP32_I2S_DMA_STORAGE_TYPE *)heap_caps_malloc( size()+size()*double_buff, MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT); +#else data = (ESP32_I2S_DMA_STORAGE_TYPE *)heap_caps_malloc( size()+size()*double_buff, MALLOC_CAP_DMA); +#endif + } ~rowBitStruct() { delete data;} }; @@ -426,13 +383,9 @@ class MatrixPanel_I2S_DMA { // Obj destructor ~MatrixPanel_I2S_DMA(){ - stopDMAoutput(); - - delete dmadesc_a; - - if (m_cfg.double_buff) - delete dmadesc_b; + dma_bus.release(); + } @@ -525,6 +478,9 @@ class MatrixPanel_I2S_DMA { Serial.printf_P(PSTR("Set back buffer to: %d\n"), back_buffer_id); #endif + dma_bus.flip_dma_output_buffer(); + + /* i2s_parallel_set_previous_buffer_not_free(); // Wait before we allow any writing to the buffer. Stop flicker. while(i2s_parallel_is_previous_buffer_free() == false) { } @@ -537,7 +493,9 @@ class MatrixPanel_I2S_DMA { i2s_parallel_set_previous_buffer_not_free(); // Wait before we allow any writing to the buffer. Stop flicker. while(i2s_parallel_is_previous_buffer_free() == false) { } - + */ + + back_buffer_id ^= 1; @@ -593,7 +551,8 @@ class MatrixPanel_I2S_DMA { */ void stopDMAoutput() { resetbuffers(); - i2s_parallel_stop_dma(ESP32_I2S_DEVICE); + //i2s_parallel_stop_dma(ESP32_I2S_DEVICE); + dma_bus.dma_transfer_stop(); } @@ -602,6 +561,8 @@ class MatrixPanel_I2S_DMA { // those might be useful for child classes, like VirtualMatrixPanel protected: + Bus_Parallel16 dma_bus; + /** * @brief - clears and reinitializes color/control data in DMA buffs * When allocated, DMA buffs might be dirty, so we need to blank it and initialize ABCDE,LAT,OE control bits. @@ -685,8 +646,8 @@ class MatrixPanel_I2S_DMA { // ESP 32 DMA Linked List descriptor int desccount = 0; - lldesc_t * dmadesc_a = {0}; - lldesc_t * dmadesc_b = {0}; + // lldesc_t * dmadesc_a = {0}; + // lldesc_t * dmadesc_b = {0}; /* Pixel data is organized from LSB to MSB sequentially by row, from row 0 to row matrixHeight/matrixRowsInParallel * (two rows of pixels are refreshed in parallel) @@ -818,3 +779,57 @@ inline void MatrixPanel_I2S_DMA::drawIcon (int *ico, int16_t x, int16_t y, int16 #endif + + + +// Credits: Louis Beaudoin +// and Sprite_TM: https://www.esp32.com/viewtopic.php?f=17&t=3188 and https://www.esp32.com/viewtopic.php?f=13&t=3256 + +/* + + This is example code to driver a p3(2121)64*32 -style RGB LED display. These types of displays do not have memory and need to be refreshed + continuously. The display has 2 RGB inputs, 4 inputs to select the active line, a pixel clock input, a latch enable input and an output-enable + input. The display can be seen as 2 64x16 displays consisting of the upper half and the lower half of the display. Each half has a separate + RGB pixel input, the rest of the inputs are shared. + + Each display half can only show one line of RGB pixels at a time: to do this, the RGB data for the line is input by setting the RGB input pins + to the desired value for the first pixel, giving the display a clock pulse, setting the RGB input pins to the desired value for the second pixel, + giving a clock pulse, etc. Do this 64 times to clock in an entire row. The pixels will not be displayed yet: until the latch input is made high, + the display will still send out the previously clocked in line. Pulsing the latch input high will replace the displayed data with the data just + clocked in. + + The 4 line select inputs select where the currently active line is displayed: when provided with a binary number (0-15), the latched pixel data + will immediately appear on this line. Note: While clocking in data for a line, the *previous* line is still displayed, and these lines should + be set to the value to reflect the position the *previous* line is supposed to be on. + + Finally, the screen has an OE input, which is used to disable the LEDs when latching new data and changing the state of the line select inputs: + doing so hides any artefacts that appear at this time. The OE line is also used to dim the display by only turning it on for a limited time every + line. + + All in all, an image can be displayed by 'scanning' the display, say, 100 times per second. The slowness of the human eye hides the fact that + only one line is showed at a time, and the display looks like every pixel is driven at the same time. + + Now, the RGB inputs for these types of displays are digital, meaning each red, green and blue subpixel can only be on or off. This leads to a + color palette of 8 pixels, not enough to display nice pictures. To get around this, we use binary code modulation. + + Binary code modulation is somewhat like PWM, but easier to implement in our case. First, we define the time we would refresh the display without + binary code modulation as the 'frame time'. For, say, a four-bit binary code modulation, the frame time is divided into 15 ticks of equal length. + + We also define 4 subframes (0 to 3), defining which LEDs are on and which LEDs are off during that subframe. (Subframes are the same as a + normal frame in non-binary-coded-modulation mode, but are showed faster.) From our (non-monochrome) input image, we take the (8-bit: bit 7 + to bit 0) RGB pixel values. If the pixel values have bit 7 set, we turn the corresponding LED on in subframe 3. If they have bit 6 set, + we turn on the corresponding LED in subframe 2, if bit 5 is set subframe 1, if bit 4 is set in subframe 0. + + Now, in order to (on average within a frame) turn a LED on for the time specified in the pixel value in the input data, we need to weigh the + subframes. We have 15 pixels: if we show subframe 3 for 8 of them, subframe 2 for 4 of them, subframe 1 for 2 of them and subframe 1 for 1 of + them, this 'automatically' happens. (We also distribute the subframes evenly over the ticks, which reduces flicker.) + + In this code, we use the I2S peripheral in parallel mode to achieve this. Essentially, first we allocate memory for all subframes. This memory + contains a sequence of all the signals (2xRGB, line select, latch enable, output enable) that need to be sent to the display for that subframe. + Then we ask the I2S-parallel driver to set up a DMA chain so the subframes are sent out in a sequence that satisfies the requirement that + subframe x has to be sent out for (2^x) ticks. Finally, we fill the subframes with image data. + + We use a front buffer/back buffer technique here to make sure the display is refreshed in one go and drawing artefacts do not reach the display. + In practice, for small displays this is not really necessarily. + +*/ diff --git a/ESP32-HUB75-MatrixPanel-leddrivers.cpp b/src/ESP32-HUB75-MatrixPanel-leddrivers.cpp similarity index 100% rename from ESP32-HUB75-MatrixPanel-leddrivers.cpp rename to src/ESP32-HUB75-MatrixPanel-leddrivers.cpp diff --git a/ESP32-VirtualMatrixPanel-I2S-DMA.h b/src/ESP32-VirtualMatrixPanel-I2S-DMA.h similarity index 100% rename from ESP32-VirtualMatrixPanel-I2S-DMA.h rename to src/ESP32-VirtualMatrixPanel-I2S-DMA.h diff --git a/esp32_i2s_parallel_mcu_def.h b/src/esp32_i2s_parallel_mcu_def.h.txt similarity index 100% rename from esp32_i2s_parallel_mcu_def.h rename to src/esp32_i2s_parallel_mcu_def.h.txt diff --git a/src/platforms/esp32/esp32-default-pins.hpp b/src/platforms/esp32/esp32-default-pins.hpp new file mode 100644 index 0000000..5ee94b9 --- /dev/null +++ b/src/platforms/esp32/esp32-default-pins.hpp @@ -0,0 +1,18 @@ +#pragma once + +#define R1_PIN_DEFAULT 25 +#define G1_PIN_DEFAULT 26 +#define B1_PIN_DEFAULT 27 +#define R2_PIN_DEFAULT 14 +#define G2_PIN_DEFAULT 12 +#define B2_PIN_DEFAULT 13 + +#define A_PIN_DEFAULT 23 +#define B_PIN_DEFAULT 19 +#define C_PIN_DEFAULT 5 +#define D_PIN_DEFAULT 17 +#define E_PIN_DEFAULT -1 // IMPORTANT: Change to a valid pin if using a 64x64px panel. + +#define LAT_PIN_DEFAULT 4 +#define OE_PIN_DEFAULT 15 +#define CLK_PIN_DEFAULT 16 diff --git a/esp32_i2s_parallel_dma.c b/src/platforms/esp32/esp32_i2s_parallel_dma.c.txt similarity index 100% rename from esp32_i2s_parallel_dma.c rename to src/platforms/esp32/esp32_i2s_parallel_dma.c.txt diff --git a/src/platforms/esp32/esp32_i2s_parallel_dma.cpp b/src/platforms/esp32/esp32_i2s_parallel_dma.cpp new file mode 100644 index 0000000..94f0d50 --- /dev/null +++ b/src/platforms/esp32/esp32_i2s_parallel_dma.cpp @@ -0,0 +1,571 @@ +/*----------------------------------------------------------------------------/ + Lovyan GFX - Graphics library for embedded devices. + +Original Source: + https://github.com/lovyan03/LovyanGFX/ + +Licence: + [FreeBSD](https://github.com/lovyan03/LovyanGFX/blob/master/license.txt) + +Author: + [lovyan03](https://twitter.com/lovyan03) + +Contributors: + [ciniml](https://github.com/ciniml) + [mongonta0716](https://github.com/mongonta0716) + [tobozo](https://github.com/tobozo) + +Modified heavily for the ESP32 HUB75 DMA library by: + [mrfaptastic](https://github.com/mrfaptastic) + +/----------------------------------------------------------------------------*/ + +static const char* TAG = "esp32_i2s_parallel_dma"; + +#include +#if defined (CONFIG_IDF_TARGET_ESP32) + +#include "esp32_i2s_parallel_dma.hpp" + +#include +#include +#include + +#include +#include + +/* + +callback shiftCompleteCallback; +void setShiftCompleteCallback(callback f) { + shiftCompleteCallback = f; +} + +volatile int previousBufferOutputLoopCount = 0; +volatile bool previousBufferFree = true; + +static void IRAM_ATTR irq_hndlr(void* arg) { // if we use I2S1 (default) + + SET_PERI_REG_BITS(I2S_INT_CLR_REG(ESP32_I2S_DEVICE), I2S_OUT_EOF_INT_CLR_V, 1, I2S_OUT_EOF_INT_CLR_S); + + previousBufferFree = true; + + + +} // end irq_hndlr +*/ + + + static i2s_dev_t* getDev(int port) + { + #if defined (CONFIG_IDF_TARGET_ESP32S2) + return &I2S0; + #else + return (port == 0) ? &I2S0 : &I2S1; + #endif + } + + void Bus_Parallel16::config(const config_t& cfg) + { + ESP_LOGI(TAG, "Performing config for ESP32 or ESP32-S2"); + _cfg = cfg; + auto port = cfg.port; + _dev = getDev(port); + } + + +//#if defined (CONFIG_IDF_TARGET_ESP32S2) + + static void _gpio_pin_init(int pin) + { + if (pin >= 0) + { + gpio_pad_select_gpio(pin); + //gpio_hi(pin); + gpio_set_direction((gpio_num_t)pin, GPIO_MODE_OUTPUT); + gpio_set_drive_capability((gpio_num_t)pin, (gpio_drive_cap_t)3); // esp32s3 as well? + } + } + + + bool Bus_Parallel16::init(void) // The big one that gets everything setup. + { + ESP_LOGI(TAG, "Performing DMA bus init() for ESP32 or ESP32-S2"); + + if(_cfg.port < I2S_NUM_0 || _cfg.port >= I2S_NUM_MAX) { + //return ESP_ERR_INVALID_ARG; + return false; + } + + if(_cfg.parallel_width < 8 || _cfg.parallel_width >= 24) { + return false; + } + + //auto freq = (_cfg.freq_write, 50000000u); // ? + auto freq = (_cfg.bus_freq); + + uint32_t _clkdiv_write = 0; + size_t _div_num = 10; + + // Calculate clock divider for ESP32-S2 + #if defined (CONFIG_IDF_TARGET_ESP32S2) + + static constexpr uint32_t pll_160M_clock_d2 = 160 * 1000 * 1000 >> 1; + + // I2S_CLKM_DIV_NUM 2=40MHz / 3=27MHz / 4=20MHz / 5=16MHz / 8=10MHz / 10=8MHz + _div_num = std::min(255u, 1 + ((pll_160M_clock_d2) / (1 + _cfg.freq_write))); + + _clkdiv_write = I2S_CLK_160M_PLL << I2S_CLK_SEL_S + | I2S_CLK_EN + | 1 << I2S_CLKM_DIV_A_S + | 0 << I2S_CLKM_DIV_B_S + | _div_num << I2S_CLKM_DIV_NUM_S + ; + + #else + + + // clock = 80MHz(PLL_D2_CLK) + static constexpr uint32_t pll_d2_clock = 80 * 1000 * 1000; + + // I2S_CLKM_DIV_NUM 4=20MHz / 5=16MHz / 8=10MHz / 10=8MHz + _div_num = std::min(255u, std::max(3u, 1 + (pll_d2_clock / (1 + freq)))); + + _clkdiv_write = I2S_CLK_EN + | 1 << I2S_CLKM_DIV_A_S + | 0 << I2S_CLKM_DIV_B_S + | _div_num << I2S_CLKM_DIV_NUM_S + ; + #endif + + if(_div_num < 2 || _div_num > 16) { + return false; + } + + //ESP_LOGI(TAG, "i2s pll clk_div_main is: %d", _div_num); + + auto dev = _dev; + volatile int iomux_signal_base; + volatile int iomux_clock; + int irq_source; + + // Initialize I2S0 peripheral + if (_cfg.port == 0) + { + + periph_module_reset(PERIPH_I2S0_MODULE); + periph_module_enable(PERIPH_I2S0_MODULE); + + iomux_clock = I2S0O_WS_OUT_IDX; + irq_source = ETS_I2S0_INTR_SOURCE; + + switch(_cfg.parallel_width) { + case 8: + case 16: + iomux_signal_base = I2S0O_DATA_OUT8_IDX; + break; + case 24: + iomux_signal_base = I2S0O_DATA_OUT0_IDX; + break; + default: + return ESP_ERR_INVALID_ARG; + } + } + + #if !defined (CONFIG_IDF_TARGET_ESP32S2) + // Can't compile if I2S1 if it doesn't exist with that hardware's IDF.... + else { + periph_module_reset(PERIPH_I2S1_MODULE); + periph_module_enable(PERIPH_I2S1_MODULE); + iomux_clock = I2S1O_WS_OUT_IDX; + irq_source = ETS_I2S1_INTR_SOURCE; + + switch(_cfg.parallel_width) { + case 16: + iomux_signal_base = I2S1O_DATA_OUT8_IDX; + break; + case 8: + case 24: + iomux_signal_base = I2S1O_DATA_OUT0_IDX; + break; + default: + return ESP_ERR_INVALID_ARG; + } + } + #endif + + // Setup GPIOs + int bus_width = _cfg.parallel_width; + + // Clock output GPIO setup + _gpio_pin_init(_cfg.pin_rd); // not used + _gpio_pin_init(_cfg.pin_wr); // clock + _gpio_pin_init(_cfg.pin_rs); // not used + + // Data output GPIO setup + int8_t* pins = _cfg.pin_data; + + for(int i = 0; i < bus_width; i++) + _gpio_pin_init(pins[i]); + + // Route clock signal to clock pin + gpio_matrix_out(_cfg.pin_wr, iomux_clock, _cfg.invert_pclk, 0); // inverst clock if required + + for (size_t i = 0; i < bus_width; i++) { + + if (pins[i] >= 0) { + gpio_matrix_out(pins[i], iomux_signal_base + i, false, false); + } + } + + + // Setup i2s clock + dev->sample_rate_conf.val = 0; + + // Third stage config, width of data to be written to IO (I think this should always be the actual data width?) + dev->sample_rate_conf.rx_bits_mod = bus_width; + dev->sample_rate_conf.tx_bits_mod = bus_width; + + dev->sample_rate_conf.rx_bck_div_num = 2; + dev->sample_rate_conf.tx_bck_div_num = 2; + + // Clock configuration + // dev->clkm_conf.val=0; // Clear the clkm_conf struct + /* + #if defined (CONFIG_IDF_TARGET_ESP32S2) + dev->clkm_conf.clk_sel = 2; // esp32-s2 only + dev->clkm_conf.clk_en = 1; + #endif + + #if !defined (CONFIG_IDF_TARGET_ESP32S2) + dev->clkm_conf.clka_en=0; // Use the 80mhz system clock (PLL_D2_CLK) when '0' + #endif + + dev->clkm_conf.clkm_div_b=0; // Clock numerator + dev->clkm_conf.clkm_div_a=1; // Clock denominator + */ + + // Note: clkm_div_num must only be set here AFTER clkm_div_b, clkm_div_a, etc. Or weird things happen! + // On original ESP32, max I2S DMA parallel speed is 20Mhz. + //dev->clkm_conf.clkm_div_num = 32; + dev->clkm_conf.val = _clkdiv_write; + + // I2S conf2 reg + dev->conf2.val = 0; + dev->conf2.lcd_en = 1; + dev->conf2.lcd_tx_wrx2_en=0; + dev->conf2.lcd_tx_sdx2_en=0; + + // I2S conf reg + dev->conf.val = 0; + + #if defined (CONFIG_IDF_TARGET_ESP32S2) + dev->conf.tx_dma_equal=1; // esp32-s2 only + dev->conf.pre_req_en=1; // esp32-s2 only - enable I2S to prepare data earlier? wtf? + #endif + + // Now start setting up DMA FIFO + dev->fifo_conf.val = 0; + dev->fifo_conf.rx_data_num = 32; // Thresholds. + dev->fifo_conf.tx_data_num = 32; + dev->fifo_conf.dscr_en = 1; + + #if !defined (CONFIG_IDF_TARGET_ESP32S2) + + // Enable "One datum will be written twice in LCD mode" - for some reason, + // if we don't do this in 8-bit mode, data is updated on half-clocks not clocks + if(_cfg.parallel_width == 8) + dev->conf2.lcd_tx_wrx2_en=1; + + // Not really described for non-pcm modes, although datasheet states it should be set correctly even for LCD mode + // First stage config. Configures how data is loaded into fifo + if(_cfg.parallel_width == 24) { + // Mode 0, single 32-bit channel, linear 32 bit load to fifo + dev->fifo_conf.tx_fifo_mod = 3; + } else { + // Mode 1, single 16-bit channel, load 16 bit sample(*) into fifo and pad to 32 bit with zeros + // *Actually a 32 bit read where two samples are read at once. Length of fifo must thus still be word-aligned + dev->fifo_conf.tx_fifo_mod = 1; + } + + // Dictated by ESP32 datasheet + dev->fifo_conf.rx_fifo_mod_force_en = 1; + dev->fifo_conf.tx_fifo_mod_force_en = 1; + + // Second stage config + dev->conf_chan.val = 0; + + // 16-bit single channel data + dev->conf_chan.tx_chan_mod = 1; + dev->conf_chan.rx_chan_mod = 1; + + #endif + + // Reset FIFO + dev->conf.rx_fifo_reset = 1; + + #if defined (CONFIG_IDF_TARGET_ESP32S2) + while(dev->conf.rx_fifo_reset_st); // esp32-s2 only + #endif + + dev->conf.rx_fifo_reset = 0; + dev->conf.tx_fifo_reset = 1; + + #if defined (CONFIG_IDF_TARGET_ESP32S2) + while(dev->conf.tx_fifo_reset_st); // esp32-s2 only + #endif + dev->conf.tx_fifo_reset = 0; + + + // Reset DMA + dev->lc_conf.in_rst = 1; + dev->lc_conf.in_rst = 0; + dev->lc_conf.out_rst = 1; + dev->lc_conf.out_rst = 0; + + dev->lc_conf.ahbm_rst = 1; + dev->lc_conf.ahbm_rst = 0; + + dev->in_link.val = 0; + dev->out_link.val = 0; + + + // Device reset + dev->conf.rx_reset=1; + dev->conf.tx_reset=1; + dev->conf.rx_reset=0; + dev->conf.tx_reset=0; + + dev->conf1.val = 0; + dev->conf1.tx_stop_en = 0; +/* + // Allocate I2S status structure for buffer swapping stuff + i2s_state = (i2s_parallel_state_t*) malloc(sizeof(i2s_parallel_state_t)); + assert(i2s_state != NULL); + i2s_parallel_state_t *state = i2s_state; + + state->desccount_a = conf->desccount_a; + state->desccount_b = conf->desccount_b; + state->dmadesc_a = conf->lldesc_a; + state->dmadesc_b = conf->lldesc_b; + state->i2s_interrupt_port_arg = port; // need to keep this somewhere in static memory for the ISR +*/ + + dev->timing.val = 0; +/* + // We using the double buffering switch logic? + if (conf->int_ena_out_eof) + { + // Get ISR setup + esp_err_t err = esp_intr_alloc(irq_source, + (int)(ESP_INTR_FLAG_IRAM | ESP_INTR_FLAG_LEVEL1), + irq_hndlr, + &state->i2s_interrupt_port_arg, NULL); + + if(err) { + return err; + } + + + // Setup interrupt handler which is focussed only on the (page 322 of Tech. Ref. Manual) + // "I2S_OUT_EOF_INT: Triggered when rxlink has finished sending a packet" + // ... whatever the hell that is supposed to mean... One massive linked list? So all pixels in the chain? + dev->int_ena.out_eof = 1; + } +*/ + + + #if defined (CONFIG_IDF_TARGET_ESP32S2) + ESP_LOGD(TAG, "init() GPIO and clock configuration set for ESP32-S2"); + #else + ESP_LOGD(TAG, "init() GPIO and clock configuration set for ESP32"); + #endif + + + return true; + } + + + void Bus_Parallel16::release(void) + { + if (_dmadesc_a) + { + heap_caps_free(_dmadesc_a); + _dmadesc_a = nullptr; + _dmadesc_count = 0; + } + + if (_dmadesc_b) + { + heap_caps_free(_dmadesc_b); + _dmadesc_b = nullptr; + _dmadesc_count = 0; + } + } + + void Bus_Parallel16::enable_double_dma_desc(void) + { + _double_dma_buffer = true; + } + + // Need this to work for double buffers etc. + bool Bus_Parallel16::allocate_dma_desc_memory(size_t len) + { + if (_dmadesc_a) heap_caps_free(_dmadesc_a); // free all dma descrptios previously + + _dmadesc_count = len; + + ESP_LOGI(TAG, "Allocating memory for %d DMA descriptors.", len); + + _dmadesc_a= (HUB75_DMA_DESCRIPTOR_T*)heap_caps_malloc(sizeof(HUB75_DMA_DESCRIPTOR_T) * len, MALLOC_CAP_DMA); + + if (_dmadesc_a == nullptr) + { + ESP_LOGE(TAG, "ERROR: Couldn't malloc _dmadesc_a. Not enough memory."); + return false; + } + + + if (_double_dma_buffer) + { + if (_dmadesc_b) heap_caps_free(_dmadesc_b); // free all dma descrptios previously + + ESP_LOGD(TAG, "Allocating the second buffer (double buffer enabled)."); + + _dmadesc_b= (HUB75_DMA_DESCRIPTOR_T*)heap_caps_malloc(sizeof(HUB75_DMA_DESCRIPTOR_T) * len, MALLOC_CAP_DMA); + + if (_dmadesc_b == nullptr) + { + ESP_LOGE(TAG, "ERROR: Couldn't malloc _dmadesc_b. Not enough memory."); + _double_dma_buffer = false; + return false; + } + } + + _dmadesc_a_idx = 0; + _dmadesc_b_idx = 0; + + ESP_LOGD(TAG, "Allocating %d bytes of memory for DMA descriptors.", sizeof(HUB75_DMA_DESCRIPTOR_T) * len); + + + return true; + + } + + void Bus_Parallel16::create_dma_desc_link(void *data, size_t size, bool dmadesc_b) + { + static constexpr size_t MAX_DMA_LEN = (4096-4); + + if (dmadesc_b) + ESP_LOGI(TAG, " * Double buffer descriptor."); + + if (size > MAX_DMA_LEN) + { + size = MAX_DMA_LEN; + ESP_LOGW(TAG, "Creating DMA descriptor which links to payload with size greater than MAX_DMA_LEN!"); + } + + if ( (_dmadesc_a_idx+1) > _dmadesc_count) { + ESP_LOGE(TAG, "Attempted to create more DMA descriptors than allocated memory for. Expecting a maximum of %d DMA descriptors", _dmadesc_count); + return; + } + + volatile lldesc_t *dmadesc; + volatile lldesc_t *next; + bool eof = false; + +/* + dmadesc_a[desccount-1].eof = 1; + dmadesc_a[desccount-1].qe.stqe_next=(lldesc_t*)&dmadesc_a[0]; +*/ + + + // ESP_LOGI(TAG, "Creating descriptor %d\n", _dmadesc_a_idx); + if ( (dmadesc_b == true) ) // for primary buffer + { + dmadesc = &_dmadesc_b[_dmadesc_b_idx]; + + next = (_dmadesc_b_idx < (_dmadesc_count-1) ) ? &_dmadesc_b[_dmadesc_b_idx+1]:_dmadesc_b; + eof = (_dmadesc_b_idx == (_dmadesc_count-1)); + } + else + { + dmadesc = &_dmadesc_a[_dmadesc_a_idx]; + + // https://stackoverflow.com/questions/47170740/c-negative-array-index + next = (_dmadesc_a_idx < (_dmadesc_count-1) ) ? _dmadesc_a + _dmadesc_a_idx+1:_dmadesc_a; + eof = (_dmadesc_a_idx == (_dmadesc_count-1)); + } + + if ( _dmadesc_a_idx == (_dmadesc_count-1) ) { + ESP_LOGW(TAG, "Creating final DMA descriptor and linking back to 0."); + } + + dmadesc->size = size; + dmadesc->length = size; + dmadesc->buf = (uint8_t*) data; + dmadesc->eof = 0; + dmadesc->sosf = 0; + dmadesc->owner = 1; + dmadesc->qe.stqe_next = (lldesc_t*) next; + dmadesc->offset = 0; + + if ( (dmadesc_b == true) ) { // for primary buffer + _dmadesc_b_idx++; + } else { + _dmadesc_a_idx++; + } + + } // end create_dma_desc_link + + void Bus_Parallel16::dma_transfer_start() + { + auto dev = _dev; + + // Configure DMA burst mode + dev->lc_conf.val = I2S_OUT_DATA_BURST_EN | I2S_OUTDSCR_BURST_EN; + + // Set address of DMA descriptor + dev->out_link.addr = (uint32_t) _dmadesc_a; + + // Start DMA operation + dev->out_link.stop = 0; + dev->out_link.start = 1; + + dev->conf.tx_start = 1; + + + } // end + + + void Bus_Parallel16::dma_transfer_stop() + { + auto dev = _dev; + + // Stop all ongoing DMA operations + dev->out_link.stop = 1; + dev->out_link.start = 0; + dev->conf.tx_start = 0; + + } // end + + + void Bus_Parallel16::flip_dma_output_buffer() + { + if ( _double_dma_buffer == false) return; + + if ( _dmadesc_a_active == true) // change across to everything 'b'' + { + _dmadesc_a[_dmadesc_count-1].qe.stqe_next = &_dmadesc_b[0]; + _dmadesc_b[_dmadesc_count-1].qe.stqe_next = &_dmadesc_b[0]; + } + else + { + _dmadesc_a[_dmadesc_count-1].qe.stqe_next = &_dmadesc_a[0]; + _dmadesc_b[_dmadesc_count-1].qe.stqe_next = &_dmadesc_a[0]; + } + } // end flip + + + +#endif \ No newline at end of file diff --git a/esp32_i2s_parallel_dma.h b/src/platforms/esp32/esp32_i2s_parallel_dma.h.txt similarity index 100% rename from esp32_i2s_parallel_dma.h rename to src/platforms/esp32/esp32_i2s_parallel_dma.h.txt diff --git a/src/platforms/esp32/esp32_i2s_parallel_dma.hpp b/src/platforms/esp32/esp32_i2s_parallel_dma.hpp new file mode 100644 index 0000000..95664d8 --- /dev/null +++ b/src/platforms/esp32/esp32_i2s_parallel_dma.hpp @@ -0,0 +1,138 @@ +/*----------------------------------------------------------------------------/ + Lovyan GFX - Graphics library for embedded devices. + +Original Source: + https://github.com/lovyan03/LovyanGFX/ + +Licence: + [FreeBSD](https://github.com/lovyan03/LovyanGFX/blob/master/license.txt) + +Author: + [lovyan03](https://twitter.com/lovyan03) + +Contributors: + [ciniml](https://github.com/ciniml) + [mongonta0716](https://github.com/mongonta0716) + [tobozo](https://github.com/tobozo) + + Modified heavily for the ESP32 HUB75 DMA library by: + [mrfaptastic](https://github.com/mrfaptastic) + +------------------------------------------------------------------------------ + + Putin’s Russia and its genocide in Ukraine is a disgrace to humanity. + + https://www.reddit.com/r/ukraine/comments/xfuc6v/more_than_460_graves_have_already_been_found_in/ + + Xi Jinping and his communist China’s silence on the war in Ukraine says everything about + how China condones such genocide, especially if it's against 'the west' (aka. decency). + + Whilst the good people at Espressif probably have nothing to do with this, the unfortunate + reality is libraries like this increase the popularity of Chinese silicon chips, which + indirectly funds (through CCP state taxes) the growth and empowerment of such a despot government. + + Global democracy, decency and security is put at risk with every Chinese silicon chip that is bought. + +/----------------------------------------------------------------------------*/ + +#pragma once + +#include // memcpy +#include +#include + +#include +#include +#include +#include +#include + +#define DMA_MAX (4096-4) + +// The type used for this SoC +#define HUB75_DMA_DESCRIPTOR_T lldesc_t + +//---------------------------------------------------------------------------- + + class Bus_Parallel16 + { + public: + Bus_Parallel16() + { + + } + + struct config_t + { + int port = 0; + + // max 20MHz (when in 16 bit / 2 byte mode) + uint32_t bus_freq = 10000000; + int8_t pin_wr = -1; // + int8_t pin_rd = -1; + int8_t pin_rs = -1; // D/C + bool invert_pclk = false; + int8_t parallel_width = 16; // do not change + union + { + int8_t pin_data[16]; + struct + { + int8_t pin_d0; + int8_t pin_d1; + int8_t pin_d2; + int8_t pin_d3; + int8_t pin_d4; + int8_t pin_d5; + int8_t pin_d6; + int8_t pin_d7; + int8_t pin_d8; + int8_t pin_d9; + int8_t pin_d10; + int8_t pin_d11; + int8_t pin_d12; + int8_t pin_d13; + int8_t pin_d14; + int8_t pin_d15; + }; + }; + }; + + const config_t& config(void) const { return _cfg; } + void config(const config_t& config); + + bool init(void) ; + void release(void) ; + + void enable_double_dma_desc(); + bool allocate_dma_desc_memory(size_t len); + + void create_dma_desc_link(void *memory, size_t size, bool dmadesc_b = false); + + void dma_transfer_start(); + void dma_transfer_stop(); + + void flip_dma_output_buffer(); + + private: + + void _init_pins() { }; + + config_t _cfg; + + bool _double_dma_buffer = false; + bool _dmadesc_a_active = true; + + uint32_t _dmadesc_count = 0; // number of dma decriptors + + uint32_t _dmadesc_a_idx = 0; + uint32_t _dmadesc_b_idx = 0; + + HUB75_DMA_DESCRIPTOR_T* _dmadesc_a = nullptr; + HUB75_DMA_DESCRIPTOR_T* _dmadesc_b = nullptr; + + volatile i2s_dev_t* _dev; + + + + }; \ No newline at end of file diff --git a/src/platforms/esp32s2/esp32s2-default-pins.hpp b/src/platforms/esp32s2/esp32s2-default-pins.hpp new file mode 100644 index 0000000..202b1c5 --- /dev/null +++ b/src/platforms/esp32s2/esp32s2-default-pins.hpp @@ -0,0 +1,16 @@ +#pragma once + +#define R1_PIN_DEFAULT 45 +#define G1_PIN_DEFAULT 42 +#define B1_PIN_DEFAULT 41 +#define R2_PIN_DEFAULT 40 +#define G2_PIN_DEFAULT 39 +#define B2_PIN_DEFAULT 38 +#define A_PIN_DEFAULT 37 +#define B_PIN_DEFAULT 36 +#define C_PIN_DEFAULT 35 +#define D_PIN_DEFAULT 34 +#define E_PIN_DEFAULT -1 // required for 1/32 scan panels, like 64x64. Any available pin would do, i.e. IO32 +#define LAT_PIN_DEFAULT 26 +#define OE_PIN_DEFAULT 21 +#define CLK_PIN_DEFAULT 33 diff --git a/src/platforms/esp32s3/ESP32-S3-DevKitC-1-pin-layout.png b/src/platforms/esp32s3/ESP32-S3-DevKitC-1-pin-layout.png new file mode 100644 index 0000000000000000000000000000000000000000..c4391b35e17af9f57ef5a690fa0d4f99b383d1e7 GIT binary patch literal 497667 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%0D#oh*a>|KUIsjWDgdaUd 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 z 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

}RG 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ðjU`w!pAk2 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 z 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 KB), the cache can be insufficient, and speeds will fall back to the access speed of the external RAM. Moreover, accessing large chunks of data can “push out” cached flash, possibly making the execution of code slower afterwards. + +In general, external RAM will not be used as task stack memory. xTaskCreate() and similar functions will always allocate internal memory for stack and task TCBs. + diff --git a/src/platforms/esp32s3/ReservedPinsForPSRAM.PNG b/src/platforms/esp32s3/ReservedPinsForPSRAM.PNG new file mode 100644 index 0000000000000000000000000000000000000000..994fda83d602d84eda4afe063471abf5cc007d32 GIT binary patch literal 94554 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 H3jF^7bJJ0k literal 0 HcmV?d00001 diff --git a/src/platforms/esp32s3/esp32s3-default-pins.hpp b/src/platforms/esp32s3/esp32s3-default-pins.hpp new file mode 100644 index 0000000..57d8aae --- /dev/null +++ b/src/platforms/esp32s3/esp32s3-default-pins.hpp @@ -0,0 +1,18 @@ +#pragma once + +// Avoid and QSPI pins + +#define R1_PIN_DEFAULT 4 +#define G1_PIN_DEFAULT 5 +#define B1_PIN_DEFAULT 6 +#define R2_PIN_DEFAULT 7 +#define G2_PIN_DEFAULT 15 +#define B2_PIN_DEFAULT 16 +#define A_PIN_DEFAULT 18 +#define B_PIN_DEFAULT 8 +#define C_PIN_DEFAULT 3 +#define D_PIN_DEFAULT 42 +#define E_PIN_DEFAULT -1 // required for 1/32 scan panels, like 64x64. Any available pin would do, i.e. IO32 +#define LAT_PIN_DEFAULT 40 +#define OE_PIN_DEFAULT 2 +#define CLK_PIN_DEFAULT 41 diff --git a/src/platforms/esp32s3/gdma_lcd_parallel16.cpp b/src/platforms/esp32s3/gdma_lcd_parallel16.cpp new file mode 100644 index 0000000..785e489 --- /dev/null +++ b/src/platforms/esp32s3/gdma_lcd_parallel16.cpp @@ -0,0 +1,356 @@ +/* + Simple example of using the ESP32-S3's LCD peripheral for general-purpose + (non-LCD) parallel data output with DMA. Connect 8 LEDs (or logic analyzer), + cycles through a pattern among them at about 1 Hz. + This code is ONLY for the ESP32-S3, NOT the S2, C3 or original ESP32. + None of this is authoritative canon, just a lot of trial error w/datasheet + and register poking. Probably more robust ways of doing this still TBD. + + + FULL CREDIT goes to AdaFruit + + https://blog.adafruit.com/2022/06/21/esp32uesday-more-s3-lcd-peripheral-hacking-with-code/ + + PLEASE SUPPORT THEM! + + */ + #include + #include "gdma_lcd_parallel16.hpp" + + static const char* TAG = "gdma_lcd_parallel16"; + + + dma_descriptor_t desc; // DMA descriptor for testing +/* + uint8_t data[8][312]; // Transmit buffer (2496 bytes total) + uint16_t* dmabuff2; +*/ + // End-of-DMA-transfer callback + static IRAM_ATTR bool dma_callback(gdma_channel_handle_t dma_chan, + gdma_event_data_t *event_data, void *user_data) { + // This DMA callback seems to trigger a moment before the last data has + // issued (buffering between DMA & LCD peripheral?), so pause a moment + // before stopping LCD data out. The ideal delay may depend on the LCD + // clock rate...this one was determined empirically by monitoring on a + // logic analyzer. YMMV. + esp_rom_delay_us(100); + // The LCD peripheral stops transmitting at the end of the DMA xfer, but + // clear the lcd_start flag anyway -- we poll it in loop() to decide when + // the transfer has finished, and the same flag is set later to trigger + // the next transfer. + + LCD_CAM.lcd_user.lcd_start = 0; + return true; + } + + static lcd_cam_dev_t* getDev(int port) + { + return &LCD_CAM; + } + + // ------------------------------------------------------------------------------ + + void Bus_Parallel16::config(const config_t& cfg) + { + _cfg = cfg; + auto port = cfg.port; + _dev = getDev(port); + } + + + //https://github.com/adafruit/Adafruit_Protomatter/blob/master/src/arch/esp32-s3.h + bool Bus_Parallel16::init(void) + { + ///dmabuff2 = (uint16_t*)heap_caps_malloc(sizeof(uint16_t) * 64*32, MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT); + + // LCD_CAM peripheral isn't enabled by default -- MUST begin with this: + periph_module_enable(PERIPH_LCD_CAM_MODULE); + periph_module_reset(PERIPH_LCD_CAM_MODULE); + + // Reset LCD bus + LCD_CAM.lcd_user.lcd_reset = 1; + esp_rom_delay_us(100); + + auto lcd_clkm_div_num = 160000000 / _cfg.bus_freq / 2; + + ESP_LOGI(TAG, "Clock divider is %d", lcd_clkm_div_num); + + // Configure LCD clock. Since this program generates human-perceptible + // output and not data for LED matrices or NeoPixels, use almost the + // slowest LCD clock rate possible. The S3-mini module used on Feather + // ESP32-S3 has a 40 MHz crystal. A 2-stage clock division of 1:16000 + // is applied (250*64), yielding 2,500 Hz. Still much too fast for + // human eyes, so later we set up the data to repeat each output byte + // many times over. + LCD_CAM.lcd_clock.clk_en = 1; // Enable peripheral clock + LCD_CAM.lcd_clock.lcd_clk_sel = 2; // 160mhz source + LCD_CAM.lcd_clock.lcd_ck_out_edge = 0; // PCLK low in 1st half cycle + LCD_CAM.lcd_clock.lcd_ck_idle_edge = 0; // PCLK low idle + LCD_CAM.lcd_clock.lcd_clk_equ_sysclk = 0; // PCLK = CLK / (CLKCNT_N+1) + LCD_CAM.lcd_clock.lcd_clkm_div_num = lcd_clkm_div_num; // 1st stage 1:250 divide + LCD_CAM.lcd_clock.lcd_clkm_div_a = 1; // 0/1 fractional divide + LCD_CAM.lcd_clock.lcd_clkm_div_b = 0; + + // See section 26.3.3.1 of the ESP32­S3 Technical Reference Manual + // for information on other clock sources and dividers. + + // Configure LCD frame format. This is where we fiddle the peripheral + // to provide generic 8-bit output rather than actually driving an LCD. + // There's also a 16-bit mode but that's not shown here. + LCD_CAM.lcd_ctrl.lcd_rgb_mode_en = 0; // i8080 mode (not RGB) + LCD_CAM.lcd_rgb_yuv.lcd_conv_bypass = 0; // Disable RGB/YUV converter + LCD_CAM.lcd_misc.lcd_next_frame_en = 0; // Do NOT auto-frame + LCD_CAM.lcd_data_dout_mode.val = 0; // No data delays + LCD_CAM.lcd_user.lcd_always_out_en = 1; // Enable 'always out' mode + LCD_CAM.lcd_user.lcd_8bits_order = 0; // Do not swap bytes + LCD_CAM.lcd_user.lcd_bit_order = 0; // Do not reverse bit order + LCD_CAM.lcd_user.lcd_2byte_en = 1; // 8-bit data mode + LCD_CAM.lcd_user.lcd_dummy = 0; // Dummy phase(s) @ LCD start + LCD_CAM.lcd_user.lcd_dummy_cyclelen = 0; // 1 dummy phase + LCD_CAM.lcd_user.lcd_cmd = 0; // No command at LCD start + // "Dummy phases" are initial LCD peripheral clock cycles before data + // begins transmitting when requested. After much testing, determined + // that at least one dummy phase MUST be enabled for DMA to trigger + // reliably. A problem with dummy phase(s) is if we're also using the + // LCD_PCLK_IDX signal (not used in this code, but Adafruit_Protomatter + // does)...the clock signal will start a couple of pulses before data, + // which may or may not be problematic in some situations. You can + // disable the dummy phase but need to keep the LCD TX FIFO primed + // in that case, which gets complex. + // always_out_en is set above to allow aribtrary-length transfers, + // else lcd_dout_cyclelen is used...but is limited to 8K. Long (>4K) + // transfers need DMA linked lists, not used here but mentioned later. + + // Route 8 LCD data signals to GPIO pins + int8_t* pins = _cfg.pin_data; + + for(int i = 0; i < 16; i++) + { + if (pins[i] >= 0) { // -1 value will CRASH the ESP32! + esp_rom_gpio_connect_out_signal(pins[i], LCD_DATA_OUT0_IDX + i, false, false); + gpio_hal_iomux_func_sel(GPIO_PIN_MUX_REG[pins[i]], PIN_FUNC_GPIO); + gpio_set_drive_capability((gpio_num_t)pins[i], (gpio_drive_cap_t)3); + } + } + + /* + const struct { + int8_t pin; + uint8_t signal; + } mux[] = { + { 43, LCD_DATA_OUT0_IDX }, // These are 8 consecutive pins down one + { 42, LCD_DATA_OUT1_IDX }, // side of the ESP32-S3 Feather. The ESP32 + { 2, LCD_DATA_OUT2_IDX }, // has super flexible pin MUX capabilities, + { 9, LCD_DATA_OUT3_IDX }, // so any signal can go to any pin! + { 10, LCD_DATA_OUT4_IDX }, + { 11, LCD_DATA_OUT5_IDX }, + { 12, LCD_DATA_OUT6_IDX }, + { 13, LCD_DATA_OUT7_IDX }, + }; + for (int i = 0; i < 8; i++) { + esp_rom_gpio_connect_out_signal(mux[i].pin, LCD_DATA_OUT0_IDX + i, false, false); + gpio_hal_iomux_func_sel(GPIO_PIN_MUX_REG[mux[i].pin], PIN_FUNC_GPIO); + gpio_set_drive_capability((gpio_num_t)mux[i].pin, (gpio_drive_cap_t)3); + } +*/ + // Clock + esp_rom_gpio_connect_out_signal(_cfg.pin_wr, LCD_PCLK_IDX, _cfg.invert_pclk, false); + gpio_hal_iomux_func_sel(GPIO_PIN_MUX_REG[_cfg.pin_wr], PIN_FUNC_GPIO); + gpio_set_drive_capability((gpio_num_t)_cfg.pin_wr, (gpio_drive_cap_t)3); + + // This program has a known fixed-size data buffer (2496 bytes) that fits + // in a single DMA descriptor (max 4095 bytes). Large transfers would + // require a linked list of descriptors, but here it's just one... + + desc.dw0.owner = DMA_DESCRIPTOR_BUFFER_OWNER_DMA; + desc.dw0.suc_eof = 0; // Last descriptor + desc.next = &desc; // No linked list + + + // Remaining descriptor elements are initialized before each DMA transfer. + + // Allocate DMA channel and connect it to the LCD peripheral + static gdma_channel_alloc_config_t dma_chan_config = { + .sibling_chan = NULL, + .direction = GDMA_CHANNEL_DIRECTION_TX, + .flags = { + .reserve_sibling = 0 + } + }; + gdma_new_channel(&dma_chan_config, &dma_chan); + gdma_connect(dma_chan, GDMA_MAKE_TRIGGER(GDMA_TRIG_PERIPH_LCD, 0)); + static gdma_strategy_config_t strategy_config = { + .owner_check = false, + .auto_update_desc = false + }; + gdma_apply_strategy(dma_chan, &strategy_config); + + // Enable DMA transfer callback + static gdma_tx_event_callbacks_t tx_cbs = { + .on_trans_eof = dma_callback + }; + gdma_register_tx_event_callbacks(dma_chan, &tx_cbs, NULL); + + // As mentioned earlier, the slowest clock we can get to the LCD + // peripheral is 40 MHz / 250 / 64 = 2500 Hz. To make an even slower + // bit pattern that's perceptible, we just repeat each value many + // times over. The pattern here just counts through each of 8 bits + // (each LED lights in sequence)...so to get this to repeat at about + // 1 Hz, each LED is lit for 2500/8 or 312 cycles, hence the + // data[8][312] declaration at the start of this code (it's not + // precisely 1 Hz because reality is messy, but sufficient for demo). + // In actual use, say controlling an LED matrix or NeoPixels, such + // shenanigans aren't necessary, as these operate at multiple MHz + // with much smaller clock dividers and can use 1 byte per datum. + /* + for (int i = 0; i < (sizeof(data) / sizeof(data[0])); i++) { // 0 to 7 + for (int j = 0; j < sizeof(data[0]); j++) { // 0 to 311 + data[i][j] = 1 << i; + } + } + */ + + + // This uses a busy loop to wait for each DMA transfer to complete... + // but the whole point of DMA is that one's code can do other work in + // the interim. The CPU is totally free while the transfer runs! + while (LCD_CAM.lcd_user.lcd_start); // Wait for DMA completion callback + + // After much experimentation, each of these steps is required to get + // a clean start on the next LCD transfer: + gdma_reset(dma_chan); // Reset DMA to known state + LCD_CAM.lcd_user.lcd_dout = 1; // Enable data out + LCD_CAM.lcd_user.lcd_update = 1; // Update registers + LCD_CAM.lcd_misc.lcd_afifo_reset = 1; // Reset LCD TX FIFO + + // This program happens to send the same data over and over...but, + // if desired, one could fill the data buffer with a new bit pattern + // here, or point to a completely different buffer each time through. + // With two buffers, one can make best use of time by filling each + // with new data before the busy loop above, alternating between them. + + // Reset elements of DMA descriptor. Just one in this code, long + // transfers would loop through a linked list. + + /* + desc.dw0.size = desc.dw0.length = sizeof(data); + desc.buffer = dmabuff2; //data; + desc.next = &desc; +*/ + + +/* + //gdma_start(dma_chan, (intptr_t)&desc); // Start DMA w/updated descriptor(s) + gdma_start(dma_chan, (intptr_t)&_dmadesc_a[0]); // Start DMA w/updated descriptor(s) + esp_rom_delay_us(100); // Must 'bake' a moment before... + LCD_CAM.lcd_user.lcd_start = 1; // Trigger LCD DMA transfer +*/ + + + return true; // no return val = illegal instruction + + } + + + void Bus_Parallel16::release(void) + { + if (_i80_bus) + { + esp_lcd_del_i80_bus(_i80_bus); + } + if (_dmadesc_a) + { + heap_caps_free(_dmadesc_a); + _dmadesc_a = nullptr; + _dmadesc_count = 0; + } + + } + + void Bus_Parallel16::enable_double_dma_desc(void) + { + //_double_dma_buffer = true; + } + + // Need this to work for double buffers etc. + bool Bus_Parallel16::allocate_dma_desc_memory(size_t len) + { + if (_dmadesc_a) heap_caps_free(_dmadesc_a); // free all dma descrptios previously + _dmadesc_count = len; + + ESP_LOGD(TAG, "Allocating %d bytes memory for DMA descriptors.", sizeof(HUB75_DMA_DESCRIPTOR_T) * len); + + _dmadesc_a= (HUB75_DMA_DESCRIPTOR_T*)heap_caps_malloc(sizeof(HUB75_DMA_DESCRIPTOR_T) * len, MALLOC_CAP_DMA); + + if (_dmadesc_a == nullptr) + { + ESP_LOGE(TAG, "ERROR: Couldn't malloc _dmadesc_a. Not enough memory."); + return false; + } + + _dmadesc_a_idx = 0; + // _dmadesc_b_idx = 0; + + return true; + + } + + void Bus_Parallel16::create_dma_desc_link(void *data, size_t size, bool dmadesc_b) + { + static constexpr size_t MAX_DMA_LEN = (4096-4); + + if (size > MAX_DMA_LEN) + { + size = MAX_DMA_LEN; + ESP_LOGW(TAG, "Creating DMA descriptor which links to payload with size greater than MAX_DMA_LEN!"); + } + + if ( _dmadesc_a_idx >= _dmadesc_count) + { + ESP_LOGE(TAG, "Attempted to create more DMA descriptors than allocated memory for. Expecting a maximum of %d DMA descriptors", _dmadesc_count); + return; + } + + _dmadesc_a[_dmadesc_a_idx].dw0.owner = DMA_DESCRIPTOR_BUFFER_OWNER_DMA; + _dmadesc_a[_dmadesc_a_idx].dw0.suc_eof = 0; + _dmadesc_a[_dmadesc_a_idx].dw0.size = _dmadesc_a[_dmadesc_a_idx].dw0.length = size; //sizeof(data); + _dmadesc_a[_dmadesc_a_idx].buffer = data; //data; + + if (_dmadesc_a_idx == _dmadesc_count-1) { + _dmadesc_a[_dmadesc_a_idx].next = (dma_descriptor_t *) &_dmadesc_a[0]; + } + else { + _dmadesc_a[_dmadesc_a_idx].next = (dma_descriptor_t *) &_dmadesc_a[_dmadesc_a_idx+1]; + } + + _dmadesc_a_idx++; + + + } // end create_dma_desc_link + + void Bus_Parallel16::dma_transfer_start() + { + gdma_start(dma_chan, (intptr_t)&_dmadesc_a[0]); // Start DMA w/updated descriptor(s) + esp_rom_delay_us(100); // Must 'bake' a moment before... + LCD_CAM.lcd_user.lcd_start = 1; // Trigger LCD DMA transfer + + } // end + + void Bus_Parallel16::dma_transfer_stop() + { + + LCD_CAM.lcd_user.lcd_reset = 1; // Trigger LCD DMA transfer + LCD_CAM.lcd_user.lcd_update = 1; // Trigger LCD DMA transfer + + gdma_stop(dma_chan); + + } // end + + + void Bus_Parallel16::flip_dma_output_buffer() + { + + + } // end flip + + diff --git a/src/platforms/esp32s3/gdma_lcd_parallel16.hpp b/src/platforms/esp32s3/gdma_lcd_parallel16.hpp new file mode 100644 index 0000000..810eacb --- /dev/null +++ b/src/platforms/esp32s3/gdma_lcd_parallel16.hpp @@ -0,0 +1,176 @@ +/* + Simple example of using the ESP32-S3's LCD peripheral for general-purpose + (non-LCD) parallel data output with DMA. Connect 8 LEDs (or logic analyzer), + cycles through a pattern among them at about 1 Hz. + This code is ONLY for the ESP32-S3, NOT the S2, C3 or original ESP32. + None of this is authoritative canon, just a lot of trial error w/datasheet + and register poking. Probably more robust ways of doing this still TBD. + + + FULL CREDIT goes to AdaFruit + + https://blog.adafruit.com/2022/06/21/esp32uesday-more-s3-lcd-peripheral-hacking-with-code/ + + PLEASE SUPPORT THEM! + + + Putin’s Russia and its genocide in Ukraine is a disgrace to humanity. + + https://www.reddit.com/r/ukraine/comments/xfuc6v/more_than_460_graves_have_already_been_found_in/ + + +/---------------------------------------------------------------------------- + +*/ + +#pragma once + +#if __has_include () + +#include +#include + +//#include +#include + +#include +#include + +#include +#include + + +#include +#include + + + +#include +#include + +#include + +#if (ESP_IDF_VERSION_MAJOR == 5) +#include +#else +#include +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#if __has_include () + #include +#else + #include +#endif + +#if __has_include() + #include +#endif + +#define DMA_MAX (4096-4) + +// The type used for this SoC +#define HUB75_DMA_DESCRIPTOR_T dma_descriptor_t + + +//---------------------------------------------------------------------------- + + class Bus_Parallel16 + { + public: + Bus_Parallel16() + { + + } + + struct config_t + { + // LCD_CAM peripheral number. No need to change (only 0 for ESP32-S3.) + int port = 0; + + // max 40MHz (when in 16 bit / 2 byte mode) + uint32_t bus_freq = 20000000; + int8_t pin_wr = -1; + int8_t pin_rd = -1; + int8_t pin_rs = -1; // D/C + bool invert_pclk = false; + union + { + int8_t pin_data[16]; + struct + { + int8_t pin_d0; + int8_t pin_d1; + int8_t pin_d2; + int8_t pin_d3; + int8_t pin_d4; + int8_t pin_d5; + int8_t pin_d6; + int8_t pin_d7; + int8_t pin_d8; + int8_t pin_d9; + int8_t pin_d10; + int8_t pin_d11; + int8_t pin_d12; + int8_t pin_d13; + int8_t pin_d14; + int8_t pin_d15; + }; + }; + }; + + const config_t& config(void) const { return _cfg; } + void config(const config_t& config); + + bool init(void) ; + + void release(void) ; + + void enable_double_dma_desc(); + bool allocate_dma_desc_memory(size_t len); + + void create_dma_desc_link(void *memory, size_t size, bool dmadesc_b = false); + + void dma_transfer_start(); + void dma_transfer_stop(); + + void flip_dma_output_buffer(); + + private: + + config_t _cfg; + + volatile lcd_cam_dev_t* _dev; + gdma_channel_handle_t dma_chan; + + uint32_t _dmadesc_count = 0; // number of dma decriptors + uint32_t _dmadesc_a_idx = 0; + + HUB75_DMA_DESCRIPTOR_T* _dmadesc_a = nullptr; + + // uint32_t _clock_reg_value; + // uint32_t _fast_wait = 0; + + //bool _double_dma_buffer = false; + //bool _dmadesc_a_active = true; + + //uint32_t _dmadesc_b_idx = 0; + + //HUB75_DMA_DESCRIPTOR_T* _dmadesc_b = nullptr; + + esp_lcd_i80_bus_handle_t _i80_bus; + + + }; + + +#endif \ No newline at end of file diff --git a/src/platforms/platform_detect.hpp b/src/platforms/platform_detect.hpp new file mode 100644 index 0000000..f660a5e --- /dev/null +++ b/src/platforms/platform_detect.hpp @@ -0,0 +1,57 @@ +/*----------------------------------------------------------------------------/ +Original Source: + https://github.com/lovyan03/LovyanGFX/ + +Licence: + [FreeBSD](https://github.com/lovyan03/LovyanGFX/blob/master/license.txt) + +Author: + [lovyan03](https://twitter.com/lovyan03) + +Contributors: + [ciniml](https://github.com/ciniml) + [mongonta0716](https://github.com/mongonta0716) + [tobozo](https://github.com/tobozo) + +Modified heavily for the ESP32 HUB75 DMA library by: + [mrfaptastic](https://github.com/mrfaptastic) +/----------------------------------------------------------------------------*/ +#pragma once + +#if defined (ESP_PLATFORM) + + #include + + #if defined (CONFIG_IDF_TARGET_ESP32C3) + + #error "ERROR: ESP32C3 not supported." + + #elif defined (CONFIG_IDF_TARGET_ESP32S2) + + #pragma message "Compiling for ESP32-S2" + #include "esp32/esp32_i2s_parallel_dma.hpp" + #include "esp32s2/esp32s2-default-pins.hpp" + + + #elif defined (CONFIG_IDF_TARGET_ESP32S3) + + #pragma message "Compiling for ESP32-S3" + #include "esp32s3/gdma_lcd_parallel16.hpp" + #include "esp32s3/esp32s3-default-pins.hpp" + + #else + + // Assume an ESP32 (the original 2015 version) + // Same include as ESP32S3 + #pragma message "Compiling for original ESP32 (2015 release)" + #define ESP32_THE_ORIG 1 + //#include "esp32/esp32_i2s_parallel_dma.hpp" + //#include "esp32/esp32_i2s_parallel_dma.h" + #include "esp32/esp32_i2s_parallel_dma.hpp" + #include "esp32/esp32-default-pins.hpp" + + #endif + + +#endif + From b490699eabbb755cb23204bb6343395bbe47d08d Mon Sep 17 00:00:00 2001 From: mrfaptastic <12006953+mrfaptastic@users.noreply.github.com> Date: Fri, 30 Sep 2022 03:25:13 +0100 Subject: [PATCH 02/13] Delete esp32_i2s_parallel_mcu_def.h.txt --- src/esp32_i2s_parallel_mcu_def.h.txt | 35 ---------------------------- 1 file changed, 35 deletions(-) delete mode 100644 src/esp32_i2s_parallel_mcu_def.h.txt diff --git a/src/esp32_i2s_parallel_mcu_def.h.txt b/src/esp32_i2s_parallel_mcu_def.h.txt deleted file mode 100644 index dd276da..0000000 --- a/src/esp32_i2s_parallel_mcu_def.h.txt +++ /dev/null @@ -1,35 +0,0 @@ -#pragma once - -/* Abstract the Espressif IDF ESP32 MCU variant compile-time defines - * into another list for the purposes of this library. - * - * i.e. I couldn't be bothered having to update the library when they - * release the ESP32S4,5,6,7, n+1 etc. if they are all fundamentally - * the same architecture. - */ -#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 - - #define ESP32_SXXX 1 - #define ESP32_I2S_DEVICE I2S_NUM_0 - - #define I2S_PARALLEL_CLOCK_HZ 160000000L - #define DMA_MAX (4096-4) - -#elif CONFIG_IDF_TARGET_ESP32 || defined(ESP32) - - // 2016 model that started it all, and this library. The best. - #define ESP32_ORIG 1 - #define ESP32_I2S_DEVICE I2S_NUM_0 - - #define I2S_PARALLEL_CLOCK_HZ 80000000L - #define DMA_MAX (4096-4) - -#elif CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32H2 - - #error "ESPC-series RISC-V MCU's do not support parallel DMA and not supported by this library!" - #define ESP32_CXXX 1 - -#else - #error "ERROR: No ESP32 or ESP32 Espressif IDF detected at compile time." - -#endif \ No newline at end of file From 2db8f26659014b35c9a0a3b2ab1ca437bf7daa4e Mon Sep 17 00:00:00 2001 From: mrfaptastic <12006953+mrfaptastic@users.noreply.github.com> Date: Fri, 30 Sep 2022 11:13:05 +0100 Subject: [PATCH 03/13] Minor update. --- library.json | 6 +++--- library.properties | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/library.json b/library.json index 0b09eac..1f8201e 100644 --- a/library.json +++ b/library.json @@ -1,7 +1,7 @@ { "name": "ESP32 HUB75 LED MATRIX PANEL DMA Display", - "keywords": "hub75, esp32, display, dma, rgb matrix", - "description": "An experimental Adafruit GFX compatible library for 64x32 or 64x64 LED matrix modules using the ESP32 DMA Engine for ultra-fast refresh rates, no-interrupts and therefore very low CPU usage.", + "keywords": "hub75, esp32, esp32s2, esp32s3, display, dma, rgb matrix", + "description": "An Adafruit GFX compatible library for 64x32 or 64x64 LED matrix modules using the ESP32 DMA Engine for ultra-fast refresh rates, no-interrupts and therefore very low CPU usage.", "repository": { "type": "git", "url": "https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-I2S-DMA.git" @@ -10,7 +10,7 @@ "name": "Faptastic", "url": "https://github.com/mrfaptastic/" }, - "version": "2.0.7", + "version": "3.0.0", "frameworks": "arduino", "platforms": "esp32", "examples": [ diff --git a/library.properties b/library.properties index ce8c832..43f2437 100644 --- a/library.properties +++ b/library.properties @@ -1,9 +1,9 @@ name=ESP32 HUB75 LED MATRIX PANEL DMA Display -version=2.0.7 +version= 3.0.0 author=Faptastic maintainer=Faptastic -sentence=Experimental DMA based LED Matrix HUB75 Library -paragraph=An experimental Adafruit GFX compatible library for 64x32 or 64x64 LED matrix modules using the ESP32 DMA Engine for ultra-fast refresh rates, no-interrupts and therefore very low CPU usage. +sentence=DMA based LED Matrix HUB75 Library +paragraph=An Adafruit GFX compatible library for 64x32 or 64x64 LED matrix modules using the ESP32 DMA Engine for ultra-fast refresh rates, no-interrupts and therefore very low CPU usage. category=Display url=https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-I2S-DMA architectures=esp32 From 30f0014b0cee9c16c88a2beda31e7d636f90b4b8 Mon Sep 17 00:00:00 2001 From: mrfaptastic <12006953+mrfaptastic@users.noreply.github.com> Date: Fri, 30 Sep 2022 11:31:53 +0100 Subject: [PATCH 04/13] Enable double buffering Doesn't work though with new refactored code on S3 device - do not use... --- src/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp | 3 + .../esp32/esp32_i2s_parallel_dma.cpp | 3 + src/platforms/esp32s3/gdma_lcd_parallel16.cpp | 59 ++++++++++++++++++- src/platforms/esp32s3/gdma_lcd_parallel16.hpp | 12 ++-- 4 files changed, 66 insertions(+), 11 deletions(-) diff --git a/src/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp b/src/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp index 6d8e521..740071c 100644 --- a/src/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp +++ b/src/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp @@ -98,6 +98,9 @@ bool MatrixPanel_I2S_DMA::allocateDMAmemory() // malloc the DMA linked list descriptors that i2s_parallel will need desccount = numDMAdescriptorsPerRow * ROWS_PER_FRAME; + if (m_cfg.double_buff) + dma_bus.enable_double_dma_desc(); + dma_bus.allocate_dma_desc_memory(desccount); /* diff --git a/src/platforms/esp32/esp32_i2s_parallel_dma.cpp b/src/platforms/esp32/esp32_i2s_parallel_dma.cpp index 94f0d50..fb0905d 100644 --- a/src/platforms/esp32/esp32_i2s_parallel_dma.cpp +++ b/src/platforms/esp32/esp32_i2s_parallel_dma.cpp @@ -564,6 +564,9 @@ static void IRAM_ATTR irq_hndlr(void* arg) { // if we use I2S1 (default) _dmadesc_a[_dmadesc_count-1].qe.stqe_next = &_dmadesc_a[0]; _dmadesc_b[_dmadesc_count-1].qe.stqe_next = &_dmadesc_a[0]; } + + _dmadesc_a_active ^= _dmadesc_a_active; + } // end flip diff --git a/src/platforms/esp32s3/gdma_lcd_parallel16.cpp b/src/platforms/esp32s3/gdma_lcd_parallel16.cpp index 785e489..0b25c77 100644 --- a/src/platforms/esp32s3/gdma_lcd_parallel16.cpp +++ b/src/platforms/esp32s3/gdma_lcd_parallel16.cpp @@ -269,7 +269,7 @@ void Bus_Parallel16::enable_double_dma_desc(void) { - //_double_dma_buffer = true; + _double_dma_buffer = true; } // Need this to work for double buffers etc. @@ -288,8 +288,20 @@ return false; } + if (_double_dma_buffer) + { + _dmadesc_b= (HUB75_DMA_DESCRIPTOR_T*)heap_caps_malloc(sizeof(HUB75_DMA_DESCRIPTOR_T) * len, MALLOC_CAP_DMA); + + if (_dmadesc_b == nullptr) + { + ESP_LOGE(TAG, "ERROR: Couldn't malloc _dmadesc_b. Not enough memory."); + _double_dma_buffer = false; + } + } + + _dmadesc_a_idx = 0; - // _dmadesc_b_idx = 0; + _dmadesc_b_idx = 0; return true; @@ -311,6 +323,29 @@ return; } + if (_double_dma_buffer == true && dmadesc_b == true) + { + + _dmadesc_b[_dmadesc_b_idx].dw0.owner = DMA_DESCRIPTOR_BUFFER_OWNER_DMA; + _dmadesc_b[_dmadesc_b_idx].dw0.suc_eof = 0; + _dmadesc_b[_dmadesc_b_idx].dw0.size = _dmadesc_b[_dmadesc_b_idx].dw0.length = size; //sizeof(data); + _dmadesc_b[_dmadesc_b_idx].buffer = data; //data; + + if (_dmadesc_b_idx == _dmadesc_count-1) { + _dmadesc_b[_dmadesc_b_idx].next = (dma_descriptor_t *) &_dmadesc_b[0]; + } + else { + _dmadesc_b[_dmadesc_b_idx].next = (dma_descriptor_t *) &_dmadesc_b[_dmadesc_b_idx+1]; + } + + _dmadesc_b_idx++; + + + + } + else + { + _dmadesc_a[_dmadesc_a_idx].dw0.owner = DMA_DESCRIPTOR_BUFFER_OWNER_DMA; _dmadesc_a[_dmadesc_a_idx].dw0.suc_eof = 0; _dmadesc_a[_dmadesc_a_idx].dw0.size = _dmadesc_a[_dmadesc_a_idx].dw0.length = size; //sizeof(data); @@ -326,6 +361,8 @@ _dmadesc_a_idx++; + } + } // end create_dma_desc_link void Bus_Parallel16::dma_transfer_start() @@ -349,7 +386,23 @@ void Bus_Parallel16::flip_dma_output_buffer() { - + + if ( _double_dma_buffer == false) return; + + if ( _dmadesc_a_active == true) // change across to everything 'b'' + { + _dmadesc_a[_dmadesc_count-1].next = (dma_descriptor_t *) &_dmadesc_b[0]; + _dmadesc_b[_dmadesc_count-1].next = (dma_descriptor_t *) &_dmadesc_b[0]; + } + else + { + _dmadesc_a[_dmadesc_count-1].next = (dma_descriptor_t *) &_dmadesc_a[0]; + _dmadesc_b[_dmadesc_count-1].next = (dma_descriptor_t *) &_dmadesc_a[0]; + } + + _dmadesc_a_active ^= _dmadesc_a_active; + + } // end flip diff --git a/src/platforms/esp32s3/gdma_lcd_parallel16.hpp b/src/platforms/esp32s3/gdma_lcd_parallel16.hpp index 810eacb..2417626 100644 --- a/src/platforms/esp32s3/gdma_lcd_parallel16.hpp +++ b/src/platforms/esp32s3/gdma_lcd_parallel16.hpp @@ -157,15 +157,11 @@ HUB75_DMA_DESCRIPTOR_T* _dmadesc_a = nullptr; - // uint32_t _clock_reg_value; - // uint32_t _fast_wait = 0; - - //bool _double_dma_buffer = false; - //bool _dmadesc_a_active = true; - - //uint32_t _dmadesc_b_idx = 0; + bool _double_dma_buffer = false; + bool _dmadesc_a_active = true; + uint32_t _dmadesc_b_idx = 0; - //HUB75_DMA_DESCRIPTOR_T* _dmadesc_b = nullptr; + HUB75_DMA_DESCRIPTOR_T* _dmadesc_b = nullptr; esp_lcd_i80_bus_handle_t _i80_bus; From f0a5d1ad5487276bffef92fcce224e32443c2955 Mon Sep 17 00:00:00 2001 From: mrfaptastic <12006953+mrfaptastic@users.noreply.github.com> Date: Fri, 30 Sep 2022 11:56:17 +0100 Subject: [PATCH 05/13] Update gdma_lcd_parallel16.cpp --- src/platforms/esp32s3/gdma_lcd_parallel16.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/platforms/esp32s3/gdma_lcd_parallel16.cpp b/src/platforms/esp32s3/gdma_lcd_parallel16.cpp index 0b25c77..19a5865 100644 --- a/src/platforms/esp32s3/gdma_lcd_parallel16.cpp +++ b/src/platforms/esp32s3/gdma_lcd_parallel16.cpp @@ -7,10 +7,12 @@ and register poking. Probably more robust ways of doing this still TBD. - FULL CREDIT goes to AdaFruit + FULL CREDIT goes to AdaFruit and https://github.com/PaintYourDragon https://blog.adafruit.com/2022/06/21/esp32uesday-more-s3-lcd-peripheral-hacking-with-code/ + https://github.com/adafruit/Adafruit_Protomatter/blob/master/src/arch/esp32-s3.h + PLEASE SUPPORT THEM! */ @@ -71,7 +73,7 @@ LCD_CAM.lcd_user.lcd_reset = 1; esp_rom_delay_us(100); - auto lcd_clkm_div_num = 160000000 / _cfg.bus_freq / 2; + auto lcd_clkm_div_num = 160000000 / _cfg.bus_freq; ESP_LOGI(TAG, "Clock divider is %d", lcd_clkm_div_num); @@ -185,11 +187,19 @@ }; gdma_apply_strategy(dma_chan, &strategy_config); + gdma_transfer_ability_t ability = { + .sram_trans_align = 0, + .psram_trans_align = 0, + }; + gdma_set_transfer_ability(dma_chan, &ability); + // Enable DMA transfer callback + /* static gdma_tx_event_callbacks_t tx_cbs = { .on_trans_eof = dma_callback }; gdma_register_tx_event_callbacks(dma_chan, &tx_cbs, NULL); + */ // As mentioned earlier, the slowest clock we can get to the LCD // peripheral is 40 MHz / 250 / 64 = 2500 Hz. To make an even slower From 69e75cde12f5c851a57390a100dabcfc279bfc47 Mon Sep 17 00:00:00 2001 From: mrfaptastic <12006953+mrfaptastic@users.noreply.github.com> Date: Wed, 5 Oct 2022 21:47:16 +0100 Subject: [PATCH 06/13] Cleanup Consistent spelling of 'colour', double buffering works technically on S3. --- src/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp | 293 +++++++----------- src/ESP32-HUB75-MatrixPanel-I2S-DMA.h | 86 ++--- src/ESP32-HUB75-MatrixPanel-leddrivers.cpp | 8 +- .../esp32/esp32_i2s_parallel_dma.cpp | 15 +- .../esp32/esp32_i2s_parallel_dma.hpp | 4 +- src/platforms/esp32s3/gdma_lcd_parallel16.cpp | 44 +-- src/platforms/esp32s3/gdma_lcd_parallel16.hpp | 16 +- src/platforms/platform_detect.hpp | 2 +- 8 files changed, 197 insertions(+), 271 deletions(-) diff --git a/src/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp b/src/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp index 740071c..ebce242 100644 --- a/src/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp +++ b/src/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp @@ -20,13 +20,11 @@ bool MatrixPanel_I2S_DMA::allocateDMAmemory() // iterate through number of rows for (int malloc_num =0; malloc_num < ROWS_PER_FRAME; ++malloc_num) { - auto ptr = std::make_shared(PIXELS_PER_ROW, PIXEL_COLOR_DEPTH_BITS, m_cfg.double_buff); + auto ptr = std::make_shared(PIXELS_PER_ROW, PIXEL_COLOUR_DEPTH_BITS, m_cfg.double_buff); if (ptr->data == nullptr) { - #if SERIAL_DEBUG - Serial.printf_P(PSTR("ERROR: Couldn't malloc rowBitStruct %d! Critical fail.\r\n"), malloc_num); - #endif + ESP_LOGE(TAG, "ERROR: Couldn't malloc rowBitStruct %d! Critical fail.\r\n", malloc_num); return false; // TODO: should we release all previous rowBitStructs here??? } @@ -41,24 +39,22 @@ bool MatrixPanel_I2S_DMA::allocateDMAmemory() int nsPerLatch = ((PIXELS_PER_ROW + CLKS_DURING_LATCH) * psPerClock) / 1000; // add time to shift out LSBs + LSB-MSB transition bit - this ignores fractions... - int nsPerRow = PIXEL_COLOR_DEPTH_BITS * nsPerLatch; + int nsPerRow = PIXEL_COLOUR_DEPTH_BITS * nsPerLatch; // add time to shift out MSBs - for(int i=lsbMsbTransitionBit + 1; i m_cfg.min_refresh_rate) break; - if(lsbMsbTransitionBit < PIXEL_COLOR_DEPTH_BITS - 1) + if(lsbMsbTransitionBit < PIXEL_COLOUR_DEPTH_BITS - 1) lsbMsbTransitionBit++; else break; @@ -71,22 +67,20 @@ bool MatrixPanel_I2S_DMA::allocateDMAmemory() * memory allocation of the DMA linked list memory structure. */ int numDMAdescriptorsPerRow = 1; - for(int i=lsbMsbTransitionBit + 1; isize() > DMA_MAX ) { + if ( dma_buff.rowBits[0]->size() > DMA_MAX ) + { - #if SERIAL_DEBUG - Serial.printf_P(PSTR("rowColorDepthStruct struct is too large, split DMA payload required. Adding %d DMA descriptors\n"), PIXEL_COLOR_DEPTH_BITS-1); - #endif + ESP_LOGW(TAG, "rowColorDepthStruct struct is too large, split DMA payload required. Adding %d DMA descriptors\n", PIXEL_COLOUR_DEPTH_BITS-1); - numDMAdescriptorsPerRow += PIXEL_COLOR_DEPTH_BITS-1; + numDMAdescriptorsPerRow += PIXEL_COLOUR_DEPTH_BITS-1; // Note: If numDMAdescriptorsPerRow is even just one descriptor too large, DMA linked list will not correctly loop. } @@ -103,31 +97,6 @@ bool MatrixPanel_I2S_DMA::allocateDMAmemory() dma_bus.allocate_dma_desc_memory(desccount); -/* - //lldesc_t * dmadesc_a = (lldesc_t *)heap_caps_malloc(desccount * sizeof(lldesc_t), MALLOC_CAP_DMA); - dmadesc_a = (lldesc_t *)heap_caps_malloc(desccount * sizeof(lldesc_t), MALLOC_CAP_DMA); - assert("Can't allocate descriptor framebuffer a"); - if(!dmadesc_a) { -#if SERIAL_DEBUG - Serial.println(F("ERROR: Could not malloc descriptor framebuffer a.")); -#endif - return false; - } - - if (m_cfg.double_buff) // reserve space for second framebuffer linked list - { - //lldesc_t * dmadesc_b = (lldesc_t *)heap_caps_malloc(desccount * sizeof(lldesc_t), MALLOC_CAP_DMA); - dmadesc_b = (lldesc_t *)heap_caps_malloc(desccount * sizeof(lldesc_t), MALLOC_CAP_DMA); - assert("Could not malloc descriptor framebuffer b."); - if(!dmadesc_b) { -#if SERIAL_DEBUG - Serial.println(F("ERROR: Could not malloc descriptor framebuffer b.")); -#endif - return false; - } - } - */ - // Just os we know initialized = true; @@ -144,27 +113,26 @@ void MatrixPanel_I2S_DMA::configureDMA(const HUB75_I2S_CFG& _cfg) // lldesc_t *previous_dmadesc_b = 0; int current_dmadescriptor_offset = 0; - // HACK: If we need to split the payload in 1/2 so that it doesn't breach DMA_MAX, lets do it by the color_depth. - int num_dma_payload_color_depths = PIXEL_COLOR_DEPTH_BITS; + // HACK: If we need to split the payload in 1/2 so that it doesn't breach DMA_MAX, lets do it by the colour_depth. + int num_dma_payload_colour_depths = PIXEL_COLOUR_DEPTH_BITS; if ( dma_buff.rowBits[0]->size() > DMA_MAX ) { - num_dma_payload_color_depths = 1; + num_dma_payload_colour_depths = 1; } // Fill DMA linked lists for both frames (as in, halves of the HUB75 panel) and if double buffering is enabled, link it up for both buffers. - for(int row = 0; row < ROWS_PER_FRAME; row++) { - - // first set of data is LSB through MSB, single pass (IF TOTAL SIZE < DMA_MAX) - all color bits are displayed once, which takes care of everything below and including LSBMSB_TRANSITION_BIT + for(int row = 0; row < ROWS_PER_FRAME; row++) + { + // first set of data is LSB through MSB, single pass (IF TOTAL SIZE < DMA_MAX) - all colour bits are displayed once, which takes care of everything below and including LSBMSB_TRANSITION_BIT // NOTE: size must be less than DMA_MAX - worst case for library: 16-bpp with 256 pixels per row would exceed this, need to break into two - //link_dma_desc(&dmadesc_a[current_dmadescriptor_offset], previous_dmadesc_a, dma_buff.rowBits[row]->getDataPtr(), dma_buff.rowBits[row]->size(num_dma_payload_color_depths)); + //link_dma_desc(&dmadesc_a[current_dmadescriptor_offset], previous_dmadesc_a, dma_buff.rowBits[row]->getDataPtr(), dma_buff.rowBits[row]->size(num_dma_payload_colour_depths)); // previous_dmadesc_a = &dmadesc_a[current_dmadescriptor_offset]; - dma_bus.create_dma_desc_link(dma_buff.rowBits[row]->getDataPtr(), dma_buff.rowBits[row]->size(num_dma_payload_color_depths)); + dma_bus.create_dma_desc_link(dma_buff.rowBits[row]->getDataPtr(0, 0), dma_buff.rowBits[row]->size(num_dma_payload_colour_depths), false); - if (m_cfg.double_buff) { - dma_bus.create_dma_desc_link(dma_buff.rowBits[row]->getDataPtr(), dma_buff.rowBits[row]->size(num_dma_payload_color_depths), true); - //link_dma_desc(&dmadesc_b[current_dmadescriptor_offset], previous_dmadesc_b, dma_buff.rowBits[row]->getDataPtr(0, 1), dma_buff.rowBits[row]->size(num_dma_payload_color_depths)); - //previous_dmadesc_b = &dmadesc_b[current_dmadescriptor_offset]; - } + if (m_cfg.double_buff) + { + dma_bus.create_dma_desc_link(dma_buff.rowBits[row]->getDataPtr(0, 1), dma_buff.rowBits[row]->size(num_dma_payload_colour_depths), true); + } current_dmadescriptor_offset++; @@ -172,14 +140,12 @@ void MatrixPanel_I2S_DMA::configureDMA(const HUB75_I2S_CFG& _cfg) if ( dma_buff.rowBits[0]->size() > DMA_MAX ) { - for (int cd = 1; cd < PIXEL_COLOR_DEPTH_BITS; cd++) + for (int cd = 1; cd < PIXEL_COLOUR_DEPTH_BITS; cd++) { - dma_bus.create_dma_desc_link(dma_buff.rowBits[row]->getDataPtr(cd, 0), dma_buff.rowBits[row]->size(num_dma_payload_color_depths)); + dma_bus.create_dma_desc_link(dma_buff.rowBits[row]->getDataPtr(cd, 0), dma_buff.rowBits[row]->size(num_dma_payload_colour_depths), false); if (m_cfg.double_buff) { - dma_bus.create_dma_desc_link(dma_buff.rowBits[row]->getDataPtr(cd, 0), dma_buff.rowBits[row]->size(num_dma_payload_color_depths),true); - //link_dma_desc(&dmadesc_b[current_dmadescriptor_offset], previous_dmadesc_b, dma_buff.rowBits[row]->getDataPtr(cd, 1), dma_buff.rowBits[row]->size(num_dma_payload_color_depths)); - //previous_dmadesc_b = &dmadesc_b[current_dmadescriptor_offset]; + dma_bus.create_dma_desc_link(dma_buff.rowBits[row]->getDataPtr(cd, 1), dma_buff.rowBits[row]->size(num_dma_payload_colour_depths), true); } current_dmadescriptor_offset++; @@ -188,74 +154,28 @@ void MatrixPanel_I2S_DMA::configureDMA(const HUB75_I2S_CFG& _cfg) } // row depth struct - for(int i=lsbMsbTransitionBit + 1; igetDataPtr(i, 0), dma_buff.rowBits[row]->size(PIXEL_COLOR_DEPTH_BITS - i) ); -// previous_dmadesc_a = &dmadesc_a[current_dmadescriptor_offset]; - - dma_bus.create_dma_desc_link(dma_buff.rowBits[row]->getDataPtr(i, 0), dma_buff.rowBits[row]->size(PIXEL_COLOR_DEPTH_BITS - i) ); + dma_bus.create_dma_desc_link(dma_buff.rowBits[row]->getDataPtr(i, 0), dma_buff.rowBits[row]->size(PIXEL_COLOUR_DEPTH_BITS - i), false); if (m_cfg.double_buff) { - dma_bus.create_dma_desc_link(dma_buff.rowBits[row]->getDataPtr(i, 0), dma_buff.rowBits[row]->size(PIXEL_COLOR_DEPTH_BITS - i), true ); - //link_dma_desc(&dmadesc_b[current_dmadescriptor_offset], previous_dmadesc_b, dma_buff.rowBits[row]->getDataPtr(i, 1), dma_buff.rowBits[row]->size(PIXEL_COLOR_DEPTH_BITS - i) ); - //previous_dmadesc_b = &dmadesc_b[current_dmadescriptor_offset]; + dma_bus.create_dma_desc_link(dma_buff.rowBits[row]->getDataPtr(i, 1), dma_buff.rowBits[row]->size(PIXEL_COLOUR_DEPTH_BITS - i), true ); } - + current_dmadescriptor_offset++; - } // end color depth ^ 2 linked list - } // end color depth loop + } // end colour depth ^ 2 linked list + } // end colour depth loop } // end frame rows -/* - #if SERIAL_DEBUG - Serial.printf_P(PSTR("configureDMA(): Configured LL structure. %d DMA Linked List descriptors populated.\r\n"), current_dmadescriptor_offset); - - if ( desccount != current_dmadescriptor_offset) - { - Serial.printf_P(PSTR("configureDMA(): ERROR! Expected descriptor count of %d != actual DMA descriptors of %d!\r\n"), desccount, current_dmadescriptor_offset); - } - #endif - //End markers for DMA LL - dmadesc_a[desccount-1].eof = 1; - dmadesc_a[desccount-1].qe.stqe_next=(lldesc_t*)&dmadesc_a[0]; - - if (m_cfg.double_buff) { - dmadesc_b[desccount-1].eof = 1; - dmadesc_b[desccount-1].qe.stqe_next=(lldesc_t*)&dmadesc_b[0]; - } else { - dmadesc_b = dmadesc_a; // link to same 'a' buffer - } - -#if SERIAL_DEBUG - Serial.println(F("Performing I2S setup:")); -#endif - - i2s_parallel_config_t dma_cfg = { - .gpio_bus={_cfg.gpio.r1, _cfg.gpio.g1, _cfg.gpio.b1, _cfg.gpio.r2, _cfg.gpio.g2, _cfg.gpio.b2, _cfg.gpio.lat, _cfg.gpio.oe, _cfg.gpio.a, _cfg.gpio.b, _cfg.gpio.c, _cfg.gpio.d, _cfg.gpio.e, -1, -1, -1}, - .gpio_clk=_cfg.gpio.clk, - .sample_rate=_cfg.i2sspeed, - .sample_width=ESP32_I2S_DMA_MODE, - .desccount_a=desccount, - .lldesc_a=dmadesc_a, - .desccount_b=desccount, - .lldesc_b=dmadesc_b, - .clkphase=_cfg.clkphase, - .int_ena_out_eof=_cfg.double_buff - }; - - // Setup I2S - //i2s_parallel_driver_install(ESP32_I2S_DEVICE, &dma_cfg); - -*/ + ESP_LOGI(TAG, "%d DMA descriptors linked to buffer data."); // // Setup DMA and Output to GPIO @@ -315,12 +235,7 @@ void MatrixPanel_I2S_DMA::configureDMA(const HUB75_I2S_CFG& _cfg) */ void IRAM_ATTR MatrixPanel_I2S_DMA::updateMatrixDMABuffer(int16_t x_coord, int16_t y_coord, uint8_t red, uint8_t green, uint8_t blue) { - if ( !initialized ) { - #if SERIAL_DEBUG - Serial.println(F("Cannot updateMatrixDMABuffer as setup failed!")); - #endif - return; - } + if ( !initialized ) return; /* 1) Check that the co-ordinates are within range, or it'll break everything big time. * Valid co-ordinates are from 0 to (MATRIX_XXXX-1) @@ -331,7 +246,7 @@ void IRAM_ATTR MatrixPanel_I2S_DMA::updateMatrixDMABuffer(int16_t x_coord, int16 /* LED Brightness Compensation. Because if we do a basic "red & mask" for example, * we'll NEVER send the dimmest possible colour, due to binary skew. - * i.e. It's almost impossible for color_depth_idx of 0 to be sent out to the MATRIX unless the 'value' of a color is exactly '1' + * i.e. It's almost impossible for colour_depth_idx of 0 to be sent out to the MATRIX unless the 'value' of a color is exactly '1' * https://ledshield.wordpress.com/2012/11/13/led-brightness-to-your-eye-gamma-correction-no/ */ #ifndef NO_CIE1931 @@ -360,23 +275,23 @@ void IRAM_ATTR MatrixPanel_I2S_DMA::updateMatrixDMABuffer(int16_t x_coord, int16 #endif - uint16_t _colorbitclear = BITMASK_RGB1_CLEAR, _colorbitoffset = 0; + uint16_t _colourbitclear = BITMASK_RGB1_CLEAR, _colourbitoffset = 0; if (y_coord >= ROWS_PER_FRAME){ // if we are drawing to the bottom part of the panel - _colorbitoffset = BITS_RGB2_OFFSET; - _colorbitclear = BITMASK_RGB2_CLEAR; + _colourbitoffset = BITS_RGB2_OFFSET; + _colourbitclear = BITMASK_RGB2_CLEAR; y_coord -= ROWS_PER_FRAME; } // Iterating through colour depth bits, which we assume are 8 bits per RGB subpixel (24bpp) - uint8_t color_depth_idx = PIXEL_COLOR_DEPTH_BITS; + uint8_t colour_depth_idx = PIXEL_COLOUR_DEPTH_BITS; do { - --color_depth_idx; -// uint8_t mask = (1 << (color_depth_idx COLOR_DEPTH_LESS_THAN_8BIT_ADJUST)); // expect 24 bit color (8 bits per RGB subpixel) - #if PIXEL_COLOR_DEPTH_BITS < 8 - uint8_t mask = (1 << (color_depth_idx+MASK_OFFSET)); // expect 24 bit color (8 bits per RGB subpixel) + --colour_depth_idx; +// uint8_t mask = (1 << (colour_depth_idx COLOR_DEPTH_LESS_THAN_8BIT_ADJUST)); // expect 24 bit colour (8 bits per RGB subpixel) + #if PIXEL_COLOUR_DEPTH_BITS < 8 + uint8_t mask = (1 << (colour_depth_idx+MASK_OFFSET)); // expect 24 bit colour (8 bits per RGB subpixel) #else - uint8_t mask = (1 << (color_depth_idx)); // expect 24 bit color (8 bits per RGB subpixel) + uint8_t mask = (1 << (colour_depth_idx)); // expect 24 bit color (8 bits per RGB subpixel) #endif uint16_t RGB_output_bits = 0; @@ -387,20 +302,20 @@ void IRAM_ATTR MatrixPanel_I2S_DMA::updateMatrixDMABuffer(int16_t x_coord, int16 RGB_output_bits |= (bool)(green & mask); // -BG RGB_output_bits <<= 1; RGB_output_bits |= (bool)(red & mask); // BGR - RGB_output_bits <<= _colorbitoffset; // shift color bits to the required position + RGB_output_bits <<= _colourbitoffset; // shift colour bits to the required position // Get the contents at this address, // it would represent a vector pointing to the full row of pixels for the specified color depth bit at Y coordinate - //ESP32_I2S_DMA_STORAGE_TYPE *p = getRowDataPtr(y_coord, color_depth_idx, back_buffer_id); - ESP32_I2S_DMA_STORAGE_TYPE *p = dma_buff.rowBits[y_coord]->getDataPtr(color_depth_idx, back_buffer_id); + //ESP32_I2S_DMA_STORAGE_TYPE *p = getRowDataPtr(y_coord, colour_depth_idx, back_buffer_id); + ESP32_I2S_DMA_STORAGE_TYPE *p = dma_buff.rowBits[y_coord]->getDataPtr(colour_depth_idx, back_buffer_id); // We need to update the correct uint16_t word in the rowBitStruct array pointing to a specific pixel at X - coordinate - p[x_coord] &= _colorbitclear; // reset RGB bits + p[x_coord] &= _colourbitclear; // reset RGB bits p[x_coord] |= RGB_output_bits; // set new RGB bits - } while(color_depth_idx); // end of color depth loop (8) + } while(colour_depth_idx); // end of colour depth loop (8) } // updateMatrixDMABuffer (specific co-ords change) @@ -416,15 +331,15 @@ void MatrixPanel_I2S_DMA::updateMatrixDMABuffer(uint8_t red, uint8_t green, uint blue = lumConvTab[blue]; #endif - for(uint8_t color_depth_idx=0; color_depth_idxgetDataPtr(color_depth_idx, back_buffer_id); + //ESP32_I2S_DMA_STORAGE_TYPE *p = getRowDataPtr(matrix_frame_parallel_row, colour_depth_idx, back_buffer_id); + ESP32_I2S_DMA_STORAGE_TYPE *p = dma_buff.rowBits[matrix_frame_parallel_row]->getDataPtr(colour_depth_idx, back_buffer_id); // iterate pixels in a row int x_coord=dma_buff.rowBits[matrix_frame_parallel_row]->width; do { --x_coord; - p[x_coord] &= BITMASK_RGB12_CLEAR; // reset color bits - p[x_coord] |= RGB_output_bits; // set new color bits + p[x_coord] &= BITMASK_RGB12_CLEAR; // reset colour bits + p[x_coord] |= RGB_output_bits; // set new colour bits } while(x_coord); } while(matrix_frame_parallel_row); // end row iteration @@ -462,9 +377,9 @@ void MatrixPanel_I2S_DMA::updateMatrixDMABuffer(uint8_t red, uint8_t green, uint } // updateMatrixDMABuffer (full frame paint) /** - * @brief - clears and reinitializes color/control data in DMA buffs + * @brief - clears and reinitializes colour/control data in DMA buffs * When allocated, DMA buffs might be dirty, so we need to blank it and initialize ABCDE,LAT,OE control bits. - * Those control bits are constants during the entire DMA sweep and never changed when updating just pixel color data + * Those control bits are constants during the entire DMA sweep and never changed when updating just pixel colour data * so we could set it once on DMA buffs initialization and forget. * This effectively clears buffers to blank BLACK and makes it ready to display output. * (Brightness control via OE bit manipulation is another case) @@ -483,11 +398,11 @@ void MatrixPanel_I2S_DMA::clearFrameBuffer(bool _buff_id){ ESP32_I2S_DMA_STORAGE_TYPE abcde = (ESP32_I2S_DMA_STORAGE_TYPE)row_idx; abcde <<= BITS_ADDR_OFFSET; // shift row y-coord to match ABCDE bits in vector from 8 to 12 - // get last pixel index in a row of all colordepths - int x_pixel = dma_buff.rowBits[row_idx]->width * dma_buff.rowBits[row_idx]->color_depth; + // get last pixel index in a row of all colourdepths + int x_pixel = dma_buff.rowBits[row_idx]->width * dma_buff.rowBits[row_idx]->colour_depth; //Serial.printf(" from pixel %d, ", x_pixel); - // fill all x_pixels except color_index[0] (LSB) ones, this also clears all color data to 0's black + // fill all x_pixels except colour_index[0] (LSB) ones, this also clears all colour data to 0's black do { --x_pixel; @@ -501,7 +416,7 @@ void MatrixPanel_I2S_DMA::clearFrameBuffer(bool _buff_id){ } while(x_pixel!=dma_buff.rowBits[row_idx]->width); - // color_index[0] (LSB) x_pixels must be "marked" with a previous's row address, 'cause it is used to display + // colour_index[0] (LSB) x_pixels must be "marked" with a previous's row address, 'cause it is used to display // previous row while we pump in LSB's for a new row abcde = ((ESP32_I2S_DMA_STORAGE_TYPE)row_idx-1) << BITS_ADDR_OFFSET; do { @@ -536,12 +451,12 @@ void MatrixPanel_I2S_DMA::clearFrameBuffer(bool _buff_id){ // let's set LAT/OE control bits for specific pixels in each color_index subrows // Need to consider the original ESP32's (WROOM) DMA TX FIFO reordering of bytes... - uint8_t coloridx = dma_buff.rowBits[row_idx]->color_depth; + uint8_t colouridx = dma_buff.rowBits[row_idx]->colour_depth; do { - --coloridx; + --colouridx; // switch pointer to a row for a specific color index - row = dma_buff.rowBits[row_idx]->getDataPtr(coloridx, _buff_id); + row = dma_buff.rowBits[row_idx]->getDataPtr(colouridx, _buff_id); #if defined(ESP32_THE_ORIG) // We need to update the correct uint16_t in the rowBitStruct array, that gets sent out in parallel @@ -575,7 +490,7 @@ void MatrixPanel_I2S_DMA::clearFrameBuffer(bool _buff_id){ } while (_blank); - } while(coloridx); + } while(colouridx); } while(row_idx); } @@ -601,12 +516,12 @@ void MatrixPanel_I2S_DMA::brtCtrlOE(int brt, const bool _buff_id){ --row_idx; // let's set OE control bits for specific pixels in each color_index subrows - uint8_t coloridx = dma_buff.rowBits[row_idx]->color_depth; + uint8_t colouridx = dma_buff.rowBits[row_idx]->colour_depth; do { - --coloridx; + --colouridx; // switch pointer to a row for a specific color index - ESP32_I2S_DMA_STORAGE_TYPE* row = dma_buff.rowBits[row_idx]->getDataPtr(coloridx, _buff_id); + ESP32_I2S_DMA_STORAGE_TYPE* row = dma_buff.rowBits[row_idx]->getDataPtr(colouridx, _buff_id); int x_coord = dma_buff.rowBits[row_idx]->width; do { @@ -616,14 +531,14 @@ void MatrixPanel_I2S_DMA::brtCtrlOE(int brt, const bool _buff_id){ row[x_coord] &= BITMASK_OE_CLEAR; // Brightness control via OE toggle - disable matrix output at specified x_coord - if((coloridx > lsbMsbTransitionBit || !coloridx) && ((x_coord) >= brt)){ + if((colouridx > lsbMsbTransitionBit || !colouridx) && ((x_coord) >= brt)){ row[x_coord] |= BIT_OE; // Disable output after this point. continue; } // special case for the bits *after* LSB through (lsbMsbTransitionBit) - OE is output after data is shifted, so need to set OE to fractional brightness - if(coloridx && coloridx <= lsbMsbTransitionBit) { + if(colouridx && colouridx <= lsbMsbTransitionBit) { // divide brightness in half for each bit below lsbMsbTransitionBit - int lsbBrightness = brt >> (lsbMsbTransitionBit - coloridx + 1); + int lsbBrightness = brt >> (lsbMsbTransitionBit - colouridx + 1); if((x_coord) >= lsbBrightness) { row[x_coord] |= BIT_OE; // Disable output after this point. continue; @@ -653,7 +568,7 @@ void MatrixPanel_I2S_DMA::brtCtrlOE(int brt, const bool _buff_id){ //row[dma_buff.rowBits[row_idx]->width - _blank - 3 ] |= BIT_OE; // (LAT pulse is (width-2) -1 pixel to compensate array index starting at 0 } while (_blank); - } while(coloridx); + } while(colouridx); } while(row_idx); } @@ -727,26 +642,26 @@ void MatrixPanel_I2S_DMA::hlineDMA(int16_t x_coord, int16_t y_coord, int16_t l, blue = lumConvTab[blue]; #endif - uint16_t _colorbitclear = BITMASK_RGB1_CLEAR, _colorbitoffset = 0; + uint16_t _colourbitclear = BITMASK_RGB1_CLEAR, _colourbitoffset = 0; if (y_coord >= ROWS_PER_FRAME){ // if we are drawing to the bottom part of the panel - _colorbitoffset = BITS_RGB2_OFFSET; - _colorbitclear = BITMASK_RGB2_CLEAR; + _colourbitoffset = BITS_RGB2_OFFSET; + _colourbitclear = BITMASK_RGB2_CLEAR; y_coord -= ROWS_PER_FRAME; } // Iterating through color depth bits (8 iterations) - uint8_t color_depth_idx = PIXEL_COLOR_DEPTH_BITS; + uint8_t colour_depth_idx = PIXEL_COLOUR_DEPTH_BITS; do { - --color_depth_idx; + --colour_depth_idx; // let's precalculate RGB1 and RGB2 bits than flood it over the entire DMA buffer uint16_t RGB_output_bits = 0; -// uint8_t mask = (1 << color_depth_idx COLOR_DEPTH_LESS_THAN_8BIT_ADJUST); - #if PIXEL_COLOR_DEPTH_BITS < 8 - uint8_t mask = (1 << (color_depth_idx+MASK_OFFSET)); // expect 24 bit color (8 bits per RGB subpixel) +// uint8_t mask = (1 << colour_depth_idx COLOR_DEPTH_LESS_THAN_8BIT_ADJUST); + #if PIXEL_COLOUR_DEPTH_BITS < 8 + uint8_t mask = (1 << (colour_depth_idx+MASK_OFFSET)); // expect 24 bit color (8 bits per RGB subpixel) #else - uint8_t mask = (1 << (color_depth_idx)); // expect 24 bit color (8 bits per RGB subpixel) + uint8_t mask = (1 << (colour_depth_idx)); // expect 24 bit color (8 bits per RGB subpixel) #endif /* Per the .h file, the order of the output RGB bits is: @@ -756,13 +671,13 @@ void MatrixPanel_I2S_DMA::hlineDMA(int16_t x_coord, int16_t y_coord, int16_t l, RGB_output_bits |= (bool)(green & mask); // -BG RGB_output_bits <<= 1; RGB_output_bits |= (bool)(red & mask); // BGR - RGB_output_bits <<= _colorbitoffset; // shift color bits to the required position + RGB_output_bits <<= _colourbitoffset; // shift color bits to the required position // Get the contents at this address, // it would represent a vector pointing to the full row of pixels for the specified color depth bit at Y coordinate - ESP32_I2S_DMA_STORAGE_TYPE *p = dma_buff.rowBits[y_coord]->getDataPtr(color_depth_idx, back_buffer_id); + ESP32_I2S_DMA_STORAGE_TYPE *p = dma_buff.rowBits[y_coord]->getDataPtr(colour_depth_idx, back_buffer_id); // inlined version works slower here, dunno why :( - // ESP32_I2S_DMA_STORAGE_TYPE *p = getRowDataPtr(y_coord, color_depth_idx, back_buffer_id); + // ESP32_I2S_DMA_STORAGE_TYPE *p = getRowDataPtr(y_coord, colour_depth_idx, back_buffer_id); int16_t _l = l; do { // iterate pixels in a row @@ -776,10 +691,10 @@ void MatrixPanel_I2S_DMA::hlineDMA(int16_t x_coord, int16_t y_coord, int16_t l, uint16_t &v = p[_x]; #endif - v &= _colorbitclear; // reset color bits + v &= _colourbitclear; // reset color bits v |= RGB_output_bits; // set new color bits } while(_l); // iterate pixels in a row - } while(color_depth_idx); // end of color depth loop (8) + } while(colour_depth_idx); // end of color depth loop (8) } // hlineDMA() @@ -814,16 +729,16 @@ void MatrixPanel_I2S_DMA::vlineDMA(int16_t x_coord, int16_t y_coord, int16_t l, x_coord & 1U ? --x_coord : ++x_coord; #endif - uint8_t color_depth_idx = PIXEL_COLOR_DEPTH_BITS; + uint8_t colour_depth_idx = PIXEL_COLOUR_DEPTH_BITS; do { // Iterating through color depth bits (8 iterations) - --color_depth_idx; + --colour_depth_idx; // let's precalculate RGB1 and RGB2 bits than flood it over the entire DMA buffer -// uint8_t mask = (1 << color_depth_idx COLOR_DEPTH_LESS_THAN_8BIT_ADJUST); - #if PIXEL_COLOR_DEPTH_BITS < 8 - uint8_t mask = (1 << (color_depth_idx+MASK_OFFSET)); // expect 24 bit color (8 bits per RGB subpixel) +// uint8_t mask = (1 << colour_depth_idx COLOR_DEPTH_LESS_THAN_8BIT_ADJUST); + #if PIXEL_COLOUR_DEPTH_BITS < 8 + uint8_t mask = (1 << (colour_depth_idx+MASK_OFFSET)); // expect 24 bit color (8 bits per RGB subpixel) #else - uint8_t mask = (1 << (color_depth_idx)); // expect 24 bit color (8 bits per RGB subpixel) + uint8_t mask = (1 << (colour_depth_idx)); // expect 24 bit color (8 bits per RGB subpixel) #endif uint16_t RGB_output_bits = 0; @@ -836,25 +751,25 @@ void MatrixPanel_I2S_DMA::vlineDMA(int16_t x_coord, int16_t y_coord, int16_t l, RGB_output_bits |= (bool)(red & mask); // BGR int16_t _l = 0, _y = y_coord; - uint16_t _colorbitclear = BITMASK_RGB1_CLEAR; + uint16_t _colourbitclear = BITMASK_RGB1_CLEAR; do { // iterate pixels in a column if (_y >= ROWS_PER_FRAME){ // if y-coord overlapped bottom-half panel _y -= ROWS_PER_FRAME; - _colorbitclear = BITMASK_RGB2_CLEAR; + _colourbitclear = BITMASK_RGB2_CLEAR; RGB_output_bits <<= BITS_RGB2_OFFSET; } // Get the contents at this address, // it would represent a vector pointing to the full row of pixels for the specified color depth bit at Y coordinate - //ESP32_I2S_DMA_STORAGE_TYPE *p = getRowDataPtr(_y, color_depth_idx, back_buffer_id); - ESP32_I2S_DMA_STORAGE_TYPE *p = dma_buff.rowBits[_y]->getDataPtr(color_depth_idx, back_buffer_id); + //ESP32_I2S_DMA_STORAGE_TYPE *p = getRowDataPtr(_y, colour_depth_idx, back_buffer_id); + ESP32_I2S_DMA_STORAGE_TYPE *p = dma_buff.rowBits[_y]->getDataPtr(colour_depth_idx, back_buffer_id); - p[x_coord] &= _colorbitclear; // reset RGB bits + p[x_coord] &= _colourbitclear; // reset RGB bits p[x_coord] |= RGB_output_bits; // set new RGB bits ++_y; } while(++_l!=l); // iterate pixels in a col - } while(color_depth_idx); // end of color depth loop (8) + } while(colour_depth_idx); // end of color depth loop (8) } // vlineDMA() diff --git a/src/ESP32-HUB75-MatrixPanel-I2S-DMA.h b/src/ESP32-HUB75-MatrixPanel-I2S-DMA.h index 7851a6d..97374d7 100644 --- a/src/ESP32-HUB75-MatrixPanel-I2S-DMA.h +++ b/src/ESP32-HUB75-MatrixPanel-I2S-DMA.h @@ -71,15 +71,14 @@ // 8bit per RGB color = 24 bit/per pixel, // might be reduced to save DMA RAM -#ifndef PIXEL_COLOR_DEPTH_BITS - #define PIXEL_COLOR_DEPTH_BITS 8 +#ifndef PIXEL_COLOUR_DEPTH_BITS + #define PIXEL_COLOUR_DEPTH_BITS 8 #endif -#define COLOR_CHANNELS_PER_PIXEL 3 +#define COLOUR_CHANNELS_PER_PIXEL 3 /***************************************************************************************/ /* Definitions below should NOT be ever changed without rewriting library logic */ -#define ESP32_I2S_DMA_MODE 16 // From esp32_i2s_parallel_v2.h = 16 bits in parallel #define ESP32_I2S_DMA_STORAGE_TYPE uint16_t // DMA output of one uint16_t at a time. #define CLKS_DURING_LATCH 0 // Not (yet) used. @@ -116,24 +115,25 @@ // How many clock cycles to blank OE before/after LAT signal change, default is 1 clock #define DEFAULT_LAT_BLANKING 1 + // Max clock cycles to blank OE before/after LAT signal change #define MAX_LAT_BLANKING 4 /***************************************************************************************/ // Check compile-time only options -#if PIXEL_COLOR_DEPTH_BITS > 8 +#if PIXEL_COLOUR_DEPTH_BITS > 8 #error "Pixel color depth bits cannot be greater than 8." -#elif PIXEL_COLOR_DEPTH_BITS < 2 +#elif PIXEL_COLOUR_DEPTH_BITS < 2 #error "Pixel color depth bits cannot be less than 2." #endif /* This library is designed to take an 8 bit / 1 byte value (0-255) for each R G B colour sub-pixel. - * The PIXEL_COLOR_DEPTH_BITS should always be '8' as a result. + * The PIXEL_COLOUR_DEPTH_BITS should always be '8' as a result. * However, if the library is to be used with lower colour depth (i.e. 6 bit colour), then we need to ensure the 8-bit value passed to the colour masking * is adjusted accordingly to ensure the LSB's are shifted left to MSB, by the difference. Otherwise the colours will be all screwed up. */ -#if PIXEL_COLOR_DEPTH_BITS != 8 -static constexpr uint8_t const MASK_OFFSET = 8-PIXEL_COLOR_DEPTH_BITS; +#if PIXEL_COLOUR_DEPTH_BITS != 8 +static constexpr uint8_t const MASK_OFFSET = 8-PIXEL_COLOUR_DEPTH_BITS; #endif /***************************************************************************************/ @@ -143,7 +143,7 @@ static constexpr uint8_t const MASK_OFFSET = 8-PIXEL_COLOR_DEPTH_BITS; */ struct rowBitStruct { const size_t width; - const uint8_t color_depth; + const uint8_t colour_depth; const bool double_buff; ESP32_I2S_DMA_STORAGE_TYPE *data; @@ -155,17 +155,17 @@ struct rowBitStruct { * default - returns full data vector size for a SINGLE buff * */ - size_t size(uint8_t _dpth=0 ) { if (!_dpth) _dpth = color_depth; return width * _dpth * sizeof(ESP32_I2S_DMA_STORAGE_TYPE); }; + size_t size(uint8_t _dpth=0 ) { if (!_dpth) _dpth = colour_depth; return width * _dpth * sizeof(ESP32_I2S_DMA_STORAGE_TYPE); }; /** @brief - returns pointer to the row's data vector beginning at pixel[0] for _dpth color bit * default - returns pointer to the data vector's head * NOTE: this call might be very slow in loops. Due to poor instruction caching in esp32 it might be required a reread from flash * every loop cycle, better use inlined #define instead in such cases */ - inline ESP32_I2S_DMA_STORAGE_TYPE* getDataPtr(const uint8_t _dpth=0, const bool buff_id=0) { return &(data[_dpth*width + buff_id*(width*color_depth)]); }; + inline ESP32_I2S_DMA_STORAGE_TYPE* getDataPtr(const uint8_t _dpth=0, const bool buff_id=0) { return &(data[_dpth*width + buff_id*(width*colour_depth)]); }; // constructor - allocates DMA-capable memory to hold the struct data - rowBitStruct(const size_t _width, const uint8_t _depth, const bool _dbuff) : width(_width), color_depth(_depth), double_buff(_dbuff) { + rowBitStruct(const size_t _width, const uint8_t _depth, const bool _dbuff) : width(_width), colour_depth(_depth), double_buff(_dbuff) { #if defined(SPIRAM_FRAMEBUFFER) #pragma message "Enabling PSRAM / SPIRAM for frame buffer." @@ -335,23 +335,22 @@ class MatrixPanel_I2S_DMA { if (initialized) return true; // we don't do this twice or more! - // Change 'if' to '1' to enable, 0 to not include this Serial output in compiled program - #if SERIAL_DEBUG - Serial.printf_P(PSTR("Using pin %d for the R1_PIN\n"), m_cfg.gpio.r1); - Serial.printf_P(PSTR("Using pin %d for the G1_PIN\n"), m_cfg.gpio.g1); - Serial.printf_P(PSTR("Using pin %d for the B1_PIN\n"), m_cfg.gpio.b1); - Serial.printf_P(PSTR("Using pin %d for the R2_PIN\n"), m_cfg.gpio.r2); - Serial.printf_P(PSTR("Using pin %d for the G2_PIN\n"), m_cfg.gpio.g2); - Serial.printf_P(PSTR("Using pin %d for the B2_PIN\n"), m_cfg.gpio.b2); - Serial.printf_P(PSTR("Using pin %d for the A_PIN\n"), m_cfg.gpio.a); - Serial.printf_P(PSTR("Using pin %d for the B_PIN\n"), m_cfg.gpio.b); - Serial.printf_P(PSTR("Using pin %d for the C_PIN\n"), m_cfg.gpio.c); - Serial.printf_P(PSTR("Using pin %d for the D_PIN\n"), m_cfg.gpio.d); - Serial.printf_P(PSTR("Using pin %d for the E_PIN\n"), m_cfg.gpio.e); - Serial.printf_P(PSTR("Using pin %d for the LAT_PIN\n"), m_cfg.gpio.lat); - Serial.printf_P(PSTR("Using pin %d for the OE_PIN\n"), m_cfg.gpio.oe); - Serial.printf_P(PSTR("Using pin %d for the CLK_PIN\n"), m_cfg.gpio.clk); - #endif + + ESP_LOGI("begin()", "Using GPIO %d for R1_PIN", m_cfg.gpio.r1); + ESP_LOGI("begin()", "Using GPIO %d for G1_PIN", m_cfg.gpio.g1); + ESP_LOGI("begin()", "Using GPIO %d for B1_PIN", m_cfg.gpio.b1); + ESP_LOGI("begin()", "Using GPIO %d for R2_PIN", m_cfg.gpio.r2); + ESP_LOGI("begin()", "Using GPIO %d for G2_PIN", m_cfg.gpio.g2); + ESP_LOGI("begin()", "Using GPIO %d for B2_PIN", m_cfg.gpio.b2); + ESP_LOGI("begin()", "Using GPIO %d for A_PIN", m_cfg.gpio.a); + ESP_LOGI("begin()", "Using GPIO %d for B_PIN", m_cfg.gpio.b); + ESP_LOGI("begin()", "Using GPIO %d for C_PIN", m_cfg.gpio.c); + ESP_LOGI("begin()", "Using GPIO %d for D_PIN", m_cfg.gpio.d); + ESP_LOGI("begin()", "Using GPIO %d for E_PIN", m_cfg.gpio.e); + ESP_LOGI("begin()", "Using GPIO %d for LAT_PIN", m_cfg.gpio.lat); + ESP_LOGI("begin()", "Using GPIO %d for OE_PIN", m_cfg.gpio.oe); + ESP_LOGI("begin()", "Using GPIO %d for CLK_PIN", m_cfg.gpio.clk); + // initialize some specific panel drivers if (m_cfg.driver) @@ -372,10 +371,9 @@ class MatrixPanel_I2S_DMA { //showDMABuffer(); // show backbuf_id of 0 - #if SERIAL_DEBUG - if (!initialized) - Serial.println(F("MatrixPanel_I2S_DMA::begin() failed.")); - #endif + if (!initialized) { + ESP_LOGE("being()", "MatrixPanel_I2S_DMA::begin() failed!"); + } return initialized; @@ -473,12 +471,17 @@ class MatrixPanel_I2S_DMA { inline void IRAM_ATTR flipDMABuffer() { if ( !m_cfg.double_buff) return; - - #if SERIAL_DEBUG - Serial.printf_P(PSTR("Set back buffer to: %d\n"), back_buffer_id); - #endif - dma_bus.flip_dma_output_buffer(); + //ESP_LOGI("flipDMABuffer()", "Set back buffer to: %d", back_buffer_id); + + if (back_buffer_id == 0) + { + dma_bus.set_dma_output_buffer( false ); + } + else + { + dma_bus.set_dma_output_buffer( true ); + } /* i2s_parallel_set_previous_buffer_not_free(); @@ -495,11 +498,8 @@ class MatrixPanel_I2S_DMA { while(i2s_parallel_is_previous_buffer_free() == false) { } */ - back_buffer_id ^= 1; - + back_buffer_id ^= 1; - - } inline void setPanelBrightness(int b) diff --git a/src/ESP32-HUB75-MatrixPanel-leddrivers.cpp b/src/ESP32-HUB75-MatrixPanel-leddrivers.cpp index bb482a2..2c9139e 100644 --- a/src/ESP32-HUB75-MatrixPanel-leddrivers.cpp +++ b/src/ESP32-HUB75-MatrixPanel-leddrivers.cpp @@ -35,10 +35,10 @@ void MatrixPanel_I2S_DMA::shiftDriver(const HUB75_I2S_CFG& _cfg){ } -void MatrixPanel_I2S_DMA::fm6124init(const HUB75_I2S_CFG& _cfg){ - #if SERIAL_DEBUG - Serial.println( F("MatrixPanel_I2S_DMA - initializing FM6124 driver...")); - #endif +void MatrixPanel_I2S_DMA::fm6124init(const HUB75_I2S_CFG& _cfg) { + + ESP_LOGI("LEDdrivers", "MatrixPanel_I2S_DMA - initializing FM6124 driver..."); + bool REG1[16] = {0,0,0,0,0, 1,1,1,1,1,1, 0,0,0,0,0}; // this sets global matrix brightness power bool REG2[16] = {0,0,0,0,0, 0,0,0,0,1,0, 0,0,0,0,0}; // a single bit enables the matrix output diff --git a/src/platforms/esp32/esp32_i2s_parallel_dma.cpp b/src/platforms/esp32/esp32_i2s_parallel_dma.cpp index fb0905d..e4a8212 100644 --- a/src/platforms/esp32/esp32_i2s_parallel_dma.cpp +++ b/src/platforms/esp32/esp32_i2s_parallel_dma.cpp @@ -465,9 +465,12 @@ static void IRAM_ATTR irq_hndlr(void* arg) { // if we use I2S1 (default) ESP_LOGW(TAG, "Creating DMA descriptor which links to payload with size greater than MAX_DMA_LEN!"); } - if ( (_dmadesc_a_idx+1) > _dmadesc_count) { - ESP_LOGE(TAG, "Attempted to create more DMA descriptors than allocated memory for. Expecting a maximum of %d DMA descriptors", _dmadesc_count); - return; + if ( !dmadesc_b ) + { + if ( (_dmadesc_a_idx+1) > _dmadesc_count) { + ESP_LOGE(TAG, "Attempted to create more DMA descriptors than allocated memory for. Expecting a maximum of %d DMA descriptors", _dmadesc_count); + return; + } } volatile lldesc_t *dmadesc; @@ -550,11 +553,11 @@ static void IRAM_ATTR irq_hndlr(void* arg) { // if we use I2S1 (default) } // end - void Bus_Parallel16::flip_dma_output_buffer() + void Bus_Parallel16::set_dma_output_buffer(bool dmadesc_b) { if ( _double_dma_buffer == false) return; - if ( _dmadesc_a_active == true) // change across to everything 'b'' + if ( dmadesc_b == true) // change across to everything 'b'' { _dmadesc_a[_dmadesc_count-1].qe.stqe_next = &_dmadesc_b[0]; _dmadesc_b[_dmadesc_count-1].qe.stqe_next = &_dmadesc_b[0]; @@ -565,7 +568,7 @@ static void IRAM_ATTR irq_hndlr(void* arg) { // if we use I2S1 (default) _dmadesc_b[_dmadesc_count-1].qe.stqe_next = &_dmadesc_a[0]; } - _dmadesc_a_active ^= _dmadesc_a_active; + //_dmadesc_a_active ^= _dmadesc_a_active; } // end flip diff --git a/src/platforms/esp32/esp32_i2s_parallel_dma.hpp b/src/platforms/esp32/esp32_i2s_parallel_dma.hpp index 95664d8..7fae0e6 100644 --- a/src/platforms/esp32/esp32_i2s_parallel_dma.hpp +++ b/src/platforms/esp32/esp32_i2s_parallel_dma.hpp @@ -112,7 +112,7 @@ Contributors: void dma_transfer_start(); void dma_transfer_stop(); - void flip_dma_output_buffer(); + void set_dma_output_buffer(bool dmadesc_b = false); private: @@ -121,7 +121,7 @@ Contributors: config_t _cfg; bool _double_dma_buffer = false; - bool _dmadesc_a_active = true; + //bool _dmadesc_a_active = true; uint32_t _dmadesc_count = 0; // number of dma decriptors diff --git a/src/platforms/esp32s3/gdma_lcd_parallel16.cpp b/src/platforms/esp32s3/gdma_lcd_parallel16.cpp index 19a5865..87f4058 100644 --- a/src/platforms/esp32s3/gdma_lcd_parallel16.cpp +++ b/src/platforms/esp32s3/gdma_lcd_parallel16.cpp @@ -16,11 +16,17 @@ PLEASE SUPPORT THEM! */ +#if __has_include () +// Stop compile errors: /src/platforms/esp32s3/gdma_lcd_parallel16.hpp:64:10: fatal error: hal/lcd_ll.h: No such file or directory + #include #include "gdma_lcd_parallel16.hpp" static const char* TAG = "gdma_lcd_parallel16"; + static int _dmadesc_a_idx = 0; + static int _dmadesc_b_idx = 0; + dma_descriptor_t desc; // DMA descriptor for testing /* @@ -73,7 +79,7 @@ LCD_CAM.lcd_user.lcd_reset = 1; esp_rom_delay_us(100); - auto lcd_clkm_div_num = 160000000 / _cfg.bus_freq; + uint32_t lcd_clkm_div_num = ((160000000 + 1) / _cfg.bus_freq) / 2; ESP_LOGI(TAG, "Clock divider is %d", lcd_clkm_div_num); @@ -279,7 +285,8 @@ void Bus_Parallel16::enable_double_dma_desc(void) { - _double_dma_buffer = true; + ESP_LOGI(TAG, "Enabled support for secondary DMA buffer."); + _double_dma_buffer = true; } // Need this to work for double buffers etc. @@ -309,9 +316,9 @@ } } - - _dmadesc_a_idx = 0; - _dmadesc_b_idx = 0; + /// override static + _dmadesc_a_idx = 0; + _dmadesc_b_idx = 0; return true; @@ -321,20 +328,15 @@ { static constexpr size_t MAX_DMA_LEN = (4096-4); - if (size > MAX_DMA_LEN) - { + if (size > MAX_DMA_LEN) { size = MAX_DMA_LEN; ESP_LOGW(TAG, "Creating DMA descriptor which links to payload with size greater than MAX_DMA_LEN!"); } - if ( _dmadesc_a_idx >= _dmadesc_count) + if ( dmadesc_b == true) { - ESP_LOGE(TAG, "Attempted to create more DMA descriptors than allocated memory for. Expecting a maximum of %d DMA descriptors", _dmadesc_count); - return; - } - if (_double_dma_buffer == true && dmadesc_b == true) - { + // ESP_LOGI(TAG, "Creating dma desc B %d", _dmadesc_b_idx); _dmadesc_b[_dmadesc_b_idx].dw0.owner = DMA_DESCRIPTOR_BUFFER_OWNER_DMA; _dmadesc_b[_dmadesc_b_idx].dw0.suc_eof = 0; @@ -351,10 +353,16 @@ _dmadesc_b_idx++; - } else { + // ESP_LOGI(TAG, "Creating dma desc A %d", _dmadesc_a_idx); + + if ( _dmadesc_a_idx >= _dmadesc_count) + { + ESP_LOGE(TAG, "Attempted to create more DMA descriptors than allocated. Expecting max %d descriptors.", _dmadesc_count); + return; + } _dmadesc_a[_dmadesc_a_idx].dw0.owner = DMA_DESCRIPTOR_BUFFER_OWNER_DMA; _dmadesc_a[_dmadesc_a_idx].dw0.suc_eof = 0; @@ -394,12 +402,12 @@ } // end - void Bus_Parallel16::flip_dma_output_buffer() + void Bus_Parallel16::set_dma_output_buffer(bool dmadesc_b) { if ( _double_dma_buffer == false) return; - if ( _dmadesc_a_active == true) // change across to everything 'b'' + if ( dmadesc_b == true) // change across to everything 'b'' { _dmadesc_a[_dmadesc_count-1].next = (dma_descriptor_t *) &_dmadesc_b[0]; _dmadesc_b[_dmadesc_count-1].next = (dma_descriptor_t *) &_dmadesc_b[0]; @@ -410,10 +418,8 @@ _dmadesc_b[_dmadesc_count-1].next = (dma_descriptor_t *) &_dmadesc_a[0]; } - _dmadesc_a_active ^= _dmadesc_a_active; - - } // end flip +#endif \ No newline at end of file diff --git a/src/platforms/esp32s3/gdma_lcd_parallel16.hpp b/src/platforms/esp32s3/gdma_lcd_parallel16.hpp index 2417626..aaff669 100644 --- a/src/platforms/esp32s3/gdma_lcd_parallel16.hpp +++ b/src/platforms/esp32s3/gdma_lcd_parallel16.hpp @@ -25,7 +25,7 @@ #pragma once -#if __has_include () +#if __has_include () #include #include @@ -55,13 +55,16 @@ #else #include #endif + #include #include #include #include + #include #include #include + #include #include @@ -143,7 +146,7 @@ void dma_transfer_start(); void dma_transfer_stop(); - void flip_dma_output_buffer(); + void set_dma_output_buffer(bool dmadesc_b = false); private: @@ -153,15 +156,14 @@ gdma_channel_handle_t dma_chan; uint32_t _dmadesc_count = 0; // number of dma decriptors - uint32_t _dmadesc_a_idx = 0; + // uint32_t _dmadesc_a_idx = 0; + //uint32_t _dmadesc_b_idx = 0; HUB75_DMA_DESCRIPTOR_T* _dmadesc_a = nullptr; + HUB75_DMA_DESCRIPTOR_T* _dmadesc_b = nullptr; bool _double_dma_buffer = false; - bool _dmadesc_a_active = true; - uint32_t _dmadesc_b_idx = 0; - - HUB75_DMA_DESCRIPTOR_T* _dmadesc_b = nullptr; + //bool _dmadesc_a_active = true; esp_lcd_i80_bus_handle_t _i80_bus; diff --git a/src/platforms/platform_detect.hpp b/src/platforms/platform_detect.hpp index f660a5e..4373b37 100644 --- a/src/platforms/platform_detect.hpp +++ b/src/platforms/platform_detect.hpp @@ -39,7 +39,7 @@ Modified heavily for the ESP32 HUB75 DMA library by: #include "esp32s3/gdma_lcd_parallel16.hpp" #include "esp32s3/esp32s3-default-pins.hpp" - #else + #elif defined (CONFIG_IDF_TARGET_ESP32) // Assume an ESP32 (the original 2015 version) // Same include as ESP32S3 From 4772d1d643ae51f0de8f98a3420d7d64b5679125 Mon Sep 17 00:00:00 2001 From: mrfaptastic <12006953+mrfaptastic@users.noreply.github.com> Date: Wed, 5 Oct 2022 22:04:41 +0100 Subject: [PATCH 07/13] Update ESP32-HUB75-MatrixPanel-I2S-DMA.cpp --- src/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp b/src/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp index ebce242..816f993 100644 --- a/src/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp +++ b/src/ESP32-HUB75-MatrixPanel-I2S-DMA.cpp @@ -34,6 +34,8 @@ bool MatrixPanel_I2S_DMA::allocateDMAmemory() } // calculate the lowest LSBMSB_TRANSITION_BIT value that will fit in memory that will meet or exceed the configured refresh rate +#if !defined(FORCE_COLOUR_DEPTH) + while(1) { int psPerClock = 1000000000000UL/m_cfg.i2sspeed; int nsPerLatch = ((PIXELS_PER_ROW + CLKS_DURING_LATCH) * psPerClock) / 1000; @@ -59,7 +61,7 @@ bool MatrixPanel_I2S_DMA::allocateDMAmemory() else break; } - +#endif /*** From cd2430b158ef7b6e28cba66a2ca0c808c7cffc3d Mon Sep 17 00:00:00 2001 From: mrfaptastic <12006953+mrfaptastic@users.noreply.github.com> Date: Thu, 6 Oct 2022 23:10:33 +0100 Subject: [PATCH 08/13] Update library.properties --- library.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library.properties b/library.properties index 43f2437..1e76313 100644 --- a/library.properties +++ b/library.properties @@ -2,8 +2,8 @@ name=ESP32 HUB75 LED MATRIX PANEL DMA Display version= 3.0.0 author=Faptastic maintainer=Faptastic -sentence=DMA based LED Matrix HUB75 Library -paragraph=An Adafruit GFX compatible library for 64x32 or 64x64 LED matrix modules using the ESP32 DMA Engine for ultra-fast refresh rates, no-interrupts and therefore very low CPU usage. +sentence=HUB75 LED Matrix Library for ESP32, ESP32-S2 and ESP32-S3 +paragraph=An Adafruit GFX compatible library for LED matrix modules which uses DMA for ultra-fast refresh rates and therefore very low CPU usage. category=Display -url=https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-I2S-DMA +url=https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-DMA architectures=esp32 From 05fe7eb7d18762ad2d1837ab44f38191194a1be1 Mon Sep 17 00:00:00 2001 From: mrfaptastic <12006953+mrfaptastic@users.noreply.github.com> Date: Thu, 6 Oct 2022 23:10:54 +0100 Subject: [PATCH 09/13] Update library.json --- library.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library.json b/library.json index 1f8201e..935e8c2 100644 --- a/library.json +++ b/library.json @@ -1,10 +1,10 @@ { "name": "ESP32 HUB75 LED MATRIX PANEL DMA Display", "keywords": "hub75, esp32, esp32s2, esp32s3, display, dma, rgb matrix", - "description": "An Adafruit GFX compatible library for 64x32 or 64x64 LED matrix modules using the ESP32 DMA Engine for ultra-fast refresh rates, no-interrupts and therefore very low CPU usage.", + "description": "An Adafruit GFX compatible library for LED matrix modules which uses DMA for ultra-fast refresh rates and therefore very low CPU usage.", "repository": { "type": "git", - "url": "https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-I2S-DMA.git" + "url": "https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-DMA.git" }, "authors": { "name": "Faptastic", From 0744789b26b17821551c80e8a4218b8d52e41296 Mon Sep 17 00:00:00 2001 From: mrfaptastic <12006953+mrfaptastic@users.noreply.github.com> Date: Thu, 6 Oct 2022 23:14:42 +0100 Subject: [PATCH 10/13] Delete WiringExample.jpg --- WiringExample.jpg | Bin 73124 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 WiringExample.jpg diff --git a/WiringExample.jpg b/WiringExample.jpg deleted file mode 100644 index d33bf77cf13ecba589d2d89055fbfa8d5bc62536..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73124 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 }v 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 jpN% Date: Thu, 6 Oct 2022 23:15:25 +0100 Subject: [PATCH 11/13] Delete LICENSE.txt --- LICENSE.txt | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 LICENSE.txt diff --git a/LICENSE.txt b/LICENSE.txt deleted file mode 100644 index 72dc60d..0000000 --- a/LICENSE.txt +++ /dev/null @@ -1,19 +0,0 @@ -The MIT License (MIT) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. From 8b2e31b1c53d42bd47acdf97bc02c3e0d5157c01 Mon Sep 17 00:00:00 2001 From: mrfaptastic <12006953+mrfaptastic@users.noreply.github.com> Date: Thu, 6 Oct 2022 23:20:28 +0100 Subject: [PATCH 12/13] Create LICENSE.txt --- LICENSE.txt | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 LICENSE.txt diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..8cec4d5 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018-2032 Faptastic + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From 157077ab3388cda07ea8bfbfa286af4c752eb384 Mon Sep 17 00:00:00 2001 From: mrfaptastic <12006953+mrfaptastic@users.noreply.github.com> Date: Thu, 6 Oct 2022 23:51:25 +0100 Subject: [PATCH 13/13] Updates --- .../1_SimpleTestShapes/1_SimpleTestShapes.ino | 6 +- examples/3_FM6126Panel/3_FM6126Panel.ino | 102 ---- examples/3_FM6126Panel/FM6126A.md | 51 -- examples/3_FM6126Panel/README.md | 3 - .../OneQuarterScanMatrixPanel.h | 451 ------------------ .../One_Quarter_1_4_ScanPanel.ino | 226 --------- examples/One_Quarter_1_4_ScanPanel/README.md | 78 --- 7 files changed, 3 insertions(+), 914 deletions(-) delete mode 100644 examples/3_FM6126Panel/3_FM6126Panel.ino delete mode 100644 examples/3_FM6126Panel/FM6126A.md delete mode 100644 examples/3_FM6126Panel/README.md delete mode 100644 examples/One_Quarter_1_4_ScanPanel/OneQuarterScanMatrixPanel.h delete mode 100644 examples/One_Quarter_1_4_ScanPanel/One_Quarter_1_4_ScanPanel.ino delete mode 100644 examples/One_Quarter_1_4_ScanPanel/README.md diff --git a/examples/1_SimpleTestShapes/1_SimpleTestShapes.ino b/examples/1_SimpleTestShapes/1_SimpleTestShapes.ino index db3b0d1..1d2ca75 100644 --- a/examples/1_SimpleTestShapes/1_SimpleTestShapes.ino +++ b/examples/1_SimpleTestShapes/1_SimpleTestShapes.ino @@ -100,9 +100,9 @@ void setup() { PANEL_CHAIN // Chain length ); - mxconfig.gpio.e = 18; - mxconfig.clkphase = false; - mxconfig.driver = HUB75_I2S_CFG::FM6126A; + //mxconfig.gpio.e = 18; + //mxconfig.clkphase = false; + //mxconfig.driver = HUB75_I2S_CFG::FM6126A; // Display Setup dma_display = new MatrixPanel_I2S_DMA(mxconfig); diff --git a/examples/3_FM6126Panel/3_FM6126Panel.ino b/examples/3_FM6126Panel/3_FM6126Panel.ino deleted file mode 100644 index 3b706e1..0000000 --- a/examples/3_FM6126Panel/3_FM6126Panel.ino +++ /dev/null @@ -1,102 +0,0 @@ -// How to use this library with a FM6126 panel, thanks goes to: -// https://github.com/hzeller/rpi-rgb-led-matrix/issues/746 - -#include -#include -#include - -//////////////////////////////////////////////////////////////////// -// FM6126 support is still experimental - -// Output resolution and panel chain length configuration -#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. -#define PANEL_CHAIN 1 // Total number of panels chained one to another - - -// placeholder for the matrix object -MatrixPanel_I2S_DMA *dma_display = nullptr; - -/////////////////////////////////////////////////////////////// - -// FastLED variables for pattern output -uint16_t time_counter = 0, cycles = 0, fps = 0; -unsigned long fps_timer; - -CRGB currentColor; -CRGBPalette16 palettes[] = {HeatColors_p, LavaColors_p, RainbowColors_p, RainbowStripeColors_p, CloudColors_p}; -CRGBPalette16 currentPalette = palettes[0]; - - -CRGB ColorFromCurrentPalette(uint8_t index = 0, uint8_t brightness = 255, TBlendType blendType = LINEARBLEND) { - return ColorFromPalette(currentPalette, index, brightness, blendType); -} - -void setup(){ - - /* - The configuration for MatrixPanel_I2S_DMA object is held in HUB75_I2S_CFG structure, - All options has it's predefined default values. So we can create a new structure and redefine only the options we need - - Please refer to the '2_PatternPlasma.ino' example for detailed example of how to use the MatrixPanel_I2S_DMA configuration - if you need to change the pin mappings etc. - */ - - HUB75_I2S_CFG mxconfig( - PANEL_RES_X, // module width - PANEL_RES_Y, // module height - PANEL_CHAIN // Chain length - ); - - mxconfig.driver = HUB75_I2S_CFG::FM6126A; // in case that we use panels based on FM6126A chip, we can set it here before creating MatrixPanel_I2S_DMA object - - // OK, now we can create our matrix object - dma_display = new MatrixPanel_I2S_DMA(mxconfig); - - // If you experience ghosting, you will need to reduce the brightness level, not all RGB Matrix - // Panels are the same - some seem to display ghosting artefacts at lower brightness levels. - // In the setup() function do something like: - - // let's adjust default brightness to about 75% - dma_display->setBrightness8(192); // range is 0-255, 0 - 0%, 255 - 100% - - // Allocate memory and start DMA display - if( not dma_display->begin() ) - Serial.println("****** !KABOOM! Insufficient memory - allocation failed ***********"); - - fps_timer = millis(); - -} - -void loop(){ - for (int x = 0; x < dma_display->width(); x++) { - for (int y = 0; y < dma_display->height(); y++) { - int16_t v = 0; - uint8_t wibble = sin8(time_counter); - v += sin16(x * wibble * 3 + time_counter); - v += cos16(y * (128 - wibble) + time_counter); - v += sin16(y * x * cos8(-time_counter) / 8); - - currentColor = ColorFromPalette(currentPalette, (v >> 8) + 127); //, brightness, currentBlendType); - dma_display->drawPixelRGB888(x, y, currentColor.r, currentColor.g, currentColor.b); - } - } - - ++time_counter; - ++cycles; - ++fps; - - if (cycles >= 1024) { - time_counter = 0; - cycles = 0; - currentPalette = palettes[random(0,sizeof(palettes)/sizeof(palettes[0]))]; - } - - // print FPS rate every 5 seconds - // Note: this is NOT a matrix refresh rate, it's the number of data frames being drawn to the DMA buffer per second - if (fps_timer + 5000 < millis()){ - Serial.printf_P(PSTR("Effect fps: %d\n"), fps/5); - fps_timer = millis(); - fps = 0; - } -} \ No newline at end of file diff --git a/examples/3_FM6126Panel/FM6126A.md b/examples/3_FM6126Panel/FM6126A.md deleted file mode 100644 index 1641c16..0000000 --- a/examples/3_FM6126Panel/FM6126A.md +++ /dev/null @@ -1,51 +0,0 @@ -## The mystery of control registers for FM6126A chips - - -The only available Datasheet for this chips is in Chinese and does not shed a light on what those two control regs are. - -An excellent insight could be found here https://github.com/hzeller/rpi-rgb-led-matrix/issues/746#issuecomment-453860510 - - - -So there are two regs in this chip - **REG1** and **REG2**, -one could be written with 12 clock pulses (and usually called reg12, dunno why :)) -the other one could be written with 13 clock pulses (and usually called reg13, dunno why :)) - - -I've done some measurements on power consumption while toggling bits of **REG1** and it looks that it could provide a fine grained brightness control over the entire matrix with no need for bitbanging over RGB or EO pins. -There are 6 bits (6 to 11) giving an increased brightness (compared to all-zeroes) and 4 bits (2-5) giving decreased brightness!!! -Still unclear if FM6112A brightness control is internally PWMed or current limited, might require some poking with oscilloscope. - -So it seems that the most bright (and hungry for power) value is bool REG1[16] = {0,0,0,0,0, 1,1,1,1,1,1, 0,0,0,0,0}; and not {0,1,1,1,1, 1,1,1,1,1,1, 1,1,1,1,1} as it is usually used. -I'm not sure about bit 1 - it is either not used or I was unable to measure it's influence to brightness/power. - -Giving at least 10 bits of hardware brightness control opens pretty nice options for offloading and simplifying matrix output. Should dig into this more deeper. - -Here are some of the measurements I've took for 2 64x64 panels filled with white color - reg value and corresponding current drain in amps. - - -|REG1 |bit value|Current, amps | -|--|--|--| -|REG1| 0111111 00000| >5 amps| -|REG1| 0100010 00000| 3.890 amp| -|REG1| 0100000 00000| 3.885 amp| -|REG1| 0011110 00000| 3.640 amp| -|REG1| 0011100 00000| 3.620 amp| -|REG1| 0011000 00000| 3.240 amp| -|REG1| 0010010 00000| 2.520 amp| -|REG1| 0010001 00000| 2.518 amp| -|REG1| 0010001 10000| 2.493 amp| -|REG1| 0010000 00000| 2.490 amp| -|REG1| 0010000 11110| 2.214 amp| -|REG1| 0001100 00000| 2.120 amp| -|REG1| 0001000 00000| 1.750 amp| -|REG1| 0000100 00000| 1.375 amp| -|REG1| 0000010 00000| 1.000 amp| -|REG1| **0000000 00000**| 0.995 amp| -|REG1| 0000001 11111| 0.700 amp| -|REG1| 0000000 01111| 0.690 amp| -|REG1| 0000000 10000| 0.690 amp| -|REG1| 0000000 11110| 0.686 amp| - - -/Vortigont/ \ No newline at end of file diff --git a/examples/3_FM6126Panel/README.md b/examples/3_FM6126Panel/README.md deleted file mode 100644 index 65019e6..0000000 --- a/examples/3_FM6126Panel/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## FM6126 based LED Matrix Panel Reset ## - -FM6216 panels require a special reset sequence before they can be used, check your panel chipset if you have issues. Refer to this example. diff --git a/examples/One_Quarter_1_4_ScanPanel/OneQuarterScanMatrixPanel.h b/examples/One_Quarter_1_4_ScanPanel/OneQuarterScanMatrixPanel.h deleted file mode 100644 index 885b937..0000000 --- a/examples/One_Quarter_1_4_ScanPanel/OneQuarterScanMatrixPanel.h +++ /dev/null @@ -1,451 +0,0 @@ - -/* - Patch class for 32x16 RGB Matrix panels - - reimplement all functions which use x,y coordinates - -*/ - -#ifndef ESP_HUB75_32x16MatrixPanel -#define ESP_HUB75_32x16MatrixPanel - -#include "ESP32-HUB75-MatrixPanel-I2S-DMA.h" -#include -#include "glcdfont.c" - -struct VirtualCoords { - int16_t x; - int16_t y; -}; - -#define VP_WIDTH 32 -#define VP_HEIGHT 16 -#define DEFAULT_FONT_W 5 -#define DEFAULT_FONT_H 7 -#define PIXEL_SPACE 1 // space between chars in a string - - -/* --- PRINTF_BYTE_TO_BINARY macro's --- */ -#define PRINTF_BINARY_PATTERN_INT8 "%c%c%c%c%c%c%c%c" -#define PRINTF_BYTE_TO_BINARY_INT8(i) \ - (((i) & 0x80ll) ? '1' : '0'), \ - (((i) & 0x40ll) ? '1' : '0'), \ - (((i) & 0x20ll) ? '1' : '0'), \ - (((i) & 0x10ll) ? '1' : '0'), \ - (((i) & 0x08ll) ? '1' : '0'), \ - (((i) & 0x04ll) ? '1' : '0'), \ - (((i) & 0x02ll) ? '1' : '0'), \ - (((i) & 0x01ll) ? '1' : '0') - -#define PRINTF_BINARY_PATTERN_INT16 \ - PRINTF_BINARY_PATTERN_INT8 PRINTF_BINARY_PATTERN_INT8 -#define PRINTF_BYTE_TO_BINARY_INT16(i) \ - PRINTF_BYTE_TO_BINARY_INT8((i) >> 8), PRINTF_BYTE_TO_BINARY_INT8(i) - - -/* --- end macros --- */ - - -class QuarterScanMatrixPanel : public Adafruit_GFX -{ - - public: - - MatrixPanel_I2S_DMA *display; - - QuarterScanMatrixPanel(MatrixPanel_I2S_DMA &disp) : Adafruit_GFX(64, 32) - { - this->display = &disp; - size_x = size_y = 1 ; - wrap = false; - cursor_x = cursor_y = 0; - dir = 1; - loop = true; - - } - - VirtualCoords getCoords(int16_t x, int16_t y); - int16_t getVirtualX(int16_t x) { - VirtualCoords coords = getCoords(x, 0); - return coords.x; - } - int16_t getVirtualY(int16_t y) { - VirtualCoords coords = getCoords(0,y); - return coords.y; - } -// int16_t getVirtualY(int16_t y) {return getCoords(0,y).y;} - /** extended function to draw lines/rects/... **/ - virtual uint8_t width() {return VP_WIDTH;}; - virtual uint8_t height() {return VP_HEIGHT;}; - - virtual void drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color); - virtual void drawHLine(int16_t x0, int16_t y0, int16_t w, uint16_t color); - virtual void drawVLine(int16_t x0, int16_t y0, int16_t h, uint16_t color); - virtual void fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color); - - virtual void drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color, uint16_t bg, uint8_t size); - virtual void drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color, uint16_t bg, uint8_t size_x, uint8_t size_y); - virtual void scrollChar(int16_t x, int16_t y, unsigned char c, uint16_t color, uint16_t bg, uint16_t dir, uint16_t speed); - virtual void drawString(int16_t x, int16_t y, unsigned char* c, uint16_t color, uint16_t bg); - virtual size_t write(unsigned char c); // write a character on current cursor position - virtual size_t write(const char *str); // write a character array (string) on current cursor position - - virtual void setTextWrap(bool w); - virtual void setCursor (int16_t x, int16_t y); - void setTextFGColor(uint16_t color) {textFGColor = color;}; - void setTextBGColor(uint16_t color) {textBGColor = color;}; - void setTextSize(uint8_t x, uint8_t y) {size_x = x; size_y = y;}; // magnification, default = 1 - - void setScrollDir(uint8_t d = 1) { dir = (d != 1) ? 0 : 1;}; // set scroll dir default = 1 - void setScroolLoop (bool b = true) { loop = b;} ; // scroll text in a loop, default true - void scrollText(const char *str, uint16_t speed, uint16_t pixels); - /**------------------------------------------**/ - - // equivalent methods of the matrix library so it can be just swapped out. - virtual void drawPixel(int16_t x, int16_t y, uint16_t color); - virtual void fillScreen(uint16_t color); // overwrite adafruit implementation - void clearScreen() { fillScreen(0); } - //void drawPixelRGB565(int16_t x, int16_t y, uint16_t color); - void drawPixelRGB888(int16_t x, int16_t y, uint8_t r, uint8_t g, uint8_t b); - //void drawPixelRGB24(int16_t x, int16_t y, RGB24 color); - void drawIcon (int *ico, int16_t x, int16_t y, int16_t module_cols, int16_t module_rows); - - uint16_t color444(uint8_t r, uint8_t g, uint8_t b) { - return display->color444(r, g, b); - } - uint16_t color565(uint8_t r, uint8_t g, uint8_t b) { - return display->color565(r, g, b); - } - uint16_t color333(uint8_t r, uint8_t g, uint8_t b) { - return display->color333(r, g, b); - } - - void flipDMABuffer() { display->flipDMABuffer(); } - void showDMABuffer() { display->showDMABuffer(); } - - void drawDisplayTest(); - - protected: - int16_t cursor_x, cursor_y; // Cursor position - uint8_t size_x, size_y; // Font size Multiplier default = 1 => 5x7 Font (5width,7Height) - uint16_t textFGColor, textBGColor; - bool wrap ; // < If set, 'wrap' text at right edge of display - uint8_t dir ; // used for scrolling text direction - bool loop ; // used for scrolling text in a loop - - private: - VirtualCoords coords; - -}; // end Class header - - -/*************************************************************************************** - - @brief scroll text from right to left or vice versa on current cursor position - please note, this function is not interruptable. - - @param *c pointer to \0 terminated string - @param pixels number of pixels to scroll, if 0, than scroll complete text - @param speed velocity of scrolling in ms -***************************************************************************************/ -void QuarterScanMatrixPanel::scrollText(const char *str,uint16_t speed, uint16_t pixels = 0) { - // first we put all columns of every char inside str into a big array of lines - // than we move through this array and draw line per line and move this line - // one position to dir - const uint8_t xSize = 6; - uint16_t len = strlen(str); - uint8_t array[len * xSize]; // size of array number of chars * width of char - //uint16_t lenArray = sizeof(array)/sizeof(array[0]); - uint16_t aPtr = 0; - // - // generate array - char c = *str; - // Serial.printf("size *str (%d), size array: (%d) \n", len, lenArray); - - while (c) { - // Serial.printf("** %c ** \n", c); - // read font line per line. A line is a column inside a char - for (int8_t i = 0; i < 5; i++) { - uint8_t line = pgm_read_byte(&font[c * 5 + i]); - array[aPtr++] = line; - // Serial.printf("%d - Line " PRINTF_BINARY_PATTERN_INT8 "\n", i, PRINTF_BYTE_TO_BINARY_INT8(line) ); - } - str++; - c = *str; - array[aPtr++] = 0x00; // line with 0 (space between chars) - - } - array[aPtr++] = 0x00; // line with 0 (space between chars) -/* - Serial.printf("---------------------------- \n"); - for (aPtr=0; aPtr < (len*xSize); aPtr++) { - Serial.printf("%d - Line " PRINTF_BINARY_PATTERN_INT8 "\n", aPtr, PRINTF_BYTE_TO_BINARY_INT8(array[aPtr]) ); - } -*/ - - int16_t x,y,lastX, p; - lastX = (dir) ? VP_WIDTH : 0; - x = cursor_x; - y = cursor_y; - Serial.printf("X: %d, Y: %d \n", x,y); - p=0; - pixels = (pixels) ? pixels : len * xSize; - - while (p <= pixels) { - // remove last pixel positions - fillRect(x,y,5,7,textBGColor); - // set new pixel position - x = (dir) ? lastX - p : lastX + p - pixels; - // iterator through our array - for (uint8_t i=0; i < (len*xSize); i++) { - uint8_t line = array[i]; - //Serial.printf("%d:%d : " PRINTF_BINARY_PATTERN_INT8 "\n", x, i, PRINTF_BYTE_TO_BINARY_INT8(line) ); - // read line and shift from right to left - // start with bit 0 (top of char) to 7(bottom) - for (uint8_t j=0; j < 8; j++, line>>=1) { - if (line & 1) { - // got 1, if x + i outside panel ignore pixel - if (x + i >= 0 && x + i < VP_WIDTH) { - drawPixel(x + i, y + j, textFGColor); - } - } - else { - // got 0 - if (x + i >= 0 && x + i < VP_WIDTH) { - drawPixel(x + i, y + j, textBGColor); - } - } // if - } // for j - } // for i - p++; - delay(speed); - - } // while -} - -inline size_t QuarterScanMatrixPanel::write(const char *str) { - uint8_t x, y; - x=cursor_x; - y=cursor_y; - char c = *str; - while (c) { - //Serial.printf("%c ", c); - write(c); - str++; - c = *str; - x = x + ((DEFAULT_FONT_W + PIXEL_SPACE) * size_x); - setCursor(x,y); - } - Serial.printf("\n"); - return 1; -} - -inline size_t QuarterScanMatrixPanel::write(unsigned char c) { - Serial.printf("\twrite(%d, %d, %c)\n", cursor_x, cursor_y, c); - drawChar(cursor_x, cursor_y, c, textFGColor, textBGColor, size_x, size_y); - return 1; -} - -void QuarterScanMatrixPanel::setTextWrap(bool w) {this->display->setTextWrap(w);} -void QuarterScanMatrixPanel::setCursor(int16_t x, int16_t y) { - cursor_x = x; - cursor_y = y; -} - - -/* - new for 16x32 panels - */ -inline void QuarterScanMatrixPanel::drawLine(int16_t x, int16_t y, int16_t x1, int16_t y1, uint16_t color) -{ - int16_t a,b; - for (a=x; a <= x1; a++) { - for (b=y; b <= y1; b++) { - drawPixel(a,b,color); - } - } -} - -inline void QuarterScanMatrixPanel::drawHLine(int16_t x, int16_t y, int16_t w, uint16_t color) -{ - drawLine(x,y,x+w,y, color); -} - -inline void QuarterScanMatrixPanel::drawVLine(int16_t x, int16_t y, int16_t h, uint16_t color) -{ - drawLine(x,y,x,y+h, color); -} - -inline void QuarterScanMatrixPanel::fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color) -{ - for (int16_t i = x; i < x + w; i++) { - drawVLine(i, y, h, color); - } -} - -void QuarterScanMatrixPanel::drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color, uint16_t bg, uint8_t size) -{ - drawChar(x,y,c,color, bg, size, size); -} - -inline void QuarterScanMatrixPanel::scrollChar(int16_t x, int16_t y, unsigned char c, uint16_t color, uint16_t bg, uint16_t dir, uint16_t speed){ - - if ((x >= VP_WIDTH) || - (y >= VP_HEIGHT) || - ((x + 6 * size_x-1) < 0) || - ((y + 8 * size_y-1) <0)) - return; - setTextWrap(true); - // text wrap is only for the right end of the panel, to scroll soft out of the left of panel - // algorithm should wrap the character from left to right - - - // loop s = scroll-loop, scrolls char 5 pixels into dir - uint8_t lastX = x; - for (int8_t s = 0; s < 6; s++) { - // loop i : width of a character - Serial.printf("X:%d ", x); - - // clear current position - fillRect(x,y,5,7,0); - x = lastX - s; - for (int8_t i = 0; i < 5; i++) { - // first line is the first vertical part of a character and 8bits long - // last bit is everytime 0 - // we read 5 lines with 8 bit (5x7 char + 8bit with zeros) - // Example : char A (90deg cw) - // 01111100 - // 00010010 - // 00010001 - // 00010010 - // 01111100 - uint8_t line = pgm_read_byte(&font[c * 5 + i]); - // shift from right to left bit per bit - // loop j = height of a character - // loop through a column of current character - Serial.printf("i:%d ", i); - // ignore all pixels outside panel - if (x+i >= VP_WIDTH) continue; - - for (int8_t j=0; j < 8; j++, line >>= 1) { - if (line & 1) { - Serial.printf - (" ON %d", x+i); - // we read 1 - if (x >= 0) { - drawPixel(x+i, y+j, color); - } - else if (x+i >= 0) { - drawPixel(x+i, y+j, color); - } - } - else if (bg != color) { - // we read 0 - Serial.printf(" OFF %d", x+i); - - if (x >= 0) { - drawPixel(x+i, y+j, bg); - } - else if (x+i >= 0) { - drawPixel(x+i, y+j, bg); - } - } - } - } - Serial.printf("\n"); - delay(speed); - } -} - - -inline void QuarterScanMatrixPanel::drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color, uint16_t bg, uint8_t size_x, uint8_t size_y) -{ - //Serial.printf("unmapped : drawChar(%d, %d, %c) \n",x, y, c); - - // note: remapping to 16x32 coordinates is done inside drawPixel() or fillRect - - if ((x >= VP_WIDTH) || - (y >= VP_HEIGHT) || - ((x + 6 * size_x-1) < 0) || - ((y + 8 * size_y-1) <0)) - return; - //Serial.printf("Font-Array : %d \n", sizeof(font)); - for (int8_t i = 0; i < 5; i++) { - uint8_t line = pgm_read_byte(&font[c * 5 + i]); - //Serial.printf("%d - Line " PRINTF_BINARY_PATTERN_INT8 "\n", i, PRINTF_BYTE_TO_BINARY_INT8(line) ); - for (int8_t j = 0; j < 8; j++, line >>= 1) { - if (line & 1) { - if (size_x == 1 && size_y == 1) - //Serial.printf(""); - drawPixel(x + i, y + j, color); - else - // remark: it's important to call function with original coordinates for x/y - fillRect(x + i * size_x, y + j * size_y, size_x, size_y, - color); - } else if (bg != color) { - if (size_x == 1 && size_y == 1) - drawPixel(x + i, y + j, bg); - else - // remark: it's important to call function with original coordinates for x/y - fillRect(x + i * size_x, y + j * size_y, size_x, size_y, bg); - } - } - } - -} - -inline void QuarterScanMatrixPanel::drawString(int16_t x, int16_t y, unsigned char* c, uint16_t color, uint16_t bg) { - -} - -inline VirtualCoords QuarterScanMatrixPanel::getCoords(int16_t x, int16_t y) -{ - const int y_remap[] = { 0,1,8,9,4,5,12,13,16,17,24,25,22,23,30,31 }; - if (y > VP_HEIGHT) - y = VP_HEIGHT; - if (x > VP_WIDTH) - x = VP_WIDTH; - coords.x = x + VP_WIDTH; - coords.y = y_remap[y]; - return coords; -} - - -/* -------------------------*/ - -inline void QuarterScanMatrixPanel::drawPixel(int16_t x, int16_t y, uint16_t color) -{ - VirtualCoords coords = getCoords(x, y); - this->display->drawPixel(coords.x, coords.y, color); -} - -inline void QuarterScanMatrixPanel::fillScreen(uint16_t color) // adafruit virtual void override -{ - // No need to map this. - this->display->fillScreen(color); -} -/* -inline void QuarterScanMatrixPanel::drawPixelRGB565(int16_t x, int16_t y, uint16_t color) -{ - VirtualCoords coords = getCoords(x, y); - this->display->drawPixelRGB565( coords.x, coords.y, color); -} -*/ - - -inline void QuarterScanMatrixPanel::drawPixelRGB888(int16_t x, int16_t y, uint8_t r, uint8_t g, uint8_t b) -{ - VirtualCoords coords = getCoords(x, y); - this->display->drawPixelRGB888( coords.x, coords.y, r, g, b); -} -/* -inline void QuarterScanMatrixPanel::drawPixelRGB24(int16_t x, int16_t y, RGB24 color) -{ - VirtualCoords coords = getCoords(x, y); - this->display->drawPixelRGB24(coords.x, coords.y, color); -} -*/ - - -// need to recreate this one, as it wouldn't work to just map where it starts. -inline void QuarterScanMatrixPanel::drawIcon (int *ico, int16_t x, int16_t y, int16_t module_cols, int16_t module_rows) { } - -#endif \ No newline at end of file diff --git a/examples/One_Quarter_1_4_ScanPanel/One_Quarter_1_4_ScanPanel.ino b/examples/One_Quarter_1_4_ScanPanel/One_Quarter_1_4_ScanPanel.ino deleted file mode 100644 index 16e47d8..0000000 --- a/examples/One_Quarter_1_4_ScanPanel/One_Quarter_1_4_ScanPanel.ino +++ /dev/null @@ -1,226 +0,0 @@ -/************************************************************************* - * Contributor: https://github.com/mrRobot62 - * - * Description: - * - * The underlying implementation of the ESP32-HUB75-MatrixPanel-I2S-DMA only - * supports output to 1/16 or 1/32 scan panels (two scan parallel scan lines) - * this is fixed and cannot be changed. - * - * However, it is possible to connect 1/4 scan panels to this same library and - * 'trick' the output to work correctly on these panels by way of adjusting the - * pixel co-ordinates that are 'sent' to the ESP32-HUB75-MatrixPanel-I2S-DMA - * library (in this example, it is the 'dmaOutput' class). - * - * This is done by way of the 'QuarterScanMatrixPanel.h' class that sends - * adjusted x,y co-ordinates to the underlying ESP32-HUB75-MatrixPanel-I2S-DMA - * library's drawPixel routine. - * - * Refer to the 'getCoords' function within 'QuarterScanMatrixPanel.h' - * - **************************************************************************/ - - // PLEASE NOTE THIS EXAMPLE NO LONGER WORKS AS OF AUGUST 2021 - // IT NEEDS TO BE UPDATED TO THE NEW WAY OF USING THE LIBRARY - -// uncomment to use custom pins, then provide below -#define USE_CUSTOM_PINS - -/* Pin 1,3,5,7,9,11,13,15 */ -#define R1_PIN 25 -#define B1_PIN 27 -#define R2_PIN 14 -#define B2_PIN 13 -#define A_PIN 23 -#define C_PIN 5 -#define CLK_PIN 16 -#define OE_PIN 15 - -/* Pin 2,6,10,12,14 */ -#define G1_PIN 26 -#define G2_PIN 12 -#define B_PIN 19 -#define D_PIN 17 -#define LAT_PIN 4 -#define E_PIN -1 // required for 1/32 scan panels - -#include "OneQuarterScanMatrixPanel.h" // Virtual Display to re-map co-ordinates such that they draw correctly on a 32x16 1/4 Scan panel -#include - -/* - * Below is an is the 'legacy' way of initialising the MatrixPanel_I2S_DMA class. - * i.e. MATRIX_WIDTH and MATRIX_HEIGHT are modified by compile-time directives. - * By default the library assumes a single 64x32 pixel panel is connected. - * - * Refer to the example '2_PatternPlasma' on the new / correct way to setup this library - * for different resolutions / panel chain lengths within the sketch 'setup()'. - * - */ -MatrixPanel_I2S_DMA dmaOutput; - -// Create virtual 1/2 to 1/4 scan pixel co-ordinate mapping class. -QuarterScanMatrixPanel display(dmaOutput); - -#include - -int time_counter = 0; -int cycles = 0; - -CRGBPalette16 currentPalette; -CRGB currentColor; - - -CRGB ColorFromCurrentPalette(uint8_t index = 0, uint8_t brightness = 255, TBlendType blendType = LINEARBLEND) { - return ColorFromPalette(currentPalette, index, brightness, blendType); -} - -typedef struct Matrix { - uint8_t x; - uint8_t y; -} Matrix; - -Matrix matrix; - - -void testSimpleChars(uint16_t timeout) { - - /** drawChar() **/ - Serial.println("draw chars with drawChar()"); - display.fillScreen(display.color444(0,0,0)); - - uint16_t myFGColor = display.color565(180,0,0); - uint16_t myBGColor = display.color565(0,50,0); - display.fillScreen(display.color444(0,0,0)); - display.drawChar(0,0,'X',myFGColor, myFGColor,1); - display.drawChar(16,1,'Y',myFGColor, myBGColor,1); - display.drawChar(3,9,'Z',myFGColor, myFGColor,1); - display.drawChar(16,9,'4',display.color565(0,220,0), myBGColor,1); - delay(timeout); - -} - -void testSimpleCharString(uint16_t timeout) { - uint8_t x,y,w,h; - w = 6; h=8; - x = 0; y=0; - display.fillScreen(display.color444(0,0,0)); - display.setTextFGColor(display.color565(0,60,180)); - display.setCursor(x,y); display.write('L'); - display.setCursor(x+w,y); display.write('u'); - display.setCursor(x+(2*w),y); display.write('n'); - display.setCursor(x+(3*w),y); display.write('a'); - display.setTextFGColor(display.color565(180,60,140)); - display.setCursor(x+(4*w),y); display.write('X'); - - delay(timeout); - -} - -void testTextString(uint16_t timeout) { - display.fillScreen(display.color444(0,0,0)); - display.setTextFGColor(display.color565(0,60,255)); - - display.setCursor(0,5); - display.write("HURRA"); - delay(timeout); -} - -void testWrapChar(const char c, uint16_t speed, uint16_t timeout) { - display.setTextWrap(true); - for (uint8_t i = 32; i > 0; i--) { - display.fillScreen(display.color444(0,0,0)); - display.setCursor(i, 5); - display.write(c); - delay(speed); - } - delay(timeout); -} - -void testScrollingChar(const char c, uint16_t speed, uint16_t timeout) { - Serial.println("Scrolling Char"); - uint16_t myFGColor = display.color565(180,0,0); - uint16_t myBGColor = display.color565(60,120,0); - display.fillScreen(display.color444(0,0,0)); - display.setTextWrap(true); - // from right to left with wrap - display.scrollChar(31,5,c, myFGColor, myFGColor, 1, speed); - // left out with wrap - delay(500); - display.scrollChar(0,5,c, myBGColor, myBGColor, 1, speed); - - delay(timeout); -} - -void testScrollingText(const char *str, uint16_t speed, uint16_t timeout) { - Serial.println("Scrolling Text as loop"); - // pre config - uint16_t red = display.color565(255,0,100); - uint16_t blue100 = display.color565(0,0,100); - uint16_t black = display.color565(0,0,0); - uint16_t green = display.color565(0,255,0); - uint16_t green150 = display.color565(0,150,0); - - display.fillScreen(display.color565(0,0,0)); - display.setCursor(31,5); - display.setScrollDir(1); - - /** black background **/ - display.setTextFGColor(green150); - display.scrollText("** Welcome **", speed); - display.fillScreen(black); - delay(timeout / 2) ; - - /** scrolling with colored background */ - display.fillRect(0,4,VP_WIDTH,8,blue100); - // scrolling, using default pixels size = length of string (not used parameter pixels) - display.setTextFGColor(red); - display.setTextBGColor(blue100); - display.scrollText(str, speed); - delay(timeout / 2) ; - - // same as above but now from left to right - display.setScrollDir(0); - display.setTextFGColor(blue100); - display.setTextBGColor(red); - display.fillRect(0,4,VP_WIDTH,8,red); - display.scrollText(str, speed, 0); - - delay(timeout); - display.fillScreen(black); - display.setTextFGColor(red); - - -} - -void setup() { - - Serial.begin(115200); - delay(500); - Serial.println("*****************************************************"); - Serial.println(" dmaOutput 32x16 !"); - Serial.println("*****************************************************"); - -#ifdef USE_CUSTOM_PINS - dmaOutput.begin(R1_PIN, G1_PIN, B1_PIN, R2_PIN, G2_PIN, B2_PIN, A_PIN, B_PIN, C_PIN, D_PIN, E_PIN, LAT_PIN, OE_PIN, CLK_PIN ); // setup the LED matrix -#else - display.begin(true); // init buffers -#endif - - // fill the screen with 'black' - display.fillScreen(display.color444(0, 0, 0)); - - // Set current FastLED palette - currentPalette = RainbowColors_p; - // display.fillScreen(display.color565(0, 0, 0)); -} - -void loop() { - display.fillScreen(display.color444(0, 0, 0)); - //testSimpleChars(1500); - //testSimpleCharString (1500); - testTextString(2000); - // length = 16 bytes without \0 - //testWrapChar('A', 250, 1500); - //testScrollingChar('X', 250, 2000); - testScrollingText("Scrolling 16x32", 100, 2000); -} // end loop \ No newline at end of file diff --git a/examples/One_Quarter_1_4_ScanPanel/README.md b/examples/One_Quarter_1_4_ScanPanel/README.md deleted file mode 100644 index 817ef5e..0000000 --- a/examples/One_Quarter_1_4_ScanPanel/README.md +++ /dev/null @@ -1,78 +0,0 @@ -# Using this library with 32x16 1/4 Scan Panels - -## Problem -ESP32-HUB75-MatrixPanel-I2S-DMA library will not display output correctly with 1/4 scan panels such [as this](https://de.aliexpress.com/item/33017477904.html?spm=a2g0o.detail.1000023.16.1fedd556Yw52Zi&algo_pvid=4329f1c0-04d2-43d9-bdfd-7d4ee95e6b40&algo_expid=4329f1c0-04d2-43d9-bdfd-7d4ee95e6b40-52&btsid=9a8bf2b5-334b-45ea-a849-063d7461362e&ws_ab_test=searchweb0_0,searchweb201602_10,searchweb201603_60%5BAliExpress%2016x32%5D). - -## Solution -It is possible to connect 1/4 scan panels to this library and 'trick' the output to work correctly on these panels by way of adjusting the pixel co-ordinates that are 'sent' to the ESP32-HUB75-MatrixPanel-I2S-DMA library (in this example, it is the 'dmaOutput' class). - -Creation of a 'QuarterScanMatrixPanel.h' class which sends an adjusted x,y co-ordinates to the underlying ESP32-HUB75-MatrixPanel-I2S-DMA library's drawPixel routine, to trick the output to look pixel perfect. Refer to the 'getCoords' function within 'QuarterScanMatrixPanel.h' - -## Limitations - -* Only one font (glcd - standard font) is implemented. This font can't be resized. - -## New functions (and adapted function) in this QuarterScanMatrixPanel class -### drawLine -`void drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color)` - -Parameters should be self explained. x0/y0 upper left corner, x1/y1 lower right corner - -### drawHLine -`void drawHLine(int16_t x0, int16_t y0, int16_t w, uint16_t color)` - -Draw a fast horizontal line with length `w`. Starting at `x0/y0` - -### drawVLine -`void drawVLine(int16_t x0, int16_t y0, int16_t h, uint16_t color)` - -Draw a fast vertical line with length `h` Starting at `x0/y0` - -### fillRect -`void fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)` - -Draw a rectangle starting at `x/y` with width `w` and height `h`in `color` - -### drawChar (5x7) Standard font -`drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color, uint16_t bg, uint8_t size)` - -Draw a char at position x/y in `color` with a background color `bg` -`size` is ignored. - -### writeChar (5x7) -`size_t write(unsigned char c)` - -Write a char at current cursor position with current foreground and background color. - -### writeString (5x7) -`size_t write(const char *c)` - -Write a string at current cursor position with current foreground and background color. -You have to use `setCursor(x,y)` and `setTextFGColor() / setTextBGColor()` - -### drawString (5x7) -`void drawString(int16_t x, int16_t y, unsigned char* c, uint16_t color, uint16_t bg)` - -Draw String at position x/y wit foreground `color` and background `bg` -Example: `display.drawString(0,5,"**Welcome**",display.color565(0,60,255));` - -### void setScrollDir(uint8_t d = 1) -Set scrolling direction 0=left to right, 1= right to left (default) - -### scrollText -`void scrollText(const char *str, uint16_t speed, uint16_t pixels)` - -Scroll text `str` into `setScrollDir`. Speed indicates how fast in ms per pixel, pixels are the number pixes which should be scrolled, if not set or 0, than pixels is calculates by size of `*str` - -### drawPixel(int16_t x, int16_t y, uint16_t color) -Draw a pixel at x/y in `color`. This function is the atomic function for all above drawing functions - -### clearScreen() (all pixels off (black)) -Same as `fillScreen(0)` - - -## Example videos: -https://user-images.githubusercontent.com/949032/104838449-4aae5600-58bb-11eb-802f-a358b49a9315.mp4 - -https://user-images.githubusercontent.com/949032/104366906-5647f880-551a-11eb-9792-a6f8276629e6.mp4 -