ESP32-S3 Mini Development Board (WS-25081)

This is a placeholder topic for “ESP32-S3 Mini Development Board” comments.

ESP32-S3 Mini Development Board, Based on ESP32-S3FH4R2 Dual-Core Processor, 240MHz Running Frequency, 2.4GHz Wi-Fi & Bluetooth 5…

Read more

2 Likes

Which pins are the SDA and SCL?

2 Likes

Not 100% sure on the question. I will assume you mean “What are the default i2C SDA and SCL Pins?”

Glossing over the data sheet, I don’t there there are any. Most pins seem to default to the GPIO function.

So given that, any 2 pins you like (within reason) should support it as per
ESP32-S3 Mini Development Board | Waveshare WS-25081 | Core Electronics Australia.

4 Likes

Hey Andrew,

Welcome to the forums!

Michael is pretty much on the ball with his answer. It seems that the pins for i2c will be software defined and so most any pin (barring 5v, Ground, 3.3V, TX and RX) will be able to be defined as a send or receive i2c addressable pin!

The wonders of the ESP32-S3!

Cheers,
Blayden

4 Likes

just to follow up on @Blayden post there is still some restrictions depending on the particular ESP chip you use
The ESP32 is quite flexible as you can virtually use any pin to be assigned as SDA&SCL. However, there are standard/default pins for the SDA and SCL in the ESP32:

  • GPIO 21 is SDA
  • GPIO 22 is SCL

Besides these, other commonly used pairs are GPIO 18 (SCL) and GPIO 19 (SDA), or GPIO 25 (SCL) and GPIO 26 (SDA).

However, not all pins are good candidates to use with I2C. These are some considerations:

Inputs GPIO 34 to 39: These pins can be only used as inputs, hence they can’t be used as SDA or SCL.

GPIOs 6 to 11: These pins are used to connect the flash memory chip. If you use these pins, you might crash your program because the flash memory is being accessed concurrently.

GPIOs 1 and 3: GPIO 1 (TX) and GPIO 3 (RX) are used for serial communication.

Bear in mind that it’s always a good idea to check the specific documentation of your specific ESP32 model. There may be certain limitations imposed by the board layout and other peripherals.

2 Likes

While I am happy to go with what you know… And in the past with the older chips there were default pins for things, I did base my comment on the data sheet for the ESP32-S3-MINI-1 (as the ESP32-S3-MINI was the one in question.
bold : default state


src: https://www.espressif.com/sites/default/files/documentation/esp32-s3-mini-1_mini-1u_datasheet_en.pdf

5 Likes

Thanks, was switching over from arduino which had dedicated i2c pins labelled. I read online that the signals for i2c communication needs to be pulled high by resistors but some boards have that function built in. Does this board have it?

1 Like

Hi @Andrew272811,

From my quick look at the schematics for this board from the Product Wiki I don’t think it doesn’t have pullup resistors on any of the GPIO pins. Might be worth taking a look into it yourself :slight_smile:

1 Like

Hi there, what are the TX and RX pin numbers to use on an Arduino project? Thank you

Hi Aaron
Not following this thread but this stands out like a neon sign

DUHHH. Does this mean you DO think it DOES???
I think Andrew might have given up after that.
heers Bob

If you are using the Arduino IDE then referencing the primary UART as ‘Serial’ will determine the pin number automatically based on the board definition.

If you are running an Arduino sketch that requires you to nominate the GPIO numbers for the default UART then, according to the product Wiki:
" * The “TX” and “RX” markings on the board indicate the default UART0 pins for ESP32-S3-Zero. Specifically, TX is GPIO43, and RX is GPIO44. "

If you need to use pin number rather than GPIO numbers you can us the defined constants TX and RX.

Or you can look at the board definition for the board you have selected in the IDE at (for example) 'C:\Users\username>\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.1\variants'.
which for the generic ‘esp32s3’ is TX = 43, RX = 44.

2 Likes

Much appreciated @Jeff105671

Hi - I’m having trouble getting any light output from the built-in LED (WS2812) on the ESP32-S3 Mini Development Board. I’m setting pinMode to output for the defined pin, and then toggling it with digitalOutput. But there is no response.

Part of the problem may be the definition for the pin. On the Core Electronics page, the pin-out diagram notes the LED is on GP10. However, the linked Waveshare Wiki says the LED is on GPIO21, and so does the schematic liked from the Wiki. However, neither pin seems to work. Any help please?

1 Like

Hi Roger,

It looks like Waveshare have made a revision to the board.
If you have 2 rows of pads on the bottom you’ll have the old version with pin 10, with 1 row, pin 21.
(I’ve made a note to update our page)

However like you mentioned, it uses a WS2812 so a simple voltage on/voltage off wont affect the LED. If you use a Neopixel library (Arduino, Micropython) you’ll have the LED working in no time!

Liam

1 Like

Hi Liam - thanks for the quick reply. Yes, I have 1 row of pads on the reverse, so the LED is on 21.

The BLINKRGB example (from examples > esp32 > GPIO) does indeed work, with 2 provisions: (a) it needs #define RGB_BUILTIN 21, and
(b) the calls to digitalWrite() in the example do nothing, but the calls to neopixelWrite() work as expected. No #include of a library is needed.

I’ve spelt it out in the hope this might be useful to others. Thanks for your support.

3 Likes

BTW - neopixelWrite() params are actually (led, G, R, B) in that order (not as in the ESP32 example). :slightly_smiling_face:

3 Likes

Hi, I’m considering using this mini board with Micropython, but wanted to check something.
The Waveshare Wiki mentions that it doesn’t have a USB-to-UART converter built in. Does that have any implications for micropython?

Context: Micropython usually works over an emulated serial connection, providing a python REPL prompt, which is also used for syncing files to the board.

Can anyone confirm that you can still do that with these boards?

2 Likes

Hey @Toby469,

From the look of the documentation, the onboard programmer on this board should handle MicroPython uploads without the need for an external USB to UART converter.

The MicroPython steps on the wiki, while a little complicated compared to other methods, should allow you to get this working without too much trouble including serial communication.

I hope this helps! :grinning:

2 Likes

Hi Samuel,
Thanks for the quick reply.

I saw the details on their wiki about flashing the micropython firmware, but that’s different to being able to access the uPython REPL over serial-over-USB.

It seems likely that there’s a way micropython does manage to provide a serial-over-usb, but also, it could well be that they don’t, and they just assume you have to upload stuff blind.

I was struggling to find anyone reporting success on the internet earlier, but I just found a Youtube video that shows someone using a micropython REPL on the boards, so looks like it does work.

1 Like

Hi Toby,

The latest ESP32 boards (S3 and C3) have onboard USB-UART converters, so they behave much like the older boards with an external chip (with the added benefit of not needing the external reset circuitry).

1 Like