The MPCNC me and Frode Johnsen has been working on is finally finished on the hardware side.
Out specs:
MPCNC with RAMBO running the dual endstop firmware. The machine also has a Full Graphic Smart Controller that lets me move the mill head in all directions (XYZ). I’ll be using the machine for milling in wood and aluminum. The drill that performs the milling work is independent from the RAMBO; meaning that I turn it on/off and adjust the RPM speed manually.
For our project Frode has been in charge of the software side while I’ve handled the hardware assembly. I’m sorry to inform that Frode passed away 14 days ago, leaving me to figure out the software on my own. I have two questions regarding gcode and the movement of the Z axis.
1st question: I’m unsure if the Z axis on out machine is inverted. If Z-axis is at origin (zero/home) sending the Z-axis to a positive coordinate yield downward movement, while a negative coordinate yield a upward movement. Should this be inverted? And if yes would it be enough to flip the connector for the Z-axis stepper-motor?
2nd question: I’m drawing .dxf files in QCAD, importing them in EstlCAM and building them into gcode to learn the ropes of dxf and gcode. In the EstlCAM settings I’ve set Z-axis origin to “Workpiece Top Side” as instructed by the guide provided by V1Engineering (https://www.v1engineering.com/estlcam-basics/). From studying the gcode outputed by EstlCAM it seems that I have to write a gcode that sets the XYZ-origins before running the gcode outputed by EstlCAM. Would the following gcode do the trick?
(before running the code below I manually adjust the Z-axis to level with the workpiece top)
G92 Z0 ; Set current Z-axis position as new origin
G00 Z-10 F2100 ; Fast move Z-axis upwards (Z-10 or Z10 depending on the answer to question 1)
; I wish to move the Z-axis away from the workpiece before homing XY to avoid ; scratches
G28 X Y ; Find origin for X and Y axis (Dual Stepper system)
G92 X0 ; Set current X-axis position as new origin (not necessary?)
G92 Z0 ; Set current Y-axis position as new origin (not necessary?)
Yes, just flipping the Z cable on the board will get you moving in the right direction. Usually I set the XYZ zero manually before I start a job. Estlcam will add your Z 10 code to the gcode for you, it’s the clearance plane setting under Setup, Basic settings.
W.r.t the gcode in your second question, you don’t need G92 X0 or G92 Y0 because the home does that for you. The G28 should be G28 X Y or G28 X followed by a G28 Y.
Here’s what I would do though. I would have a separate homing sequence, just for squaring it:
G28 X
G28 Y
When I’m setting up a job, I would move to a safe height, then run that file. Then I would jog to the surface of the material, where I put the origin (like the lower left corner of the work) and I would send:
Flipping the Z cable worked like a charm. Now increasing coordinates yield upward movement. I’ve set my clearance plane to 3mm. I think that should do the trick as my workpieces are very flat.
Got it. I’ve set my Z 400mm/min (6,6mm/s). Do you have any recommendations on XY feedrate and ‘depth per pass’ for milling MDF with a flat 4mm mill head and diecast aluminum with a 60 degree 2mm “arrow” head? I have no good way of knowing exactly how fast my drill spins (RPM). At the moment my plan is to set my drill to max speed and do several tests where I gradually increase the feedrate and ‘depth per pass’ starting off with relatively l0w settings the both.
Thank you. The milling tasks I’ll be doing require a shared XY reference point. I’ll be cutting out pockets in a MDF plate (installed as a removable floor/bed for the CNC). These pockets will house aluminum boxes that I intend to engrave and drill holes in.
You have to just make a bunch of test cuts. Some tips that will help:
Getting some easy projects out of the way might be helpful, just to get the common, easy problems figured out first. If you haven’t already, drawing the crown, first from Ryan’s gcode file and then from doing the EstlCAM work yourself, is a really good idea. Then make a 6 pack holder from 1/4" ply and decide if you’re ready for this project. Just my $0.02.
Cutting deeper (with fewer passes) while going slower (6-8mm/s) is easier in the machine and the bits last longer.
Wood is going to be 10x easier than aluminum. Hopefully, you don’t need deep cuts. The Al is more advanced.
Carving is harder than through cuts to get right. Since you are carving and using aluminum, just pay attention and be prepared for more difficulty when you move to metal and when you do some carving.
The top of the work isn’t going to be perfectly flat. Even if it’s perfectly flat (like from a joiner) it won’t be perfectly parallel to the machine’s axis. If you’re making through cuts, go a bit into your spoil board. If you’re engraving, pay very close attention to the depth. A sharper bit (steeper angle) will be less sensitive to errors in depth.
I don’t know everything about your planned build, but maybe screw down a chunk of MDF, cut out a shape to hold a single Al plate and carve them one at a time. In this case, you can home, them move a specific amount on x and y. Then set x,y,z to zero with G92. Then make the hole. Then when you do a plate, you home and move that seems offset, and set zero and carve the plate.
Good plan. I have a pen holder thingy so should be easy to get started on this.
I don’t quite understand what you mean here. Would you mind rephrasing this section of your answer? My plan is to have the XY zero reference in my EstlCAM drawing to line up with the XY home (bottom left corner, [X0,Y0]). If my EstlCAM drawings were to be placed on top of each other with the XY references matching up the milling work for the Al box would reside inside the MDF pockets/shapes. Why do you recommend doing the boxes one at a time instead of a whole grid at once? I’ll try to upload some images of my drawing and printer bed to the thread later in the week to better describe what I mean. I’m having a hard time expressing myself with my limited CNC english lingo.
Would it be an interesting test to:
Home XY, then draw a shape like the crown for instance. Then home XY again and redraw the shape to see if the drawings overlap or not?
This will only work with the dual endstop firmware. Most CNC’s are not used in this manner, you typically zero to the corner of your work piece. With a fixture your endstops need to be very accurate as with the dual endstop firmware.
Not necessarily easy, but a skill builder, for sure. The slots are for a specific thickness of board, so the whole thing should be scaled for that thickness, or finessed after it’s cut.
The reason I would build a holder for the plates, and then carve each of them there is to get a more consistent Z height. The machine will be very accurate if you:
Use the machine to pocket a hole.
put a small plate on the hole, aligned with the lower corner.
adjust the Z=0 to be the top of the plate.
If you’re at a different X,Y for each plate, you’ll end up with more Z error.
Thank you for the clarification. That’s a good point. Doing several at the same time would speed up my process considerably so I’ll just have to test it out and see if the Z error/difference between the plates is tolerable or not.