Developing with the BPI-Centi-S3

Okay, back to start :wink:

I found here some information about the board and the Arduino IDE settings to use.
Iā€™m not an expert on mapping these settings to Platformio, but:

Since you updated your espressif32 platform and the esp32-devkitm-1 became available, the same should have happened with the bpi_leaf_s3 which is mentioned as a ā€œcompatible settingā€.

So please try the following settings:

[env:bpi_leaf_s3]
platform = espressif32
framework= arduino
board = bpi_leaf_s3
monitor_speed = 115200

After uploading and resetting, the COM port may change. Therefore, you may need to select the correct COM port before opening the serial monitor. You can select the port via a button in the bottom status bar:
image

Same. Nothing displayed via Serial on terminalā€¦
I am stuckā€¦ will highly appreciate your help!

Iā€™m running out of ideas :frowning:

Have you tried using the Arduino IDE and the instructions from BPI-Steam?

Yes, I tried Arduino IDE with their instructions with same bad resultsā€¦ on two boardsā€¦
I sent them all info on both my platformio experience and the arduino ide experience, no response yet.
I need to put my hands on a bare bone ESP32-S3 and test it to see what platformio config will work. If you have such a board and can check this, it will really help. Thanks a lot!

The only ESP32-S3 board i have is the freenove esp32-s3-wroom

From the link you sent it is shwon that the freeenove board has two USB connectors so it will probably not function the same as the BPI-Centi-S3 that has only one USB connector.
This is really strange. I am stuck and the manufacturer does not get back to me. The company is a well known company and it is really strangeā€¦
Any additional ideas on what to check/test will be highly appreciated!

Yes, but I used the correct connector which leads to the builtin USB.

As I am just starting to work with displays, I have now ordered this board.
However, it will take about 15 days before it arrives.

Did you find what setup/parameters should be used in the ini file?

board = bpi_leaf_s3 worked for me fine.

Absolutely strange.
It may be becuase your have 2 USB connectors and the board/software does not get confused between the different modes.

It is great that you ordered the same board. I will wait for you to get it and get it working. Please let me know the results of your research with the board and how to configure the ini file to get this working. Thanks a lot!!!

No, thatā€™s not the case.

Using -DARDUINO_USB_CDC_ON_BOOT=1, all Serial.print statements are routed to the native USB port on the ESP32 and Serial0 is routed to the UART pins (means the other USB-Port which is connected via USB to UART chip). So you can use both ports at the same time using Serial and Serial0.

Donā€™t knowā€¦ I am stuckā€¦ Please update me after you get the board and be able to operate it. Thanks a lot!

The board arrived earlier than expected.

I have created a board description for the bpi-centi-s3:

Create a ā€œboardsā€ folder on the same level as the ā€œsrcā€ folder and copy the bpi_bpi_centi_s3.json into this folder.

In your platformio.ini use board = bpi_centi_s3

The example code must be modified to make it work:

Arduino_DataBus *bus = new Arduino_ESP32PAR8Q(5 /* DC */, 4 /* CS */, 6 /* WR */, 7 /* RD */, 8 /* D0 */, 9 /* D1 */, 10 /* D2 */, 11 /* D3 */,
                                             12 /* D4 */, 13 /* D5 */, 14 /* D6 */, 15 /* D7 */);

The difference is the use of Arduino_ESP32PAR8Q instead of Arduino_ESP32LCD8

Hi, Sorry that I did not get back to you earlier. I was on a business trip. So I need to do the following?

  1. Create the ā€œboardsā€ directory on the same level as ā€œsrcā€
  2. Save the json as a file in that new directory using the name ā€œbpi_centi_s3.jsonā€
  3. Not sure how the whole platformio.ini file should look like. Can you send me the whole file content?
  4. Then I should take the graphics sample code and modify this one line?
    Assitional questions:
  • I see in the json file that you kept the Leaf definition/name. Is that OK?
  • I see in the json file that you defined a default partition: ā€œpartitionsā€: ā€œdefault_8MB.csvā€. I defined my own custom partitions definition using a separate file (board_build.partitions = custom_partitions.csv
    ). Is there a way to still use it?
    Thanks a LOT for your help!

1: :white_check_mark:
2: :white_check_mark:
3: platformio.ini

[env:bpi_centi_s3]
platform = espressif32
board = bpi_centi_s3
framework = arduino
monitor_speed = 115200
lib_deps = https://github.com/moononournation/Arduino_GFX

4: :white_check_mark:

Yes thatā€™s ok.

User-defined partition settings override the settings from the board definition.
You can therefore use your own partition table without any problems.

Hi Boris, Got the board to finally function with the demo app. It took a few tries as initially, the reset button after code upload did nothing. Uploaded again and it worked. Thanks a lot for your amazing help!!!
Now to next:

  • What do I need to do in order to get the bodmer/TFT_eSPI library to function on this board?
  • Can you recommend a good library to use for utilizing its rotary encoder and button? I would like to utilize a library that will work as much as possible in an async way.
  • Is there a library to control its on-board RGB Led?
  • And same for the Buzzer?

Thanks a lot again!!!

What a coincidence, thatā€™s exactly what I was working on this morning :slight_smile:
Here is the ā€œjulia-exampleā€ running on the centi:
PXL_20240125_073644572

To avoid manual editing of User_Setup.h, I use the build_flags and build_unflags settings in platformio.ini. The following lines makes the display work:

lib_deps = https://github.com/Bodmer/TFT_eSPI
build_unflags=
  -DTFT_CS
  -DTFT_DC
  -DTFT_RST
  -DTFT_WIDTH
  -DTFT_HEIGHT
build_flags=
  -DTFT_PARALLEL_8_BIT=1
  -DST7789_2_DRIVER=1
  -DTFT_WIDTH=170
  -DTFT_HEIGHT=320
  -DTFT_BL=2
  -DTFT_RST=3
  -DTFT_CS=4
  -DTFT_DC=5
  -DTFT_WR=6
  -DTFT_RD=7
  -DTFT_D0=8
  -DTFT_D1=9
  -DTFT_D2=10
  -DTFT_D3=11
  -DTFT_D4=12
  -DTFT_D5=13
  -DTFT_D6=14
  -DTFT_D7=15

These are the next things on my to-do list :wink:
So no answer at the moment.

Thanks a lot Boris!
esp_tfti settings for known boards is fairly simple. For example, to use it with the LilyGo T-Display-S3 I only had to modify the user_setup_select.h file to comment the include line and enable the second lineā€¦
//#include <User_Setup.h>
#include <User_Setups/Setup206_LilyGo_T_Display_S3.h>
Nothing similar for the centi board?

Waiting for your next steps with the additional components :slight_smile: