GRBL i ploter - kompilacja za duża dla atmegi 328

Moderatorzy: moderatorzy2014, moderatorzy

Awatar użytkownika
mikun
Posty: 2540
Rejestracja: środa 26 maja 2010, 21:40
Lokalizacja: Poznań

GRBL i ploter - kompilacja za duża dla atmegi 328

Post autor: mikun »

Mam problem z wgraniem softu GRBL do arduino nano. Zbudowałem ploter CoreXY z serwem do rysowania pisakiem i znalazłem przygotowaną wersję GRBL pod serwo.
https://github.com/robottini/grbl-servo

Obrazek


Póki nie odkomentowałem linii #define COREXY w config.h było ok. Po odkomentowaniu arduino wyświetla że program ma 102% możliwości procesora i na tym się kończy.

Obrazek


Czy można trochę "odchudzić" GRBLa żebym mógł załadować program do arduino nano?
...i tak nie skończysz na jednym ani na dwóch :-)
Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Re: GRBL i ploter - kompilacja za duża dla atmegi 328

Post autor: miś »

Możesz spróbować zakomentować "#define MESSAGE_PROBE_COORDINATES". Jak dalej będzie za duży to odkomentuj "// #define REPORT_GUI_MODE". Tylko wtedy do GUI trzeba cośtam doinstalować (jakąś tabelę kodów błędów).

Jak to nie pomoże to możesz zyskać 1.5kB miejsca na kod (będzie max 32256 bajtów) zmieniając bootloader w arduino ze standardowego na Optiboot. Ale wymaga to też dopisania jego obsługi w arduino w pliku "boards.txt". Tu musisz pogrzebać po necie co i jak, ale za to możesz syskać 1.5kB placu w każdym arduino na mega328p w którym zmienisz bootloader.
Pzdr. -----MIŚ-----
Awatar użytkownika
pawelsky
Posty: 9750
Rejestracja: środa 19 mar 2014, 02:03
Lokalizacja: Polska
Kontakt:

Re: GRBL i ploter - kompilacja za duża dla atmegi 328

Post autor: pawelsky »

miś pisze: Ale wymaga to też dopisania jego obsługi w arduino w pliku "boards.txt".
Zamiast modyfikowac boards.txt wystarczy wybrac Arduino Uno jako platforme.
Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Re: GRBL i ploter - kompilacja za duża dla atmegi 328

Post autor: miś »

pawelsky pisze:Zamiast modyfikowac boards.txt wystarczy wybrac Arduino Uno jako platforme.
Ooo, tego nie wiedziałem. Dzięki za hinta !
Pzdr. -----MIŚ-----
Awatar użytkownika
mikun
Posty: 2540
Rejestracja: środa 26 maja 2010, 21:40
Lokalizacja: Poznań

Re: GRBL i ploter - kompilacja za duża dla atmegi 328

Post autor: mikun »

Zrobiłem Pawelsky jak napisałeś. Zmieniłem w wyborze płytki z nano na uno ale kończy się takimi błędami :

Szkic używa 31 600 bajtów z (97%) pamięci programu. Maksimum to 32 256 bajtów.
Globalne zmienne używają 1 633 bajtów z (79%) dynamicznej pamięci, pozostawiając 415 bajtów dla lokalnych zmiennch. Maksimum to 2 048 bajtów.
Niski poziom dostępnej pamięci, mogą wystąpić problemy z stabilnością.
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x0d
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x0a
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x47
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x72
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x62
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x6c
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x20
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x31
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x2e
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x31

Chyba jednak nie da się go oszukać
...i tak nie skończysz na jednym ani na dwóch :-)
Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Re: GRBL i ploter - kompilacja za duża dla atmegi 328

Post autor: miś »

bo oprócz zmiany płytki na uno musisz wgrać do płytki bootloader od uno. Weź programator USBASP i przy pomocy softu arduino i usbasp zrób "wypal bootloader" do tej płytki.
I wszystko działa. Przed chwilą potraktowałem tak dwie płytki arduino promini i już działają jako Uno i soft się wgrywa przy ustawieniu na Uno.
Pzdr. -----MIŚ-----
Awatar użytkownika
pawelsky
Posty: 9750
Rejestracja: środa 19 mar 2014, 02:03
Lokalizacja: Polska
Kontakt:

Re: GRBL i ploter - kompilacja za duża dla atmegi 328

Post autor: pawelsky »

Dokladnie jak Mis napisal. Optiboot ma jeszcze te zalete ze jest szybszy :)
Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Re: GRBL i ploter - kompilacja za duża dla atmegi 328

Post autor: miś »

I ma jeszcze jedną - ważniejszą zaletę. Umożliwia normalne używanie watchdoga w arduino.
Pzdr. -----MIŚ-----
Awatar użytkownika
mikun
Posty: 2540
Rejestracja: środa 26 maja 2010, 21:40
Lokalizacja: Poznań

Re: GRBL i ploter - kompilacja za duża dla atmegi 328

Post autor: mikun »

Dzięki Pawelsky użyłem usbasp i zrobiłem z nano, arduino uno :) i po tym program załadował się bez problemu, podłączyłem do plotera HC-05 i steruję nim z komórki. Jedyne co mam do wyczajenia to znaleźć dla serwa w kodzie odpowiednik z aparatury modelarskiej - travel adjust i subtrim. Bo teraz ośka serwa chce wyskoczyć z orbity :) ustawia się prawie na skrajnej pozycji powiedzmy 0 i zamiast iść w stronę 180st chce iść na minus 180 gdzie już nie ma zakresu.

Próbowałem sztuczek z githuba :

define RC_SERVO_SHORT 15 // Timer ticks for 0.6ms pulse duration (9 for 0.6ms)

define RC_SERVO_LONG 32 // Timer ticks for 2.5 ms pulse duration (39 for 2.5ms)

define RC_SERVO_INVERT 1 // Uncomment to invert servo direction

Zakomentowałem pierwszą linijkę bo mam zwykłe serwo SG90 i odkomentowałem invert ale nic nie dało. Ustawienia są w spindle_control.c ale dla mnie czarna magia.
...i tak nie skończysz na jednym ani na dwóch :-)
Awatar użytkownika
pawelsky
Posty: 9750
Rejestracja: środa 19 mar 2014, 02:03
Lokalizacja: Polska
Kontakt:

Re: GRBL i ploter - kompilacja za duża dla atmegi 328

Post autor: pawelsky »

mikun pisze:Zakomentowałem pierwszą linijkę
Ale dlaczego zakomentowales RC_SERVO_SHORT? Bez tego #define to tam sie beda cuda dziac (jesli sie w ogole skompiluje). Jesli juz to powinienes co najwyzej zmienic wartosc...
Awatar użytkownika
mikun
Posty: 2540
Rejestracja: środa 26 maja 2010, 21:40
Lokalizacja: Poznań

Re: GRBL i ploter - kompilacja za duża dla atmegi 328

Post autor: mikun »

Byłem pewien że tu wybiera się jedno z dwóch trybów pracy dla serw szybkich i standard.

Funkcja inwersji serwa nie działa. Jedno serwo już spaliłem/przegrzałem bo wygląda jakby program chciał je obrócić poza mechaniczną blokadę serwa. Nie wiem gdzie ustawić zakres pracy serwa, czy to się robi w spindle_control.c czy w jakimś pliku h?
...i tak nie skończysz na jednym ani na dwóch :-)
Awatar użytkownika
pawelsky
Posty: 9750
Rejestracja: środa 19 mar 2014, 02:03
Lokalizacja: Polska
Kontakt:

Re: GRBL i ploter - kompilacja za duża dla atmegi 328

Post autor: pawelsky »

mikun pisze:Byłem pewien że tu wybiera się jedno z dwóch trybów pracy dla serw szybkich i standard.
Nie, w ten sposob ustawiasz gorny i dolny zakres dlugosci pulsow (co zreszta opisano w komentarzach). Nie powinienes tego zakomentowywac bo zrobisz w kodzie kaszane.
ODPOWIEDZ