Wymiana płyty na Mellow Fly E3 RRF w drukarce Ender 3

Mellow Fly E3 RRF jest to elektronika dedykowana do Endera 3 i podobnych, pasująca w oryginalne miejsce, z wymiennymi StepStickami oraz wbudowanym ESP, dzięki czemu można na niej bez dodatków uruchomić RepRapFirmware.
Link: https://pl.aliexpress.com/item/1005001999686167.html

Oryginalna płyta główna Endera jest mocno ograniczona, jak również ma wlutowane (niewymienne) sterowniki silników krokowych A4988, przez które drukarka jest dość hałaśliwa. Oprócz tego w wersjach 1.1.3-5 Creality Board całością steruje ATMega1284p, która posiada jedynie 128kB pamięci programowej. To zdecydowanie zbyt mało aby korzystać w pełni z nowoczesnego oprogramowania drukarkowego. Aby zmieścić Marlina 2.0 trzeba wyłączyć wiele przydatnych funkcji. Płyta Fly E3 RRF nie posiada tych wad. Posiada za to ogromną zaletę - wbudowane ESP do komunikacji sieciowej i mikrokontroler z rodziny STM32F4, dzięki czemu możemy na tej płycie uruchomić RepRapFirmware - moim zdaniem znacznie lepszy firmware niż Marlin.

Do płyty tej można zamówić od razu stepsticki TMC2209 z dedykowanym do tej płyty dip-switchem do odłączenia pinu DIAG, jeśli się nie korzysta z sensorless homing. Ja z pewnych powodów zdecydowałem się na wykorzystanie sterowników zakupionych osobno - TMC2226 od BigTreeTech. Drivery będą się komunikowały przez UART, także należy włożyć w płytę po jednej zworce, tak jak na pierwszym zdjęciu. Jako, że Ender ma wbudowane krańcówki i nie zamierzałem z nich zrezygnować, to konieczne było obcięcie pinu DIAG jak na zdjęciu:

Po przygotowaniu zworek i stepsticków płyta jest gotowa do montażu w drukarce. Tu mała uwaga, ponieważ przy zastosowanych przeze mnie stepstickach i dołączonych do nich radiatorach, radiator od E zawadza o oryginalny wiatraczek 4010 chłodzący elektronikę. Nie był to jednak wielki problem, bo i tak robiłem nową pokrywkę pod wiatrak 6015. Generalnie rozkład złącz jest praktycznie taki sam, jak w oryginalnej płycie. Różnica jest taka, że są 2 gniazda do wentylatorów, które można niezależnie sterować PWMem. W moim przypadku pierwsze wykorzystałem do chłodzenia wydruku, a drugie na wentylator hotendu i elektroniki. Jest też gniazdo ze stałymi 24V, tu podpiąłem pasek LED oświetlający drukarkę.

Oprogramowanie
Płyta przychodzi fabrycznie bez wgranego żadnego softu. Można wgrać Marlina, albo RRF. Sam kupiłem ją specjalnie pod RRF, dlatego też ten soft wgrałem. Wszelkie informacji na temat konfiguracji znajdują się w wiki: https://teamgloomy.github.io/ Pobranie i konfigurację opisywałem przy okazji instalacji RRF na SKR 1.1.
Na chwilę pisania tego posta najnowsza stabilna wersja RRF to 3.2.2, jednakże od wersji beta 3.2.7 obsługiwany jest wyświetlacz graficzny - fabryczny endera oraz RepRap Discount FullGraphics Smart Controller.
Aby zainstalować oprogramowanie wystarczy ściągnąć odpowiedni plik BIN (np. firmware-stm32f4-esp8266wifi-3.3beta1_5.bin), zmienić jego nazwę na firmware.bin i wgrać na kartę pamięci sformatowaną jako FAT32. Po włożeniu karty do drukarki i włączeniu zasilania soft wgra się automatycznie. UWAGA - aby nastąpiło wgranie softu konieczne jest podłączenie zewnętrznego zasilania, nie wystarcza 5V z USB. Nie ma także wgranego softu dla ESP, ale jego wgranie opiszę później. Teraz kolejnym krokiem jest przygotowanie plików karty SD. Do tego najłatwiej wykorzystać dedykowany konfigurator: https://teamgloomy.github.io/Configurator/
Dla Endera i płytki Fly e3 jest predefiniowana konfiguracja, która praktycznie nie wymaga zmian, chyba że ktoś ma inne drivery, bl-touch czy inne dodatki. Pobrane pliki wrzucamy do katalogu sys na karcie pamięci, oraz uzupełniamy o najnowszą wersję DWC (rozpakować do folderu www) oraz firmware do ESP (wrzucić do folderu firmware i zmienić nazwę pliku na DuetWifiServer.bin).
Jeśli chcemy użyć wyświetlacza graficznego z Endera to należy dodatkowo dodać do pliku board.txt:

lcd.encoderPinA=E.9
lcd.encoderPinB=E.10
lcd.encoderPinSw=E.11
lcd.lcdCSPin=E.7
lcd.spiChannel=4
SPI4.pins={E.8, NoPin, B.1}
lcd.lcdBeepPin = E.12

A do pliku config.g:

M918 P1 E4 F1000000

oraz założyć zworkę J2 na płycie. Konieczne jest także wgranie na kartę pamięci plików menu pobranych z : https://github.com/jadonmmiller/Ultimat ... /releases/
plik należy rozpakować do folderu "menu". Do podłączenia wyświetlacza używa się fabrycznego kabla podłączonego do gniazda EXP3, nic nie trzeba przerabiać.
Teraz mając już gotową całą strukturę plików na karcie SD można uruchomić drukarkę. Na początek konieczne będzie podłączenie drukarki kablem USB do komputera, aby wgrać firmware do ESP i następnie podłączyć się do swojej sieci WIFI. Mając już podłączenie wgrywamy firmware do ESP poleceniem:

M997 S1

Do wydania tego polecenia wystarczy jakikolwiek terminal, np. PuTTY czy YAT.
Jak już zakończy się wgrywanie firmware można podłączyć się do swojej sieci WiFi:

M552 S0
M587 S"SSID" P"hasło"
M552 S1

i odłączyć kabel usb. Jak wszystko poszło dobrze, to drukarka będzie teraz dostępna z poziomu przeglądarki internetowej pod adresem http://ender3.local , chyba że wpisaliśmy inną nazwę drukarki.
Zauważyłem, że przy fabrycznej częstotliwości PWM (500Hz) grzałki stołu, zasilacz wydaje nieprzyjemne odgłosy, dlatego też zmniejszyłem tą częstotliwość do poziomu 8Hz, dzięki czemu nie odczuwa się tego efektu. Aby to zrobić należy w pliku config.g do odpowiadającemu grzałce stołu poleceniu M950 dodać parametr Q8 ( https://duet3d.dozuki.com/Wiki/Gcode#Se ... _servo_pin)
Nie wiem jak w innych slicerach, ale w PrusaSli3er/SuperSlicer można ustawić adres drukarki, dzięki czemu przesłać plik i uruchomić druk można z poziomu slicera, bez udziału DWC.

Osobiście jestem bardzo zadowolony z niniejszej modyfikacji, już nie trzeba przekładać ciągle karty SD między komputerem a drukarką, jak również zmiany w konfiguracji nie wymagają każdorazowej kompilacji firmware jak w przypadku Marlina.