Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gcode that produces burning in dogbones #158

Closed
mindeye opened this issue Mar 30, 2017 · 15 comments
Closed

gcode that produces burning in dogbones #158

mindeye opened this issue Mar 30, 2017 · 15 comments

Comments

@mindeye
Copy link

mindeye commented Mar 30, 2017

Unfortunately, this version was designed and cut using 3/16" bit, so I hope you have one kicking around. I still need to re-test it with the latest firmware / GC. The gcode is just one of the 3 inch by 3 inch end pieces, it's designed with a 3/16" thick radiata pine 3-ply in mind. It cuts it in a single pass but the dogbones end up burning because the bit stays near them for way longer than the normal sides.

If for some reason you don't have a 3/16" bit, I've also included the svg and if you scale it up a bit, I suspect it will work just fine with a 1/4" bit too. I believe I used a feedrate of 25, cutting the whole depth at once using a 2-flute spiral upcut endmill since it's only 3/16".

electronics-cover.zip

photo on 3-29-17 at 5 38 pm

@mindeye
Copy link
Author

mindeye commented Mar 30, 2017

So just re-tested with latest firmware / gcode and same result. I suspect you could use any size bit with the gcode and it would repro the burning since it's mostly because it hangs out in the same spot for a long time.

Pic: https://drive.google.com/open?id=102MDDFPUCvhLECd8Yh1cBZ8SqguBB8dK9A

Video: https://goo.gl/photos/UMW3pdWhQxp6qmtb6

@davidelang
Copy link
Contributor

davidelang commented Mar 31, 2017 via email

@BarbourSmith
Copy link
Member

My guess would be that @davidelang is right that the issue has to do with processing many lines of gcode slowing the machine down. Let's investigate further. This might be a good excuse for speeding up the serial protocol.

@mindeye Thanks for testing with the newest firmware also, very thorough. Taking multiple passes will likely help with the burning because the bit is in less contact with the wood, but the real fix is to insure that we are getting constant tool speed through corners.

@davidelang
Copy link
Contributor

davidelang commented Mar 31, 2017 via email

@davidelang
Copy link
Contributor

davidelang commented Mar 31, 2017 via email

@davidelang
Copy link
Contributor

what software did you use to convert this svg into g-code?

@davidelang
Copy link
Contributor

try this .svg to base things off of (and try the .nc file, but only with the bit well clear of the workpiece, I have zero ability to test if it came out right)

endplate.zip

@BarbourSmith
Copy link
Member

It's good to see that the core issue is probably some funky gcode, but at the end of the day we should be able to handle funky gcode. I think that there are two ways we can handle this. 1) We can speed up the rate of gcode processing to the point that even if there are 60 lines in a row which don't command real motion, they are processed so quickly that we don't notice. 2) We can just ignore lines which don't cause any real movement on the Ground Control side.

Option 1 is the right way to do things, so lets try that first, then if we hit limits on how far we can push the execution speed, we'll look into option 2

@mindeye
Copy link
Author

mindeye commented Apr 1, 2017

@davidelang This was just sketchup -> svg -> makercam. @BarbourSmith sounds good to me! In the meantime I think I'll just keep using my 45 degree offset squares since they mostly work.

@davidelang
Copy link
Contributor

@BarbourSmith more efficient and faster gcode processing is always a win, but at some point we will hit the limits of the arduino processor.

I suspect that the overhead of processing the gcode (transferring and interpreting it) is the limiting factor here, so trying to detect in the aruduino that the move doesn't matter is too late.

Creating a "g-code lint" program that we could run on windows/linux/osx that would go through the gcode and flag commands we don't understand, or ones that don't move enough to matter would be a useful tool (and give people a way of checking the g-code without actually truing to machine something)

@davidelang
Copy link
Contributor

@mindeye the root of the problem is that the svg is drawing a circle segment (12 short line segments), doing as narrow a rectangle as you can get (2-3 line segments, in my svg it's a straight line in and out) will work far better.

@mindeye
Copy link
Author

mindeye commented Apr 21, 2017

Has this been fixed? I noticed yesterday that what was essentially drilling a hole but instead was something like 30 infinitesimal movements per z-step didn't end up burning anything and GC seemed to fly through a ton of log statements incredibly quickly. (just to be clear, my intent is saying that maybe this can be closed, not that it's urgently needed)

@BarbourSmith
Copy link
Member

I've done some things to improve the speed, but I think I can do even more.

The way it works now is that a line is sent, decoded, executed, then the next line is requesting.

The circular buffer I added last week means that the firmware can hold several lines in memory which would let us have 2-3 lines buffered, maybe a few lines which have been decided stored in memory, and the one line which is being run.

It gets a little tricky so I want to add it carefully but I think we can get 2-3 times better performance than we're seeing now.

I appreciate your trying to keep an eye on closing issues which aren't a problem anymore and I think you are right that we're getting closer. I'd vote to leave the issue open as a reminder that things can get better.

@only1pj
Copy link

only1pj commented Apr 21, 2017 via email

@BarbourSmith
Copy link
Member

Great question. We're using the same protocol as grbl so the buffer is 127 characters. The number of lines you can fit in the buffer fluctuates based on how long each line is.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants