#linuxcnc Logs
Apr 26 2023
#linuxcnc Calendar
12:13 AM -!- #linuxcnc mode set to +v by ChanServ
12:48 AM -!- #linuxcnc mode set to +v by ChanServ
12:48 AM -!- #linuxcnc mode set to +v by ChanServ
01:01 AM Deejay: moin
01:44 AM JT3196[m]: I just don't get how I can get following errors when it's not even moving
01:46 AM -!- #linuxcnc mode set to +v by ChanServ
01:57 AM jpa-: JT3196[m]: scope the control output and feedback input of the PID also
01:57 AM jpa-: it could be e.g. noise affecting encoder readings (assuming you have servos)
02:22 AM rmu: JT3196[m]: what is your setup?
02:23 AM rmu: JT3196[m]: what are you doing when following error occurs?
02:37 AM travis_farmer[m]: Morning ☕️
02:44 AM Bing[m]: morning
04:47 AM Tom_L: morning
05:21 AM JT-Cave: morning
05:24 AM -!- #linuxcnc mode set to +v by ChanServ
05:24 AM JT-Shop: morning
05:32 AM pere: anyone here interestedin a linuxcnc gathering in norway in june?
05:34 AM JT-Cave: virtual?
05:41 AM pere: on location.
05:44 AM JT-Cave: too far for me
05:45 AM travis_farmer[m]: yeah, as i don't have a passport... or money to travel... i think i will not :-)
05:45 AM rmu: pere: where in norway?
05:49 AM pere: 10 minutes from the main airport.
05:58 AM rmu: oslo?
06:12 AM pere: han, Oslo is further away. Eidsvoll.
06:12 AM pere: 50 minutes drive away from Oslo
07:58 AM pere: rmu: interested?
08:04 AM Unterhaus_: reminds me I have to renew my passport
08:07 AM rmu: pere: in principle yes, i have some sort of vacation planned for june, but i have to check with the ministry of internal and external affairs
08:09 AM pere: the idea is to meet over a weekend, the most relevant seem to be starting 3th or 16th of june. any of these a better fit than others?
08:14 AM rmu: i have to combine it with a visit in grimeton / sweden and glaskogen, will probably come by car from austria
08:14 AM rmu: re date i'm not sure yet, either date will be fine i think
08:19 AM JT-Shop: roycroft, I'm thinking of trying to make a 3/32" wenge dowel and drilling a hole in the failed glue joint and using tb3 drive the dowel in gently...
08:22 AM Tom_L: JT-Shop, how long is the crack?
08:23 AM JT-Cave: about 3/4", it's really a failed glue joint from a catch...
08:26 AM Tom_L: pm
08:59 AM JT3196[m]: RMU, I’m using ethercat encoder steppers for XY that are controlled by a CoreXY Hal comp and a ether cat stepper driver on the Z axis all 3 axis’s will get the following error sometime when not moving but more often when driving the gantry around, but when it happens I see a spike in f error on all axis and it seems like some exponential calculation issue
08:59 AM JT3196[m]: jpa-, I currently don’t have PiD configured as I thought all the servo action was handled by the ethercat drivers
09:04 AM JT3196[m]: I also verified I'm below the step rate of my axis, As XY is 166.67 pulses / mm and Z is 250 steps/mm so at 5 KHz it should be able to do 300mm/s on XY and 200mm/s on Z but I currently have XY set to 200mm/s and Z set to 150mm/s
09:06 AM jpa-: is the feedback to joint.x.motor-pos-fb coming directly from ethercat?
09:08 AM ZincBoy[CAON][m]: If you are using the drives in a step/dir mode without feedback to lcnc, you will need the PID components in your HAL. I tried running without them and things don't work well. I think it has to do with the feedback to the motion component that is generated by the PID. I have never had success in using lcnc without the PID on the joints.
09:09 AM * JT3196[m] uploaded an image: (856KiB) < https://libera.ems.host/_matrix/media/v3/download/jauriarts.org/WNJZUUEOjQftoXQVpNJDszDa/image.png >
09:14 AM ZincBoy[CAON][m]: Are you still using the corexy component and not the kinematics? You should be using the corexykins and not trivkins to make it easier to debug.
09:16 AM JT3196[m]: Yeah I'm still using the comp, I haven't had much time to debug this because it still technically works we just have to detect when the machine randomly goes out of enable.
09:22 AM * JT3196[m] uploaded an image: (88KiB) < https://libera.ems.host/_matrix/media/v3/download/jauriarts.org/jfrpFLFTmDFfZHJwpaAFYmbH/image.png >
09:22 AM JT3196[m]: so this would be ABC instead of XYZ?
09:25 AM * JT3196[m] uploaded an image: (46KiB) < https://libera.ems.host/_matrix/media/v3/download/jauriarts.org/wwnvNWvKTbphnGRxxszqdZHB/image.png >
09:26 AM JT3196[m]: ZincBoy[CA, ON] If I change kins what would I need to change these lines to?
09:29 AM * JT3196[m] uploaded an image: (234KiB) < https://libera.ems.host/_matrix/media/v3/download/jauriarts.org/iKdmKDCaTGajWzPxxteJBbsh/image.png >
09:29 AM JT3196[m]: Something like this but with `x` replaced with `a` I'm guessing
09:29 AM ZincBoy[CAON][m]: it is a fairly significant change. You need to connect the joint signals to the drives and the axis signals to the motion interface. You also really should add in the PID for the joints. Even if it doesn't seem to do anything, I have found odd behavior without it that I never got to the bottom of.
09:30 AM JT3196[m]: I'm not sure how to setup PID, I can't seem to find a good example of them being used in a servo stepper axis
09:30 AM JT3196[m]: s/servo/encoder/
09:30 AM ZincBoy[CAON][m]: Every default config with a stepper has the PID comp included.
09:32 AM JT3196[m]: Default config from where? Do I need to generate a new config somehow? I’ve been just going based off documentation examples
09:33 AM ZincBoy[CAON][m]: When you launch lcnc, you have a chooser for which config you want to load. Pick one of the existing configs (sim or otherwise) and it will be installed in your config folder. You can then use it for reference. This is usually how I get started with a new machine.
09:35 AM JT3196[m]: Okay I’ll try that, I built this off of the sparse examples online of other people using the ethercat drivers I have because there’s little to no real documentation on this
10:57 AM Lcvette[m]: any macro guru's who can maybe help me figure a solution on atc/manual tool change intermingling?
10:59 AM Lcvette[m]: trying to be able to load a tool manually during a atc tool change if the tool is not found in the carousel. I can add in what is need to the macros to have it stop and send a message to the user, but im not certain how to have it continue based on user input without aborting the gcode program running.
11:00 AM Tom_L: run from line
11:00 AM Lcvette[m]: seems like i need to be able to pull in the some of the manual tool change code for the user dialog
11:00 AM Tom_L: easy way out
11:00 AM Tom_L: you'd be at a tool change so no harm no fowl
11:01 AM Lcvette[m]: i considered that, but was hoping to have something more elegant
11:01 AM Lcvette[m]: seems like it could be added in the stdglue perhaps maybe?
11:03 AM Tom_L: that's where you would probably put it yes
11:04 AM Lcvette[m]: maybe remap an mcode for manual tool change call within the macro.. but not sure how linuxcnc will view that
11:05 AM Lcvette[m]: sorry sounding board a little right now..lol
11:05 AM Lcvette[m]: but this is a good topic to cover since there is not much on it
11:05 AM Lcvette[m]: and it is a thing atc machines should have i would think
11:05 AM Lcvette[m]: especially to use tools that don't fit in the atc
12:44 PM ZincBoy[CAON][m]: I have something along those lines in my toolchange code. The tool change comp checks if the requested tool pocket number is less than the max pockets in the carousel. If it is not then I have it set to alarm out. It would be pretty easy to add code to allow a manual tool change at that point.
12:53 PM Lcvette[m]: ZincBoy[CA, ON]: I have the same/similar alarm if the tool is not found in the carousel and it aborts. adding some code in the macro is easy, what is not so easy is how it deals with iocontrol and presenting a user dialog to inform iocontrol when the user manually installed tool has been installed and is safe to resume. I also have some other items that require input after the tool has been loaded and tool offsets activated for the
12:53 PM Lcvette[m]: programmable coolant cannon, so i need to have a way to revert back to the macro after iocontrol has been informed of the tool being loaded. its a fairly fun knot of yarn to untangle..lol
01:01 PM roycroft: grr
01:02 PM roycroft: i was trying to be clever and use up some materials i had on hand for my laser enclosure
01:02 PM roycroft: i cut the pieces out yesterday, and just went to do the first dry fit, and they don't fit well
01:02 PM roycroft: i'm using a half sheet of mdf that i've had around since last summer
01:02 PM roycroft: i found that it varies in thickness from 19mm to 21.5mm
01:03 PM roycroft: it's been kept indoors, but not in a climate-controlled room, and i guess some of it decided to absorb some water
01:03 PM roycroft: i guess i either need to make things oversize or use new materials
01:28 PM * boozeman4562[m] uploaded an image: (364KiB) < https://libera.ems.host/_matrix/media/v3/download/jauriarts.org/lMGawIFLbyKCdMgXUOkrzxWo/20230426_104911.jpg >
01:28 PM boozeman4562[m]: Foam cutter controller is about ready
01:42 PM boozeman4562[m]: I have PNP type NC end stops. I assume that Brown wire to +24VDC, black for Mesa 7i96S input and blue to gnd.
01:57 PM roguish[m]: boozeman#4562: be careful assuming..... it's not too hard to smoke a mesa board. best is to RTFM multiple times and ask questions.
01:58 PM Lcvette[m]: boozeman#4562: that is correct
01:59 PM * Lcvette[m] uploaded an image: (6KiB) < https://libera.ems.host/_matrix/media/v3/download/matrix.org/tnVmWWJLwqrWChKelDdonfqb/image.png >
01:59 PM Lcvette[m]: pnp is same
01:59 PM Lcvette[m]: i have both
01:59 PM boozeman4562[m]: good
02:08 PM boozeman4562[m]: i was watching some andy's videos about this
02:10 PM pcw--home: boozeman4562[m]: Also 7I96S input common (TB3-12) would be GND for PNP sensors
02:31 PM -!- #linuxcnc mode set to +v by ChanServ
02:49 PM ZincBoy[CAON][m]: The macro/comp needs to hold control until the manual or auto toolchange is completed. iocontrol should see the same behavior as for a normal automatic tool change. I have triggers for certain tool number ranges (forced touch off for drills for example) that are activated automatically so that should not be an issue either.
02:55 PM Lcvette[m]: yes, i also have the coolant angle programmed and have some tool height setter triggers those are easy because they are within the macro.. but i still do not see how to control the cintinuation after a manual tool change from the users standpoint. i can send a message saying to change the tool, but what makes it wait? how do i control iocontrol from within th macro?
03:08 PM ZincBoy[CAON][m]: You don't control IOcontrol from the macro. The macro sends the dialog and continues when okay is selected. I would do this from a userspace component that is called from the tool change macro. IOcontrol sees exactly the same process for a manual change as for a auto change.
03:11 PM ZincBoy[CAON][m]: You essentially need two paths in your M6 override. Though in my case it would be slightly more complex as I would need to handle this in the T override as well.
03:19 PM JT3196[m]: yeah corexykins just straight up doesn't seem to work and there's not enough documentation to make a complete example. It only moves one motor at a time instead of both joints to get cartesian movement
03:25 PM Lcvette[m]: ZincBoy[CA, ON]: what are you using to give the user an ok button to continue?
03:27 PM Lcvette[m]: this is where it becomes complicated
03:29 PM Lcvette[m]: sending a message is easy returning a value from within the ui im not seeing an easy solution unless a portion or all of the manual tool change code is used. if you see a clear way please explain it as im really hoping to crack this nut today for some parts i need to run tomorrow and while i can program seperate gcode files to handle any tools that don't fit in the carousel, i really hate doing that
03:32 PM ZincBoy[CAON][m]: Two ways. One, have a HAL pin driven from UI button that acts as a tool change done indicator to the macro. This is the easiest way. The requested tool can be displayed with the message mechanism. The system will hit the T word that needs a manual change and then wait until the UI button is pressed.
03:33 PM JT3196[m]: I just don't get why following error just randomly shoots to infinitiy, it makes no sense.
03:34 PM ZincBoy[CAON][m]: The other way is more elegant but more complex. I would do this with a userspace component that generates its own dialog box and waits for the "okay" or "cancel" buttons and feeds the results back to the tool change macro.
03:35 PM Tom_L: ZincBoy[CAON][m], when you gonna hold a seminar??? :)
03:35 PM Lcvette[m]: ZincBoy[CAON][m]: this sounds like what i had in mind
03:36 PM ZincBoy[CAON][m]: If I wanted this running tomorrow, I would do it with a simple pushbutton. Ether in the GUI or a physical button 🙂
03:38 PM Lcvette[m]: i gotta look and see about the userspace component
03:38 PM Unterhaus_: following error going to infinity means that it's an unstable system, needs feedback
03:38 PM Lcvette[m]: i will suffer through tomorrow before i have to do things twice
03:39 PM Lcvette[m]: but it seems this is already in place with the manual tool change
03:39 PM Tom_L: make a call to it and see
03:40 PM ZincBoy[CAON][m]: Or the feedback is bad. If the system is working well and not showing physical location errors then I would remove the feedback from the drives and run as a simple open loop step/dir system. The loop should be closed in the drives anyway so if they are sending garbage to lcnc then probably not that useful.
03:40 PM Lcvette[m]: Tom_L: i have it disabled in the hal file
03:40 PM Lcvette[m]: but i saw maybe could use unlinkp
03:42 PM Lcvette[m]: https://gist.github.com/robanonymous/b677a47aed504548440c8258f71724b1
03:43 PM ZincBoy[CAON][m]: Actually, it looks like you can use the hal_manualtoolchange component directly.
03:43 PM * JT[m] uploaded an image: (311KiB) < https://libera.ems.host/_matrix/media/v3/download/matrix.org/xyzzDpnvrbVKzHGWqeCclKqD/20230426_154138.jpg >
03:43 PM Tom_L: enable it and call M6 after you've done what you need done
03:43 PM JT[m]: I need to put wheels and a handle on that magnet
03:44 PM ZincBoy[CAON][m]: You just need to hook it into your tool change macro and use it when you detect the tool is not in the carousel.
03:44 PM Lcvette[m]: thats what i thought i could do
03:44 PM Tom_L: JT[m], and wrap it in a sheet of plastic
03:44 PM Lcvette[m]: but i need to dig and find out how to do it
03:45 PM Lcvette[m]: the "hook it into" part is where im struggling..lol
03:45 PM * Tom_L gives Lcvette[m] a largish fish hook
03:45 PM ZincBoy[CAON][m]: Your tool change macro -> hal_manualtoolchange.change input when you want to start the manual change.
03:45 PM Lcvette[m]: Tom_L: 🤣
03:46 PM Tom_L: when i was working on orient, i put the M6 at the end of my .ngc file
03:46 PM ZincBoy[CAON][m]: hal_manaultoolchange.changed -> your tool change macro to indicate the tool is changed.
03:46 PM Tom_L: subroutine
03:46 PM ZincBoy[CAON][m]: hal_manualtoolchange.number gets connected to IOcontrol like usual.
03:47 PM Tom_L: ZincBoy[CAON][m] has ventured further into the deep water than i have
03:47 PM ZincBoy[CAON][m]: When your macro detects it needs a manual tool change, it sets the hal_manualtoolchange.change high. It then waits until hal_manualtoolchange.changed goes high.
03:47 PM Lcvette[m]: yeah im not sure an arrow is gonna be enough info for me to sort that
03:47 PM Lcvette[m]: lol
03:48 PM Lcvette[m]: do you bhave a one or two line example of what that would actually look like?
03:48 PM Tom_L: from which end?
03:48 PM Tom_L: Tx
03:48 PM Tom_L: M6
03:48 PM Tom_L: :)
03:48 PM ZincBoy[CAON][m]: Is your tool change macro (T override or M6 override) gcode or python?
03:49 PM Tom_L: i think his may be python looking at his toolchange code
03:49 PM Tom_L: https://gist.github.com/robanonymous/b677a47aed504548440c8258f71724b1
03:49 PM Tom_L: or is that just a hal file?
03:50 PM * Lcvette[m] posted a file: (4KiB) < https://libera.ems.host/_matrix/media/v3/download/matrix.org/ciWBXUtNZpEzZkAJOexefQdc/toolchange.ngc >
03:50 PM Lcvette[m]: Tom_L: thats just a l;ink i found
03:50 PM Lcvette[m]: the file above is my sub
03:51 PM ZincBoy[CAON][m]: If gcode, use the M64 Pn/M65 Pn to set the coresponding motion.digital-out pin and connect it to the hal_manualtoolchange.change pin in your HAL.
03:52 PM Lcvette[m]: ZincBoy[CA, ON]: now youre speaking my language
03:52 PM Lcvette[m]: 😄
03:53 PM ZincBoy[CAON][m]: Then use M66 Pn L1 Q<timeout> to read the motion.digital-in-n pin connected to hal_manualtoolchange.changed in the HAL.
03:53 PM Lcvette[m]: is timeout necessary?
03:54 PM Lcvette[m]: can it be removed so it waits until input is given?
03:54 PM Lcvette[m]: njever used it like that before
03:54 PM ZincBoy[CAON][m]: You can, but I prefer to have a timeout so it won't lock up the system. I just loop in the gcode macro.
03:56 PM XXCoder: jt you could build a roller using that magnet lol
03:57 PM XXCoder: its almost like vacuum, 2 wheels bar and magnet under it
03:59 PM Tom_L: XXCoder, roofers use those alot
03:59 PM Tom_L: when they're done
03:59 PM XXCoder: not surpised, its very effective
04:03 PM Unterhaus_: it seems to me that all the remora threads shouldn't be in the computers and os subforum
04:07 PM roycroft: i have a couple sizes of those, xxcoder
04:07 PM roycroft: the bigger one is nice, because it lets me engage and disengage the magnet with a lever
04:08 PM roycroft: kind of like a magnetic base for a test indicator
04:08 PM roycroft: there's one major drawback though: i mostly use it when i'm doing projects outdoors, and i tend to use stainless steel fasteners on outdoor projects
04:10 PM roycroft: what i need is instead of a magnet bar, to mount a metal detector on wheels and have a tiny robot arm that will grab stuff when it's detected and put it in a bucket
04:12 PM roycroft: or a source of martensitic fasteners, which would be a lot easier, but not nearly as much fun
04:13 PM * JT[m] uploaded an image: (326KiB) < https://libera.ems.host/_matrix/media/v3/download/matrix.org/cbIvHjYkpnjhzmRsAfpVJQMr/20230426_161152.jpg >
04:14 PM roycroft: that looks kind of like the one i have with the engagement lever
04:15 PM JT-Shop: all I need to do is connect the dots and I have a magnetic pick up tool
04:15 PM roycroft: but they probably all look about the same
04:15 PM JT-Shop: for 30 years I just dragged it around with some rope...
04:16 PM JT-Shop: the magnet is super powerful convayor magnet
04:18 PM roycroft: screw a flag mounting bracket on it and attach a flag pole or broom stick to it and bob's your uncle
04:18 PM roycroft: unless you like dragging it with a rope
04:18 PM roycroft: i suppose that's a good way to go if you're sweeping a large area and want to drag it behind a tractor
04:19 PM JT-Shop: screw came out of my back pack blower somewhere by the 16' trailer and the pile of landscaping blocks...
04:22 PM JT-Shop: hmm no tapped holes in the end blocks
04:24 PM roycroft: that can be fixed
04:28 PM tiwake: hmm
04:28 PM tiwake: esprit error "error creating tool"
04:32 PM tiwake: not sure why
04:46 PM JT-Shop: hmm I can't find my drill vise...
05:13 PM Unterhaus_: do the axes and joints have to be hooked up?
05:13 PM Unterhaus_: in hal?
05:15 PM Tom_L: hooked up?
05:15 PM Tom_L: they are numbered
05:17 PM Tom_L: well, the AXIS are lettered
05:19 PM Tom_L: they are connected to the stepgen or pwmgen in each hal section
05:23 PM Unterhaus_: for example, axis0 is x, does there need to be an indication of that in a hal file?
05:23 PM Unterhaus_: sorry, joint0 is x
05:23 PM Tom_L: not that i'm aware of
05:24 PM Tom_L: http://tom-itx.no-ip.biz:81/~webpage/cnc/configs/NEW_MILL_SHOP_2.8.4/
05:24 PM Tom_L: my configs
05:24 PM Tom_L: all i have in the axis sections are a couple limits for vel etc
05:24 PM Tom_L: the rest is in the joint section
05:25 PM Tom_L: in the ini
05:25 PM Tom_L: in the hal, you hook the pwmgen, stepgen in
05:28 PM Unterhaus_: in your ini, it's AXIS_Z then JOINT_2 which go together. Is that automatically joining the two?
05:28 PM Tom_L: i forget how you do the joints for a gantry with 2 steppers though
05:28 PM Tom_L: i believe so yes
05:29 PM Tom_L: in [TRAJ] AXIS = 3 and in [KINS] JOINTS = 3
05:32 PM Tom_L: Unterhaus_, i think the connection is understood internally. the Joint sections were added after AXIS
05:33 PM Tom_L: prior to that everything was done in AXIS
05:33 PM Unterhaus_: you can explicitly connect the joints and axes
05:34 PM Tom_L: that i haven't looked into. i assume there is a default if none is specified
05:34 PM Tom_L: my config was done before they had joints and on an upgrade was converted with the lcnc tool
05:35 PM Tom_L: i did have to fix a couple things but nothing major
05:35 PM Tom_L: i don't recall what lcnc version that was
05:36 PM Tom_L: probably around 2.5 - .7
05:37 PM Unterhaus_: 2.7 apparently was prior to joints because I'm watching a tutorial about it and it only has axis commands
05:38 PM Tom_L: http://linuxcnc.org/docs/stable/html/config/ini-config.html#_joint__lt_num_gt_section
05:38 PM Tom_L: Typically (for systems using trivkins kinematics, there is a 1:1 correspondence between a joint and an axis coordinate letter):
05:38 PM Tom_L: JOINT_0 = X
05:38 PM Tom_L: JOINT_1 = Y
05:38 PM Tom_L: JOINT_2 = Z
05:40 PM Tom_L: maybe they were introduced in 2.8 then
05:40 PM Tom_L: i know it hasn't been that long ago
05:42 PM Unterhaus_: must have been 2.8
05:42 PM Unterhaus_: wasn't it originally called "joints/axis"?
05:42 PM Tom_L: i don't know. not that i know of
05:43 PM Tom_L: ^^ those were the 2.8 docs
05:43 PM Tom_L: all 2.7 has is [AXIS]
05:45 PM roguish[m]: Tom_L: there should be a gantry example...in the regular install
05:45 PM Tom_L: i know there is, i just didn't feel like looking for it :)
05:46 PM Unterhaus_: it's almost covered in the kinematics page
05:48 PM Unterhaus_: trivkins does the linking
05:48 PM Unterhaus_: "If the coordinates= parameter is omitted, joint numbers are assigned sequentially to every known axis letter ("xyzabcuvw")."
05:49 PM Unterhaus_: this is the kind of nonsensical crap that I get hung up on instead of just making my machine work
05:55 PM Tom_L: :)
05:55 PM Tom_L: don't over think it
08:08 PM Tom_L: ok remote works
08:11 PM -!- #linuxcnc mode set to +v by ChanServ
08:12 PM CAKESLOB: ok Unterhaus_ I did a post with some explanation, let me know how it goes
08:13 PM CAKESLOB: but yeah, they shouldnt be in computers, it should be in drivers, but I think it started there because of RPI stuff
08:14 PM -!- #linuxcnc mode set to +v by ChanServ
08:17 PM -!- #linuxcnc mode set to +v by ChanServ
09:56 PM * skunkworks[m] uploaded an image: (832KiB) < https://libera.ems.host/_matrix/media/v3/download/jauriarts.org/RNNwtesAevFHFUaldMjSVUTG/PXL_20230427_024823776.jpg >
09:56 PM skunkworks[m]: may have calculated that a bit close...
09:57 PM skunkworks[m]: card stock fits in there. probably ok...
10:19 PM Tom_L: hope no debri goes thru it
10:23 PM acer: waht is that? looks like the slide of a lathe? or mill
10:23 PM acer is now known as _unreal_
10:27 PM Tom_L: i think he's still working on his lathe
11:34 PM boozeman4562[m]: s/andy/Andy/
11:35 PM XXCoder: skunkworks[m]: clearance is clearance