Image2gcode engraving – how to improve it

New Home Forum Troubleshooting Image2gcode engraving – how to improve it

This topic contains 51 replies, has 7 voices, and was last updated by Profile photo of Jason Jason 2 days, 4 hours ago.

Viewing 30 posts - 1 through 30 (of 52 total)
  • Author
    Posts
  • #21705
    Profile photo of Martin DB
    Martin DB
    Participant

    I’m testing my new mpcnc with a generic chinese 5.5W (at least sold as 5.5W).

    1) Did you buy everything from here? => NO
    a)If you didn’t or changed some things please don’t leave out any details. => No changes. Steppers are in serial connection.
    b)What firmware? => Marlin 1.1.0RC7 downloaded from here.

    2) Are you using end stops? => NO
    a)If so please disconnect them.

    3) Are you using all my recommended parts? => Yes
    a) If not please list what parts you used.

    4) Include a picture so obvious errors might be spotted. => See attachs

    My laser is connected to PWM D9, it responds ok to intensity changes (M106 Sxxx).
    A quick test with inkscape j tech photonics (https://jtechphotonics.com/?page_id=2012) looks great.

    Then I try image2gcode mpcnc edition (downloaded from http://www.vicious1.com/forum/topic/image2gcode-free-raster-image-laser-engraving-software-modified-for-mpcnc/page/6/#post-15455) and I have results as attached. This picture is with PWM max to 63, speed 1200 mm/min, 0.18 mm dot size, no acceleration changes from the default vicius firmware over mdf.

    There is some kind of pattern, every 14/15 lines, is like the laser engrave out of the place for some time.
    Should it be a mechanical issue? Stepper driver issue (DRV8825 at 0.7v, my motors are 1.5A rated)? Laser driver issue?
    The x movements seems a bit bumpy/jerky….

    #21714
    Profile photo of vicious1
    vicious1
    Keymaster

    Martin this has come up a few times recently. I’m not sure what it is. My laser has done this as well. I have gotten clean pics though. I will have to put the laser on this evening or tomorrow and see if I can help trouble shoot this.

    Since you are using a different laser and driver, we can rule those components out. I hope.

    That leaves.

    Lcd SD vs over USB (could be a communication speed thing)
    speed (could be an arduino buffer thing)
    acceleration (multiple speed changes, also maybe increase the jerk for the laser to ignore small accel changes)
    software (bad “slice”)

    #21734
    Profile photo of Martin DB
    Martin DB
    Participant

    Thanks Vicius!

    All my tests are from the SD, so the usb/serial should not be the problem.

    I’ll try this page http://nebarnix.com/img2gco/ to convert the image to gcode…. same speed, same power of my image2gcode test to compare.

    #21735
    Profile photo of vicious1
    vicious1
    Keymaster

    On that link you put up this is what I am thinking the issue is.

    A note on commands per second: My Printrboard can handle about 280 commands per second over USB and about 380 when printing from the SDcard. This is somewhat abstracted to this program only because commands can vary considerably in length.

    When we mill or print there is a relativity long period between commands. With the laser it is very short it can try to burn 1 dot then move. where with any other functions the smallest movement is probably 100x’s that size.

    I think this could be tested with a solid black square. I bet this works, same setup same accel, same software. It’s the details and tiny tiny commands. The next issue is how to fix it other than just slowing down. Optimism the code, marlin or gcode?

    #21737
    Profile photo of Martin DB
    Martin DB
    Participant

    If the problem is related with the steps quantity, going to 1/16 microstepping should half them…. also the quality…

    If it’s related with the cpu power, a 32bits board like smoothieboard may be a solution for this kind of works….

    #21738
    Profile photo of vicious1
    vicious1
    Keymaster

    Leo69 explained in another post why step rate wouldn’t effect it, I can’t find it now.

    It actually shouldn’t change the quality a noticeable amount, our step size is so ridiculously low we can go to about 1/8th stepping before you would notice anything I think.

    #21748
    Profile photo of Martin DB
    Martin DB
    Participant

    Same image, “sliced” with http://nebarnix.com/img2gco/, same power, same speed…. it seems better, but same issue…

    #21751
    Profile photo of Martin DB
    Martin DB
    Participant

    Same image, image2gcode mpcnc edition, power 0 to 56, 800 mm/min…. the lines out of place still there….

    #21756
    Profile photo of Jasoroony
    Jasoroony
    Participant

    Not wanting to say bad things about free software, I do think this issue may be Marlin/LCD related. A quick look at the Marlin code shows the fan control (I.E. laser control) is run from the idle loop, not the stepper interrupt – so it’s already slightly out of sync with movement. However, the LCD update routines take ~40ms for the text LCD and ~120ms for the graphics LCD. The LCD is also run from the idle loop. Patterns showing up every 14/15 lines are most probably because the LCD refresh/update is delaying getting to the code to turn the laser on/off while the steppers are happily moving via the interrupt. The Marlin guys are working on making the LCD routines better (I saw pretty bad circles due to the LCD taking up too much time and they also said the delta machines need more CPU and are affected by the LCD refresh). Just my 2c thoughts though, and I use GRBL for this sort of thing and only change firmware if I’m going to 3D print something big (otherwise I’d use my CTC 3D printer).

    Edit: You could possibly test this, if you disable the Marlin 30 second menu timeout, by entering the menu system and leaving it there (it doesn’t update the LCD unless you touch the controls) and let the thing finish the job… Or enter the menu and run the job while going ballistic on the controls to see if the laser image is a whole lot worse.

    #21828
    Profile photo of Martin DB
    Martin DB
    Participant

    Thanks Jasoroony, it make sense.

    In the current RCBugFix branch of marlin repo, it seems that developers take care of this…. no updates to LCD if the segment is too short…

    https://github.com/MarlinFirmware/Marlin/blob/RCBugFix/Marlin/Configuration_adv.h#L505

    Time to try last marlin version?

    Attachments:
    #21894
    Profile photo of Leo69
    Leo69
    Participant

    Jasoroony is totally right about the LCD. I’ve posted in the past about how you can see the movement stutter coinciding with the display updates on the LCD. I’ve disabled the updates on my firmware to get around this but I never noticed that it caused the issue with lines running out of the image. Possible for sure though. Have you tried increasing the acceleration values? You can do this with preprocessor gcode so to don’t need to change in your config. H. This timing mismatch between the fan control and the steppers shouldn’t be noticeable in the burned image but it would be nice to see it fixed. I’ve modded my own firmware for increased pwm resolution and better timing . I’d post instructions but I know they’ll be impossible to support with new Marlin releases coming out on a regular basis.

    #21904
    Profile photo of Martin DB
    Martin DB
    Participant

    Thanks Leo. I’ve tested with 2000 mm/s^2 in the gcode but no change at all.

    I’ll try rcbuxfix branch to disable lcd updates in short segments.

    #21910
    Profile photo of Leo69
    Leo69
    Participant

    Can you post the source image and the gcode? I’m wondering if this is related to the stronger laser that you’re using. You’re setting max pwm power at around 60 and the software is interpolating grayscale pixel values between 0 and 255 into power values between 0 and 60. You’re losing about 75% of your grayscale resolution. What laser driver are you using?

    #21911
    Profile photo of Martin DB
    Martin DB
    Participant

    Sure. Original source image and gcode attached.

    This is the laser with driver:

    https://www.aliexpress.com/item/5-5w-high-power-450NM-focusing-blue-laser-module-laser-engraving-and-cutting-TTL-module-5500mw/32559183201.html?spm=2114.13010608.0.0.8Ws7Zf

    As the driver ttl logic is inverted, I’ve connected a npn transistor between D8 output and driver input to have S0 no power at all, S255 full power.

    #21914
    Profile photo of Martin DB
    Martin DB
    Participant

    Firsts test with Marlin 1.1.0 RC7 + Bugfixes up to 20161130 with ENSURE_SMOOTH_MOVES defined….

    Much better, but still some artifacts….This image is the same gcode file as the first picture in this post printed with newest marlin fw (1200 mm/min, default acceleration).

    #21917
    Profile photo of Martin DB
    Martin DB
    Participant

    Same gcode as previous but with this gcodes added to change acceleration and jerk:

    (Generated by 3dpBurner Image2Gcode v0.4-DECIMAL PATCH)
    (@Nov./29/2016 06:39:42)
    M107^M
    (Header)
    G0 X0 Y0
    (Header end)
    G90

    G21

    G1 F1200

    M201 X5000 Y5000
    M204 P2000
    M205 X20 Y20

    G0 Y62.862; Move to top left corner and begin box
    G92 X0 Y62.862

    M106 S5
    G0 X100
    G0 Y0
    G0 X0

    #21920
    Profile photo of Martin DB
    Martin DB
    Participant

    Same gcode file from post 21751, new firmware…. much better… but still some artifacts…

    #21946
    Profile photo of Jason
    Jason
    Participant

    Is there a way to unplug just the display and keep access to the SD and then initiate an SD print from Repetier host?

    #21949
    Profile photo of vicious1
    vicious1
    Keymaster

    No but you can get an sd card adapter for the ramps for a few dollars. You start it from repetier or matter control then you can disconnect but then you have no control after that. I don’t know if that would change anything. Actually it might still work from the screen. One of the two ribbon cables is only for the SD card I think and the other is for the screen. You might be able to unplug the screen and just use the sd card. Of course to see any benefit you would need to change the firmware to a non LCD version.

    I have to take off for a while today but I can look into this tonight if you don’t get to it.

    #21950
    Profile photo of Jason
    Jason
    Participant

    @vicious1 are you possibly going modify the new version of Marlin for MPCNC… which would solve this issue for everyone?

    #21952
    Profile photo of vicious1
    vicious1
    Keymaster

    For sure!

    I think I will just make a whole separate laser firmware since it needs to get flashed anyway. Re tune it for max accel and jerk.

    No way will I let all your hard work sit in a forum thread….No sir!

    I appreciate all that you are doing. Kills me that I can’t fire my laser up right now and help out. I am pretty much booked until next Monday. I really want to spend some time and check out all the improvements you guys have made. Also need to get some good test files So I can put together a cool little getting started with a laser post.

    #21953
    Profile photo of Jason
    Jason
    Participant

    That would be awesome. Laser work has became my life. I have done one router job and about 600+ hours of laser work. This machine has paid for itself many times over!

    If you need any help let me know. I can test etc.

    #21955
    Profile photo of Leo69
    Leo69
    Participant

    I’m not sure if it was posted here or on another thread but someone mentioned that the latest RCBUGFIX version of Marlin can be configured to disable LCD updates on short moves.i confirmed this last night. Smooth as butter, no more jerk at every display update.

    Btw, started working on image2gcode v2 last night. Will add rotary support with 3d preview and “skip white” options to diagonal and horizontal scanning. That should put it right there with the commercial packages. It will be a vicious1 exclusive of course:)

    #21956
    Profile photo of Martin DB
    Martin DB
    Participant

    Excelent Leo!

    I also tested the new marlin rcbugfix branch and no more jerk movements at all…. but still some minor artifacts in my picture. I’ll test with other pictures.

    I can’t wait to see image2gcode v2!!!

    #21957
    Profile photo of Jason
    Jason
    Participant

    That sounds awesome @leo69. Not sure if you have PEP5 but if you have any questions about the paid version you can ask me.

    @martin DB can you share how you got it to work on your MPCNC?

    #21959
    Profile photo of Martin DB
    Martin DB
    Participant

    Sure Jason.

    A quick cookbook:

    1. Download last marlin version from here
    https://github.com/MarlinFirmware/Marlin/archive/RCBugFix.zip
    2. Uncompress the zip file, copy Marlin folder into your Arduino folder.
    3. Take Marlin 1.1.0RC7 customized by Vicious from this site.
    4. Search all the “MPCNC” ocurrences in Configuration.h and Configuration_adv.h files from 1.1.0RC7 customized version to the new one.
    5. In Configuration_adv.h search for the line ENSURE_SMOOTH_MOVES and delete the comment bars (//)
    6. Copy _Bootscreen.h from 1.1.0RC7 version to the new one.
    7. Open Arduino IDE, go to your new marlin folder and open marlin.ino, compile/upload to your Arduino Mega as ussual.

    Let me know if you need help. I’m writing this from memory, may be I’ve missed some step.

    #21961
    Profile photo of Jason
    Jason
    Participant

    Sounds easy enough. I will give it a try when my new diodes come in. Unless Vicious beats me to it.

    #21964
    Profile photo of vicious1
    vicious1
    Keymaster

    We are already using the bugfix release you just need to un-comment that line. I’m pretty sure. Can’t really mess with until monday, sorry guys.

    New Software Leo!!!!!How do you do it? I need some lessons. Sweet maybe we can get this all worked out at the same time and have an even easier to use laser.

    It is odd though, I swear I have a pic that burned just fine. I have to dig it out and see it the issue is on that one.

    #21967
    Profile photo of Leo69
    Leo69
    Participant

    I have a bit of work ahead of me but I’m working on it so it will come. The 3d graphics are a pain, I suck at trig! As far as firmware goes, it would be nice to find time to create an application that can apply selected patches to the firmware. There are mods that can be done for laser pwm, spindle control, etc… It would be cool select the mods you want and the app would just regex through the applicable files and apply the patches. Maybe someday I can work on that because I have patches on my firmware that are a pain to redo every time I upgrade firmware. Next project after this upgrade will be the router pid though. That will be fun. I’ll be in touch with you if I get that working. Maybe we can get some kits put together or something. I can’t see that costing more than 20$ to build. Crazy what they charge for them.

    #21968
    Profile photo of vicious1
    vicious1
    Keymaster

    Marlin is getting so big now they really need to build it like the repetier firmware where it kinda builds a new version depending on your options. I love that it is all in there and I understand that it gets cleaned up in the compile but dam they support like 80 different lcd’s and a whole list of other stuff that makes it a little daunting just to get through the standard config.h and now the advanced config as well. Forget about it if you want to make real changes to it anymore. Back at robo me and Austin went through it and added all kinds of stuff, lights that react to temp and percentage of print done, reconfigured the lcd….I would never dig into it anymore. getting too big.

    It needs to be modular. xyz motion, extruder1, extruder2, auto level, lcd, thermistor, delta or cartesian. I like how the new lcd graphics work. If there is a graphics file it displays it, if not, no big deal. That is how marlin should be. Line 1-is there an autolevel file? line 2- is there an lcd file…but I’m a hardware guy not a software guy. imagine if all the motion stuff was in one tab, it would be so easy to tune a machine…still to this day Jerk is a mystery to most people, and they just figured out it hasn’t worked this whole time…that’s when you know your stuff is too all encompassing, when you miss your own feature.

    Man the router PID thing. I look at it at least once a month I get ready to buy all the stuff and try to build one. There is no way that should cost $120. They are the only game in town they can charge whatever they want. The equations, sensing, and hardware all all easy. The part I don’t understand is the ssr side. You have to have an ssr that senses the a/c zero point? If you know how to handle the power modulation to the router we can whip this up in no time. I think. I think this would be the largest improvement to any small form factor router that there is, even when routing by hand. Heck all rotary tools should have this built in, all of them. Imagine even a dremel that keeps its speed consistent. I want this.

Viewing 30 posts - 1 through 30 (of 52 total)

You must be logged in to reply to this topic.