Anda di halaman 1dari 26

Conecting GBRL to ARDUINO UNO

Untuk Grbl v0.9 dengan spindle variabel PWM ENABLED: (CATATAN: Z-batas dan spindle
mengaktifkan pin tertukar, karena kami harus mengakses PWM hardware pada D11 untuk variabel spindle
PWM output bekerja.) Kami masih memperbarui ini konfigurasi pin pada saat dengan menimbang pilihan
masa depan. Kami ingin hanya mengubah pin sekali. Tetap disini!

Pertama, untuk menghubungkan motor stepper Anda untuk Grbl, Anda akan memerlukan
beberapa driver motor stepper untuk daya steppers dan menghubungkan masukan driver untuk pin
kontroler Arduino. Ada sejumlah driver yang dapat melakukan ini, tersedia sebagai pre-built sepenuhnya,
sebagian pre-built, atau benar-benar DIY. Ada beberapa contoh jauh di bawah halaman. Driver stepper
akan perlu berbagi stepper mengaktifkan pin (D8) untuk masing-mengaktifkan pin mereka, sedangkan pin
arah dan langkah pulsa (D2-D7) akan harus terhubung ke pin masing-masing pada driver. Pastikan bahwa
semua driver Anda dan Arduino berbagi kesamaan (bintang membumi dengan kekuatan driver motor
Anda). Ini adalah tentang semua yang Anda akan butuhkan untuk memulai.
Setelah itu, setelah Anda memutuskan bahwa Anda siap atau ingin mengaktifkan homing dan /
atau batas keras, Anda harus menghubungkan limit switch biasanya terbuka untuk masing-masing pin
batas (D9-D11). Homing dan batas keras menggunakan switch yang sama. Pin batas ini sudah terangkat
tinggi dengan resistor pull-up internal, sehingga yang harus Anda lakukan adalah kawat mereka ke tanah.
Jadi, ketika Anda menutup saklar, switch akan menarik pin batas ke tanah. Jika Anda ingin memiliki hard
limit switch pada kedua ujung perjalanan sumbu, hanya kawat dua saklar batas secara paralel ke pin batas
sumbu dan tanah. Pastikan Anda memiliki diinstal sebelum mencoba untuk melakukan siklus homing
switch, dan pastikan Anda berlatih metode kabel yang baik untuk meminimalkan kebisingan listrik
eksternal pada pin input.

Dalam Grbl v0.8 dan kemudian, ada pin-beluk awal siklus, pakan terus, dan reset perintah
runtime, sehingga Anda dapat memiliki tombol kontrol fisik mesin Anda. Sama seperti pin batas, pin ini
diadakan tinggi dengan resistor pull-up internal, sehingga semua harus Anda lakukan adalah
menghubungkan switch biasanya terbuka untuk setiap pin dan ke tanah. Sekali lagi pastikan Anda berlatih
metode kabel yang baik untuk meminimalkan kebisingan listrik eksternal pada pin input.

Jika Anda memiliki keinginan atau kebutuhan untuk spindle atau pendingin kontrol, Grbl akan
beralih ini output pin (D12, D13, A3) tinggi atau rendah, tergantung pada G-kode perintah yang Anda kirim
ke Grbl. Dengan v0.9 dan spindle variabel PWM diaktifkan, D11 pin akan menampilkan berbagai tegangan
dari 0V ke 5V tergantung kecepatan spindle perintah G-kode. 0V menunjukkan spindle off dalam kasus
ini. Karena pin ini semua tergantung pada bagaimana mereka digunakan aplikasi, kami akan menyerahkan
kepada Anda untuk menentukan bagaimana mengontrol dan menggunakan ini untuk mesin Anda. Anda
juga dapat hack sumber file kontrol spindle dan pendingin untuk dengan mudah mengubah bagaimana
mereka bekerja dan kemudian kompilasi dan meng-upload dimodifikasi Grbl Anda melalui Arduino IDE.

Arduino CNC Shield - 3 sumbu independen dan satu klon Driver axis.Uses Pololu Stepper
dengan semua pin GRBL terkena. GRBL 0,9 Kompatibel.
Pembangunan Jalan dan Kebutuhan Masa Depan
1. Real-time feedrates disesuaikan: Pada Haas CNCs, ada fitur dengan 5%, 25%, 50%, dan
100% real-time penyesuaian feedrate. Hal ini terutama untuk pengujian dan pemeriksaan
program G-kode dan menyesuaikan feedrates hidup, jika alat pemotong berceloteh dan
perlu sedikit melesat ke atas atau bawah. Pelaksanaannya telah dipecahkan pada saat ini,
tetapi hanya perlu diinstal dan bug untuk bekerja.
2. Menimpa lainnya: Seiring dengan mengabaikan feedrate, menimpa lainnya akan
ditambahkan, seperti pendingin, spindle, dan menimpa jeram.
3. Kompensasi Backlash: Ada banyak cara penanganan reaksi, yang semua memiliki berbagai
tingkat kompleksitas dan kelemahan. Masalah utama adalah bagaimana memastikan
bahwa CNC terus bergerak lancar mungkin melalui tendangan tanpa mengorbankan
akurasi.
4. Jogging: ini direncanakan sebagai Grbl modus run-time yang terpisah untuk menjalankan
independen grbl G-kode parser. Dalam produksi mesin CNC, ini adalah perilaku yang
sama, di mana joging adalah mode kontrol khusus.
5. Lainnya Fitur Lanjutan Controller: Program melanjutkan (restart tengah pekerjaan), blok
menghapus, modus blok tunggal, dan '%' mode program.

Kemungkinan lainnya
1. Lebih dukungan hardware: Pada v1.0, kode harus distabilkan cukup untuk memulai secara resmi
memasukkan dukungan hardware lebih ke dalam basis kode grbl. Banyak pekerjaan ini sudah
berlangsung oleh beberapa orang-orang hebat, tetapi dari sudut pandang pembangunan, sulit
untuk menulis kode baru ketika beberapa sistem hardware perlu didukung untuk setiap iterasi
menit. Karena ini bergerak maju, orang-orang kerja keras telah dimasukkan ke dalam akan
langsung terintegrasi ketika saatnya tiba.
2. Dukungan SD-card: Ini mungkin merupakan fitur penting dalam versi yang akan datang. Memiliki
penyimpanan on-board akan membebaskan port serial untuk perintah real-time dan laporan
status dari tidak lagi memiliki aliran konstan Gcode untuk grbl. Hal ini juga memungkinkan untuk
tanpa kepala CNC pengaturan lebih benar. Mungkin diintegrasikan sebagai pilihan konfigurasi
kompilasi.
3. Kemampuan sumbu 4: Tidak tinggi pada daftar prioritas, karena tidak ada yang memiliki sumbu 4
belum mengujinya pada.
4. Cabang bubut: Belum sulit untuk port ke mesin bubut, karena mereka hanya dua sumbu. Hanya
waktu dan upaya yang diperlukan untuk ini.
5. Disinkronkan spindle: Sinkronisasi spindle dengan gerakan sumbu akan menjadi tantangan besar.
Hal ini umumnya digunakan untuk pabrik threading dan mesin canggih dari bagian bubut
kompleks. Masalah utama di sini adalah memastikan bahwa sumbu stepper motor tidak melebihi
batas akselerasi mereka, karena jika mereka lakukan, langkah-langkah dan lokasi akan hilang.
Biasanya encoder motor yang digunakan untuk mendeteksi putaran spindle (steppers tidak
memiliki cukup torsi atau kecepatan untuk mengemudi spindle), dan sinkronisasi encoder motor
spindle dan poros motor bisa sulit untuk melakukan kokoh dan universal untuk berbagai setup
dan akan memerlukan modus gerakan khusus yang tidak menggunakan Grbl ini percepatan
perencana. Fitur ini biasanya lebih sukses secara ad hoc, di mana gerakan disetel untuk setiap
mesin.

Flashing Grbl to an Arduino


Melalui Arduino IDE (Semua Platform):

Pergi ke halaman wiki Kompilasi Grbl untuk instruksi bagaimana mengkompilasi dan upload Grbl
ke Arduino Anda hanya melalui antarmuka Arduino IDE. Tidak rewel! Ini hanya memerlukan pengguna
untuk men-download kode sumber dan menambahkan Grbl sebagai perpustakaan untuk IDE.

Tapi, jika semua yang Anda miliki adalah file Hex pre-compiled, Anda akan perlu menggunakan
salah satu metode berikut untuk flash, seperti Arduino IDE tidak dapat flash file hex melalui antarmuka
IDE.

Untuk Windows
flashing file hex ke Arduino Anda adalah sederhana dengan jendela. Pertama, pasang di Arduino
Anda ke port USB dari mesin Windows Anda dan kemudian menentukan port COM ditugaskan dari
Arduino Anda.

Untuk Tentukan port COM Arduino ini Anda:

 Windows 7: Click "Start" -> Right click "Computer" -> Select "Manage" ->
Select "Device Manager" from left pane
 In the tree, expand "Ports (COM & LPT)"
 Your Arduino will be the USB Serial Port (COMX), where the “X” represents the
COM number, for example COM6.
 If there are multiple USB serial ports, right click each one and check the
manufacturer, the Arduino will be "FTDI".

To flash a grbl hex to an Arduino:


1. Download and extract XLoader.
2. Terbuka XLoader dan pilih port COM Arduino Anda dari menu drop di kiri bawah ke
bawah.
3. Pilih perangkat yang sesuai dari daftar dropdown yang berjudul "Device".
4. Periksa Xloader mengatur tingkat yang benar baud untuk perangkat: 57600 untuk
Duemilanove / Nano (ATmega 328) atau 115.200 untuk Uno (ATmega 328).
5. Sekarang gunakan tombol browse di kanan atas formulir untuk browse ke file hex grbl
Anda.
6. Setelah file hex grbl Anda dipilih, klik "Upload"
Setelah mengklik upload, Anda akan melihat RX / TX lampu akan liar di Arduino
Anda. Proses upload biasanya memerlukan waktu sekitar 10 detik untuk menyelesaikan.
Setelah selesai, pesan akan muncul di sudut kiri bawah XLoader memberitahu Anda berapa
banyak byte yang diunggah. Jika ada kesalahan, itu akan menunjukkan bukannya total byte
upload. Langkah harus serupa dan dapat dilakukan melalui command prompt.

Tambahan Windows Resources:

Bagi mereka ditarik ke CLI: Browse ke direktori di mana Anda baru file hex
Resides dan masukkan perintah berikut (ganti COM3 dengan nomor COM yang
sebenarnya):

avrdude -p m328p -D -PCOM3 -c arduino -b 115200 -U flash:w:grbl.hex

Pertanyaan apakah grbl menimpa bootloader Arduino?

Tidak, grbl cocok pada ATmega328P tanpa harus menimpa bootloader; Anda
masih akan dapat meng-upload Arduino sketsa setelah flashing tanpa harus membakar-
ulang bootloader. CATATAN: Grbl v1.0 mungkin terlalu besar untuk papan Duemilanove-
kompatibel Arduino, seperti boot loader mereka memakan 1.5KB, daripada 0.5KB pada
Uno. Ini berarti bahwa ada 1KB kurang tersedia flash.

CNC saya bergerak tak menentu ketika saya boot Arduino saya! Mengapa ia lakukan ini?

Arduino bootloader mengambil satu atau dua detik untuk boot up sebelum Grbl menginisialisasi.
Selama ini, stepper mengaktifkan pin RENDAH, yang diaktifkan, sebelum Grbl selesai inisialisasi dan
menetapkan pin untuk TINGGI untuk menonaktifkan steppers. Sesaat ini membuat driver stepper Anda
rentan terhadap kebisingan elektronik, sehingga jika pengemudi pin langkah Anda memiliki cukup suara
untuk palsu mengindikasikan langkah, steppers Anda mungkin mulai bergerak tak menentu.

Kami melihat ke dalam ini, tapi ini mungkin menjadi masalah yang tidak dapat dihindari dengan
lurus-up Arduinos. Ada beberapa solusi namun. Anda dapat mencoba untuk menemukan sumber suara
elektronik dan lepaskan (fan terlalu menutup elektronik lainnya). Anda dapat menempatkan sebuah
resistor pull-up pada stepper mengaktifkan jalur untuk menonaktifkan steppers selama proses boot-up.
Anda juga dapat menghapus bootloader Arduino sama sekali dan menginstal Grbl melalui header ICSP,
yang membutuhkan perangkat keras khusus untuk melakukannya.

Ketika papan Arduino adalah USB powered dan driver stepper memiliki pasokan tegangan logika
mereka sendiri, jangan lupa untuk menghubungkan dasar kedua sirkuit.
Menulis pengaturan individu membosankan. Apakah ada cara untuk mempercepat hal ini?

Ya, ada cara yang sangat sederhana untuk menulis semua pengaturan Anda sekaligus. Cukup copy
dan paste pengaturan saat ke file teks, yang berarti seluruh print-out dari perintah '$$' dengan label dan
semua. Grbl akan mengabaikan label-label karena mereka berada di dalam '()' komentar. Mengubah nilai-
nilai setelah '=' karakter untuk apa pun yang Anda butuhkan. Simpan file dan streaming ke grbl
menggunakan 'simple_stream.py' skrip streaming yang di '/ script' folder dari repo kami. (Atau, Anda
dapat menggunakan yang lain stream.py naskah Streaming dengan -s bendera pengaturan-mode.) Setelah
itu mengalir, semua pengaturan Anda diperbarui!

Pengaturan Grbl saya dan parameter semua yang funky setelah flashing Grbl! Bagaimana cara
menghapus EEPROM saya untuk memulai dari yang bersih ?!

Setelah berkedip, Grbl mencoba untuk memeriksa pengaturan di EEPROM. Jika menemukan
ketidakcocokan, maka secara otomatis akan menghapus EEPROM dan mengembalikan default. Kami
mencoba untuk menutupi semua skenario dalam ruang terbatas flashdisk kita dapat mengabdikan untuk
memeriksa itu, tapi kadang-kadang kita kehilangan sesuatu dan data di EEPROM mungkin tidak
kompatibel dengan versi yang Anda miliki. Atau, sesuatu yang tidak beres dengan proses flashing dan
rusak EEPROM, yang tidak terjadi setiap sekali-sekali. Hal ini menyebabkan data memiliki nomor aneh dan
nilai-nilai. Dalam Grbl v0.9j dan kemudian, cara termudah untuk membersihkan EEPROM adalah dengan
menggunakan $ RST = * perintah. Ini akan mengembalikan ruang EEPROM yang menggunakan Grbl ke
setelan default. Untuk versi sebelumnya dari Grbl atau untuk melakukan EEPROM lengkap menghapus,
contoh Arduino IDE dapat melakukan ini untuk Anda, yang ditemukan di File-> Examples-> EEPROM->
eeprom_clear. Mengubah 512 byte 1024 byte dalam untuk loop dan meng-upload. Ini harus menghapus
EEPROM Anda. Ketika Anda kembali flash Grbl, Anda akan mulai keluar dari yang bersih.

Siklus homing tidak bekerja dengan baik! Gerakan semua akan di arah yang salah!

Siklus homing Grbl mengasumsikan Anda telah mengatur sumbu arah dengan benar. Jadi pada
pabrik standar, ini berarti arah yang positif untuk setiap sumbu adalah: Z-axis spindle bergerak naik, meja
Y-axis bergerak ke arah Anda (atau kereta bergerak menjauh), dan meja sumbu X bergerak ke kiri. Setelah
Anda memiliki setup ini, default siklus homing untuk mencari batas beralih semua ke arah yang positif,
dimulai dengan sumbu z dan diikuti oleh sumbu x dan y-axis bersama. Jika Anda kebetulan untuk
menempatkan salah satu dari limit switch Anda pada ujung perjalanan di salah satu sumbu Anda, maka
Anda dapat menggunakan masker arah homing untuk memilikinya mencari ke arah negatif. LinuxCNC.org
memiliki diagram yang besar di situs web mereka menggambarkan tepat koordinat pengaturan sistem.

Setelah homing, mengapa beberapa posisi mesin saya negatif dan tidak nol!?!

Setelah siklus homing, Grbl set mesin koordinat bingkai di semua ruang negatif. Hal ini biasa
terjadi pada mesin CNC profesional yang sebagian besar disebabkan oleh tradisi dan mampu
mengidentifikasi apa yang Anda cari di saat kedua posisi mesin dan bekerja ditampilkan. Jika limit switch
Anda tidak di ujung positif dari sumbu (dan Anda sudah terbalik arah homing), Grbl akan mengatur posisi
mesin untuk pengaturan -max_travel Anda. Jika Anda menemukan ini begitu menjengkelkan bahwa Anda
tidak dapat berdiri, Anda dapat selalu memiliki Grbl mengatur posisi mesin ke nol, terlepas dari mana
saklar batas Anda. Anda akan perlu tanda komentar pada HOMING_FORCE_SET_ORIGIN # define di
config.h, kompilasi ulang, dan re-flash. Itu dia!
Bagaimana cara menghubungkan dan mulai menggunakan Grbl?

Grbl berkomunikasi melalui port serial, seperti dalam Arduino IDE. Anda dapat menghubungkan
ke melalui setiap standar program terminal serial (yaitu Coolterm) di 115200 baud (9600 untuk v0.8 dan
sebelumnya). Setelah Anda terhubung, Anda harus disajikan dengan pesan singkat yang menunjukkan
versi Grbl dan pengaturan bagaimana-untuk. Cukup ketik perintah G-kode yang valid diikuti oleh masuk
dan Grbl harus merespon dengan ok atau kesalahan: pesan. Catatan: Anda tidak akan melihat karakter
apapun gema saat Anda mengetik perintah untuk Grbl.

Bagaimana cara streaming program G-kode lengkap untuk Grbl?

Program g-kode streaming untuk Grbl dapat dilakukan dengan metode send-dan-respon
sederhana melalui port serial. Setiap perintah diikuti oleh kembali sebuah merespons ketika Grbl siap
menerima perintah lain. Lihat halaman wiki Grbl Menggunakan untuk lebih jelasnya, karena ada beberapa
script streaming dan GUI tersedia untuk melakukan ini untuk Anda.

Mengapa saya tidak dapat hanya meng-upload file ke Grbl? Atau aku bersumpah kontrol aliran
XON / XOFF digunakan untuk bekerja!

Anda akan berpikir bahwa hanya meng-upload file ke Grbl akan bekerja, tetapi tidak akan. Fungsi
ini memerlukan beberapa jenis kontrol aliran serial untuk menunjukkan ke komputer ketika penerima
(Grbl) seri read buffer penuh dan kalau sudah siap untuk mendapatkan lebih banyak data. Garis kontrol
aliran hardware Arduino ini didesain untuk mengatur ulang dan re-flash Arduino, bukan untuk kontrol
aliran. XON / XOFF kontrol aliran software tidak secara resmi didukung oleh Arduinos, tetapi mereka
digunakan untuk bekerja pada Arduinos tua. Hal ini disebabkan switch baru-baru ini di Arduino itu USB-
to-serial chip emulator, dari FTDI ke Atmega. Idenya adalah untuk memungkinkan orang untuk flash
firmware mereka sendiri ke chip emulator ini untuk kebutuhan jahat mereka sendiri, di mana chip FTDI
adalah platform tertutup. Switch ini inadvertantly dihapus XON / XOFF dukungan kontrol aliran perangkat
lunak FTDI ini. Sejauh yang kami tahu, tidak ada dorongan untuk membawa kontrol aliran XON / XOFF
kembali. Meskipun, karena firmware ini sekarang open-source, mungkin muncul jika seseorang
melakukan atau luak orang yang tepat.

Driver stepper saya memerlukan waktu tunda antara arah pin dan pin langkah pengaturan! (Atau
aku menyadari bahwa steppers saya melayang setelah banyak banyak perubahan arah.) Bagaimana cara
mengkonfigurasi ini / memperbaiki masalah ini?

Masalah ini berasal dari algoritma stepper utama Grbl ini. Ia menetapkan pin arah segera sebelum
pin stepper, yang mungkin tidak terjadi dengan cukup waktu di antara untuk driver stepper tertentu untuk
mengakui perubahan arah. Hal ini dapat menyebabkan stepper penyimpangan sedikit setelah banyak
perubahan arah. The Grbl cabang master memiliki opsi kompilasi eksperimental yang menciptakan waktu
tunda yang ditentukan pengguna setelah pin arah diatur dan sebelum pulsa langkah dimulai. Hal ini
dilakukan dengan mengaktifkan interupsi lain (Timer2 membandingkan). Namun, karena tidak menambah
mengganggu, ada kemungkinan bahwa ini dapat mempengaruhi kinerja negatif high-end Grbl (yaitu
langkah tinggi frekuensi atau kurva kompleks), tapi ini belum diuji secara menyeluruh untuk memverifikasi
ini. Jika semuanya terbukti solid, kami akan pertimbangkan untuk menambahkan fitur ini di rilis nanti.
Jadi, silakan melaporkan keberhasilan atau masalah dengan fitur ini! Ada juga hack / kerja-sekitar tanpa
perlu mengkompilasi ulang. The Grbl invert topeng pengaturan tidak tidak hanya dapat membalikkan pin
arah Anda, tetapi juga pin stepper Anda juga. Jadi bukannya biasa rendah, mereka bisa normal tinggi.
Karena sebagian besar driver stepper mengakui langkah dengan merasakan hanya naik (atau turun) tepi
dan yang lainnya diabaikan, Anda dapat membuat virtual arah pin waktu tunda. Perhatikan bahwa
sekarang Grbl mikrodetik pulsa pengaturan Anda sekarang akan menentukan waktu tunda dan Anda tidak
akan lagi memiliki kontrol atas panjang waktu pulsa langkah Anda (tapi ini seharusnya tidak masalah
karena driver stepper Anda seharusnya tidak peduli.) Meskipun ada laporan bahwa driver stepper
tertentu tidak suka akan diselenggarakan biasa tinggi untuk periode berkepanjangan, tetapi tidak ada
salahnya untuk mencoba. :)

Di mana G-kode didefinisikan? Apa masing-masing lakukan?

Grbl mencoba untuk mengikuti NIST NGC / RS274 standar v3 untuk kontrol numerik, alias G-kode.
EMC2 dan Mach3 mengikuti standar ini sangat erat juga. Klik link untuk mendownload dan membaca G-
kode dokumen standar. Beberapa NIST standar G-kode yang sedikit keluar-tanggal, jadi kita juga
menggunakan beberapa LinuxCNC.org G-kode definisi dalam kasus ini. LinuxCNC.org juga menyediakan
dokumentasi yang besar pada G-kode mereka. G-kode M-kode kode lain

Mengapa beberapa G-kode Grbl ini sedikit berbeda seperti pada beberapa mesin CNC lainnya?

Sementara kita mengikuti NIST NGC / RS274 v3 dan standar LinuxCNC, ini sebenarnya tidak benar-
benar standar antara semua yang ada mesin CNC dan produsen. Kontrol numerik cukup lama, misterius,
dan mendahului MS-DOS. Dengan kata lain, itu berantakan. Ada mendorong untuk standar itu, seperti
oleh NIST, dan telah berhasil untuk yang paling umum perintah G-kode. Namun, ada beberapa G-kode
yang tidak standar, seperti G-kode G28 / G30, G92.X, dll Ini adalah tujuan Grbl mengikuti standar yang
diterbitkan sehingga orang dapat membangun dari itu, jadi tidak untuk berlumpur air G-kode bahkan
lebih.

Grbl tampaknya bertingkah aneh saat streaming ketika ada G10, G28.1, atau perintah G30.1
dalam program ini. Apa yang sedang terjadi?

Ini ada hubungannya dengan menulis EEPROM dan bagaimana secara otomatis menutup semua
mengganggu proses sementara itu menulis, termasuk interupsi serial. Jeda ini bisa terjadi hingga 20
milidetik, yang berarti bahwa karakter serial dapat hilang dalam jangka waktu tersebut. G10, G28.1, dan
G30.1 memerintahkan semua menulis ke EEPROM parameter koordinat offset sehingga mereka terus-
menerus antara sesi. Dalam prakteknya, Anda hampir tidak pernah perlu memperbarui ini dalam program
G-kode, karena mereka dilakukan selama setup mesin dan biasanya tangan-kode. Jika Anda perlu
streaming perintah ini dalam program untuk beberapa alasan, ada sayangnya tidak benar-benar cara
untuk mengatasi masalah ini. Jika Anda datang pada solusi yang baik, silakan beritahu kami.

Dengan EEPROM ini baca / tulis masalah yang disebutkan di atas, data apa yang disimpan dalam
EEPROM?

Toko Grbl hanya beberapa hal dalam EEPROM. The '$$' utama pengaturan array, kerja G54-G59
berkoordinasi offset, G28 / G30 telah ditentukan posisi, $ N startup-line string, dan $ yang saya
membangun info pengguna tali.
Conto G-CODE
Tips
Itu selalu praktek yang baik untuk menyisipkan header komentar pada awal program Anda untuk
mengingatkan Anda tentang apa program anda tidak, jika sudah terbukti untuk bekerja, ketika Anda
menulis itu, apa alat itu sudah ditulis untuk, apa ukuran saham Anda harus , dan di mana bagian asal
(mulai titik) berada. Sebagian besar waktu, program CAM baik secara otomatis akan melakukan ini untuk
Anda, tetapi jika Anda tidak, inilah contoh.
(DIAMOND, CIR, SQ TEST PROGRAM)
(FEB-08-12, 12:05)
( *** UNPROVEN PROGRAM *** )
( RUN IN VISE ON PARALLELS )
(Z OFFSET: TOP OF MATERIAL WITH )
( 0.375" MATERIAL ABOVE VISE JAWS )
(X0,Y0,Z0= Center, Center, Top)
(STOCK ORIGIN = X0. Y0. Z.01)
(MATERIAL TYPE= ALUMINUM inch - 6061)
(MATERIAL SIZE= X1.75 Y1.75 Z.5)
(TOOL= 1/4 2-FLUTE HSS END MILL)

 Place an initialization block at the beginning of your program to set all of the G-code
modes explicitly for your program. These are things such as mm/inch modes,
incremental/absolute modes, feedrate modes, plane selection, or work coordinate system.
Even though the defaults of your machine may work with your G-code program now, this
doesn't mean that it will later or if you forget it was set differently by a previous program.
This can result in a crash. An initialization block typically looks something like this.

G17 G20 G90 G94 G54

CONTOH
Draw a Circle
Program ini menarik "lingkaran berdiameter tentang asal-usul dalam bidang XY. Ini harus
dimulai dengan mencari Z-sumbu 0,25" 1, perjalanan ke X = -0,5 dan Y = 0,0, dan punggung
bawah ke Z = 0,0. Program ini kemudian akan menggambar lingkaran searah jarum jam pada
feedrate lambat. Setelah selesai, itu akan mengangkat Z-axis naik 0,1 "dan kemudian mencari
kembali ke X = 0,0, Y = 0,0, dan Z = 0,25 untuk menyelesaikan.
G17 G20 G90 G94 G54
G0 Z0.25
X-0.5 Y0.
Z0.1
G01 Z0. F5.
G02 X0. Y0.5 I0.5 J0. F2.5
X0.5 Y0. I0. J-0.5
X0. Y-0.5 I-0.5 J0.
X-0.5 Y0. I0. J0.5
G01 Z0.1 F5.
G00 X0. Y0. Z0.25
Grbl Interface
Antarmuka untuk Grbl cukup sederhana dan mudah. Kami telah mengambil langkah-langkah untuk
mencoba untuk membuatnya semudah mungkin bagi pengguna baru untuk memulai, dan untuk
pengembang GUI untuk menulis antarmuka kustom mereka sendiri untuk Grbl.

Semuanya berkomunikasi melalui interface serial pada port USB Arduino. Anda hanya perlu
menghubungkan Arduino ke komputer dengan kabel USB. Menggunakan program terminal serial standar
untuk menghubungkan ke Grbl, seperti: Arduino IDE Monitor serial, Coolterm, dempul, dll Atau
menggunakan salah satu dari banyak Grbl GUI besar di luar sana di alam liar internet.

Hampir setiap interaksi pengguna dengan Grbl dilakukan dengan mengirimkan string karakter, diikuti oleh
masuk. Grbl kemudian akan memproses string, jalankan sesuai, dan kemudian membalas kembali dengan
respon untuk memberitahu Anda bagaimana ia pergi. String ini termasuk mengirim Grbl: blok G-kode
untuk mengeksekusi, perintah untuk mengkonfigurasi pengaturan Grbl, untuk melihat bagaimana Grbl
lakukan, dll Pada kali, Grbl mungkin tidak merespon dengan segera. Hal ini terjadi hanya ketika Grbl sibuk
melakukan sesuatu yang lain, atau menunggu beberapa ruang untuk membersihkan di yang tampak-depan
perencana penyangga sehingga dapat menyelesaikan pengolahan baris sebelumnya dikirim.

Namun, satu pengecualian untuk ini adalah perintah real-time Grbl ini. Ini dipetik langsung dari aliran serial
yang masuk untuk mengeksekusi segera dan asynchronous. Lihat kami wiki Konfigurasi Grbl untuk melihat
apa yang mereka dan bagaimana mereka bekerja.

Start Up Message
Grbl vX.Xx ['$' for help]

Start up pesan selalu mencetak pada startup, setelah reset, atau di akhir acara. Setiap kali Anda
melihat pesan ini, ini juga berarti bahwa Grbl telah menyelesaikan re-inisialisasi semua sistem, sehingga
semuanya dimulai sama setiap kali Anda menggunakan Grbl.
vX.Xx menunjukkan nomor versi utama, diikuti oleh surat versi minor. Nomor versi utama
menunjukkan rilis umum, sementara surat itu hanya menunjukkan update fitur atau penambahan dari
minor surat versi sebelumnya.

Revisi memperbaiki bug dilacak dengan jumlah Info membangun, dicetak ketika perintah $ saya
dikirim. Revisi ini tidak memperbarui nomor versi dan diberikan berdasarkan tanggal direvisi pada tahun,
bulan, dan hari, seperti begitu 20.140.820.

Grbl $ Bantuan Pesan


Setiap tali Grbl menerima diasumsikan menjadi G-blok kode / line untuk itu untuk mengeksekusi,
kecuali untuk beberapa sistem khusus perintah Grbl menggunakan untuk konfigurasi, memberikan umpan
balik kepada pengguna tentang apa dan bagaimana yang dilakukannya, atau melakukan beberapa tugas
seperti siklus homing. Untuk melihat daftar perintah sistem ini, ketik $ diikuti dengan masuk, dan Grbl
akan merespon dengan:
$$ (view Grbl settings)

$# (view # parameters)

$G (view parser state)

$I (view build info)

$N (view startup blocks)

$x=value (save Grbl setting)

$Nx=line (save startup block)

$C (check gcode mode)

$X (kill alarm lock)

$H (run homing cycle)

~ (cycle start)

! (feed hold)

? (current status)

ctrl-x (reset Grbl)

Lihat halaman wiki Konfigurasi Grbl kami untuk mencari tahu apa semua perintah berarti dan
bagaimana menggunakannya.

Grbl Response Makna


Setiap blok G-kode yang dikirim ke Grbl dan perintah sistem Grbl (tidak termasuk perintah real-
time) akan merespon dengan bagaimana pergi. Bagian ini akan menjelaskan tanggapan Grbl dan
maknanya.

 ok: Semua baik! Segala sesuatu di baris terakhir dipahami oleh Grbl dan berhasil diproses
dan dieksekusi.
 error: Diharapkan surat perintah: G-kode terdiri dari G-kode "kata", yang terdiri dari surat
diikuti oleh nilai angka. Kesalahan ini terjadi bila surat awalan kata G-kode yang hilang di
blok G-kode (alias line).
 error: Format nomor Bad: Nilai jumlah akhiran kata G-kode yang hilang di blok G-kode,
atau ketika mengkonfigurasi $ Nx = line atau $ x = val Grbl pengaturan dan x bukan
merupakan nilai angka.
 error: pernyataan tidak valid: dikeluarkan sistem komando The Grbl $ tidak diakui atau
tidak valid.
 error: Nilai <0: Nilai dari $ x = val Grbl pengaturan, tingkat pakan F, nomor N baris, P kata,
jumlah alat T, atau kecepatan S spindle negatif.
 error: Pengaturan cacat: Homing dinonaktifkan ketika mengeluarkan perintah $ H.
 error: Nilai <3 usec: Langkah panjang waktu pulsa tidak bisa kurang dari 3 mikrodetik
(untuk alasan teknis).
 error: EEPROM membaca gagal. Menggunakan default: Jika Grbl tidak bisa membaca data
yang terdapat dalam EEPROM, kesalahan ini dikembalikan. Grbl juga akan jelas dan
mengembalikan data dilakukan kembali ke default.
 error: Tidak siaga: Beberapa Grbl $ perintah yang diblokir tergantung negara Grbl saat ini,
atau apa yang dilakukan. Secara umum, Grbl blok perintah yang mengambil dari atau
menulis ke EEPROM sejak mikrokontroler AVR akan shutdown semua interupsi untuk
siklus jam beberapa ketika hal ini terjadi. Tidak ada pekerjaan di sekitar, selain
menghalangi itu. Hal ini memastikan kedua interupsi pembangkit serial dan langkah
bekerja dengan lancar di seluruh operasi.
 error: kunci Alarm: Grbl memasuki negara ALARM ketika Grbl tidak tahu di mana itu dan
kemudian akan memblokir semua G-kode perintah dari yang dieksekusi. Kesalahan ini
terjadi jika perintah G-kode yang dikirim sementara di negara alarm. Grbl memiliki dua
skenario alarm: Ketika homing diaktifkan, Grbl otomatis masuk ke negara alarm untuk
mengingatkan pengguna untuk rumah sebelum melakukan apa-apa; Ketika sesuatu telah
pergi kritis yang salah, biasanya ketika Grbl tidak menjamin posisi. Ini biasanya terjadi
ketika sesuatu menyebabkan Grbl untuk memaksa berhenti langsung sementara bergerak
dari sebuah batas keras yang memicu atau pengguna perintah reset tidak tepat waktu.
 error: tidak Homing diaktifkan: batas lembut tidak dapat diaktifkan jika homing tidak
diaktifkan, karena Grbl tidak tahu di mana itu adalah ketika Anda startup komputer Anda
kecuali Anda melakukan siklus homing.
 error: melimpah Telepon: Grbl harus melakukan segala sesuatu yang dilakukannya dalam
2KB RAM. Tidak banyak sekali. Jadi, kami harus membuat beberapa keputusan pada apa
yang penting. Grbl membatasi jumlah karakter di setiap baris kurang dari 80 karakter (70
di v0.8, 50 di v0.7 atau sebelumnya), tidak termasuk spasi atau komentar. Standar G-kode
mengamanatkan 256 karakter, tapi Grbl hanya tidak memiliki RAM luang. Namun, kami
tidak berpikir akan ada masalah dengan ini dengan semua diharapkan perintah G-kode
yang dikirim ke Grbl. Kesalahan ini hampir selalu terjadi ketika pengguna atau program G-
kode CAM dihasilkan mengirimkan nilai posisi yang presisi ganda (yaitu -
2,003928578394852), yang tidak realistis atau mungkin secara fisik. Pengguna dan GUI
perlu mengirim Grbl nilai floating point presisi tunggal di (yaitu -2,003929) untuk
menghindari kesalahan ini.
 error: Modal pelanggaran Kelompok: The G-code parser telah mendeteksi dua perintah
G-kode yang termasuk dalam kelompok modal yang sama di blok / line. Kelompok modal
adalah set perintah G-kode yang saling eksklusif. Misalnya, Anda tidak dapat
mengeluarkan kedua jeram G0 dan G2 busur di baris yang sama, karena mereka berdua
perlu menggunakan nilai posisi target XYZ di baris. LinuxCNC.org memiliki beberapa
dokumentasi yang besar pada kelompok modal.
 error: Perintah tidak didukung: The G-kode parser tidak mengenali atau mendukung salah
satu G-kode perintah di baris. Memeriksa program G-kode untuk setiap perintah yang
tidak didukung dan baik menghapus mereka atau memperbarui mereka untuk menjadi
kompatibel dengan Grbl.
 error: Tingkat pakan Undefined: Tidak ada tingkat pakan diprogram, dan perintah G-kode
yang membutuhkan satu di blok / line. G-kode harga pakan mandat F standar untuk
terdefinisi pada reset atau ketika beralih dari mode waktu terbalik dengan modus unit.
Versi yang lebih lama Grbl memiliki pengaturan kecepatan umpan default, yang ilegal dan
telah dihapus di Grbl v0.9.
 error: ID Gcode tidak valid: XX: Untuk menghemat beberapa ruang flash, Grbl v0.9
menginstal beberapa nomor G-kode yang tidak valid samar untuk menunjukkan
kesalahan G-kode pemrograman biasa. Menyimpan string penuh untuk menggambarkan
semua kesalahan akan menghabiskan sisa ruang flashdisk berharga, kita harus bekerja
dengan. Kesalahan G-kode yang paling umum, yang tercantum di atas, masih dicetak
dalam string terbaca-manusia sekalipun.

ID Description
A G or M command value in the block is not an integer. For example, G4 can't be G4.13.
23 Some G-code commands are floating point (G92.1), but these are ignored.
(Nilai perintah AG atau M di blok bukan integer. Misalnya, G4 tidak bisa G4.13. Beberapa perintah
G-kode yang titik (G92.1) mengambang, tetapi ini diabaikan.)
Two G-code commands that both require the use of the XYZ axis words were detected in the
24
block.
Dua G-kode perintah yang baik memerlukan penggunaan kata-kata sumbu XYZ terdeteksi di blok
tersebut.
25 A G-code word was repeated in the block.
Sebuah kata G-kode diulang di blok tersebut.
A G-code command implicitly or explicitly requires XYZ axis words in the block, but none
26
were detected.
Perintah G-kode implisit atau eksplisit mengharuskan XYZ kata sumbu di blok tersebut, tapi tidak
ada yang terdeteksi.
The G-code protocol mandates N line numbers to be within the range of 1-99,999. We think
that's a bit silly and arbitrary. So, we increased the max number to 9,999,999. This error
27 occurs when you send a number more than this.
Nomor baris mandat protokol N G-kode berada dalam kisaran 1-99,999. Kami pikir itu agak konyol
dan sewenang-wenang. Jadi, kami meningkatkan jumlah max untuk 9.999.999. Kesalahan ini terjadi
ketika Anda mengirim sejumlah lebih dari ini.

28
A G-code command was sent, but is missing some important P or L value words in the line.
Without them, the command can't be executed. Check your G-code.
29
Grbl supports six work coordinate systems G54-G59. This error happens when trying to use
or configure an unsupported work coordinate system, such as G59.1, G59.2, and G59.3.
30
The G53 G-code command requires either a G0 seek or G1 feed motion mode to be active. A
different motion was active.
31 There are unused axis words in the block and G80 motion mode cancel is active.
ID Description
32
A G2 or G3 arc was commanded but there are no XYZ axis words in the selected plane to trace
the arc.
The motion command has an invalid target. G2, G3, and G38.2 generates this error. For both
33
probing and arcs traced with the radius definition, the current position cannot be the same as
the target. This also errors when the arc is mathematically impossible to trace, where the
current position, the target position, and the radius of the arc doesn't define a valid arc.
A G2 or G3 arc, traced with the radius definition, had a mathematical error when computing
34 the arc geometry. Try either breaking up the arc into semi-circles or quadrants, or redefine
them with the arc offset definition.
35
A G2 or G3 arc, traced with the offset definition, is missing the IJK offset word in the
selected plane to trace the arc.
36 There are unused, leftover G-code words that aren't used by any command in the block.
37
The G43.1 dynamic tool length offset command cannot apply an offset to an axis other than
its configured axis. The Grbl default axis is the Z-axis.

Grbl Pesan lainnya


Seiring dengan tanggapan yang normal dari input pengguna, Grbl memberikan pesan tambahan
untuk umpan balik penting dari kondisi saat ini. Pesan-pesan ini akan disusun dalam tiga kelas umum:
pesan ALARM, pesan umpan balik, dan pesan status real-time.

Alarm

Alarm adalah negara darurat. Sesuatu telah sangat salah ketika ini terjadi. Biasanya, mereka disebabkan
oleh kesalahan batas ketika mesin telah pindah atau ingin pindah luar ruang mesin dan menabrak sesuatu.
Mereka juga melaporkan masalah jika Grbl hilang dan tidak dapat menjamin posisi atau perintah
penyelidikan telah gagal. Setelah di alarm-modus, Grbl akan mengunci dan menutup segala sesuatu
sampai pengguna mengeluarkan reset. Bahkan setelah reset, Grbl akan tetap di alarm-modus, memblokir
semua G-kode dari yang dieksekusi, tetapi memungkinkan pengguna untuk menimpa alarm manual. Hal
ini untuk memastikan pengguna mengetahui dan mengakui masalah dan telah mengambil langkah-
langkah untuk memperbaiki atau rekening untuk itu.

Semua pesan alarm mulai dengan ALARM: `, diikuti dengan penjelasan singkat tentang
penyebab alarm.

ALARM: Keras / lunak limit: Keras dan / atau batas lembut harus diaktifkan untuk kesalahan
ini terjadi. Dengan batas keras, Grbl akan memasuki mode alarm bila switch batas keras telah
memicu dan kekuatan membunuh semua gerak. Posisi mesin akan hilang dan membutuhkan re-
homing. Dengan batas lembut, alarm terjadi ketika Grbl mendeteksi gerakan diprogram mencoba
untuk bergerak di luar dari ruang mesin, yang ditetapkan oleh homing dan pengaturan perjalanan
max. Namun, setelah alarm, pelanggaran batas lunak akan menginstruksikan memegang pakan
dan menunggu sampai mesin telah berhenti sebelum mengeluarkan alarm. Batas lembut tidak
kehilangan posisi mesin karena ini.
ALARM: Abort selama siklus: Alarm ini terjadi ketika pengguna mengeluarkan soft-reset saat
mesin dalam siklus dan bergerak. Soft-reset akan membunuh semua gerak saat, dan, seperti
alarm batas keras, halte yang tidak terkendali menyebabkan Grbl kehilangan posisi.

ALARM: Probe gagal: The G38.2 Probe lurus perintah membutuhkan alarm atau kesalahan
ketika probe gagal untuk memicu dalam probe jarak diprogram. Grbl memasuki negara alarm
untuk menunjukkan kepada pengguna probe telah gagal, tetapi tidak akan kehilangan posisi
mesin, karena probe gerak datang untuk berhenti dikendalikan sebelum kesalahan.

Masukan Pesan

Pesan umpan balik memberikan informasi non-kritis pada apa Grbl lakukan dan / atau apa yang
dibutuhkan. Tidak terlalu rumit. Umpan balik pesan selalu diapit [] kurung.

[Atur ulang untuk melanjutkan]: Dikirim setelah pesan alarm untuk memberitahu pengguna untuk
mengatur ulang Grbl sebagai pengakuan bahwa alarm telah terjadi.

['$ H' | '$ X' untuk membuka]: Setelah alarm dan pengguna telah mengirimkan reset, pesan umpan
balik ini dikirim setelah pesan startup untuk memberitahu pengguna bahwa semua perintah G-kode
terkunci, sampai pengguna membuka secara manual dengan perintah $ X atau melakukan siklus homing.
Juga, jika pengguna telah homing diaktifkan, pesan ini juga dikirim pada segar power-up untuk
menunjukkan kebutuhan pengguna untuk rumah mesin sebelum melakukan apapun.

[Perhatian: Unlocked]: Modus alarm dapat secara manual over-ditunggangi oleh pengguna
mengeluarkan perintah $ X. Pesan umpan balik ini dikirim ketika pengguna menimpa alarm.

[Diaktifkan]: Sebuah pesan umpan balik sederhana untuk menunjukkan kepada pengguna bahwa
negara atau modus Grbl telah diaktifkan.

[Disabled]: Sama seperti di atas, tetapi memberitahukan negara atau modus telah dinonaktifkan.

Pesan lainnya:

[PRB: 0.000,0.000,1.492: 1]: Ini adalah sedikit keluar dari tempat, tetapi sebagai layanan untuk GUI,
Grbl akan segera mengirimkan pesan umpan balik yang berisi posisi probe dipicu setelah sukses G38.2
penyelidikan langsung perintah. Data ini juga dapat dilihat dalam parameter mencetak keluar disebut
oleh $ #.
(Grbl v0.9i atau lambat) The: 1 nilai akhiran adalah boolean yang menunjukkan apakah probe siklus
terakhir berhasil atau tidak.

[G0 G54 G17 G21 G90 G94 M0 M5 M9 T0 F0. S0]:. Ketika perintah sistem $ G dikirim, Grbl menjawab
dengan pesan yang berisi G-kode saat negara parser modal.
(Grbl 0.9i dan kemudian) S0. menunjukkan kecepatan spindle dan mencetak hanya jika variabel
kecepatan spindle diaktifkan.

$ # Lihat Parameter: Ketika sistem perintah $ # dikirim, Grbl menjawab dengan beberapa pesan yang
berisi arus parameter G-kode, yang meliputi pekerjaan koordinat offset, posisi yang telah ditentukan,
G92 koordinat offset, panjang alat offset, dan penyelidikan terakhir posisi. Semua data ini dicetak
dengan pesan umpan balik [] kurung.

Menulis Interface untuk Grbl

UNTUK PENGEMBANG HANYA: Bagian ini menguraikan cara direkomendasikan untuk setup komunikasi
dan streaming protokol dengan Grbl untuk GUI.

Antarmuka umum untuk Grbl telah dijelaskan di atas, tapi apa yang hilang adalah bagaimana
menjalankan program G-kode seluruh pada Grbl, ketika tampaknya tidak memiliki fitur upload. Atau,
bagaimana membangun GUI yang layak dengan umpan balik real-time. Di sinilah bagian ini cocok.
Awalnya, pengguna diminta untuk sengit flash drive, RAM eksternal, dukungan LCD, joystick, atau
dukungan jaringan sehingga mereka dapat meng-upload program g-kode dan menjalankannya langsung
di Grbl. Jawaban umum untuk yaitu, ide-ide bagus, tapi Grbl tidak membutuhkan mereka. Grbl sudah
memiliki hampir semua alat dan fitur untuk andal berkomunikasi dengan antarmuka pengguna grafis
sederhana (GUI). Plus, kami ingin meminimalkan sebanyak yang kita dapat pada apa yang Grbl harus
lakukan, karena, pada akhirnya, Grbl perlu berkonsentrasi pada memproduksi bersih, gerak diandalkan.
Itu dia.

Streaming Program G-Code untuk Grbl

Di sini kita akan menjelaskan tiga metode streaming yang berbeda untuk Grbl GUI, tapi benar-
benar hanya ada dua yang kami sarankan menggunakan. Salah satu masalah utama dengan
streaming untuk Grbl adalah port USB itu sendiri. Arduinos dan hampir semua mikro kontroler
menggunakan chip converter USB-to-serial yang, di kali, berperilaku aneh dan tidak biasanya
bagaimana Anda harapkan, seperti USB paket buffering dan penundaan yang dapat
mendatangkan malapetaka untuk protokol streaming. Masalah lain adalah bagaimana
menghadapi beberapa latency dan keanehan dari PC sendiri, karena tidak satupun dari mereka
yang benar-benar real-time dan selalu membuat micro-penundaan ketika menjalankan tugas-
tugas lainnya. Terlepas dari itu, kami telah datang dengan cara-cara untuk memastikan aliran G-
kode yang handal dan sederhana.

Streaming Protocol: Simple Send Response [Direkomendasikan untuk Grbl v0.9 +]

Send-respon streaming yang protokol adalah yang paling bodoh-bukti dan metode yang paling
sederhana untuk streaming program G-kode untuk Grbl. Antarmuka host PC hanya mengirim baris G-
kode untuk Grbl dan menunggu untuk ok atau kesalahan: respon sebelum mengirim baris berikutnya
dari G-kode. Jadi, tidak peduli apakah Grbl perlu menunggu ruang di buffer perencana tampilan-depan
untuk menyelesaikan parsing dan mengeksekusi baris terakhir G-kode atau jika komputer host sibuk
melakukan sesuatu, ini menjamin baik untuk PC host dan Grbl , yang diprogram G-kode telah dikirim dan
diterima dengan baik. Contoh dari protokol ini diterbitkan dalam script simple_stream.py kami dalam
repositori kami.

Namun, itu juga yang paling lambat tiga protokol streaming diuraikan. Grbl dasarnya memiliki dua buffer
antara pelaksanaan langkah-langkah dan antarmuka host PC. Salah satunya adalah serial menerima
buffer. Sebentar ini menyimpan hingga 127 karakter data yang diterima dari PC host sampai Grbl
memiliki waktu untuk mengambil dan mengurai garis dari G-kode. Buffer lainnya adalah tampilan-depan
perencana penyangga. Penyangga ini menyimpan hingga 17 gerakan garis yang percepatan-
direncanakan dan dioptimalkan untuk eksekusi langkah. Karena protokol send-respon menerima garis G-
kode sementara PC host menunggu jawaban, seri Grbl ini menerima buffer biasanya kosong dan kurang
dimanfaatkan. Jika Grbl secara aktif menjalankan dan melaksanakan langkah-langkah, Grbl akan segera
mulai melaksanakan dan mengosongkan tampilan-depan perencana penyangga, ketika mengirimkan
respon ke host PC, menunggu baris berikutnya dari host PC, setelah menerima itu, mengurai dan
rencana itu, dan menambahkannya ke akhir buffer tampak-depan.

Meskipun komunikasi lag ini mungkin mengambil hanya sepersekian detik, ada efek kumulatif, karena
ada lag dengan setiap blok G-kode yang dikirim ke Grbl. Dalam skenario tertentu, seperti program G-
kode yang mengandung banyak sekuensial, sangat singkat, segmen garis dengan harga pakan yang
tinggi, lag kumulatif dapat cukup besar untuk mengosongkan dan kelaparan tampilan-depan perencana
penyangga dalam waktu ini. Hal ini bisa mengakibatkan start-stop motion ketika streaming tidak bisa
bersaing dengan pelaksanaan program G-kode. Juga, karena Grbl hanya bisa merencanakan dan
mengoptimalkan apa yang ada di tampilan-depan perencana penyangga, kinerja melalui jenis gerakan
akan pernah penuh kecepatan, karena tampak-depan penyangga akan selalu sebagian penuh ketika
menggunakan metode streaming yang ini. Jika aplikasi yang diharapkan Anda tidak mengandung banyak
segmen garis pendek dengan harga pakan yang tinggi, protokol streaming yang ini harus lebih dari cukup
untuk sebagian besar aplikasi, sangat kuat, dan merupakan cara cepat untuk memulai. Namun, kami
tidak merekomendasikan penggunaan metode ini untuk Grbl versi v0.8 atau sebelum karena beberapa
masalah kinerja dengan versi ini.

Streaming Protocol: Via Flow Control (XON / XOFF)

Untuk menghindari risiko kelaparan tampilan-depan perencana penyangga, protokol aliran kontrol
streaming yang dapat digunakan untuk mencoba untuk menjaga seri Grbl ini menerima penyangga
penuh, sehingga Grbl memiliki akses langsung ke garis g-kode berikutnya untuk mengurai dan rencana
tanpa menunggu untuk host PC untuk mengirimkannya. Flow control, juga dikenal sebagai kontrol aliran
software XON / XOFF, menggunakan dua karakter khusus untuk memberitahu host PC ketika memiliki
atau tidak memiliki ruang dalam serial menerima buffer untuk menerima data lagi. Ketika ada ruang,
biasanya di 20% penuh, karakter khusus dikirim ke PC host menunjukkan siap menerima. PC host akan
mulai mengirim data sampai menerima yang lain karakter khusus stop-terima, biasanya di 80% penuh.
XON / XOFF fitur kontrol aliran software Grbl ini dapat diaktifkan melalui config.h, tetapi tidak secara
resmi didukung untuk alasan berikut.
Sementara suara dalam logika, kontrol aliran software memiliki sejumlah masalah. Waktu antara Grbl
dan PC host hampir tidak pernah sempurna sinkron, sebagian besar karena protokol USB dan USB-serial
chip converter pada setiap Arduino. Hal ini menimbulkan masalah besar ketika mengirim dan menerima
ini khusus karakter aliran-kontrol. Ketika seri Grbl ini menerima buffer rendah, waktu antara ketika
mengirimkan siap menerima karakter dan saat PC mengirimkan data lebih semua tergantung segala
sesuatu di antaranya. Jika host PC sibuk atau Arduino-USB seri converter tidak mengirimkan karakter
pada waktu, lag ini dapat menyebabkan Grbl untuk menunggu lebih banyak data serial untuk datang
sebelum parsing dan mengeksekusi baris berikutnya dari G-kode. Lebih buruk lagi meskipun, jika serial
menerima buffer mendekati penuh dan halte-menerima karakter dikirim, host PC mungkin tidak
menerima sinyal pada waktunya untuk menghentikan transfer data dan lebih-aliran penyangga seri Grbl
ini. Ini buruk dan akan merusak aliran data.

Karena metode software aliran-kontrol tergantung pada kinerja converter-USB serial pada Arduino dan
host PC, watermark rendah dan tinggi untuk siap-menerima dan berhenti-menerima karakter harus
disetel untuk setiap kasus. Dengan demikian, itu tidak benar-benar solusi kuat. Dalam pengalaman kami
dengan kontrol aliran software XON / XOFF, itu benar-benar TIDAK bekerja dengan Arduinos dengan
Atmega8U / 16u-USB seri chip converter (pada semua Arduinos arus dari Uno ke Mega2560). Untuk
beberapa alasan, ada USB paket penundaan yang berada di luar kendali Grbl dan hampir selalu
menyebabkan korupsi data. Namun, XON / XOFF bekerja, tetapi hanya pada Arduinos tua atau mikro
kontroler yang menampilkan sebuah FTDI RS232 chip yang converter-USB serial, seperti Duemilanove
atau pengendali dengan break-out papan FTDI. Firmware FTDI ini andal mengirim XON / XOFF karakter
khusus dalam waktu dan tepat waktu. Kami tidak yakin mengapa ada perbedaan seperti antara mereka.

Jika Anda memutuskan untuk menggunakan XON / XOFF kontrol aliran perangkat lunak untuk GUI Anda,
perlu diingat bahwa, pada saat ini, itu akan hanya benar-benar bekerja dengan FTDI USB-serial
converter. Tapi, hal yang besar tentang metode ini adalah bahwa Anda dapat terhubung dengan Grbl
lebih emulator Program serial seperti Coolterm, mengaktifkan XON / kontrol aliran XOFF, memotong
dan paste program g-kode seluruh ke dalamnya, dan Grbl akan mengeksekusi sepenuhnya . (Bagus tapi
tidak benar-benar diperlukan.)

Streaming Protocol: Karakter-Menghitung [Direkomendasikan dengan Reservasi]

Untuk mendapatkan yang terbaik dari kedua dunia, kesederhanaan dan keandalan metode send-respon
dan jaminan performa maksimal dengan kontrol aliran software, kami datang dengan protokol karakter-
penghitungan sederhana untuk streaming program G-kode untuk Grbl. Ia bekerja seperti metode send-
respon, di mana PC host mengirimkan garis dari G-kode untuk Grbl untuk mengeksekusi dan menunggu
jawaban, tapi, bukannya membutuhkan khusus karakter XON / XOFF untuk kontrol aliran, protokol ini
hanya menggunakan tanggapan Grbl ini sebagai cara untuk andal melacak berapa banyak ruang yang
ada di seri Grbl ini menerima buffer. Contoh dari protokol ini diuraikan dalam stream.py streaming yang
script repo kami.

Perbedaan utama antara protokol ini dan yang lainnya adalah PC host perlu mempertahankan hitungan
berdiri dari berapa banyak karakter itu telah dikirim ke Grbl dan kemudian mengurangi jumlah karakter
yang sesuai dengan garis dieksekusi dengan masing-masing respon Grbl. Misalkan ada program G-kode
singkat yang memiliki 5 baris dengan 25, 40, 31, 58, dan 20 karakter (menghitung pakan baris dan
karakter carriage return juga). Kita tahu Grbl memiliki serial 127 karakter menerima buffer, dan PC host
dapat mengirim hingga 127 karakter tanpa meluap buffer. Jika kita membiarkan PC host mengirim
sebanyak baris lengkap seperti yang kita tanpa atas mengalir seri Grbl dapat menerima buffer, tiga baris
pertama dari 25, 40, dan 31 karakter dapat dikirim untuk total 96 karakter. Ketika Grbl merespon, kita
tahu baris pertama telah diproses dan tidak lagi dalam membaca penyangga serial. Seperti berdiri,
membaca penyangga seri sekarang memiliki 40 dan 31 karakter baris di dalamnya untuk total 71
karakter. PC host perlu kemudian menentukan apakah itu aman untuk mengirim baris berikutnya tanpa
meluap buffer. Dengan baris berikutnya pada 58 karakter dan buffer serial pada 71 untuk total 129
karakter, host PC harus menunggu sampai lebih banyak ruang telah dibersihkan dari buffer serial. Ketika
respon Grbl berikutnya masuk, baris kedua telah diproses dan hanya baris ketiga 31 karakter tetap
dalam buffer serial. Pada titik ini, itu aman untuk mengirim tersisa dua 58 dan 20 karakter baris program
g-kode untuk total 109.

Sementara tampaknya rumit, karakter-penghitungan ini streaming yang protokol sangat efektif dalam
praktek. Selalu memastikan membaca seri penyangga Grbl ini diisi, sementara tidak pernah meluap itu.
Memaksimalkan kinerja Grbl dengan menjaga tampilan-depan perencana penyangga penuh oleh lebih
memanfaatkan aliran data dua arah dari port serial, dan itu cukup sederhana untuk menerapkan sebagai
script stream.py kami menggambarkan. Kami telah stres diuji ini protokol karakter-menghitung ekstrim
dan belum gagal. Tampaknya, hanya kecepatan koneksi serial adalah batas.

UPDATE: Sampai baru-baru, kami merekomendasikan bahwa Grbl GUI menggunakan protokol streaming
yang ini. Hal ini memang sangat efisien dan efektif, tetapi ada beberapa tambahan penulis hal
antarmuka harus sadar. Ini adalah masalah yang sedang dikerjakan untuk rilis v1.0.

 Sejak GUI yang preloading seri RX penyangga Grbl dengan perintah, Grbl akan terus
mengeksekusi semua g-kode antri di RX penyangga serial. Masalah pertama adalah jika ada
kesalahan pada awal buffer RX, Grbl akan terus menjalankan buffered g-kode yang tersisa dan
GUI tidak akan mampu mengendalikan apa yang terjadi. Solusi sementara adalah untuk
memeriksa semua g-kode melalui modus cek $ C, sehingga semua kesalahan yang diperiksa
sebelum streaming.
 Ketika Grbl menyimpan data ke EEPROM, AVR membutuhkan semua menyela dinonaktifkan
selama proses menulis ini, termasuk seri RX ISR. Ini berarti bahwa jika g-kode atau Grbl $
perintah menulis ke EEPROM, data yang dikirim selama menulis mungkin akan hilang. Hal ini
biasanya jarang dan biasanya terjadi saat mengalirkan perintah G10 tidak tepat dalam program.
Untuk ketahanan, GUI harus melacak dan mendeteksi ini menulis perintah EEPROM dan
menangani mereka secara tepat dengan menunggu antrian untuk menyelesaikan mengeksekusi
sebelum mengirim lebih banyak data. Perhatikan bahwa protokol send-respon sederhana tidak
tidak menderita masalah ini.

Berinteraksi dengan Sistem Grbl ini

Seiring dengan Streaming program G-kode, ada beberapa hal yang perlu dipertimbangkan ketika
menulis GUI untuk Grbl, seperti bagaimana menggunakan pelaporan status, perintah kontrol real-time,
berurusan dengan EEPROM, dan pesan umum penanganan.

Status Pelaporan

Ketika sebuah ? karakter dikirim ke Grbl (tidak ada line feed atau carriage return karakter tambahan
yang dibutuhkan), maka akan langsung merespon dengan sesuatu seperti <Idle, MPOS:
0.000,0.000,0.000, WPos: 0.000,0.000,0.000> melaporkan posisi negara dan saat ini . Itu ? selalu
mengambil-off dan dihapus dari serial menerima buffer setiap kali Grbl mendeteksi satu. Jadi, ini dapat
dikirim setiap saat. Juga, untuk membuatnya sedikit lebih mudah untuk GUI untuk mengambil laporan
status, mereka selalu terbungkus oleh <> chevrons.

Pengembang dapat menggunakan data ini untuk memberikan posisi pada layar digital-membaca-out
(DRO) bagi pengguna dan / atau untuk menunjukkan pengguna posisi 3D di ruang kerja virtual. Kami
sarankan query Grbl untuk? real-time status laporan tidak lebih dari 5Hz. 10Hz dimungkinkan, tetapi di
beberapa titik, ada semakin berkurang dan Anda pajak CPU Grbl lain dengan meminta untuk
menghasilkan dan mengirim banyak data posisi.

Laporan status Grbl adalah cukup hanya dalam organisasi. Selalu dimulai dengan kata yang
menggambarkan keadaan mesin seperti IDLE (deskripsi ini tersedia di tempat lain di Wiki). Nilai data
berikut biasanya dalam urutan yang tercantum di bawah dan dipisahkan oleh koma, tapi mungkin tidak
dalam urutan yang tepat atau dicetak sama sekali. Laporan output tergantung pada $ 10 laporan status
topeng pengaturan pengguna.

 MPOS: 0.000,0.000,0.000: Mesin posisi terdaftar sebagai X, Y, Z koordinat. Unit (mm atau inci)
tergantung pada $ 13 Grbl pengaturan satuan pelaporan.
 WPos:0.000,0.000,0.000 : Work position listed as X,Y,Z coordinates. Units (mm or inch)
depends on $13 Grbl unit reporting setting.
 Buf: 0: Jumlah gerakan antri di Grbl perencana penyangga.
 Buf: 0: Jangka Waktu Gerakan Antri di Grbl Perencana Penyangga.

Real-Time Perintah Kontrol

Perintah kontrol real-time, ~ siklus start / melanjutkan,! pakan terus, dan ^ X soft-reset, semua segera
sinyal Grbl untuk mengubah keadaan yang berjalan. Hanya suka ? laporan status, karakter kontrol ini
dipetik-off dan dihapus dari buffer seri ketika mereka terdeteksi dan tidak memerlukan line-feed atau
carriage-return karakter tambahan untuk beroperasi.

EEPROM Isu

Akses EEPROM pada Arduino AVR CPU mematikan semua interupsi sementara CPU membaca dan
menulis ke EEPROM. Hal ini menimbulkan masalah untuk fitur tertentu dalam Grbl, terutama jika
pengguna streaming dan menjalankan program g-kode, karena dapat menghentikan sementara utama
langkah pembangkit interupsi dari mengeksekusi tepat waktu. Sebagian besar akses EEPROM dibatasi
oleh Grbl ketika itu di negara-negara tertentu, tetapi ada beberapa hal yang perlu pengembang untuk
tahu.

 Pengaturan tidak dapat dialirkan ke Grbl dengan baik kontrol aliran software XON / XOFF atau
protokol streaming karakter-menghitung. Hanya protokol send-respon sederhana bekerja. Hal
ini karena selama EEPROM menulis, CPU AVR juga menutup-down RX interupsi serial, yang
berarti data dapat rusak atau hilang. Perhatikan bahwa protokol send-respon tidak mengirim
data apapun sampai respon datang kembali.
 Ketika mengubah koordinat kerja, percetakan $ # parameter, atau mengakses G28 / posisi yang
telah ditetapkan G30, Grbl memiliki untuk mengambil mereka dari EEPROM. Ada kemungkinan
kecil akses ini dapat menghentikan sementara stepper atau serial menerima mengganggu cukup
lama untuk menyebabkan masalah gerak, tapi karena hanya menjemput 12 byte pada suatu
waktu pada 2 siklus per mengambil, kemungkinan sangat kecil ini akan melakukan apa saja
untuk bagaimana Grbl berjalan. Kami hanya menyarankan mengawasi ini dan melaporkan
kepada kami masalah Anda mungkin berpikir berhubungan dengan ini.

Sebagai referensi:
 Grbl ini EEPROM menulis perintah: G10 L2, G10 L20, G28.1, G30.1, $ x =, $ I =, $ Nx =, $ RST =
 Grbl ini EEPROM membaca perintah: G54-G59, G28, G30, $$, $ I, N $, $ #

pesan Penanganan

Sebagian besar umpan balik dari Grbl cocok dengan kategori bagus sehingga GUI dapat dengan mudah
mengatakan apa apa. Berikut adalah cara mereka terorganisir:

 ok: Standard all-baik respon untuk satu baris dikirim ke Grbl.


 error :: respon kesalahan Standard untuk satu baris dikirim ke Grbl.
 ALARM :: Sebuah pesan kesalahan kritis yang terjadi. Semua proses berhenti sampai pengguna
pengakuan.
 []: Semua pesan umpan balik dikirim dalam kurung. Ini termasuk parameter dan g-kode negara
parser print-out.
 <>: Laporan Status dikirim dalam chevrons

There are few things that don't fit neatly into this setup at the moment. In the next version, we'll try to
make this more universal, but for now, your GUIs will need to manually account for these:

 Pesan startup.
 $ Bantuan print-out.
 $ N blok Start-up eksekusi setelah pesan startup.
 The $$ lihat Grbl pengaturan print-out.
G-kode Penanganan Kesalahan

Pada Grbl v0.9, g-kode parser sepenuhnya standar-compilant dengan lengkap pengecekan error. Ketika
parser G-kode mendeteksi kesalahan dalam G-blok kode / line, parser akan membuang segala sesuatu di
blok dari memori dan melaporkan kesalahan: kembali ke pengguna atau GUI. Dump ini dapat
menimbulkan masalah, karena G-kode yang buruk blok mungkin berisi beberapa perintah posisi
berharga atau pengaturan kecepatan umpan.

Itu sangat dianjurkan untuk melakukan apa yang semua pengendali CNC profesional lakukan ketika
mereka mendeteksi kesalahan dalam program G-kode, berhenti. Jangan lakukan apa-apa lagi sampai
pengguna telah memodifikasi G-kode dan tetap kesalahan dalam program mereka. Jika tidak, hal-hal
buruk bisa terjadi.

Sebagai layanan untuk GUI, Grbl memiliki "check G-kode" mode, diaktifkan oleh perintah sistem $ C. GUI
bisa streaming program G-kode untuk Grbl, di mana ia akan mengurai, kesalahan-memeriksa, dan
melaporkan ok dan kesalahan: 's tanpa powering pada sesuatu atau bergerak. Jadi GUI dapat pra-
memeriksa program sebelum streaming nyata. Untuk menonaktifkan "check G-kode" mode, mengirim
perintah sistem $ C lain dan Grbl akan secara otomatis soft reset-flush dan re-initialize G-kode parser
dan seluruh sistem. Hal ini mungkin harus berjalan di latar belakang saat pengguna pertama memuat
sebuah program, sebelum pengguna set up mesin nya. Pembilasan ini dan re-inisialisasi membersihkan
G92 oleh G-kode standar, yang beberapa pengguna masih salah gunakan untuk mengatur bagian
mereka nol.

Jogging

Sayangnya, Grbl tidak memiliki antarmuka joging yang tepat, setidaknya untuk saat ini. Ini adalah untuk
menghemat ruang flashdisk berharga untuk pengembangan Grbl v0.9, tetapi dapat diinstal pada rilis
berikutnya dari Grbl. Namun, penulis Grbl GUI telah datang dengan cara untuk mensimulasikan joging
dengan Grbl dengan mengirimkan gerakan tambahan, seperti G91 X0.1, dengan setiap klik joging atau
tekan tombol. Ini bekerja dengan cukup baik, namun, jika tidak terkendali, pengguna dapat dengan
mudah mengantri lebih gerakan dari yang mereka inginkan tanpa menyadarinya dan bergerak baik-masa
lalu lokasi yang diinginkan.

Metodologi umum yang telah terbukti untuk bekerja adalah dengan hanya membatasi jumlah joging
perintah yang dikirimkan ke Grbl. Hal ini dapat dilakukan dengan kunci mengulangi ketika ditekan
menonaktifkan. Perencana penyangga ukuran antrian dapat dilacak sehingga hanya segelintir gerakan
dapat antrian dan dieksekusi.

Sinkronisasi

Untuk situasi ketika GUI perlu menjalankan set khusus perintah untuk perubahan alat, auto-leveling, dll,
ada sering perlu cara untuk mengetahui kapan Grbl telah menyelesaikan tugas dan buffer perencana
kosong. Cara termudah mutlak untuk melakukan ini adalah untuk memasukkan perintah diam G4 P0.01,
di mana P adalah dalam detik dan harus lebih besar dari 0,0. Ini bertindak sebagai kekuatan-sinkronisasi
cepat dan memastikan buffer perencana benar-benar kosong sebelum GUI mengirimkan tugas
berikutnya untuk mengeksekusi.

Using Grbl
IDE sendiri untuk menghubungkan ke Grbl. Bereksperimen atau bermain dengan itu, hanya untuk melihat
apakah Anda Persiapan (Untuk Pengguna Baru.)

Setelah flashing Grbl ke Arduino Anda, menghubungkan ke Grbl cukup sederhana. Anda dapat
menggunakan Arduino menyukainya. Program port serial lainnya, seperti CoolTerm atau Putty, bekerja
terlalu besar. Instruksi yang hampir sama.

 Membuka Arduino IDE dan pastikan Arduino Anda dengan Grbl terhubung ke port USB Anda.
 Pilih Arduino ini Serial Port di menu Tools, seperti yang akan Anda biasanya dengan Arduino.
 Membuka 'Serial Jendela' di menu Tools.

o Jika Anda menggunakan Grbl v0.9, pastikan untuk mengubah baud rate 9600-115200.

 Setelah terbuka, Anda akan melihat pesan selamat datang Grbl seperti Grbl v0.Xx ['$' untuk
bantuan]. Ini berarti semua baik! Anda terhubung!

o Pastikan Anda mengubah "Tidak ada garis berakhir" menu drop-down untuk "Carriage
kembali". Jika Anda menggunakan program port serial lain, Anda harus melakukan hal yang
sama.
o Jika Anda belum menerima pesan selamat datang atau beberapa karakter kacau, memastikan
bahwa baud rate ditetapkan sebesar 9600 (atau 115.200 untuk v0.9 +).

Dari sini, Anda dapat mulai mengirim Grbl beberapa perintah G-kode, dan itu akan tampil untuk
Anda. Atau, Anda dapat mengetik $ untuk mendapatkan beberapa bantuan pada apa yang
beberapa perintah khusus Grbl ini atau bagaimana menulis beberapa setting mesin Anda ke dalam
memori EEPROM Grbl ini.

Ketika sudah mulai merasa nyaman dengan G-kode / CNC dan Anda siap untuk menjalankan
program G-kode utuh, kami menyarankan Anda menggunakan salah satu dari banyak GUI besar
yang pengguna telah ditulis untuk streaming program G-kode untuk Grbl dan untuk sepenuhnya
memanfaatkan semua kemampuan Grbl ini.
Cara Streaming Program G-Code untuk Grbl

Sebuah maju fitur lengkap g-kode pengirim untuk GRBL. bCNC adalah program lintas platform
(Windows, Linux, Mac) yang ditulis dalam python dengan dependensi eksternal minimal. Pengirim
adalah kuat dan cepat dapat bekerja dengan baik dengan hardware lama atau lambat seperti rasperry PI
(Seperti yang disahkan oleh mainter GRBL pada pengujian berat).

Fitur:
o antarmuka yang sederhana dan intuitif untuk layar kecil
o mengimpor g-kode dan file DXF
o cepat g-kode pengirim (bekerja dengan baik pada RPI dan hardware lama)
o konfigurasi ruang kerja (dialog untuk perintah G54..G59)
o pengguna tombol dikonfigurasi
o evaluasi fungsi g-kode dengan ekspansi jangka waktu
o Mudah menyelidik:
 sederhana menyelidik
 pusat finder dengan cincin menyelidik
 auto leveling, Z-menyelidik dan auto leveling dengan mengubah g-kode selama
pengiriman.
 peta ketinggian warna tampilan
 pengguna ekspansi perubahan alat dan panjang alat otomatis menyelidik
o G-Code editor dan tampilan
 tampilan grafis dari g-kode, dan ruang kerja
 grafis bergerak dan mengedit g-kode
 penataan kode dan optimasi gerak cepat
 bergerak, berputar, mencerminkan g-kode
o web liontin yang akan digunakan melalui ponsel pintar

Universal G-code Sender (UGS) [Java Cross-Platform]


Sebuah fitur lengkap GUI, yang dikembangkan olehwwinder, yang mengalir, visualisasi G-kode,
dan memiliki kontrol penuh dan fungsi umpan balik untuk fitur tingkat yang lebih tinggi Grbl ini.
Itu ditulis di Jawa, yang berarti dapat berjalan pada mesin Java berkemampuan termasuk
RaspberryPi! Kelompok Grbl bekerja sama dengan proyek ini dan sangat merekomendasikan
menggunakan GUI ini. Jika Anda menemukan masalah apapun atau ingin meminta fitur GUI
lebih,wwinder telah melakukan pekerjaan yang indah dalam menyelesaikan banyak
permintaan.

Anda mungkin juga menyukai