Developing with the BPI-Centi-S3

Hello, Can you help me with instructions how to setup my platformio.ini for developing for the BPI-Centi-S3 board? Thanks!

Forgot to mention that I am developing with C, Arduino framework. Thanks!

Can anybody help with that? Thanks!

If a board is not explicitly listed, I would first try a “standard board” that comes closest to the technical specifications.

The esp32-s3-devkitm-1 (ESP32-S3 with 8MB Flash) would be a good choice here.

As the BPI-Centi-S3 has PS-RAM, which the esp32-s3-devkitm-1 does not have, the setting -DBOARD_HAS_PSRAM must be set.

The platformio.ini should then look something like this:

[env:esp32-s3-devkitm-1]
platform = espressif32
board = esp32-s3-devkitm-1
framework = arduino
build_flags =
    -DBOARD_HAS_PSRAM

Thanks for your help! I will test that.
A guy on another forum wrote that I should use the BPI-Leaf-S3 (it is defined by PlatformIO as one of the supported boards). He claimed that the hardware is similar to the BPI-Centi-S3. I tried it but it does not work…

Providing a detailed description of what exactly is not working is always helpful and much appreciated :slight_smile:

I am just trying to use an example provided by them to draw on the screen:

Nothing works. I get a blank screen…

The compilation and upload seem to work after all.

Now the cause needs to be narrowed down a little more.

Does a simple “Hello World” sketch work?

#include <Arduino.h>

setup() {
  Serial.begin(115200);
  Serial.println("Hello World");
}

void loop() {}

I did not yet tried. Will do… Thanks!

Even that short code you proposed did not work.
I tried contacting the manufacturer for help but nothing…
I then tried using your suggested platformio.ini (instead of using bpi_leaf_s3) but strangely, I got the below error when compiling:
UnknownBoard: Unknown board ID ‘esp32-s3-devkitm-1’
Any additional suggestions? Thanks a lot!

Which version of the Espressif32 Framework are you using? The current version is 6.5.0 and the board is available in this version:

Please check the installed platform version:


I am using v6.4.0.
There is no option to upgrade to 6.5.0. Is there a way to do that?

Open a PIO-Terminal and use the following command:
pio pkg update -p espressif32


Strangely, the board also appears in 6.4.0 but when I complile, it complains…

Close VS-Code
Delete the platform folder “espressif32” (on windows it is located at C:\Users\<username>\.platformio\platforms)
Restart VS code and open your project.
Wait until PlatformIO finished reinstalling the platform.

Deleted the folder, re-opened VSCdoe, following setup it is now 6.5.0.
Code now compiles OK, except the following warning:

Compiling .pio\build\esp32-s3-devkitm-1\FrameworkArduino\wiring_shift.c.o
C:/Users/motti/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-uart.c: In function ‘uartSetPins’:
C:/Users/motti/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-uart.c:153:9: warning: ‘return’ with no value, in function returning non-void
return;
^~~~~~
C:/Users/motti/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-uart.c:149:6: note: declared here
bool uartSetPins(uint8_t uart_num, int8_t rxPin, int8_t txPin, int8_t ctsPin, int8_t rtsPin)
^~~~~~~~~~~

Uploaded to the board, still getting nothing from the Serial :frowning_face:
This is really frustrating to get a board that looks promising but with 0 support from the manufacturer.
Any additional thoughts/ideas to check/test?

Okay, at least we’re one step closer :slight_smile:

The warning message can be ignored, it has no effect.

As I can see from the BPI-Centi-S3, it uses the built-in USB interface and not a USB to Serial converter like many other boards does.
You may need to add this to your platformio.ini to enable serial functionality:

build_flags = 
	-D ARDUINO_USB_MODE=1
	-D ARDUINO_USB_CDC_ON_BOOT=1

After flashing the ESP, it will reboot. This may cause the serial USB interface to be temporarily disconnected (meaning the com port will disappear for a short time).

Following using the following ini file:
[env:esp32-s3-devkitm-1]
platform = espressif32
board = esp32-s3-devkitm-1
framework = arduino
monitor_speed = 115200
build_flags =
-D BOARD_HAS_PSRAM
-D ARDUINO_USB_MODE=1
-D ARDUINO_USB_CDC_ON_BOOT=1

NOTHING :frowning:
BTW, to enable uploading to the board, I had to use the boot-reset buttons combination.
Maybe after the compilation completes and the upload is done, I need to do somthing with these buttons in order to enable the serial communication?

Maybe after the compilation completes and the upload is done, I need to do somthing with these buttons in order to enable the serial communication?

Apart from a reset (which normally happens automatically after the upload), I can’t think of anything.

Tomorrow I might have an ESP32-S3 board with USB available and could do my own tests to find the right settings for you.

In the meantime you could try these settings:

  -DBOARD_HAS_PSRAM
  -DARDUINO_USB_MODE=0
  -DARDUINO_USB_CDC_ON_BOOT=0

After the upload, observe whether the available COM ports change.

  • Compiled using the changed ini file.
  • Got the following warning on many of the files:
    : warning: “ARDUINO_USB_MODE” redefined
  • Still NOTHING :frowning:
    Will highly appreciate your continued h