Hardware spreadsheet help

Hey,
I recently bought Grove - Triple Color E-Ink Display 1.54''
I am connected via UART and I've taken a look at both the specs and code examples and I cannot find any correlation between them.

I'd really appreciate any help,
Thanks!

Please post a link to the device, its specs and an example of the code that illustrates the problem

This is the device: Grove - Triple Color E-Ink Display 1.54" - Seeed Wiki
This is the specs: https://files.seeedstudio.com/wiki/Grove-Triple_Color_E-Ink_Display_1.54/res/E-Ink%20152X152-Black%2CWhite%20and%20Red-1.54inch.pdf

This is the example code: Grove_Triple_Color_E-lnk_1.54/E_ink154_factoryCode.ino at master · Seeed-Studio/Grove_Triple_Color_E-lnk_1.54 · GitHub

Thanks for the links

I have had a quick look and something seems odd. The specs indicate that the display has an SPI interface but the sketch appears to use the Serial interface, albeit at 230400 baud. Such a combination may be possible but it is outside of my experience

Did you find any matching between the example code to the specs?
I could not find any match between the 'a' to start the data transfer to the specs themselves and wondered whether I am missing something.

Once I found the anomaly with the interface I stopped looking

Hi, @twisterz0r
Welcome to the forum.

To add code please click this link;

Thanks.. Tom... :smiley: :+1: :coffee: :australia:

I have not included in the code snippet the 2888 byte array for size issues. (IMAGE_BLACK, IMAGE_RED)
This is the code example:

#define RECV_ERROR       -1
#define CONTINUE_TRANS    0
#define RECV_DONE         1

int begin_flag = 0;
//Send data to e-link board.
void serial_send_data(const uint8_t* data, uint32_t data_len) {
    for (int i = 0; i < data_len; i++) {
        SERIAL.write(pgm_read_byte(&data[i]));
    }
}

//Send image array
void write_image_picture(void) {
    for (int i = 0; i < 38; i++) {
        serial_send_data(&IMAGE_BLACK[i * 76], 76);
        delay(70);
    }
    delay(70);
    for (int i = 0; i < 38; i++) {
        serial_send_data(&IMAGE_RED[i * 76], 76);
        delay(70);
    }
    begin_flag = 0;
}

//Send the start transfer command
void send_begin() {
    char str = 'a';
    SERIAL.write(str);
    while (1) {
        if (SERIAL.available() > 0) {
            delay(10);
            char str1 = SERIAL.read();
            Serial.print(str1);
            if (str1 == 'b') {
                break;
            }
        }
    }
}

void setup() {
    SERIAL.begin(230400);
    delay(10);
    send_begin();
    delay(2000);
    write_image_picture();
    delay(2000);
}



void loop() {
    /*
        //180s is the safe time to display
        delay(180000);
        send_begin();
        delay(2000);
        write_image_picture();
    */
}

The “specs” are for the display only. The seeed product clearly shows an addition PCB with a cpu chip on it.

I am fairly new to his, so I am sorry if this is an obvious thing I missed.
I am using this https://www.seeedstudio.com/USB-To-Uart-5V-3V3-p-1832.html
I'm trying to just figure out how to actually use it correctly with the specs

That is the spec for the raw display, not for the driver board.

It looks like all you get for an interface is a way to upload the Black and Red arrays (each 2888 bytes). You are not supposed to do that more often than every three minutes.