bCNC tutorial: installation, probe, PCB instruments – 1

Spread the love

I have been prototyping PCBs with the CNC for years. I have created a CNC machine suitable for this, and today I would not know how to do it without it.

bCNC CNC tutorial installation probe PCB milling instruments
bCNC CNC tutorial installation probe PCB milling instruments

I’m going to show a short guide on bCNC, here is the description of the software from the main site:

GRBL CNC command sender, autoleveler, g-code editor, digitizer, CAM and swiss army knife for all your CNC needs.

An advanced fully featured g-code sender for GRBL. bCNC is a cross platform program (Windows, Linux, Mac) written in python. The sender is robust and fast able to work nicely with old or slow hardware like Raspberry Pi (As it was validated by the GRBL maintainer on heavy testing).

From main bCNC site
bCNC example page
bCNC example page

I use this software to manage my little homemade CNC


You can find all steps to build It here CNC Cyclone PCB Factory how to make It.

I’m doing a lot of prototypes with it, and It works well.

FlatCAM PCB pcf8574 result
FlatCAM PCB pcf8574 result


As you can read from the description, It’s cross-platform software, so there are many installation types. You can find this information on the main site also.


EXE installer

Naturally, we start with the simplest, and you can find in the release repository the installer per windows

Naturally not significantly updated but work without any problem and with many features.

Using PIP

1.) Install python 2.7:

Do not forget to install Tcl/Tk and PIP modules while doing so. Also, check that python will be added to the path:

2.) Open a command line and install bCNC using pip:

This installs bCNC to C:\Pyhton27\Lib\site-packages\bCNC\ and launches it using python -m bCNC


You can get good instructions to install Python from the link on Medium

Here is the recap :

  1. Install pyenv and tcl-tk
  brew install pyenv
  brew install tcl-tk

  1. Add environment variables into ~/.zshrc or other shell rc and restart the shell/terminal
# python pyenv
export PATH="$HOME/.pyenv/bin:$PATH"
if which pyenv > /dev/null; then
  eval "$(pyenv init -)";
# pyenv-virtualenv
if which pyenv-virtualenv-init > /dev/null; then 
  eval "$(pyenv virtualenv-init -)"; 
# tcl-tk
export PATH="/usr/local/opt/tcl-tk/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/tcl-tk/lib"
export CPPFLAGS="-I/usr/local/opt/tcl-tk/include"
export PKG_CONFIG_PATH="/usr/local/opt/tcl-tk/lib/pkgconfig"
export PYTHON_CONFIGURE_OPTS="--with-tcltk-includes='-I/usr/local/opt/tcl-tk/include' --with-tcltk-libs='-L/usr/local/opt/tcl-tk/lib -ltcl8.6 -ltk8.6'"

  1. install pyenv virtual env
brew install pyenv-virtualenv

pyenv install 3.8.0

exec $SHELL
  1. Test tcl tk setup
  mkdir ~/foo; cd ~/foo
  pyenv local 3.8.0
  pyenv version
  python -m tkinter -c 'tkinter._test()'

  1. Install and launch bCNC
    pip install --upgrade bCNC
    #pip install --upgrade git+ #if you want git version
    python -m bCNC

Linux / BSD

  1. Update your system (Optional) and install git, python (with tkinter support) and pip:
	#This is specific for Debian/Ubuntu, other distros have other package managers than apt-get
	sudo apt-get update
	sudo apt-get upgrade
	sudo apt-get install git python python-tk python-pip

  1. Install bCNC using pip and launch it:
	sudo pip2 install --upgrade bCNC
	#sudo pip2 install --upgrade git+ #if you want git version
	python2 -m bCNC

Start working

Now go to File Tab. The first operation is to connect your device to bCNC, and if you use my electronic with Arduino, you must connect the device and set the correct port, the baud rate to 115200, and the GRBL1 controller.

CNC shield mounted

then click to open.

bCNC Serial Panel
bCNC Serial Panel


My first CNC couldn’t do Home, and it was frustrating. I removed the limit switches because I didn’t know how to remove the noise (see this article for more details “CNC Cyclone PCB Factory: mechanical limit switches“), and I used tricks to avoid various tip changes, as you can see in the “Milling PCB tutorial“.

My first CNC created with an old scanner and printer
My first CNC created with an old scanner and printer

But all CNC must-do home, you can find the home command in this toolbar.

bCNC Control Tab
bCNC Control Tab


To follow the guide, you need to have these boards

FR4 Single Side Copper Clad plate
FR4 Single Side Copper Clad plate

Here the FR4 single side copper clad Aliexpress

For all works, I use the same bits

Pyramid Engraving Bits 20 Degree
Pyramid Engraving Bits 20 Degree

Here the pyramid bits AliExpress

PCB drill bits
PCB drill bits
Here the bits for drilling AliExpress


Now you must go to the bottom left angle of your board.

bCNC Status Panel
bCNC Status Panel

Put your bit with the alligator clip for probe about 1mm over the copper.

Cyclone PCB Factory probe
Cyclone PCB Factory probe

Then click the button to set all coordinates to 0 XYZ=0.

Now you must set the X and Y coordinate of your probe panel to 0 and Z to -2, and this means that X and Y remain fixed and Z try to find a contact from the actual position to 2mm depth.

bCNC Probe Panel
bCNC Probe Panel


  1. bCNC tutorial: installation, material and probe
  2. bCNC tutorial: autolevel
  3. bCNC tutorial: restart work and milling process

Spread the love

Leave a Reply

Your email address will not be published. Required fields are marked *