Fadal Programmers, a bit of help?

For you Fadal folk, @Team Ideal  I've been trying to write a few programs from the console 88HS. So at the end of the program, last function is peck drilling, when I want to end the program why does the spindle go to the G54 Z0 before it goes to the G53 home? Code looks like this, when I get to line N66 The spindle drops from the G54 Z.3 to the G54 Z0.0 before going to machine home (G28 Z0.0) this is my first go at this. While I can live with it doing that, I'd rather it not. Also, machine is in format 2

Thanks in advance

N60 Z0.3

N61 G73 R0-1.7 Z-2.06 F2.5 Q0.04

N62 G0 X4.365

N63 G0 X4.385

N64 M9 M19

N65 G80

N66 G28 Z0

N67 M30

|
Luxon MX
Posts
1375
Joined
11/6/2017
Location
San Diego, CA US
Fantasy
7/19/2025 12:48pm

Not a Fadal guy, but I imagine it has something to do with how the machine handles a G80 or how G28 is set in the control. Either way a G54 Z0 move can be a really bad thing, depending on where your G54 is set at. A few things to look at:

1) Sometimes decimal points matter, so try G28 Z0.0 instead.

2) Try a G53 Z0.0 in place of the G28 Z0

3) Long shot, but you can try using G55 for the program and set G54 to some higher value to see if it goes to G55 Z0 or G54 Z0. 

7/19/2025 2:06pm
Luxon MX wrote:
Not a Fadal guy, but I imagine it has something to do with how the machine handles a G80 or how G28 is set in the...

Not a Fadal guy, but I imagine it has something to do with how the machine handles a G80 or how G28 is set in the control. Either way a G54 Z0 move can be a really bad thing, depending on where your G54 is set at. A few things to look at:

1) Sometimes decimal points matter, so try G28 Z0.0 instead.

2) Try a G53 Z0.0 in place of the G28 Z0

3) Long shot, but you can try using G55 for the program and set G54 to some higher value to see if it goes to G55 Z0 or G54 Z0. 

So the g80 is just supposed to cancel the peck drilling cycle (manual says cancele all canned cycles). I know what you're saying about the decimal. I'll input all numbers with an actual value using a decimal because if I input just a 5 the machine reads it as .005 or even .0005 not sure. Per the manual, the G28 should work. But I'll read up on your suggestions.

Thanks

BTW, after I figure out how to get a file from the computer to the cnc, shouldn't be a problem any more as the post will just end the program properly.

Luxon MX
Posts
1375
Joined
11/6/2017
Location
San Diego, CA US
Fantasy
7/19/2025 4:15pm

On second look, I think you're missing an incremental call. G28 Z0 should be G28 G91 Z0

7/19/2025 5:57pm

I'm going to add that in tomorrow. I've seen that in other programs but don't understand why going to a known place (G28) is incremental vs absolute and why it's different. I understood (G90 G91) that to mean G0 X5.0 would move either +5 inches from current position or take you to the X5.0 on the x,y plane.

The Shop

borg
Posts
6700
Joined
12/7/2009
Location
Long Beach, CA US
7/19/2025 6:05pm

Not a Fadal guy either but It might be that you need to call the G80 on the next line after the canned cycle or at least use a g90 or g91 before your x axis moves.

N60 Z0.3

N61 G73 R0-1.7 Z-2.06 F2.5 Q0.04

N61.5 G80

N62 G90/G91 G0 X4.365

N63 G0 X4.385

N64 M9 M19

N65 G80

N66 G28 Z0

N67 M30

Sprew
Posts
429
Joined
4/1/2008
Location
US
7/19/2025 6:17pm

G91 should solve your problem. If left in the absolute mode it will go to G54 Z0 then to machine home, which is exactly what its doing. G90/G91 behaves a bit differently with the G28. Its not a FADAL thing.

You getting what you want out of N64?

SEEMEFIRST
Posts
13623
Joined
8/21/2006
Location
Arlington, TX US
7/19/2025 9:18pm

You guys are making me moist.

I've only done some simple stuff on my own. 99.9% of everything I did Mastercam figured it out. All I really did after hitting "create toolpath" was dial in feeds and speeds. Oh, and try importing shit from Apple software and find the micro loop in a line somewhere. Master Cam can find it now, but before that....schize...

 

Nice work, boys.

7/20/2025 7:25am
borg wrote:
Not a Fadal guy either but It might be that you need to call the G80 on the next line after the canned cycle or at...

Not a Fadal guy either but It might be that you need to call the G80 on the next line after the canned cycle or at least use a g90 or g91 before your x axis moves.

N60 Z0.3

N61 G73 R0-1.7 Z-2.06 F2.5 Q0.04

N61.5 G80

N62 G90/G91 G0 X4.365

N63 G0 X4.385

N64 M9 M19

N65 G80

N66 G28 Z0

N67 M30

So that would not work as that x4.365 position still gets the peck drilling cycle. I know, without knowing the whole process makes no sense. 

After that last peck cycle the G80 stops any canned cycles when you make another move. And during all those moves everything is in G90 mode from line N3.

But I think everyone might be right here that there should be a G91 with the G28.

I have that in my N2 that brings/confirms the spindle is ready for the tool change.

However the book I was reading did say G28 by itself was not a complete command, it needs a value, that G28 Z0 is a complete command. I didn't realize that I might need more (the G91)

7/20/2025 7:35am Edited Date/Time 7/20/2025 7:36am
Sprew wrote:
G91 should solve your problem. If left in the absolute mode it will go to G54 Z0 then to machine home, which is exactly what its...

G91 should solve your problem. If left in the absolute mode it will go to G54 Z0 then to machine home, which is exactly what its doing. G90/G91 behaves a bit differently with the G28. Its not a FADAL thing.

You getting what you want out of N64?

I'm thinking you guys are spot on that I need the G91, I actually have it in my N2 line

N2 G28 G40 G49 G80 G91 Z0 M19

After the original go home N3 it changes to G90

 

And my N64 turns off my coolant (M9) and stops the spindle and orients it for the tool change when the next cycle starts (M19)

Why did that draw your interest. This is my first crack at this programming from the console and there's just so much I need to learn. And not having access to anyone to ask questions made me not need a hair cut for months.

BTW, it's a fadal 2016 with a 88HS control.

Luxon MX
Posts
1375
Joined
11/6/2017
Location
San Diego, CA US
Fantasy
7/20/2025 9:12am

You shouldn't need the spindle orient (M19), it should do that automatically for the tool change at M6. You'll want an M5 (stop spindle), though. 

Luxon MX
Posts
1375
Joined
11/6/2017
Location
San Diego, CA US
Fantasy
7/20/2025 9:15am

Here's a full drilling cycle from my machine (Hurco, but most of it should apply to Fadal)

G00 G17 G20 G40 G80 G90 G94 
M06 T1571 (14.5MM DRILL)
G05.3 P50 (RESET SURF FINISH TO DEFAULT)
(D-DRILL2)
M07 
G00 G90 G54 A90. 
G00 G90 X-1.7615 Y0.2935 S3010 M03 
Z0.2 
G98 G81 Z-1.2182 R0.1 F36.1 
X-1.9925 Y-0.6413 
X-3.1988 Y0.3709 
X1.7615 Y0.2935 
X1.9925 Y-0.6413 
X3.1988 Y0.3709 
G80 
M09 
M05 
G00 G28 G91 Z0.
M01 
Sprew
Posts
429
Joined
4/1/2008
Location
US
7/20/2025 10:15am

Multiple M codes on a single line.

M19 before an M5 (ouch).

No reason for the M19. 

In Luxon’s program notice the M9/M5 consecutive. Put the M5 after the Z home and let the spindle sling off the coolant.

7/20/2025 10:17am
Luxon MX wrote:

You shouldn't need the spindle orient (M19), it should do that automatically for the tool change at M6. You'll want an M5 (stop spindle), though. 

Your right, that it doesn't need an M19. However, I read it also doesn't hurt. The logic is it takes no time to stop in position, but may save a few seconds at the start of the next cycle since it's already correctly orientated to accept the tool #1. So I just started using it instead of M5.

7/20/2025 10:34am

What I've learned so far.

What I've tried to learn from a book is very different than knowledge from experienced people, and while we were able to run parts, my programs are pretty fu@ked up when people with knowledge look at them.

TM

7/20/2025 10:37am
Sprew wrote:
Multiple M codes on a single line.M19 before an M5 (ouch).No reason for the M19. In Luxon’s program notice the M9/M5 consecutive. Put the M5 after the...

