Welcome to Our Community

Some features disabled for guests. Register Today.

Arco 1010 servo action problem

Discussion in 'DrawBot' started by AllanArt, Dec 30, 2019.

  1. AllanArt

    AllanArt New
    Builder

    Joined:
    Jun 3, 2019
    Messages:
    37
    Likes Received:
    1
    I continue my 1010 pen plotter build by dry run testing the action of a connected servo and got unexpected results. I wired the servo as per the Blackbox manual and set it off to the side to observe it's action. (My custom 3D print pen holder is in still a work in progress ) I fly RC planes so I am very familiar, and I have lots of different servos to experiment with. The issue I ran in to is the servo arm did not move in proper relationship to the test plot. That object to plot is a single 5 sided closed polygon made and converted to gcode in Inkscape. When I run the 1010 job, starting from a set 0,0 point in the lower left corner, the servo arm does not change position as the 1010 travels to a start point on the polygon object. From there the servo arm still does not move as the 1010 plots the object and returns to the starting point of the object. But then the servo arm moves to a new position when it travels back to 0,0 to end the run. Let's call that move "pen up" for now. The problem is, the servo arm move from 0,0 to the starting point of the object is different "pen down" than the return to 0,0 - pen up. I was expecting the servo command to equate to "pen up" the moment Backbox powers up, and stay at "pen up" until it reaches the starting point of the object to plot. Instead, the only time the servo arm moved - pen up - was on the return to 0,0 - then it goes back to its "pen down" position at the end. I tried other servos and got the same result. As per the manual I installed 2 axis 1010 + servo firmware. Set $31 to 255 in settings, and manually typed in "M3 S255" in Control's gcode editor.
     
  2. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Project Maker Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    2,806
    Likes Received:
    1,248
    If you are using OpenBuilds CAM:

    1. Sure you flashed the Servo version of the firmware (from CONTROL - Wizards and Tools -> Grbl Flash)?

    2. Calibrated your Pen Up and Pen down Values in CONTROL (Under Wizards and Tools -> Calibrate Servo Pen Up/Down menu)

    calibrate.PNG

    3. Added Pen Plotter as a Toolhead to Settings in CAM?

    pen ploitter.PNG


    4. Used the values you wrote down in step 2, to populate the values on the CAM operation: (so it knows where up and down is)

    values.PNG
     
  3. AllanArt

    AllanArt New
    Builder

    Joined:
    Jun 3, 2019
    Messages:
    37
    Likes Received:
    1
    I assume I did. I followed the special "Wizard" instruction in Control when I selected 1010 + servo as machine type. It went thru a process where it took a moment and looked like it pulled the firmware off a server somewhere. I'm not using CAM at all, and no dialog I can recall sent me in that direction, so I have not seen the screen shot you sent.
     
  4. AllanArt

    AllanArt New
    Builder

    Joined:
    Jun 3, 2019
    Messages:
    37
    Likes Received:
    1
    Ok - trying to make progress on my 1010 plotter build, so I imported a simple svg file with single closed shape in to CAM, set the pen mode as per your screen captures above, and opened the gcode in Control. The 1010 traces what looks like the plot (still working sans pen holder) but the servo arm, which I hung off the back, does not move at all. When I try to calibrate with the pen up/down range with the wizard tool in Control, the slider does not move the servo. Nothing. I triple checked my wiring and it looks good (I fly RC planes so I have lots of experience dealing with servos) I powered the servo using a 30v buck converter set to 5.5v by tapping in to the incoming 24v supply line on the BB. To verify the servo is not the problem, I replaced the incoming control line from BB with a servo tester, which enabled me to properly jog and control the servo manually. When I manually set the servo to some mid level position then put it back in line with BB, the arm swings to the extreme CCW position when BB powers up - which is usually an indication of no PWM signal present - on some servos not all. I could tell for sure if no signal if I had my scope with me, but it's not available to me right now so it's only a guess. Any idea?
     
  5. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Project Maker Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    2,806
    Likes Received:
    1,248
    Did you remember to flash the Servo build of Grbl onto your controller (regular pwm is too fast for a servo). Wizards and tools, Grbl Flashing tool. As mentioned in 1) above on my previous reply with the checklist
     
  6. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Project Maker Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    2,806
    Likes Received:
    1,248
  7. AllanArt

    AllanArt New
    Builder

    Joined:
    Jun 3, 2019
    Messages:
    37
    Likes Received:
    1
    No, I have not been using "Flash" in Wizard to designate Grbl firmware as 2 axis + servo. I've been using the the 2 axis + servo in Grbl choice in pulldown in settings image_1.png
    And yes, $30 has been set to 255 all this time. However, just used the Wizard Flash anew to designate 2 axis + servo as you instructed, but now the pen up/down calibrator does not work at all. An error dialog pop ups as soon as I attempt to move the slider.
    image_2.png
     
  8. AllanArt

    AllanArt New
    Builder

    Joined:
    Jun 3, 2019
    Messages:
    37
    Likes Received:
    1
    BTW - is there a way to force the help dialog boxes in Control to stay up and not fade away so quickly - on a Mac?
     
  9. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Project Maker Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    2,806
    Likes Received:
    1,248
    That the correct one yes: 2 axes + servo.
    You dont maybe have Laser Mode turned on too? ($32 should be 0) I recall earlier you mentioned playing with Laser mode if I recall, so if that setting wasnt changed back it may the reason


    Dialogs, stays up till you click OK?
    Toasts fade out. In what instance did you feel it should stay longer (and any popup error is also printed in the Serial Log for later review)
     
    #9 Peter Van Der Walt, Jan 6, 2020
    Last edited: Jan 6, 2020
  10. AllanArt

    AllanArt New
    Builder

    Joined:
    Jun 3, 2019
    Messages:
    37
    Likes Received:
    1
    Powered up fresh again today. Got slightly different results.The error msg in the pen up/down wizard pops up when I forget to unlock the alarm. My bad. So I'm back to the same problem where the servo swings to its CCW limit when I power up - if I reposition it to a mid position with a servo tester prior to power up. But it does not respond at all, not even a twitch, to the slider in the pen up/down wizard.

    Yes - $32 is set to "Disabled"

    The help dialog boxes have been fading out on me within a few seconds, but was able to get them to stay up just now if I position the mouse just right. Maybe it has something to do with Mac OS 10.14?
     
  11. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Project Maker Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    2,806
    Likes Received:
    1,248
    If you click off to the side of a dialog it can be seen as a cancel. Maybe that?
    Yes, you have to unlock if Grbl is in a locked state
    Well, if it swings out its understandable as the default output of the port should be PWM = 0. Thereafter it should move from the wizard (and does here) - try different servo, recheck wiring, etc
    Post your grbl settings output, serial log outputs etc so we can take a closer look
     
  12. AllanArt

    AllanArt New
    Builder

    Joined:
    Jun 3, 2019
    Messages:
    37
    Likes Received:
    1
    It"s not the servo. I tried several. As I said, I fly RC planes so I have over a dozen servos on hand at any given time. This one is an Emax, but I have tried a HiTech and other brands too. Besides, I have no trouble controlling the same servos with a servo tester's PWM signal I use to replace the BB PWM signal path. For what it is worth, here's a drawing of how I wired it to the BB.

    I don't see a method in Control for exporting Grbl settings and the Serial Log so I cut and pasted the serial log to make a pdf - attached here. Could not do the same for the Grbl settings as the column formatting gets mangled in the translation to pdf. Is there a file export method in Control?
     

    Attached Files:

  13. AllanArt

    AllanArt New
    Builder

    Joined:
    Jun 3, 2019
    Messages:
    37
    Likes Received:
    1
    Question - does this crossed out "PEN UP" in Control tell you anything?
     

    Attached Files:

  14. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Project Maker Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    2,806
    Likes Received:
    1,248
    Grbl settings is in the serial log, just copy/paste
    Could just paste it here directly too

    But its missing so much :) - i can see you sending moves, but try getting it from a clean connect - read the log on connection and you'll see we have quite a bit of debug info in there

    Yes! It tells me when the pen is up it won't be writing (; Just an icon to differentiate down from up visually so you know which button does what
     
  15. AllanArt

    AllanArt New
    Builder

    Joined:
    Jun 3, 2019
    Messages:
    37
    Likes Received:
    1
    log at boot up

    Code:
    [13:30:08] [ 3D Viewer ] WebGL Support found! success: this application will work optimally on this device!
    [13:30:08] [ Websocket ] Bidirectional Websocket Interface Started
    [13:38:34] Detected a change in available ports: [/dev/tty.SOC][/dev/tty.MALS][/dev/tty.Bluetooth-Incoming-Port][/dev/tty.usbserial-AK08TUK0]
    [13:39:21] [ connect ] PORT INFO: Port is now open: /dev/tty.usbserial-AK08TUK0 - Attempting to detect Firmware
    [13:39:21] [ connect ] Checking for firmware on /dev/tty.usbserial-AK08TUK0
    [13:39:21] [ connect ] Detecting Firmware: Method 1 (Autoreset)
    [13:39:22] [ connect ] Detecting Firmware: Method 2 (Ctrl+X)
    [13:39:23] [ connect ] Detecting Firmware: Method 3 (others that are not supported)
    [13:39:23] [ ] Grbl 1.1f ['$' for help]
    [13:39:23] [ ] [MSG:'$H'|'$X' to unlock]
    [13:39:23] [ $$ ] $0=10 ;Step pulse time, microseconds
    [13:39:23] [ $$ ] $1=255 ;Step idle delay, milliseconds
    [13:39:23] [ $$ ] $2=0 ;Step pulse invert, mask
    [13:39:23] [ $$ ] $3=1 ;Step direction invert, mask
    [13:39:23] [ $$ ] $4=1 ;Invert step enable pin, boolean
    [13:39:23] [ $$ ] $5=0 ;Invert limit pins, boolean
    [13:39:23] [ $$ ] $6=0 ;Invert probe pin, boolean
    [13:39:23] [ $$ ] $10=1 ;Status report options, mask
    [13:39:23] [ $$ ] $11=0.020 ;Junction deviation, millimeters
    [13:39:23] [ $$ ] $12=0.002 ;Arc tolerance, millimeters
    [13:39:23] [ $$ ] $13=0 ;Report in inches, boolean
    [13:39:23] [ $$ ] $20=0 ;Soft limits enable, boolean
    [13:39:23] [ $$ ] $21=1 ;Hard limits enable, boolean
    [13:39:23] [ $$ ] $22=1 ;Homing cycle enable, boolean
    [13:39:23] [ $$ ] $23=7 ;Homing direction invert, mask
    [13:39:23] [ $$ ] $24=100.000 ;Homing locate feed rate, mm/min
    [13:39:23] [ $$ ] $25=1000.000 ;Homing search seek rate, mm/min
    [13:39:23] [ $$ ] $26=250 ;Homing switch debounce delay, milliseconds
    [13:39:23] [ $$ ] $27=6.000 ;Homing switch pull-off distance, millimeters
    [13:39:23] [ $$ ] $30=255 ;Maximum spindle speed, RPM
    [13:39:23] [ $$ ] $31=255 ;Minimum spindle speed, RPM
    [13:39:23] [ $$ ] $32=0 ;Laser-mode enable, boolean
    [13:39:23] [ $$ ] $100=57.143 ;X-axis steps per millimeter
    [13:39:23] [ $$ ] $101=57.143 ;Y-axis steps per millimeter
    [13:39:23] [ $$ ] $102=57.143 ;Z-axis steps per millimeter
    [13:39:23] [ $$ ] $110=5000.000 ;X-axis maximum rate, mm/min
    [13:39:23] [ $$ ] $111=5000.000 ;Y-axis maximum rate, mm/min
    [13:39:23] [ $$ ] $112=5000.000 ;Z-axis maximum rate, mm/min
    [13:39:23] [ $$ ] $120=500.000 ;X-axis acceleration, mm/sec^2
    [13:39:23] [ $$ ] $121=500.000 ;Y-axis acceleration, mm/sec^2
    [13:39:23] [ $$ ] $122=500.000 ;Z-axis acceleration, mm/sec^2
    [13:39:23] [ $$ ] $130=800.000 ;X-axis maximum travel, millimeters
    [13:39:23] [ $$ ] $131=800.000 ;Y-axis maximum travel, millimeters
    [13:39:23] [ $$ ] $132=70.000 ;Z-axis maximum travel, millimeters
    [13:39:23] [ $$ ] ok
    [13:39:23] [ $I ] [VER:1.1f.20170302:ACRO1010PEN]
    [13:39:23] [ $I ] [OPT:QVH,15,128]
    [13:39:23] [ $I ] ok
    [13:39:25] [ connect ] Firmware Detected: grbl version 1.1f on /dev/tty.usbserial-AK08TUK0
    
     
    #15 AllanArt, Jan 6, 2020
    Last edited by a moderator: Jan 6, 2020
    Peter Van Der Walt likes this.
  16. AllanArt

    AllanArt New
    Builder

    Joined:
    Jun 3, 2019
    Messages:
    37
    Likes Received:
    1
    log when moving servo wizard slider

    Code:
    [13:44:06] [ M3 S158 ] ok
    [13:44:06] [ M3 S158 ] ok
    [13:44:06] [ M3 S161 ] ok
    [13:44:06] [ M3 S161 ] ok
    [13:44:07] [ M3 S163 ] ok
    [13:44:07] [ M3 S163 ] ok
    [13:44:07] [ M3 S163 ] ok
    [13:44:07] [ M3 S166 ] ok
    [13:44:07] [ M3 S166 ] ok
    [13:44:07] [ M3 S166 ] ok
    [13:44:07] [ M3 S166 ] ok
    [13:44:07] [ M3 S166 ] ok
    [13:44:07] [ M3 S168 ] ok
    [13:44:07] [ M3 S168 ] ok
    [13:44:07] [ M3 S168 ] ok
    [13:44:07] [ M3 S168 ] ok
    [13:44:07] [ M3 S171 ] ok
    [13:44:07] [ M3 S171 ] ok
    [13:44:07] [ M3 S171 ] ok
    [13:44:07] [ M3 S171 ] ok
    [13:44:07] [ M3 S171 ] ok
    [13:44:07] [ M3 S173 ] ok
    [13:44:07] [ M3 S173 ] ok
    [13:44:07] [ M3 S173 ] ok
    [13:44:07] [ M3 S173 ] ok
    [13:44:07] [ M3 S176 ] ok
    [13:44:07] [ M3 S176 ] ok
    [13:44:07] [ M3 S176 ] ok
    [13:44:07] [ M3 S176 ] ok
    [13:44:07] [ M3 S176 ] ok
    [13:44:07] [ M3 S176 ] ok
    [13:44:07] [ M3 S176 ] ok
    [13:44:07] [ M3 S176 ] ok
    [13:44:07] [ M3 S173 ] ok
    [13:44:07] [ M3 S171 ] ok
    [13:44:07] [ M3 S168 ] ok
    [13:44:07] [ M3 S166 ] ok
    [13:44:07] [ M3 S163 ] ok
    [13:44:07] [ M3 S163 ] ok
    [13:44:07] [ M3 S161 ] ok
    [13:44:07] [ M3 S158 ] ok
    [13:44:07] [ M3 S153 ] ok
    [13:44:07] [ M3 S148 ] ok
    [13:44:07] [ M3 S145 ] ok
    [13:44:07] [ M3 S138 ] ok
    [13:44:07] [ M3 S135 ] ok
    [13:44:07] [ M3 S130 ] ok
    [13:44:07] [ M3 S127 ] ok
    [13:44:07] [ M3 S125 ] ok
    [13:44:07] [ M3 S122 ] ok
    [13:44:07] [ M3 S120 ] ok
    [13:44:07] [ M3 S117 ] ok
    [13:44:07] [ M3 S115 ] ok
    [13:44:07] [ M3 S112 ] ok
    [13:44:07] [ M3 S112 ] ok
    [13:44:07] [ M3 S110 ] ok
    [13:44:07] [ M3 S110 ] ok
    [13:44:08] [ M3 S110 ] ok
    [13:44:08] [ M3 S110 ] ok
    [13:44:08] [ M3 S110 ] ok
    [13:44:08] [ M3 S110 ] ok
    [13:44:11] [ M3 S110 ] ok
    [13:44:11] [ M3 S110 ] ok
    [13:44:11] [ M3 S112 ] ok
    [13:44:11] [ M3 S112 ] ok
    [13:44:11] [ M3 S115 ] ok
    [13:44:11] [ M3 S117 ] ok
    [13:44:11] [ M3 S117 ] ok
    [13:44:11] [ M3 S120 ] ok
    [13:44:11] [ M3 S120 ] ok
    [13:44:11] [ M3 S120 ] ok
    [13:44:11] [ M3 S120 ] ok
    [13:44:11] [ M3 S120 ] ok
    [13:44:11] [ M3 S120 ] ok
    [13:44:11] [ M3 S120 ] ok
    [13:44:11] [ M3 S120 ] ok
    [13:44:11] [ M3 S120 ] ok
    [13:44:12] [ M3 S120 ] ok
    [13:44:12] [ M3 S120 ] ok
    [13:44:12] [ M3 S120 ] ok
    [13:44:12] [ M3 S120 ] ok
    [13:44:12] [ M3 S122 ] ok
    [13:44:12] [ M3 S122 ] ok
    [13:44:12] [ M3 S122 ] ok
    [13:44:12] [ M3 S122 ] ok
    [13:44:12] [ M3 S122 ] ok
    [13:44:12] [ M3 S122 ] ok
    [13:44:12] [ M3 S122 ] ok
    [13:44:12] [ M3 S122 ] ok
    [13:44:12] [ M3 S122 ] ok
    [13:44:12] [ M3 S125 ] ok
    [13:44:12] [ M3 S125 ] ok
    [13:44:12] [ M3 S125 ] ok
    [13:44:12] [ M3 S125 ] ok
    [13:44:12] [ M3 S125 ] ok
    [13:44:12] [ M3 S125 ] ok
    [13:44:12] [ M3 S125 ] ok
    [13:44:12] [ M3 S125 ] ok
    [13:44:12] [ M3 S125 ] ok
    [13:44:12] [ M3 S125 ] ok
    [13:44:15] [ M3 S66 ] ok
    
     
    #16 AllanArt, Jan 6, 2020
    Last edited by a moderator: Jan 6, 2020
  17. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Project Maker Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    2,806
    Likes Received:
    1,248
    Still a little censored / truncated, but:


    Hard limits and homing is enabled

    So normally Grbl would be in locked out state pending you Home it first?

    Truncated log doesnt show me whether you homed or not before using the sliders, so maybe?
     
  18. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Project Maker Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    2,806
    Likes Received:
    1,248
    Ahh but no THIS will be the one!

    How can MIN and MAX have the same value (;

    Set Minimum to 0, Max to 255
     
  19. AllanArt

    AllanArt New
    Builder

    Joined:
    Jun 3, 2019
    Messages:
    37
    Likes Received:
    1
    Success!!

    I set Min to 0 (I have not touched that parameter so don't know how it got to 255) and homed the 1010. Pen wizard started working after that. Did I miss a written instruction somewhere that requires homing before the pen wizard will work? Is that the general rule for BB Control. Send the 1010 Home before starting any Control interface operations? I have not been doing that (although I do test Home now and then) I've been marking a starting point 0,0 origin within the XY space.

    Ran the same single closed path test from an svg file processed via CAM - after dialing in the servo up/down wizard numbers in to the tool path for this one object in CAM. 1010 plotted path moving servo down at the start of the path, then back up when it ended on the starting point of the object - as it should. Since I cannot use CAM for my app, I've been in touch with Lightburn folks. It looks like it has the potential to work and to meet my plotter needs - hopefully. a Lightburn person with a pen application similar to mine has chimed in with info about how to adapt it and the required M3s and other tweaks to add to Grbl to make it functional. More work to be done to understand how to adapt Lightburn settings to create working gcode but I'm getting closer. Next, I'm getting a trial version of their Mac app to test.

    One follow up question to the test I just ran. At the end of the trace the 1010 stops at the starting point of the object., not the marked 0,0 point. When I generated gcode in Inkscape for this same object, and opened and ran in Control, the 1010 returns to the 0,0 marked origin. With CAM however, its gcode starts at the marked 0,0 origin also, but does not return to it 0,0 at the end - why?

    Much thx for your help
     
  20. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Project Maker Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    2,806
    Likes Received:
    1,248
    Not in particular, but Grbl has some "states" (Idle, Run, Hold, Jog, Alarm, Door, Check, Home, Sleep) and in some of them it runs, some it doesnt.

    And of course the Grbl wiki touches on it in the "Homing Cycle Enabled" section of the Wiki:
    That Grbl wiki is worth a read man, all of it, even if it doesnt seem of interest (like the Interface page which sounds like only developers have a need to read it - it contains valuable info of how Grbl works on the inside!)

    CAM > Settings -> End Gcode -> throw in some move commands in there to suit what you want to do :) for example a G0 X0 Y0 to go back to 0,0
    All customisable, just add what you need it to do
     
  21. AllanArt

    AllanArt New
    Builder

    Joined:
    Jun 3, 2019
    Messages:
    37
    Likes Received:
    1
    That Grbl wiki is worth a read man, all of it, even if it doesnt seem of interest (like the Interface page which sounds like only developers have a need to read it - it contains valuable info of how Grbl works on the inside!)

    Easier said than done. I've gone thru parts of it several times but end up stopping at some point when my eyes (brain) starts to glaze over. You guys live this Grbl and gcode stuff day in and day out so it has become second nature to you. It's difficult for folks like me, who are not software types and only see the broad strokes of the interconnect of the system components to understand the finer points of how the firmware works. I also don't know what's under the Blackbox hood, hardware wise, to take advantage of Grbl's features from an I/O point of view.

    That said, what surprises me so far is how difficult it is to make a working (practical) large scale version of an HP pen plotter of old for artistic purposes - i.e simply move a pen in the the XY plane and pick it up and down with a servo at the right time to draw hundreds or more of open ended illustrative vectors. None of the more complicated cnc stuff like spindle speed, laser power, or tool cutting width etc is required. In other words, a much simpler subset of complex cnc functionality. Yet I keep hitting one brick wall after another. My latest issue is with Lightburn. It's my latest attempt to come up with workable, usable gcode generator sourced from Adobe Illustrator vectors. Looks like a great piece of software - for cnc laser work - and I thought (hoped) I could adapt it for the simpler task of pen plotting - and was on the path to success - but instead can't get it to create the proper gcode to create and control the pen servo timely and properly via Backbox, even with the help of a text editor. Unworkable so far. The folks at Ligthburn have been very helpful but they report they don't know enough about BlackBox to help me solve the problem - and these are people who clearly have an intimate developers knowledge of Grbl.

    More on the servo problem I encountered in my next post.
     
  22. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Project Maker Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    2,806
    Likes Received:
    1,248
    Just tell them its stock standard Grbl - that'll get them to not shift blame (;
     
  23. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Project Maker Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    2,806
    Likes Received:
    1,248
    Its all labelled on the outside, and on docs.openbuilds.com - every feature of Grbl has been accomodated
     
  24. AllanArt

    AllanArt New
    Builder

    Joined:
    Jun 3, 2019
    Messages:
    37
    Likes Received:
    1
    I would not say Lightburn (LB) is casting "blame" on BlackBox (BB). I think it's more a case of a lack of full awareness of each others role in this application.

    Spent the day trying to gather up the facts in order to form the right question to ask. Here's what I "think/know" is going on. First of all, LB attempt to recognize the controller it is connected to on the serial port, which if recognized it will use to set certain known parameters for that device. If it does not recognize a device, then it is up to the user to set up some basic parameters manually, among which are 3 Grbl choices. LB does not recognize BB so first time around I selected their plain Grbl choice.

    LB does generate gcode from imported file or local design, and appears to do it well, plus it's great to be able to directly play the plot in realtime via BB. Lots of goodies in LB that would serve a pen plotting app well IMO. However, it offers no provision to control a servo and no functional I/O parameter to borrow from as is the case with BB where you use the 0-255 spindle value range in Grbl as the throw range for a servo.

    Facing that dead end i asked LB if there is a way to "bracket" each of the plot paths in the gcode with a "placeholder" that has no functional use for the case of a pen plotter. My thinking is, I would insert the missing servo control values - the "M3 S201=servo up" and "M3 S153=servo down" - that I know to work on the BB side of the fence using a "find-and-replace" text editor app. Given that I will have hundreds or more vectors in the plot, there is a risk of creating hidden errors that would ruin a plot, but nonetheless so far that is the best workaround solution I can thin of right now.

    According to LB, their gcode can do that by generating plain M3 and M5 text at the start and end of each plot vector, but only by reconnecting via their Grbl 1.1e choice. One of the 3 Grbl choices they offer. So that is what I did. I created the same gcode again and sure enough I found M3s and M5s at the head and tail of each plot component. I then replaced each with M3 S201 and S153 statement. Here's the modified gcode file I created. No surprise, that did not work well. The servo did not exactly move up and down in sync properly. It also did not have the proper throw range either. I now know why.

    For one thing, the LB side of the fence does not have the benefit of all the necessary BB GRBL settings, among which is $30 and $31 spindle range that sets the range for the servo. So for openers my questions are......Is this workflow method going to work if I somehow combine/include the BB known settings with the LB gcode? Is this simply a matter of cut-n-paste? Also, it was pointed out to me by LB that BB gcode includes a .5sec delay statement. Did not realize it until now, but some kind of delay will be critical to allowing the pen time to move into proper Z before the transport moves. The question is, how or if this will complicate the automatic text editing modification of the LB gcode file I have in mind? Mind you, I still don't know if this workflow is going to work but until someone can point me in a better direction, this is the best shot I've got right now to make this thing finally work.

    And finally, given that OB offers LB software in your store I am surprised that BB is not a recognized LB device. Is that on your to-do list?

    Thx
     

    Attached Files:

  25. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Project Maker Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    2,806
    Likes Received:
    1,248
    Check the sample gcode from OpenBuilds CAM. We add G4 dwell commands after the pen actions to give servo time to reach position :) - you can add the same commands to help with that

    Nothing 'unique' about the Blackbox, it's just stock standard Grbl so don't see a need for anything more
     
  26. Giarc

    Giarc Master
    Moderator Builder

    Joined:
    Jan 24, 2015
    Messages:
    1,375
    Likes Received:
    721
    I know nothing about coding but that GRBL wiki has answered just about every question I have had regarding GRBL. I have read it - or parts of it - a number of times since I started building my CNC router in 2015. It even gave me something to do last summer when I was off work for 3 weeks due to an injury. I downloaded the gerber and dxf files (had no experience with those before either) and milled the Limit Switch Board with the octocouplers. Fun stuff! :thumbsup:
    gnea/grbl
    [​IMG]
     
  27. AllanArt

    AllanArt New
    Builder

    Joined:
    Jun 3, 2019
    Messages:
    37
    Likes Received:
    1
    That's cool. In fact on the subject of the limit switches, I have wondered if it's possible to add +X and +Y limit switches to the back and right side, then combine them with external logic prior to connecting to the BlackBox (BB). Why? I don't know about your experience, but I've had a few incidences where the 1010 has gotten away from me and slammed in to either the rear or off to the right side. The result is the cringe worthy sound of the steppers grinding the G2 belt as I scramble to reach the machine to hit the abort button or one of the limit switches. It seems to me this addition would add a measure of safety. However, right now I have other fish to fry as I try to make a working 1010 pen plotter.

    Understand by "working" I mean a system that can take in a robust vector illustration from Adobe Illustrator, convert it to working gcode that will reliably control the up and down motion of a pen holder servo in perfect sync with the graphic at all times, and with the proper throw range so as not to break it. That's key. Servos can break very easily if slammed out of range, so it's critical that the solution be cognizant of this. At the end of the day, I'm looking for sort of a modern day 1010 version of an HP plotter to use in a robust vector art application.

    You mentioned the cnc router knowledge you've gained from the Grbl wiki - the key word there is "router". Have you ever tried to make a serious gcode driven pen plotter? Everything I read and videos I watch re Grbl and gcode is either about cnc routers, plasmas, cnc lasers, 3D printers, etc. CNC pen plotting seems to be a forgotten child. What surprises me, controlling servos in part of Ardunino's bread-and-butter capability. Why is there no direct Grbl functions dedicated to servo control - like for example usec value etc like there is in the Arduino IDE?

    Of course knowing what's under the hood is helpful in solving some of the problems encountered, so I' am not dismissing the value of the wiki however, more than background info, what's missing IMO is a dedicated pen plotting cnc application - or at least as a subset of another cnc application - for Mac, not just PC. If I'm wrong on this, please point me to one and I'll be eternally grateful. Seriously.

    To be clear, I'm not critical of OpenBuilds (OB). The mechanical hardware is great as well as the BlackBox. And the control software is well thought out too. CAM is also good in its own way, and so far it's the only software (web based as it is) I've seen that actually addresses gcode pen plotting. It provides the means to set up and down servo values and even inserts a dwell time in gcode to give the pen holder time to change positions. Good stuff. But unfortunately it is unusable in my application because 1) it does not handle open ended vectors properly and 2) as a web app it can't handle large scale vector data.

    That said, I finally got my 1010 working today - Yeah! - but with some limitations. I am able to convert a complex Adobe Illustrator svg file to gcode and load and plot it via BB Control. How? By passing the svg file thru Lightburn (LB) cnc laser software which BTW looks like great software for laser users. After weeks of LB forum help back and forth, I was shown how to set certain LB's parameters such that it generates M3 and M5 "placeholders" in the gcode at places in the code equivalent to where a servo change should take place - but for a few quarks here and there I should add. I then open this gcode doc in a text editor and using "find-and-replaces" I replace the "placeholders" with proper M/S code values plus I also insert important dwell times as well. It takes me between 3-5 passes thru the doc to make all the changes depending. If I do it right this doctored gcode file will plot properly via BB Control. Great! However, not everything is perfect. The process is vulnerable to typos plus this method gets derailed when I ask LB for gcode to fill the inside of outlined closed vector shapes. Nonetheless it's a solution but hell of a Rub Goldberg way to operate a cnc pen plotter, but that's where I'm at.

    Say what you want about the treasure of info in the wiki. Without a proper dedicated pen plot gcode app - for Mac not just PC - I don't know what the wiki info could add to help get me to a better workflow place. I'm open to all ideas if I'm wrong. Thx
     
  28. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Project Maker Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    2,806
    Likes Received:
    1,248
    Just wire them in parallel :) nothing extra needed!

    Check your PMs (envelope icon above) I reached out to you last week already to see if I can assist, see the PM, and please reply
     
  29. Giarc

    Giarc Master
    Moderator Builder

    Joined:
    Jan 24, 2015
    Messages:
    1,375
    Likes Received:
    721
    I have not tried to make a pen plotter. I have stuck a pen in a holder that mounts in my router's collet and have drawn a lot of things with it, but I am not exactly sure what types of vector images you are trying to draw. Do you have a small sample? I am curious and want to try using the engrave function on Fengrave with a depth of 0.2-0.3 mm and a bit diameter of .5 mm and use a sharpie to "engrave" the drawing on a piece of paper. I engraved this vector image using a v-bit with a 0.5 mm depth for the laptop mount on my CNC router. I don't see why I couldn't draw it using the same program. But most likely I am way off base with what you are attempting.

    DSC_0001.JPG
     
  30. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Project Maker Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    2,806
    Likes Received:
    1,248
    Just an update to the public thread, I am working in private (as some of his artwork examples is not for public use) with Allan on fixing the specific bugs to handle open Vectors better inside OpenBuilds CAM - already fixed one bug yesterday :)
     
    Giarc likes this.

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice