From 731baae9834d51ce43c0e9b0e70401d3bff5c179 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Sun, 24 Jul 2022 21:58:29 -0300 Subject: [PATCH 1/2] Adds default Wire1 pins auto-setup --- libraries/Wire/examples/WireMaster/WireMaster.ino | 8 ++++---- libraries/Wire/src/Wire.cpp | 8 ++++++++ variants/Microduino-esp32/pins_arduino.h | 1 + variants/adafruit_qtpy_esp32/pins_arduino.h | 1 + variants/adafruit_qtpy_esp32s2/pins_arduino.h | 1 + variants/adafruit_qtpy_esp32s3_nopsram/pins_arduino.h | 1 + variants/esp32micromod/pins_arduino.h | 1 + variants/openkb/pins_arduino.h | 1 + 8 files changed, 18 insertions(+), 4 deletions(-) diff --git a/libraries/Wire/examples/WireMaster/WireMaster.ino b/libraries/Wire/examples/WireMaster/WireMaster.ino index e3736bf9fcc..4ed609f02fb 100644 --- a/libraries/Wire/examples/WireMaster/WireMaster.ino +++ b/libraries/Wire/examples/WireMaster/WireMaster.ino @@ -7,16 +7,16 @@ uint32_t i = 0; void setup() { Serial.begin(115200); Serial.setDebugOutput(true); - Wire.begin(); + Wire1.begin(); } void loop() { delay(5000); //Write message to the slave - Wire.beginTransmission(I2C_DEV_ADDR); - Wire.printf("Hello World! %u", i++); - uint8_t error = Wire.endTransmission(true); + Wire1.beginTransmission(I2C_DEV_ADDR); + Wire1.printf("Hello World! %u", i++); + uint8_t error = Wire1.endTransmission(true); Serial.printf("endTransmission: %u\n", error); //Read 16 bytes from the slave diff --git a/libraries/Wire/src/Wire.cpp b/libraries/Wire/src/Wire.cpp index 686a3903ee0..d420ed4fdfb 100644 --- a/libraries/Wire/src/Wire.cpp +++ b/libraries/Wire/src/Wire.cpp @@ -74,8 +74,12 @@ bool TwoWire::initPins(int sdaPin, int sclPin) } } else { if(sda==-1) { +#ifdef WIRE1_PIN_DEFINED + sdaPin = SDA1; +#else log_e("no Default SDA Pin for Second Peripheral"); return false; //no Default pin for Second Peripheral +#endif } else { sdaPin = sda; // reuse prior pin } @@ -91,8 +95,12 @@ bool TwoWire::initPins(int sdaPin, int sclPin) } } else { if(scl == -1) { +#ifdef WIRE1_PIN_DEFINED + sclPin = SCL1; +#else log_e("no Default SCL Pin for Second Peripheral"); return false; //no Default pin for Second Peripheral +#endif } else { sclPin = scl; // reuse prior pin } diff --git a/variants/Microduino-esp32/pins_arduino.h b/variants/Microduino-esp32/pins_arduino.h index 368be4ad147..034bd6173b3 100644 --- a/variants/Microduino-esp32/pins_arduino.h +++ b/variants/Microduino-esp32/pins_arduino.h @@ -26,6 +26,7 @@ static const uint8_t RX = 3; static const uint8_t SDA = 22;//23; static const uint8_t SCL = 21;//19; +#define WIRE1_PIN_DEFINED 1 // See Wire.cpp at bool TwoWire::initPins(int sdaPin, int sclPin) static const uint8_t SDA1 = 12; static const uint8_t SCL1 = 13; diff --git a/variants/adafruit_qtpy_esp32/pins_arduino.h b/variants/adafruit_qtpy_esp32/pins_arduino.h index cfd3af3a147..a72310676f0 100644 --- a/variants/adafruit_qtpy_esp32/pins_arduino.h +++ b/variants/adafruit_qtpy_esp32/pins_arduino.h @@ -23,6 +23,7 @@ static const uint8_t RX = 7; static const uint8_t SDA = 4; static const uint8_t SCL = 33; +#define WIRE1_PIN_DEFINED 1 // See Wire.cpp at bool TwoWire::initPins(int sdaPin, int sclPin) static const uint8_t SDA1 = 22; static const uint8_t SCL1 = 19; diff --git a/variants/adafruit_qtpy_esp32s2/pins_arduino.h b/variants/adafruit_qtpy_esp32s2/pins_arduino.h index d2ebca325b4..4c9c1524732 100644 --- a/variants/adafruit_qtpy_esp32s2/pins_arduino.h +++ b/variants/adafruit_qtpy_esp32s2/pins_arduino.h @@ -29,6 +29,7 @@ static const uint8_t SDA = 7; static const uint8_t SCL = 6; +#define WIRE1_PIN_DEFINED 1 // See Wire.cpp at bool TwoWire::initPins(int sdaPin, int sclPin) static const uint8_t SDA1 = 41; static const uint8_t SCL1 = 40; diff --git a/variants/adafruit_qtpy_esp32s3_nopsram/pins_arduino.h b/variants/adafruit_qtpy_esp32s3_nopsram/pins_arduino.h index 86e893129fe..22336df4a80 100644 --- a/variants/adafruit_qtpy_esp32s3_nopsram/pins_arduino.h +++ b/variants/adafruit_qtpy_esp32s3_nopsram/pins_arduino.h @@ -30,6 +30,7 @@ static const uint8_t RX = 16; static const uint8_t SDA = 7; static const uint8_t SCL = 6; +#define WIRE1_PIN_DEFINED 1 // See Wire.cpp at bool TwoWire::initPins(int sdaPin, int sclPin) static const uint8_t SDA1 = 41; static const uint8_t SCL1 = 40; diff --git a/variants/esp32micromod/pins_arduino.h b/variants/esp32micromod/pins_arduino.h index 80dd6ee544a..abf2735e4a2 100755 --- a/variants/esp32micromod/pins_arduino.h +++ b/variants/esp32micromod/pins_arduino.h @@ -21,6 +21,7 @@ static const uint8_t SDA = 21; static const uint8_t SCL = 22; static const uint8_t I2C_INT = 4; +#define WIRE1_PIN_DEFINED 1 // See Wire.cpp at bool TwoWire::initPins(int sdaPin, int sclPin) static const uint8_t SDA1 = 26; static const uint8_t SCL1 = 25; diff --git a/variants/openkb/pins_arduino.h b/variants/openkb/pins_arduino.h index d16409617a3..4928bd49539 100644 --- a/variants/openkb/pins_arduino.h +++ b/variants/openkb/pins_arduino.h @@ -81,6 +81,7 @@ static const uint8_t OUTPUT2 = 27; static const uint8_t SDA0 = 21; static const uint8_t SCL0 = 22; +#define WIRE1_PIN_DEFINED 1 // See Wire.cpp at bool TwoWire::initPins(int sdaPin, int sclPin) static const uint8_t SDA1 = 4; static const uint8_t SCL1 = 5; From 303ccb129ee98c02b4092ad29da5d6c218bb3074 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Tue, 26 Jul 2022 11:50:15 -0300 Subject: [PATCH 2/2] Reverting changed in example --- libraries/Wire/examples/WireMaster/WireMaster.ino | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/Wire/examples/WireMaster/WireMaster.ino b/libraries/Wire/examples/WireMaster/WireMaster.ino index 4ed609f02fb..e3736bf9fcc 100644 --- a/libraries/Wire/examples/WireMaster/WireMaster.ino +++ b/libraries/Wire/examples/WireMaster/WireMaster.ino @@ -7,16 +7,16 @@ uint32_t i = 0; void setup() { Serial.begin(115200); Serial.setDebugOutput(true); - Wire1.begin(); + Wire.begin(); } void loop() { delay(5000); //Write message to the slave - Wire1.beginTransmission(I2C_DEV_ADDR); - Wire1.printf("Hello World! %u", i++); - uint8_t error = Wire1.endTransmission(true); + Wire.beginTransmission(I2C_DEV_ADDR); + Wire.printf("Hello World! %u", i++); + uint8_t error = Wire.endTransmission(true); Serial.printf("endTransmission: %u\n", error); //Read 16 bytes from the slave