Skip to content

dielectric-coder/bCNC-QT

Repository files navigation

bCNC-QT

Qt-only fork of vlachoudis/bCNC Original author: Vasilis Vlachoudis (@vlachoudis)

An advanced fully featured g-code sender for GrblHAL / GRBL. Cross-platform (Windows, Linux, Mac), written in Python with a PySide6 (Qt) interface. Includes autoleveling, g-code editing, digitizing, CAM operations, camera alignment, and 42+ plugins.

Installation

python -m venv .venv
source .venv/bin/activate    # Linux/macOS (.venv\Scripts\activate on Windows)
pip install -e .             # core deps (pyserial, numpy, Pillow, opencv, etc.)
pip install PySide6          # Qt toolkit

Launch

python -m bCNC                   # launch the app
python -m bCNC.qt.app            # alternative entry point
python -m bCNC.qt.app file.gcode # open a file on startup

All commands should be run from the repository root.

Dependencies

  • Python 3.8+
  • PySide6 — Qt toolkit
  • pyserial — serial communication
  • numpy — numeric computation
  • Pillow — image processing (autolevel height map)
  • opencv-python (optional) — camera overlay, edge detection

Features

  • Dockable panel layout — tabbed sidebar with canvas center area, persistent window state
  • 3-axis and 6-axis GUI modes (XYZ + ABC)
  • Digital Readout (DRO) — live work/machine position display with configurable fonts
  • Import/export G-code (.ngc, .nc, .gcode), DXF, SVG files
  • 3D mesh slicing — STL and PLY files (requires numpy-stl)
  • Fast G-code sender — works on Raspberry Pi and old hardware
  • Workspace selection — G54-G59 quick-switch with live highlight
  • User-configurable macro buttons — multi-line G-code, right-click to edit
  • Spindle / override controls — feed, spindle, rapid override with real-time display
  • Probing:
    • Single-direction probing with auto-goto
    • Center finder with probing ring
    • Autoleveling — Z-probe grid scan with heatmap display
    • Jog-and-record digitizer (with camera support)
    • Manual tool change with automatic tool length probing
  • Camera alignment — live OpenCV overlay, 10 anchor modes, edge detection, camera-to-spindle offset registration
  • Orientation alignment — marker-based workpiece alignment with least-squares solve
  • CAM operations — cut, drill, profile, pocket, tabs + 42 plugins
  • G-code editor — tree view with block/line hierarchy, context menu, clipboard, undo/redo
  • Serial terminal — color-coded log with command entry and history
  • Web pendant — mobile-friendly HTTP interface for phone/tablet control

Motion Controller Configuration

  • We recommend FluidNC (github, wiki) for new builds
  • GrblHAL (github) is fully supported (original GRBL also works but is reaching end-of-life on 8-bit MCUs)
  • GRBL should use MPos reporting: set $10=3 (or $10=1 as fallback)
  • Default units are millimeters — ensure $13=0 in GRBL
  • See GRBL v1.1 Configuration and GrblHAL Compatibility Level

Configuration

Settings are stored in ~/.bCNC (INI format). Most parameters can be modified from the Tools panel (Config / Controller). 6-axis mode can be enabled in Config (requires restart).

The default configuration template is bCNC.ini in the installation directory.

Debugging

Log serial communication by changing the port to:

spy:///dev/ttyUSB0?file=serial_log.txt&raw
spy://COM1?file=serial_log.txt&raw

If no file is specified, the log goes to stderr. The raw option outputs data directly instead of hex dump. See pyserial URL handlers.

Documentation

See Also

Disclaimer

The software is made available "AS IS". It seems quite stable, but it is in an early stage of development. Hence there should be plenty of bugs not yet spotted. Please use/try it with care.

About

Qt-only fork of bCNC — CNC controller GUI (PySide6)

Resources

License

GPL-2.0 and 2 other licenses found

Licenses found

GPL-2.0
LICENSE.md
Unknown
LICENSE.BSD3
Unknown
LICENSE.MIT

Stars

Watchers

Forks

Packages

 
 
 

Contributors