[Poradnik] Jak wgrać Marlin 2.0 na SKR 1.3 (LPC1768) | Prusa i3 MK2s

Oprogramowanie sterownika drukarki i do łączenia komputera z drukarką
bialy_worek

[Poradnik] Jak wgrać Marlin 2.0 na SKR 1.3 (LPC1768) | Prusa i3 MK2s

Post autor: bialy_worek »

Cześć,

opiszę wam jak skonfigurować Marlina 2.0- bugfix dla płytki 32-bitowej SKR 1.3

Postanowiłem zrobić ten wątek dlatego, że była to dla mnie męką ( a miało być prosto, szybko i przyjemnie jak wiadomo :D ) i życzę każdemu żeby jej nie przeżywał przy konfiguracji swojego FW oraz fakt, że sam chciałbym znaleźć takie objaśnienie wcześniej - oszczędziłoby mi to sporo zachodu. Odbiorcą jest osoba początkująca\średniozaawansowana, widząca pierwszy raz na oczy program Atom lub VSCode, a konkretniej całe to PlatformIO czyt. ja sprzed 3 dni. ;) A w szczególności chciałem opisać, żeby wiadomo było dokładnie czego się spodziewać.
Bardzo proszę o poprawienie mnie jeżeli sie mylę lub wytknięcię jeżeli gdzieś znajduje się błąd.

Słowem wstępu - była to dla mnie męczarnia tylko dlatego, że myślałem, że to co wiem o wgrywaniu FW na MKS GEN L (ale też inne 8bitowe płytki) ma dokładne przełożenie tutaj.
SKR 1.3 (a także 1.1) i MKS GEN L mają takie same wymiary i otwory montażowe ale NIE MOŻNA ICH TRAKTOWAĆ TAK SAMO ! ( architektura procesora ARM i AVR różnią się pod kątem wgrywania programu ... niemożliwe ;) teraz to sobie tak mogę napisać, bo to błąd pewności wstecznej, ale autentycznie byłem zaskoczony )

Parafrazując klasyk : " Życie jest ciężkie, ale jeszcze cięższe jak jesteś głupi " xD

Filmik zamieszczony przez producenta w starciu z rzeczywistością pokazuje za bardzo uproszczony i niedokładny proces wgrywania tego nieszczęsnego Marlina - oglądałem ten filmik ze 3 razy i muszę z przykrością rzecz, że z mojej perspektywy to mogłoby go nie być - praktycznie nic mi nie pomogło, co innego dostępna dokumentacja, ale w to już trzeba zagłębić się ze skupieniem i przede wszystkim trochę posiedzieć. Nie jest to niestety śledzenie filmiku trwającego 10min i odwzorowywanie tego co przedstawia - nie ma żadnego powodu dlaczego ten filmik nie mógłby być bardziej informatywny.

Chcę, żeby to był prosto wypunktowany proces wgrywania Marlina, na podstawie tego co sam zrobiłem, omijając moje głupie błędy.

-------------------------------------------------------------------------------

Potrzebne jest
1. IDE : Visual Studio Code ( wersja open source programu Visual Studio - bardzo okrojona ) lub Atom - oba dostępne za darmo i na wszystkich systemach operacyjnych.
- na jednym z powyższych należy zainstalować PlatformIO (w obu wygląda to dokłanie tak samo : wejdź w Rozszerzenia "Extensions" -> szukaj "PlatformIO" -> zainstaluj -> restart IDE -> gotowe )
1.a Interpreter Python 2.7 : https://www.python.org/downloads/ ( jeżeli nie był zainstalowany wcześniej )
2. Ściągnięty i rozpakowany plik z Marlinem z oficjalnego konta Githuba BigTreeTech : https://github.com/bigtreetech/BIGTREET ... gfix-2.0.x ( dostęp z dnia 30-04-19)
3. Karta SD ( dołączona do SKR lub własna ) + naturalnie czytnik Kart ( wbudowany w kompa lub zewnętrzny )
3.a Przed wgraniem na karte nowego FW należy podłączyć płytkę do prądu - zasilanie po USB ( ustawiając złączki na USB i +5v ) albo zewnętrzne zasilanie (złączki na +5v i INT)
3.b Zresetować przyciskiem płytkę - jeżeli podłączony jest do niej wyświetlacz, pokaże on kwadraty - zaciemnione pola oraz pisk świadczy o udanym resecie płytki.
3.c Odłącz zasilanie i wyjmij kartę pamięci.

