Sudden speed changes on curved sections only

I suppose you could call it stuttering as well…

Don’t remember it ever doing this before, but when drawing curves (straight lines are fine), it seems to randomly change speed.

Made a list of things to try that I have found in here… Junction_Deviation, buffer sizes, Estlcam set to mm/m not mm/s etc

Any other ideas?

Hope this link works…

1 Like

So how are you supplying the gcode, is it on a card and working that way or are you sending it via a usb cable or wireless?

If from card, i have no idea what would cause it. It truly looks like it is pausing waiting for the code to catch up.

1 Like


  • Please post the g-code file
  • What version of the firmware are you using, and what modifications (if any) have you made on that firmware?
  • What control board are you using?
  • How are you sending the g-code?

Riley’s question hints that the problem may be in the communication of the g-code to the control board. To me, this seems like the most likely root of your issue. A ton of machines have been built using the V1 maintained firmware, and none of them experience this problem. So, if you are using a recent version of V1 maintained Marlin firmware, the issue is not a firmware setting.


I have returned to my MPCNC after a while and it’s not going well!

I just CANNOT get my PC to talk to the Rambo board. It throws up this stupid ‘Filename too long’ error and no amount of Googling etc seems to get me past that.

I have a pile of ideas to try to resolve this issue. But until I can talk to the Rambo, they are all mute.

I am connected by USB. Always worked fine before, so not sure what has changed.

I added a short path to the Arduino Ide preferences file… no difference.
I downloaded a new version of the Marlin dual stop software, but that throws up the same error.

It’s Arduino IDE 1.8.5 (GOD I HATE ARDUINOS!). I tried the latest IDE and that just hung for some reason. I do find the newer IDE’s a bit troublesome.

Any idea how to get past this ‘Long filename’ error? Seems to be a thing but I don’t remember having it last time.
I’ll have to go and get the other info you requested. 4 hrs on this stupid issue so far…

what is the filename you are using? try shortening it.
Also, once your board is flashed ide is not needed.
You may want a look at our docs section.

The crown is as simple as copying it to a card and inserting it, as long as you have a display.

Well I have obviosuly tried shortening it! Also moved the files to the C drive to keep the path short.

I do need to re-flash it, as I need to enable some features that are currently not available (adding a laser etc).
Plus, some of the suggested fixes for the stuttering require altering settings in the configuration.h file.

I’m a bit confused by your latest post. Are you talking about compiling the firmware? On Windows, the Arduino IDE will no longer compile the Marlin source. If you don’t require any firmware changes from V1 maintained firmware, you can use XLoader to move the binary without compiling. If you need to compile the firmware, you can use PlatformIO.

As mentioned above, others using V1 maintained Marlin versions are not suffering from your issue. There was a jittering bug in an older version, but current versions work just fine. So, before changing any firmware settings, make sure you are using an unmodified current version, and, if the problem still occurs, look for other causes besides the firmware. It looks like a communication issue to me.

1 Like

O.k. so I just looked up your History. The picture of your cnc, (Nice build I may add) shows you were using the firmware from Estlcam. (At least that is what it looked like.)
Can you please elaborate on what you have. The last thing I want to do is add to the problem. I want to help be the solution.

OK. After messing around with the Arduino IDE… I finally got it to talk to the Rambo.

Arduino Versions 1.8.5. and below had the long filename error.
Arduino Version 2.1.1 (The latest), just hangs and doesn’t work at all.
Found an old version of Arduino IDE… 1.9.0 Beta on an old USB stick. That works, compiles and loads.

The front screen of the LCD says 414D Bugfix 2.0. I assume that is the current version loaded.

I downloaded the new Marlin software. I will attempt that maybe tomorrow.
I do have a few things to change in the setup files as well, as I have a joystick connected and a wireless tablet controller etc. But I supposed I can try it bare to start.

From Googling…

Changing mm_per_arc_segment to 0.0 in Config.h did nothing.
Setting Estlcam to mm/m instead of mm/s did nothing.

Could not find ‘Disable_junction_deviation’ which was recommended to be disabled.

A lot of people fixed the stuttering by changing the seg_length to 0.0 in the G2_G3.cpp file (Marlin/SRC/gcode/motion/G2_G3.cpp.

But… I could not find such a setting at all.

414 is several years old. The current version is 515. You really should get the latest firmware for your setup, and try that first. I think you can flash it via SD card, and not worry about installing PlatformIO. The current state of Marlin will not compile in the Arduino IDE. It needs PlatformIO to properly build. But again, I’d strongly recommend using a pre-built version of the firmware for your machine.

1 Like

Pre-built version? As in not edited by me?
Then I can’t use my Joystick, touchscreen etc (The joystick is the most handy thing ever)

Could never get PlatformIO to install correctly. I wish this stuff just worked!

Well, when you download the firmware, you have your choice, you can use the detailed and documented process of xloader and have it working in minutes, or the entire project is in the download and you can modify until your heart is content.

I myself use the precompiled version, I run a ramps 1.4 with screen/card and it works great. (Greatly thinking about changing all that right now with the new esp32 stuff going on.)


  • Verify that you have a new firmware version running on your machine. If you can place your TFT in Marlin mode, it will be displayed when the board is booted. If you cannot place your display in marlin mode, you can send an M115 to the control board and look at the returned info.

  • Since you have a display, you likely have an SD card slot. Run the same job from an SD card. If running from an SD card does not have the issue, you likely have a communication issue.

  • This is a bit of a shot in the dark, but check your baud rate on whatever device is sending the g-code. It should be 250,000. Note this is a different baud rate than what is used to upload the firmware.

  • If the problem happens using the SD card, use XLoader to install a pre-compiled binary as a test. There are thousands of people using these machines, and you are the only post to the forum with this problem. I suspect something specific to your machine, like modifications you’ve made to the firmware to support your joystick and TFT, bad USB cable, wrong baud rate, etc.

  • See if your problem happens with the g-code version of the crown test. This will help to determine if there is some issue in the g-code.

  • Upload your g-code file to a post on the forum. Someone here can take a look to see if there is something strange in the file.

  • Letting us know what control board you are using might be helpful.

1 Like

A few things…

  • As mentioned, the Arduino IDE can no longer compile Marlin on Windows. It still works with Linux or Mac, though, so that is a possible resort. Plarformio is a good way to do it, and if you follow the instructions on the V1 docs, it should be doable.

  • The test crown gcode does not use G02/G03 (Arc movements) it uses short straight G01 movements, so if the problem is with arc commands the test crown will not show the problem. You can still set up your CAM to not use the arc commands, this might also be an issue. My first board used to slow down doing arcs, sometimes randomly pausing mid-cut, it got better when I replaced the board with one that has a 32 bit processor with better math capabilities. Marlin basically just computes its own small straight lines from an arc command anyway, so changing the CAM only wastes a few bytes of storage for the gcode file. (That said, I preffer to use the arcs myself.)

  • Loading the pre-made image will at least let you know if it was your changes which cause the problem, giving you an idea where to look. Once you get platformio working to compile the firmware, you can add in the changes one at a time to see where things are going awry.

It just boggles my mind that the Arduino IDE no longer works in Windows… but hey ho.

I just cannot get on with PlatformIO. It is so unintuitive to me, and I am no super programmer.
I just spent 2 hrs trying to get the latest Marlin file to compile on PlatformIO and I just got errors all over the place. That was after watching the ‘How to do it’ video.

Baud rate is correct. 250000.

I am certainly not changing out the Rambo board for something 32bit. It’s just not worth my investment. I never use this thing and this was a last hurrah to actually make it worth the space it is taking up.

SD card? Never tried running it from that. The menu system on the LCD is 90% geared towards 3d printing. TBH, the LCD is pretty pointless unless you are running from an SD card. I never use it.

I’ll try the SD card gCode tomorrow, but I don’t think that is the long term answer.

No idea how to put the screen in Marlin mode (if indeed, you can)

That’s 12 hours on this today with no progress Going to walk away for a few days.

Thanks for the advice

1 Like

Personally, once it is set up, I find it to be much less trouble to work with than the Arduino IDE, but then I am a programmer by training. Still, the principle is the same, load the project, modify the configuration files (and/or code if need be) and compile. It will also handle uploading to the board, too, and with fewer avrdude errors :stuck_out_tongue: .

1 Like

Oh, the TFT35 goes into Marlin mode by pressing the dial down for ~3 seconds and selecting Marlin mode. The stock image may work with touch screen mode as is.

I am not using Marlin, so I use a very different LCD, but probably I am using it for everything you want a joystick for. I also have several easily triggered macros for doing things like auto-square, setting work zero coordinates, etc.

I don’t like having a PC in the machine room, so I do like running the machine from the SD card, and uploading code to the card over wifi. So a slightly different use case.


Thanks for all the advice.

My joystick is my easiest way of putting the head where I want it. Press and hold the joystick top button to set origin.
Never use the screen.

My workshop PC is a super-duper gaming tower that we never used after the wife went over to PS5.
It’s great as it runs my CAD stuff really well.

I’ll attempt PlatformIO again, but I am getting old and tired and this stuff doesn’t come naturally anymore!

Oh, and NOBODY hates the Arduino IDE more than me… but it’s what I am used to.

1 Like

Well I just spent the last few hours trying to get the Marlin code into the HORRIBLE (only my opinion) PlatformIO.
Stuff popping up all over the shop… install this, conflict that, do this, do that…

The trouble is… it’s just too complicated for what I need to achieve here.
I have no doubt that if you program various systems, then having it in all one place like this is great. But to a newbie to PlatformIO like me… it’s just baffling.

So, it looks like I am stumped. I either default the CNC back to factory with none of my additions (joystick, wireless tablet etc) and use the Hex upload feature (Using Xloader?)… or I walk away.

The whole point of this exercise was for me to set this up how I need it, and that means editing the configuration files.

So unfortunately, I think it’s the second option. Spent WAY too much time on this and for the return I am getting, it just takes up too much workshop real estate.

Thanks all. I’ll tinker around, but that corner of my workshop will probably now house my Prusa instead :frowning_face:

So, it looks like I am stumped. I either default the CNC back to factory with none of my additions (joystick, wireless tablet etc) and use the Hex upload feature (Using Xloader?)… or I walk away.

You have other choices, including having someone on the forum compile the firmware for you with your changes, and then using XLoader with that binary. They would need to know the required changes in configuration.h and/or configuration_adv.h.

But we haven’t found the root of your issues. You haven’t run the suggested tests (or at least reported back on them). You haven’t provided us with the information about your setup.

  • Running from an SD card will indicate whether the firmware is even involved. It is possible you don’t need to change the firmware.

  • Running the crown test and uploading your g-code file to a forum post will tell if the issue is in the g-code you are running.

  • I also suggest sending an M502 followed by an M500 to factory restore any settings you may have changed.

  • Using the pre-made binary and XLoader will also tell if the firmware is involved at all, and, if updating fixes your problem, point to either the age of the firmware or, more likely, your changes.

Doing the above things will take less than 30 minutes and provide a lot of information. My best guess is that the issue is related to sending g-code to the control board and has nothing to do with the firmware. What is seen in the video is what would be seen if sending is somehow slow, and if the curves are emulated by short line segments.

I just cannot get on with PlatformIO.

PlatformIO is complicated, but few people try to understand the interface. What you need is a recipe to follow that gets the job done. That is what Ryan provides at the link. Thousands of people have used his instructions without issue. If you want to get PlatformIO working, I would suggest unstalling Visual Studio Code and PlatformIO, and starting over looking at only Ryan’s instructions.