Multiple M codes on a single line.

M19 before an M5 (ouch).

No reason for the M19. 

In Luxon’s program notice the M9/M5 consecutive. Put the M5 after the Z home and let the spindle sling off the coolant.

I'm liking all this new info. The guy on YouTube university said m5 and m9 before spindle retract makes less of a mess. That's why I  did that.

TM

7/20/2025 10:40am
Sprew wrote:
Multiple M codes on a single line.M19 before an M5 (ouch).No reason for the M19. In Luxon’s program notice the M9/M5 consecutive. Put the M5 after the...

Multiple M codes on a single line.

M19 before an M5 (ouch).

No reason for the M19. 

In Luxon’s program notice the M9/M5 consecutive. Put the M5 after the Z home and let the spindle sling off the coolant.

Why are multiple M codes on the same line bad?

borg
Posts
6700
Joined
12/7/2009
Location
Long Beach, CA US
7/20/2025 12:11pm
Luxon MX wrote:
Here's a full drilling cycle from my machine (Hurco, but most of it should apply to Fadal)G00 G17 G20 G40 G80 G90 G94 M06 T1571 (14.5MM DRILL)G05.3...

Here's a full drilling cycle from my machine (Hurco, but most of it should apply to Fadal)

G00 G17 G20 G40 G80 G90 G94 
M06 T1571 (14.5MM DRILL)
G05.3 P50 (RESET SURF FINISH TO DEFAULT)
(D-DRILL2)
M07 
G00 G90 G54 A90. 
G00 G90 X-1.7615 Y0.2935 S3010 M03 
Z0.2 
G98 G81 Z-1.2182 R0.1 F36.1 
X-1.9925 Y-0.6413 
X-3.1988 Y0.3709 
X1.7615 Y0.2935 
X1.9925 Y-0.6413 
X3.1988 Y0.3709 
G80 
M09 
M05 
G00 G28 G91 Z0.
M01 

So the G81/83 only needs to be called once and will be called automatically after each subsequent block until G80?

I will will have to look at my drill cycle code. it may be the same. I just don't remember.

Luxon MX
Posts
1375
Joined
11/6/2017
Location
San Diego, CA US
Fantasy
7/20/2025 12:22pm
borg wrote:
So the G81/83 only needs to be called once and will be called automatically after each subsequent block until G80?I will will have to look at...

So the G81/83 only needs to be called once and will be called automatically after each subsequent block until G80?

I will will have to look at my drill cycle code. it may be the same. I just don't remember.

Correct, you just use one call for the canned cycle, then drill coordinates, then G80 to cancel

borg
Posts
6700
Joined
12/7/2009
Location
Long Beach, CA US
7/20/2025 12:52pm
borg wrote:
So the G81/83 only needs to be called once and will be called automatically after each subsequent block until G80?I will will have to look at...

So the G81/83 only needs to be called once and will be called automatically after each subsequent block until G80?

I will will have to look at my drill cycle code. it may be the same. I just don't remember.

Luxon MX wrote:

Correct, you just use one call for the canned cycle, then drill coordinates, then G80 to cancel

OK. I just checked and Linux CNC is exactly the same and  you can use G90 or G91 for coordinates,. Just some minor differences.

 

7/20/2025 1:21pm
borg wrote:
So the G81/83 only needs to be called once and will be called automatically after each subsequent block until G80?I will will have to look at...

So the G81/83 only needs to be called once and will be called automatically after each subsequent block until G80?

I will will have to look at my drill cycle code. it may be the same. I just don't remember.

Luxon MX wrote:

Correct, you just use one call for the canned cycle, then drill coordinates, then G80 to cancel

borg wrote:

OK. I just checked and Linux CNC is exactly the same and  you can use G90 or G91 for coordinates,. Just some minor differences.

 

As I under stand it, Let's say the machine is at x2.0,y2.0. In G90 if you write G00 X0.0 the machine will move to the absolute position of X0,Y2

If you're in G91 (incremental) and you write G00 X0.0 the machine will not move at all because you are asking it to move an incremental amount of zero units.

7/20/2025 1:26pm

Update, I added the G91 to the N66 line and it now reads

N66 G28 Z0 G91

Also, It doesn't matter which order I write them on the console, the machine reorders them to that order.

Machine still drops to the G54 Z0 Before going to the G53 Z0

And on the Fadals, while it will probably accept G54 And G55... The native language for the Fadal

Is E1 for G54, E2 for G55...

It's a puzzle I tell ya!

7/20/2025 1:47pm
Luxon MX wrote:
Here's a full drilling cycle from my machine (Hurco, but most of it should apply to Fadal)G00 G17 G20 G40 G80 G90 G94 M06 T1571 (14.5MM DRILL)G05.3...

Here's a full drilling cycle from my machine (Hurco, but most of it should apply to Fadal)

G00 G17 G20 G40 G80 G90 G94 
M06 T1571 (14.5MM DRILL)
G05.3 P50 (RESET SURF FINISH TO DEFAULT)
(D-DRILL2)
M07 
G00 G90 G54 A90. 
G00 G90 X-1.7615 Y0.2935 S3010 M03 
Z0.2 
G98 G81 Z-1.2182 R0.1 F36.1 
X-1.9925 Y-0.6413 
X-3.1988 Y0.3709 
X1.7615 Y0.2935 
X1.9925 Y-0.6413 
X3.1988 Y0.3709 
G80 
M09 
M05 
G00 G28 G91 Z0.
M01 

Your G28 line also has a G00,

G00 G28 G91 Z0.
M01
 
In Peter Smid's Programming Handbook edition 3, Their example does not use the G00,
only G28 and an axis value. And also not any mention of needing to be in G90 or G91 mode.
And while I'd much rather not have to learn from a book, (In a very bad book learner, I think Falcon will be by to
reprimand me for that term soon LOL) This thread has been very helpful. Although it has created more questions
than answers so far. I should have started this at a far younger age.
7/20/2025 1:59pm
Sprew wrote:
Multiple M codes on a single line.M19 before an M5 (ouch).No reason for the M19. In Luxon’s program notice the M9/M5 consecutive. Put the M5 after the...

Multiple M codes on a single line.

M19 before an M5 (ouch).

No reason for the M19. 

In Luxon’s program notice the M9/M5 consecutive. Put the M5 after the Z home and let the spindle sling off the coolant.

I just read in my book, you're correct. Not supposed to use more than one M code per line. It does say some controls will accept multiple M codes per line but those that don't will show "error". I may as well change that and consider to adopt that habit of not doing it as that seems to be a better standard. Had no idea that was eve a thing.

Sprew
Posts
429
Joined
4/1/2008
Location
US
7/20/2025 2:51pm

Update, I added the G91 to the N66 line and it now reads

N66 G28 Z0 G91

Also, It doesn't matter which order I write them on the console, the machine reorders them to that order.

That is a FADAL thing. Delete the entire line and reinsert it. You can also put the G91 on the line before the G28 by itself. I can only see a bit of your program, make sure to switch back to G90 before your next process. Are you using a Z value in your G54 offset? (touching off a known point).

Borg: If you put a canned cycle on each line, the first hole would execute fine. Every location after that would execute twice. (Don't ask me how I know). That's the beauty of the canned cycle. State once. Also the G00 should also cancel the canned cycle. 

Sorry for the delayed response. I had to catch up on the meme thread.🤪

 

Luxon MX
Posts
1375
Joined
11/6/2017
Location
San Diego, CA US
Fantasy
7/20/2025 2:57pm Edited Date/Time 7/20/2025 2:58pm
Luxon MX wrote:
Here's a full drilling cycle from my machine (Hurco, but most of it should apply to Fadal)G00 G17 G20 G40 G80 G90 G94 M06 T1571 (14.5MM DRILL)G05.3...

Here's a full drilling cycle from my machine (Hurco, but most of it should apply to Fadal)

G00 G17 G20 G40 G80 G90 G94 
M06 T1571 (14.5MM DRILL)
G05.3 P50 (RESET SURF FINISH TO DEFAULT)
(D-DRILL2)
M07 
G00 G90 G54 A90. 
G00 G90 X-1.7615 Y0.2935 S3010 M03 
Z0.2 
G98 G81 Z-1.2182 R0.1 F36.1 
X-1.9925 Y-0.6413 
X-3.1988 Y0.3709 
X1.7615 Y0.2935 
X1.9925 Y-0.6413 
X3.1988 Y0.3709 
G80 
M09 
M05 
G00 G28 G91 Z0.
M01 
ToolMaker wrote:
Your G28 line also has a G00,G00 G28 G91 Z0.M01 In Peter Smid's Programming Handbook edition 3, Their example does not use the G00,only G28 and an...

Your G28 line also has a G00,

G00 G28 G91 Z0.
M01
 
In Peter Smid's Programming Handbook edition 3, Their example does not use the G00,
only G28 and an axis value. And also not any mention of needing to be in G90 or G91 mode.
And while I'd much rather not have to learn from a book, (In a very bad book learner, I think Falcon will be by to
reprimand me for that term soon LOL) This thread has been very helpful. Although it has created more questions
than answers so far. I should have started this at a far younger age.

