Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing include for esp32s3usbotg #11201

Closed
1 task done
BostonBlack opened this issue Mar 29, 2025 · 2 comments
Closed
1 task done

Missing include for esp32s3usbotg #11201

BostonBlack opened this issue Mar 29, 2025 · 2 comments
Labels
Status: Awaiting Response awaiting a response from the author

Comments

@BostonBlack
Copy link

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.
@BostonBlack BostonBlack added the Status: Awaiting triage Issue is waiting for triage label Mar 29, 2025
@Jason2866
Copy link
Collaborator

Seems not using latest. Fixed with #11155

@Jason2866 Jason2866 added Status: Awaiting Response awaiting a response from the author and removed Status: Awaiting triage Issue is waiting for triage labels Mar 29, 2025
@me-no-dev
Copy link
Member

Closing as fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Awaiting Response awaiting a response from the author
Projects
None yet
Development

No branches or pull requests

3 participants