From ShapeOko
Revision as of 20:36, 13 July 2021 by Willadams (Talk | contribs) (Features)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Supporting documentation page for bCNC Project documentation

Python GRBL CNC command sender, autoleveler and g-code editor. Requires Tkinter and PySerial.



  • Features:
    • g-code sender
    • workspace configuration (dialog for G54..G59 commands)
    • auto leveling, Z-probing and auto leveling by altering the g-code during sending
    • g-code editor
    • web pendant to be used via smart phones
    • graphics display of the g-code, and workspace
    • Python-based macro programming language[1]
    • CAM functionality when importing a .dxf[2]
  • Editor functions:
    • syntax highlighting
    • move/translate of g-code
    • rounding digits
    • inkscape gcodetools correction of annoying Z-lifting and lowering on every passage
    • Graphical block selection for reordering the cut process.

By default, bCNC will send all commands to the machine, including tool change commands which are not supported by Grbl. There are some configuration options for changing this behavior, e.g., the tool change policy in "Probe -> Tool -> Policy".[3]

Dark mode:


Limit switches and work coordinate systems:

Keyboard options:

Forum Discussion

Description of a specific technique for homing / using Work Coordinate Systems so as to avoid a bug / interface issue:


  • Python --- latest v2 (2.7.10 has been tested on some Windows versions and should work): Check the option to add it to the path variable.[4]
  • pySerial --- installer links Use the easy_installer if difficulties are encountered.
    • Windows
      • c:
      • cd C:\Python27\Scripts
      • easy_install pyserial
    • Mac OS X
      • pip install pyserial
  • tkinter --- This is a standard Python library and should be included with all installations.

Runs on a Raspberry Pi (but may get bogged down) a Pi 2 handles the program w/ aplomb.[5]



To use bCNC (be certain to get the correct software (32 vice 64-bit) for your architecture):


Raspberry Pi (add pi user to the dialout group for access to the serial port)[6]


The COM port will need to be updated. For Windows, just use "COM#" where # matches that of the COM port for the micro-controller.[7] --- there should be a drop down menu