FireBeetle-ESP32 and Adafruit SSD1306

userHead Jan-H 2023-07-07 06:29:46 227 Views2 Replies

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?

2023-07-14 13:48:13

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

 

 

 

userHeadPic jenna
2023-07-08 01:56:46

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. 

 

userHeadPic bidrohini.bidrohini