Skip to content

Missing include for esp32s3usbotg #11201

Closed
@BostonBlack

Description

@BostonBlack

Board

ESP32-S3-USB-OTG

Device Description

N/A not compiling

Hardware Configuration

N/A not compiling

Version

latest master (checkout manually)

IDE Name

ArduinoIDE

Operating System

Windows 11

Flash frequency

N/A not compiling

PSRAM enabled

yes

Upload speed

N/A not compiling

Description

When trying to compile code compilation fails due to a missing #include <stdbool.h> in the pins_arduino.h file

expected behavior is code compiles.

Sketch

#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7789.h> // Hardware-specific library for ST7789
#include <SPI.h>

#define DEBUG_LED_1 45
#define DEBUG_LED_2 46

#define TFT_CS   10
#define TFT_RST  9 // Or set to -1 and connect to Arduino RESET pin
#define TFT_DC   14
#define TFT_BL   21

Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);

float p = 3.1415926;

void setup(void) {
  Serial.begin(19200);
  Serial.print(F("Hello! ST77xx TFT Test"));

  pinMode(DEBUG_LED_1, OUTPUT);
  pinMode(DEBUG_LED_2, OUTPUT);
  digitalWrite(DEBUG_LED_1, HIGH);
  analogWrite(TFT_BL, 128);

  tft.init(240, 320);           // Init ST7789 320x240

  Serial.println(F("Initialized"));

  uint16_t time = millis();
  tft.fillScreen(ST77XX_BLACK);
  time = millis() - time;

  Serial.println(time, DEC);
  delay(500);

  // large block of text
  tft.fillScreen(ST77XX_BLACK);
  testdrawtext("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur adipiscing ante sed nibh tincidunt feugiat. Maecenas enim massa, fringilla sed malesuada et, malesuada sit amet turpis. Sed porttitor neque ut ante pretium vitae malesuada nunc bibendum. Nullam aliquet ultrices massa eu hendrerit. Ut sed nisi lorem. In vestibulum purus a tortor imperdiet posuere. ", ST77XX_WHITE);
  delay(1000);

  // tft print function!
  tftPrintTest();
  delay(4000);

  // a single pixel
  tft.drawPixel(tft.width()/2, tft.height()/2, ST77XX_GREEN);
  delay(500);

  // line draw test
  testlines(ST77XX_YELLOW);
  delay(500);

  // optimized lines
  testfastlines(ST77XX_RED, ST77XX_BLUE);
  delay(500);

  testdrawrects(ST77XX_GREEN);
  delay(500);

  testfillrects(ST77XX_YELLOW, ST77XX_MAGENTA);
  delay(500);

  tft.fillScreen(ST77XX_BLACK);
  testfillcircles(10, ST77XX_BLUE);
  testdrawcircles(10, ST77XX_WHITE);
  delay(500);

  testroundrects();
  delay(500);

  testtriangles();
  delay(500);

  mediabuttons();
  delay(500);

  Serial.println("done");
  delay(1000);

  digitalWrite(DEBUG_LED_1, LOW);
}

void loop() {
  tft.invertDisplay(true);
  digitalWrite(DEBUG_LED_2, HIGH);
  delay(500);
  tft.invertDisplay(false);
  digitalWrite(DEBUG_LED_2, LOW);
  delay(500);
}

void testlines(uint16_t color) {
  tft.fillScreen(ST77XX_BLACK);
  for (int16_t x=0; x < tft.width(); x+=6) {
    tft.drawLine(0, 0, x, tft.height()-1, color);
    delay(0);
  }
  for (int16_t y=0; y < tft.height(); y+=6) {
    tft.drawLine(0, 0, tft.width()-1, y, color);
    delay(0);
  }

  tft.fillScreen(ST77XX_BLACK);
  for (int16_t x=0; x < tft.width(); x+=6) {
    tft.drawLine(tft.width()-1, 0, x, tft.height()-1, color);
    delay(0);
  }
  for (int16_t y=0; y < tft.height(); y+=6) {
    tft.drawLine(tft.width()-1, 0, 0, y, color);
    delay(0);
  }

  tft.fillScreen(ST77XX_BLACK);
  for (int16_t x=0; x < tft.width(); x+=6) {
    tft.drawLine(0, tft.height()-1, x, 0, color);
    delay(0);
  }
  for (int16_t y=0; y < tft.height(); y+=6) {
    tft.drawLine(0, tft.height()-1, tft.width()-1, y, color);
    delay(0);
  }

  tft.fillScreen(ST77XX_BLACK);
  for (int16_t x=0; x < tft.width(); x+=6) {
    tft.drawLine(tft.width()-1, tft.height()-1, x, 0, color);
    delay(0);
  }
  for (int16_t y=0; y < tft.height(); y+=6) {
    tft.drawLine(tft.width()-1, tft.height()-1, 0, y, color);
    delay(0);
  }
}

void testdrawtext(char *text, uint16_t color) {
  tft.setCursor(0, 0);
  tft.setTextColor(color);
  tft.setTextWrap(true);
  tft.print(text);
}

void testfastlines(uint16_t color1, uint16_t color2) {
  tft.fillScreen(ST77XX_BLACK);
  for (int16_t y=0; y < tft.height(); y+=5) {
    tft.drawFastHLine(0, y, tft.width(), color1);
  }
  for (int16_t x=0; x < tft.width(); x+=5) {
    tft.drawFastVLine(x, 0, tft.height(), color2);
  }
}

void testdrawrects(uint16_t color) {
  tft.fillScreen(ST77XX_BLACK);
  for (int16_t x=0; x < tft.width(); x+=6) {
    tft.drawRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color);
  }
}

void testfillrects(uint16_t color1, uint16_t color2) {
  tft.fillScreen(ST77XX_BLACK);
  for (int16_t x=tft.width()-1; x > 6; x-=6) {
    tft.fillRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color1);
    tft.drawRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color2);
  }
}

void testfillcircles(uint8_t radius, uint16_t color) {
  for (int16_t x=radius; x < tft.width(); x+=radius*2) {
    for (int16_t y=radius; y < tft.height(); y+=radius*2) {
      tft.fillCircle(x, y, radius, color);
    }
  }
}

void testdrawcircles(uint8_t radius, uint16_t color) {
  for (int16_t x=0; x < tft.width()+radius; x+=radius*2) {
    for (int16_t y=0; y < tft.height()+radius; y+=radius*2) {
      tft.drawCircle(x, y, radius, color);
    }
  }
}

void testtriangles() {
  tft.fillScreen(ST77XX_BLACK);
  uint16_t color = 0xF800;
  int t;
  int w = tft.width()/2;
  int x = tft.height()-1;
  int y = 0;
  int z = tft.width();
  for(t = 0 ; t <= 15; t++) {
    tft.drawTriangle(w, y, y, x, z, x, color);
    x-=4;
    y+=4;
    z-=4;
    color+=100;
  }
}

void testroundrects() {
  tft.fillScreen(ST77XX_BLACK);
  uint16_t color = 100;
  int i;
  int t;
  for(t = 0 ; t <= 4; t+=1) {
    int x = 0;
    int y = 0;
    int w = tft.width()-2;
    int h = tft.height()-2;
    for(i = 0 ; i <= 16; i+=1) {
      tft.drawRoundRect(x, y, w, h, 5, color);
      x+=2;
      y+=3;
      w-=4;
      h-=6;
      color+=1100;
    }
    color+=100;
  }
}

void tftPrintTest() {
  tft.setTextWrap(false);
  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 30);
  tft.setTextColor(ST77XX_RED);
  tft.setTextSize(1);
  tft.println("Hello World!");
  tft.setTextColor(ST77XX_YELLOW);
  tft.setTextSize(2);
  tft.println("Hello World!");
  tft.setTextColor(ST77XX_GREEN);
  tft.setTextSize(3);
  tft.println("Hello World!");
  tft.setTextColor(ST77XX_BLUE);
  tft.setTextSize(4);
  tft.print(1234.567);
  delay(1500);
  tft.setCursor(0, 0);
  tft.fillScreen(ST77XX_BLACK);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(0);
  tft.println("Hello World!");
  tft.setTextSize(1);
  tft.setTextColor(ST77XX_GREEN);
  tft.print(p, 6);
  tft.println(" Want pi?");
  tft.println(" ");
  tft.print(8675309, HEX); // print 8,675,309 out in HEX!
  tft.println(" Print HEX!");
  tft.println(" ");
  tft.setTextColor(ST77XX_WHITE);
  tft.println("Sketch has been");
  tft.println("running for: ");
  tft.setTextColor(ST77XX_MAGENTA);
  tft.print(millis() / 1000);
  tft.setTextColor(ST77XX_WHITE);
  tft.print(" seconds.");
}

