Hi everyone First, I don't really know if here is the best category to post this or CAD would be better. If CAD is better, tell me, I'll remove this one and repost in the proper category. So I have a 3-axis cnc. When I run a program on my x32, before doing anything the machine plunges to really deep depths (see photo). I'm kinda new to this, but I already managed to run a test program in 2D that went well a little while ago (i.e it did not try to reach the ground of my basement). Then I went for it, not knowing at all what G53 does, and the machine went 10mm below the starting height, because I didn't home anything I guess. I made another test with the same program, without tools or material and it all went well, it went through all the stages of the program without going under the specified bottom height or plunging at the begining (it went straight to clearance height). Then I decided to try the real thing, with the material, the tool, etc... It went straight to about -40mm (relative to the top of the material that I probed just before) before I stopped it. Investigated a little, learned about G53 and made the connexion with my very first problem. But -40 ? It makes no sense to me. At no point in the code does it mentions such a depth. I also never took the machine that close to the bottom of the travel that it could have take this as a home. I still went for a second try, making sure to start high enough above the workpiece and reseting grbl, etc. And it went for a dive. Again. So I'm lost... and need a new 8mm bit too lmao. I have not found satisfying explainations about G53 that could justify any of this, I have trouble understanding why homing has anything to do with a program, knowing everything is specified in it to start from the probing position... So I think my problem comes from my misunderstanding of G53. But I'm not sure though, because unlike other people scraping their workpiece, my machine just went fully through it. Here is the begining of my program: Code: (Made in : Autodesk CAM Post Processor) (G-Code optimized for Grbl 1.1 / BlackBox controller) (OpenBuilds CNC : GRBL/BlackBox) (Post-Processor : OpenbuildsFusion360PostGrbl.cps V1.0.42) (Units = mm) (Arcs are limited to the XY plane: if you want vertical arcs then) (edit allowedCircularPlanes in the CPS file) (Drawing name : test 1 cnc v7) (Program Name : test ap crash) (3 Operations :) (1 : Face5) ( Tool 7: Fraise Deux Tailles 4 Flutes, Diam = 8mm, Len = 19.00mm) ( Spindle : RPM = 12000) ( Machining time : 0h:2m:24s) (2 : Poche 2D2) ( Tool 7: Fraise Deux Tailles 4 Flutes, Diam = 8mm, Len = 19.00mm) ( Spindle : RPM = 12000) ( Machining time : 0h:7m:16s) (3 : Plat2) ( Tool 7: Fraise Deux Tailles 4 Flutes, Diam = 8mm, Len = 19.00mm) ( Spindle : RPM = 12000) ( Machining time : 0h:3m:29s) G90 G94 G17 G21 (Operation 1 of 3 : Face5) (WARNING Invalid Work Coordinate System. Select WCS 1..6 in SETUP:PostProcess) (tab. Selecting default WCS1/G54) G54 (This relies on homing, see https://openbuilds.com/search/127200199/?q=G53+fusion ) G53 G0 Z-10 G0 X145.8 Y1.529 M3 S12000 M8 G4 P4. G0 X145.8 Y1.529 Z15 Z5 G1 X145.8 Y1.529 Z-4.2 F333 X145.793 Y1.529 Z-4.304 F1000 X145.773 Y1.529 Z-4.407 X145.739 Y1.529 Z-4.506 X145.693 Y1.529 Z-4.6 X145.635 Y1.529 Z-4.687 X145.566 Y1.529 Z-4.766 X145.487 Y1.529 Z-4.835 X145.4 Y1.529 Z-4.893 X145.306 Y1.529 Z-4.939 X145.207 Y1.529 Z-4.973 X145.104 Y1.529 Z-4.993 X145 Y1.529 Z-5 X-5 Y1.529 G2 X-5 Y7.001 I0 J2.736 G1 X145 Y7.001 G3 X145 Y12.474 I0 J2.736 G1 X-5 Y12.474 G2 X-5 Y17.946 I0 J2.736 G1 X145 Y17.946 G3 X145 Y23.419 I0 J2.736 G1 X-5 Y23.419 G2 X-5 Y28.891 I0 J2.736 G1 X145 Y28.891
Not “everything” is specified from the ‘probing position’ (actually the origin of the WCS specified - usually G54). G53 is specifically referenced from the machine coordinate system (MCS). This is set by homing the machine, otherwise it is (effectively) random once the machine has been reset a few times.
OK, to explain G53 (and G54) - a cnc router has a MACHINE co-ordinate system which is used as a reference (g-code for that co-ordinate system is G53) - it sets the back, right, up corner as the maximum dimension for each axis - confusingly at first that corner is normally set to zero - the MACHINE co-ordinates become more negative as you move away from that corner. That reference point tells your controller (with the maximum dimension settings for each axis in your controller's configuration) where all the corners and edges of your machine's workspace are. The MACHINE co-ordinate system (MCS) is often used for safety moves at the start and end of a job because it is an absolute position in the machine's workspace. You have to HOME the machine to set that reference system. A grbl controller will set the home position where it is when you switch on, which is why you have to run a homing sequence to set the MCS correctly. Most other things, like running a g-code file, are done in a WORKPLACE coordinate system (wcs). You set a zero point for the wcs (you actually have at least six, but most people only use the first one - G54) in the same place on your workpiece as you set the origin in your cam software - moves can be positive or negative relative to the zero point you set. Symptoms like those you describe can be caused by a variety of errors, but the commonest are ; Not homing the machine Setting the wcs zero point in a different place on the workpiece from the position that you set the origin in your cam software. For example, if you set the origin at the bottom of your workpiece (on the spoilboard) but set the wcs zero on the top surface of the workpiece your controller thinks the spoilboard is at the level where the top of your workpiece is. The other way round and it will try to plunge all the way through the workpiece to reach where it thinks the top surface is. Alex.
TLDR version: 1) Always Home then 2) set Zero by probing or using jog and setzero and then 3) run the job All the trouble starts when one forgets to Home
Reading the Gcode we find Code: (This relies on homing, see https://openbuilds.com/search/127200199/?q=G53+fusion ) G53 G0 Z-10 So, the machine needs to be homed, always. If it does not have limit switches for automatic homing, then you need to fake the home. READ ---> How to 'Fake the home'
I have the exact same problem, homed multiple times, probed and the router keeps diving first thing! I put the gcode attached, also from fusion 360 Clearly, there's a conflict between what the openbuildscontrols takes as a Z starting point (close to the 0 of the base surface) and where it should (stock is 30mm high, probed with the openbuilds probe. Any further clue? EDIT: My Z axis is actually not homing. Just not moving at all while homing the other axis. My max travel doesn't seem to be badly setup (128mm), I don't really understand. My GRBL: $0=10.0 ; Step pulse time, microseconds $1=255 ; Step idle delay, milliseconds $2=0 ; Step pulse invert, mask $3=1 ; Step direction invert, mask $4=0 ; Invert step enable pin, boolean $5=0 ; Invert limit pins, boolean/mask $6=1 ; Invert probe pin, boolean $8=0 ; Ganged axes direction invert as bitfield $9=1 ; PWM Spindle as bitfield where setting bit 0 enables the rest $10=511 ; Status report options, mask $11=0.010 ; Junction deviation, millimeters $12=0.002 ; Arc tolerance, millimeters $13=0 ; Report in inches, boolean $14=0 ; Limit pins invert, mask $15=0 ; Coolant pins invert, mask $16=0 ; Spindle pins invert, mask $17=0 ; Control pins pullup disable, mask $18=0 ; Limit pins pullup disable, mask $19=0 ; Probe pin pullup disable, boolean $20=0 ; Soft limits enable, boolean $21=1 ; Hard limits enable, boolean $22=1 ; Homing cycle enable, boolean (Grbl) / mask (GrblHAL) $23=6 ; Homing direction invert, mask $24=100.0 ; Homing locate feed rate, mm/min $25=1000.0 ; Homing search seek rate, mm/min $26=250 ; Homing switch debounce delay, milliseconds $27=10.000 ; Homing switch pull-off distance, millimeters $28=0.100 ; G73 retract distance, in mm $29=0.0 ; Step pulse delay (ms) $30=1000.000 ; Maximum spindle speed, RPM $31=0.000 ; Minimum spindle speed, RPM $32=1 ; Laser-mode enable, boolean $33=5000.0 ; Spindle PWM frequency $34=0.0 ; Spindle off Value $35=0.0 ; Spindle min value $36=100.0 ; Spindle max value $37=0 ; Stepper deenergize mask $39=1 ; Enable printable realtime command characters, boolean $40=0 ; Apply soft limits for jog commands, boolean $43=1 ; Homing passes $44=3 ; Homing cycle 1 $45=0 ; Homing cycle 2 $46=0 ; Homing cycle 3 $62=0 ; Sleep Enable $63=3 ; Feed Hold Actions $64=0 ; Force Init Alarm $65=0 ; Require homing sequence to be executed at startup $70=7 ; Network Services $73=1 ; Wifi Mode $74= ; Wifi network SSID $75= ; Wifi network PSK $100=161.620 ; X-axis steps per millimeter $101=158.420 ; Y-axis steps per millimeter $102=400.000 ; Z-axis steps per millimeter $110=4000.000 ; X-axis maximum rate, mm/min $111=4000.000 ; Y-axis maximum rate, mm/min $112=1250.000 ; Z-axis maximum rate, mm/min $120=500.000 ; X-axis acceleration, mm/sec^2 $121=500.000 ; Y-axis acceleration, mm/sec^2 $122=150.000 ; Z-axis acceleration, mm/sec^2 $130=990.000 ; X-axis maximum travel, millimeters $131=1490.000 ; Y-axis maximum travel, millimeters $132=128.000 ; Z-axis maximum travel, millimeters $320=grblHAL ; Hostname, max: 64 $322=192.168.5.1 ; IP Address $323=192.168.5.1 ; Gateway $324=255.255.255.0 ; Netmask $325=23 ; Telnet port $326=80 ; HTTP port $327=81 ; Websocket port $341=0 ; Tool Change Mode $342=30.0 ; Tool Change probing distance $343=25.0 ; Tool Change Locate Feed rate $344=200.0 ; Tool Change Search Seek rate $345=200.0 ; Tool Change Probe Pull Off rate $346=1 ; Restore position after M6 as boolean $370=0 ; Invert I/O Port Inputs (mask) $384=0 ; Disable G92 Persistence $396=30 ; WebUI timeout in minutes $397=0 ; WebUI auto report interval in milliseconds $398=35 ; Planner buffer blocks $481=0 ; Autoreport interval in ms $I=acro1510
nothing wrong with that gcode, it expects the top of the material to be Z0, and it expects Z home to be the top of Z travel as is standard on all CNC mills. Homing sets the top of Z travel part (and any power cycle or reset will change that, so those would require a rehome) , and probing the top of the material sets the Z0 'for this part'. I do note that your postprocessor is a bit old and should be updated. (Post-Processor : OpenbuildsFusion360PostGrbl.cps V1.0.37) GRBL post for Fusion360
Fix that first. Homing required, implies a succesful homing run. It has to he HOMED (not just tried to home) $44=4 ; z first $45=3 ; then xy
Thanks Peter and David! So when I do this, the homing goes down (my limit sensor is up), so homing fails. If I invert Z, homing works, but it doesn't really work out It feels like such a basic mistake I'm missing! This is a picture of the setup so you see what I'm talking about.
1) make it jog correctly in $3 Direction Invert. Z+ should lift Z up and away from the spoilboard 2) In $23 Homing dir, tell "where the switches are" - at axis min or max. For Z must be Max and Max must be with the bit drawn up and away from the stock/spoilboard as far as it will go.