G00 is just a rapid move. Adding it ensures the machine rapids home rather than feeding home if it had a G01 in the lines before the G28.

Your best bet might be to omit G28 entirely and just use G53 Z0.0 I always end my programs by calling up the first tool and a few G53 moves to position the table/tool where I want it:

... lots of code before this ...
X1.798 Y1.1329 Z-0.2026 
X1.7979 Y1.1334 Z-0.1911 
G00 Z0.2 
M09 
M05 
 
M06 T100 (FACE_MILL)
G00 G53 Z0. 
G00 G53 Y19.75
G00 G53 X20.
M2 
%
 
You don't need the G00 every line and I could combine the X and Y moves, but I like to leave everything like that as sometimes I have it go somewhere else or only move one axis depending on the part and setup. Leaving it in this format is foolproof and makes for easy changes. 
Vet57
Posts
2488
Joined
12/13/2010
Location
BRO Town, MA US
7/21/2025 2:06am

Impressive, guys....

1
borg
Posts
6700
Joined
12/7/2009
Location
Long Beach, CA US
7/21/2025 6:36am
Sprew wrote:
Update, I added the G91 to the N66 line and it now readsN66 G28 Z0 G91Also, It doesn't matter which order I write them on the...

Update, I added the G91 to the N66 line and it now reads

N66 G28 Z0 G91

Also, It doesn't matter which order I write them on the console, the machine reorders them to that order.

That is a FADAL thing. Delete the entire line and reinsert it. You can also put the G91 on the line before the G28 by itself. I can only see a bit of your program, make sure to switch back to G90 before your next process. Are you using a Z value in your G54 offset? (touching off a known point).

Borg: If you put a canned cycle on each line, the first hole would execute fine. Every location after that would execute twice. (Don't ask me how I know). That's the beauty of the canned cycle. State once. Also the G00 should also cancel the canned cycle. 

Sorry for the delayed response. I had to catch up on the meme thread.🤪

 

"Borg: If you put a canned cycle on each line, the first hole would execute fine. Every location after that would execute twice. (Don't ask me how I know). That's the beauty of the canned cycle. State once. Also the G00 should also cancel the canned cycle." 

My CAM program, Aspire, will not use the canned cycle for some reason. It writes out a peck drilling cycle line by line and does it for each position. Not sure why it wont use it. It's a woodworking CAD/CAM but will also do simple metal cutting. 

Hey TM, try it in Aspire if you still have it. It will be a longer program but should work. Unless you want to learn manual programming which is always good to know. 

McG194
Posts
4113
Joined
9/7/2017
Location
Palm Coast, FL US
7/21/2025 7:51am

Somewhere in my office I have all of my notes from programming Fadel and other CNC's and various programs. It's been since about 2003 since I've been in a tool and die shop and for a program that I used to be able to write with no reference help has me confused.  lol

I know I could walk into any shop and hold 0.00005 tolerance on a surface grinder but on a CNC I'd be lost for a week and then struggle for a month. Almost makes me want to hit up the local Juco to take some classes. 

7/21/2025 10:31am

Update, Per @Luxon MX  and @Sprew 

I changed the lines which have 2 M codes and also changed M19 to M5

So those now read 

NXX M9

NXX M5

And at the end I put the G91 on it's own line before the G28 Z0

NXX G91

NXX G00 G28 Z0

Machine now does NOT make a detour trip to G54 Z0

It now goes straight to G28 Z0

Thanks guys

TM

2

Post a reply to: Fadal Programmers, a bit of help?

The Latest