Version: 0.51.0-alpha
Last Updated: November 28, 2025
Application: GCodeKit4 CNC Controller & G-Code Sender
- Introduction
- Getting Started
- User Interface Overview
- Machine Control
- G-Code Editor
- 2D CAD/CAM Designer
- G-Code Visualizer
- CAM Tools
- Device Console
- Configuration & Settings
- Advanced Features
- Troubleshooting
- Keyboard Shortcuts
- Supported Controllers
- Appendix
GCodeKit4 is a modern, cross-platform CNC machine controller application written in Rust with a Slint UI framework. It provides a comprehensive solution for controlling CNC machines, editing G-Code, designing toolpaths, and monitoring machine operations in real-time.
- Multi-Controller Support: Works with GRBL, (grblHAL, TinyG, g2core, Smoothieware, DSP, and FluidNC) are under development
- Real-Time Control: Live position tracking, status monitoring, and machine state display
- 6-Axis Support: Control X, Y, Z linear axes plus A, B, C rotary axes if device supports them
- G-Code Editor: large file support (1M line Gcode) line numbers, and file operations
- 2D CAD/CAM Designer: Create vector drawings and generate G-Code toolpaths, supports pocketing and profile cuts
- Advanced CAM Tools: Laser engraving, box generation, surfacing, and more
- Visualizer: 2D preview with intensity heatmaps for laser operations
- Smart Console: Filtered command history
- Configuration Management: Edit and save controller settings
- Cross-Platform: Runs on Linux, macOS, and Windows
Minimum Requirements:
- RAM: 512MB (2GB recommended)
- Storage: 100MB free space
- Display: 1024x768 resolution (1920x1080 recommended)
- OS: Linux, macOS 10.13+, or Windows 7+
Required Hardware:
- USB serial port or USB-to-serial adapter
- CNC controller (GRBL, TinyG, g2core, etc.)
Pre-compiled binaries are available for Linux, Windows, and macOS.
- Go to the GCodeKit4 Releases Page.
- Find the latest release (e.g.,
v0.51.0-alpha). - Download the archive for your operating system:
- Linux:
gcodekit4-linux-x86_64.flatpak - Windows:
gcodekit4-windows-x86_64.msi - macOS:
gcodekit4-macos-x86_64.dmg
- Linux:
- Extract the archive to a folder of your choice.
- Run the
gcodekit4executable (orgcodekit4.exeon Windows).
# Clone the repository
git clone https://github.com/thawkins/gcodekit4.git
cd gcodekit4
# Build release version (optimized)
cargo build --release
# Run the application
cargo run --releaseThe compiled binary will be located at target/release/gcodekit4.
When you first launch GCodeKit4, you'll see:
- Main Window: Tabbed interface with Machine Control, G-Code Editor, Designer, and other panels
- Menu Bar: File, Machine, Tools, and Help menus
- Connection Status: Disconnected indicator in the status bar
- Empty ConsolGcode-editor: Ready to enter gcode to send to your device.
- Navigate to the Machine Control tab
- Click the "Refresh Ports" button
- The port dropdown will populate with available serial devices
- Port: Choose your controller's serial port from the dropdown
- Linux:
/dev/ttyUSB0,/dev/ttyACM0, etc. - macOS:
/dev/cu.usbserial-*or/dev/tty.usbserial-* - Windows:
COM3,COM4, etc.
- Linux:
- Click the "Connect" button
- Wait for "Device connected" message in the console
- The status indicator will turn green
- Device information tab will populate (firmware version, build info)
Important: Always home your machine after connecting to establish a known position reference.
- Ensure the machine has clear travel to home position
- Click the Home button (⌂ icon) in the Machine Control panel
- The machine will execute the homing cycle ($H command)
- Wait for the cycle to complete
- The DRO (Digital Readout) will display the home position
The GCodeKit4 interface features a modern dark theme for reduced eye strain and better visibility of toolpaths.
┌─────────────────────────────────────────────────┐
│ Menu Bar (File, Machine, Tools, Help) │
├─────────────────────────────────────────────────┤
│ Tab Bar: [Machine] [Editor] [Designer] [...] │
├─────────────────────────────────────────────────┤
│ │
│ │
│ Main Content Area │
│ (Tab-specific content) │
│ │
│ │
├─────────────────────────────────────────────────┤
│ Status Bar: Connection | State | Progress │
└─────────────────────────────────────────────────┘
- New: Create new design or clear editor
- Open: Load G-Code or Design file
- Save/Save As: Save current work
- Export: Export G-Code (Designer)
- Load/Add: Import DXF/SVG files
- Exit: Close application
- Connect/Disconnect: Toggle connection
- Home: Execute homing cycle ($H)
- Unlock: Clear alarm state ($X)
- Reset: Soft reset controller
- Emergency Stop: Immediate halt
- Zoom In/Out/Fit: Canvas controls
- Reset View: Restore default view
- Toggle Panels: Show/hide specific tabs
- G-Code Editor: Edit and preview G-Code files
- Machine Control: Connection, jogging, position display, status
- Device Console: Command history and communication log
- Device Info: Firmware version, build info, capabilities
- Device Manager: Manage multiple machine profiles
- Device Config: Edit controller settings ($0-$130)
- Visualizer: 2D/3D preview of toolpaths with intensity mapping
- Designer: 2D CAD/CAM vector drawing and toolpath generation
- CAM Tools: Specialized generators (Box, Puzzle, Surfacing, etc.)
- Materials: Material database management
- CNC Tools: Tool library management
The DRO displays real-time position information with 0.001mm precision:
- MachX, MachY, MachZ: Position in machine coordinate system
- MachA, MachB, MachC: Rotary axes (if equipped)
- WorkX, WorkY, WorkZ: Position in work coordinate system
- WorkA, WorkB, WorkC: Rotary axes in work coordinates
- State: Large colored text indicating machine state (Idle, Run, Hold, Alarm)
- Feed Rate: Current feed rate
- Spindle Speed: Current RPM
Jogging allows manual movement of machine axes.
Select from predefined increments: 0.1mm, 1mm, 10mm, 100mm.
- X+/X-: Move right/left
- Y+/Y-: Move forward/backward
- Z+/Z-: Move up/down
- A/B: Rotary axis control
- Home ($H): Establishes machine zero.
- Unlock ($X): Clears alarm state.
- Reset: Soft resets the controller.
- Zero Axis: Sets current work coordinate to 0 for specific axis.
Real-time adjustments to machine operation:
- Feed Rate: 10% to 200%
- Rapid Rate: 25%, 50%, 100%
- Spindle Speed: 10% to 200%
- Syntax Highlighting: Color-coded G-Code (Blue), M-Code (Purple), Coordinates (Green), Comments (Gray).
- Line Numbers: Track execution progress.
- Editing: Cut, Copy, Paste, Undo, Redo, Find/Replace.
- Cursor Tracking: Real-time line/column display.
- Blinking Cursor: Visual feedback for insertion point.
- Open: Load .gcode, .nc, .ngc, .tap files.
- Save: Save ck execution progress.
- Editing: Cut, Copy, Paste, Undo, Redo, Find/Replace.
- Cursor Tracking: Real-time line/column display.
- Blinking Cursor: Visual feedback fchanges to disk.
- Send to Device: Stream current file to connected controller.
- Pause: Feed hold.
- Resume: Cycle start.
- Stop: Cancel execution.
The Designer tab provides vector drawing tools and toolpath generation for creating G-Code programs directly within GCodeKit4.
- Rectangle: Draw rectangles (supports rounded corners and slot mode).
- Circle: Draw circles by center and radius.
- Ellipse: Draw ellipses.
- Line: Draw simple lines.
- Polyline/Path: Draw complex multi-segment paths.
- Text: Add text shapes (Fira Mono font).
- Select: Click to select, Shift+Click for multiple, Drag for rubber band selection.
- Move: Drag shapes to reposition.
- Resize: Use handles to scale shapes or groups.
- Group/Ungroup: Combine shapes into a single unit.
- Copy/Paste: Duplicate shapes.
- Undo/Redo: Full history stack for all operations.
- Align: Align shapes horizontally or vertically.
Right-click or use the properties panel to edit:
- Geometry: X, Y, Width, Height, Radius.
- CAM Settings:
- Pocket Strategy: Raster (Zig-Zag), Contour (Offset), Adaptive.
- Cut Depth: Total depth.
- Step Down: Depth per pass.
- Step In: Horizontal stepover.
- Raster Angle: Angle for raster pocketing.
- Bidirectional: Cut in both directions.
- Select shapes.
- Configure tool parameters (Diameter, Feed Rate, Spindle Speed).
- Click Generate Toolpath.
- G-Code is generated and loaded into the Editor.
The Visualizer provides a 2D/3D preview of the G-Code toolpath, allowing you to verify the program before cutting.
- Standard: Shows toolpaths colored by operation type (G1=Yellow, G2=Green, G3=Red, G0=Dashed).
- Intensity (Heatmap): Visualizes laser power/spindle speed ('S' value).
- Show Intensity: Toggle heatmap mode.
- Max S: Set the maximum S value (e.g., 1000) to scale the heatmap.
- Opacity: Higher power is rendered darker/more opaque.
- White Background: Automatically enabled in intensity mode for better contrast.
- Zoom/Pan: Mouse wheel to zoom, drag to pan.
- Fit to View: Center the toolpath in the window.
- Show/Hide: Toggle Grid, Rapid Moves, Cutting Moves.
GCodeKit4 includes specialized generators for common tasks:
Create laser-cut boxes with finger joints.
- Parameters: Dimensions, material thickness, kerf compensation.
- Features: Dividers (X/Y), Dogbone fillets, Open/Closed box types.
Create parametric jigsaw puzzle patterns.
- Parameters: Rows, Columns, Tab size, Jitter.
Generate G-Code to flatten your CNC wasteboard.
- Parameters: Bed dimensions, Tool diameter, Stepover, Feed rate.
Calculate optimal cutting parameters.
- Inputs: Material, Tool type, Machine limits.
- Outputs: RPM, Feed Rate, Surface Speed, Chip Load.
Convert bitmap images to G-Code for laser engraving.
- Algorithms:
- Threshold: Black/White based on cutoff.
- Bayer 4x4: Ordered dithering.
- Floyd-Steinberg: Error diffusion (high quality).
- Atkinson: Error diffusion (high contrast).
- Settings: DPI, Size, Invert, Contrast/Brightness.
Convert SVG/DXF files to G-Code for plotting or laser cutting.
- Features: Hatching (fill), Multi-pass, Scaling.
The console displays raw communication with the controller.
- Color Coded: Blue (Send), Green (Success), Red (Error), Gray (Debug).
- Filtering: Automatically hides status poll spam.
- History: Scroll back to see previous commands.
- Input: Manually send G-Code commands.
- Connection: Default port, baud rate, timeout.
- UI: Theme (Dark/Light), Font size.
- Machine: Default units, jog increments.
View and edit GRBL firmware settings ($0-$130).
- Export: Backup settings to JSON.
- Import: Restore settings from JSON.
Support for G38.2 probing cycles for Z-zero and edge finding.
Support for manual tool changes (M6). The machine pauses and waits for user confirmation.
Enable in settings to control the machine with arrow keys and PageUp/PageDown.
- Check USB cable and power.
- Verify correct port and baud rate (usually 115200).
- Close other applications using the serial port.
- Machine is locked due to error or limit switch.
- Click Unlock ($X) to clear.
- Home the machine if position is lost.
- Check console for specific error messages.
- Verify G-Code syntax and supported commands.
| Shortcut | Action |
|---|---|
| Ctrl+O | Open File |
| Ctrl+S | Save File |
| Ctrl+Q | Exit |
| Ctrl+H | Home Machine |
| Ctrl+R | Reset Controller |
| Ctrl+Z | Undo |
| Ctrl+Y | Redo |
| Ctrl+A | Select All |
| Space | Pause/Resume |
| Esc | Stop/Cancel |
| F11 | Toggle Fullscreen |
- GRBL (v0.9, v1.1)
- grblHAL
- TinyG
- g2core
- Smoothieware
- FluidNC
- Linux:
~/.config/gcodekit4/config.json - macOS:
~/Library/Application Support/gcodekit4/config.json - Windows:
%APPDATA%\gcodekit4\config.json
GCodeKit4 is dual-licensed under MIT and Apache 2.0.
End of User Manual