Unable to use pin 20 as SCL for I2C on ESP32.
I submitted the fix to #8393 to expose pin 20 on ESP32. On the Adafruit Feather ESP32 V2, SCL is pin 20. I loaded the latest nightly build onto my board. I am running into the following issues.
When trying to initalise I2C, it is not accepting pin 20 as a viable option for SCL.
>>> from machine import Pin, I2C
>>> i2c = I2C(0, scl=Pin(20), sda=Pin(22))
E (2540280) i2c: /home/micropython/esp-idf-v4.2/components/driver/i2c.c:767 (i2c_set_pin):scl gpio number error
I2C set up works with pin 14 as SCL.
If I try to simply init pin 20 as an output, it also fails.
>>> from machine import Pin
>>> p20 = Pin(20, Pin.OUT)
E (19500) gpio: gpio_set_direction(263): GPIO number error
@jepler suggested that perhaps the issue is resolved in the ESP IDF v4.4, but an attempt to build MicroPython with that version resulted in a failure to fit in flash. So, I have not tested this possibility.
renesas-ra/boards/ARDUINO_PORTENTA_C33: Fix incorrect I2C pins.
This PR fixes the incorrect assignment of the SCL and SDA pins on the Arduino Portenta C33.
Took the opportunity to also change the number of the interface to 0 as it's connected to IIC0
@iabdalkader helped me to test it. Seems to work:
>>> print(I2C(0))
I2C(0, freq=400000, scl=P408, sda=P407)
Als a bus scan is successful:
from machine import I2C
for addr in I2C(0).scan():
print("🙌 Found device at address 0x%x" %(addr))
prints 🙌 Found device at address 0x21