@@ -238,6 +238,83 @@ static const uint8_t PROGMEM initcmd_9342[] = { // ILI9342
238
238
239
239
// clang-format on
240
240
241
+ #ifdef ESP32
242
+ // clang-format off
243
+ static const uint8_t PROGMEM initcmd_9342_2[] = { // ILI9342_2 (CYD/Adafruit)
244
+ 0xEF , 3 , 0x03 , 0x80 , 0x02 ,
245
+ 0xCF , 3 , 0x00 , 0xC1 , 0x30 ,
246
+ 0xED , 4 , 0x64 , 0x03 , 0x12 , 0x81 ,
247
+ 0xE8 , 3 , 0x85 , 0x00 , 0x78 ,
248
+ 0xCB , 5 , 0x39 , 0x2C , 0x00 , 0x34 , 0x02 ,
249
+ 0xF7 , 1 , 0x20 ,
250
+ 0xEA , 2 , 0x00 , 0x00 ,
251
+ ILI9341_PWCTR1, 1 , 0x23 , // Power control VRH[5:0]
252
+ ILI9341_PWCTR2, 1 , 0x10 , // Power control SAP[2:0];BT[3:0]
253
+ ILI9341_VMCTR1, 2 , 0x2B , 0x2B , // VCM control
254
+ ILI9341_VMCTR2, 1 , 0xC0 , // VCM control2
255
+ ILI9341_MADCTL, 1 , (MADCTL_MX | MADCTL_BGR), // Memory Access Control
256
+ ILI9341_VSCRSADD, 1 , 0x00 , // Vertical scroll zero
257
+ ILI9341_PIXFMT, 1 , 0x55 ,
258
+ ILI9341_FRMCTR1, 2 , 0x00 , 0x1B ,
259
+ ILI9341_DFUNCTR, 3 , 0x08 , 0x82 , 0x27 , // Display Function Control
260
+ 0xF2 , 1 , 0x00 , // 3Gamma Function Disable
261
+ ILI9341_GAMMASET, 1 , 0x01 , // Gamma curve selected
262
+ ILI9341_GMCTRP1, 15 , 0x0F , 0x31 , 0x2B , 0x0C , 0x0E ,
263
+ 0x08 ,
264
+ 0x4E , 0xF1 , 0x37 , 0x07 , 0x10 , 0x03 , 0x0E ,
265
+ 0x09 , 0x00 , //
266
+ // Set
267
+ // Gamma
268
+ ILI9341_GMCTRN1, 15 , 0x00 , 0x0E , 0x14 , 0x03 , 0x11 ,
269
+ 0x07 ,
270
+ 0x31 , 0xC1 , 0x48 , 0x08 , 0x0F , 0x0C , 0x31 ,
271
+ 0x36 , 0x0F , // Set Gamma
272
+ ILI9341_SLPOUT, 0x80 , // Exit Sleep
273
+ ILI9341_DISPON, 0x80 , // Display on
274
+ 0x00 // End of list
275
+ };
276
+
277
+ // clang-format on
278
+ // clang-format off
279
+ static const uint8_t PROGMEM initcmd_9342_3[] = { // ILI9342_3 (CYD/Bodmer)
280
+ 0xEF , 3 , 0x03 , 0x80 , 0x02 ,
281
+ 0xCF , 3 , 0x00 , 0xC1 , 0x30 ,
282
+ 0xED , 4 , 0x64 , 0x03 , 0x12 , 0x81 ,
283
+ 0xE8 , 3 , 0x85 , 0x00 , 0x78 ,
284
+ 0xCB , 5 , 0x39 , 0x2C , 0x00 , 0x34 , 0x02 ,
285
+ 0xF7 , 1 , 0x20 ,
286
+ 0xEA , 2 , 0x00 , 0x00 ,
287
+ ILI9341_PWCTR1, 1 , 0x10 , // Power control VRH[5:0]
288
+ ILI9341_PWCTR2, 1 , 0x00 , // Power control SAP[2:0];BT[3:0]
289
+ ILI9341_VMCTR1, 2 , 0x30 , 0x30 , // VCM control
290
+ ILI9341_VMCTR2, 1 , 0xB7 , // VCM control2
291
+ ILI9341_MADCTL, 1 , (MADCTL_BGR), // Memory Access Control
292
+ // ILI9341_VSCRSADD, 1, 0x00, // Vertical scroll zero
293
+ ILI9341_PIXFMT, 1 , 0x55 ,
294
+ ILI9341_FRMCTR1, 2 , 0x00 , 0x1A ,
295
+ ILI9341_DFUNCTR, 3 , 0x08 , 0x82 , 0x27 , // Display Function Control
296
+ 0xF2 , 1 , 0x00 , // 3Gamma Function Disable
297
+ ILI9341_GAMMASET, 1 , 0x01 , // Gamma curve selected
298
+ ILI9341_GMCTRP1, 15 , 0x0F , 0x2A , 0x28 , 0x08 , 0x0E ,
299
+ 0x08 ,
300
+ 0x54 , 0xA9 , 0x43 , 0x0A , 0x0F , 0x00 , 0x00 ,
301
+ 0x00 , 0x00 , //
302
+ // Set
303
+ // Gamma
304
+ ILI9341_GMCTRN1, 15 , 0x00 , 0x15 , 0x17 , 0x07 , 0x11 ,
305
+ 0x06 ,
306
+ 0x2B , 0x56 , 0x3C , 0x05 , 0x10 , 0x0F , 0x3F ,
307
+ 0x3F , 0x0F , // Set Gamma
308
+ ILI9341_PASET, 4 , 0x00 , 0x00 , 0x01 , 0x3F ,
309
+ ILI9341_CASET, 4 , 0x00 , 0x00 , 0x00 , 0xEF ,
310
+ ILI9341_SLPOUT, 0x80 , // Exit Sleep
311
+ ILI9341_DISPON, 0x80 , // Display on
312
+ 0x00 // End of list
313
+ };
314
+
315
+ // clang-format on
316
+ #endif // ifdef ESP32
317
+
241
318
// clang-format off
242
319
static const uint8_t PROGMEM initcmd_9481[] = { // ILI9481
243
320
ILI9341_SLPOUT, 0x80 , // Exit Sleep
@@ -478,6 +555,14 @@ void Adafruit_ILI9341::begin(uint32_t freq) {
478
555
case ILI_TYPE_9342: // ILI9342 M5STACK
479
556
addr = initcmd_9342;
480
557
break ;
558
+ #ifdef ESP32
559
+ case ILI_TYPE_9342_2: // ILI9342 CYD/Adafruit
560
+ addr = initcmd_9342_2;
561
+ break ;
562
+ case ILI_TYPE_9342_3: // ILI9342 CYD/Bodmer
563
+ addr = initcmd_9342_3;
564
+ break ;
565
+ #endif // ifdef ESP32
481
566
case ILI_TYPE_9481: // ILI9481
482
567
addr = initcmd_9481;
483
568
break ;
@@ -540,6 +625,9 @@ void Adafruit_ILI9341::setRotation(uint8_t m) {
540
625
case ILI_TYPE_9342: // ILI9342 M5STACK
541
626
m = (MADCTL_MY | MADCTL_MV | MADCTL_BGR);
542
627
break ;
628
+ case ILI_TYPE_9342_2: // ILI9342 CYD/Adafruit
629
+ m = (MADCTL_BGR);
630
+ break ;
543
631
case ILI_TYPE_9481: // ILI9481
544
632
case ILI_TYPE_9481_CPT29: // ILI9481 CPT29
545
633
case ILI_TYPE_9481_PVI35: // ILI9481 PVI35
@@ -551,6 +639,7 @@ void Adafruit_ILI9341::setRotation(uint8_t m) {
551
639
m = (MADCTL_SS | MADCTL_BGR);
552
640
break ;
553
641
case ILI_TYPE_9341: // ILI9341
642
+ case ILI_TYPE_9342_3: // ILI9342 CYD/Bodmer
554
643
// m = (MADCTL_MX | MADCTL_BGR);
555
644
// break;
556
645
default :
@@ -577,6 +666,8 @@ void Adafruit_ILI9341::setRotation(uint8_t m) {
577
666
// m = (MADCTL_MV | MADCTL_BGR);
578
667
// break;
579
668
case ILI_TYPE_9341: // ILI9341
669
+ case ILI_TYPE_9342_2: // ILI9342 CYD/Adafruit
670
+ case ILI_TYPE_9342_3: // ILI9342 CYD/Bodmer
580
671
// m = (MADCTL_MV | MADCTL_BGR);
581
672
// break;
582
673
default :
@@ -603,6 +694,8 @@ void Adafruit_ILI9341::setRotation(uint8_t m) {
603
694
m = (MADCTL_GS | MADCTL_BGR);
604
695
break ;
605
696
case ILI_TYPE_9341: // ILI9341
697
+ case ILI_TYPE_9342_2: // ILI9342 CYD/Adafruit
698
+ case ILI_TYPE_9342_3: // ILI9342 CYD/Bodmer
606
699
// m = (MADCTL_MY | MADCTL_BGR);
607
700
// break;
608
701
default :
@@ -629,6 +722,8 @@ void Adafruit_ILI9341::setRotation(uint8_t m) {
629
722
m = (MADCTL_SS | MADCTL_GS | MADCTL_MV | MADCTL_BGR);
630
723
break ;
631
724
case ILI_TYPE_9341: // ILI9341
725
+ case ILI_TYPE_9342_2: // ILI9342 CYD/Adafruit
726
+ case ILI_TYPE_9342_3: // ILI9342 CYD/Bodmer
632
727
// m = (MADCTL_MX | MADCTL_MY | MADCTL_MV | MADCTL_BGR);
633
728
// break;
634
729
default :
0 commit comments