grblHAL

Rozmowy dotyczące oprogramowania sterującego maszynami CNC i sterowników CNC obrabiarek numerycznych
Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 11
Posty: 9295
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

grblHAL

#1

Post napisał: tuxcnc » 21 kwie 2024, 18:31

Jak zwykle przypadek...
W jednej ze swoich frezarek mam sterowanie na płytce MKS DLC32 z wgranym FluidNC.
Ogólnie to rozwiązanie zaspokajało potrzeby, ale jest tam wgrana dość stara wersja i chciałem ją uaktualnić, ale bez ingerowania w używany sterownik (zamontować nowy, a stary na razie do szuflady).
Niestety, a może stety, okazało się, że nie mam wolnej płytki DLC32, za to mam wolną TinyBee...
Ponieważ nie chciało mi się pisać nowego pliku konfiguracyjnego, a płytki sporo się różnią, choć obie są na ESP32, postanowiłem wypróbować wspominany niedawno w innym wątku grblHAL.
Pierwsze wrażenia nie są najlepsze.
Na stronie http://svn.io-engineering.com:8080/?dri ... bee%20V1.0 jest generator firmware.
Niestety, jak ktoś nie jest w temacie, to za cholerę nie poradzi sobie z konfiguracją...
Ja potrzebowałem co najmniej cztery osie, więc wybrałem konfigurację z pięcioma osiami, bo nie ma co sobie żałować.
Trochę szkoda, że się nie da ustawić sześciu osi (tyle obsługuje GRBL z którym grblHAL jest w dużym stopniu, ale nie całkowicie kompatybilny). Oczywiście sterownik ma tylko pięć gniazdek na stepsticki. ale jaki problem wyprowadzić sygnały do zewnętrznego drajwera?
Przez konfigurację przebrnąłem i zażyczyłem sobie "Generate and download"... Generatorowi ślimaki się rozbiegły, ale po jakimś czasie dostałem plik z firmware.
Tutaj pojawił się problem jak go wgrać w płytkę TinyBee...
Niby wiadomo, że do tego służy esptool.py, dostarczany za darmo przez producenta ESP32.
Instalacja narzędzia na Linuksie jest banalnie prosta, miłośnicy najlepszego systemu operacyjnego jaki kiedykolwiek wymyślono będą mieli pod górkę. Nie to że się nie da, ale na Windows z zasady są problemy i nawet jak się uda zainstalować, to działa to tak sobie...
Ale wróćmy do pingwina, ja używam do codziennej pracy Ubuntu 22.04.2. Instalacja esptool.py sprowadza się do:

Kod: Zaznacz cały

pip install esptool
Niestety, tutaj łatwo się kończy.
To jest program działający w terminalu i wymaga długiego ciągu parametrów. Nie żeby było w tym coś złego, tylko po prostu dla ludzi przyzwyczajonych do klikania we wszystko, będzie to horror...
Żeby było gorzej, to w archiwum otrzymanym z generatora są nie tylko pliki firmware, bootloadera i partycji (ESP32 tak jest skonstruowany, że wymaga wgrania tego wszystkiego), ale też plik ReadMe.txt.
Plików readme zwykle nikt nie czyta, ale ten jest wyjątkowo ważny, bo zawiera adresy, pod które trzeba wgrać otrzymane pliki.
Oczywiście wgranie pod inne adresy ESP32 nie zepsuje, ale spowoduje, że płytka działać nie będzie...
U mnie ten plik zawiera następującą treść:

Kod: Zaznacz cały

Flash adresses:

bootloader.bin 0x1000
partitions.bin 0x8000
firmware.bin   0x10000
Napisałem sobie skrypt, żeby nie klepać jak idiota w klawiaturę za każdym razem i wygląda on tak:

Kod: Zaznacz cały

