Error compiling for board Arduino UNO o Uno

The error "Error compiling for board Arduino Uno." came when I compile the code, need help please:

#include "esp_camera.h"

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>

// Select camera model

#include "camera_pins.h"
byte x,y;
uint8_t oldpixel, newpixel;
int quanterror,i;

#define OLED_MOSI  13
#define OLED_CLK   15
#define OLED_DC    14
#define OLED_RESET 2
#define OLED_CS    12

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 


// the setup function runs once when you press reset or power the board
void setup() {


 //  display.begin(SSD1306_SWITCHCAPVCC);
  camera_config_t config;
  config.ledc_channel = LEDC_CHANNEL_0;
  config.ledc_timer = LEDC_TIMER_0;
  config.pin_d0 = Y2_GPIO_NUM;
  config.pin_d1 = Y3_GPIO_NUM;
  config.pin_d2 = Y4_GPIO_NUM;
  config.pin_d3 = Y5_GPIO_NUM;
  config.pin_d4 = Y6_GPIO_NUM;
  config.pin_d5 = Y7_GPIO_NUM;
  config.pin_d6 = Y8_GPIO_NUM;
  config.pin_d7 = Y9_GPIO_NUM;
  config.pin_xclk = XCLK_GPIO_NUM;
  config.pin_pclk = PCLK_GPIO_NUM;
  config.pin_vsync = VSYNC_GPIO_NUM;
  config.pin_href = HREF_GPIO_NUM;
  config.pin_sscb_sda = SIOD_GPIO_NUM;
  config.pin_sscb_scl = SIOC_GPIO_NUM;
  config.pin_pwdn = PWDN_GPIO_NUM;
  config.pin_reset = RESET_GPIO_NUM;
  config.xclk_freq_hz = 20000000;
  config.pixel_format = PIXFORMAT_GRAYSCALE; //PIXFORMAT_JPEG;
  config.frame_size =  FRAMESIZE_QQVGA2; // 128x160
  config.fb_count = 1;

  // camera init
  esp_err_t err = esp_camera_init(&config);
  if (err != ESP_OK) {
    Serial.printf("Camera init failed with error 0x%x", err);

  sensor_t * s = esp_camera_sensor_get();
  //initial sensors are flipped vertically and colors are a bit saturated
  if (s->id.PID == OV3660_PID) {
    s->set_vflip(s, 1);//flip it back
    s->set_brightness(s, 1);//up the blightness just a bit


void loop() {

 // capture camera frame
camera_fb_t *fb = esp_camera_fb_get();


for (y=0;y<SCREEN_HEIGHT;y++)
    oldpixel= fb->buf[i]; // keep original greyscale value
    newpixel = (255 * (oldpixel >> 7));  // threshold of 128 
    fb->buf[i] = newpixel;  // cam buffer now mono, either 0 or 255

    // floyd-steignburg dithering:
    quanterror = oldpixel - newpixel; // error difference between pixels

    // distribute this error to neighbouring pixels:

      if (x < SCREEN_WIDTH-1) // bounds checking...

        fb->buf[(x+1) +(y*SCREEN_WIDTH)] +=  ((quanterror * 7)>>4);

      if ((x > 1) && (y < SCREEN_HEIGHT-1)) // bounds checking...
        fb->buf[(x-1) +((y+1)*SCREEN_WIDTH)] += ((quanterror * 3)>>4); 

      if (y < 63) // bounds checking...
         fb->buf[(x) + ((y + 1) * SCREEN_WIDTH)] += ((quanterror * 5) >> 4);

      if ((x < SCREEN_WIDTH-1) && (y < SCREEN_HEIGHT-1)) // bounds checking...
         fb->buf[(x + 1) + ((y + 1) * SCREEN_WIDTH)] += (quanterror >> 4);

    // draw this pixel
    display.drawPixel( x,y,  fb->buf[i]%2);




Arduino: 1.8.13 (Windows 7), Board: "Arduino Uno"

In file included from E:\ENGINEERING\DIY\ESP32 CAM\ESP32 CAM OLED\ESP32-CAM_OLED-A\ESP32-CAM_OLED-A.ino:6:0:

C:\Program Files (x86)\Arduino\libraries\esp32-camera-master/esp_camera.h:68:10: fatal error: esp_err.h: No such file or directory

 #include "esp_err.h"


compilation terminated.

exit status 1

Error compiling for board Arduino Uno.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

do you realize the Arduino and ESP32 are different types of boards.

if the ESP32 tools are installed, ESP32 Arduino Board should be one of the choices under Tools->Board:

1 Like

Thank you.
You got it.
There is another error: 'FRAMESIZE_QQVGA2' was not declared in this scope

Arduino: 1.8.13 (Windows 7), Board: "ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None"

C:\Users\HUA.DELLV-PC\Documents\Arduino\sketch_may06b\sketch_may06b.ino: In function 'void setup()':

sketch_may06b:61:24: error: 'FRAMESIZE_QQVGA2' was not declared in this scope

   config.frame_size =  FRAMESIZE_QQVGA2; // 128x160


Multiple libraries were found for "Adafruit_SSD1306.h"

 Used: C:\Users\HUA.DELLV-PC\Documents\Arduino\libraries\Adafruit_SSD1306

 Not used: C:\Users\HUA.DELLV-PC\Documents\Arduino\libraries\Adafruit_SSD1306-master

exit status 1

'FRAMESIZE_QQVGA2' was not declared in this scope

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

That was probably supposed to be defined in one of the libraries you are using. I found it in "sensor.h" in the ESP32 Camera library. Try adding "#include <sensor.h>" before including esp_camera.h.

Looks like you have two copies of a library. You should probably get rid of one.

I'll test it.
I tested quite few of Libs, all failed.
I removed that line, the code compiling passed and uploaded and the OLED shown some thing, some thing means can't see any thing except noise, which parameter effect?

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.