UNO R4 WiFi 3rd I2C Bus?

Is it possible to use D0/D1 as a 3rd I2C bus?
Are there any disadvantages to doing so?

The micro has two I2C ports but according to the Arduino documentation the board only has one.
Unless there is support for I2C by software, I don't know where you read that there may be a third port.

Only one hardware UART (D0, D1). Does it have SerialMon otherwise?

ABX00087-datasheet.pdf (arduino.cc)

Altium.WebViewer.Files.WebViewerJob_PDF_SCHPrint (arduino.cc)

I am referring to the advanced section of the Full Pinout at the bottom of the Documents site

What's the need of more than one I2C bus?
(Some device you need two of, but the address cannot be configured?)

1 Like

Yes, one reason was to avoid having to use a MUX for a couple of sensors which cannot have their addresses changed.
Another reason was to isolate a peripheral.
My understanding was that the QWIIC connector uses WIRE1 and the typical pins use WIRE.
I wanted to know if D0/D1 could could be used as WIRE2 if there is no need for the UART or if there was some other reason to avoid the 3rd I2C port.

Wouldn't hurt to try (no harm, no foul).

Since it is in the Advanced section I was hoping there was an example of how to remap or use D0/D1 for I2C.
It doesn't appear that D0/D1 are used for programming the Uno R4 WiFi.
My project doesn't need the Serial Monitor and I am not even sure if the Serial Monitor is using D0/D1 on the this board.
Hard to tell from the documentation.

You can not just add Wire2 and I don't know if changing the pins is working or if an existing Wire object can be changed or can be closed and re-opened with other pins.
Arduino creates "Wire" and "Wire1" as soon as the Wire library is used in the sketch. They are fixed to certain pins. That makes the sketch easier for beginners, but in my opinion the object for the I2C bus should be created in user code (in the sketch).

In the "variants" section, the maximum for two I2C buses is set: https://github.com/arduino/ArduinoCore-renesas/blob/main/variants/UNOWIFIR4/pins_arduino.h#L92.
Also the pin numbers for the I2C buses are defined there.
The Wire and Wire1 objects are created in the common Wire.cpp: https://github.com/arduino/ArduinoCore-renesas/blob/main/libraries/Wire/Wire.cpp#L816.
If you scroll up, you see that the object creation accepts pin numbers:

TwoWire::TwoWire(int scl, int sda, WireSpeed_t ... 

It depends on the hardware of the processor if other pins are possible.

Where is what in the advanced section ? I would like to see it !

Take a look at "I2C Connector" section of https://docs.arduino.cc/resources/datasheets/ABX00087-datasheet.pdf

Hi @Koepel - what I am trying to understand is why they color coded the SCI_SCL2 (D0) and SCI_SDA2 (D1) pins as part of the I2C interface on page 4 of the full pinout diagram:

And if they can be configured as a 3rd I2C port (which now I doubt thanks to your explanation), would they even interfere with the Serial Monitor since P301 & P302 are not connected to USB through the ESP32 module according to the schematic:

Only SCI1(P109 & P110) and SCI9 (P501 & P502) on the ucSIDE are connected to the ESPSIDE and on to the USB.

As much a curiosity as anything else, but I would take advantage of an extra I2C port if it was there.

From this page: https://store.arduino.cc/products/uno-r4-wifi, the "DATASHEET IN PDF".

Page 14, the section "I2C Connector".
They talk about the connector with the second I2C bus. I can read nothing about using other pins or a third I2C bus.
Can you make a screendump with a red circle around it ?

Page 17, the pinout.
I can not see SDA2 and SCL2 on pin 0 and 1. It is not there.

Do you have an older version ? Can you reload and download the newest version and check again ?

Hi @Koepel - if you go to the Arduino Documents site for the Uno R4 WiFi here...

...and scroll to the very bottom of the page there are links to the FULL PINOUT pdf file...

...and the SCHEMATICS pdf file...

Open the FULL PINOUT pdf and page 2 is the "WARNING! - Advanced Section - The following information is for advanced use only and may not be officially supported by Arduino software" followed by the fully detailed pinout on page 4.

1 Like

SCI is not IIC though.

Thank you, now I see it :smiley:
I suppose that the processor supports I2C, but the Arduino software does not (yet) support that.

Exactly, and the reason for my question.
Is the label wrong, or the classification wrong?

This may work --
SoftWire - Arduino Reference

Thank you @runaway_pancake - I will give it a try.

And maybe the label is “SCI” only because the default is UART/USART but the pins are IIC capable if somehow properly configured and implemented?

I understand it’s unsupported but still may be interesting to some if it worked.

RA4M1 datasheet:

28. Serial Communications Interface (SCI)

28.1 Overview

The Serial Communications Interface (SCI) is configurable to five asynchronous and synchronous serial interfaces:

  • Asynchronous interfaces (UART and Asynchronous Communications Interface Adapter (ACIA))
  • 8-bit, clock synchronous interface
  • Simple IIC (master-only)
  • Simple SPI
  • Smart card interface.
1 Like

Drop the other shoe then, if you can - how would you get I2C (IIC) going on D0/D1 in this SCI context.