FireBeetle-ESP32 and Adafruit SSD1306

When adding a display (Using I2C SDA/SCL in a Adafruit_SSD1306 lib)
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C)
to a FireBeetle-ESP32 board in a newly installed Arduino IDE 1.x or 2.x you get errors in how SPI are used in the FireBeetle-ESP32.
I do not get this error if I change to another ESP32 board…
C:\Documents\Arduino\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp: In member function 'bool Adafruit_SPIDevice::write(const uint8_t*, size_t, const uint8_t*, size_t)':
C:\Documents\Arduino\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp:352:61: error: invalid conversion from 'const uint8_t* {aka const unsigned char*}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
_spi->transferBytes(prefix_buffer, nullptr, prefix_len);
^
In file included from C:\Documents\Arduino\libraries\Adafruit_BusIO\Adafruit_SPIDevice.h:9:0,
from C:\Documents\Arduino\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp:1:
C:\AppData\Local\Arduino15\packages\firebeetle32\hardware\esp32\0.1.1\libraries\SPI\src/SPI.h:73:10: note: initializing argument 1 of 'void SPIClass::transferBytes(uint8_t*, uint8_t*, uint32_t)'
void transferBytes(uint8_t * data, uint8_t * out, uint32_t size);
^
C:\Documents\Arduino\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp:355:47: error: invalid conversion from 'const uint8_t* {aka const unsigned char*}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
_spi->transferBytes(buffer, nullptr, len);
^
In file included from C:\Documents\Arduino\libraries\Adafruit_BusIO\Adafruit_SPIDevice.h:9:0,
from C:\Documents\Arduino\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp:1:
C:\AppData\Local\Arduino15\packages\firebeetle32\hardware\esp32\0.1.1\libraries\SPI\src/SPI.h:73:10: note: initializing argument 1 of 'void SPIClass::transferBytes(uint8_t*, uint8_t*, uint32_t)'
void transferBytes(uint8_t * data, uint8_t * out, uint32_t size);
^
C:\Documents\Arduino\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp: In member function 'bool Adafruit_SPIDevice::write_then_read(const uint8_t*, size_t, uint8_t*, size_t, uint8_t)':
C:\Documents\Arduino\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp:446:59: error: invalid conversion from 'const uint8_t* {aka const unsigned char*}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
_spi->transferBytes(write_buffer, nullptr, write_len);
^
In file included from C:\Documents\Arduino\libraries\Adafruit_BusIO\Adafruit_SPIDevice.h:9:0,
from C:\Documents\Arduino\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp:1:
C:\AppData\Local\Arduino15\packages\firebeetle32\hardware\esp32\0.1.1\libraries\SPI\src/SPI.h:73:10: note: initializing argument 1 of 'void SPIClass::transferBytes(uint8_t*, uint8_t*, uint32_t)'
void transferBytes(uint8_t * data, uint8_t * out, uint32_t size);
^
exit status 1
Error compiling for board FireBeetle-ESP32.
Is there a solution for this error?
Hi!
I tested Adafruit_SSD1306.h works fine on IDE v1.8.19.
Adafruit_SSD1306:https://github.com/adafruit/Adafruit_SSD1306
Adafruit_GFX:https://github.com/adafruit/Adafruit-GFX-Library
Adafruit_I2CDevice: Adafruit_BusIO.h ( I downloaded it in "manage libraries" in the IDE.)
board's URL : http://download.dfrobot.top/FireBeetle/package_DFRobot_index.jsonhttps://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json





Are you sure that the Adafruit_SSD1306.h library is compatible with Firebeetle ESP32? I doubt there is a compatibility issue. You can ask it in the Adafruit forum too.
