Strona 1 z 1

Drukowanie przez wifi. część 1

: 05 lut 2018, 18:28
autor: zouk
Kolega z pracy zapytał mnie czy dałbym radę zrobić czujnik smogu w oparciu o układ Wemos D1 R2 & mini i czujnik SHARP.
Jako, że nie programowałem tego typu układów przez arduino a jedynie układy atmela (uno i mega) to postanowiłem zagłębić temat i podjąć wyzwanie.
Kolega zamówił płytkę dla siebie oraz w ramach podziękowania dla mnie.
W taki właśnie sposób stałem się posiadaczem zgrabnej płytki z układem ESP8826, zegarem 80MHz i 4MB pamięci na pokładzie.
Tutaj zakończę co działo się z czujnikiem smogu (działa).
Mając płytkę postanowiłem połączyć swoją drukarkę z domową siecią wifi i kontrolować drukarkę z poziomu przeglądarki lub z poziomu repetier-host'a.

Krótki opis co i jak.
Zapewne każdy kto posiada drukarkę 3d posiada zainstalowane środowisko Arduino które pobieramy stąd.
https://www.arduino.cc/en/Main/Software

Aby arduino zobaczyło płytkę ESP potrzebne są dodatkowe biblioteki płytek.

Wchodzimy w plik/preferencje i w polu Dodatkowe adresy URL do menedżera płytek: wklejamy poniższy link:
A.jpeg
http://arduino.esp8266.com/stable/packa ... index.json

Wybieramy z górnego menu Narzędzia/Płytka - menedżer płytek
B.jpg
W polu szukaj wpisujemy esp...
C.jpg
Na samym dole pojawi się interesująca nas biblioteka płytek.
Z chwilą pisania tego tekstu najnowsza biblioteka płytek to 2.4.0 i taką instalujemy.
D.jpg
W menu narzędzia wybieramy płytkę WeMos D1 R2 & mini
E.jpg
Środowisko przygotowane do kompilacji więc czas na źródła.
Pobieramy źródła i rozpakujemy w dowolne miejsce na dysku
F.jpg
https://github.com/luc-github/ESP3D

Z rozpakowanego archiwum kopiujemy do katalogu z projektami arduino dwa katalogi: libraries i esp3d.
G.jpg
Z poziomu arduino otwieramy project esp3d.ino
H.jpg
i kompilujemy.
I.jpg
Warto wiedzieć, że w zakładce config.h w linii 271 i 272 jest nazwa sieci i hasło które będą nam potrzebne podczas pierwszego logowania do stworzonej sieci .
J.jpg
Gdy Wemos ESP8826 się restartuje my pobierzemy drugą paczkę z potrzebnymi plikami.

https://github.com/luc-github/ESP3D-webui
K.jpg
z której wypakowujemy na pulpit plik: index.html.gz

Łączymy się z stworzoną siecią wifi
L.jpg
L.jpg (10.79 KiB) Przejrzano 5879 razy
cdn..

Re: Drukowanie przez wifi. część 2

: 05 lut 2018, 18:32
autor: zouk
W przeglądarce wpisujemy adres 192.168.0.1
M.jpg
N.jpg
Teraz czas na wgranie plików www.
Klikamy przeglądaj i wybieramy wcześniej zapisany plik index.html.gz na pulpicie.
O.jpg
Zatwierdzamy klikając na update.
P.jpg
Q.jpg
R.jpg
Teraz odświeżamy stronę

Pojawi się okno konfiguracyjne w którym wybieramy język
S.jpg
oraz firmware drukarki 3d i prędkość portu.
T.jpg
Do wyboru mamy:
Repetier
Repetier for Davinci
Marlin
Marlin Kimbra
Smoothieware.

W kolejnym oknie wybieramy czy drukarka ma stanowić odrębny AP czy działać jako klient w domowej sieci.
Ja wybrałem tymczasowo tryb pracy Access Point
U.jpg
Po zakończeniu naszym zobaczymy panel sterujący drukarki.
V.jpg
Z poziomu takiego panelu możemy sterować drukarką i jej podstawowymi parametrami lub np. wysłać gcod do drukarki a właściwie na kartę SD.
Wysyłany gcode powinien mieć format 8.3 ( coś jak w starym DOS :) )
X.jpg
cdn..

Re: Drukowanie przez wifi. część 3

