Problem with compiling Arducam ESP32S Uno

I'm relatively new to Arduino, but I'm trying to use an Waveshare E-Paper with the Arducam ESP32S Uno. However, I get the error message below even though the code worked fine with Arduino MEGA 2560. Any help would be appreciated, thank you!

Code:

#define ENABLE_GxEPD2_GFX 1

#include <GxEPD2_BW.h>
#include <GxEPD2_3C.h>
#include <GxEPD2_7C.h>

#include "GxEPD2_display_selection.h"
#include "GxEPD2_display_selection_added.h"
#include "GxEPD2_display_selection_new_style.h"

#include "Image.h"

void setup()
{
  Serial.begin(9600);
  Serial.println();
  Serial.println("setup");
  delay(100);
  display.init(9600);
  display.setRotation(1);
  drawBitmap();
  display.powerOff();
}

void loop() {
}

void drawBitmap() {
  display.setRotation(1);
  display.setFullWindow();
  display.firstPage();
   do
      {
        display.fillScreen(GxEPD_WHITE);
        display.drawBitmap(50, 100, Image, 100, 100, GxEPD_BLACK);
      }
      while (display.nextPage());
      delay(2000);
}

Error Message:

C:\Users\USER\Documents\Arduino\libraries\Adafruit_BusIO-master\Adafruit_SPIDevice.cpp: In member function 'void Adafruit_SPIDevice::transfer(uint8_t*, size_t)':
C:\Users\USER\Documents\Arduino\libraries\Adafruit_BusIO-master\Adafruit_SPIDevice.cpp:136:31: error: no matching function for call to 'SPIClass::transfer(uint8_t*&, size_t&)'
     _spi->transfer(buffer, len);
                               ^
In file included from C:\Users\USER\Documents\Arduino\libraries\Adafruit_BusIO-master/Adafruit_SPIDevice.h:4:0,
                 from C:\Users\USER\Documents\Arduino\libraries\Adafruit_BusIO-master\Adafruit_SPIDevice.cpp:1:
C:\Users\USER\AppData\Local\Arduino15\packages\ArduCAM_ESP32S_UNO\hardware\esp32\2.0.0\libraries\SPI\src/SPI.h:69:13: note: candidate: uint8_t SPIClass::transfer(uint8_t)
     uint8_t transfer(uint8_t data);
             ^
C:\Users\USER\AppData\Local\Arduino15\packages\ArduCAM_ESP32S_UNO\hardware\esp32\2.0.0\libraries\SPI\src/SPI.h:69:13: note:   candidate expects 1 argument, 2 provided
exit status 1
Error compiling for board ArduCAM ESP32S UNO.

The error-message says what caused the error:

C:\Users\USER\Documents\Arduino\libraries\Adafruit_BusIO-master\Adafruit_SPIDevice.cpp:
136:31: error: no matching function for call to 'SPIClass::transfer(uint8_t*&, size_t&)'
_spi->transfer(buffer, len);

I assume that a Arducam ESP32S Uno-board is a ESP32 based board.
This means that different core-files and different library-files are used.

The library-file named in the error-message
Adafruit_SPIDevice.cpp
differs from the Mega 2560-file and this is causing the error.

Start googling with the error-message trying for find online-ressuorces where this problem occured and maybe find a solution.

Did you adjust the compiler for the exact right board?

best regards Stefan

Yep, I selected the right board and followed that tutorial. Haven't been able to find any resources online sadly, but thanks regardless

Cool trick.

Find the github site for the adafruit library you are using.

Open a issue thingy, posting your code and the error message. An Ada Fruity person reads the issue and your posted code and they attempt to reproduce the error, hardware mentions are good for you to make. If they can reproduce the error, give em as much info as you can, they fix it. For Free.

Turns out I installed the wrong board and needed ArduCAM ESP32 UNO PSRAM
https://github.com/ArduCAM/ArduCAM_ESP32S_UNO_PSRAM

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