Touchscreen für Octoprint (Raspberry Pi)

In unseren Tutorials zum Raspberry Pi und Octoprint haben wir euch gezeigt wie ihr euren Drucker komfortabel ins Netzwerk bekommt und überwachen könnt. Nun setzen wir dem Ganzen die Krone auf, mit einem Touchscreen!

 

 

 

 

 

 

 

 

 

 

 

In den Tutorials hier: Raspberry + Octoprint + Webcam und hier Raspberry Pi Zero W und OctoPrint 0.14 haben wir euch bereits gezeigt wie ihr ganz komfortabel über das Netzwerk auf den Drucker zugreifen könnt.

Natürlich war das aber noch nicht alles. Denn es ist zusätzlich möglich, an den Raspberry Pi einen Touchscreen anzuschliessen um den Drucker damit zu steuern.

Ein anderes Display (das originale Druckerdisplay) ist somit vollkommen hinfällig!

 

Da der originale Raspberry Touchscreen zu klein ist, haben wir uns für einen 7″ Touchscreen mit USB/HDMI entschieden, erhältlich hier bei banggood.com:

Durch den Einsatz von HDMI und USB (USB dient hier als Stromquelle und Eingabegerätverbindung) ist es ein ziemliches Plug/Play.

bei banggood.com kaufen!

 

Vorraussetzungen:

– Display-Kit, siehe oben

– Gehäuse mit Ständer drucken, für eine aufrechte Position: https://www.thingiverse.com/thing:2500287

– HDMI Kabel und USB Kabel mit Micro B Stecker (für den Pi Zero ein HDMI Mini Stecker – wir haben das aber noch nicht getestet!)

Bitte tut euch den Gefallen und verwendet nicht die mitgelieferten Kabel, bei uns lief das ganze nie, bis wir nach zig neuen Versuchen die Kabel wechselte und bemerkten, es lag daran. BEIDE!!!

– Raspberry Pi 3  (1er oder 2 Version dürften wohl auch gehen, aber Aufgrund der Leistung haben wir den Pi 3 verwendet) mit Octoprint installiert.

Zum Raspberry Pi und Octoprint Tutorial: Raspberry + Octoprint + Webcam

 

 

Umsetzung:

Man nehme das aktuelle Octoprint Image und speichert es auf die SD Karte, wie hier beschrieben: Raspberry Pi Zero W und OctoPrint 0.14 (selbe Vorgehensweise bei einem normalen Raspberry Pi 3 oder niedriger)

Wenn Ihr jetzt auf die SD Karte zugreift, bevor ihr die in eurem Raspberry reinlegt, findet ihr eine config.txt. Diese öffnet ihr nun und Ändert folgendes:

Unter: „# uncomment to force a specific HDMI mode (here we are forcing 800×480!)“
löscht ihr die Angaben und tippt folgende rein:

 max_usb_current=1
 hdmi_group=2
 hdmi_mode=1
 hdmi_mode=87
 hdmi_cvt 1024 600 60 6 0 0 0

Eventuell noch Netzwerkeinstellungen tätigen, abspeichern und die Karte kommt nun in den Raspberry Pi rein.
Wenn das Display schon angesteckt ist, dürft ihr jetzt schon was sehen.

Die Installation wie üblich abarbeiten, so dass Octoprint läuft.
Im Pluginmanager bei den Einstellungen, unter MEHR, sucht Ihr nach dem TouchID Plugin und installiert es. Ein Neustart wird verlangt und auch durchgeführt.

Danach öffnet ihr eine Kommandozeile (z.B. Putty bei Windows) mit SSH und loggt euch ganz normal ein.
Nun wird alles auf den aktuellen Stand gebracht, indem ihr folgende Befehle eingebt:

sudo apt-get update
sudo apt-get upgrade

danach installiert ihr folgende Pakete, mit diesem Befehl:

sudo apt-get install --no-install-recommends xinit xinput xserver-xorg xserver-xorg-video-fbdev x11-xserver-utils matchbox unclutter chromium-browser

Den Touchscreen unter X11 registrieren:

sudo nano /usr/share/X11/xorg.conf.d/99-fbdev.conf

 

Für die HDMI und offizielle Touchscreen Version, gibt folgende Zeilen ein:

Section "Device"  Identifier "touchscreen"  Driver "fbdev"  Option "fbdev" "/dev/fb0"EndSection

 

Für die anderen Varianten:

Section "Device"  Identifier "touchscreen"  Driver "fbdev"  Option "fbdev" "/dev/fb1"EndSection

Speichern und Ende (strg+o,  Enter  und strg-x)

nun könnt ihr per

ls /dev | grep fb

Befehl überprüfen, ob es passt, nun müsste euer eingetragenes fb0 oder fb1 dastehen.

