Falscher GPIO Zugriff?

Hallo,

ich versuche auf meinem Raspi 4 B die GPIO-ports zu setzen,
Nun, in der Console klappt es nur bei einem GPIO-Port, Port 14, den ich witzigerweise als Port 15 ansprechen muss.
Alle anderen Ports kann nicht über die Console ein/ausschalten.
Ich dachte schon, der Raspi ist defekt, dann aber habe ich auf eine weitere SD-Karte das Original Raspion OS installiert - dort klappt es mit allen GPIO Ports, unter der korrekten Adresse.
Dann habe ich mir eine Raspi Controll App auf dem Handy installiert - alles Ports ansprechbar, mit der korrekten Adresse.
Dachte mir hey, super.
Also wieder mit Repetier gebootet, Zugriff über die Smartphone App klappt weiterhin mit den korrekten Ports, aber von der Konsole nur noch auf Port 14 - den ich wieder als Port 15 ansprechen muss.

Irgendwas stimmt da also nicht, ich vermute das die RepetierSW irgendwie einen anderen Rapsi erkennt als ich verwende und da irgendwas verdreht.

Der Fehler tritt auch auf, aber nur unter Repetier, wenn ich es über Scipte mache...

Ideen wie ich das fixen kann? Ich möchte 8 Relays nutzen und in die Oberfläche einbinden (verschiedene Licht und Lüfterzenarien wollen bedient werden).
Btw - die Scripte die ich in dieser commands eingefügt habe finde ich auch nirgendwo in der Weboberfläche - aber das ist zweitranging solange ich über Repetier nicht die korrekten GPIO-Ports ansprechen kann ;/

Grüße
Holger

Comments

  • Es gibt 2 möglichkeiten Skripte einzubauen. Die einen erscheinen in der Oberfläche als Buttons und die anderen sind für @execute. Ich vermute du hast nur letztere Variante in extcommands.xml eingetragen.

    Pins 14 und 15 sind die Serielle Schnittstelle. Da einige darüber den Drucker direkt anbinden ist der bei uns standardmaßig als Serielle bereits belegt und steht für GPIO nicht zur verfügung.

    Aktiviert wird das in /boot/config.txt
    enable_uart=1
    dtoverlay=pi3-miniuart-bt

    ist dafür verantwortlich. Auskommentieren und rebooten dann sollte es gehen.
  • Port 14+15 will ich ja auch gar nicht benutzen - aber wie gesagt ich kann nur Port 14 ansprechen (und muss en auch noch als Port 15 adressieren) sobald ich den Raspi mit Repetier boote - und sonst keine Ports ;/
    ich kann die anderen Ports nur dann ansprechen wenn ich den Raspi mit dem originalem OS boote, oder halt immer eine extra App nutze - was ich als nicht sinnvoll erachte. Ich möchte es mit Repetier als Button - aber dafür muss ich ja erstmal an die Ports kommen ;/
  • edited February 2021
    PS: Ich habe wirklich alle Ports probiert, sobald ich mit Repetier boote (mit dem Image von hier) reagiert nur Port 14 und KEIN anderer Port, der Port 14 reagiert dabei auch noch auf gpio write 15 1 (bzw 0)..
    unter Raspian OS lassen sich alle Ports unter der korrekten Adresse ein-ausschalten (ja auch Port 14, den will ich aber garnicht).
    Benutzen möchte ich die Ports 5,6,16,17,23,24,26,27 - die müssten frei sein so wie ich das sehe. Aber unter Repetier lassen sich diese nicht ein- oder ausschalten, und ja, gpio mode x out habe ich für jeden Port gesetzt., unter Raspian OS funktioniert es auch, aber nicht unter Repetier (ich hab die pro version wegen der cam unterstützung).
  • Merkwürdig. Das letzte mal als ich es mit unseren lua scripten versucht hatte ging es problemlos. Bin jetzt grad dabei gpio support im Server zu verbessern so das es auch server Befehle gibt um outputs zu setzen und für Filamentsensor will ich auch inputs nutzen. Vielleicht seh ich dann ja noch was. Aber prinzipiell hab ich abgesehen von der seriellen Schnittstelle nichts bewust gemacht. Wenn da noch ein Display Treiber für Framebuffer ist könnte der eventuell ein paar pins nutzen (inspbesondere spi), aber ich hab keinen installiert. Was ich aber gelesen hab ist das es 2 Nummernschemas gibt - pin Nummer oder GPIO nummer. Ist das explizit eingestellt ein deinem Program?
  • Was gibt gpio all denn zurück. Hier mal was ich sehe:

    gpio readall
     +-----+-----+---------+------+---+---Pi 4B--+---+------+---------+-----+-----+
     | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
     +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
     |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
     |   2 |   8 |   SDA.1 |   IN | 1 |  3 || 4  |   |      | 5v      |     |     |
     |   3 |   9 |   SCL.1 |   IN | 1 |  5 || 6  |   |      | 0v      |     |     |
     |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |
     |     |     |      0v |      |   |  9 || 10 | 1 | ALT0 | RxD     | 16  | 15  |
     |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |
     |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
     |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |
     |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |
     |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |
     |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |
     |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
     |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
     |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
     |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
     |   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
     |  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |
     |  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
     |  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |
     |     |     |      0v |      |   | 39 || 40 | 0 | IN   | GPIO.29 | 29  | 21  |
     +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
     | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
     +-----+-----+---------+------+---+---Pi 4B--+---+------+---------+-----+-----+
    Zeigt auch die unterschiedlichen nummerierungen.
    Frage ist auch welcher Kernel ist in gebrauch. Mit 4.8 wurde das alte system veraltet
    https://www.beyondlogic.org/an-introduction-to-chardev-gpio-and-libgpiod-on-the-raspberry-pi/


  • > nur bei einem GPIO-Port, Port 14, den ich witzigerweise als Port 15 ansprechen muss.
    In der liste oben siehst du das BCM pin 14 wPi port 15 ist. GPIO nutzt bei read/write wPi nummerierung außer wenn -g auf BCM nummerierung gewechselt wird. Möglicherweise liegt es daran.
  • Auch wichtig damit ein pin als output arbeiten kann muss er erst so konfiguriert werden:
    gpio mode 25 output
    gpio write 25 1
    danach klappte es, nur write klappt nicht. Hier wPi nummerierung.
  • edited February 2021
    ich habe exakt die gleiche Ausgabe (nur das bei mir fast alle auf OUT stehen) - das hat mich auf die Idee gebracht das in der App und unter Raspian OS die gpio-ports einfach anders numeriert sind als unter dem mit Repetier.
    Warum auch immer, in der App spreche ich nun zB GPIO 17 an (wie unter dem Raspian os) und unter dem in Repetier integriertem unter gpio 0. So scheint es zu funktionieren.
    Das ist nun etwas weird - muss ich nur noch rausbekommen wie ich die Befehle als Button auf das Dashboard der Webseite bekomme, will ja nicht immer zum Touchscreen (wo es auch keine Buttons gibt..) am Drucker rennen wo der Raspel auch steht.

    Vielen Dank, das war der entscheidende Tipp!
  • Wie gesagt arbeite grade an einer Erweiterung so das man gpio im server nativ nutzen kann. Einfach script oder gcode starten wenn ein Knopf gedrückt wird oder aber auch Befehle um ausgänge zu schalten die dann im gcode stehen können. Damit sind dann die üblichen verdächtigen operationen Filamentsensor und Licht schon mal abgedeckt und brauchen keine Skripte mehr.
  • bekomme es nur trotzdem mit den Buttons nicht hin, auch der shutdown bzw reboot Button (der wohl immer da sein soll?) ist nicht zu finden - weder auf der Webseite, noch auf dem Display. und mit 1920*1080 sollte es groß genug sein, zumal es fast leer ist..
  • Unter server Befehle sollten die alle sein wenn die extcommands.xml existiert und keinen Syntaxfehler hat. Vermute daher da ist ein syntaxfehler und sie wird dann komplett ignoriert. Sieh mal in server.log da müsste die Fehlermeldung stehen. Oder jag sie durch einen xml validator im web. Ein string nicht geschlossen und schon geht nichts mehr.
  • edited February 2021
    aaaaaaaaaaaaaaaaah, ich werd noch kirre... da war in einer Zeile _sh und nicht .sh - das soll einem auffallen^^
    Danke, nun sind sie in der Befehlsliste und es funktioniert auch (y)
    Muss ich nur noch eine Anleitung für dumme finden wie ich da Buttons rausmache im Dashboard und auf dem Touchscreen, im Forum habe ich noch nichts verständliches gefunden leider.
  • Steht im manual. Advanced setup denke ich wars. Kannst sie sogar zu einem Drucker zuordnen dann erscheinen sie stadt dessen im Druckermenu.
Sign In or Register to comment.