: 05 lut 2018, 18:33
autor: zouk
Również z poziomu Repetrier-Host'a możemy się połączyć z drukarką
Y.jpg


Zanim zaczniesz to kilka uwag:
W źródłach https://github.com/luc-github/ESP3D
są schematy podłączeń do popularnych płytek.
Jest też schemat prostego konwertera napięć pomiędzy mega2560(Ramps) a WeMos.

Mam nadzieję, że ten opis komuś się przyda. :)

Re: Drukowanie przez wifi. część 1

: 05 lut 2018, 18:42
autor: McKee
:shock: .... aale po co ?

Bierzesz RaspberyPi, i Octoprint (lub coś podobnego) i masz dużo, dużo, dużo więcej za mniej więcej te same *) pieniądze. Sztuka dla sztuki robić to na jakimś ESP.

*) Ok. Może nie te same pieniądze, tylko trochę większe, ale różnica to koszt jednego obiadu w przydrożnej restauracji - moim zdaniem szkoda czasu i pieniędzy na to ESP (chyba że do nauki, ale wtedy przykład drukarki i tak nietrafiony).

Re: Drukowanie przez wifi. część 1

: 05 lut 2018, 18:51
autor: zouk
To taka inna alternatywa jeśli chodzi o druk i ogólnie dostęp nie bezpośredni do drukarki z komputera. Dla mnie Octoprint to hmm jeszcze za trudny temat. Raspbery.Pi hmm mogłem kupić ale tutaj miałem gotową płytkę w cenie chyba 17zł z Alli. Nie chciałem aby leżała i się kurzyła. Zresztą to nie jest mój pomysł. Zaczerpnięte z rosyjskiego yt:) Ja to tylko empirycznie sprawdziłem i opisałem.

Re: Drukowanie przez wifi. część 1

: 05 lut 2018, 18:53
autor: artur_n
Czyli można za pomocą tego wysyłać pliki gcode do druku?

Koszt takiej płytki z ESP8266 to ok. 13zł wiec 1/10 RPi. Nie wspominając o kamerce do niego.

Re: Drukowanie przez wifi. część 1

: 05 lut 2018, 18:58
autor: zouk
Tak można. :)

Re: Drukowanie przez wifi. część 1

: 05 lut 2018, 19:07
autor: artur_n
Strasznie drażni mnie przekładanie karty SD. Wiec to jest dobre rozwiązanie!

Re: Drukowanie przez wifi. część 1

: 05 lut 2018, 19:07
autor: Berg
nie no spoko. faktycznie ten moduł w pl za jakieś 22zł można kupić. to o 30zł mniej niż rPi Zero wifi.
aż się prosi, by np do niego przepiąć wyświetlacz od razu odciążając atmegę. trochę programowania ale ku chwale - zachęcam.

Re: Drukowanie przez wifi. część 1

: 08 lut 2018, 00:17
autor: zen
Pomysł fajny, sam używam, ale projekt już przysechł niestety :(

Re: Drukowanie przez wifi. część 1

: 08 lut 2018, 06:13
autor: McKee
zouk pisze:Dla mnie Octoprint to hmm jeszcze za trudny temat.
:shock: to, co opisałeś jest wielokrotnie trudniejsze od Octoprint-a przecież.
Projekt jest OK, tylko możliwości wielokrotnie mniejsze niż to co jest w Octoprint. Dla tych 30-50zł moim zdaniem nie warto.

I pamiętajcie (tak przy okazji), że wydruki po USB (arduino, raspberry itp) mogą wyglądać gorzej niż bezpośrednio z karty SD.

Re: Drukowanie przez wifi. część 1

: 08 lut 2018, 08:24
autor: artur_n
McKee pisze:
zouk pisze:I pamiętajcie (tak przy okazji), że wydruki po USB (arduino, raspberry itp) mogą wyglądać gorzej niż bezpośrednio z karty SD.
Dokładnie i dlatego nodemcu zakupione za 13zł leczy bolączkę ciągłego wyjmowania karty z czytnika aby skopiować nowy gcode.

Re: Drukowanie przez wifi. część 1

: 08 lut 2018, 09:37
autor: Berg
McKee pisze: I pamiętajcie (tak przy okazji), że wydruki po USB (arduino, raspberry itp) mogą wyglądać gorzej niż bezpośrednio z karty SD.
a co dokładniej masz na myśli ?

Re: Drukowanie przez wifi. część 1

: 08 lut 2018, 10:38
autor: virgin71
rafaljot pisze:
McKee pisze: I pamiętajcie (tak przy okazji), że wydruki po USB (arduino, raspberry itp) mogą wyglądać gorzej niż bezpośrednio z karty SD.
a co dokładniej masz na myśli ?
USB pracuje na procesorze i każda czkawka się odzywa na wydrukach. Szczególnie uciążliwe przy USB podpiętym do komputera, z którego się korzysta.

Re: Drukowanie przez wifi. część 1

: 08 lut 2018, 10:41
autor: Berg
w każdym razie przy druku z Octoprint@rPiZeroW podpiętym przez USB do Arduino DUE nie zauważyłem utraty jakości, może nie wiedziałem na co patrzeć.

Re: Drukowanie przez wifi. część 1

: 08 lut 2018, 12:01
autor: mmonsterski
Teraz nie mogę znaleźć ale gdzieś widziałem tutorial aby w Octoprint używać rs-a sprzętowego i przez niego wysyłać polecenia - bez użycia usb

Re: Drukowanie przez wifi. część 1

: 08 lut 2018, 16:19
autor: Kopytko
Octoprint prawie wogole nie uzywa procesora raspberry przy pracy. Chyba ze macie wlaczony podglad na zywo w fhd to wowczas proces rosnie a tak to jest to ok 2-3%.

Re: Drukowanie przez wifi. część 1

: 08 lut 2018, 16:30
autor: dragonn
Kopytko pisze:Octoprint prawie wogole nie uzywa procesora raspberry przy pracy. Chyba ze macie wlaczony podglad na zywo w fhd to wowczas proces rosnie a tak to jest to ok 2-3%.
Niestety Octoprint ma jedną wadę - wysyłanie g-code oraz obsługa WWW jest w tym samym wątku. Zazwyczaj się to nie objawia ale jak spróbujemy załadować stronę z kompa który jest mocno obciążony i w trakcie ładowania strony 'przytnie' to potrafi to również przyciąć wydruk. A z drukowanie z USB i gorszą jakością chodzi o szybkość przesyłania danych przez połączenie szeregowo która jest dużo niższa niż odczyt przez SD - przez co przy bardziej skomplikowanych modelach i dużych szybkościach wydruku może dojść do tego że drukarka będzie się zacinać czekają na komendy z Octoprint.

Re: Drukowanie przez wifi. część 1

: 08 lut 2018, 17:35
autor: Berg
mi tam się potrafiła zacinać na odczycie z karty SD :D
btw: w Curze ostatnio dodali opcję, coś jak rozdzielczość w Slic3rze

Re: Drukowanie przez wifi. część 1

: 08 lut 2018, 19:53
autor: virgin71
rafaljot pisze: btw: w Curze ostatnio dodali opcję, coś jak rozdzielczość w Slic3rze
W becie narazie.

Re: Drukowanie przez wifi. część 1

: 09 lut 2018, 20:04
autor: Berg
virgin71 pisze:
rafaljot pisze: btw: w Curze ostatnio dodali opcję, coś jak rozdzielczość w Slic3rze
W becie narazie.
już nie

Re: Drukowanie przez wifi. część 1

: 23 mar 2018, 00:06
autor: artur_n
Co robię źle?

Kod: Zaznacz cały

Opcje projektu zmienione, przeładuj całość
sketch\config.cpp: In static member function 'static bool CONFIG::InitBaudrate()':

config.cpp:94: error: 'class HardwareSerial' has no member named 'baudRate'

      if (ESP_SERIAL_OUT.baudRate() != baud_rate)ESP_SERIAL_OUT.begin(baud_rate);

                         ^

config.cpp:96: error: 'class HardwareSerial' has no member named 'setRxBufferSize'

      ESP_SERIAL_OUT.setRxBufferSize(SERIAL_RX_BUFFER_SIZE);

                     ^

sketch\config.cpp: In static member function 'static bool CONFIG::check_update_presence()':

config.cpp:1013: error: 'class HardwareSerial' has no member named 'baudRate'

          if (ESP_SERIAL_OUT.baudRate() != baud_rate)ESP_SERIAL_OUT.begin(baud_rate);

                             ^

sketch\config.cpp: In static member function 'static void CONFIG::print_config(tpipe, bool)':

config.cpp:1412: error: 'class HardwareSerial' has no member named 'baudRate'

     uint32_t br = ESP_SERIAL_OUT.baudRate();

                                  ^

Znaleziono wiele bibliotek w "ESP8266WebServer.h"
Wykorzystane: C:\Users\artur\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0-rc2\libraries\ESP8266WebServer
Niewykorzystane: C:\Users\artur\OneDrive\Documents\Arduino\libraries\WebServer
Niewykorzystane: C:\Program Files (x86)\Arduino\libraries\WebServer
Znaleziono wiele bibliotek w "DNSServer.h"
Wykorzystane: C:\Users\artur\OneDrive\Documents\Arduino\libraries\DNSServer
Niewykorzystane: C:\Users\artur\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0-rc2\libraries\DNSServer
Niewykorzystane: C:\Program Files (x86)\Arduino\libraries\DNSServer
exit status 1
'class HardwareSerial' has no member named 'baudRate'


Re: Drukowanie przez wifi. część 1

: 23 mar 2018, 14:27
autor: sp6vgx
dragonn pisze: Niestety Octoprint ma jedną wadę - wysyłanie g-code oraz obsługa WWW jest w tym samym wątku.
A ja się odniosę po części do podobnej sprawy... i teraz tak dlaczego nie ESP32 który może jest ciut droższy, a ma fajną sprawę jaką są dwa rdzenie.
Spokojnie można rozdzielić obsługę WiFi czyli stos tcp/ip itd. puszczając na jednym rdzeniu i drugi mamy pełen do dyspozycji. Jakiekolwiek problemy z dużym obciążeniem WiFi itp. nie odbiją się na sofcie pracującym sobie osobno na drugim core (i vice versa).

Pomijam już większą wydajność ESP32 oraz kupę innych ciekawych funkcjonalności w tym np. BT...

Re: Drukowanie przez wifi. część 1

: 23 mar 2018, 14:39
autor: dragonn
sp6vgx pisze: A ja się odniosę po części do podobnej sprawy... i teraz tak dlaczego nie ESP32 który może jest ciut droższy, a ma fajną sprawę jaką są dwa rdzenie.
Spokojnie można rozdzielić obsługę WiFi czyli stos tcp/ip itd. puszczając na jednym rdzeniu i drugi mamy pełen do dyspozycji. Jakiekolwiek problemy z dużym obciążeniem WiFi itp. nie odbiją się na sofcie pracującym sobie osobno na drugim core (i vice versa).

Pomijam już większą wydajność ESP32 oraz kupę innych ciekawych funkcjonalności w tym np. BT...
Oczywiście że tak ;), zrób soft to chętnie skorzystamy :piwo: .