Sicherheitshalber gebt Ihr folgendes ein (bei uns kam eine Fehlermeldung, läuft auch so, aber sicher ist sicher und Ihr macht es mal)

sudo sed -i 's/allowed_users=console/allowed_users=anybody/' /etc/X11/Xwrapper.config

TouchID Autostart

git clone https://github.com/BillyBlaze/OctoPrint-TouchUI-autostart.git ~/TouchUI-autostart/

Dateien Kopieren und im Autostart registrieren:

sudo cp ~/TouchUI-autostart/touchui.init /etc/init.d/touchui
sudo chmod +x /etc/init.d/touchui
sudo cp ~/TouchUI-autostart/touchui.default /etc/default/touchui
sudo update-rc.d touchui defaults

Testen ob der Chromium Browser läuft:

chromium-browser

Dann sollte folgendes bzw. ähnliches angezeigt werden: /usr/bin/chromium-browser: line 138: lsb_release: command not found /usr/bin/chromium-browser: line 139: lsb_release: command not foundbootstrap_helper: /usr/lib/chromium-browser/nacl_helper: Cannot open ELF file!  errno=2[1:1:0605/122948.230046:ERROR:nacl_fork_delegate_linux.cc(315)] Bad NaCl helper startup ack (0 bytes)[3904:3904:0605/122948.236249:ERROR:browser_main_loop.cc(495)] Failed to put Xlib into threaded mode.[3904:3904:0605/122948.244840:ERROR:browser_main_loop.cc(272)] Gtk: cannot open display:

Es ist alles OK!

Falls nicht, kommt folgende Meldung:

/usr/lib/chromium-browser/chromium-browser: symbol lookup error: /usr/lib/chromium-browser/chromium-browser: undefined symbol: mmal_vc_init_fd

Dann müsst ihr den Kernel aktualisieren, Kurzanleitung steht unten.

Jetzt nur noch:

sudo reboot 

und er startet direkt ins TouchId und der Touchscreen funktioniert.
Das Hochfahren dauert jetzt ingesamt länger als ohne Touch, da ja der XServer gestartet wird, Octoprint hochfahren muss und sich alles verbindet.

 

*Kernel Update:

sudo apt-get upgrade
 sudo apt-get install rpi-updatesudo rpi-update
 sudo reboot

Wenn ihr jetzt die einzelnen Eingabezeilen per Copy&Paste nutzt, habt ihr die ganze Installation in kürzester Zeit erledigt, das längste ist die interne Aktualisierung am Anfang.

Vielen Dank an Alexander Gretz für dieses Tutorial!

 

Startseite Foren Touchscreen für Octoprint (Raspberry Pi)

Dieses Thema enthält 12 Antworten und 6 Teilnehmer. Es wurde zuletzt aktualisiert von  Silvio vor 5 Tagen, 10 Stunden.

