You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I just noticed a problem with this library and some libraries for the use of an ssd1306 and I would like to understand where this problem comes from and how it is possible to fix it
here is my situation:
I use an ESP32 with OLED 0.96" by Heltec (this product
I use this lib to use LoRa functionality (I'm not use the official lib because they don't implement the onTxDone function)
At this point all is Ok my project work correctly
However when I want to use the screen through these libs (Adafruit_SSD1306 or this one ) I'have an error on The Serial Monitor [E][esp32-hal-i2c.c:1434] i2cCheckLineState(): Bus Invalid State, TwoWire() Can't init sda=1, scl=1 which occurs just after passing the function 'onTxDone'
#include <Arduino.h>
#include <SPI.h> // include libraries
#include <LoRa.h>
// #include <Adafruit_GFX.h>
// #include <Adafruit_SSD1306.h>
#include <SSD1306Wire.h>
#include <Wire.h>
const long frequency = 868E6; // LoRa Frequency
const int csPin = 10; // LoRa radio chip select
const int resetPin = 9; // LoRa radio reset
const int irqPin = 2; // change for your board; must be a hardware interrupt pin
#define SCREEN_ADDRESS 0x3C
//Adafruit_SSD1306 display(128 , 64, &Wire1, RST_OLED);
//Adafruit_SSD1306 display(4);
SSD1306Wire display(0x3c,SDA_OLED,SCL_OLED,GEOMETRY_128_64);
void onReceive(int packetSize){
Serial.println("I've receive a packet");
}
void onTxDone(){
Serial.println("txDone " + String( millis()));
LoRa.receive();
}
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
// if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3c)) { //SSD1306_EXTERNALVCC
// Serial.println(F("SSD1306 allocation failed"));
// for(;;); // Don't proceed, loop forever
// }
pinMode(16, OUTPUT);
digitalWrite(16, HIGH);
delay(10);
if (!display.init())
{
Serial.println("Error init display");
}
display.drawCircle(10,10,5);
display.display();
SPI.begin(SCK,MISO,MOSI,SS);
LoRa.setPins(18,14,26);
pinMode(25,OUTPUT);
while (!LoRa.begin(frequency)) {
Serial.println("Starting LoRa failed!");
delay(500);
}
Serial.println("Lora ok");
LoRa.onReceive(onReceive);
LoRa.onTxDone(onTxDone);
LoRa.receive();
delay(1000);
}
void loop() {
// put your main code here, to run repeatedly:
// display.clearDisplay();
// display.setCursor(10,10);
// display.println("Bonjour ");
// display.drawCircle(20,20,10,SSD1306_WHITE);
static int test = 0;
display.clear();
if (test > 128)
{
test = 0;
}
test++;
display.setPixel(test,10);
display.display();
static unsigned long lastsend =0;
if (millis()-lastsend > 5000) //send packet every 5sec
{
lastsend = millis();
LoRa.beginPacket();
LoRa.println("bonjour");
digitalWrite(25,HIGH);
LoRa.endPacket(true);
//LoRa.receive();
Serial.println(millis());
digitalWrite(25,LOW);
}
}
Hello Everyone !
I just noticed a problem with this library and some libraries for the use of an ssd1306 and I would like to understand where this problem comes from and how it is possible to fix it
here is my situation:
At this point all is Ok my project work correctly
However when I want to use the screen through these libs (Adafruit_SSD1306 or this one ) I'have an error on The Serial Monitor
[E][esp32-hal-i2c.c:1434] i2cCheckLineState(): Bus Invalid State, TwoWire() Can't init sda=1, scl=1
which occurs just after passing the function 'onTxDone'I hope I have been understandable enough
sandeepmistry/arduino-LoRa#536 (comment)
The text was updated successfully, but these errors were encountered: