Sorry missed this, probably not, I’ll probably try and do some boundary detection with gcode and use that to setup the probe zone, that way it’s specific per the work you’re doing and no larger than that
Hi Mika,
I am very much interested in your bed levelling efforts. The main reason why I want to order a Snapmake is to do PCB milling. Please let me know where you found the 1.7 source. Not having this feature is a K.O. reason for me not to buy a machine.
Thank you
Just found that article. Maybe it helps.
https://hackaday.com/tag/autoleveling/
Buy a different machine Cadde, snapmaker isn’t going to have autoleveling anytime soon and I’ve hit a wall on my project just because of time commitments so it’ll probably take me a few months, you can also wait for SM to release their autoleveling module but I wouldn’t wait on them personally and probably just pickup a cheap cnc machine that has more direct access to modification, or has auto-leveling built in
Thank you. That’s what I anticipated. I watched the product announcement live stream video. They have great ideas, but there is a big difference between idea announced and actual delivery. I wish they would do fewer things but really good and complete. I decided to go with a wegstr instead. Not cheap but impressive in performance, quality and functionality.
Hi all, I just want to add to this thread that I have the same problem. For pcb milling one needs 0.1mm accuracy at least over the working area. With shimming and course pcb design it’s doable but I cannot understand why the code for the 3d leveling cannot
be applied to CNC.
Yours , Jos
The Problem might be the Hardware. The cnc Module probably has no sensor.
I hope they will allow to connect sensors in the future.
@Mika, @Melanchrom, @Tone, @Edwin, @parachvte
I’m pleased to announce that I have successfully leveled my Carving platform/Wasteboard.
Can you please implement Manual Bed leveling for CNC in the next firmware?
First, my CNC bed was 0.65mm lower at the back than the front, actually lower than the middle since the front and middle had the same offsets/measurements. I could not do a proper CNC engraving on acrylic. (same problem as milling on a PCB board)
Following is my process;
- I followed the process explained by @Tone in How to do a larger than 3 x 3 matrix level
- I didn’t do all the steps since there is no probe on the CNC.
- I checked the M503 values and confirmed that M420 was S0 (leveling OFF)
- With the CNC module connected to the cable (to ensure I’m in CNC mode) but not to the X-Axes mounting, I mounted my Digital Dial Indicator (DDI).
- I measured a 3x3 grid, the same as in the 3D printing module (some X and Y offsets different since my DDI is mounted at a different position than the nozzle and probe on the 3D Printing module)
- My measurement results were (remember the DDI measures how far the spindle is lifted);
- At I0J0 1.2 (Left Front)
- At I1J0 1.23 (Centre Front)
- At I2J0 1.25 (Right Front)
- At I0J1 1.12 (Left Middle)
- At I1J1 1.19 (Centre Middle)
- At I2J1 1.17 (Right Middle)
- At I0J2 0.6 (Left Back)
- At I1J2 0.66 (Centre Back)
- At I2J2 0.72 (Right Back)
- I recalculated from my current M503 values for M421 and then send the offset/adjustment values with M421 commands to recalculate my mesh to;
- M421 I0J0 Q1.2
- M421 I1J0 Q1.23
- M421 I2J0 Q1.25
- M421 I0J1 Q1.12
- M421 I1J1 Q1.19
- M421 I2J1 Q1.17
- M421 I0J2 Q0.6
- M421 I1J2 Q0.66
- M421 I2J2 Q0.72
- With my new mesh, I activate the Bed Leveling with M420 S1 and measured at the same positions (with Z 1.00mm lower - my DDI cannot measure negative). This time my DDI measurement results were;
- At I0J0 0.96
- At I1J0 0.98
- At I2J0 0.96
- At I0J1 1.02
- At I1J1 1.05
- At I2J1 0.99
- At I0J2 1.05
- At I1J2 1.05
- At I2J2 0.99
Now this is not a perfect 0.00 leveling, but I was able to go from the 0.65mm maximum difference to a maximum of 0.09mm.
Thus, for @Mika, how to implement manual CNC until it is implemented in the firmware and without a DDI?
- Same as manual leveling in 3D Printing by using a touchpaper.
- Set M420 S0 - Leveling off
- With CNC module and a round drill bit, determine the centre X,Y position.
- Move to the 3x3 mesh X,Y positions (137mm apart on X and 152mm on Y around the Centre position). You can use G42 commands (G42I0J0 F6000) but the CNC axis and 3D nozzle is not at the same positions.
- On each position, move the Z down to do a paper touch test and jot down the Z values.
- Using the Z values, calculate the offsets you want and send the correct M421 codes to adjust the mesh.
- Use M500 to save the mesh to EEPROM
Note: Remember that for the current firmware, G28 will switch off bed leveling, and thus, you will have to include M420 S1 in your GCode after a G28 to use Bed Leveling.
Excellent, i will be doing this for now until a manual bed mesh leveling interface is implemented… especially after milling mild steel plate at slow speeds and only over a 100mm distance and snapping two bits due to be not being level
I’m getting some time again to look at this, but I’m noob to autoleveling from the printers perspective. Following your post, am I correct in thinking I can use M421 to set z value offsets for a grid that I collect via G42?
Nice work. Just leaving that here, is it possible to trick the machine by mounting the CNC module but connecting the 3D printing module, then do the 3D printing bed leveling, and finally re-connect the CNC module? My FR1 sheet seems to be wobbly, on top of a not-so-level bed.
I’m not sure what the Gcode command is to set the bed offsets but, yes, you can manually enter the Z offsets to make the head follow the bed. That said, a better approach is to get the bed truly level with respect to the gantry. You can do that by using a fly cutter or something similar to machine the bed flat. I’m in the process of making an MDF pad that will attach to the CNC bed with screws. It will have holes at the same attachment points as the Snapmaker CNC bed. The process is:
- cut a suitable piece of MDF, then drill and counterbore the attachment holes that will hold the pad to the bed.
- put the pad on the bed and use the snapmaker to drill the attachment point pilot holes
- open the holes up on a drill press.
- put the pad back on the bed and machine the top surface flat using the snapmaker with a wide bit (taking very shallow cuts due to the limited power)
Note that there should be no Z axis offsets in the firmware, otherwise the pad will not be flat.
The problem with using levelling software to put the Z offsets in is that the head will now follow the lumps in the bed. You will now have problems if the PCB is truly flat because you will have to pull the PCB down to conform with the bed. Doing it this way means you will have to run through a leveling routine every time you change the PCB. A better approach (assuming the slides are straight) is to machine the bed to match the slides.
@Waldo, Thanks for documenting your journey :). I have a few questions. When you attached your ddi to the head plate, where are your numbers coming from? You mentioned that your points were similar to the 3x3 pattern, but admitted they were off due to the way you mounted the ddi; were you just going off of whatever the ddi said or was there a zero point?
Also, I’m a bit confused how it all works, honestly. I did an 11x11 on the wasteboard using a ddi. I used i0j0 as my zero mark and went from there. When I put the values in and rechecked everything was within 0.04…pretty great, right? When I loaded up a pcb gcode into the machine, adjust the z offset for the job, saved job origins and sent it home (G28). After homing, I used M420 S1 to ensure that the leveling offsets would be used. When I started the job, Z went down below the board height and then tried to “X” over to the job origin to start. Needless to say I turned off the machine as fast as I could and thankfully didn’t break anything. But, I’m confused on what could’ve gone wrong. The defaults are +9.000…all of my offsets were between +7.85 and +8.9…is there something obvious that I missed? Also, when I adjust the Z offset for the job origin, does it override the settings that I did or do they work in tandem?
I’ve restored to factory settings so everything is back to +9’s. After doing that, the head doesn’t try to go below the wasteboard anymore.
Any help you could provide will be much appreciated. Thanks
@JKC20, Please let us know where we can get this g-code file.