Po instalacji rozszerzenia PlatforimIO sprawdż czy masz zainstalowaną platformę procesora LPC1768, czyli dokładnie tego jaki posiada SKR 1.3, ale również Re-ARM, stąd wgranie tego samego programu na Re-Arm najprawdopodobniej będzie wyglądało identycznie - nie licząc zmiany #135 w samym Marlinie.

Wygląda to tak :
Przechodzimy PlatformIO home -> Platforms -> wyszukuję "NXP LPC" -> jeżeli nie ma to instaluję -> restart

Jeżeli wszystko jest to otwieram projekt, nawigując do miejsca z rozpakowanym Marlinem i wybieram otwarcie "Marlin-bugfix-2.0.x"

--------------------- EDYCJA PLIKU KONFIGURACYJNEGO ----------------------------

Na początek edycja pliku konfiguracyjnego platformio.io pod środowisko procesora SKR 1.3 czyli NXP LPC1768 - zmieniamy wartość zmiennej :

env_default = LPC1768

Przechodzimy niżej do sekcji poświęconej [env:LPC1768]

Wpisujemy adres fizyczny naszego nośnika ( Karty SD ) jako wartość zmiennej :
upload_port = /media/user01/disk/

w moim wypadku jest to powyższy adres Unixowy jednak w Win10 wyglądałoby to np

upload_port = E:

( dopuszczalne jest nawet powoływanie się na porty w zapisie Windowsowym np COM3 )

upload_port = COM[3]

więcej info : http://docs.platformio.org/en/latest/pr ... pload.html

Dla spokoju ducha zapisałem jeszcze poniżej :
upload_protocol = mbed
( ponieważ ściągnąłem 2 platformy na procesory LPC176x i aby upewnić się, że nie będzie zgrzytów )

--------------------- EDYCJA MARLINA ----------------------------


