CNC troubles after update

Home Forums TinyG TinyG Support CNC troubles after update

Viewing 15 posts - 1 through 15 (of 37 total)
  • Author
    Posts
  • #8878
    Derrick
    Member

    I recently updated firmware and now my CNC machine is having trouble creating small diameter circles. Everything ran as it should before the update, not I am having this problem where it appears that small diameter circles (arcs) don’t get sent to the machine as they should. It is almost as if the movment code can’t be sent fast enough for the machine to make the geometry.

    Here are some pictures showing the part/parts:
    Full res:
    https://dl.dropboxusercontent.com/u/183607375/CNC/20151101_153424_HDR.jpg
    Annotated:
    https://dl.dropboxusercontent.com/u/183607375/CNC/Circle_trouble.JPG

    Something to note:
    – CAD, CamBam, and ChiliPeppr viewers all show the part as they should (circles are circles).

    Machine is based on the Openbuilds OX
    PC is running Windows 7
    Hardware: TinyG V8

    What I was using:
    firmware build 438.02
    firmware version 0.97
    hardware platform 1.00

    What I updated to:
    firmware build 440.20
    firmware version 0.97
    hardware platform 1.00

    Here is a dump of my parameters pre-update:
    https://dl.dropboxusercontent.com/u/183607375/CNC/TinyG_Config_Old.txt

    Here is a dump of my parameters post-update:
    https://dl.dropboxusercontent.com/u/183607375/CNC/TinyG_Config_New.txt

    Here is a copy/paste of the G-Code from the ChiliPeppr Sender:
    https://dl.dropboxusercontent.com/u/183607375/CNC/G-Code_copied.txt

    Here is the GCode file from CamBam:
    https://dl.dropboxusercontent.com/u/183607375/CNC/banshee_control_horn_3.nc

    Here is the DXF that was used to generate the G-Code File:
    https://dl.dropboxusercontent.com/u/183607375/CNC/banshee_control_horn.dxf

    Sorry for the information overload, thought that more is better than not enough. Really stumped on this one, any and all assistance is greatly appreciated.

    Derrick

    #8886
    cmcgrath5035
    Moderator

    Sorry, I missed your post.
    Lots of good info there, but difficult to dig in to.

    Please put your tinyG into mm mode and repost the new parameter set.

    Something clearly is wrong somewhere – 440.20 should fix numerous bugs in this area, not create them.

    What do you use for sending Gcode? CoolTerm, Chilipeppr, …?

    Problem **may** be that Gcode is sending circles as 360 degree arcs.
    Try regenerating your Gcode with circles sent as 2 arcs, which is a typical option to fix what appears to be a long standing issue with the definition of arcs and circles in Gcode.
    tinyG has, of necessity, become more strict on what it accepts as Gcode and this is an area of great confusion.

    #8889
    Derrick
    Member

    Here is a link to the parameter dump when in mm mode:
    https://dl.dropboxusercontent.com/u/183607375/CNC/TinyG_Config_mm.txt

    I primarily work in in/lb/sec as that is how my brain was trained… hope this isn’t a source of issue. Please note that I don’t have a “pre-update” parameter list in mm.

    For G-Code sending I use Chilipeppr.

    I am not sure how to regenerate the Gcode with circles sent as 2 arcs… is this an option in the sender?

    #8890
    cmcgrath5035
    Moderator

    mm vs. inch: tinyG saves its internals in mm, converts to/from inch when necessary. Most reference setups are in mm, so it is easier to spot issues with parameters when they are posted in mm.

    I forgot to ask an important question, knowing that you use Chilipeppr – how did you enter your new machine parameters? If you used the configuretinyG widget in CP, that may be the issue here – it seems to be corrupting settings.

    What I typically look for in parameter settings is wacky precision in values that don’t require precision, for example your $zvm=787 mm/sec, vs the typically suggested 800 mm/sec.
    I also wonder about $1tr, $2tr and $4tr, which likely should nominally be 60mm unless you tweaked them (in mm or inch) to ‘tune up’ your machine for precision.
    Also, $3tr=8mm looks unusual to me – what sort of lead screw do you have for Z? I am familiar with 8mm diam, 2mm pitch ($3tr=2) and ACME screws with $tr=2.117mm(yes, this particular ACME is an inch based design).
    Additionally, your X and Y jerk settings look strange. Recommended starting points are JerkMax=5000, JerkHoming=10000.

    Here is another interesting result; I imported the Gcode file your posted above into my CAD program of choice, QCAD.
    Here is it’s interpretation:

    Looks a lot like what you are getting.
    Note that QCAD and tinyG have nothing in common, except that the software developers read the same documents specifying how Gcode is supposed to be translated to machine motion.
    I also opened your DXF file in QCAD, looks OK to me.

    Dragging the same Gcode into CP looks OK. ???

    Whatever CamBam is doing, it may be contributing here.

    1. Please comment on my parameter comments – perhaps there are reasons you chose those values.
    1.5 Was there some guideline document you were following to initially set up your tinyG?
    2. Please comment on how you entered parameters after FW upgrade. If you used the configuretinyG widget, I’ll likely walk you thru a parameter reset. Usually fixes issues like this. Underlying cause not well understood.
    3. Remember, always enter, manipulate and report tinyG parameters in mm mode; seems to work better. Inch mode Gcode should then run OK.

    #8891
    cmcgrath5035
    Moderator

    By the way, the QCAD Gcode simulator (import Gcode) generally works OK with 360 degree arcs, so not at all clear why it is not working with your CamBam file.

    QCAD has a GCode generator and a GCode importer.
    In the generator, it has a specific option to draw circles as two arcs.
    I found out (the hard way) that tinyG does not like 360 degree arcs.

    At issue here are the formalized rules in the GCode language specification as to the permissible values of the Arc command (G2, G3) parameters.
    Also, some GCode readers/interpreters check the Command Parameters against the Gcode specification and error if out of spec, others apparently do not.
    There are academic arguments for both modes of behavior.

    I am not adequately fluent in GCode specification to look at your GCode and say one way or the other good/not good.

    #8894
    Derrick
    Member

    I tried to use the widget at first, however it obviously was broken, after that I manually entered them in via command line to match what I had saved as the dump pre-update.

    What really has me baffled now is:
    – The DXF is correct
    – The .NC file is correct
    – The Chilipeppr viewer is correct
    … but the G-Code (as-run) is incorrect.

    Is there some sort of filtering of the input .nc file prior to sending the code to the machine?

    It is however good news that the machine cut exactly what and where it was told to.

    I don’t recall changing the Z axis velocity (ZVM), upon looking a little deeper, I think I must have 787mm is approximately = 31in

    Yes, I spent a considerable amount of time commanding motion and then measuring the result tuning travel per step.

    The Leadscrew on the Z-axis is an 8mm from openbuilds…
    http://openbuildspartstore.com/8mm-metric-acme-lead-screw/

    Don’t have a clue about the jerk settings… that is what they were pre update and the machine was preforming flawlessly so I ensured that all was the same.

    #8895
    cmcgrath5035
    Moderator

    Let’s do the easy stuff first
    Open the URL for Z axis lead screw.
    Pitch = 2mm, a.k.a 2 mm between threads, so $3tr=2mm in your case.
    I have no idea what “Tr8*8-4” means – some sort of Prod ID?

    Lets assume the dxf is what you want, dimensionally.

    The .nc file “looks” OK, but two ( tinyG, QCAD importer) interpreters make “incorrect” interpretations of the G code while the CP 3D viewer displays “correctly”.
    That says to me that while the .nc file “looks” good, only a detailed analysis of the exact parameters against what the GCode standard specifies can reveal if it is really ‘compliant to standard’ GCode.
    In this world, GCode generators are supposed to implement the standard precisely as written.
    There is no explicit expectation that interpreters implement tests on the validity of the parameters. In the ‘old days’, e.g. 438.02, tinyG did little, if any, boundary checking. It does a whole lot more now.

    AN observation: I reopened your dxf file. As imported, your active lines (cuts) are on two different layers of the dxf. I have no idea if that is important to CAMBAM.

    Here is a Gcode file output by Qcad, using 360 deg arcs

    Here is a Gcode file output by QCAD using 2 180deg arcs per circle

    See if one, or maybe both, work for you.
    NB: this uses my typical depth and speed parameters, may not be what you want. Maybe run in air first.

    #8896
    cmcgrath5035
    Moderator

    OOps, $3tr=(2/25.4) = 0.079 inches

    #8897
    cmcgrath5035
    Moderator

    Forgot to address jerk
    These are the Synthetos recommended starting values for x and Y axis
    [xjm] x jerk maximum 5000 mm/min^3 * 1 million
    [xjh] x jerk homing 10000 mm/min^3 * 1 million

    5000/25.4 = 197 10000/25.4 = 384

    I don’t think jerk is a contributor to this current issue, but you are low for normal movement (non-homing) jerk.

    #8898
    cmcgrath5035
    Moderator

    One more item I missed

    Is there some sort of filtering of the input .nc file prior to sending the code to the machine?

    The ChiliPeppr UI has several selectable ‘filters’ that are able to modify Gcode. The auto-level capability, for example, modifies Z position based on pre-determined Z=0 variation across an X,Y workspace. There is also an ability to modify velocity with setting in the Gcode Widget (a static, or whole job modifier) and now in the tinyG widget for dynamic changes while a job is running. Velocity modification is achieved by manipulating F value settings on the fly.
    Other custom macros, including your own, can be inserted into the logical path between the Gcode file that is dropped into CP and the input to tinyG.

    A default CP set up does not modify Gcode on the fly.
    SPJS, in managing the buffer flows into tinyG, inserts control commands as necessary for it to maintain knowledge of the tinyG state, but those are acted upon by the tinyG FW, not passed to the GCode interpreter processes within tinyG.

    #8899
    cmcgrath5035
    Moderator

    I am using your issue to play with various potential debug tools.

    I notice something interesting.
    If I open your .dxf file, I observe that in dxf space, each of the 4 small circles on each part are single elements – circles.

    Looking at the Gcode file banshee_control_horn_3.nc, that first circle is shown as 3 sequential G2 arcs, repeated at two different depths. The machine then moves to the second small circle, but this time it is processed as 4 sequential G2 commands, repeated twice.

    I am rather suspicious of the CamBam GCode.

    I am not a user, so cannot be much help.
    Are you using a post processor on CamBam? Which one?

    #8900
    Derrick
    Member

    I have updated the parameters as you suggested (see note below):
    $3tr= 0.079
    $xjm= 197
    $xjh= 384
    $yjm= 197
    $yjh= 384

    Note:
    I updated the $3tr paramater to .079 and while commanding a machine move of 1 inch up the machine crashed in the top of the Z-axis, so I reverted back to my previous value of 0.3152, I have measured the axis motion and when commanding a 1″ move I get .9996″ of motion.

    Perhaps a breakdown of my workflow will better assist you.In understanding where the problem is.

    Workflow:
    1. Design part in ProEngineer
    2. Create a Drawing of my part/parts in ProEngineer
    3. Export that drawing as a .DXF
    4. Pull the .DXF into CamBam
    5. Define the machining operations and then generate the G-Code with CamBam
    6. Drag the G-Code (.NC) file into the ChiliPeppr interface
    7. Machine the part

    As an aside… for trouble shooting sake to ensure that there isn’t just a anomoly with the specific part that has been the topic of discussion to this point, I have followed the above workflow on a new part composed of a number of circles with decreasing diameters to see if the problem persists or is just a by product of smaller circles.

    Link to DXF:
    https://dl.dropboxusercontent.com/u/183607375/CNC/hole_test.dxf

    Link to G-Code:
    https://dl.dropboxusercontent.com/u/183607375/CNC/hole_test.nc

    Link to G-Code from ChiliPeppr Sender:
    https://dl.dropboxusercontent.com/u/183607375/CNC/Hole_Test_CPsender.txt

    Picture of CAMBam viewer with tool paths:
    https://dl.dropboxusercontent.com/u/183607375/CNC/Hole_Test_CamBam_Viewer.JPG

    Picture of ChiliPeppr viewer:
    https://dl.dropboxusercontent.com/u/183607375/CNC/Hole_Test_ChiliPeppr_Viewer.JPG

    Picture of what the machine actually cut:
    https://dl.dropboxusercontent.com/u/183607375/CNC/Hole_Test_Results.jpg

    I think that it is safe to say that the issue that I am experiences remains… hope all this helps to further diagnose.

    Derrick

    #8901
    Derrick
    Member

    I don’t think I have addressed these two questions from you:

    Is there some sort of filtering of the input .nc file prior to sending the code to the machine?
    None that I am aware of. This has all really caught me off guard as everything was working perfectly before I made the upgrade… I only upgraded because ChiliPeppr had some popup that said that my firmware was out of date and reccommended that I upgrade.

    Are you using a post processor on CamBam? Which one?
    It is currently set to “Default”.

    In an effort to remedy this issue I and because you enlightened me to post processing in CAMBam, I set the option to convert arcs to lines and the arc to lines tolerance of .001 (probably overkill on the tolerance)… needless to say I ran the code and all looks perfect, well except for that it isn’t working as it should with arcs.

    Derrick

    #8903
    cmcgrath5035
    Moderator

    Geeze, this is messy.

    When you made the following updates

    $3tr= 0.079
    $xjm= 197
    $xjh= 384
    $yjm= 197
    $yjh= 384

    Was the machine in inch mode or mm mode?

    I took a look at all your hole_test files.
    Just as before, your .dxf file opens and displays for me as I believe you intended.
    If I import your .nc file to the QCAD CAM importer(simulator), same bogus arcs as I saw with the control_horn series of files.

    From what I see, we might have two issues going on here.
    1. Arc errors
    2. tinyG Parameter interpretation errors.

    Lets try this:
    1. With your current Parameter set, rerun a quick test that confirms that commanding Z to move 1 inch moves Z by 1 inch (or, as you reported, 0.9996″)
    I assume you are using a 1″ jog?
    2. Change the $3mi parameter : $3mi=4 This cuts the number of microsteps per step in half.
    3. Resend your 1″ jog command. How far does Z move? I am testing a theory that the $3mi interface is for some reason broken. There has to be an explaination for your needing to set $3tr to a value 4 times as large as it should be.

    When you are done with the test, please dump and post another parameter list, IN MM MODE, and give it a clearly identifiable name. We may need that listing in a follow-on test.

    #8904
    cmcgrath5035
    Moderator

    By the way; yes, you really did need to upgrade your FW. There were several releases between 438.02 and 440.20. The need for the upgrade, in addition to many arc related fixes, was a bug fix for changes in alternate coordinate space manipulation that you are probably not using at the moment, but when you do in the future, it could be(have been) ugly.

Viewing 15 posts - 1 through 15 (of 37 total)
  • You must be logged in to reply to this topic.