Enabling I2C on the M5 with Ubuntu MATE 20.x

I have been running successfully several python scripts to drive the uart and some GPIO pins on the above setup. This required no special configuration.

I now need to drive an OLED display using the I2C pins 2 and 5. On the RPI one enables this configuration using raspi-config but there seems to be no equivalent on MATE. How are such options enabled on the M5 unless of course they are always enabled from the start?

I am disappointed that Bananapi personnel do not offer replies to such simple and basic problems. I thought the idea of having a forum is precisely that of a meeting place where such issues get discussed.

The main idea of producing SBC’s sporting a 40 pin connector to compete with the raspberry pi is to actually allow users to configure these pins…just like on the raspberry pi.

From further experimentation it results that pins 3 and 5 are setup by default as i2c pins not as indicated in the wiki as gpiox_17 and gpiox_18!

What if one needs a further set of i2c pin such as pins 27 and 28?

I saw they have steps for the using

Thank you very for that suggestion. It is the first time for me that I came across that document.

It seems to contain a lot of INCOMPLETE information but precious little on how to use it. Is there anywhere one can get further help?

More importantly, BPI FORUM MODERATOR? Where are you?

you should apply the i2c device tree overlay to enable i2c function, phy pin3 and phy pin5 is GPIOX_17 and GPIOX_18, apply i2c0.dtbo to enable this i2c, phy pin 27 and pin 28 is GPIOA_14 and GPOA_15, apply i2c1.dtbo to enable this i2c.

Getting Started with M5/M2Pro - Banana Pi Wiki

Thank you for your reply. However I am afraid the info in the wiki is very limited. In my system 12c0 is enabled by default. Is this because the file /boot/boot.ini contains the line:

setenv overlays “i2c0 spio0 uart1” ?

If I want to reuse pin 3 an 5 as standard I/O pins do I simply replace that line with:

setenv overlays “spio0 uart1”

and reboot?

Finally the directory /boot/overlays/ contains many .dtbo files i.e.:

root@bananapi:~# ls /boot/overlays/

custom_ir.dtbo pwm_b-backlight.dtbo spi0.dtbo

ds3231.dtbo pwm_c-beeper.dtbo uart1_cts_rts.dtbo

hifi_pcm5102a.dtbo pwm_cd-c.dtbo uart1.dtbo

hifi_pcm5122.dtbo pwm_cd.dtbo uart2.dtbo

i2c0.dtbo pwm_ef.dtbo waveshare_tft24_lcd.dtbo

i2c1.dtbo pwm_ef-f.dtbo waveshare_tft35c_lcd.dtbo

pwm_ab.dtbo sdio.dtbo waveshare_tft35c_rtp.dtbo

I am assuming these are all the possible variations. Some of them are simple to understand. But what about options like hifi_pcm5122.dtbo? How does one learn how to use that?