Najważniejsze punkty w FW (#numer linii).
------------ stan FW na dzień 30-04-2019 - nowsze wersje Configuration.h i Configuration_adv.h moga zmienić szyk linii ----------------

Lista zmian w pliku:

Configuration.h
________________________
#76 | Autor zmian w firmware
#107 | Port na płytce
#116 | Port 2 na płytce
#127 | Wartość baudrate
#135 | Wybór płytki
#140 | Nazwa drukarki
#153 | Średnica filamentu
#372 | Termistor ekstruder
#378 | Termistor stół
#414 | Maksymalna temperatura głowicy
#420 | Maksymalna temperatura stołu
#446 - 448 | Wartości PID
#520 | Min temperatura
#606 - 613 | Logika Endstopów
#630 - 642 | Rodzaj sterownika silników
#687 | Liczba kroków na mm
#763 | Czujnik używa ZMIN
#803 | Czujnik zamocowany na stałe
#856 - 858 | Różnica odległości od dyszy - offset czujnika
#875 | Liczba zejść czujnika
#896 | Najniższy punkt zejścia
#947 - 949 | Kierunek silników XYZ
#954 | Kierunek silnika ekstrudera
#979 - 980 | Wymiary stołu
#988 | Wysokość pola roboczego
#1091 | Automatyczne poziomowanie stołu
#1106 | Debugowanie APS
#1123 | Poziomowanie stołu G26
#1136 - 1137 | Liczba punktów siatki
#1140 | Zakres ruchu APS
#1344 | Włączenie komendy M503 (EEPROM)
#1375 | Ustawienia preheat
#1555 | Obsługa karty SD
#1627 | Pozycja w menu indywidualnego zerowania osi
#1658 | LCD2004
*******************************
Configuration_adv.h
________________________
#244 | Automatyczne chłodzenie ekstrudera po przekroczeniu temperatury
#337 - 344 | Włączenie drugiego silnika w Z
#936 | BabyStepping

Wszystkie powyższe zmiany są przeze mnie przetestowane i działają na czas pisania tego posta w mojej konfiguracji.

Specyfikacja klona prusy mk2s.

Pole robocze :
X 250
Y 210
Z 210

Sterowniki silników krokowych : A4988 (x 5)
Silniki : 42BYGHM809
Czujnik indukcyjny NPN NO
Wyświetlacz LCD2004

--------------------------------------------
Ubiegając pytania dlaczego te archaiczne a4988 ?
Prostę, jeszczę się nie dorobiłem TMC2xxx. Liczę, że w niedalekiej przyszłości się to zmieni. W końcu ta płytka idealnie nadaje się, żeby do niej wrzucić tmc2130 w SPI.
--------------------------------------------
Marlin jest świetnie opisany i czytając kod i komentarze w pełni można zrozumieć co oznaczają. Ja chciałem jeszcze raz wypunktować miejsca i czasem opisać powody dlaczego wybrałem tą wartość.


#107
//włączenie portów :

Kod: Zaznacz cały

#define SERIAL_PORT 0

#define SERIAL_PORT_2 -1
#127
// szybkość przesyłu danych warto ustawić 115200 albo 250000

Kod: Zaznacz cały

#define BAUDRATE 115200
#135

Kod: Zaznacz cały

#define MOTHERBOARD BOARD_BIGTREE_SKR_V1_3
// jakże by inaczej ? :)

#153
// Średnica filamentu

Kod: Zaznacz cały

#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
// domyślnie jest 3.0

#372
//termistor ekstrudera - NTC 100k 3950

Kod: Zaznacz cały

#define TEMP_SENSOR_0 11
#378
//termistor stółu - Kapton bed termistor beta = 3950

Kod: Zaznacz cały

#define TEMP_SENSOR_BED 60

#414
//Maksymalna tempertura głowicy

Kod: Zaznacz cały

#define HEATER_0_MAXTEMP 300
//polecam dla łącznika z rurką PTFE ustawić 250/260 stopni C, powyżej tej wartości wspomniany materiał bardzo szybko się degeneruje i zatyka głowice

#428
// Włączenie ustawienia temperatury PID

Kod: Zaznacz cały

#define PIDTEMP
// dodatkowo odkomentowałem linie #433, #434 i #438 dodając opcje kalibracji do Menu

#446 - 448
// wartości PID

Kod: Zaznacz cały

#define PIDTEMP
#define DEFAULT_Kp 22.2
#define DEFAULT_Ki 1.08
#define DEFAULT_Kd 114
// nie polecam zmieniac ich jeżeli nie jest się absolutnie pewnym.

#520
//minimalna temperatura jaką musi mieć głowica, aby radełko ekstrudera wykonało ruch.

Kod: Zaznacz cały

#define EXTRUDE_MINTEMP 180
// wymaga odkomentowania #519


#606 - 613
// Zazwyczaj zwykłe krańcówki są NC (normalnie zamknięte) oznacza to, że układ jest otwarty do momentu aż nie zostanie naciśnięty przycisk, wtedy zamknie się.

Kod: Zaznacz cały

#define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING true // set to true to invert the logic of the probe.
//Ponieważ mój czujnik indukcyjny jest NPN NO ( normalnie otwarty ) podczas zbliżenia się do powierzchni aluminiowej uaktywni się zamykając układ = dając sygnał stąd
//Jeżeli nie jesteś pewny jakie powinieneś dać ustaw domyślne a po wgraniu FW i podłączeniu do komputera i pronterface wyślij komendę m119 która poda Ci status endstopów - wciśnięte powinny dawać status : "TRIGGERED", nieaktywne powinny dawać status : "open"

#630 - 642
// wybór sterowników dla każdego silnika osobno - można zostawić odkomentowane, wtedy domyślnie będzie to A4988


#687
// liczba kroków na milimetr

Kod: Zaznacz cały

#define DEFAULT_AXIS_STEPS_PER_UNIT   { 200, 200, 1600, 304.77 }
//obliczane w kalkulatorze Prusy https://blog.prusaprinters.org/calculator/
// warto zaznaczyć, że w przypadku liczby kroków w osi Z, jeżeli ma się 8mm pręt ze skokiem 2mm ale dwoma ścieżkami gwintu (jak ja) wartość ta będzie miała odzwierciedlenie w gear ratio 2:1 - silniki muszą być połączone na sztywno ( oryginalne silniki prusy ze zintegrowanymi prętami posiadają 4 ścieżki przy 8mm i skoku 2mm )


#763
//Odkomentuj jeżeli czujnik indukcyjny jest wpięty w piny Z Min

Kod: Zaznacz cały

#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
#803
//Odkomentuj w celu wybrania nieruchomego czujnika indukcyjnego lub innej na stałe zamontowanej krańcówki czy czujnika IR

Kod: Zaznacz cały

#define FIX_MOUNTED_PROBE

#856 - 858
//Różnica odległości w każdej z osi pomiędzy czujnikiem a dyszą.

Kod: Zaznacz cały

#define X_PROBE_OFFSET_FROM_EXTRUDER 25  // X offset: -left  +right  [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 15  // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0   // Z offset: -below +above  [the nozzle]
//Offset dla Z musi być liczbą całkowitą !
//Bezpiecznie nie ustawiam wartości offsetu w Z - będę korzystał później z komendy M851 i BabyStepping
//
//Dodatkowo :
//Trzeba uważać aby nie przesadzić z wartością odległości w Z ponieważ są 3 lub nawet 4 miejsca w samym Marlinie, które mają wpływ na wysokość pierwszej warstwy gdzie można nieroztropnie ustawiając nieodpowiednią wartość zrobić parę dziur w stole albo drukować tylko spaghetti.
//Pierwsza warstwa jest bardzo istotna, stąd należy ograniczyć sobie ilość miejsc odpowiedzialnych za wysokość w Z. Stąd

#875
// liczba

Kod: Zaznacz cały

#define MULTIPLE_PROBING 2
#896
//Wartość należy dobrać, tak by w przypadku wielu pomiarów wysokości przy automatycznym poziomowaniu stołu któraś wartość nie była niżej niż zakres, ponieważ wywali błąd

Kod: Zaznacz cały

#define Z_PROBE_LOW_POINT          -3 // Farthest distance below the trigger-point to go before stopping
//Ja dałem sporą wartość mimo, że maksymalna amplituda wysokości u mnie to średnio 1.5mm, ale w przypadku bardziej niefortunnych stołów będzie wystarczająca.

#947 - 949
//Kierunek silników

Kod: Zaznacz cały

#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true
//Akurat w prusie MK2s wszystkie będą odwrócone, można je również odwrócić wkładając wtyczkę od silnika odwróconą o 180 stopni : 1a 1b 2a 2b = 2b 2a 1b 1a, trzeba odwrócić wszystkie cztery kable.

#954
//dla bowdena = false

Kod: Zaznacz cały

#define INVERT_E0_DIR true
#979 - 980
// wymiary stołu

Kod: Zaznacz cały

#define X_BED_SIZE 250
#define Y_BED_SIZE 210
#988
// wysokość w Z :

Kod: Zaznacz cały

#define Z_MAX_POS 210
#1091
//automatyczne poziomowanie stołu

Kod: Zaznacz cały

#define AUTO_BED_LEVELING_BILINEAR
#1106
//zwraca wartość poziomowania stołu

Kod: Zaznacz cały

#define DEBUG_LEVELING_FEATURE
#1123 -
//Włączenie komendy g26, która pozwala sprawdzić wypoziomowanie stołu za pomocą wzoru ( załącznik )

Kod: Zaznacz cały

#define G26_MESH_VALIDATION
#if ENABLED(G26_MESH_VALIDATION)
  #define MESH_TEST_NOZZLE_SIZE    0.4  // (mm) Diameter of primary nozzle.
  #define MESH_TEST_LAYER_HEIGHT   0.2  // (mm) Default layer height for the G26 Mesh Validation Tool.
  #define MESH_TEST_HOTEND_TEMP  210.0  // (°C) Default nozzle temperature for the G26 Mesh Validation Tool.
  #define MESH_TEST_BED_TEMP      60.0  // (°C) Default bed temperature for the G26 Mesh Validation Tool.
#endif
// wartości temperaturowe są wpisane na stałe, więc trzeba pamiętać żeby mieć załadowany materiał dla nich odpowiedni

#1136 - 1137
// Liczba punktów siatki dla automatycznego poziomowania stołu :

Kod: Zaznacz cały

#define GRID_MAX_POINTS_X 3
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
// należy pamiętać, że im więcej punktów tym siatka stołu będzie zamodelowana bliżej rzeczywistości. Nie można jednak przesadzić, ponieważ będzie to proces czasochłonny. 9 lub 12 punktów odczytu w zupełności powinno wystarczyć dla stołu 250x210mm.

#1091
//odkomentowanie automatycznego poziomowanie stołu ułatwi kompensacje płaszczyzny pierwszej warstwy wydruku wobec krzywego stołu.

Kod: Zaznacz cały

#define AUTO_BED_LEVELING_BILINEAR
#1140
// granice dostępne dla czujnika. Nie polecam wpisywanie wartości zwyczajnie odejmując pole od offsetu czujnika od dyszy, należy dodać z minimum 10/15mm naddatku, aby czujnik indukcyjny wykrył metalową powierzchnie.

Kod: Zaznacz cały

#define LEFT_PROBE_BED_POSITION 35
#define RIGHT_PROBE_BED_POSITION 220
#define FRONT_PROBE_BED_POSITION 35
#define BACK_PROBE_BED_POSITION 185
#1344
//Włączenie komendy M503, która pokazuje zapisane w EEPROMIE ustawienia w terminalu drukarki :

Kod: Zaznacz cały

#define EEPROM_SETTINGS // Enable for M500 and M501 commands
//Jest to bardzo istotne i należy to odkomentować, jeżeli pozwalają zasoby pamięci -


#1375
//Ustawianie własnych wartości dla materiału, które później można wywołać z menu :

Kod: Zaznacz cały

// Preheat Constants
#define PREHEAT_1_LABEL       "PLA"
#define PREHEAT_1_TEMP_HOTEND 210
#define PREHEAT_1_TEMP_BED     60
#define PREHEAT_1_FAN_SPEED     0 // Value from 0 to 255

#define PREHEAT_2_LABEL       "PETG"
#define PREHEAT_2_TEMP_HOTEND 247
#define PREHEAT_2_TEMP_BED    75
#define PREHEAT_2_FAN_SPEED     0 // Value from 0 to 255
#1555
//Włącz obsługę karty SD, odkomentuj :

Kod: Zaznacz cały

#define SDSUPPORT

#1627
//Pozycja w Menu - home dla osi z osobna, odkomentuj :

Kod: Zaznacz cały

#define INDIVIDUAL_AXIS_HOMING_MENU
//przyda się to szczególnie do uruchomienia po raz pierwszy drukarki i sprawdzenia wszystkich endstopów i kierunków silników

#1658
//Należy odkomentować poniższe dla LCD2004

Kod: Zaznacz cały

#define REPRAP_DISCOUNT_SMART_CONTROLLER
_____________________________________________
Zmiany w Configuration_adv.h

#244
//chłodzenie ekstrudera, domyślnie implementuje funkcjonalność włączenia chłodzenia dopiero, gdy głowica prekroczy temperaturę 50 C ( zakres można to zmienić w linii #251 )

Kod: Zaznacz cały

#define E0_AUTO_FAN_PIN P2_04
// podłączanie wentylatora do HE1

#337 - 344
//Prusa posiada 2 silniki w Z, stąd w miejsce sterownika E1 wpięty zostaje sterownik dla Z2. Należy odkomentować definicje podwójnego silnika Z :

Kod: Zaznacz cały

define Z_DUAL_STEPPER_DRIVERS
#if ENABLED(Z_DUAL_STEPPER_DRIVERS)
  //#define Z_DUAL_ENDSTOPS
  #if ENABLED(Z_DUAL_ENDSTOPS)
    #define Z2_USE_ENDSTOP _XMAX_
    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
  #endif
#endif

#936
// babystepping - ekwiwalent live z adjust z FW Prusy. Dostosowuje o wysokość kładzionej warstwy o bardzo niskie wartości.

Kod: Zaznacz cały

#define BABYSTEPPING
// odkomentowana linia #943 daje funkcję edycji wartości BabyStepping po dwukrotnym wciśnięciu enkodera LCD

--------------------- WGRANIE FW NA KARTĘ ---------------------------

Po zapisaniu zmian, należy skompilować Marlina. Należy wybrać
opcję "Build" i poczekać na koniec procesu około parę minut. Po pomyślnej kompilacji ukaże się nam zielony napis "Success", dopiero wtedy można dać "Upload" - wgrywając plik na wyspecyfikowaną wcześniej ścieżkę karty SD.

Plik firmware.bin, który zawiera skompilowany system (ekwiwalent rozszerzenia .hex występującego jako efekt kompilacji systemu w Arduino IDE dla AVR) można również przenieść na kartę SD ( lub zapisać w formie backupu danych ) ręcznie.
Dokładny adres pod jakim się znajduję to ".pioenvs\LPC1768" w katalogu głównym projektu ( tym samym, gdzie plik konfiguracyjny "platformio.ini" ).


--------------------- NAPOTKANE PROBLEMY ----------------------------



////////////////

collect2: error: ld returned 1 exit status
*** [.pioenvs/LPC1768/firmware.elf] Error 1

////////////////

Błąd kompilacji - jest to problem związany z ustawieniem nieodpowiednich parametrów w Marlinie, te problemy dopóki nie zostaną odznaczone/wykomentowane nie pozwolą skompilować się FW

Przyczyną błędu może być np włączenie opcji M100 Memory watcher.

Kompilacja z opcją --verbose może dokładniej opisać miejsce błędu, jeżeli nie jest widoczne zaraz powyżej błędu.
Można również w ustawieniach IDE zmienić, aby automatycznie przeniosło nas do miejsca błędu :
PlatformIO -> Settings -> Build -> zaznaczenie opcji " Automatically scroll on build error "


////////////////

*** [upload] /dev/ttyACM3/firmware.bin: Not a directory

////////////////

Powyższy błąd wyskoczył Ci, ponieważ podłączyłeś płytkę do komputera i chcesz wgrać Marlina bezpośrednio na nią (tak jak we wszystkich płytkach AVR np Atmega2560, poprzez Arduino IDE ) - tutaj jednak jest to niepotrzebne, ponieważ FW wgrywamy na dołączoną kartę SD. . Tamże znajduję się plik firmware.bin
Ten błąd może występować w przypadku, gdy połącznie usb jest zrywane ( np kabel jest uszkodzony )

Więc należy odwołać się do ścieżki karty pamięci.

////////////////

Error: BoardConfig: Board is not defined

////////////////

W przypadku ściągnięcia Marlina 2.0 bezpośrednio z oficjalnego repozytorium Marlina a nie wersję od BigTreeTecha, wyskakiwał mi błąd braku wykrycia pł

////////////////

UnicodeDecodeError : 'ascii' codec can't decode byte 0xbf in position 8: ordinal not in range(128)

////////////////

Powyższy błąd wyskoczył Ci ponieważ w adresie katalogu programu, biblioteki, pliku konfiguracyjnego lub samego marlina posiadasz nazwę ze znakami nie w formacie ASCII - najprawdopodobniej UTF-8 czyli formatowanie typowo polskich znaków jak "ą", "ć" lub "ż". Kompilacja nie uda się, więc musisz postarać się zrobić wszystko, żeby w ścieżce roboczej (WD) nie było tych znaków - jest to problem z kodowaniem w interpreterze Pythona 2.7 nie ma na to innego obejścia ( lub ja nie znam/ nie słyszałem o takim - śmiało napisz w komentarzu jeżeli udało Ci sie obejść ten problem ). Pół biedy jeżeli jest to znak w folderze nadrzędnym lub kolejnym, najgorzej jest mieć katalog główny, w którym zainstalowane są wszyskie programy ( IDE i biblioteki ) - np jak ja :( ... tyle problemów przez głupie "ż" ;) W tymże przypadku jeżeli nie masz innego komputera lub inne konto administratora z ustawioną hierarchią folderów bez takiej przypadłości polecam zainteresować się wirtualizacja systemu.

-------------------------------------------------------------------------
Na koniec : wybaczcie, że popadłem w lekka grafomanię (być może bardziej niż powinienem), ale robienie notatek to jeden z lepszych sposobów przyswajania wiedzy, więc wrzucam to jako ściągę na przyszłość dla mnie i każdego, komu może sie to przydać. :D


PZDR!
Załączniki
Configuration.h
(75.59 KiB) Pobrany 383 razy
Configuration_adv.h
(87.71 KiB) Pobrany 361 razy
g26 pattern
g26 pattern
ścieżka
ścieżka
sukces
sukces
Jackoboo, dziobu, carving85, Marvin27, Zepco, bafunio, kapi, Abys, Dawid.S, kurczak, kamilxxg, DoktorM, timothy1989, fesou
Awatar użytkownika
carving85
Postów w temacie: 4
Posty: 399
Rejestracja: 24 gru 2018, 10:45
x 114

Re: [Poradnik] Jak wgrać Marlin 2.0 na SKR 1.3 (LPC1768) | Prusa i3 MK2s

Post autor: carving85 »

W sumie cieszę się że ja nie miałem tyle problemów z samym wgrywaniem marlina :-D
Cr10 S5
Bambu P1S
Delta Flsun QQ (wypożyczona)
Awatar użytkownika
Marvin27
Postów w temacie: 6
Posty: 709
Rejestracja: 26 paź 2017, 19:00
Lokalizacja: Wielka Wieś k./Wojnicza
Drukarka: Prusa MINI
x 170

Re: [Poradnik] Jak wgrać Marlin 2.0 na SKR 1.3 (LPC1768) | Prusa i3 MK2s

Post autor: Marvin27 »

Widzę że nieźle zagłębiłeś się w ustawienia dla PlatformIO, dzięki twojemu postowi już zaimplementowałem u siebie automatyczne zapisanie pliku bin, na kartę SD. :piwo:
matikyle
Postów w temacie: 2
Posty: 119
Rejestracja: 03 maja 2019, 17:17
Lokalizacja: Zabrze
x 24

Re: [Poradnik] Jak wgrać Marlin 2.0 na SKR 1.3 (LPC1768) | Prusa i3 MK2s

Post autor: matikyle »

Podpytam, bo widzę że ktoś już tą płytką trochę się pobawił. Czy macie problemy z retrakcją? U mnie nie działa. Silnik kręci tylko w jedną stronę tak jakby nie dostawał sygnału direction. Wysyłałem gcode i sterowałem z panelu - zawsze tylko ekstruzja. Może ktoś będzie wiedział jak podmienić E0 z E1, ponieważ sprawdziłem czy ścieżka nie jest przerwana i wszystko jest w porządku, więc chcę zamienić sterowniki miejscami.
Awatar użytkownika
Marvin27
Postów w temacie: 6
Posty: 709
Rejestracja: 26 paź 2017, 19:00
Lokalizacja: Wielka Wieś k./Wojnicza
Drukarka: Prusa MINI
x 170

Re: [Poradnik] Jak wgrać Marlin 2.0 na SKR 1.3 (LPC1768) | Prusa i3 MK2s

Post autor: Marvin27 »

matikyle pisze:Podpytam, bo widzę że ktoś już tą płytką trochę się pobawił. Czy macie problemy z retrakcją? U mnie nie działa. Silnik kręci tylko w jedną stronę tak jakby nie dostawał sygnału direction. Wysyłałem gcode i sterowałem z panelu - zawsze tylko ekstruzja. Może ktoś będzie wiedział jak podmienić E0 z E1, ponieważ sprawdziłem czy ścieżka nie jest przerwana i wszystko jest w porządku, więc chcę zamienić sterowniki miejscami.
A nie wystarczy zamienić tak w pliku pins_BIGTREE_SKR_V1.3.h

Kod: Zaznacz cały

#define E0_STEP_PIN        P2_13
#define E0_DIR_PIN         P0_11
#define E0_ENABLE_PIN      P2_12
#ifndef E0_CS_PIN
  #define E0_CS_PIN        P1_08
#endif

#define E1_STEP_PIN        P0_01
#define E1_DIR_PIN         P0_00
#define E1_ENABLE_PIN      P0_10
#ifndef E1_CS_PIN
  #define E1_CS_PIN        P1_01
#endif
na

Kod: Zaznacz cały

#define E1_STEP_PIN        P2_13
#define E1_DIR_PIN         P0_11
#define E1_ENABLE_PIN      P2_12
#ifndef E1_CS_PIN
  #define E1_CS_PIN        P1_08
#endif

#define E0_STEP_PIN        P0_01
#define E0_DIR_PIN         P0_00
#define E0_ENABLE_PIN      P0_10
#ifndef E0_CS_PIN
  #define E0_CS_PIN        P1_01
#endif
bialy_worek

Re: [Poradnik] Jak wgrać Marlin 2.0 na SKR 1.3 (LPC1768) | Prusa i3 MK2s

Post autor: bialy_worek »

matikyle pisze:Silnik kręci tylko w jedną stronę tak jakby nie dostawał sygnału direction. Wysyłałem gcode i sterowałem z panelu - zawsze tylko ekstruzja.
W Marlinie Configuration.h #923 - 928 jest taki fragment :

Kod: Zaznacz cały

// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
// :{ 0:'Low', 1:'High' }
#define X_ENABLE_ON 0
#define Y_ENABLE_ON 0
#define Z_ENABLE_ON 0
#define E_ENABLE_ON 0 // For all extruders
Jak to jest u Ciebie ?
matikyle pisze: Może ktoś będzie wiedział jak podmienić E0 z E1, ponieważ sprawdziłem czy ścieżka nie jest przerwana i wszystko jest w porządku, więc chcę zamienić sterowniki miejscami.
[...]

Chciałem zasugerować również to samo co kolega Marvin27 :D
Wielkie umysły myślą podobnie ;)
Marvin27
matikyle
Postów w temacie: 2
Posty: 119
Rejestracja: 03 maja 2019, 17:17
Lokalizacja: Zabrze
x 24

