@@ -174,31 +174,31 @@ int bbepSetCustomMatrix(FASTEPDSTATE *pState, const uint8_t *pMatrix, size_t mat
174174// width, height, bus_speed, flags, data[8], bus_width, ioPWR, ioSPV, ioCKV, ioSPH, ioOE, ioLE,
175175// ioCL, ioPWR_Good, ioSDA, ioSCL, ioShiftSTR/Wakeup, ioShiftMask/vcom, ioDCDummy, graymatrix, sizeof(graymatrix), iLinePadding
176176const BBPANELDEF panelDefs[] = {
177- {0 ,0 ,0 ,0 ,{0 },0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,NULL ,0 ,0 }, // BB_PANEL_NONE
177+ {0 ,0 ,0 ,0 ,{0 },0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,NULL ,0 ,0 , 0 }, // BB_PANEL_NONE
178178 {960 , 540 , 20000000 , BB_PANEL_FLAG_NONE, {6 ,14 ,7 ,12 ,9 ,11 ,8 ,10 }, 8 , 46 , 17 , 18 , 13 , 45 , 15 ,
179- 16 , BB_NOT_USED, BB_NOT_USED, BB_NOT_USED, BB_NOT_USED, BB_NOT_USED, 47 , u8M5Matrix, sizeof (u8M5Matrix), 0 }, // BB_PANEL_M5PAPERS3
179+ 16 , BB_NOT_USED, BB_NOT_USED, BB_NOT_USED, BB_NOT_USED, BB_NOT_USED, 47 , u8M5Matrix, sizeof (u8M5Matrix), 0 , - 1600 }, // BB_PANEL_M5PAPERS3
180180
181181 {0 , 0 , 20000000 , BB_PANEL_FLAG_NONE, {5 ,6 ,7 ,15 ,16 ,17 ,18 ,8 }, 8 , 11 , 45 , 48 , 41 , 8 , 42 ,
182- 4 , 14 , 39 , 40 , BB_NOT_USED, 0 , 0 , u8SixInchMatrix, sizeof (u8SixInchMatrix), 0 }, // BB_PANEL_EPDIY_V7
182+ 4 , 14 , 39 , 40 , BB_NOT_USED, 0 , 0 , u8SixInchMatrix, sizeof (u8SixInchMatrix), 0 , 0 }, // BB_PANEL_EPDIY_V7
183183
184184 {1024 , 758 , 13333333 , BB_PANEL_FLAG_SLOW_SPH, {4 ,5 ,18 ,19 ,23 ,25 ,26 ,27 }, 8 , 4 , 2 , 32 , 33 , 0 , 2 ,
185- 0 , 7 , 21 , 22 , 3 , 5 , 15 , u8GrayMatrix, sizeof (u8GrayMatrix), 0 }, // BB_PANEL_INKPLATE6PLUS
185+ 0 , 7 , 21 , 22 , 3 , 5 , 15 , u8GrayMatrix, sizeof (u8GrayMatrix), 0 , - 1600 }, // BB_PANEL_INKPLATE6PLUS
186186
187187 {1280 , 720 , 13333333 , BB_PANEL_FLAG_SLOW_SPH | BB_PANEL_FLAG_MIRROR_X, {4 ,5 ,18 ,19 ,23 ,25 ,26 ,27 }, 8 , 4 , 2 , 32 , 33 , 0 , 2 ,
188- 0 , 7 , 21 , 22 , 3 , 5 , 0 , u8Ink5V2Matrix, sizeof (u8Ink5V2Matrix), 16 }, // BB_PANEL_INKPLATE5V2
188+ 0 , 7 , 21 , 22 , 3 , 5 , 0 , u8Ink5V2Matrix, sizeof (u8Ink5V2Matrix), 16 , - 1600 }, // BB_PANEL_INKPLATE5V2
189189
190190 {0 , 0 , 20000000 , BB_PANEL_FLAG_NONE, {9 ,10 ,11 ,12 ,13 ,14 ,21 ,47 ,5 ,6 ,7 ,15 ,16 ,17 ,18 ,8 }, 16 , 11 , 45 , 48 , 41 , 8 , 42 ,
191191 4 , 14 , 39 , 40 , BB_NOT_USED, 0 , 46 , u8GrayMatrix, sizeof (u8GrayMatrix), 16 }, // BB_PANEL_EPDIY_V7_16
192192
193193 {0 , 0 , 26666666 , BB_PANEL_FLAG_NONE, {5 ,6 ,7 ,15 ,16 ,17 ,18 ,8 }, 8 , 11 , 45 , 48 , 41 , 9 , 42 ,
194194 4 , 14 , 39 , 40 , BB_NOT_USED, 0 , 0 , u8M5Matrix, sizeof (u8M5Matrix), 0 }, // BB_PANEL_V7_RAW
195195 // D8 15 D0 D7 STV,CKV,XSTL,OE,XLE
196- {1872 , 1404 , 20000000 , BB_PANEL_FLAG_MIRROR_X, {8 ,18 ,17 ,16 ,15 ,7 ,6 ,5 ,47 ,21 ,14 ,13 ,12 ,11 ,10 ,9 }, 16 , 11 , 41 , 42 , 45 , 8 , 48 ,
197- 4 , 14 , 39 , 40 , BB_NOT_USED, 0 , 46 , u8GrayMatrix, sizeof (u8GrayMatrix), 0 }, // BB_PANEL_V7_103
198196 {960 , 540 , 20000000 , BB_PANEL_FLAG_SLOW_SPH, {11 ,12 ,13 ,14 ,21 ,47 ,45 ,38 }, 8 , BB_NOT_USED, BB_NOT_USED, 39 , 9 , 0 , 0 ,
199- 10 , 0 , 2 , 42 , 1 , 0 , 46 /* LoRa CS */ , u8M5Matrix, sizeof (u8M5Matrix), 0 }, // BB_PANEL_LILYGO_T5PRO
197+ 10 , 0 , 2 , 42 , 1 , 0 , 46 /* LoRa CS */ , u8M5Matrix, sizeof (u8M5Matrix), 0 , - 1600 }, // BB_PANEL_LILYGO_T5PRO
200198 {1440 , 720 , 40000000 , BB_PANEL_FLAG_MIRROR_X, {27 ,28 ,29 ,30 ,31 ,32 ,33 ,34 }, 8 , BB_NOT_USED, 36 , 13 , 25 , 0 , 26 ,
201- 24 , 0 , 7 , 8 , 0 , 0 , 11 /* LED1_EN */ , u8M5Matrix, sizeof (u8M5Matrix), 0 }, // BB_PANEL_LILYGO_T5P4
199+ 24 , 0 , 7 , 8 , 0 , 0 , 11 /* LED1_EN */ , u8M5Matrix, sizeof (u8M5Matrix), 0 , -1600 }, // BB_PANEL_LILYGO_T5P4
200+ {1872 , 1404 , 26666666 , BB_PANEL_FLAG_MIRROR_X, {8 ,18 ,17 ,16 ,15 ,7 ,6 ,5 ,47 ,21 ,14 ,13 ,12 ,11 ,10 ,9 }, 16 , 11 , 48 , 45 , 41 , 8 , 42 ,
201+ 4 , 14 , 39 , 40 , BB_NOT_USED, 0 , 46 , u8GrayMatrix, sizeof (u8GrayMatrix), 16 , -1350 }, // BB_PANEL_TRMNL_X
202202};
203203//
204204// Forward references for panel callback functions
@@ -243,6 +243,7 @@ const BBPANELPROCS panelProcs[] = {
243243 {EPDiyV7EinkPower, EPDiyV7IOInit, EPDiyV7RowControl, EPDiyV7IODeInit, EPDiyV7ExtIO}, // BB_PANEL_V7_103
244244 {LilyGoEinkPower, LilyGoIOInit, LilyGoRowControl, NULL , NULL },// BB_PANEL_LILYGO_T5PRO
245245 {EPDiyV7EinkPower, EPDiyV7IOInit, EPDiyV7RowControl, EPDiyV7IODeInit, EPDiyV7ExtIO}, // BB_PANEL_LILYGO_T5P4
246+ {EPDiyV7EinkPower, EPDiyV7IOInit, EPDiyV7RowControl, EPDiyV7IODeInit, EPDiyV7ExtIO}, // BB_PANEL_TRMNL_X
246247};
247248
248249uint8_t ioRegs[24 ]; // MCP23017 copy of I/O register state so that we can just write new bits
@@ -1447,6 +1448,8 @@ int bbepInitPanel(FASTEPDSTATE *pState, int iPanel, uint32_t u32Speed)
14471448 if (rc == BBEP_SUCCESS) {
14481449 // allocate memory for the buffers if the paneldef contains the size
14491450 if (pState->width ) { // if size is defined
1451+ // VCOM is defined for predefined products
1452+ pState->iVCOM = pState->panelDef .iVCOM ;
14501453 rc = bbepSetPanelSize (pState, pState->width , pState->height , pState->iFlags , pState->iVCOM );
14511454 if (rc != BBEP_SUCCESS) return rc; // no memory? stop
14521455 }
0 commit comments