diff --git a/E-paper_Separate_Program/13.3inch_e-Paper_E/RaspberryPi/c/lib/e-Paper/EPD_13in3e.c b/E-paper_Separate_Program/13.3inch_e-Paper_E/RaspberryPi/c/lib/e-Paper/EPD_13in3e.c index 11c269c5..2046cce7 100644 --- a/E-paper_Separate_Program/13.3inch_e-Paper_E/RaspberryPi/c/lib/e-Paper/EPD_13in3e.c +++ b/E-paper_Separate_Program/13.3inch_e-Paper_E/RaspberryPi/c/lib/e-Paper/EPD_13in3e.c @@ -71,7 +71,10 @@ const UBYTE PWS_V[1] = { const UBYTE AN_TM_V[9] = { 0xC0, 0x1C, 0x1C, 0xCC, 0xCC, 0xCC, 0x15, 0x15, 0x55 }; - +const uint8_t AUTO_V[2][1] = { + { 0xA5 }, // performs PON -> DRF -> POF + { 0xA7 } // performs PON -> DRF -> POF -> DSLP +}; const UBYTE AGID_V[1] = { 0x10 @@ -169,8 +172,14 @@ static void EPD_13IN3E_ReadBusyH(void) function : Turn On Display parameter: ******************************************************************************/ +#define AUTO_SEQUENCE 1 static void EPD_13IN3E_TurnOnDisplay(void) { +#ifdef AUTO_SEQUENCE + EPD_13IN3E_CS_ALL(0); + EPD_13IN3E_SPI_Sand(AUTO, AUTO_V[0], sizeof(AUTO_V[0])); + EPD_13IN3E_CS_ALL(1); +#else printf("Write PON \r\n"); EPD_13IN3E_CS_ALL(0); EPD_13IN3E_SendCommand(0x04); // POWER_ON @@ -189,6 +198,7 @@ static void EPD_13IN3E_TurnOnDisplay(void) EPD_13IN3E_CS_ALL(0); EPD_13IN3E_SPI_Sand(POF, POF_V, sizeof(POF_V)); EPD_13IN3E_CS_ALL(1); +#endif // EPD_13IN3E_ReadBusyH(); printf("Display Done!! \r\n"); } diff --git a/E-paper_Separate_Program/13.3inch_e-Paper_E/STM32-F103ZET6/User/e-Paper/EPD_13in3e.c b/E-paper_Separate_Program/13.3inch_e-Paper_E/STM32-F103ZET6/User/e-Paper/EPD_13in3e.c index da76adcd..5f083ad2 100644 --- a/E-paper_Separate_Program/13.3inch_e-Paper_E/STM32-F103ZET6/User/e-Paper/EPD_13in3e.c +++ b/E-paper_Separate_Program/13.3inch_e-Paper_E/STM32-F103ZET6/User/e-Paper/EPD_13in3e.c @@ -70,7 +70,10 @@ const UBYTE PWS_V[1] = { const UBYTE AN_TM_V[9] = { 0xC0, 0x1C, 0x1C, 0xCC, 0xCC, 0xCC, 0x15, 0x15, 0x55 }; - +const uint8_t AUTO_V[2][1] = { + { 0xA5 }, // performs PON -> DRF -> POF + { 0xA7 } // performs PON -> DRF -> POF -> DSLP +}; const UBYTE AGID_V[1] = { 0x10 @@ -170,8 +173,14 @@ static void EPD_13IN3E_ReadBusyH(void) function : Turn On Display parameter: ******************************************************************************/ +#define AUTO_SEQUENCE 1 static void EPD_13IN3E_TurnOnDisplay(void) { +#ifdef AUTO_SEQUENCE + EPD_13IN3E_CS_ALL(0); + EPD_13IN3E_SPI_Sand(AUTO, AUTO_V[0], sizeof(AUTO_V[0])); + EPD_13IN3E_CS_ALL(1); +#else printf("Write PON \r\n"); EPD_13IN3E_CS_ALL(0); EPD_13IN3E_SendCommand(0x04); // POWER_ON @@ -189,6 +198,7 @@ static void EPD_13IN3E_TurnOnDisplay(void) EPD_13IN3E_CS_ALL(0); EPD_13IN3E_SPI_Sand(POF, POF_V, sizeof(POF_V)); EPD_13IN3E_CS_ALL(1); +#endif // EPD_13IN3E_ReadBusyH(); printf("Display Done!! \r\n"); } diff --git a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_4in0e.c b/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_4in0e.c index 71bffc61..8c59d3f8 100644 --- a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_4in0e.c +++ b/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_4in0e.c @@ -89,27 +89,34 @@ static void EPD_4IN0E_ReadBusyH(void) function : Turn On Display parameter: ******************************************************************************/ +#define AUTO_SEQUENCE 1 static void EPD_4IN0E_TurnOnDisplay(void) { - - EPD_4IN0E_SendCommand(0x04); // POWER_ON +#ifdef AUTO_SEQUENCE + EPD_4IN0E_SendCommand(0x17); // AUTO: AUTO SEQUENCE + EPD_4IN0E_SendData(0xA5); // A5: PON->DRF->POF / A7: PON->DRF->POF->DSLP +#else + EPD_4IN0E_SendCommand(0x04); // PON: POWER ON EPD_4IN0E_ReadBusyH(); DEV_Delay_ms(200); +#if 0 //Second setting - EPD_4IN0E_SendCommand(0x06); + EPD_4IN0E_SendCommand(0x06); // BTST: BOOSTER SOFT START (why 2nd time?) EPD_4IN0E_SendData(0x6F); EPD_4IN0E_SendData(0x1F); EPD_4IN0E_SendData(0x17); EPD_4IN0E_SendData(0x27); DEV_Delay_ms(200); +#endif - EPD_4IN0E_SendCommand(0x12); // DISPLAY_REFRESH + EPD_4IN0E_SendCommand(0x12); // DRF: DISPLAY/DATA REFRESH EPD_4IN0E_SendData(0x00); EPD_4IN0E_ReadBusyH(); - EPD_4IN0E_SendCommand(0x02); // POWER_OFF + EPD_4IN0E_SendCommand(0x02); // POF: POWER OFF EPD_4IN0E_SendData(0X00); +#endif EPD_4IN0E_ReadBusyH(); } @@ -131,32 +138,32 @@ void EPD_4IN0E_Init(void) EPD_4IN0E_SendData(0x09); EPD_4IN0E_SendData(0x18); - EPD_4IN0E_SendCommand(0x01); + EPD_4IN0E_SendCommand(0x01); // PWR: POWER SETTING (REGISTER) EPD_4IN0E_SendData(0x3F); - EPD_4IN0E_SendCommand(0x00); - EPD_4IN0E_SendData(0x5F); - EPD_4IN0E_SendData(0x69); + EPD_4IN0E_SendCommand(0x00); // PSR: PANEL SETTING (REGISTER) + EPD_4IN0E_SendData(0x1F); - EPD_4IN0E_SendCommand(0x05); +#if 0 + EPD_4IN0E_SendCommand(0x05); // looks like BTST, but 0x05 would be PMES: POWER ON MEASURE CMD EPD_4IN0E_SendData(0x40); EPD_4IN0E_SendData(0x1F); EPD_4IN0E_SendData(0x1F); EPD_4IN0E_SendData(0x2C); - EPD_4IN0E_SendCommand(0x08); + EPD_4IN0E_SendCommand(0x08); // looks like BTST, but there is no further BTST on 0x08? EPD_4IN0E_SendData(0x6F); EPD_4IN0E_SendData(0x1F); EPD_4IN0E_SendData(0x1F); EPD_4IN0E_SendData(0x22); +#endif - EPD_4IN0E_SendCommand(0x06); - EPD_4IN0E_SendData(0x6F); - EPD_4IN0E_SendData(0x1F); - EPD_4IN0E_SendData(0x17); - EPD_4IN0E_SendData(0x17); + EPD_4IN0E_SendCommand(0x06); // BTST: BOOSTER SOFT START + EPD_4IN0E_SendData(0x10); + EPD_4IN0E_SendData(0x10); + EPD_4IN0E_SendData(0x10); - EPD_4IN0E_SendCommand(0x03); + EPD_4IN0E_SendCommand(0x03); // PFS: POWER OFF SEQUENCE SETTING EPD_4IN0E_SendData(0x00); EPD_4IN0E_SendData(0x54); EPD_4IN0E_SendData(0x00); @@ -166,22 +173,22 @@ void EPD_4IN0E_Init(void) EPD_4IN0E_SendData(0x02); EPD_4IN0E_SendData(0x00); - EPD_4IN0E_SendCommand(0x30); - EPD_4IN0E_SendData(0x08); + EPD_4IN0E_SendCommand(0x30); // PLL: PLL CONTROL + EPD_4IN0E_SendData(0x07); // 0x00(slow) - 0x07(fast), >0x08(slow again) - EPD_4IN0E_SendCommand(0x50); + EPD_4IN0E_SendCommand(0x50); // CDI: VCOM AND DATA INTERVAL SETTING EPD_4IN0E_SendData(0x3F); - EPD_4IN0E_SendCommand(0x61); - EPD_4IN0E_SendData(0x01); + EPD_4IN0E_SendCommand(0x61); // TRES: RESOLUTION SETTING + EPD_4IN0E_SendData(0x01); // [0x0190][0x0258] -> displaysize EPD_4IN0E_SendData(0x90); EPD_4IN0E_SendData(0x02); EPD_4IN0E_SendData(0x58); - EPD_4IN0E_SendCommand(0xE3); + EPD_4IN0E_SendCommand(0xE3); // PWS: POWER SAVING EPD_4IN0E_SendData(0x2F); - EPD_4IN0E_SendCommand(0x84); + EPD_4IN0E_SendCommand(0x84); // could be T_VCDS? EPD_4IN0E_SendData(0x01); EPD_4IN0E_ReadBusyH(); diff --git a/E-paper_Separate_Program/4inch_e-Paper_E/STM32-F103ZET6/User/e-Paper/EPD_4in0e.c b/E-paper_Separate_Program/4inch_e-Paper_E/STM32-F103ZET6/User/e-Paper/EPD_4in0e.c index df1450a8..7501a316 100644 --- a/E-paper_Separate_Program/4inch_e-Paper_E/STM32-F103ZET6/User/e-Paper/EPD_4in0e.c +++ b/E-paper_Separate_Program/4inch_e-Paper_E/STM32-F103ZET6/User/e-Paper/EPD_4in0e.c @@ -89,27 +89,34 @@ static void EPD_4IN0E_ReadBusyH(void) function : Turn On Display parameter: ******************************************************************************/ +#define AUTO_SEQUENCE 1 static void EPD_4IN0E_TurnOnDisplay(void) { - - EPD_4IN0E_SendCommand(0x04); // POWER_ON +#ifdef AUTO_SEQUENCE + EPD_4IN0E_SendCommand(0x17); // AUTO: AUTO SEQUENCE + EPD_4IN0E_SendData(0xA5); // A5: PON->DRF->POF / A7: PON->DRF->POF->DSLP +#else + EPD_4IN0E_SendCommand(0x04); // PON: POWER ON EPD_4IN0E_ReadBusyH(); DEV_Delay_ms(200); +#if 0 //Second setting - EPD_4IN0E_SendCommand(0x06); + EPD_4IN0E_SendCommand(0x06); // BTST: BOOSTER SOFT START (why 2nd time?) EPD_4IN0E_SendData(0x6F); EPD_4IN0E_SendData(0x1F); EPD_4IN0E_SendData(0x17); EPD_4IN0E_SendData(0x27); DEV_Delay_ms(200); +#endif - EPD_4IN0E_SendCommand(0x12); // DISPLAY_REFRESH + EPD_4IN0E_SendCommand(0x12); // DRF: DISPLAY/DATA REFRESH EPD_4IN0E_SendData(0x00); EPD_4IN0E_ReadBusyH(); - EPD_4IN0E_SendCommand(0x02); // POWER_OFF + EPD_4IN0E_SendCommand(0x02); // POF: POWER OFF EPD_4IN0E_SendData(0X00); +#endif EPD_4IN0E_ReadBusyH(); } @@ -131,32 +138,32 @@ void EPD_4IN0E_Init(void) EPD_4IN0E_SendData(0x09); EPD_4IN0E_SendData(0x18); - EPD_4IN0E_SendCommand(0x01); + EPD_4IN0E_SendCommand(0x01); // PWR: POWER SETTING (REGISTER) EPD_4IN0E_SendData(0x3F); - EPD_4IN0E_SendCommand(0x00); - EPD_4IN0E_SendData(0x5F); - EPD_4IN0E_SendData(0x69); + EPD_4IN0E_SendCommand(0x00); // PSR: PANEL SETTING (REGISTER) + EPD_4IN0E_SendData(0x1F); - EPD_4IN0E_SendCommand(0x05); +#if 0 + EPD_4IN0E_SendCommand(0x05); // looks like BTST, but 0x05 would be PMES: POWER ON MEASURE CMD EPD_4IN0E_SendData(0x40); EPD_4IN0E_SendData(0x1F); EPD_4IN0E_SendData(0x1F); EPD_4IN0E_SendData(0x2C); - EPD_4IN0E_SendCommand(0x08); + EPD_4IN0E_SendCommand(0x08); // looks like BTST, but there is no further BTST on 0x08? EPD_4IN0E_SendData(0x6F); EPD_4IN0E_SendData(0x1F); EPD_4IN0E_SendData(0x1F); EPD_4IN0E_SendData(0x22); +#endif - EPD_4IN0E_SendCommand(0x06); - EPD_4IN0E_SendData(0x6F); - EPD_4IN0E_SendData(0x1F); - EPD_4IN0E_SendData(0x17); - EPD_4IN0E_SendData(0x17); + EPD_4IN0E_SendCommand(0x06); // BTST: BOOSTER SOFT START + EPD_4IN0E_SendData(0x10); + EPD_4IN0E_SendData(0x10); + EPD_4IN0E_SendData(0x10); - EPD_4IN0E_SendCommand(0x03); + EPD_4IN0E_SendCommand(0x03); // PFS: POWER OFF SEQUENCE SETTING EPD_4IN0E_SendData(0x00); EPD_4IN0E_SendData(0x54); EPD_4IN0E_SendData(0x00); @@ -166,22 +173,22 @@ void EPD_4IN0E_Init(void) EPD_4IN0E_SendData(0x02); EPD_4IN0E_SendData(0x00); - EPD_4IN0E_SendCommand(0x30); - EPD_4IN0E_SendData(0x08); + EPD_4IN0E_SendCommand(0x30); // PLL: PLL CONTROL + EPD_4IN0E_SendData(0x07); // 0x00(slow) - 0x07(fast), >0x08(slow again) - EPD_4IN0E_SendCommand(0x50); + EPD_4IN0E_SendCommand(0x50); // CDI: VCOM AND DATA INTERVAL SETTING EPD_4IN0E_SendData(0x3F); - EPD_4IN0E_SendCommand(0x61); - EPD_4IN0E_SendData(0x01); + EPD_4IN0E_SendCommand(0x61); // TRES: RESOLUTION SETTING + EPD_4IN0E_SendData(0x01); // [0x0190][0x0258] -> displaysize EPD_4IN0E_SendData(0x90); EPD_4IN0E_SendData(0x02); EPD_4IN0E_SendData(0x58); - EPD_4IN0E_SendCommand(0xE3); + EPD_4IN0E_SendCommand(0xE3); // PWS: POWER SAVING EPD_4IN0E_SendData(0x2F); - EPD_4IN0E_SendCommand(0x84); + EPD_4IN0E_SendCommand(0x84); // could be T_VCDS? EPD_4IN0E_SendData(0x01); EPD_4IN0E_ReadBusyH(); diff --git a/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_7in3e.c b/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_7in3e.c index fbe44b06..7ec8f425 100644 --- a/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_7in3e.c +++ b/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_7in3e.c @@ -88,25 +88,32 @@ static void EPD_7IN3E_ReadBusyH(void) function : Turn On Display parameter: ******************************************************************************/ +#define AUTO_SEQUENCE 1 static void EPD_7IN3E_TurnOnDisplay(void) { - - EPD_7IN3E_SendCommand(0x04); // POWER_ON +#ifdef AUTO_SEQUENCE + EPD_7IN3E_SendCommand(0x17); // AUTO: AUTO SEQUENCE + EPD_7IN3E_SendData(0xA5); // A5: PON->DRF->POF / A7: PON->DRF->POF->DSLP +#else + EPD_7IN3E_SendCommand(0x04); // PON: POWER ON EPD_7IN3E_ReadBusyH(); +#if 0 //Second setting - EPD_7IN3E_SendCommand(0x06); + EPD_7IN3E_SendCommand(0x06); // BTST: BOOSTER SOFT START (why 2nd time?) EPD_7IN3E_SendData(0x6F); EPD_7IN3E_SendData(0x1F); EPD_7IN3E_SendData(0x17); EPD_7IN3E_SendData(0x49); +#endif - EPD_7IN3E_SendCommand(0x12); // DISPLAY_REFRESH + EPD_7IN3E_SendCommand(0x12); // DRF: DISPLAY/DATA REFRESH EPD_7IN3E_SendData(0x00); EPD_7IN3E_ReadBusyH(); - EPD_7IN3E_SendCommand(0x02); // POWER_OFF + EPD_7IN3E_SendCommand(0x02); // POF: POWER OFF EPD_7IN3E_SendData(0X00); +#endif EPD_7IN3E_ReadBusyH(); } @@ -128,60 +135,62 @@ void EPD_7IN3E_Init(void) EPD_7IN3E_SendData(0x09); EPD_7IN3E_SendData(0x18); - EPD_7IN3E_SendCommand(0x01);// + EPD_7IN3E_SendCommand(0x01); // PWR: POWER SETTING (REGISTER) EPD_7IN3E_SendData(0x3F); - EPD_7IN3E_SendCommand(0x00); - EPD_7IN3E_SendData(0x5F); - EPD_7IN3E_SendData(0x69); + EPD_7IN3E_SendCommand(0x00); // PSR: PANEL SETTING (REGISTER) + EPD_7IN3E_SendData(0x1F); - EPD_7IN3E_SendCommand(0x03); + EPD_7IN3E_SendCommand(0x03); // PFS: POWER OFF SEQUENCE SETTING EPD_7IN3E_SendData(0x00); EPD_7IN3E_SendData(0x54); EPD_7IN3E_SendData(0x00); EPD_7IN3E_SendData(0x44); - EPD_7IN3E_SendCommand(0x05); +#if 0 + EPD_7IN3E_SendCommand(0x05); // looks like BTST, but 0x05 would be PMES: POWER ON MEASURE CMD EPD_7IN3E_SendData(0x40); EPD_7IN3E_SendData(0x1F); EPD_7IN3E_SendData(0x1F); EPD_7IN3E_SendData(0x2C); +#endif - EPD_7IN3E_SendCommand(0x06); - EPD_7IN3E_SendData(0x6F); - EPD_7IN3E_SendData(0x1F); - EPD_7IN3E_SendData(0x17); - EPD_7IN3E_SendData(0x49); + EPD_7IN3E_SendCommand(0x06); // BTST: BOOSTER SOFT START + EPD_7IN3E_SendData(0x10); + EPD_7IN3E_SendData(0x10); + EPD_7IN3E_SendData(0x10); - EPD_7IN3E_SendCommand(0x08); +#if 0 + EPD_7IN3E_SendCommand(0x08); // looks like BTST, but there is no further BTST on 0x08? EPD_7IN3E_SendData(0x6F); EPD_7IN3E_SendData(0x1F); EPD_7IN3E_SendData(0x1F); EPD_7IN3E_SendData(0x22); +#endif - EPD_7IN3E_SendCommand(0x30); - EPD_7IN3E_SendData(0x03); + EPD_7IN3E_SendCommand(0x30); // PLL: PLL CONTROL + EPD_7IN3E_SendData(0x07); // 0x03 -> slow, 0x07 -> fast - EPD_7IN3E_SendCommand(0x50); + EPD_7IN3E_SendCommand(0x50); // CDI: VCOM AND DATA INTERVAL SETTING EPD_7IN3E_SendData(0x3F); - EPD_7IN3E_SendCommand(0x60); + EPD_7IN3E_SendCommand(0x60); // TCON: TCON SETTING EPD_7IN3E_SendData(0x02); EPD_7IN3E_SendData(0x00); - EPD_7IN3E_SendCommand(0x61); - EPD_7IN3E_SendData(0x03); + EPD_7IN3E_SendCommand(0x61); // TRES: RESOLUTION SETTING + EPD_7IN3E_SendData(0x03); // [0x0320][0x01E0] -> displaysize EPD_7IN3E_SendData(0x20); EPD_7IN3E_SendData(0x01); EPD_7IN3E_SendData(0xE0); - EPD_7IN3E_SendCommand(0x84); + EPD_7IN3E_SendCommand(0x84); // could be T_VCDS? EPD_7IN3E_SendData(0x01); - EPD_7IN3E_SendCommand(0xE3); + EPD_7IN3E_SendCommand(0xE3); // PWS: POWER SAVING EPD_7IN3E_SendData(0x2F); - EPD_7IN3E_SendCommand(0x04); //PWR on +// EPD_7IN3E_SendCommand(0x04); // PON: POWER ON (really wanted here?) EPD_7IN3E_ReadBusyH(); //waiting for the electronic paper IC to release the idle signal } diff --git a/STM32/STM32-F103ZET6/User/e-Paper/EPD_7in3e.c b/STM32/STM32-F103ZET6/User/e-Paper/EPD_7in3e.c index cc6fc5f2..3a01e4c8 100644 --- a/STM32/STM32-F103ZET6/User/e-Paper/EPD_7in3e.c +++ b/STM32/STM32-F103ZET6/User/e-Paper/EPD_7in3e.c @@ -88,25 +88,32 @@ static void EPD_7IN3E_ReadBusyH(void) function : Turn On Display parameter: ******************************************************************************/ +#define AUTO_SEQUENCE 1 static void EPD_7IN3E_TurnOnDisplay(void) { - - EPD_7IN3E_SendCommand(0x04); // POWER_ON +#ifdef AUTO_SEQUENCE + EPD_7IN3E_SendCommand(0x17); // AUTO: AUTO SEQUENCE + EPD_7IN3E_SendData(0xA5); // A5: PON->DRF->POF / A7: PON->DRF->POF->DSLP +#else + EPD_7IN3E_SendCommand(0x04); // PON: POWER ON EPD_7IN3E_ReadBusyH(); +#if 0 //Second setting - EPD_7IN3E_SendCommand(0x06); + EPD_7IN3E_SendCommand(0x06); // BTST: BOOSTER SOFT START (why 2nd time?) EPD_7IN3E_SendData(0x6F); EPD_7IN3E_SendData(0x1F); EPD_7IN3E_SendData(0x17); EPD_7IN3E_SendData(0x49); +#endif - EPD_7IN3E_SendCommand(0x12); // DISPLAY_REFRESH + EPD_7IN3E_SendCommand(0x12); // DRF: DISPLAY/DATA REFRESH EPD_7IN3E_SendData(0x00); EPD_7IN3E_ReadBusyH(); - EPD_7IN3E_SendCommand(0x02); // POWER_OFF + EPD_7IN3E_SendCommand(0x02); // POF: POWER OFF EPD_7IN3E_SendData(0X00); +#endif EPD_7IN3E_ReadBusyH(); } @@ -128,60 +135,62 @@ void EPD_7IN3E_Init(void) EPD_7IN3E_SendData(0x09); EPD_7IN3E_SendData(0x18); - EPD_7IN3E_SendCommand(0x01);// + EPD_7IN3E_SendCommand(0x01); // PWR: POWER SETTING (REGISTER) EPD_7IN3E_SendData(0x3F); - EPD_7IN3E_SendCommand(0x00); - EPD_7IN3E_SendData(0x5F); - EPD_7IN3E_SendData(0x69); + EPD_7IN3E_SendCommand(0x00); // PSR: PANEL SETTING (REGISTER) + EPD_7IN3E_SendData(0x1F); - EPD_7IN3E_SendCommand(0x03); + EPD_7IN3E_SendCommand(0x03); // PFS: POWER OFF SEQUENCE SETTING EPD_7IN3E_SendData(0x00); EPD_7IN3E_SendData(0x54); EPD_7IN3E_SendData(0x00); EPD_7IN3E_SendData(0x44); - EPD_7IN3E_SendCommand(0x05); +#if 0 + EPD_7IN3E_SendCommand(0x05); // looks like BTST, but 0x05 would be PMES: POWER ON MEASURE CMD EPD_7IN3E_SendData(0x40); EPD_7IN3E_SendData(0x1F); EPD_7IN3E_SendData(0x1F); EPD_7IN3E_SendData(0x2C); +#endif - EPD_7IN3E_SendCommand(0x06); - EPD_7IN3E_SendData(0x6F); - EPD_7IN3E_SendData(0x1F); - EPD_7IN3E_SendData(0x17); - EPD_7IN3E_SendData(0x49); + EPD_7IN3E_SendCommand(0x06); // BTST: BOOSTER SOFT START + EPD_7IN3E_SendData(0x10); + EPD_7IN3E_SendData(0x10); + EPD_7IN3E_SendData(0x10); - EPD_7IN3E_SendCommand(0x08); +#if 0 + EPD_7IN3E_SendCommand(0x08); // looks like BTST, but there is no further BTST on 0x08? EPD_7IN3E_SendData(0x6F); EPD_7IN3E_SendData(0x1F); EPD_7IN3E_SendData(0x1F); EPD_7IN3E_SendData(0x22); +#endif - EPD_7IN3E_SendCommand(0x30); - EPD_7IN3E_SendData(0x03); + EPD_7IN3E_SendCommand(0x30); // PLL: PLL CONTROL + EPD_7IN3E_SendData(0x07); // 0x03 -> slow, 0x07 -> fast - EPD_7IN3E_SendCommand(0x50); + EPD_7IN3E_SendCommand(0x50); // CDI: VCOM AND DATA INTERVAL SETTING EPD_7IN3E_SendData(0x3F); - EPD_7IN3E_SendCommand(0x60); + EPD_7IN3E_SendCommand(0x60); // TCON: TCON SETTING EPD_7IN3E_SendData(0x02); EPD_7IN3E_SendData(0x00); - EPD_7IN3E_SendCommand(0x61); - EPD_7IN3E_SendData(0x03); + EPD_7IN3E_SendCommand(0x61); // TRES: RESOLUTION SETTING + EPD_7IN3E_SendData(0x03); // [0x0320][0x01E0] -> displaysize EPD_7IN3E_SendData(0x20); EPD_7IN3E_SendData(0x01); EPD_7IN3E_SendData(0xE0); - EPD_7IN3E_SendCommand(0x84); + EPD_7IN3E_SendCommand(0x84); // could be T_VCDS? EPD_7IN3E_SendData(0x01); - EPD_7IN3E_SendCommand(0xE3); + EPD_7IN3E_SendCommand(0xE3); // PWS: POWER SAVING EPD_7IN3E_SendData(0x2F); - EPD_7IN3E_SendCommand(0x04); //PWR on +// EPD_7IN3E_SendCommand(0x04); // PON: POWER ON (really wanted here?) EPD_7IN3E_ReadBusyH(); //waiting for the electronic paper IC to release the idle signal }