Re: Drukowanie przez wifi. część 1

: 23 mar 2018, 14:53
autor: sp6vgx
@dragonn

To była bardziej sugestia do autora tematu, bo poruszyłeś ciekawy problem który też może występować na ESP który to do mistrzów wydajności nie należy. Natomiast jakiekolwiek większe obciążenie tego jednego core potrafi powodować problemy z obsługą stosu lwIP jaki tam jest używany.

Natomiast co do mnie to ja już od dawna nie publikuje projektów... ot kiedyś na pewnym forum pisałem o elektronice 32bit aby dać lepszy procek z dużą ilością ramu aby z wyprzedzeniem liczyć więcej ramp itd. itp. (można to znaleźć). Generalnie uciec od obciążeń jakie niesie Arduino czyli HAL i ograniczenia 8bit - no i jakoś tak średnio to było przyjęte. Projekt powstał dawno temu na STM32F407 z własnym softem, działa i jestem szczęśliwy. Może kiedyś udostępnię... W sumie to powstaje teraz taki nowy koncept na Cortex M7... z eth itd. jak ktoś chętny do poklepania kodu można się jakoś ugadać (ale projekt zamknięty tzn. nie będzie dalej udostępniany)...

Re: Drukowanie przez wifi. część 1

: 23 mar 2018, 16:21
autor: artur_n
Z czystej ciekawości uruchomiłem to mając nadzieję, że pozbędę się tematu wyjmowania karty, lecz szybko przyszło rozczarowanie gdzie gcode 2,5MB idzie wieczność i to dosłownie.

Re: Drukowanie przez wifi. część 1

: 03 lip 2018, 12:53
autor: Padaka
dragonn pisze:
Kopytko pisze:Octoprint prawie wogole nie uzywa procesora raspberry przy pracy. Chyba ze macie wlaczony podglad na zywo w fhd to wowczas proces rosnie a tak to jest to ok 2-3%.
Niestety Octoprint ma jedną wadę - wysyłanie g-code oraz obsługa WWW jest w tym samym wątku. Zazwyczaj się to nie objawia ale jak spróbujemy załadować stronę z kompa który jest mocno obciążony i w trakcie ładowania strony 'przytnie' to potrafi to również przyciąć wydruk. A z drukowanie z USB i gorszą jakością chodzi o szybkość przesyłania danych przez połączenie szeregowo która jest dużo niższa niż odczyt przez SD - przez co przy bardziej skomplikowanych modelach i dużych szybkościach wydruku może dojść do tego że drukarka będzie się zacinać czekają na komendy z Octoprint.
Witam,
Z kontekstu wnioskuje że problem dotyczy "małych" Pi, czy ten problem pogorszenia wydruku występuje również w przypadku raspberry pi 3 ?

Pozdrawiam
P.

Re: Drukowanie przez wifi. część 1

: 03 lip 2018, 12:56
autor: McKee
Nie

PS.: nie z winy wi-fi i/lub.
Nie chce mi się czytać starego wątku / wyłapywać kontekstu, ale ogólnie druk po USB (drukarki) ma mniejszą przepustowość od karty SD (w drukarce) - nie ma to związku z octoprint. Po prostu jest wąskie gardło w transmisji po USB / emulowany port szeregowy w elektronice drukarki.

Jeżeli nie drukujesz szybciej niż 60mm/s to nie zauważysz różnicy. Tylko na szybkim druku i skomplikowanych kształtach wracasz w ograniczenia.

Re: Drukowanie przez wifi. część 1

: 03 lip 2018, 13:01
autor: Padaka
W takim razie dziś będzie zabawa z instalowaniem Octoprint'a :). Malinke mam "doposażoną" w wyświetlacz - muszę poszukać na forum i w necie czy istnieje możliwość wyświetlania na nim jakiś dodatkowych informacji.

Dzięki za szybką odpowiedź.

P.

Re: Drukowanie przez wifi. część 1

: 03 lip 2018, 13:02
autor: dragonn
Nie do końca, problem występuje ale raczej nie jest widoczny z względu na wydajność pojedynczego rdzenia w Pi 3.

Re: Drukowanie przez wifi. część 1

: 03 lip 2018, 13:05
autor: Padaka
Dokładnie tak interpretowałem Waszą wcześniejszą dyskusję - małe malinki uwydatniają ten problem, "duża" malinka nadrabia mocą - niwelując widoczność tego problemu w samym wydruku.

Re: Drukowanie przez wifi. część 1

: 03 lip 2018, 13:12
autor: dragonn
Dam głowę że jak by rozdzielić drukowanie i obsługę WWW na osobne wątki to nawet na małej malince nie byłby absolutnie żadnego problemu ;).

Re: Drukowanie przez wifi. część 1

: 03 lip 2018, 13:17
autor: mcxmcx
Panowie, a ktoś podłączał już octoprint do ramps przez serialach, bez użycia USB?

Bo trafiła się mi A z jednym USB i w USB by było wifi.

Re: Drukowanie przez wifi. część 1

: 03 lip 2018, 13:25
autor: dragonn
Pewnie, da się. Robiłem tak żeby ładniej kable ogarnąć. Oczywiście trzeba:
- wyłączyć w Linuksie ten serial port żeby nie walił konsolą na nim
- użyć jakiekolwiek konwertera poziomów logicznych przynajmniej na linii odbierającej
Sam RAMPS ma wyprowadzone TX i RX na pinach z Megi, to samo co idzie po USB.

Re: RE: Re: Drukowanie przez wifi. część 1

: 04 lip 2018, 19:15
autor: zen
Padaka pisze:W takim razie dziś będzie zabawa z instalowaniem Octoprint'a :). Malinke mam "doposażoną" w wyświetlacz - muszę poszukać na forum i w necie czy istnieje możliwość wyświetlania na nim jakiś dodatkowych informacji.

Dzięki za szybką odpowiedź.

P.
Oczywiście, że tak