Seeed Studio XIAO ESP32S3 (SS113991114)

This is a placeholder topic for “Seeed Studio XIAO ESP32S3” comments.

Seeed Studio XIAO ESP32S3 leverages dual-core, Xtensa processor with RISC-V architecture, supporting both Wi-Fi and BLE wireless connectivities. It is a…

Read more

Hi does the inbuilt lipo charge management on these boards automatically stop the battery from over charging / discharging or does that have to be part of the program that’s uploaded to the board ?

1 Like

Hey Dylan,

I found some documentation from Seeed Studio that has some information on this:

From my understanding this is managed by requiring a specific battery type to be used. The documentation suggests using a 3.7V lithium battery so I assume it can accurately manage the charge of this battery given its knowledge of the specific voltage and type of battery connected to it.

Let me know if you need more information than this.
Sam

Hi, wondering if there’s a way to power Xiao ESP32S3 with 5V. It does not have a VIN pin and using a buck converter might not be feasible for my project. I’m using a 4S1P battery pack with an internal buck converter to get 5V.

PC

Hey @Prithul271176

You will be able to apply 5V to the 5V pin on the XIAO to power it.

1 Like

I had this same question answered in detail here.

1 Like

This is great @Pixmusix, thanks for sharing!

Which diode did you end up using? I don’t have any so I’ll have to purchase.

Also, curious to know if you made a PCB by any chance as discussed latest there haha

PC

I settled on a 1N5819.
This will work if you are keen to grab a few.

Not yet. I’m experimenting all the time but this is the time of every year I’m in crunch mode as international artist applications and national grants lock down. Will revisit in November when it gets quiet.

2 Likes

Hi.

I’m really struggling to find any information on the I2C pull ups.
I can’t see anything mention on the datasheet under i2c.
However! I have seen heaps of projects out there that just ignore it the pull ups and they seem to work…
Does the xiao have i2c pull ups and if so what are they?

1 Like

Hi Jonny,

Great question, and a good trip into the weeds on the ESP32-S3!

At face value, I’d imagine there are some pull-up resistors (PU) on the I2C device and/or any carrier boards that might be used in the project.

At a hardware level, the Xiao itself doesnt have any I2C PU: https://files.seeedstudio.com/wiki/SeeedStudio-XIAO-ESP32S3/new-res/202003751_XIAO%20ESP32S3_v1.4_SCH_260226.pdf.pdf

If you could share some examples of projects where you can’t quickly spot them, I’d be curious to see how they might be implemented.

As always, when comissioning a project its always good to verify stuff like, is anything shorted to ground, I2C pull-up resistance, etc etc

… and into the rabbit-hole of documentation…

Preface, I only had a quick scan through - applying my general understanding of microcontrollers here.
A PU is usually initialised by the GPIO peripheral, and the I2C peripheral would live behind that.

Here’s a snippet of a “Pad”


Page 474 - https://documentation.espressif.com/esp32-s3_technical_reference_manual_en.pdf#i2c

Then, scrubbing through the Datasheet, page 57 indicates they should be 45k ohm PU/PD:

Bob has described a method to perform a test to get the DC impedance of a pin without pull resistors a few times, the same methodology could be used to confirm the 45k ohm claim.

I would highly recommend a scan through a reference manual, HAL, and toolchain - and lower-level docs for “fun” :smile:
(For uni, it was encouraged we did so for the STM32F446)

Another aside:
From the RP2040 Datasheet, this graphic is good to show the high-level connections between peripherals.

Happy to answer any tangential questions about MCU’s!
Liam

EDIT: added note about comissioning projects

1 Like

Hi Liam

Can’t find that now but I remember it required the highest value you can find and utilising the built in ADC to measure the analog input voltage.
I have since worked out another easier method utilising the 10MΩ resistance of a DMM. Started out measuring the reverse leakage current of a diode under different conditions but could be used to measure any very high value of resistance.

This might generate some interest so in the very near future I will generate some small descriptive schematics and start another post on very high value resistance measurement.

Watch this space
Cheers Bob

1 Like

In the esp32 you can dump the state/setup of the GPIO pins to the debug uart. this is very handy as it shows if its input/output pull up/down/none etc.

It pays to check the setup if you are trying to tweak something. e.g. You may set the GPIO for output with a pull up, then assign that pin to I2C/SPI etc. When you init the port it will most likely reset to what ever the init did and change your by hand settings. Post that you may be able to then change the pull up/down.

Also on the ESP32 it pays to check what the default setup is for any pin you choose to use. Some will be pre-assigned to things. If that is the case, you may need to “de assign” that function to truly free the pin for what you want.

e.g. In the Expressive IDF
gpio_reset_pin (GPIO Pin); can be used to release the pin.
But keep in mind that while you can map most things to most pins, some pins have more direct access, so if looking for high-speed its best to use the default pins for those functions.

Key point: The order in which you do things can affect they what happens, dont just assume a pull up is applied since you applied it before setting up the I2C interface. If the setup init can set the pull up/down use that to do the job.

2 Likes