I tested this with a 2.4 mm diamond toothed milling cutter in two steps. I tested to cut a small piece (20x20 mm) out of a carbon fiber sheet and it turned out to be 20.25 mm instead of the wanted 20. Maybe i also did something else why it’s working now… But what? I really thought this was the problem/solution… You would have less trouble if you made that smaller. Trichoidal milling or adaptive clearing are also something to try. The next time, removing 0.05mm of material, the load will be almost nothing, and it can remove that right to the line. The first time it cuts it is a lot of load, and the bit, router, and gantry will flex. Adding a finishing pass or two finishing passes will help with dimensional accuracy. What I would normally suggest in a case like this is to look at the CAM. So if you are manually moving the right distance, then the gcode will also move the right distance.
Running a gcode file is litterally the same as manual movements, but it is doing them one after another, and there are are feedrates defined for each movement. If you’re getting big parts and small holes, it is probably because the machine is flexing away from what you are cutting. The motion doesn’t have any feedback, so it can’t have any PID loops. The PID is for the temperature control loops. Maybe someone knows the answer and if not it should still be helpfull for people with the same problem… Why does this factor says 0.95 initially and why doesn’t anyone before us had this problem at all? I saw this line: “ #define PID_K1 0.95 // Smoothing factor within any PID loop” and didn’t know what it was, but changed it to 1 and know everything is working as it should… I’am not really familiar with PID Tuning, but i know that it can change a lot in the Race-Drone business… Yesterday i searched through the marlin firmware thinking it’s the only left possibility for something to be wrong and then i found the part with the PID Tuning… tolerances, …) and also testing different milling cutters…
We really tried everything from re-flashing the Rambo again and again, testing the MPCNC with it’s travel distances when it is manually controlled (which worked exactly like it should), testing every single option in Fusion 360 (e.g. For example in one single GCode, when we did two pockets with a width of 10 mm and a distance of 140 mm between them the results were ≈ 9.6 mm instead of 10 and ≈ 140.4 mm instead of 140. We had the problem that for example 2D Contours were getting slightly oversized but 2D Pockets were getting slightly smaller as we wanted them.
On our Mac Book Pro we use Fusion 360 (Student) and the recommended Repetier-Host-Mac app. We also use a 1.5 KW watercooled spindle from China with a 6 mm solid carbide milling cutter for the test in aluminum. We use the DualEndstop System with Endstops on both sides on both axis. Our MPCNC (≈ 48x48x9 cm workspace) with the firmware “Marlin-MPCNC_Rambo_T8_16T_LCD_DualEndstop” flashed onto a Rambo 1.4 (which we bought from Aliexpress). Hope someone can explain what we did wrong and hopefully it’s also helping people! Here is our problem with a big question at the end and our final solution:)
Me and my friend had some trouble getting both our MPCNC’s running with acceptable tolerances…