Grbl (& GrblHAL) zijn samen met LinuxCNC de bekendste open source projecten. LinuxCNC is PC software, en om het goed te doen moet daar nog hardware bij. b.v. een FPGA kaart van Mesa, of iets in de richting van Remora, maar er zijn ook andere oplossingen. Door de hardware keuze's is LinuxCNC minder geschikt voor beginners en ook niet echt goedkoop.
GRBL kan heel goedkoop. Ik heb zelf de firmware van github afgetrokken, toen in een "blue Pill" gestop (heb ik EUR3.5 voor betaald) en daar op een print zelf wat TTL buffers aan gesoldeerd. Maar je kunt ook compleet opgebouwde printen kopen, waar je dan de grote stappenmotor drivers rechtstreeks aan kunt hangen. Die kosten wel (een beetje) geld.
GrblHAL is niet alleen ESP32. GRBL is lang geleden begonnen op een ATMEGA328 (Zelfde processor als in originele "arduino") en later zijn er een heleboel varianten gemaakt, die vooral snellere en grotere (meer I/O pinnen, meer geheugen enz) microcontrollers gebruiken. De HAL in grblHAL staat voor Hardware Abstraction Layer. In grblHAL zijn een aantal van de snellere processoren weer bij elkaar gekomen. Ze draaien allemaal op dezelfde basis funkties, maar aansturing van hardware is voor elke processor familie anders, dus elke variant heeft ook z'n eigen processor specifieke module's. GrblHAL is beschikbaar voor meer dan 10 verschillende processor families.
Grbl zelf is alleen de firmware die op een microcontroller draait. Daar moet altijd nog een (willekeurige) PC (laptop, raspi) bij die de data naar Grbl stuurt en waar de gebruikersinterface op draait. Ik ben zelf best tevreden met bCNC. Het is grafisch niet zo mooi, maar er zitten leuke funkties in zoals import van een (platte) DXF tekening, dan freecontouren er omheen maken (met frees radius offset, aansnijden, tabs en meer) en dan gelijk de machine aansturen. Maar er zijn ook een heleboel (10+?) andere interfaces die met GRBL werken. Het is best populair voor hobbyisten, en ik denk dat het op veel "chinese" machines zit.
Voor meer info, het project staat op:
https://github.com/grblHAL
Er zijn tientallen aanbieders van commercieel spul. B.v. EdingCNC. Ik heb daar zelf geen ervaring mee. Ik ben iemand die liever doneert aan een open source project in de hoop dat het beter wordt in de toekomst, dan dat ik betaal voor een commercieel produkt en dan maar moet afwachten of het doet wat ik wil.
G-code leren kan ook nuttig zijn. Basis principes zijn heel eenvoudig. Met G0 (ijlgang) G1 (rechte lijn) G2 en G3 (cirkelbogen, links en rechtsom) heb je al een redelijke basis. Daar moeten dan nog wat commando's bij om b.v. een toerental in te stellen, koeling (vloeistof, perslucht, whatever) spindel aan/ uit te zetten en nog wat meer van die huishoud dingen.
G-code is ook de oudste programeer taal die nog wijd gebruikt wordt. Het is bedacht in de jaren 50, toen transistors nauwelijks bestonden (uitgevonden in 1956) en computers op vacuum werkten. De basis van G code is goed, maar het is een beetje kripties. Lang geleden kwam ik "TPL" tegen. (Tool Path Language). Het is een Java bibliotheek waarmee je java programmas kunt schrijven die dan door de bibliotheek naar G-code wordt vertaald. Ik ben zelf geen Java fan, maar ik vond het idee leuk, en heb een (losse) vertaling naar Python gemaakt (project nog in ontwikkeling). Met gebuik van een modernere programmeer taal kun je gemakkelijk loopjes maken, lijsten van coordinaten aan een funktie voeren, subroutines schrijven en nog veel meer. Daardoor kun je ineens best wel grote / complexe programmas maken door alleen wat text in te typen en zonder dat je in alle getallen verdwaald.
"Smoothieware" is ook een open source project waar je direct bijpassende hardware bij kunt kopen. Voor zover ik weet is het ook een "volwassen" project en het waard hier te vermelden. Ik heb het echter nooit zelf gebruikt.