Login Registrieren
  • Autor
    Beiträge
  • #2457 Antwort

    t0bse
    Keymaster

    In unseren Tutorials zum Raspberry Pi und Octoprint haben wir euch gezeigt wie ihr euren Drucker komfortabel ins Netzwerk bekommt und überwachen könnt. Nun setzen wir dem Ganzen die Krone auf, mit einem Touchscreen! In den Tutorials hier: Raspberry + Octoprint + Webcam und hier Raspberry Pi Zero W u…
    [zum Artikel: Touchscreen für Octoprint (Raspberry Pi)]………

  • #2460 Antwort

    der_be89
    Teilnehmer

    Klingt ja gut, aber was stell Ihr darauf dar? Könnt Ihr noch ein Paar UI-Fotos oder ein Video ergänzen?

    • #2471 Antwort

      t0bse
      Keymaster

      klar gerne, ich habe ein video dazugepackt 🙂

    • #2488 Antwort

      der_be89
      Teilnehmer

      Danke! Sieht wirklich gut aus. 🙂

       

      Geht das Display irgendwann schlafen oder muss man den Pi herunterfahren?

  • #2489 Antwort

    Bennji
    Teilnehmer

    Grüß euch!!

    Tolle Anleitung nur sind leider fehler endhalten und zwar in der zeile:

    Dateien Kopieren und im Autostart registrieren müsste so aussehen

    sudo cp ~/TouchUI-autostart/touchui.init /etc/init.d/touchui
    sudo chmod +x /etc/init.d/touchui
    sudo cp ~/TouchUI-autostart/touchui.default /etc/default/touchui
    sudo update-rc.d touchui defaults

     

    Habs dan über diese Anleitung gemacht: https://github.com/BillyBlaze/OctoPrint-TouchUI/wiki/Setup

    Und ja der Display geht nach einiger Zeit AUS

    Großes lob an euch toller Blog

     

     

     

    • #2494 Antwort

      t0bse
      Keymaster

      ist geändert, danke dir 🙂

  • #2708 Antwort

    Rissen01
    Teilnehmer

    Danke für die Anleitung 😉

    Ich habe sie nach bestem Gewissen befolgt, allerdings wird bei mir zwar alles richtig Angezeigt aber das Touchscreen (das von banggood.com) nimmt keine Touchbefehle an. Wenn ich meine Maus anschließe kann ich damit im Menü navigieren. Das HDMI- und USB- Kabel habe ich bereits ausgetauscht. Muss das evtl. ein besonders HDMI Kabel sein damit diese Signale übermittelt werden können?    … oder an welcher stelle könnte ich etwas falsch gemacht haben damit es zu diesem Fehler kommen kann?

    Ich würde mich sehr über Hilfe freuen.

    • #2729 Antwort

      Alexander G.

      Hallo Rissen,
      vielen Dank für dein Kommentar.
      Zur “Übersicht”: das HDMI Kabel überträgt rein das Displaysigna.
      Das USB Kabel überträgt den Betriebsstrom fürs Backlight und die Touchscreen Signale.

      Bei mir ging anfänglich das Touchscreen auch nicht.
      Nachdem ich ein sudo apt-get update  +  sudo apt-get upgrade
      Durchgeführt habe, ging es auf Anhieb.
      Da brauchen die Treiber wohl ein Update.

      Hast du mal ein lusb gemacht?
      Da müsste das Touchscreen ja angezeigt werden.
      Falls nicht- Treiber Problem oder USB Kabel
      Anfänglich hab ich die Installation auch paar mal Wiederholen müssen, weil
      ich jedes mal irgend ein Schritt vergessen hab… nicht verzweifeln!

  • #2727 Antwort

    Lumpi

    Danke für das Tutorial. Ich habe das Projekt mit einem 3,5″ Display von TonTec verwirklicht, welches nicht per HDMI sondern per GPIO angeschlossen ist.  Es lässt sich alles auf dem kleinen Display gut bedienen.

    Bei der Installation habe ich erst den Fehler gemacht und mir per “Sudo su”  Adminrechte geholt und TouchUI nach Anleitung in den Autostart gepackt. Wodurch die TouchUI Oberfläche beim Start von OctoPi nicht mit gestaltet wurde, da diese ja über den Benutzer Pi läuft.

  • #2962 Antwort

    Patro

    Hallo zusammen,

     

    Habe heute auch meinen Pi mit einem 3.5 zoll Display (GPIO ) versehen.  Ich musste ihn Kalibrieren, habe es wie hier beschreiben gemacht https://github.com/BillyBlaze/OctoPrint-TouchUI/wiki/Setup:-Troubleshooting#calibration

    nur leider ist immer meine Y Achse vertauscht egal ob ich, bedeutet ich drücke oben und screen erkennt es unten

    Option “InvertY” “true”

    Option “InvertY” “0”

    oder

    Option “InvertY” “1”

    eingebe und mit der Eingabe Matrix ….. das check ich einfach nicht

     

    habe mein Display um 270 gedreht

    Section “InputClass”
    Identifier “calibration”
    MatchProduct “ADS7846 Touchscreen”
    Option “MinX” “3379”
    Option “MaxX” “62634”
    Option “MinY” “62190”
    Option “MaxY” “2935”
    Option “SwapXY” “0” # unless it was already set to 1
    Option “InvertX” “0” # unless it was already set
    Option “InvertY” “true” # unless it was already set

    EndSection

    evtl kann mir einer helfen

    • #2963 Antwort

      Patro

      konnte jetzt dank der Matrix mein Problem doch lösen

      xinput set-prop 6 “Coordinate Transformation Matrix” 1.09588 0 -0.0565 0 -1.11 1.057 0 0 1

      warum aber mit /etc/X11/xorg.conf.d/99-calibration.conf nichts ging ist mir immer noch ein Rätsel

  • #3116 Antwort

    Peed
    Teilnehmer

    Super Anleitung.. habe einiges Probiert, nur das ist endlich mal etwas das klappt.. Nicht perfekt aber es klappt.

    Mein Display aus der Bucht hab ich nach dem tut eingebunden https://www.youtube.com/watch?v=pAS5lkdDNMo&list=PLq_vVSeT13FMbK7BFi1vsBFYQIgNDB2Zq

    Probleme hab ich nun nur mit der Webcam… auf der Weboberfläche am Pc klappt die, jedoch nicht auf dem Touchscreen.. jemand n plan?

    • #3217 Antwort

      Silvio

      Das WebCam-Problem kann ich bestätigen.
      Am PC klappt es mit diversen Browsern einwandfrei.

      Am Display komm leider die medlung “Webcamstream nicht geladen”
      Muss hier noch etwas zusätzlich konfiguriert werden ?

      Bin für jeden Tip sehr dankbar.

       

Login Registrieren
Antwort auf: Touchscreen für Octoprint (Raspberry Pi)
Deine Information: