I2C erkennt nichts mehr

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Guten Tag zusammen

    Vorweg ich bin ein Laie und baue mein erstes kleines Projekt. Meine Kenntnise sind noch relativ begrenzt also bitte ein wenig Nachsicht.

    Also sagt mir bitte wen ihr irgendetwas Wissen müsst was ich nicht erwähnt habe und bitte hängt mich nicht gleich für meine Anfängerskills.

    Es geht um meinen Pi der bis jetzt tadellos funktioniert hat. Ich muss mir zwar immer erst mein Wissen ergoogeln aber es hat 6 Monate einwandfrei funktioniert.

    Plötzlich erkennt er meine Relay/Input Hats nicht mehr. Ich verlinke Sie euch mal.

    https://sequentmicrosystems.com/products/raspb…-heavy-duty-hat

    Bis jetzt war es ziemlich einfach und plug n play, ich wollte jetzt eigentlich noch Temperatursensoren und Durchflussmesser mit anschliessen.

    Temperatur Sensoren / Durchflussmesser

    Was soweit auch im Test tadellos funktioniert hat. Vom einen auf den anderen Tag bekam ich plötzlich ein Fehler in meinem Script welchen ich bis jetzt nicht beheben konnte.

    Soweit ich mich eingelesen habe stammt das Problem von der I2C Verbindung zu den Hats her. Wieso kann ich leider nicht schildern ich habe nichts an der Verkabelung verändert in der Zwischenzeit. Oder an den Scripts welche das Problem auslösen.

    Folgender Fehler erscheint..

    Traceback (most recent call last): 

    File "/usr/local/lib/python3.7/dist-packages/http://lib4relind-1.0.0-py3.7.egg/lib4relind/__init__.py", line 139, in get_relay_all 

    val = __check(bus, DEVICE_ADDRESS + stack) 

    File "/usr/local/lib/python3.7/dist-packages/http://lib4relind-1.0.0-py3.7.egg/lib4relind/__init__.py", line 51, in __check 

    cfg = bus.read_byte_data(add, RELAY4_CFG_REG_ADD) 

    TimeoutError: [Errno 110] Connection timed out 


    During handling of the above exception, another exception occurred: 


    Traceback (most recent call last): 

    File "/home/pi/Teich.py", line 394, in <module> 

    Main() 

    File "/home/pi/Teich.py", line 384, in Main 

    DoRelaySwitch(0,0) 

    File "/home/pi/Teich.py", line 235, in DoRelaySwitch 

    rel = r.get_relay_all(RelayToSwitch[0]) 

    File "/usr/local/lib/python3.7/dist-packages/http://lib4relind-1.0.0-py3.7.egg/lib4relind/__init__.py", line 143, in get_relay_all 

    raise RuntimeError("Unable to communicate with 4relind with exception " + str(e)) 

    RuntimeError: Unable to communicate with 4relind with exception [Errno 110] Connection timed out

    Ich habe schon neue Hats bestellt, weil ich dachte vielleicht habe ich Sie durch irgendetwas geschrottet aber das ist nicht der Fall mit den 2 Neuen ist es das selbe.

    Wenn ich I2CDetect benutze sieht es wie folgt aus...

    Kann es sein das ich irgendwie den Pi beschädigt habe ? Und wie könnte ich das testen ?

    Es kommt mir aber wirklich nichts in den Sinn was ich falsch gemacht habe, da alles funktioniert hat als ich den Pi verlassen habe und ich nur 3.3V zum testen benutzt habe.

    Ich hoffe echt das mir jemand von euch irgendwie weiterhelfen kann. Ich benutze das ganze für meine Teichsteuerung und es sollte so bald als möglich wieder funktionieren.

    Einen anderen Raspi kann ich leider nicht auftreiben und durch die schöne Lage auf dieser Kugel, krieg ich auch nicht so schnell einen Neuen.

    Besten Dank im Vorraus für eure Antworten !!

    Einmal editiert, zuletzt von Rjs15 (28. Februar 2022 um 18:11)

  • Moin Rjs15,

    erstmal: Herzlich Willkommen im Forum!

    I2C ist einer der Schnittstellen die man schlecht ohne ein I2C-Gerät testen kann.

    Bei deiner Fehleranalyse hast du alles von dem HAT entfernt?

    Hast du ein Messgerät?

    Ach ja, ist ev. eine Led und ein Widerstand im hause?

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Hallo Bernd666

    Dankeschön für die Begrüssung

    Das heisst die HAT's die ich hier habe gehen nicht zum testen ?

    Ja hatte alles weg bis auf die HAT's resp. hab ich auch jeden einzeln ausprobiert.

    Momenatan nicht zuhause kann ich aber aus der Firma auslehnen.

    Wiederstände habe ich ein paar was für einer sollte es sein ?

    Led habe ich gerade keine bis auf sowas hier ..

    LED-Signalleuchte

  • Moin Rjs15,

    sicher kann man deine Hat's nehmen, wenn sie in Ordnung sind. Kannst du woanders I2C testen?

    Was kannst du in der Firma leihen? Messgerät? Ev. auch ein Oszilloskop??

    Du könntest nochmal schauen ob bei dem Befehl ls -l /sys/class/i2c-dev ein i2c-1 da ist. Das wird aber da sein, weil sonst i2cdetect nicht laufen würde.

    Wie ich schon geschrieben habe, i2c ist schlecht zu testen.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Also ich habe ja 2 nigelnagelneue Hats extra bestellt da ich gedacht habe das die vielleicht kaputt sind. Die müssten in Ordnung sein.

    ICh habe aber kein anderen Pi oder so wo ich die testen könnte. Aber eben die 2 neuen sind sicher i.O..

    Ja haben da so ein ganz normalen Multimeter wenn das ausreicht neheme es morgen mal mit nach Hause. Oszilloskop haben ich nicht.

    Bei dem Befehl kam folgendes dabei raus..

    Passt das so ?

    Also ich bin um jede Hilfe und jeden Versuch froh, auch wen es mühsam wird.

    Momentan kommt man ja nciht wirklich an einen neuen Pi also muss ich den irgendwie wieder zum laufen bringen.

    Sofern den der Pi das Problem ist.

  • Moin Rjs15,

    gut. Kannst du dir auch noch Steckkabel besorgen. Wie man sie für Steckbretter(Breadboard) braucht?

    Am besten auf der einen Seite Stecker und auf der anderen Buchse. Dann ist die Gefahr eines Kurzschlusses mit den Messspitzen nicht so gross. Sei da bitte sehr vorsichtig!!!!!

    Dann eine Messspitze an GND(Pin 6) und eine an GPIO2(Pin 3). Messbereich auf dem Messgerät in einem Gleichspannungsbereich so nah an 3,3V einstellen.

    Nun sollte das Gerät ca. 3,3V anzeigen. Nun die Spitze von GPIO2 auf GPIO3(Pin 5) stecken. Da sind auch 3,3V.

    Nun kommt ein Test, der eigentlich nur aussagt, das was auf der Schnittstelle was passiert.

    Das Steckkabel von GND entfernen und auf Pin1(3,3v) stecken.

    Am Raspberry sollte nun der Befehl sudo i2cdetect -y 1 eingegeben werden. Das Messgerät sollte kurt zucken.

    Du kannst noch testweise von Pin5 auf Pin3 wechseln und wieder den Befehl starten.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Ich hab ein Breadboard und Steckkabel mit den Zangen das sollte also kein Problem werden.

    Werde das am Abend ausprobieren und dir berichten. Besten Dank schon mal :)

  • Hallo Rjs15,

    hier habe ich mal recht ausführlich beschrieben, wie man sich einem I2C-Gerät annähern kann.

    Die ersten Schritte (Schaltung, Einrichten etc.) sollten bei Deinem Device ähnlich sein, so dass Du prüfen kannst, ob Du alles richtig gemacht hast.

    Die Schritte, die sich mit dem direkten Auslesen und Setzen von Registern des I2C-Gerätes beschäftigen, musst Du nach Lektüre des Datenblattes Deines I2C-Gerätes natürlich anpassen.

    Nach Deinen Schilderungen tippe ich darauf, dass irgendwo ein Kontakt nicht mehr funktioniert, ein Kabel gebrochen ist oder an den Pins mal eine zu große Spannung (auch unbeabsichtigt) angelegt wurde. Vielleicht ist auch irgendwo Feuchtigkeit kondensiert und hat da irgendwelche anderen Stromflüsse ermöglicht.

    Klarheit schaffen nur Deine Rückmeldungen auf die üblichen Linux-Kommandos zum Einrichten und Abfragen des I2C-Ports.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Also das ganze sieht wie folgt aus..

    Rote Messspitze /--> Schwarze Messspitze

    Pin 3 SDA /--> Pin 6 GND = 0V

    Pin 5 SCL /--> Pin 6 GND = 3.3V

    Pin 5 SCL /--> Pin 1 3.3V = 0V / Keine Veränderung durch den Befehl

    Pin 3 SDA /--> Pin 1 3.3V = -3.3V / Keine Veränderung durch den Befehl

    Wieso habe ich da eine Minus Spannung ?

    Ich muss auch anmerken das ich 3.3V Spannung auf SDA/-->GND habe solange ich nicht über Remotedesktop auf den Pi zugreife.

    Sobald ich auf ihn über Remotedesktop zugreife verschwindet die Spannung.

    Das verwirrt mich ziemlich .. Wie kommt das ? Oder ist das normal ?

    Einmal editiert, zuletzt von Rjs15 (3. März 2022 um 17:47)

  • Moin Rjs15,

    mit Remote meinst du VNC?

    Einen SSH-Zugang hast du dir nicht geschaffen?

    Zur Erklärung: An den Pins 3 und 5 sollten, wenn I2C aktiviert, 3,3V liegen. Grund es sind Pullup-Widerstände geschaltet.

    Ach, was mir gerade einfällt, hast du automatisch startende Programme, die auf I2c zugreifen.

    Wenn ja, stoppen.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Nein ich meine Remotedesktop von Windows..

    Habe ich aber von beginn an so gemacht. Ich habe das natürlich noch nie gemessen aber es hatte vorhin alles funktioniert auch wenn ich auf den pi zugegriffen habe.

    Kein SSH Zugang

    Pin 3 hat aber in dem Fall keine Spannung mehr wen ich auf den Pi zugreife.

    Wie zum Beispiel ? Ich habe eigentlich meine Scripts aus dem Autostart entfernt aber ich schaue noch einmal nach.

  • Moin Rjf15,

    wenn du die Programmnamen kennst kannst du mit den Aufruf von ps aux | grep programmname abfragen.

    Beispiel:

    Code
    ps aux | grep vnc
    root       514  0.0  0.2   8648  2128 ?        Ss   17:36   0:00 /usr/bin/vncserver-x11-serviced -fg
    root       521  0.0  2.0  35532 19260 ?        S    17:36   0:00 /usr/bin/vncserver-x11-core -service
    root       576  0.0  0.4  11612  4492 ?        S    17:36   0:00 /usr/bin/vncagent service 15
    pi         910  0.0  1.3  33508 12992 ?        S    17:37   0:00 /usr/bin/vncserverui service 16
    pi         940  0.0  1.6  33732 15872 ?        S    17:37   0:00 /usr/bin/vncserverui -statusicon 5
    pi        1309  0.0  0.0   7472   584 pts/0    S+   18:01   0:00 grep --color=auto vnc

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • EDIT: Starten keine Scripte von mir oder so.

    An Programmen läuft..

    Node-Red

    MYSQL

    XRDP (Remotedesktop Service)

    Appache

    und der gleichen nichts was eigentlich meines erachtens Einfluss hätte aber anbei die ganzen Tasks..

  • Moin Rjs15,

    war auch nur ein Gedanke. Wenn du nicht remote drauf bist, hast du aber auch keine Spannung an dem Pin, oder?

    Schalte mal, zur Sicherheit, einmal die I2C-Funktion aus und wieder ein. Dann mess nochmal.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Moin Rjs15,

    war auch nur ein Gedanke. Wenn du nicht remote drauf bist, hast du aber auch keine Spannung an dem Pin, oder?

    Schalte mal, zur Sicherheit, einmal die I2C-Funktion aus und wieder ein. Dann mess nochmal.

    73 de Bernd

    Doch dann habe ich Spannugn auf SDA

    Also folgendes auch sehr speziell finde ich

    Raspi start ohne Remotezugriff

    SDA 3.3V -> GND

    SCL 3.3V -> GND

    Raspi beim Remotezugriff

    SDA 0V -> GND

    SCL 3.3V -> GND

    Raspi bei aktivem Remotezugriff und IC2 auschalten

    SDA 3.3V -> GND

    SCL 3.3V -> GND

    Raspi bei aktivem Remotezugriff und IC2 einschalten

    SDA 0V -> GND

    SCL 3.3V -> GND

  • Moin Rjs15,

    irgendwas greift auf den Pin2 zu.

    Hast du noch eine SD-Karte und kannst darauf ein nacktes Raspberry Pi OS mit Desktop rauf packen?

    Sonst kommen wir nicht weiter.

    Wie erstellst du eine Karte? Mit dem Imager?

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Muss mal schauen ob ich noch eine Karte rumliegen habe.

    Ganz ehrlich war auch Plug n Play ^^ Kam vorinstalliert.

    Muss mal schauen wie man das macht wird nicht so schwierig sein denke ich.

    Muss ich aber morgen machen aber danke für deine Hilfe bis jetzt :)

    Kannst du dir vielleicht mal meine config und modules anschauen vielleicht ist auch da etwas falsch durch das ausprobieren von diversen Beiträgen.

    (Habe ich oben schonmal gepostet)

    Danke und schönen Abend

  • Moin Rjs15,

    was ich noch nicht weiß. Welchen Raspberry hast du?

    Welche Version des Betriebssystem?

    Version gibt es mit: lsb_release -a

    Wenn der Raspberry nicht bekannt ist, dann pinout

    Um ein Image auf eine Karte zu packen, gibt es auf der Seite raspberrypi.org einen Imager. Der macht alles für dich.

    Bei Fragen, fragen....

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!