Skip to content

Add support for the EL133UF1 13.3" panel used on Inkplate 13SPECTRA#31

Open
JosipKuci wants to merge 2 commits into
bitbank2:mainfrom
JosipKuci:add-inkplate13spectra-panel
Open

Add support for the EL133UF1 13.3" panel used on Inkplate 13SPECTRA#31
JosipKuci wants to merge 2 commits into
bitbank2:mainfrom
JosipKuci:add-inkplate13spectra-panel

Conversation

@JosipKuci

Copy link
Copy Markdown

Add support for the EL133UF1 Spectra 6 panel which is used on the Soldered Inkplate 13SPECTRA device, along with a define used to pre-configure pins for use with the Inkplate 13SPECTRA device.

References

Changes

  • bb_epaper.h - Added enum EP133_SPECTRA_1200x1600 to display types, right before EP_PANEL_COUNT. Added enum EPD_INKPLATE13SPECTRA to products with built-in EPDs
  • bb_ep.inl - Added epd133_spectra_init and epd133_spectra_init_slave sequences, one for each onboard IC, following the sequence available in the Inkplate Arduino Library, added panel details in the panelDefs array.
  • bb_epaper.cpp - Added switch statement for automatically configuring the pins when EPD_INKPLATE13SPECTRA is selected
  • arduino_io.inl - bbepWriteCmd had a milisecond delay before asserting CS, which caused a framebuffer misalignment on the second IC of the panel, show on the image below. This was fixed by either lowering it to 1 microsecond (as done currently) or by removing said delay.
20260615_074030 (1)

Testing

Testing was done with the following Arduino sketch:

#include <bb_epaper.h>
#include "Fonts/Roboto_Black_24.h"
BBEPAPER bbep;

void setup(void)
{
int rc;

   Serial.begin(115200);
   delay(3000);
   Serial.println("Starting...");
   rc = bbep.begin(EPD_INKPLATE13SPECTRA);
   if (rc == BBEP_SUCCESS) {
      bbep.allocBuffer(); 

      // Draw 6 vertical color bands across the full 1600x1200 canvas
      const uint8_t colors[6] = {BBEP_BLACK, BBEP_WHITE, BBEP_YELLOW, BBEP_RED, BBEP_BLUE, BBEP_GREEN};
      int bandW = bbep.width() / 6; // ~266px each
      for (int i = 0; i < 6; i++) {
         int x = i * bandW;
         int w = (i == 5) ? (bbep.width() - x) : bandW;
         bbep.fillRect(x, 0, w, bbep.height(), colors[i]);
      }

      // White box behind the text so it's readable regardless of band color
      bbep.fillRect(0, 0, 420, 170, BBEP_WHITE);

      // Draw text in the top-left box
      bbep.setFont(Roboto_Black_24);
      bbep.setCursor(10, 40);
      bbep.setTextColor(BBEP_BLACK);
      bbep.println("bb_epaper");
      bbep.println("Inkplate 13 SPECTRA");
      bbep.println("Spectra 6 1600x1200");

      bbep.writePlane(); 
      bbep.refresh(REFRESH_FULL); 
      bbep.wait();
      bbep.sleep(LIGHT_SLEEP);
   } else {
      Serial.println("Panel init failed");
   }
} 

void loop(void)
{
} 

Which produced the following expected output:

20260615_124509

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant