bCNC - help - support - FAQ

ok so i’m going to start this under upgrades as i feel it to be an upgrade from the more familiar gcode transmission software.

let this be a support and troubleshooting thread.

currently i’m running bCNC under Lubuntu linux successfully but with lack of documentation its hart to take full advantage of its features.

if anyone is using bCNC please post here and let us know your successes. perhaps we can build somewhat of a wiki on features and how to use it more effectively.

Have you checked the bCNC pages on github?

yeah ive been all over them. most are helpful but ever so vague. alot of the UI is somewhat confusing or the menu’s arent labled or hard to find. took me a hour to find the connection menu LOL.

The UI has been re-designed recently, and the wiki pages are still catching up.

Hopefully that will happen sooner rather than later — it’s been on my to-do list for a while now.

If all else fails, read the source code — though I really wish more programmers would use Dr. Knuth’s Literate Programming techniques:

i’m loving all the features but ive had struggles migrating from UGS to bCNC.

seeing some inconsistencies with the tool marker showing in the wrong place vs where the tool actually is. almost like the tool thinks its in metric when the file is in standard or something.

i’d love to see the development of this software package as it gives so may features some of us have been craving such as the area leveling and center probing.

Will are you the developer of bCNC? if so i’d love to pick your brain!.

No, that would be Vasilis:

bCNC has improved hugely since it first hit the scene and keeps getting better.

1 Like

The more I use it the more I get impressed by bCNC. G code sender & editor & simulator & cam plugins & the list goes on… I have still to discover many of its advanced features. I am particularly counting on M6 translation and G0 reordering/optimization to change the game (and grant me more sleep time).

Let me also share a small customization from last night.

One of bCNC’s hidden gems is the fact that the interface itself is modular and customizable. Lately I realized that I spent a lot of time going back and forth between the “control” and the “terminal” module. So, I ended up merging the two by adding under the


section of my $HOME/.bCNC file the following

control.ribbon = Connection User Run Commands Terminal Close = DRO State Control Terminal*

By adding “Commands” and “Terminal” to the control module’s ribbon I bring the two ribbon components found in the terminal module and by adding “Terminal*” to the control module’s page I bring the page component found in the terminal module (the actual console). The “*” does the trick of expanding the vertical component to take all the available height.

Btw, the .bCNC file overrides the parameters found in the bCNC.ini . So, look for the syntax in the latter, but edit the former to make sure your customization will be persistent after future git pulls.

1 Like

I had a chance to try out M6 translation last night. It worked as a charm.

Short version:
GRBL cannot handle M6 tool changes.
At the time of writing, bCNC is the only gcode sender that can translate a M6 to GRBL compatible gcode and save you from dealing with several manual steps and multiple files and therefore save you time.

Long version:
I will try to briefly describe the process in case someone finds it useful. Also for me, because I tend to forget stuff :slight_smile:

This function is found under Probe/Tool. I tried the WCS policy (as opposed to the TLO policy) as it makes more sense at least in my head for a collet based system. As a bonus, the zeroing is persistent (G10 L20 P1 Z…), so if something goes wrong and one needs to reset, the Z is still there.

There are 3 prerequisites:

  • Setting of the location where the tool change takes place. I tried front, middle, Z about half way up. The safest would be Z all the way up. Or at least high enough to clear the thickest stock when using your longest bit. Or designate a X,Y that you know will be always free of stock and use a lower Z. I just wanted to experiment with something lower to save time on unnecessary Z moves. I will probably have to go back and tweak this. To save the change location jog to the desired coordinates and then hit “get” next to the coordinate boxes found in “Probe/Tool/Manual Tool Change/Change:”.

  • Setting of the location where the probing takes place. I tried in the center of the my workarea. Z needs to be high enough so that your longer bit still stands above your probe pluck/plate. But not too high, cause probing is slooooow. Again this depends on whether you zero on your work surface or your workpiece. In the latter case, take into account the workpiece’s maximum possible thickness. Default probe feed was 10mm/min, I settled at 30mm/min hoping this is a good trade off between speed, accuracy/repeatability and tool wear. To save the probe location jog to the desired coordinates and then hit “get” next to the coordinate boxes found in “Probe/Tool/Manual Tool Change/Probe:”.

  • Setting of the plate/pluck thickness or “calibration cycle” in bCNC terms. If your calipers are trusty and accurate (i.e. expensive) you may measure your plate/pluck and enter the “Calibration” value manually. If you have the ebay kind like mine, better run the calibration cycle :slight_smile: . To do so, first make sure you are at the probing location X, Y. Then jog your Z till it barely touches your work surface. Start with big steps and dial down as you approach the surface. I used 0.05 in the end. Hit the “Z=0” button (i.e. G10 L20 P1 Z0) . Then jog your Z up again, place the plate/pluck under, clip the crocodile to the bit and hit the “Calibrate” button. Your device’s thickness is now saved.

