According to the datasheet page 15 ("Strapping Pins" section): https://www.espressif.com/sites/default/files/documentation/esp32-s2_datasheet_en.pdf
"GPIO0, GPIO45 and GPIO46 are connected to the chip’s internal pull-up/pull-down during the chip reset.
Consequently, if they are unconnected or the connected external circuit is high-impedance, the internal weak
pull-up/pull-down will determine the default input level of these strapping pins"
Table 3 shows GPIO0 is tied-up to the default pull-up during system reset.
Table 9 shows the default pull-up resistor value is typically 45kOhm.
So in theory you should measure about 0.156V at the pin when pressing the button.
In your case measuring 1.33V on GPIO0 means the equivalent pull-up resistance would be around 700 Ohm, more like if the ESP is actively driving it rather than being passive pulling.
- Can you boot the ESP normally then measure the voltage on that pin when the button is pressed and released?
- Can you now turn the power off, press the button while monitor the GPIO0 voltage and turn the board back on?
- Any differences between these 2 operations?
In this diagram, there are two devices connected to the 3v3 pin. Is there any limit to the number of devices that can be connected to that pin, so as not to damage anything?
You'll have first to understand what is the power regulator on that development board and how much current at the 3.3V voltage can it deliver (output current capacity). Then, you'll need to figure out both the device's maximum current consumption (how much current they are each sinking).
Once you got the 2 current numbers for the devices, add them up and verify that the sum doesn't exceed the power regulator current capacity. This quick method should guarantee that the 3.3V rail stays at that voltage value and does not drop under.
To really damage the power regulator, you may have to try harder as most power regulators monitor their output current and if their limit is exceeded they will protect against permanent damage. Low-dropout voltage regulators tends to be more "fragile" than DC-DC converters. Do you have a part number for this regulator?
Multiple i2c devices are connected to the same pins (21,22). How can I determine how many more devices I can connect to the same bus without damaging anything?
As long as you connect the I2C lines correctly to each device, you wouldn't damage anything.
I2C bus relies on external pull-up resistors for the rising edges of the signal. These resistors do exactly what they are intended to which is to pull the voltage on the bus back to the "high" state (or in your case, it would be 3.3V).
Because of their current-limiting property, the resistor can only pull the bus back up at a limited rate (the bus needs to source current from 3.3V rail to "recharge" itself).
The more devices you have on the bus, the more it needs current from 3.3V to recharge itself and the slower the rising edge of the signal will be. At one point, with many, many devices connected, the edge will be so slow that you will "break" the data integrity of the bus (eg. you won't be able to read correct values from devices anymore). However, the hardware itself will remain fine.
Best Answer
Output pins output a certain voltage. Adding internal pull-up or pull-down resistors to output pins is silly because they won't do anything except for wasting power.
The output pin is equivalent to a 0-ohm pull-up or pull-down resistor already (depending on whether your software makes it high or low).