Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint

p.kaczmarek2 11 Apr 2020 10:35 5424 18
Automation24
  • Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Witajcie moi drodzy
    Opiszę tutaj szczegółowo jak skonfigurować Raspberry PI wraz z OctoPi do obsługi drukarki 3D przez sieć WiFi. Jest to bardzo wygodne rozwiązanie gdyż normalnie gdy chcemy coś wydrukować to musimy nasz plik modelu (a dokładniej: kod GCode dla drukarki) ręcznie wrzucać na kartę microSD i przekładać do drukarki. A dzięki pokazanemu tu rozwiązaniu można to robić w pełni przez sieć (przez przeglądarkę internetową i lokalnie postawioną stronę WWW) za pomocą kilku kliknięć.
    Pokazany tu sposób również pozwala na podłączenie kamerki sieciowej do podglądu wydruku, ale ja podłączanie jej pominę i skupię się na samym wydruku przez sieć.
    Opisany tu sposób zadziała na różnych Raspberry i drukarkach 3D, ale ja to zrobię na przykładzie Raspberry Pi Zero W i drukarki Ender 3 Pro.

    Czym jest OctoPi i OctoPrint?
    Na początek przydałoby się określić dokładnie co jest czym. Co prawda obie te nazwy mogą często występować wręcz naprzemiennie, ale tak naprawdę każda oznacza nieco co innego.
    OctoPrint (bieżąca wersja to 1.4.0) to serwer/interfejs WWW dla drukarek 3D. Pozwala sterować drukarką przez przeglądarkę internetową, wysyłać jej pliki gcode przez formularz, itp.
    OctoPi (bieżąca wersja to 0.17.0) to gotowy obraz systemu skonfigurowanego z OctoPrint dla Raspberry PI.

    Krótki spis treści co tutaj opiszę
    Tutaj opiszę:
    - jak przygotować kartę microSD z systemem OctoPI dla Raspberry (wraz z wgraną konfiguracją naszej sieci by Raspberry się samo z nią połączyło)
    - jak podłączyć Raspberry do drukarki 3D
    - jak zdobyć adres IP naszego Raspberry (jeśli normalny sposób połączenia się z nim poprzez http://octopi.local nie działa)
    - jak skonfigurować OctoPrint do współpracy z drukarką (ustawienia Serial Port)
    - jak używać OctoPi by dokonać wydruku przez sieć
    Nie opiszę tutaj jak udostępnić naszą drukarkę w całej sieci Internet, gdyż ja nie miałem po prostu takiej potrzeby (starczyło mi udostępnienie na domowym WiFi). To jest możliwe, ale będziecie musieli to zrobić we własnym zakresie.

    Jakie Raspberry użyć?
    OctoPi jest kompatybilne z wieloma wersjami Raspberry PI, ale ostateczny wybór 'Malinki' zależy od tego czy chcemy tylko wysyłać .gcode (pliki wydruków) przez sieć czy też obserwować postępy wydruku przez kamerkę.
    Jeśli chcemy używać kamerki, to powinniśmy zdecydowanie wybrać mocniejszy mikrokomputer, Raspberry 3 lub 4. Wysyłanie obrazu kamerki wymaga przepustowości i przy słabszej 'Malince' mogłoby negatywnie wpłynąć na jakość wydruku.
    Jeśli chcemy tylko wysyłać samo GCode przez sieć i nie potrzebujemy kamerki, to Raspberry PI Zero W powinno też dać radę (w moim przypadku dało radę).
    Ja wybrałem Raspberry PI Zero W i na jego przykładzie opiszę tutaj wszystkie kroki, lecz dla innych Raspberry będą one pewnie bardzo podobne.

    Co będzie nam potrzebne?
    Przede wszystkim - drukarka Ender 3 PRO lub podobna. Pełna lista drukarek kompatybilnych z OctoPi jest tutaj:
    https://github.com/OctoPrint/OctoPrint/wiki/Supported-Printers
    Jak widać bardzo dużo drukarek jest wspieranych więc są duże szanse, że nasza też będzie.
    Raspberry Pi Zero W (to dla wersji bez kamerki, dla wersji z kamerką niezbędna będzie mocniejsza wersja Raspberry):
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Zasilacz 5V dla Raspberry (wymagana wydajność prądowa zależy od tego jakie Raspberry użyjemy, polecam to sprawdzić w sieci):
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Karta microSD (minimum 8GB) dla Raspberry (ale jakby się uprzeć to można nawet użyć tej co jest z Enderem 3 w zestawie):
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Przewód do zasilania Raspberry, czyli micro-USB:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Pierwsza część podłączenia Raspberry do drukarki, czyli przejściówka micro-USB do USB żeńskiego złącza (przewód USB OTG):
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Druga część podłączenia Raspberry do drukarki, czyli zwykły przewód mini-USB:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Opcjonalnie - przejściówka miniHDMI na HDMI. Przyda się tylko jeśli chcemy podłączyć monitor/telewizor do Raspberry by podejrzeć co się na nim dzieje. Nie będzie to dla nas konieczne gdyż konfiguracje zrealizujemy najpierw na samej karcie microSD a potem już przez sieć:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint

    Przygotowujemy kartę microSD dla Raspberry
    OctoPi pobieramy stąd:
    https://octoprint.org/download/
    Na stronie znajduje się ostrzeżenie, że OctoPi może działać wolno na Raspberry PI Zero W w połączeniu np. z streamem video z wydruku, ale ja streamu video dodawać nie zamierzam więc nie ma problemu.
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Wersja którą użyłem (i aktualna na czas pisania artykułu) to 0.17.0. Zajmuje ona 600MB i ściągnęła mi się w kilka minut:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Pobieramy też narzędzie Etcher, które będzie nam służyć do nagrania systemu operacyjnego OctoPi na kartę microSD:
    https://www.balena.io/etcher/
    Ja wybrałem wersję Portable, by nie musieć nic instalować:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Szykujemy naszą kartę microSD i podłączamy ją do komputera poprzez odpowiedni adapter (no, chyba że mamy slot na mikro SD, wtedy bez). Ja użyłem adaptera który był w zestawie mojej drukarki Ender 3 Pro:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Nasz komputer powinien wykryć to, że podłączyliśmy kartę microSD. Teraz możemy uruchomić program Etcher. Jego interfejs jest naprawdę minimalistyczny i prosty:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Klikamy 'Select Image' by wybrać ściągnięty wcześniej obraz systemu operacyjnego:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Następnie klikamy 'Select drive' by wybrać naszą kartę microSD. Program Etcher pokazuje nam też wtedy dysku twarde podłączone na USB do komputera, więc musimy być ostrożni. Wybranie nie tego nośnika co trzeba może skutkować utratą danych!
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    I wreszcie - klikamy Flash.
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Możliwe, że wtedy system Windows zapyta nas o uprawnienia lub pozwolenie na operacje. Oczywiście mu go udzielamy.
    Czekamy na zakończenie operacji:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Całość trwała w moim przypadku jakieś 10 minut. Po wgraniu dostałem powiadomienie od Windows:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    I sam Etcher pokazał, że skończył pracę:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Ale to nie wszystko - nie wyjmujemy jeszcze karty.
    Po wgraniu systemu otwieramy 'Mój Komputer' a potem kartę microSD by zobaczyć dopiero co nagrane pliki systemu:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Znajdujemy tam plik tekstowy octopi-wpa-supplicant.txt. W nim znajduje się konfiguracja WiFi i tam musimy podać informacje o naszej sieci bezprzewodowej. Bez tego Raspberry nie będzie wiedziało z czym się połączyć.
    Otwieramy go w jakimś normalnym edytorze tekstu (Notepad++, itp, nie w Wordpadzie czy tam w Wordzie):
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    I w nim musimy podać SSID (nazwę) i hasło naszej sieci. Poniżej cała treść pliku, odpowiednie pola uzupełniamy. Tak, WPA/WPA2 jest wspierane.
    Quote:

    # Use this file to configure your wifi connection(s).
    #
    # Just uncomment the lines prefixed with a single # of the configuration
    # that matches your wifi setup and fill in SSID and passphrase.
    #
    # You can configure multiple wifi connections by adding more 'network'
    # blocks.
    #
    # See https://linux.die.net/man/5/wpa_supplicant.conf
    # (or 'man -s 5 wpa_supplicant.conf') for advanced options going beyond
    # the examples provided below (e.g. various WPA Enterprise setups).
    #
    # !!!!! HEADS-UP WINDOWS USERS !!!!!
    #
    # Do not use Wordpad for editing this file, it will mangle it and your
    # configuration won't work. Use a proper text editor instead.
    # Recommended: Notepad++, VSCode, Atom, SublimeText.
    #
    # !!!!! HEADS-UP MACOSX USERS !!!!!
    #
    # If you use Textedit to edit this file make sure to use "plain text format"
    # and "disable smart quotes" in "Textedit > Preferences", otherwise Textedit
    # will use none-compatible characters and your network configuration won't
    # work!

    ## WPA/WPA2 secured
    network={
    ssid="MOJE_SSID"
    psk="MOJE_HASŁO"
    scan_ssid=1
    }

    ## Open/unsecured
    #network={
    # ssid="put SSID here"
    # key_mgmt=NONE
    #}

    ## WEP "secured"
    ##
    ## WEP can be cracked within minutes. If your network is still relying on this
    ## encryption scheme you should seriously consider to update your network ASAP.
    #network={
    # ssid="put SSID here"
    # key_mgmt=NONE
    # wep_key0="put password here"
    # wep_tx_keyidx=0
    #}

    # Uncomment the country your Pi is in to activate Wifi in RaspberryPi 3 B+ and above
    # For full list see: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
    country=PL
    #country=GB # United Kingdom
    #country=CA # Canada
    #country=DE # Germany
    #country=FR # France
    #country=US # United States

    ### You should not have to change the lines below #####################

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1

    Zapisujemy zmiany w pliku, zamykamy go i wyciągamy kartę microSD.
    Teraz pora włożyć ją do Raspberry, ale o tym w następnym akapicie.

    Podłączamy Raspberry do Endera i uruchamiamy
    Teraz możemy już wszystko popodłączać. Kartę microSD wsadzamy delikatnie do slotu. Zasilacz 5V podłączamy do PWR-IN od Raspberry, natomiast przejściówkę USB OTG do złącza podpisanego USB.
    Opcjonalnie możemy podłączyć przejściówkę mini-HDMI na zwykłe HDMI (jeśli chcemy podejrzeć na monitorze jak Raspberry się uruchamia).
    Poniżej wszystkie połączenia na wyraźnym zdjęciu:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Pozostało podłączyć to do zasilania i drukarki 3D i hardware gotowe. Zapalić się powinna wtedy dioda LED znajdująca się na Raspberry. Musimy jeszcze poczekać trochę (do kilku minut) aż system się uruchomi i sam automatycznie połączy ze wskazanym przez nas WiFi.
    Od tego momentu OctoPi powinien być dostępny w sieci lokalnej pod adresem:
    
    http://octopi.local
    

    Ale jeśli ten adres nie działa, to musimy się do niego dostać po samym adresie IP - poniżej opiszę jak ten IP uzyskać.

    Sprawdzamy IP OctoPrint - sposób 1
    Pierwszym sposobem na poznanie adresu IP naszego serwerka OctoPrint jest podłączenie monitora do Raspberry PI. Monitor podłączamy poprzez HDMI. Gdy uruchomimy 'Malinkę' z podłączonym monitorem to zobaczymy na ekranie informacje o bootowaniu systemu a potem też i adres IP przydzielony mu poprzez router.
    Samo pierwsze uruchomienie Raspberry troszkę trwa, system tez wtedy dokonuje dodatkowych operacji, jakiegoś skanowania itp, szczegóły na zdjęciach poniżej:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Dopiero po jakimś czasie na ekranie pojawia się IP (tutaj: 192.168.0.103):
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Ten adres po następnym uruchomieniu może być inny (jest przyznawany przez DHCP routera), więc nie musicie go zapamiętywać.

    Sprawdzamy IP OctoPrint - sposób 2
    Drugim sposobem na poznanie adresu IP naszego serwerka OctoPrint jest użycie skanera adresów IP sieci lokalnej. Adres IP OctoPI będzie się rzucać w oczy ze względu na jego nazwę hostu octopi.local.
    Potrzebny nam będzie jakiś skaner IP - oczywiście do pobrania za darmo. Ja wybrałem Angry IP Scanner stąd:
    https://angryip.org/download/
    Samo użycie skanera IP jest bardzo proste. Po instalacji i uruchomieniu wpisujemy zakres IP jaki chcemy sprawdzić:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    To jaki zakres wpiszemy zależy od tego jakie IP pokrywa nasza sieć lokalna, ja wpisałem od 192.168.0.0 do 192.168.0.255:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Klikamy 'Start' i po chwili widzimy już aktywne IP w sieci:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Gotowe. Tak znaleźliśmy IP naszego Raspberry - to te IP które ma nazwę hosta octopi.local. Dla wygodniejszego odczytu wyników z Angry IP Scanner możemy też kliknąć ikonkę trybiku (ustawienia) i w zakładce 'Display' wybrać tam opcję 'Alive hosts (responding to pings) only'

    Finalizujemy instalację OctoPrint
    Instalacje OctoPrint finalizujemy już przez przeglądarkę WWW z dowolnego urządzenia znajdującego się w tej sieci w której jest nasze Raspberry. Po prostu wpisujemy
    http://octopi.local

    w pasku adresu i po chwili powinna nam załadować się strona konfiguracyjna. Jeśli to nie działa, to musimy wpisać tam po prostu adres IP (dwa sposoby na poznanie adresu IP naszego Raspberry opisałem w poprzednich akapitach).
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Postępujemy wedle instrukcji z ekranu i klikamy 'Next'. Możemy dalej skonfigurować hasło dla OctoPrint, ja je zostawiłem puste, gdyż nie zamierzam udostępniać Raspberry w Internecie a do mojej sieci WiFi mają dostęp tylko domownicy.
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Potwierdzamy naszą decyzję:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Następnie instalator pyta o formalności co do zbierania danych - możemy im odmówić tej przyjemności.
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Dalej instalator pozwala nam skonfigurować sposób sprawdzania czy nasz serwer jest podłączony do Internetu. Ustawienia ze zrzutu ekranu są domyślne i też moim zdaniem odpowiednie dla nas. Adres IP 8.8.8.8 ze zrzutu ekranu to jeden z adresów Google, często używany do takich zastosowań.
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    W kolejnym kroku możemy włączyć lub wyłączyć czarną listę pluginów, służy ona do tego by zablokować wtyczki które mogą mieć niepożądane działanie, zwłaszcza dla początkujących użytkowników. Ja tego nie włączyłem:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Teraz możemy skonfigurować naszą drukarkę. Najpierw ustawiamy jej nazwę.
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Tutaj ustawiamy parametry o naszej drukarce 3D. Warto sprawdzić je w internecie. Dla mojego Ender 3 rozmiar pola roboczego wpisałem jako 220mm na 220mm na 220mm.
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Dalej możemy ustawić również szybkość poruszania się każdej z osi, nie jest to jednak aż takie istotne ponieważ i tak te ustawienia końcowo OctoPi będzie brać nie stąd, lecz z plików GCode.
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Na koniec otrzymujemy informacyjny ekran gdzie możemy kliknąć 'Finish' by sfinalizować konfigurację:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Ale to jeszcze nie wszystko - musimy jeszcze sprawdzić połączenie UART z naszą drukarką, o tym w następnym akapicie.

    Łączymy się z drukarką poprzez OctoPrint
    Już wszystko prawie gotowe. Odświeżamy stronę i naszym oczom powinien ukazać się standardowy ekran OctoPi:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Tutaj chciałoby się kliknąć wielki przycisk 'Connect', by automatycznie połączyć się z naszą drukarką. Niestety w moim przypadku to nie działa. Gdy kliknę 'Connect', to Raspberry przez chwilkę skanuje porty ale nic nie znajduje. Chociaż o dziwo wentylator Endera wtedy się odzywa, tak jakby coś odbierał.
    Zrzut ekranu poniżej pokazuje co się dzieje gdy kliknę 'Connect':
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Jak widać, trwa skan, ale po chwili następuje niepowodzenie wyszukania drukarki ("Error connecting to printer"):
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Zgodnie z powyższym komunikatem więcej informacji jest w zakładce Terminal:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Rozwiązaniem tego problemu u mnie okazało się wybranie bezpośrednio odpowiedniego portu na którym mamy drukarkę:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    U mnie, na Raspberry PI Zero W, ten port nazywa się /dev/ttyUSB0. Jeśli nie mamy tego portu, to trzeba przejść do ustawień (Settings), tutaj:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    I dopisać tam w 'Additional serial ports' następujące nazwy portów:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Nazwy portów:
    
    /dev/ttyUSB*
    /dev/ttyACM0
    /dev/ttyACM*
    /dev/ttyAMA*
    

    Oczywiście potem trzeba kliknąć 'Save' by zapisać i w razie czego restart Raspberry jest wskazany.

    Zatem na głównej stronie wybieramy port '/dev/ttyUSB0' (ale w Waszym przypadku może być to inny - zależy od użytego Raspberry i podłączenia) i wtedy po kliknięciu 'Connect' powinniśmy otrzymać poprawne połączenie:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Jak widać, stan połączenia zmienił się na 'Operational', czyli wszystko gra.
    Po poprawnym podłączeniu możemy sobie zdalnie posterować drukarką poprzez zakładkę 'Control'. Pozwoli to nam sprawdzić czy na pewno całość działa:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Naciskanie przycisków w tej zakładce na żywo przesuwa osie na drukarce 3D. Jeśli one nie działają (drukarka na nie nie reaguje) to znaczy, że coś źle skonfigurowaliśmy.
    W sąsiedniej zakładce 'Temperature' możemy kontrolować grzanie bed i hot end drukarki. Jest to wygodne, bo możemy rozgrzać drukarkę jeszcze zanim wyeksportujemy GCode naszego obiektu który chcemy wydrukować:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Temperaturę możemy wpisać ręcznie lub wybrać z rozwijanej listy:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Tutaj dostępne są temperatury:
    - dla filamentu PLA - bed 60, tool 180
    - dla filamentu ABS - bed 100, tool 210
    Co ciekawe te temperatury są inne niż te które ja mam domyślnie w programie slicer który używam (Cura). W nim dla PLA mam temperaturę bed 60 ale tool 200.
    Ostateczny wybór temperatury jednak powinien być dokonany przez nas w zależności od tego jakiego konkretnego filamentu używamy i jak nam się lepiej drukuje - opinie są różne. Polecam dobrać eksperymentalnie.
    Po wyborze temperatury na wykresie ładnie widać jak drukarka się nagrzewa:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Chwilkę potem jest już gotowa do drukowania.

    Przygotowanie GCode do wydruku
    Plik .gcode dla drukarki przygotowujemy w standardowy sposób, tak jak robiliśmy wcześniej kiedy trzeba było ręcznie przerzucać całość na kartę microSD. Ja do tego używam programu Ultimaker Cura.
    Otwieram w nim .STL i generuje dla niego .gcode klikając przycisk Slice:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Po wygenerowaniu .gcode zapisuję go na dysk za pomocą przycisku 'Save to File':
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Warto zapamiętać gdzie na dysku zapisaliśmy .gcode, bo zaraz będziemy je wysyłać przez przegladarkę do Raspberry.
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint

    Drukujemy przez WiFi
    Mamy już wszystko poprawnie skonfigurowane oraz mamy już model wyeksportowany do formatu .gcode. Teraz możemy go przesłać do drukarki, dzięki WiFi całość można zrobić bez wstawania od komputera.
    Na stronie OctoPrint mamy listę wrzuconych plików .gcode:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Możemy tam dodać kolejny za pomocą przycisku 'Upload' albo po prostu przeciągnąć go na stronę WWW z eksploratora Windows (metoda drag and drop - też działa):
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Po dodaniu go tam klikamy przycisk 'Load', by załadować gcode do pamięci:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Wtedy powyżej powinny się pojawić informacje o naszym gcode, przewidywany czas wydruku, itp:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    I w zasadzie można już rozpocząć wydruk - kliknąć 'Print'.
    Po kliknięciu 'Print' jednak możliwe jest, że nawet już wcześniej nagrzana drukarka od razu nie ruszy. Obrazek poniżej wyjaśnia dlaczego:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Jak widać, drukarka dodatkowo się nagrzewa. Bierze się stąd, że ostatecznie użyte są temperatury ustawione w pliku gcode (ustawienia ze slicera), a nie te z OctoPrint. Należy o tym pamiętać.
    W GCode Viewer możemy podejrzeć plan wydruku i zweryfikować czy wszystko jest okej i czy drukujemy to co chcemy:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    Po nagrzaniu nasz obiekt powinien się już drukować. W zakładce Terminal można podejrzeć komunikację po UART między drukarką a Raspberry, ale ogólnie to odradzam zabawy w panelu WWW w trakcie wydruku gdyż każde opóźnienie Raspberry może skutkować lekkim zakłóceniem druku.
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    I to tyle - po odpowiednim czasie powinniśmy mieć gotowy wydruk:
    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
    (Tak, wiem, na powyższym zdjęciu moja magnetyczna podkładka od Endera 3 jest w bardzo złym stanie, ale wciąż czekam na nową i paczka się opóźnia jeszcze przez tego koronawirusa...)

    Końcowe uwagi, wskazówki
    Tutaj dam luzem kilka ważnych uwag co do Raspberry PI i OctoPi. Niektóre wystąpiły w tekście, ale warto je powtórzyć.
    - OctoPI da się używać nawet z Raspberry PI Zero W ale najlepiej bez kamerki WWW, w przeciwnym razie te słabe Raspberry nie daje rady i komunikacja szeregowa z drukarką jest za wolna co tworzy artefakty wydruku
    - OctoPI może uruchamiać się dość wolno, nawet w czasie wstawania może dawać komunikaty że jest coś nie tak (strona WWW z informacją o błędzie), ale u mnie zawsze poczekanie minutę dłużej wszystko rozwiązywało
    - OctoPI bierze ustawienia temperatury z pliku .gcode, ustawianie temperatury przez panel WWW nam dużo nie da, bo potem te wartości i tak zostaną nadpisane przez te z .gcode
    - OctoPI samo nie chciało wykryć mojej drukarki na ustawieniu Auto, trzeba było wybrać ręcznie port szeregowy
    - w bieżącej konfiguracji możliwe jest że ekran LCD od Endera 3 będzie zasilany przez 5V od USB od Raspberry PI (będzie lekko się świecić mimo wyłączenia drukarki); jest to raczej niepożądane ale można to łatwo naprawić po prostu odcinając linię 5V od połączenia, np. zaklejając pin odpowiedzialny za 5V taśmą we wtyczce od USB

    Podsumowanie
    Pokazałem tutaj jak skonfigurować OctoPi na Raspberry Pi Zero W do użycia z drukarką 3D Ender Pro, ale w zasadzie podobne kroki można zastosować dla innych Raspberry i drukarek.
    Z tak skonfigurowanej drukarki 3D korzystam już od jakiegoś czasu i nie odczułem żadnych problemów, artefaktów lub pogorszenia jakości wydruku, ale mimo to podkreślam, że jeśli chcecie dodatkowo podpiąć kamerę WWW to powinniście użyć mocniejszego Raspberry niż ja.
    A samo podłączenie drukarki 3D do WiFi w ten sposób jak najbardziej polecam, bardzo usprawnia pracę i wygodę przerzucania plików. Aż szkoda, że nie zrobiłem tego wcześniej.

    Cool? Ranking DIY
    Do you have a problem with Raspberry? Ask question. Visit our forum Raspberry.
    About Author
    p.kaczmarek2
    Moderator Smart Home
    Offline 
  • Automation24
  • #2
    error105
    Level 14  
    To dodam od siebie, OctoPI jest tak źle zoptymalizowane że w zasadzie na niczym poniżej RaspberryPI 3 nie można używać, raz że powolne, dwa że wydłuża czasy wydruku (z racji że Octo zamulając system powoduje spowolnienie wysyłania komend przez UART do drukarki) - na mojej Anet A8 druk zamiast 8h potrafił iść grubo ponad 10, jest to dość duża różnica. Kamerki nigdy nie miałem, a instalowałem Octo na odchudzonym Debianie - więc i tak działało szybciej niż na tym gotowym obrazie.

    Aktualnie najlepszym wdg mnie jest Repetier-Server, działa błyskawicznie nawet na mojej leciwej RaspberryPI A+, a wydruki idą dokładnie tyle samo czasu co z karty SD. Interfejs odpala się momentalnie itp - jedyny minus jaki znalazłem to brak obsługi kamerki w wersji darmowej, ja nie używam więc dla mnie brak minusów :)
  • Automation24
  • #3
    mkpl
    Level 37  
    error105 100% racji. Ja mam Octopi na B+ z klipper'em i bez overclock drukarka przycina przy wydrukach. Po świętach przesiadka na Pi 3. Bo jednak zysk z takiej konfiguracji deklasuje wszystko (120mm/s z PET G).
  • #4
    Jarus13
    Level 12  
    Używam octoprinta na Pi 3B+, wydłużenie czasu drukowania jest pomijalne, przy 10h druku była to różnica około 10 minut.

    Z tymi przejściówkami takie trochę dziwne kombinacje, płyta endera nie da się spiąć po UART? 3 przewody i po sprawie.

    p.kaczmarek2, zainstaluj w Curze plugin do octoprinta, po pocięciu modelu klikasz print i samo Ci wysyła Gcode do drukarki :)
  • #5
    mkpl
    Level 37  
    Jarus13 wrote:
    Używam octoprinta na Pi 3B+, wydłużenie czasu drukowania jest pomijalne, przy 10h druku była to różnica około 10 minut.

    Z tymi przejściówkami takie trochę dziwne kombinacje, płyta endera nie da się spiąć po UART? 3 przewody i po sprawie.

    p.kaczmarek2, zainstaluj w Curze plugin do octoprinta, po pocięciu modelu klikasz print i samo Ci wysyła Gcode do drukarki :)


    Myślałem o tym rozwiązaniu. Pominąć całkowicie FTDI i wpiąć się wprost w UART - UART do raspberry. Nadrobię "tyły" w drukowaniu to sprawdzę. Jeśli nawet nic to nie da to odpada dyndający kabel USB :)
  • #6
    error105
    Level 14  
    Jarus13 wrote:
    Używam octoprinta na Pi 3B+, wydłużenie czasu drukowania jest pomijalne, przy 10h druku była to różnica około 10 minut.

    Z tymi przejściówkami takie trochę dziwne kombinacje, płyta endera nie da się spiąć po UART? 3 przewody i po sprawie.

    p.kaczmarek2, zainstaluj w Curze plugin do octoprinta, po pocięciu modelu klikasz print i samo Ci wysyła Gcode do drukarki :)


    Porównujesz 4core 1.5GHz do 1 core 700Mhz, raczej to bez sensowne. Pomijam fakt że skoro jedna aplikacja wymaga 4 rdzeni a robi dokładnie to samo co inna która działa płynnie na 1, to jednak świadczy to o tym że Octo jest mega nie dopracowane i chyba wolałbym dalej drukować z karty niż na tym dziadostwie :)
  • #7
    Jarus13
    Level 12  
    error105 wrote:
    Jarus13 wrote:
    Używam octoprinta na Pi 3B+, wydłużenie czasu drukowania jest pomijalne, przy 10h druku była to różnica około 10 minut.

    Z tymi przejściówkami takie trochę dziwne kombinacje, płyta endera nie da się spiąć po UART? 3 przewody i po sprawie.

    p.kaczmarek2, zainstaluj w Curze plugin do octoprinta, po pocięciu modelu klikasz print i samo Ci wysyła Gcode do drukarki :)


    Porównujesz 4core 1.5GHz do 1 core 700Mhz, raczej to bez sensowne. Pomijam fakt że skoro jedna aplikacja wymaga 4 rdzeni a robi dokładnie to samo co inna która działa płynnie na 1, to jednak świadczy to o tym że Octo jest mega nie dopracowane i chyba wolałbym dalej drukować z karty niż na tym dziadostwie :)


    Nie będę się sprzeczał, ale twórcy sami sugerują użyć Pi 3B, a że jakoś chodzi na innych to można traktować jako miły gest, a nie szansę na zaoszczędzenie kilku dyszek.
    Ja jednak wolę używać octoprinta, jakbym miał biegać do innego pomieszczenia by doglądać drukarkę czy wziąć kartę SD, wrzucić gcode i znów tam iść to by mnie krew zalała. Choć w sumie dużo osób trzyma drukarkę tam gdzie egzystuje i śpi to kartę mają na wyciągnięcie ręki.
    Po za tym podłączasz kamerę, instalujesz plugin do wykrywania "spagetti" i się nie martwisz np że druk Ci się odkleił i drukareczka przez wiele godzin marnowała filament.
    Podejrzewam że jakbyś zaczął używać octoprinta na sugerowanym sprzęcie to byś zmienił zdanie że to wcale nie takie dziadostwo ;) Może optymalizacja nie jest mocną stroną, ale funkcjonalność to nadrabia.
  • #8
    error105
    Level 14  
    Nie mam takiej potrzeby, drukuje z PETG więc wydruk nie odkleja się od zimnego stołu nawet :) A przez Repetier-server mogę sobie wydruk puścić zdalnie na sprzęcie klasy RaspberryPi zero bez obaw o prędkość druku :)
  • #9
    ZaQ_1
    Level 9  
    p.kaczmarek2 wrote:
    Jakie Raspberry użyć?
    OctoPi jest kompatybilne z wieloma wersjami Raspberry PI, ale ostateczny wybór 'Malinki' zależy od tego czy chcemy tylko wysyłać .gcode (pliki wydruków) przez sieć czy też obserwować postępy wydruku przez kamerkę.
    Jeśli chcemy używać kamerki, to powinniśmy zdecydowanie wybrać mocniejszy mikrokomputer, Raspberry 3 lub 4. Wysyłanie obrazu kamerki wymaga przepustowości i przy słabszej 'Malince' mogłoby negatywnie wpłynąć na jakość wydruku.


    Chwila, to octoprint nie wrzuca całego pliku z gcode na kartę sd drukarki, tylko wysyła pojedyncze komendy jak przy drukowaniu po kablu z pc? Przecież to cofnięcie w rozwoju.
  • #10
    error105
    Level 14  
    ZaQ_1 wrote:
    Chwila, to octoprint nie wrzuca całego pliku z gcode na kartę sd drukarki, tylko wysyła pojedyncze komendy jak przy drukowaniu po kablu z pc?

    Dokładnie, a do tego jak zawiesi się Octo to wydruk staje, a nawet jakby nie stawał wydruk to rozłączenie USB powoduje pewien problem bo płyta drukarki się restartuje więc wydruk znowu tracimy :D
  • #11
    Slawek K.
    Level 35  
    error105 wrote:
    ZaQ_1 wrote:
    Chwila, to octoprint nie wrzuca całego pliku z gcode na kartę sd drukarki, tylko wysyła pojedyncze komendy jak przy drukowaniu po kablu z pc?

    Dokładnie, a do tego jak zawiesi się Octo to wydruk staje, a nawet jakby nie stawał wydruk to rozłączenie USB powoduje pewien problem bo płyta drukarki się restartuje więc wydruk znowu tracimy :D

    Przecież Repetier Server robi to samo.

    A co do braku wrzucania na kartę SD, nietrafiony zarzut, poniżej screen z Otco na którym widać, że można wrzucić albo na druk, albo na kartę SD :

    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint

    Pozdr
  • #12
    error105
    Level 14  
    Slawek K. wrote:
    Przecież Repetier Server robi to samo.

    Oczywiście że tak, tylko że jest lepiej napisany więc bardziej mu bym ufał że się nie zawiesi niż Octo :)

    Slawek K. wrote:
    A co do braku wrzucania na kartę SD.....

    To nic nie zmienia, jak masz włożony kabel USB i coś się stanie z Octo to zrestartuje Ci drukarkę nawet jak z SD leci wydruk :)
  • #14
    error105
    Level 14  
    Napisałem wyraźnie, że Repetier jest lepiej napisany więc ufałbym mu bardziej że się nie zawiesi niż Octo które wymaga 4 rdzeni do przesyłania komend po UARCie gdzie takie coś robi 8Mhz Attiny nawet :)

    Prosty sposób na sterowanie drukarką 3D przez WiFi za pomocą OctoPrint
  • #15
    Slawek K.
    Level 35  
    error105 wrote:
    To nic nie zmienia, jak masz włożony kabel USB i coś się stanie z Octo to zrestartuje Ci drukarkę nawet jak z SD leci wydruk

    To samo w Repetier.
    Korzystałem długi czas z Repetier Server i zaiste nie dostrzegam zalet w stosunku do Octo. Octo używam od jakichś czterech lat i NIGDY nic się nie zawiesiło, mało tego, nie dostrzegam też wydłużenia czasu druku, bo niby z jakiego powodu, skoro czas wydruku składa się z ilości ruchów głowicy czyli drogi i ustawionej prędkości w slicerze. Bufor UART'u atmegi2560 jest taki sam, bez względu co wysyła dane, Repetier czy Octo. Jedynie co, pewnie to kwestia sprzętu na którym działa jeden i drugi, dla mnie brak kamerki w Repetier (tylko w płatnej wersji) właśnie zdyskwalifikował Repetiera, bo drukarkę mam na strychu, i nie wyobrażam sobie biegać co chwila po schodach i sprawdzać. A różnica w cenie Rpi3 nie rzuca znowu na kolana przy całości inwestycji drukarki.

    Pozdr
  • #16
    error105
    Level 14  
    Mi Octo co chwilę siadało na Rpi A, Repetier raz się wywalił. Ogólnie nie korzystam, idę na strych odpalam drukarkę i zasilanie awaryjne, wsadzam kartę i czekam 2 min aż się nagrzeje i wydruk złapie stół :) Potem już nie mam potrzeby sprawdzać, w końcu to ma działać a nie być obserwowane ciągle. Dodalem jedynie w Gcode by po wydruku stolik ładnie wyjechał i nacisnął krańcówkę która wysyła meila że koniec wydruku i tyle :)
  • #17
    romulus73
    Level 28  
    Sorki ale o niebo taniej i prościej kupić odpowiednią płytę sterującą, https://www.elektroda.pl/rtvforum/topic3526282.html
  • #18
    Jarus13
    Level 12  
    error105 wrote:
    Slawek K. wrote:
    Przecież Repetier Server robi to samo.

    Oczywiście że tak, tylko że jest lepiej napisany więc bardziej mu bym ufał że się nie zawiesi niż Octo :)

    Slawek K. wrote:
    A co do braku wrzucania na kartę SD.....

    To nic nie zmienia, jak masz włożony kabel USB i coś się stanie z Octo to zrestartuje Ci drukarkę nawet jak z SD leci wydruk :)


    Oj chyba bardzo się zraziłeś do octopi stawiając go na byle czym i teraz wymyślasz głupoty... Jak wrzucisz na karte SD drukarki to octopi możesz wyłączyć w każdej chwili.
    Drugie od kilku lat używam i ani razu mi się nie zawiesił więc nie wiem gdzie tu problem.
    Następne to po jakiego podłączać po USB by sygnał był kowertowany 2x przez ftdi czy inny chip jak można od razu po uarcie podłączyć 3 przewodami...
  • #19
    error105
    Level 14  
    Jarus13 wrote:
    Oj chyba bardzo się zraziłeś do octopi stawiając go na byle czym i teraz wymyślasz głupoty

    Byle czym ? Działa mi na tym samym RPi i Repetier-Server razem z javą i Blynkiem i działa to płynnie, a samo OctoPI nie daje rady już pracować na takim samym sprzęcie a nie robi nic więcej niż Repetier. Więc w tym wypadku byle czym jest Octo a nie moja malinka która akurat sprawdza się świetnie w tym, ba mam przez Motion podgląd co kamerka widzi i o dziwo działa to przyjemnie :)

    Jarus13 wrote:
    Następne to po jakiego podłączać po USB by sygnał był kowerto.....

    Święta racja, odniosłem się tutaj do autora, choć ja sam tak miałem podłączone..... z lenistwa :)