Re: [Poradnik] Jak wgrać Marlin 2.0 na SKR 1.3 (LPC1768) | Prusa i3 MK2s

Post autor: matikyle »

1. Marvin 27 - no właśnie to nie działa, po wgraniu kodu, przepięciu stepsticka i wtyczki z silnika, ekstruder w ogóle nie kręci.
2. U mnie jest tak samo, załącze zipa z configiem
Załączniki
config.zip
(54.25 KiB) Pobrany 242 razy
Awatar użytkownika
Marvin27
Postów w temacie: 6
Posty: 709
Rejestracja: 26 paź 2017, 19:00
Lokalizacja: Wielka Wieś k./Wojnicza
Drukarka: Prusa MINI
x 170

Re: [Poradnik] Jak wgrać Marlin 2.0 na SKR 1.3 (LPC1768) | Prusa i3 MK2s

Post autor: Marvin27 »

matikyle pisze:1. Marvin 27 - no właśnie to nie działa, po wgraniu kodu, przepięciu stepsticka i wtyczki z silnika, ekstruder w ogóle nie kręci.
2. U mnie jest tak samo, załącze zipa z configiem
Na początek proponował bym założyć osobny wątek odnośnie twojego problemu, tam opisać jaką masz drukarkę (typ, model itp), bo będzie off-topic.
Już na szybko też proponował bym Tobie pobrać z oficjalnego repo Marlin 2.0, a nie od BIGTREETECH, bo cały czas są zmiany na plus, a BIGTREETECH nie aktualizował nic od wydania płytki V1.3.
szkielko
Konto z ograniczeniami
Postów w temacie: 4
Posty: 5
Rejestracja: 22 maja 2019, 23:01

Re: [Poradnik] Jak wgrać Marlin 2.0 na SKR 1.3 (LPC1768) | Prusa i3 MK2s

Post autor: szkielko »

mam mały problem, zrobiłem wszytko jak w opisie a wyskakuje mi błąd


miał może ktoś coś podobnego ?
Załączniki
Bez tytułu.png
bialy_worek

Re: [Poradnik] Jak wgrać Marlin 2.0 na SKR 1.3 (LPC1768) | Prusa i3 MK2s

Post autor: bialy_worek »

Trochę mało informacji.
Widać tylko, że wyskoczyła obsługa asercji w Pythonie.

Więcej informacji daje fakt, że już po 6 sek kompilacji sie wywaliło, więc jesteś pewny, że masz dobrze skonfigurowany plik platformio.ini ? Albo na pewno masz potrzebne biblioteki ?
Najlepiej kliknij na PIO Build na lewym dolnym rogu i wybierz opcje kompilacji "PIO Verbose Build" i pokaż co wyszło na czerwono ( na żółtą są ostrzeżenia a nie błędy).

Jeżeli nie jesteś pewien czy Twoje pliki Marlina się różnią od tych które wrzuciłem możesz porównać je za pomocą programu Meld : http://meldmerge.org/ ( na linuxa i win )

--------------------------------------------

Wrzucam cały spakowany system z bibliotekami itp wraz z klasycznym : " U mnie działa :cool2: " możesz sobie podpatrzeć.

Plik będzie tutaj przez 2 tygodnie : https://we.tl/t-vDWmmFQV35
Niestety jest za duży żeby go tu wrzucić.
ODPOWIEDZ

Wróć do „Firmware'y i hosty”