https://github.com/michaelfranzl/grbl-gui
Gcode scripting, 3D visualization and streaming for the grbl CNC controller
https://github.com/michaelfranzl/grbl-gui
3d-visualization cnc-controller gcode gerbil-gui grbl gui opengl python streaming
Last synced: 8 months ago
JSON representation
Gcode scripting, 3D visualization and streaming for the grbl CNC controller
- Host: GitHub
- URL: https://github.com/michaelfranzl/grbl-gui
- Owner: michaelfranzl
- License: gpl-3.0
- Created: 2016-04-29T09:54:07.000Z (about 10 years ago)
- Default Branch: main
- Last Pushed: 2024-01-12T23:59:43.000Z (over 2 years ago)
- Last Synced: 2025-08-12T16:38:38.904Z (10 months ago)
- Topics: 3d-visualization, cnc-controller, gcode, gerbil-gui, grbl, gui, opengl, python, streaming
- Language: Python
- Size: 742 KB
- Stars: 39
- Watchers: 5
- Forks: 9
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
# grbl-gui
Graphical User Interface for the "grbl" CNC controller; implemented in Python 3 with Qt 6 bindings.
## Features
* Real-time displays of grbl's state (mode, working position, machine position, motion mode, plane
mode, distance mode, feed mode, unit mode, program mode, spindle mode, spindle RPM, serial read
buffer untilization)
* Quick push buttons for
* Abort/reset
* Kill alarm
* Homing
* Check mode
* Holding and Resuming
* Generation of g-code that draws the bounding box around all other g-code (automatically goes to
Hold mode, user can continue by pressing the Resume button)
* Go to maximum Z
* Go to upper right corner
* Go to lower right corner
* Go to coordinate system origin
* Spindle off
* Spindle maximum
* Simulation (dry-run) mode
* Sliding feed override
* interactive preprocessor g-code variable editing
* Buffer display
* interactive grbl's settings table
* Detached-window, real time, 3D visualization of g-code and tool position (using https://github.com/michaelfranzl/pyglpainter)
* Embedded Python scripting for procedural g-code generation and transformation
* Robust streaming of g-code to grbl (using https://github.com/michaelfranzl/grbl-streamer)
* Jogging buttons
* Coordinate system switching
* Interactive, one-line command line interface to grbl
* Supports grbl variant 0.9 (but 1.1 should work too thanks to grbl-streamer)
* Event timeline (of commands sent and received)
## Screenshots






## Requirements
* Your graphics hardware and drivers need to support at least OpenGL version 2.1 with GLSL version 1.20.
* An Arduino board with grbl version 0.9j flashed onto it (however, the Gcode simulator and scripting will even work without an Arduino board connected) and connected to your computer.
## Dependencies
Dependencies are managed using pipenv:
```sh
pip install pipenv --user
pipenv install -d
```
## Usage
To start:
```sh
pipenv run ./grbl-gui.py gui --path /dev/ttyUSB0 --baud=115200
```
## Development
Update Python code from Qt .ui file
```sh
pyuic6 -o lib/qt/grbl_gui/ui_mainwindow.py lib/qt/grbl_gui/mainwindow.ui
```