Configuring LinuxCnc to accept my touch plate (also known as a touch-off plate) was not easy. Based on the information form cnczone.com I compiled this overview.

Part 1: preparation

  1. Add Touch Plate to your system
  2. Configure the Pin in LinuxCnc
  3. Verify the basic functionality works

Step 1: the actual touch plate

My system didn’t have a touch plate nor did it have a connection prepared for this. This article is not about adding a touch plate interface to your controller board, but about configuring LinuxCnc to be able to use it. Nevertheless 2 photo’s of my work to modify my controller to accept a touch plate.

 

Driver-board-empty-socket

Driver board with empty connector. Section A is for the limit switches. Section B will contain the wires for the touch plate.

 

Driver-board-full-socket

Section A has the limit switches wired up. Section B has the new wiring for the touch plate.

 

Step 2:  Configure the Pin in LinuxCnc

LinuxCnc needs to know to which (input) pin number of the driver board the touch plate is connected. In my case it’s pin number 13, consult your driver boards manual or other provided documentation to find yours.

Configure LinuxCnc for using the touch plate. Start the Stepconf Wizard.

Select modify your configuration.

Select the existing configuration file.

Press forward on the Basic Machine Information screen.

Press forward on the Advanced Configuration options.

Now you arrived at the Parallel Port Setup screen.

Select the correct pin number, mine is 13, and select Probe In from the dropdown menu (See A). After verifying my setup (See step 3 further down) I found out that I had to invert my signal hence the invert box is ticked (See B).

Read the rest of this entry »

Comments 2 Comments »

At some point you need to do the math: the theoretical milling speed of your milling machine running a milling bit at high speed. And guess what we just mentioned the 2 variables to te equation:

  • Spindle speed
  • Milling bit

So you have to measure 2 things and then you’re able to calculate te IPM. Coming up: theory versus practice.

Spindle speed

Tachometer

Tachometer

Fair enough most spindles will ave ample documentation describing te maximum RPM. Mine as well but I wasn’t all that convinced so I bought a tachometer.

Theory versus practice.

In theory the spindle would run at 13000 RPM maximum. Measurements show a maximum of 11400 RPM. So the spindle speed was exagurated by 15%.

 

Theoretical Feed rate

Fl = R/min * Ft * n

So here it is:

Fl = 11400 * 0.3 * 1 = 3420 mm / minute = 57 mm /second

 

From a pcb milling forum (it off course depends on the type of bit used) : Advised speed on milling a pcb is 20 to 30 mm/second on 40000RPM. Proportional reduced to 8 mm/second for my 11400 RPM spindle.

 

From pcbgcode: As a rule of thumb, a safe feedrate for very small milling bits (under 20 mils diameter) is about 1% of the diameter per revolution.

Using the rule of thumb approach. The bit is 0.3 mm V-tip and the RPM is 11400:

0.3 * 0.01 * 11400 = 34 mm / minute = 0.5 mm /second

 Conclusion

“Your milage will vary”

The calculated speed seems very high. From other sources and depending on the bit used te feed rates are muc lower. The deafult on the pcb-gcode setup screen is 254 mm /minute (4mm /second). It appears that te spindle speed cannot be entered there so I assume it will be higher then my 11400 RPM.

First I’ll stick to the 4mm / second but I might have to reduce that, after giving it a go.

Comments Comments Off on Having a go at milling speed IPM

In some cases it might be convenient if we can split a gcode file into smaller pieces so they can be milled in small sections.

How does a typical gcode file, produced by pcb-gcode-3.5.2.11 look like? I suspect to find a header section like:

  • Initialisation
  • Move spindle up.

Sample of the top 15 lines of a test file. The section I consider header is in bold.

G21
(Absolute Coordinates)
G90
G00 X0.0000 Y0.0000
M03
G04 P3.000000
G00 Z2.5400
G00 X1.6917 Y9.2837
G01 Z-0.1778 F254
G01 X3.3883 Y9.2837 F508
G01 X3.5576 Y9.3174
G01 X3.7171 Y9.3834
G01 X3.8606 Y9.4793
etc
etc

First of all it looks like the file indeed has a header section. Let’s see what the codes mean.

[table id=1 /]

That’s it. All there is to the header. I suspect to find a footer as well, but let’s look at the miling parts first.

When milling a line segment it can simply be defined as:

  • Position the spindly just above the linesegment to be milled
  • Move spindle down into the pcb (negative Z movement)
  • Move the spindle around (mill the line segment) without any changes to the height (Z movement)
  • Move spindle up from the pcb (positive Z movement)

G00 X1.6917  Y9.2837
G01 Z-0.1778 F254
G01 X3.3883  Y9.2837  F508
G01 X3.5576  Y9.3174
etc
G01 X1.5224  Y9.3174
G01 X1.6917  Y9.2837
G00 Z2.5400

[table id=2 /]

Milling a line segment by means of the G01 linear Interpolation is in fact pretty straight forward it seems.

Let’s try to identify the footer. It wraps up operation so it will look like:

  •  Move the spindle out of the way
  • Stop the spindle
  • Stop the program

 

G01 X-0.6316 Y0.4907
G01 X-0.6316 Y0.4907
etc
G01 X1.8840  Y0.9641
G00 Z2.5400
G00 Z12.7000
M05
M02

[table id=3 /]

All in all it looks like a relative simple gcode file like this can be split into smaller sub programs complete with header and footer.

 

Comments Comments Off on Gcode analysis – can we split it?