#!/bin/bash
esptool.py -p /dev/ttyUSB0 -b 460800 --before default_reset --after hard_reset --chip esp32 write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x1000 bootloader.bin 0x8000  partitions.bin 0x10000 firmware.bin
To jest naprawdę długa linia i trzeba przewinąć żeby zobaczyć lub skopiować całość...
Zaprogramowanie przebiegło bez żadnych problemów.
Trzeba tylko po pobraniu nowego firmware sprawdzić, czy nie zmieniły się adresy, no i oczywiście czy nasz TinyBee jest na porcie ttyUSB0, bo może być na innym.
No i tutaj zdarzyło się najgorsze.
Sterownik podłączyłem i uruchomiłem program bCNC, który polubiłem i z którego jestem zadowolony.
Udało się zainicjować połączenie, po czym okazało się, że sterownik jest martwy...
To jest naprawdę paskudna sytuacja, kiedy użytkownika wysadza się w lesie i niech sam szuka drogi...
Udało mi się jednak zdobyć potrzebne informacje.
Otóż od razu wiedziałem gdzie jest problem, bo program wyświetlał alarm, że krańcówki i inne sygnały wejściowe są w stanie aktywnym, a być nie powinny. W GRBL, a także w grblHAL sygnały wejściowe neguje się wpisując odpowiednią maskę w odpowiedni parametr $, tylko nie da się tego zrobić kiedy kontroler nie reaguje na komunikację...
Rozwiązanie narzuca się samo, ale ponieważ nie miałem pewności czy nie chodzi o coś innego poszukałem w dokumentacji grblHAL. Okazało się że tak ma być i sterownik nie ruszy dopóki mu się wszystkich wejść nie zewrze do masy, czyli używa czujników NPN NC.
Dlaczego nikt nie pomyślał, żeby domyślnie zanegować wejścia?
Przecież lepiej by było żeby goła płytka działała i można było sobie ją dowolnie skonfigurować, niż żeby nie działała dopóki nie pozwiera się wejść...
Tak czy inaczej wejścia musiałem wcześniej czy później znaleźć, no to wyszło że jednak wcześniej.
Znowu droga przez mękę, bo trzeba porównywać trzy pliki https://github.com/makerbase-mks/MKS-Ti ... %20SCH.pdf https://github.com/makerbase-mks/MKS-Ti ... %20PIN.pdf https://github.com/grblHAL/ESP32/blob/m ... _1_0_map.h
No i znowu, jak ktoś jest zielony, to za cholerę sobie nie poradzi, bo podstawowe wejścia łatwo znaleźć, ale tych dodatkowych dla 4 i 5 osi już nie, bo są na złączach formalnie przeznaczonych do innego celu.
Może z konfiguracją trzech osi nie jest tak tragicznie, ale jak się ma pięcioosiową płytkę, to fajnie by było wykorzystać wszystkie jej możliwości...
Na razie więcej testów robić nie będę, bo się zmęczyłem...

A teraz dobre wieści.
1. TinyBee ma potężne mosfety mocy, ale sterowane przez układ zwiększający ilość wejść zbudowany na rejestrach przesuwających. Praktycznie wyklucza to użycie tych mosfetów do sterowania wrzeciona PWM (teoretycznie dałoby się to zrobić, ale efekt mógłby być niezadowalający). W grblHAL jest jednak możliwość wysłania sygnału PWM na inne wyjście. jest to co prawda sygnał o napięciu 3,3V i wymaga wzmocnienia w dodatkowej płytce, ale nie jest to ani specjalnie drogie, ani specjalnie trudne. Tak więc wrzeciono z PWM da się skonfigurować bez grzebania w kodzie źródłowym i samodzielnej kompilacji firmware.
2. grblHAL obsługuje tokarkę z enkoderem wrzeciona. Oczywiście tego nie sprawdzałem, ale tak wynika z dokumentacji. To świetna wiadomość, bo prawie wszyscy autorzy sterowników CNC mają jakąś niechęć do tokarek. Nie chodzi tylko o rozwiązania amatorskie, ale też komercyjne - jak chcesz gwintować, to bez wydania kilku tysięcy nie da rady...
Jeżeli będzie to przyzwoicie działało w sterowniku za 80 PLN, to będzie to rewelacja...




drzasiek90
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 9
Posty: 2327
Rejestracja: 25 kwie 2016, 11:58
Lokalizacja: Jodlowa
Kontakt:

Re: grblHAL

#2

Post napisał: drzasiek90 » 21 kwie 2024, 21:27

tuxcnc pisze:
21 kwie 2024, 18:31
To jest naprawdę paskudna sytuacja, kiedy użytkownika wysadza się w lesie i niech sam szuka drogi...
No nie do końca tak.
Gdyby nie było wiadomo o co chodzi i autor o tym milczał, to mógłbyś się poczuć wysadzony w lesie. Tymczasem dokumentacja ten przypadek opisuje:
IMPORTANT! grblHAL defaults to normally closed (NC) switches for inputs, if none are connected when testing it is likely that the controller will start in alarm mode.
Temporarily short the Reset, E-Stop and Safety Door4 inputs to ground or invert the corresponding inputs by setting $14=73 to avoid that.
Please check out this Wiki page for additional important information.
Żeby było śmiesznie, trafiłem na ten wpis na pierwszej stronie którą wygooglowalem na temat halgrbl.
https://github.com/grblHAL/core
tuxcnc pisze:
21 kwie 2024, 18:31
2. grblHAL obsługuje tokarkę z enkoderem wrzeciona. Oczywiście tego nie sprawdzałem, ale tak wynika z dokumentacji. To świetna wiadomość, bo prawie wszyscy autorzy sterowników CNC mają jakąś niechęć do tokarek. Nie chodzi tylko o rozwiązania amatorskie, ale też komercyjne - jak chcesz gwintować, to bez wydania kilku tysięcy nie da rady...
Jeżeli będzie to przyzwoicie działało w sterowniku za 80 PLN, to będzie to rewelacja...
Ale nie obsluguje twojego ulubionego kodu G33.1
- Non-Modal Commands: G4, G10L2, G10L20, G28, G30, G28.1, G30.1, G53, G65*****, G92, G92.1
- Additional Non-Modal Commands: G10L1*, G10L10*, G10L11*
- Motion Modes: G0, G1, G2****, G3****, G5, G5.1, G38.2, G38.3, G38.4, G38.5, G80, G33*
- Canned cycles: G73, G81, G82, G83, G85, G86, G89, G98, G99
- Repetitive cycles: G76*
- Feed Rate Modes: G93, G94, G95*, G96*, G97*
- Unit Modes: G20, G21
- Scaling: G50, G51
- Lathe modes: G7*, G8*
- Distance Modes: G90, G91
- Arc IJK Distance Modes: G91.1
- Plane Select Modes: G17, G18, G19
- Tool Length Offset Modes: G43*, G43.1, G43.2*, G49
- Cutter Compensation Modes: G40
- Coordinate System Modes: G54, G55, G56, G57, G58, G59, G59.1, G59.2, G59.3
- Control Modes: G61
- Program Flow: M0, M1, M2, M30, M60
- Coolant Control: M7, M8, M9
- Spindle Control: M3, M4, M5
- Tool Change: M6* (Two modes possible: manual** - supports jogging, ATC), M61
- Switches: M48, M49, M50, M51, M53
- Input/output control***: M62, M63, M64, M65, M66, M67, M68
- Return from macro*****: M99
- Valid Non-Command Words: A*, B*, C*, D, E*, F, H*, I, J, K, L, N, P, Q*, R, S, T, U*, V*, W*, X, Y, Z

* driver/configuration dependent. W axis only available when ABC axes are remapped to UVW or when lathe UVW mode is enabled.
** requires compatible GCode sender due to protocol extensions, new state and RT command.
*** number of inputs and outputs supported dependent on driver implementation.
**** supports multi turn arcs from build 20220718.
***** requires keypad macros plugin or SD card plugin. Nesting is not allowed.
https://github.com/grblHAL/core/wiki/Ad ... nd-M-codes

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 11
Posty: 9295
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: grblHAL

#3

Post napisał: tuxcnc » 21 kwie 2024, 22:06

drzasiek90 pisze:
21 kwie 2024, 21:27
Ale nie obsluguje twojego ulubionego kodu G33.1
I nigdy obsługiwał nie będzie, choćby z uwagi na jednofazowy enkoder, który prędkość zmierzy, ale kierunku nie rozpozna.
Ale nie przesadzajmy i nie wymagajmy cudów od sterowania za 80 PLN.

Dodane 11 minuty 1 sekunda:
drzasiek90 pisze:
21 kwie 2024, 21:27
Tymczasem dokumentacja ten przypadek opisuje
Opisuje i też to znalazłem.
Popełniasz jednak poważny błąd logiczny.
Otóż przyczyny poprzedzają skutki, a nigdy na odwrót.
Nie szuka się rozwiązania, jeśli nie natrafi się na problem.
Prawda jest taka, że bierzesz sterownik, wgrywasz firmware i okazuje się, że nie działa. Dopiero wtedy szukasz przyczyny i rozwiązania.
A może być inaczej. Może być domyślnie ustawione NO, bo wtedy goły sterownik ruszy, a każdy sobie sam przestawi, jeśli będzie taka potrzeba.
Moim zdaniem to jest błąd i utrudnianie życia innym, bo ktoś się zafiksował, że czujnik NC jest odporniejszy na zakłócenia przy wejściu CMOS o napięciu pracy 3,3V.


drzasiek90
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 9
Posty: 2327
Rejestracja: 25 kwie 2016, 11:58
Lokalizacja: Jodlowa
Kontakt:

Re: grblHAL

#4

Post napisał: drzasiek90 » 22 kwie 2024, 15:23

Sądzę, że autor tego rozwiązania miał w tym jakiś zamysł. Może, gdyby opisane zostało dlaczego tak jest, łatwiej byłoby się ustosunkować.
Nie twierdzę, że to dobre rozwiązanie, nie twierdzę też, że głupie. Zapewne jest to forma zabezpieczenia przed jakimś przypadkiem, może autor po prostu jest przewrażliwiony.
Przyczyny poprzedzają skutki, ale w gruncie rzeczy dokumentację/instrukcje powinno się przeczytać przed użyciem a nie dopiero w momencie napotkania problemów.
Oczywiście nikt, albo mało kto tak robi, bo z natury człowiek niecierpliwy i chce widzisz szybko efekty.

Co do enkodera... Trochę mnie to dziwi, dlaczego nie można tego odczytać i obsłużyć porządnie? Przecież to nie jest specjalnie trudne. Jestem w stanie w jeden wieczór od zera napisać program na stm32 który wykona g33.1 sterując jedną czy nawet dwoma osiami.
Na esp32 nie pisze, więc zajęłoby mi to dłużej.

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 11
Posty: 9295
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: grblHAL

#5

Post napisał: tuxcnc » 22 kwie 2024, 17:05

drzasiek90 pisze:
22 kwie 2024, 15:23
Jestem w stanie w jeden wieczór od zera napisać program na stm32 który wykona g33.1 sterując jedną czy nawet dwoma osiami.
Na esp32 nie pisze, więc zajęłoby mi to dłużej.
Teraz sprawdziłem dokładniej i z tą obsługą enkodera nie jest tak różowo, bo jest dostępna tylko dla niektórych procesorów, np. stm32F4.
Jak znajdę trochę czasu, to temat będę drążył...


drzasiek90
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 9
Posty: 2327
Rejestracja: 25 kwie 2016, 11:58
Lokalizacja: Jodlowa
Kontakt:

Re: grblHAL

#6

Post napisał: drzasiek90 » 22 kwie 2024, 17:24

Czyli do tokarki nadal zostaje linuxcnc którego większość rozpoczynających się boi.
Chociaż nie wiem czy boją się linuxcnc czy samego Linuxa.

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 11
Posty: 9295
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: grblHAL

#7

Post napisał: tuxcnc » 22 kwie 2024, 18:05

drzasiek90 pisze:
22 kwie 2024, 17:24
Czyli do tokarki nadal zostaje linuxcnc którego większość rozpoczynających się boi.
Chociaż nie wiem czy boją się linuxcnc czy samego Linuxa.
Chyba przesadzasz.
Black Pill z STM32F411 kosztuje 20 PLN z wliczoną wysyłką.
Oczywiście to nie to samo co gotowy kontroler CNC, ale użyć się go da.
Pisałem, że temat będę drążył, więc zalecam trochę cierpliwości...


drzasiek90
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 9
Posty: 2327
Rejestracja: 25 kwie 2016, 11:58
Lokalizacja: Jodlowa
Kontakt:

Re: grblHAL

#8

Post napisał: drzasiek90 » 22 kwie 2024, 18:52

tuxcnc pisze:
22 kwie 2024, 18:05
ale użyć się go da.
Ty się bawisz. Masz czas i sprawdzasz jak ci się chce. Jak ci się nie chce albo nie działa to odkładasz k masz to gdzieś.
Natomiast jeśli ktoś buduje tokarkę cnc to nie chce eksperymentować tylko zastosować coś co jest, przetestowane i działa...
tuxcnc pisze:
22 kwie 2024, 18:05
Pisałem, że temat będę drążył
Jeśli będzie jak z colorcnc i linuxcnc-rio to nie ma się co nastawiać...
Chyba, że do 3 razy sztuka.

Ja nie jestem wrogiem nowych rozwiązań, natomiast jestem realistą i wiem, że przekonanie kogoś do nowego rozwiązania nie jest łatwe.


qqaz
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 2344
Rejestracja: 28 sty 2007, 16:12
Lokalizacja: Łódź

Re: grblHAL

#9

Post napisał: qqaz » 22 kwie 2024, 19:29

taka uwaga zielonego ( i leniwego)
Biorę płytę, wtykam do czystego PC (lub gdzie trzeba) i po czasie na ekranie wyświetla się pulpit i README z instrukcją podstawowego ustawienia robionego już przez użytkownika

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 11
Posty: 9295
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: grblHAL

#10

Post napisał: tuxcnc » 22 kwie 2024, 19:50

drzasiek90 pisze:
22 kwie 2024, 18:52
Jeśli będzie jak z colorcnc i linuxcnc-rio to nie ma się co nastawiać...
Weź się wreszcie ode mnie odpieprz.
Jestem wolnym człowiekiem i to ja decyduję czym się mam zajmować, a nie Ty.
Zresztą tłumaczyłem Ci dlaczego tamte projekty utknęły, ale Ciebie to nie interesuje, bo jakbyś przyjął to do wiadomości, tobyś nie miał się do czego pr***ieprzać...
Na ColorCNC uruchomiłem tokarkę, stwierdziłem że działa, ale doszedłem do wniosku, że przerabianie chińskiego PCB pod mikroskopem, to idiotyczny pomysł. Dla testów, to się można bawić, ale do pracy to musi być pewne w użyciu i bezawaryjne.
A na Rio po prostu nie mam czasu.
Prędzej się wezmę za Remorę na EC500, która też czeka w kolejce...

Wracając do grblHAL, to tutaj jest trochę inna sytuacja - jest generator firmware, które podobno działa.
Wgrałem uzyskany firmware do STM32F411 i jest ten sam numer - niby działa, ale nic nie zrobię dopóki nie pozwieram wszystkich wejść do masy. Na płytce mam trzy piny masy, a zewrzeć muszę siedem pinów wejściowych, więc muszę zrobić sprytny kabelek, coś a la miotła, bo nie chcę płytki spalić odstawiając druciarstwo...

Co do samego grblHAL jako programu, to znalazłem jeszcze to: https://github.com/grblHAL/core/wiki/Ex ... ow-control
Jeśli to działa tak jak obiecują, to naprawdę jest potęga...
LinuxCNC nie dogonią, ale do prostszych zastosowań to może być porównywalna funkcjonalność...

Dodane 50 sekundy:
qqaz pisze:
22 kwie 2024, 19:29
taka uwaga zielonego ( i leniwego)
Biorę płytę, wtykam do czystego PC (lub gdzie trzeba) i po czasie na ekranie wyświetla się pulpit i README z instrukcją podstawowego ustawienia robionego już przez użytkownika
Nikt Ci nie broni sobie pomarzyć...
Tylko co to ma wspólnego z tematem?

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Ogólne Dyskusje na Temat Systemów Sterowania CNC”