Tip: If you tweak some probing values by hand (e.g. probe feed, calibration value), you need to restart bCNC so that these values are saved in your .bCNC file and reloaded. Otherwise, the previous ones will be still used.

You can try the whole thing with something like
G1 somewhere
G1 somewhere else

Bonus: if you add a comment next to M6, e.g.

M6 ;1/4" 2f upcut carbide 15mm stickout

when bCNC starts translating the M6, it will display your comment in color inside the main notification box. This is a nice reminder in case you find asking yourself “so what was I supposed to insert now?” which can be the case if you are dealing with multiple files, bits.

Also, here is the tool change description on bCNC’s wiki.

1 Like

I am really liking bCNC as the gcode sender. Being able to restart a job after a failure, rezero the z, jog the machine without having to open a dialog box, and reorder the gcode are just the start, I am sure. I will definitely continue to play with it as I am using it.

Are you still liking bCNC? What sort of jobs are you using it on?

I use bCNC with my machine. I like it. there are some things that take some getting used to… like it doesn’t like to load all the tool paths in the preview… so most times I only see some of what I am going to carve… but it is all there and carves it all.

I have my limit switches that I need to hook up still… then I would like to do the camera based zero tool. I think that would be cool.

Try this…

oh that is good. Thanks I will adjust that.

So, does anyone have any experience using the macro buttons?
I hear you can mix python and g code together in them, and I am thinking of teaching myself enough python to write an xyz probing cycle based on current tool. This way as long as I keep up with my tool library and keep it accurate in bCNC I should be able to probe with anything I have loaded in.

If anyone has done that already then I will hold off for a bit and just lean on them. :slight_smile:

I am too very interested in this feature, but have not had the time to dig through it. Documentation is so little about it (here and here) that you’d practically have to reverse engineer it.

Some food for thought…

The tool library in bCNC is related to its CAM widgets (it’s conversational CNC features), there’s no reference back to the sender part of it.

The safe way to retrieve the current tool is to call the GRBL parser state with $G and grab the T number from there. You will also need an external mapping between tool numbers and tool radii and keep the numbering consistent with your CAM tool numbering. It can be as simple as a delimitted text file, e.g:


Then your script would have to

  • wait for GRBL idle state
  • call $G
  • parse the T number
  • lookup the relevant radius in your text file
  • run the 3 probing routines based on this radius

You’ll have to experiment to find out how to actually format this inside your gcode the way that bCNC expects it.

Alternatively, an easier (non-script, non-parametric) way would be to take advantage of the 6 (static) macro buttons on the GUI and assign up to 6 probing routines for up to 6 different tool sizes.

Just trying bCNC for the first time and I have hit a few problems, I think due to changes in versions. I am running 0.9.14
I have drawn a simple rectangle in LibreCAD and imported it into bCNC. I am trying to follow the instructions here
I get down to the ‘Creating the profiles’ section and there is an instruction ‘Click on Execute on the bottom of the screen’ I don’t see an Execute anywhere. I got past this by typing ‘prof out’ in command line.
Then it says ‘Selecting the ISO1 view…’ but again I cannot find any way to select a view. I notice on hte web page there is a ‘View’ option on the menu bar, but I don’t have one.

Can anyone give me any pointers on this please?

I cant help because I only use it for gcode

I don’t do any CAM on bCNC either, except for flattening which I do regularly on wasteboard pieces. This btw works great and is super fast (give height,width,depth to flatten, execute, go).

If you don’t want to invest (in time or $) in more advanced CAM, Easel is great for 2.5D work (and so is jscut) .

I also only use bCNC for g-code, and I am thinking of moving away from it - I have started running into issues with probing and bCNC not keeping the zeros when I hit either “pause” or “stop”.

For the ISO view, it is a button on the top left corner of the preview area.


I hope that solves one of your problems.