ESP32-S2 BOOT AND I2C

CircuitPython on hardware including Adafruit's boards, and CircuitPython libraries using Blinka on host computers.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
ISI_BOB
 
Posts: 40
Joined: Tue Jan 11, 2022 3:14 pm

ESP32-S2 BOOT AND I2C

Post by ISI_BOB »

Two questions:

1) I am using ESP32-S2 QT PY (ver 8 beta). On powerup, sometimes the board goes straight to bootloader mode, and other times will boot normally through boot.py and coded.py. A warm start, say a quick power cycle, generally seems to boot ok, but if unit has been off for several seconds, it has more of a propensity to boot in bootloader mode. Overall, seems kind of random which way it will go. I have seen forum post where this same issues has been seen if pulling i2c up to 5V on a 3.3V board, but not the case here. I am using the castellated pins i2c with 4.7K pullups to 3.3V. The best I can tell, when the bootloader is invoked, both boot.py and code.py are bypassed completely. Can you think of anything that can cause the bootloader to inadvertently get triggered? The only thing I can think of is floating pin, or supply rampup?

2) On the subject of I2C, can both the castellated I2C and the Stemma QT I2C both be used at the same time on the QT PY ESP32-S2?

User avatar
mikeysklar
 
Posts: 13936
Joined: Mon Aug 01, 2016 8:10 pm

Re: ESP32-S2 BOOT AND I2C

Post by mikeysklar »

Do you see the same behavior of going into unrequested bootloader mode when nothing is connected to the board?

If you are not connected to a PC and just using a dumb USB power supply to the ESP32-S2 Qt Py does that prevent going into bootloader mode?

There should not be an issue with mixing castellated i2c and stemma i2c devices. However, not all i2c devices play nicely together (unrelated to their connection types).

User avatar
ISI_BOB
 
Posts: 40
Joined: Tue Jan 11, 2022 3:14 pm

Re: ESP32-S2 BOOT AND I2C

Post by ISI_BOB »

boards seem to work fine stand-alone. Issue seems to be when mounted to my carrier board.

On my carrier board, I have a battery charge circuit that has a tri-state STAT pin going to the QTPY pin A3, intended for use with anolog input on the QTPY. I have found If I force the A3 input low during powerup, the board boots normally. If I let the charge controller control the pin, I get random results, sometime boot normally, sometime invoking the bootloader.

On the I2C question, can we do something like the following, using both I2C's in the same code base:

import busio
i2c1 = board.I2C()
i2c2 = busio.I2C(board.SCL1, board.SDA1)
accel = isi1547_mc3479.MC3479(i2c1)
tmp117 = adafruit_tmp117.TMP117(i2c2)

User avatar
mikeysklar
 
Posts: 13936
Joined: Mon Aug 01, 2016 8:10 pm

Re: ESP32-S2 BOOT AND I2C

Post by mikeysklar »

Glad you were able to determine the bootloader was getting toggled from your carrier board.

You should be able to use both i2c as you have described with the two instances i2c and i2c1.

Locked
Please be positive and constructive with your questions and comments.

Return to “Adafruit CircuitPython”