void mediabuttons() {
  // play
  tft.fillScreen(ST77XX_BLACK);
  tft.fillRoundRect(25, 10, 78, 60, 8, ST77XX_WHITE);
  tft.fillTriangle(42, 20, 42, 60, 90, 40, ST77XX_RED);
  delay(500);
  // pause
  tft.fillRoundRect(25, 90, 78, 60, 8, ST77XX_WHITE);
  tft.fillRoundRect(39, 98, 20, 45, 5, ST77XX_GREEN);
  tft.fillRoundRect(69, 98, 20, 45, 5, ST77XX_GREEN);
  delay(500);
  // play color
  tft.fillTriangle(42, 20, 42, 60, 90, 40, ST77XX_BLUE);
  delay(50);
  // pause color
  tft.fillRoundRect(39, 98, 20, 45, 5, ST77XX_RED);
  tft.fillRoundRect(69, 98, 20, 45, 5, ST77XX_RED);
  // play color
  tft.fillTriangle(42, 20, 42, 60, 90, 40, ST77XX_GREEN);
}

Debug Message

"C:\\Users\\bosto\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp-x32\\2405/bin/xtensa-esp32s3-elf-gcc" -MMD -c "@C:\\Users\\bosto\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.3-489d7a2b-v1\\esp32s3/flags/c_flags" -w -Os -Werror=return-type -DF_CPU=240000000L -DARDUINO=10607 -DARDUINO_ESP32_S3_USB_OTG -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_S3_USB_OTG\"" "-DARDUINO_VARIANT=\"esp32s3usbotg\"" -DARDUINO_PARTITION_default "-DARDUINO_HOST_OS=\"windows\"" "-DARDUINO_FQBN=\"esp32:esp32:esp32s3usbotg:USBMode=default,UploadMode=default,PartitionScheme=default,DebugLevel=none,EraseFlash=none\"" -DESP32=ESP32 -DCORE_DEBUG_LEVEL=0 -DARDUINO_RUNNING_CORE=1 -DARDUINO_EVENT_RUNNING_CORE=1 -DARDUINO_USB_MODE=0 -DARDUINO_USB_CDC_ON_BOOT=0 -DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=0 "@C:\\Users\\bosto\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.3-489d7a2b-v1\\esp32s3/flags/defines" "-IC:\\Users\\bosto\\OneDrive\\Documents\\A_Home\\Circuits\\ESP32-S3_Board\\Code\\graphicstest_st7789" -iprefix "C:\\Users\\bosto\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.3-489d7a2b-v1\\esp32s3/include/" "@C:\\Users\\bosto\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.3-489d7a2b-v1\\esp32s3/flags/includes" "-IC:\\Users\\bosto\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.3-489d7a2b-v1\\esp32s3/qio_qspi/include" "-IC:\\Users\\bosto\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.1.3\\cores\\esp32" "-IC:\\Users\\bosto\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.1.3\\variants\\esp32s3usbotg" "@C:\\Users\\bosto\\AppData\\Local\\arduino\\sketches\\B5D570C2B9AC99162A61DDF163B8B7CA/build_opt.h" "@C:\\Users\\bosto\\AppData\\Local\\arduino\\sketches\\B5D570C2B9AC99162A61DDF163B8B7CA/file_opts" "C:\\Users\\bosto\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.1.3\\cores\\esp32\\esp32-hal-matrix.c" -o "C:\\Users\\bosto\\AppData\\Local\\arduino\\sketches\\B5D570C2B9AC99162A61DDF163B8B7CA\\core\\esp32-hal-matrix.c.o"
In file included from C:\Users\bosto\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.3\cores\esp32\esp32-hal-gpio.h:27,
                 from C:\Users\bosto\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.3\cores\esp32\esp32-hal-gpio.c:15:
C:\Users\bosto\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.3\variants\esp32s3usbotg/pins_arduino.h:93:20: error: unknown type name 'bool'
   93 | void usbHostEnable(bool enable);
      |                    ^~~~
C:\Users\bosto\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.3\variants\esp32s3usbotg/pins_arduino.h:5:1: note: 'bool' is defined in header '<stdbool.h>'; did you forget to '#include <stdbool.h>'?
    4 | #include <stdint.h>
  +++ |+#include <stdbool.h>
    5 | 
"C:\\Users\\bosto\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp-x32\\2405/bin/xtensa-esp32s3-elf-gcc" -MMD -c "@C:\\Users\\bosto\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.3-489d7a2b-v1\\esp32s3/flags/c_flags" -w -Os -Werror=return-type -DF_CPU=240000000L -DARDUINO=10607 -DARDUINO_ESP32_S3_USB_OTG -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_S3_USB_OTG\"" "-DARDUINO_VARIANT=\"esp32s3usbotg\"" -DARDUINO_PARTITION_default "-DARDUINO_HOST_OS=\"windows\"" "-DARDUINO_FQBN=\"esp32:esp32:esp32s3usbotg:USBMode=default,UploadMode=default,PartitionScheme=default,DebugLevel=none,EraseFlash=none\"" -DESP32=ESP32 -DCORE_DEBUG_LEVEL=0 -DARDUINO_RUNNING_CORE=1 -DARDUINO_EVENT_RUNNING_CORE=1 -DARDUINO_USB_MODE=0 -DARDUINO_USB_CDC_ON_BOOT=0 -DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=0 "@C:\\Users\\bosto\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.3-489d7a2b-v1\\esp32s3/flags/defines" "-IC:\\Users\\bosto\\OneDrive\\Documents\\A_Home\\Circuits\\ESP32-S3_Board\\Code\\graphicstest_st7789" -iprefix "C:\\Users\\bosto\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.3-489d7a2b-v1\\esp32s3/include/" "@C:\\Users\\bosto\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.3-489d7a2b-v1\\esp32s3/flags/includes" "-IC:\\Users\\bosto\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.3-489d7a2b-v1\\esp32s3/qio_qspi/include" "-IC:\\Users\\bosto\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.1.3\\cores\\esp32" "-IC:\\Users\\bosto\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.1.3\\variants\\esp32s3usbotg" "@C:\\Users\\bosto\\AppData\\Local\\arduino\\sketches\\B5D570C2B9AC99162A61DDF163B8B7CA/build_opt.h" "@C:\\Users\\bosto\\AppData\\Local\\arduino\\sketches\\B5D570C2B9AC99162A61DDF163B8B7CA/file_opts" "C:\\Users\\bosto\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.1.3\\cores\\esp32\\esp32-hal-misc.c" -o "C:\\Users\\bosto\\AppData\\Local\\arduino\\sketches\\B5D570C2B9AC99162A61DDF163B8B7CA\\core\\esp32-hal-misc.c.o"

Using library Adafruit GFX Library at version 1.12.0 in folder: C:\Users\bosto\Documents\Arduino\libraries\Adafruit_GFX_Library 
Using library Adafruit BusIO at version 1.17.0 in folder: C:\Users\bosto\Documents\Arduino\libraries\Adafruit_BusIO 
Using library Wire at version 3.1.3 in folder: C:\Users\bosto\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.3\libraries\Wire 
Using library SPI at version 3.1.3 in folder: C:\Users\bosto\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.3\libraries\SPI 
Using library Adafruit ST7735 and ST7789 Library at version 1.11.0 in folder: C:\Users\bosto\Documents\Arduino\libraries\Adafruit_ST7735_and_ST7789_Library 
exit status 1

Compilation error: exit status 1

Other Steps to Reproduce

Putting the #include in the file fixes the issue

I have checked existing issues, online documentation and the Troubleshooting Guide

  • I confirm I have checked existing issues, online documentation and Troubleshooting guide.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions