GRBL na procesoru ARM

arduino, teensy, atmega, pic a jine (software, hardware)
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

20. 4. 2018, 6:37

Jen taková páteční úvaha/povzdech.

Docela se mi líbí projekt GRBL, tedy CNC řídicí systém na procesoru AVR (na Arduinu).
Ale pro změnu se mi moc nelíbí Arduino jako takové, resp. přijde mi to zbytečně slabý HW na takovou úlohu, když dneska za stejně peníze můžu mít nějakou desku s ARMem, který je 4x výkonnější a má výrazně víc paměti.
Tak jsem hledal nějaký fork GRBL pro ARM. Teoreticky jich pár existuje, ale jak jsem následně zjistil praktickými pokusy, tak je to vždy takové nedovařené, v podstatě spíš pokus než reálně použitelný systém.

Tak jsem to začal podrobněji studovat, vzal jeden z těch forků a začal ho předělávat.
Povedlo se mi vyčistit největší chyby a nějak to rozjet. Dosažené parametry nejsou špatné, na desce Blue pill
https://www.aliexpress.com/item/1-pices ... 34610.html" onclick="window.open(this.href);return false;
jsem se dostal na maximální frekvenci kroků přes 150kHz se slušnou přesností jejich časování tak do 1us (původní GRBL na AVR jede max 30kHz s horší přesností).

Jenže když jsem tak do toho pronikal hlouběji, tak jsem si řekl, že pokud by to mělo být fakt dobré, tak by to chtělo tu modifikaci pro ARM od základu předělat.
No a tak jsem teď takovej nerozhodnej co dál.
Jestli do toho jít pořádně, vzít asi za základ původní GRBL pro AVR a celou tu HW modifikaci napsat komplet znovu a pořádně. Je to ale spousta práce, velké desítky nebo spíš stovky hodin práce. Výhoda by mimo jiné byla (kdybych to teda dodělal), že bych to napsal portabilně, aby se to dalo provozovat i na novějších procesorech. Pokrok nezastavíš, takže se už za málo peněz dají koupit procesory 2-4x výkonnější než ten co je na Blue pill.
Nebo jestli ještě trochu pošolíchat ten existující a už trochu opravený klon, případně průběžně opravovat další chyby na které narazím, a brát to tak, že na hraní to stačí.
No a nebo se na to celé úplně vyprdnout a jít si hrát s něčím jiným, např. s externím stepgenem pro LinuxCNC (něco jako jednoduchá "Mesa", ale na levném a snadno dostupném HW).

Co myslíte?
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22371
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

20. 4. 2018, 6:43

Dostat to na uroven linuxcnc je moc prace pro jednotlivce
Ja bych se primlouval za dalsi hw k linuxcnc
Treba neco na tema 7i76E
Tj po ethernetu
Pak pouzijes treba beagle... Plus tvuj hw na stepgeny
Vsechna prava na chyby vyhrazena (E)
Uživatelský avatar
packa
Příspěvky: 6935
Registrován: 7. 2. 2007, 6:42
Bydliště: Královehradecký kraj

20. 4. 2018, 7:14

Na netuje několik projektů GRBL na arduino due což má slušný procesor 32-bit 84MHz ARM CPU, 512KB flash memory, 94KB SRAM
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

20. 4. 2018, 7:18

robokop píše:Dostat to na uroven linuxcnc je moc prace pro jednotlivce
Ja bych se primlouval za dalsi hw k linuxcnc
Treba neco na tema 7i76E
Tj po ethernetu
Pak pouzijes treba beagle... Plus tvuj hw na stepgeny
No jo, máš pravdu. GRBL nikdy nebude mít možnosti a rozsah LinuxCNC.
Ale zase je proklatě levné a malé, takže ke všelijakým těm malým gravírkám, laserům, plotrům a vrtačkám na tišťáky to sedne jak prdel na hrnec.

Můj handicap/vlastnost je taková, že umím a baví mě napsat něco nového, ale moc mě nebaví a ani mi to moc nejde lézt do něčeho stávajícího, dělat reverse-engineering a snažit se zjistil, co tím autor chtěl říct.
Proto je pro mě pořád ještě třeba LinuxCNC v mnoha oblastech terra incognita. Už párkrát jsem se odhodlával k tomu, že nastuduju, jak komunikuje jádro se stepgeny, abych mohl napsat interface pro svůj vlastní HW. Ale vždycky jsem to vzdal ještě dřív, než jsem začal.

Pokud by se dělal nějaký externí stepgen-generátor pro LinuxCNC, tak by se mi skoro zdála lepší platforma RaspberryPi než BeagleBone. To RPi je levnější a dostupnější, má mnohem širší komunitu uživatelů a je už dneska o dost HW výkonnější. Samozřejme Beagle má jiné přednosti, má ty svoje PRU a líp udělaný Ethernet, ale to by se tady stejně moc neuplatnilo (pokud by se tedy stepgen nenapsal na PRU, ale to už existuje, tam bych se netlačil).

Pokud bych dělal nějaký stepgen na Blue pill, tak bych tomu dal interface SPI, případně USB. Na RPi nebo Beagle by to jelo přes SPI, takže by se prostě nacvakla malá přídavná deska přímo na desku RPi/BB. Na PC by to pak mohlo jet přes USB, případně přes LPT. To LPT by se mi líbilo víc, ale to už by asi Blue pill nezvládl, nemá tolik volných noh.
Uživatelský avatar
packa
Příspěvky: 6935
Registrován: 7. 2. 2007, 6:42
Bydliště: Královehradecký kraj

20. 4. 2018, 7:21

tohle vypadá nadějně a něco se kolem toho děje : https://github.com/synthetos/g2/wiki/Ar ... for-g2core" onclick="window.open(this.href);return false;
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

20. 4. 2018, 7:30

packa píše:Na netuje několik projektů GRBL na arduino due což má slušný procesor 32-bit 84MHz ARM CPU, 512KB flash memory, 94KB SRAM
Ano i ne, spíš ne.
Ono to vypadá, že jo, a že není problém. Jenže situace je tam podobná jako s klony pro STM32. Všechno jsou to projekty, které usnuly ve fázi "nějak to jede a něco to dělá", dál jsou mrtvé a neudržované.
Nebo znáš nějaký živý a funkční fork, který se dá nasypat do Due a spustit frézování? Pokud ano, tak by to byla dobrá cesta.

Pro Arduino Due je zajímavý systém Tiny G2. Jenže autoři tady zvolili pro komunikaci protokol JSON, že je to hrozně moderní a prostě super. Jenže bohužel jejich nadšení nesdílejí autoři G-code senderů, tj. toho SW, který jede na PC nebo tabletu a komunikuje s tou deskou. Takže asi jediný použitelný systém je Chilipeppr, který je taky děsně moderní, takže jede v prohlížeči. Jenže mně kombinace WWW prohlížeč a řízení CNC prostě dohromady neštimuje.
Už jsem dokonce koketoval s myšlenkou upravit ten TinyG2 tak, že by se mu udělal interface, kompatibilní s GRBL. Tím by se daly použít všechny ty GRBL sendery, kterých je spousta. Ale to jsou taky mraky práce, navíc pro mě ne moc příjemné.
QNX
Příspěvky: 3701
Registrován: 20. 12. 2006, 9:59
Kontaktovat uživatele:

20. 4. 2018, 7:43

GRBL na procesoru ARM by bylo super.
bronek999
Příspěvky: 521
Registrován: 6. 3. 2014, 6:50

21. 4. 2018, 7:26

Je to uz rok dva co som sa hral s tiny g2. Na arduine duo, s diplejom a sd kartou.. ,Zaujimave bolo ze to ma podporu pre rotacnu os. Na rozdiel od grbl. Myslim ze to vie podporovat aj textove g kody, netreba json. Rulu do ohna za to nedam, ale pamatam si to tak.Grbl bezi na preruseniach, popri praci zvlada hocico. Displej,sd kartu. Tiny g2 nie, vsetko bezi v loope a tie khz co tam autori udavaju nie su realne. Ano da to 400khz. Ale neda to 380khz.
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

21. 4. 2018, 9:41

bronek999 píše:Je to uz rok dva co som sa hral s tiny g2. Na arduine duo, s diplejom a sd kartou.. ,Zaujimave bolo ze to ma podporu pre rotacnu os. Na rozdiel od grbl. Myslim ze to vie podporovat aj textove g kody, netreba json. Rulu do ohna za to nedam, ale pamatam si to tak.Grbl bezi na preruseniach, popri praci zvlada hocico. Displej,sd kartu. Tiny g2 nie, vsetko bezi v loope a tie khz co tam autori udavaju nie su realne. Ano da to 400khz. Ale neda to 380khz.
Ano, nějaké plaintextové rozhrani TinyG2 taky má, ale není kompatibilní s GRBL, takže to nikdo další nepodporuje. Jinak JSON je ve finále taky textový.

GRBL jede na přerušeních, ale má se fakt co otáčet. Každý krok jsou 2 přerušení - jedno na konci pulzu a druhé na konci kroku. Takže když to má zvládnout frekvenci pulsů 150kHz, tak je to 300 tisíc přerušení za sekundu. Žádná sranda. A to ještě mezitím musí zvládat přerušení od komunikace a samozřejmě dekódování G-kódu a plánování trajektorie.
harvie
Příspěvky: 13
Registrován: 7. 3. 2017, 1:43

26. 11. 2020, 4:07

Mrkni na grblHAL, rozšiřuje GRBL o vrstvu pro portaci na různé procesory. (můj favorit je ESP32, ale má málo pinů. STM32 je taky zajímavé). Seznam podporovaných procesorů je zde:

https://github.com/terjeio/grblHAL/tree/master/drivers

Jako bonus to nyní podporuje ovládání čínských invertorových vřeten přes modbus...
Grad
Příspěvky: 2073
Registrován: 13. 7. 2014, 9:32

26. 11. 2020, 6:14

ARM by nebyl špatnej, ale ten už je na seznamu v odkazu od harvie, takže by to nebyla příjemná práce od 0 :wink:
Přimlouval bych se za nějaký funkční HW na ethernet, jak psal již robokop, pak se to dá provozovat třeba i na tomto https://developer.nvidia.com/embedded/j ... eloper-kit
harvie
Příspěvky: 13
Registrován: 7. 3. 2017, 1:43

26. 11. 2020, 6:38

Grad píše: 26. 11. 2020, 6:14 Přimlouval bych se za nějaký funkční HW na ethernet
ESP32 ma wifi... cenove to vyjde vyrazne lip nez jetson, pokud se spokojis s bezdratem...
Uživatelský avatar
zz912
Příspěvky: 1348
Registrován: 25. 5. 2008, 7:16

27. 11. 2020, 10:36

A co Tvůj projekt s Orange-Pi? Nějak nerozumím tomu proč se ženeš za nejnejnejnejlevnější variantou hardware+software pro CNC hračky. Kdysi jsem za svoje první Arduino Mega dával 1500Kč, dneska Arduino NANO stojí z číny cca 30Kč. To samé se dá očekávat u jednodeskových počítačů.
LinuxCNC - MESA 7i96
zz912.webnode.cz
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

27. 11. 2020, 6:34

zz912 píše: 27. 11. 2020, 10:36 A co Tvůj projekt s Orange-Pi? Nějak nerozumím tomu proč se ženeš za nejnejnejnejlevnější variantou hardware+software pro CNC hračky. Kdysi jsem za svoje první Arduino Mega dával 1500Kč, dneska Arduino NANO stojí z číny cca 30Kč. To samé se dá očekávat u jednodeskových počítačů.
Nepomíchali se Ti nějak dohromady lidi, vlákna a předměty?
Podle dotazu na OrangePi soudím, že to bylo mířeno na mě. Ale nadšené ódy na grblHAL tady píše někdo jiný.

Ale když už ses zeptal:
podle mě je pro různé činnosti dobré používat různá nástroje. Takže někde se hodí třeba LinuxCNC na velkém PC, někde je fajn LinuxCNC na nějaké malé desce, jinde zase líp sedne GRBL nebo jiný systém na minimalistickém hardware.
U mě je to ještě silnější proto, že mě to poznávání a vývoj baví, i když to v praxi k ničemu nepotřebuju.
Je to jako se ženskýma - člověk má tendenci balit baby, i když má doma manželku. Přesto, že ho to stojí úsilí, peníze a hrozí průser. Ale prostě je to zase něco nového.

K tomu OrangePi: samo o sobě to chodí docela pěkně, a vypadá to, že i spolehlivě. Ale zatím jsem odložil měření přesnosti. Měl jsem takový nepodložený pocit, že tam vzniká nějaká nepřesnost v generovaných průbězích. Ale jak píšu - důkaz nemám, neměřil jsem to.

Neměřil proto, že jsem se pak upnul na zprovoznění EtherCATu na téhle desce. No a tady jsem narazil na problém, který souvisí nikoli přímo s OPi, ale s EtherCAT serverem IgH, který se na LinuxCNC používá. Ten totiž při použití neupravených driverů síťové karty padá. A to i na PC. Takže stejně jako na PC to na OPi běhá, ale občas to padá.

Takže asi jediná možnost, jak to spolehlivě rozjet, je napsat upravený driver síťovky pro OPi. Jenže to je táááákhle moc práce.
No a tak jsem si řekl, že když už do toho případně budu dávat tolik úsilí, zkusím to udělat spíš pro něco rozšířenějšího, a to pro RaspberryPi 4.
Takže to je lehký úhybný manévr od OPi. Ale pokud se mi to povede na RPi, tak se k tomu OPi možná vrátím.
Z OPi jsem zatím udělal multimediální centrum. A asi na něho přehodím i řízení některých domácích technologií, které zatím dělá staré PC.

Jinak v praxi používám na frézce LinuxCNC na PC, na soustruhu bude LinuxCNC s EtherCATem (pokud to vyjde, tak na RPi/OPi), na laserech mám GRBL a případně vlastní SW, na tištáky používám střídavě LCNC a GRBL. Chvíli jsem provozoval i TinyG2. Na hraní pak LCNC + různé Mesy (nepřipojeno ke stroji) a další systémy.

Nepochopil jsem Tvou poznámku, že jednodeskové počítače budou stát velmi málo. Myslím, že jejich cena je dneska stlačená na krev a dolů už nepůjde. Budou se ale samozřejmě zlepšovat parametry.
Uživatelský avatar
zz912
Příspěvky: 1348
Registrován: 25. 5. 2008, 7:16

27. 11. 2020, 7:27

Mex píše: 27. 11. 2020, 6:34 Nepomíchali se Ti nějak dohromady lidi, vlákna a předměty?
Podle dotazu na OrangePi soudím, že to bylo mířeno na mě. Ale nadšené ódy na grblHAL tady píše někdo jiný.
No byla to reakce na Tvůj úplně první příspěvek v tomto vláknu. Pochopil jsem , že se ptáš na názor zdejších členů tohoto fóra, zda :
Mex píše:Jestli do toho jít pořádně, vzít asi za základ původní GRBL pro AVR a celou tu HW modifikaci napsat komplet znovu a pořádně.
Mex píše:No a nebo se na to celé úplně vyprdnout a jít si hrát s něčím jiným, např. s externím stepgenem pro LinuxCNC (něco jako jednoduchá "Mesa", ale na levném a snadno dostupném HW).
No a já to ze svého laického pohledu vídím takto:
- GRBL nikdy nenahradí LinuxCNC
- pro běžného uživatele je kouzlo GRBL v pořizovací ceně Hardwaru
- sice hardware pro GRBL nikdy nebude levnější než hardware pro LinuxCNC
- ovšem, může se stát, že hardware pro LinuxCNC/Machinekit bude v budoucnu tak levné, že nebude mít smysl zabývat se GRBL kvůli financím.
- jestli si to dobře pamatuji, tak jsi tehdá psal, že Orange-Pi stojí cca 400Kč z číny. Což už teď považuji za směšnou cenu i pro malé CNC hračky.

Toť můj myšlenkový pochod. Proto vznikl můj dotaz, proč se ženeš do Ultra Extra levného řešení?
LinuxCNC - MESA 7i96
zz912.webnode.cz
Odpovědět

Zpět na „MCU“