free CNC Software

Hello again folks , My question is this ... I built a small C.N.C. machine to mill parts and circuit boards ,what would be the best software to use that's free , I don't want to invest until I know how to use the machine and software ,like taking a car for a test drive before you buy .

Thank you

For my mini-router (using a Dremel) that I built for the same purposes, I use Grbl 1.1 on an Uno for the controller and bCNC for the G code sender.

To make PC boards I have used Fritzing to do the PC layout for my simple boards and to generate Gerber files then Flatcam to generate the G code. I used Fritzing because it is easy to learn. KiCad is another PCB design program that is free, but has a bit of a learning curve.

For carving I have used some of the Scorch works programs. F-Engrave for making signs and such. It does enraving and V carve. And Dmap2Gcode to do depth maps from gray scale images.

To do 3D design I use FreeCAD. I don't work with metal so have no real experience with software for milling metal, but with a bit of searching you should be able to find free CAM software to help with that.

All of the linked software is free.

There are two sorts of software you need. One for moving the CNC in response to G code commands and the other to feed the Gcode commands into the Arduino.

Examples of both are here and free to use:-

A good source of free Arduino software is found in the RepRap 3D printing pages.

Transfer to the Arduino is done using applications I wrote in the Processing language.

The generation of the Gcode can be done with the free Inkscape drawing package.

Alright Bob , what if I use CamBam would that allow me to kill 2 birds with one stone , design the file and then send it to the machine ?

Thank you

New question I used RepRap for figure out the steps for my cnc mill , it gave me that my steps need to be 320

my lead screw is 1.25 pitch with 200 steps so 200/1.25 = 160 x 1/2 driver steps =320 but do i need to convert that answer to mm by devide by 25.4 that would give me 12.598mm??

Are you trying to calculate steps per millimeter?

Yes I used RepRap which says my step/mm needs to be (X-Y 320 )but when i jog X20 it goes to 12.5 cm . I sent an attachment so you can see my settings and it still comes out wrong and I cant understand why

Are you working in mm or inches? 1 inch would be 320 / 0.03937 = 8128.01625603 steps, or rounded off, 320 * 25.4 = 8128 steps.

where did you get 0.03937 and if Reprap is doing the calculation I thought it was already in mm

ok 25.4 inverted is .039370 in mm ,so why do you have to invert the 25.4 ??

alright I got it Daaa , im so dumb

Back in the 19th century (1886?) the US standards people said 1 yard = 3937 /3600 meters, so 1 meter = 1.09361111111 yards * 36 = 39.37 inches * 0.001 meters (1mm) = 0.03937 inches, exactly. 1 / 0.03937 = 25.4000508001.

I know that the limit switch location changed with GRBL1.1 ,The Z-limit and the spindle enable pin are swapped, because we had to access the hardware PWM on D11 for variable spindle PWM output to work.So how do I perform Homing the machine without the "-Z switch "?OR can I go back to GRBL 8 and run Homing since I don't use a spindle and re-flash the Arduino Uno ?

In Grbl 1.1 you have the [u]option[/u] to use a variable speed spindle. Only if you use the variable speed spindle does the Z limit pin change. By default the Z limit switch connects to pin 11. If VARIABLE_SPINDLE is defined in config.h, pin 12 is Z limit. If VARIABLE_SPINDLE is commented out, pin 11 is Z limit. If you are not using a variable speed spindle, comment out

define VARIABLE_SPINDLE (around line 339 in config.h).

From Grbl 1.1 config.h

// Enables variable spindle output voltage for different RPM values. On the Arduino Uno, the spindle // enable pin will output 5V for maximum RPM with 256 intermediate levels and 0V when disabled. // NOTE: IMPORTANT for Arduino Unos! When enabled, the Z-limit pin D11 and spindle enable pin D12 switch! // The hardware PWM output on pin D11 is required for variable spindle output voltages.

define VARIABLE_SPINDLE // Default enabled. Comment to disable.

So how do I perform Homing the machine without the "-Z switch

+Z and -Z go to the same pin on the Uno.
By default Grbl is set up for a 3 axis machine. If homing is enabled, the Z axis is homed first, then X and Y. If you do not have a Z limit switch, you need to change homing order in config.h. to skip homing Z.

Look at around line 90 in config.h for instructions about setting the homing order.

And here are the example settings for a 2 axis machine in config.h

// NOTE: The following are two examples to setup homing for 2-axis machines.
#define HOMING_CYCLE_0 ((1<<X_AXIS)|(1<<Y_AXIS)) // NOT COMPATIBLE WITH COREXY: Homes both X-Y in one cycle.

//#define HOMING_CYCLE_0 (1<<X_AXIS) // COREXY COMPATIBLE: First home X
//#define HOMING_CYCLE_1 (1<<Y_AXIS) // COREXY COMPATIBLE: Then home Y

So the "Z - Switches " are connected in parallel SpnEn ,alright thank you

JCA79B: = 0.03937 inches, exactly. 1 / 0.03937 = 25.4000508001.

According to my (American) physics text book an inch is defined as 25.4 mm exactly (which rather surprised me when I first read it).