Re: [Emc-users] Way to control 6 axis robot, jerk limitation. Araisrobo?
You where right about path. It ran from /usr/bin/linuxcnc because I used sudo for starting linuxcnc, but not for configuring environment. Now I tried to run the right one, but: LINUXCNC - master-2013.08.18 ARAIS ROBOT TECHNOLOGY Machine configuration directory is '/home/cnc/araisrobo/configs/sim/axis' Machine configuration file is 'axis_mm.ini' Starting LinuxCNC... io started halcmd loadusr io started motmod: dlopen: /home/cnc/araisrobo/rtlib/motmod.so: cannot open shared object file: No such file or directory core_sim.hal:7: /home/cnc/araisrobo/bin/rtapi_app exited without becoming ready core_sim.hal:7: insmod failed, returned -1 Shutting down and cleaning up LinuxCNC... I think I have to solve motmod.so problem. But don't know how. Maybe you could connect remotely? I would appreciate your help.. You can suggest program to use. You can contact me using email or google hangout - I will respond quickly, I am online. -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Mesa 5i23 step rate limitation with concurrent pwmgen
On 11 November 2013 06:19, Hugh Wylie hwy...@mweb.co.za wrote: Under this configuration, maximum step rate is limited to approximately 250Hz, while without 5i23 pwmgen invocation the 4 stepgens perform as expected (with good step rate headroom). That's rather odd. Is it the same with (for example) SVST8_4? This might require headers swapping. Can you enable raw mode and see if the driver it writing the correct step rates to 0x2000, 0x2004, 0x2008? (The addresses come from this file: http://git.linuxcnc.org/gitweb?p=hostmot2-firmware.git;a=blob;f=regmap;h=b3a2a77c27de0c71278dc910992efeddd7deb577;hb=HEAD ) These steps will help to determine if the problem is in the driver code or the FPGA code. -- atp If you can't fix it, you don't own it. http://www.ifixit.com/Manifesto -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] Index-enable pin question
Hello! I am trying to help a guy that has retrofitted a lathe to LinuxCNC. He has 5i25 + 7i77 cards and 2.5.0 version installed. The problem is that I cannot figure out, how to get threading to work. G76 command will bring the tool along X to proper thread depth and then stop. It seems to me that it is waiting for a signal on motion.spindle-index-enable. That pin is connected to encoder.00.index-enable pin, I checked - there is index pulse coming from encoder every spindle revolution, but I do not see any pulses in Halscope on index-enable pin. I tried playing with index-mask and index-mask-invert parameters, but no success. This page does not seem helpful, explaining all the details on how to set it up: http://linuxcnc.org/docs/html/examples/spindle.html#_spindle_enable I see that reference no:2 at the bottom, but I was not able to find any explanation in manual. I would appreciate, if somebody could share some link, where it is explained, how exactly spindle index-enable pin is treated in lathe config. -- Viesturs -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Index-enable pin question
On 11 November 2013 11:35, Viesturs Lācis viesturs.la...@gmail.com wrote: The problem is that I cannot figure out, how to get threading to work. G76 command will bring the tool along X to proper thread depth and then stop. It seems to me that it is waiting for a signal on motion.spindle-index-enable. Maybe, maybe not :-) The common reasons for going to the start of the thread and then not proceding is a problem with motion.spindle-revs not be hooked up. (revs means revolutions, not revolutions per minute) If this pin is actually connected then it maybe that it is counting in the wrong direction. it needs to count up for normal spindle rotation. (and it needs to count up at 1 unit per revolution) The spindle-enable reference you found it something completely different. This is probably the reference you need: http://linuxcnc.org/docs/html/examples/spindle.html#_spindle_synchronized_motion_a_id_sec_spindle_synchronized_motion_a -- atp If you can't fix it, you don't own it. http://www.ifixit.com/Manifesto -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Index-enable pin question
I can't answer your question directly, but last night I was working to do the same thing and got it to work! I did notice the same behavior, moving to the proper X and never starting. For me the problem was that I was using both phases A and B, and that the encoder was counting down, not up. Reversing A and B fixed the problem. Maybe this will help you too. -Kip On Mon, Nov 11, 2013 at 6:35 AM, Viesturs Lācis viesturs.la...@gmail.comwrote: Hello! I am trying to help a guy that has retrofitted a lathe to LinuxCNC. He has 5i25 + 7i77 cards and 2.5.0 version installed. The problem is that I cannot figure out, how to get threading to work. G76 command will bring the tool along X to proper thread depth and then stop. It seems to me that it is waiting for a signal on motion.spindle-index-enable. That pin is connected to encoder.00.index-enable pin, I checked - there is index pulse coming from encoder every spindle revolution, but I do not see any pulses in Halscope on index-enable pin. I tried playing with index-mask and index-mask-invert parameters, but no success. This page does not seem helpful, explaining all the details on how to set it up: http://linuxcnc.org/docs/html/examples/spindle.html#_spindle_enable I see that reference no:2 at the bottom, but I was not able to find any explanation in manual. I would appreciate, if somebody could share some link, where it is explained, how exactly spindle index-enable pin is treated in lathe config. -- Viesturs -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Index-enable pin question
On 11 November 2013 12:40, Kip Shaffer k...@shafferhouse.org wrote: For me the problem was that I was using both phases A and B, and that the encoder was counting down, not up. Reversing A and B fixed the problem. I have had the same problem. Making the encoder scale negative is an easier fix than rewiring. -- atp If you can't fix it, you don't own it. http://www.ifixit.com/Manifesto -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Way to control 6 axis robot, jerk limitation. Araisrobo?
On Monday 11 November 2013 08:11:03 Marius Alksnys did opine: You where right about path. It ran from /usr/bin/linuxcnc because I used sudo for starting linuxcnc, but not for configuring environment. Sudo to root is not required to run linuxcnc. If the ~/linuxcnc/configs tree, and the ~/linuxcnc/nc_files tree are installed in your home directory, and you own everything there, it should and does run just fine as you. Now I tried to run the right one, but: LINUXCNC - master-2013.08.18 ARAIS ROBOT TECHNOLOGY Machine configuration directory is '/home/cnc/araisrobo/configs/sim/axis' Machine configuration file is 'axis_mm.ini' Starting LinuxCNC... io started halcmd loadusr io started motmod: dlopen: /home/cnc/araisrobo/rtlib/motmod.so: cannot open shared object file: No such file or directory core_sim.hal:7: /home/cnc/araisrobo/bin/rtapi_app exited without becoming ready core_sim.hal:7: insmod failed, returned -1 Shutting down and cleaning up LinuxCNC... I think I have to solve motmod.so problem. But don't know how. Maybe you could connect remotely? I would appreciate your help.. You can suggest program to use. You can contact me using email or google hangout - I will respond quickly, I am online. I am lost. Neither of my systems, both running the current build of 2.5.3, have a locateable rtlib, nor a locateable motmod.so. And they're running fine. I'm running everything with steppers and pwm controlled spindles. And the only time I have to use sudo is to administer one of the package managers. So I'll bow out and let the real experts opine on this. -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.cl ktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users Cheers, Gene -- There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order. -Ed Howdershelt (Author) Nothing is so firmly believed as that which we least know. -- Michel de Montaigne A pen in the hand of this president is far more dangerous than 200 million guns in the hands of law-abiding citizens. -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Index-enable pin question
On Monday 11 November 2013 08:35:30 Viesturs Lācis did opine: Hello! I am trying to help a guy that has retrofitted a lathe to LinuxCNC. He has 5i25 + 7i77 cards and 2.5.0 version installed. The problem is that I cannot figure out, how to get threading to work. G76 command will bring the tool along X to proper thread depth and then stop. It seems to me that it is waiting for a signal on motion.spindle-index-enable. That pin is connected to encoder.00.index-enable pin, I checked - there is index pulse coming from encoder every spindle revolution, but I do not see any pulses in Halscope on index-enable pin. I tried playing with index-mask and index-mask-invert parameters, but no success. This page does not seem helpful, explaining all the details on how to set it up: http://linuxcnc.org/docs/html/examples/spindle.html#_spindle_enable I see that reference no:2 at the bottom, but I was not able to find any explanation in manual. I would appreciate, if somebody could share some link, where it is explained, how exactly spindle index-enable pin is treated in lathe config. Do you have this in the .hal file? setpencoder.0.index-enable true I have two odd lines in my .hal file, without which some of axis won't run: # required by axis net dumbsig motion.spindle-speed-out net spindle-velocitymotion.spindle-speed-in # note, these are signal names both with a source but no loads specified. net spindle-index encoder.0.index-enable motion.spindle-index-enable pid.0.index-enable And: # get spindle encoder outputs net A-phase encoder.0.phase-A parport.0.pin-12-in net B-phase encoder.0.phase-B parport.0.pin-15-in net Z-index encoder.0.phase-Z parport.0.pin-13-in Cheers, Gene -- There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order. -Ed Howdershelt (Author) Ernest asks Frank how long he has been working for the company. Ever since they threatened to fire me. A pen in the hand of this president is far more dangerous than 200 million guns in the hands of law-abiding citizens. -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] gcmc - v1.2.0
Hi All, A new release, 1.2.0, has been made for the G-code meta compiler. Changes include: - and operators on scalars, vectors and vector-lists - full axis support for XYZ, ABC and UVW - fixed arcs to output valid IJK values and correct XYZ coordinates (thanks Tony for spotting the problem) - slight performance improvement using value structure caching reducing malloc/free overhead. You can get the tar-ball and a windows executable at: http://www.vagrearg.org/content/gcmc The online documentation has been updated to include a functional description of the shift operators and additionally a description how undefined values are handles in calculations. -- Greetings Bertho (disclaimers are disclaimed) -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Mesa 5i23 step rate limitation with concurrent pwmgen
On Mon, 11 Nov 2013, Hugh Wylie wrote: Date: Mon, 11 Nov 2013 08:19:36 +0200 From: Hugh Wylie hwy...@mweb.co.za Reply-To: Enhanced Machine Controller (EMC) emc-users@lists.sourceforge.net To: emc-users@lists.sourceforge.net Subject: [Emc-users] Mesa 5i23 step rate limitation with concurrent pwmgen Four stepgens and one pwmgen are invoked in a LinuxCNC 2.5.2 environment as follows, resulting in step rate limitation on all four joints: loadrt hm2_pci config=firmware=hm2/5i23/SVST4_8.BIT num_encoders=0 num_pwmgens=1 num_3pwmgens=0 num_stepgens=4 Under this configuration, maximum step rate is limited to approximately 250Hz, while without 5i23 pwmgen invocation the 4 stepgens perform as expected (with good step rate headroom). What symptom do you have? Do you have the per axis Stepgen maxaccel set to 1.25 times the the per axis machine acceleration limits? If this is not done you may get following errors Having confirmed that this limitation is independent of host motherboard but identical on two Mesa 5i23 adapters tested, and independent of pwmgen frequency between 400Hz and 20kHz, it is expected that this is a firmware rather than performance constraint of the FPGA on the 5i23 adapter. The ini file is unchanged between configs with or without 5i23 pwmgen. I doubt that this is any kind of FPGA performance constraint (the 5I23 stepgens are capable of 12 MHZ step rates) And while stepgens mixed with PWMgens is not terribly common, its used in a lot of step/dir systems with analog controlled spindles. What steps are needed to overcome this constraint? -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users Peter Wallace Mesa Electronics (\__/) (='.'=) This is Bunny. Copy and paste bunny into your ()_() signature to help him gain world domination. -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Index-enable pin question
2013/11/11 andy pugh bodge...@gmail.com On 11 November 2013 11:35, Viesturs Lācis viesturs.la...@gmail.com wrote: The problem is that I cannot figure out, how to get threading to work. G76 command will bring the tool along X to proper thread depth and then stop. It seems to me that it is waiting for a signal on motion.spindle-index-enable. Maybe, maybe not :-) The common reasons for going to the start of the thread and then not proceding is a problem with motion.spindle-revs not be hooked up. (revs means revolutions, not revolutions per minute) It is connected to hm2_5i25.0.encoder.00.position If this pin is actually connected then it maybe that it is counting in the wrong direction. it needs to count up for normal spindle rotation. (and it needs to count up at 1 unit per revolution) It is counting up. The spindle-enable reference you found it something completely different. This is probably the reference you need: http://linuxcnc.org/docs/html/examples/spindle.html#_spindle_synchronized_motion_a_id_sec_spindle_synchronized_motion_a Sorry for the mistake, yes, I already was looking at 6.1 section. Is there anything I should know about index-enable being IO pin, not plain IN or OUT? -- Viesturs -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Index-enable pin question
On 11 November 2013 16:43, Viesturs Lācis viesturs.la...@gmail.com wrote: Is there anything I should know about index-enable being IO pin, not plain IN or OUT? No, other that it can only be connected to another IO pin. It's easy enough to test. I think that you can even sets the signal without halcmd complaining Then watch the value in halmeter, it should go false then the index passes the sensor. -- atp If you can't fix it, you don't own it. http://www.ifixit.com/Manifesto -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] (no subject)Rotary problems
Thanks for all your help on this one. As a result I have improved performace a bit and maybe a more powerful z stepper driver will make it even better. Thanks again Aaron - Original Message - From: Gene Heskett Sent: 11/10/13 02:58 PM To: emc-users@lists.sourceforge.net Subject: Re: [Emc-users] (no subject)Rotary problems On Sunday 10 November 2013 09:38:22 andy pugh did opine: As I appear to have been ignored... The problem probably is linked to the limited lookahead, but if you only notice it when the rotary is involved, then it may be that the rotary acceleration is much too low. It is acceleration that limits how fast a particular segment is allowed to run, and the lowest-accel axis will dominate. Angular axis acceleration numbers are relatively enormous as a consequence of the units. Tens of thousands of degrees/s/s I didn't go that extreme, but I am likely too low too, I was considering that the table has no inertia since its geared down 90 times, and was more concerned with the added mass of the all steel couplings I had made, which probably weigh about the same as the 425 motor's armature, and are about the same diameter. Some day I should make a new motor mount, sized 2 shorter, and using one of the alu flex couplings which would be ounces lighter. I bought a pag of them on fleabay when I started on the lathe. But I would also insert ball thrust washers for worm end play which I do not now have. That made a large difference in how much movement power actually got to the XY tables. Using those, hidden in the bearing hubs on the xy tables, with factorylike 20 tpi 10mm acme screws, a stalled spindle will break off a 1/4 solid carbide end mill, ditto if it plugs up cutting dead soft alu. I need more spindle revs and horsepower, about 10x more, badly. 200 watt motor, 2500 revs wide open, sucks. Its a toy. Cheers, Gene -- There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order. -Ed Howdershelt (Author) It is indeed desirable to be well descended, but the glory belongs to our ancestors. -- Plutarch A pen in the hand of this president is far more dangerous than 200 million guns in the hands of law-abiding citizens. -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users Re-Form Furniture Aaron Moore Conileigh Skinners Bottom Redruth Cornwall TR16 5DY Tel: 01209 890084 Mob: 07805686188 Email:aaronmo...@linuxmail.org Web: www.re-formfurniture.co.uk -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] (no subject)Rotary problems
On Monday 11 November 2013 12:35:44 aaron moore did opine: Thanks for all your help on this one. As a result I have improved performace a bit and maybe a more powerful z stepper driver will make it even better. Thanks again Aaron Gah! Can't you train that GMX Web Mailer to do quotes better? First off, its throwing away all line feeds. No one but me now knows where Andy's message ends and my reply begins. Thats not good netiquet. Worse than GoogleGroups even except they triple space everything after throwing away all the original line breaks. We don't normally top post as you did above, but usually reply by mixing our replies into the conversation. As I'm doing here. - Original Message - From: Gene Heskett Sent: 11/10/13 02:58 PM To: emc-users@lists.sourceforge.net Subject: Re: [Emc-users] (no subject)Rotary problems On Sunday 10 November 2013 09:38:22 andy pugh did opine: As I appear to have been ignored... The problem probably is linked to the limited lookahead, but if you only notice it when the rotary is involved, then it may be that the rotary acceleration is much too low. It is acceleration that limits how fast a particular segment is allowed to run, and the lowest-accel axis will dominate. Angular axis acceleration numbers are relatively enormous as a consequence of the units. Tens of thousands of degrees/s/s I didn't go that extreme, but I am likely too low too, I was considering that the table has no inertia since its geared down 90 times, and was more concerned with the added mass of the all steel couplings I had made, which probably weigh about the same as the 425 motor's armature, and are about the same diameter. Some day I should make a new motor mount, sized 2 shorter, and using one of the alu flex couplings which would be ounces lighter. I bought a pag of them on fleabay when I started on the lathe. But I would also insert ball thrust washers for worm end play which I do not now have. That made a large difference in how much movement power actually got to the XY tables. Using those, hidden in the bearing hubs on the xy tables, with factorylike 20 tpi 10mm acme screws, a stalled spindle will break off a 1/4 solid carbide end mill, ditto if it plugs up cutting dead soft alu. I need more spindle revs and horsepower, about 10x more, badly. 200 watt motor, 2500 revs wide open, sucks. Its a toy. Cheers, Gene -- There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order. -Ed Howdershelt (Author) It is indeed desirable to be well descended, but the glory belongs to our ancestors. -- Plutarch A pen in the hand of this president is far more dangerous than 200 million guns in the hands of law-abiding citizens. Now, because it stripped all line breaks, it has also broken any signature detection. Normally, the \n-- \n that WAS after the Cheers, Gene above is the quoting mechanisms stopper so we don't endlessly repeat signatures in a long conversation. Please try a different email agent, maybe thunbderbird? --- --- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.cl ktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users Re-Form Furniture Aaron Moore Conileigh Skinners Bottom Redruth Cornwall TR16 5DY Tel: 01209 890084 Mob: 07805686188 Email:aaronmo...@linuxmail.org Web: www.re-formfurniture.co.uk -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.cl ktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users Cheers, Gene -- There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order. -Ed Howdershelt (Author) audiophile, n: Someone who listens to the equipment instead of the music. A pen in the hand of this president is far more dangerous than 200 million guns in the hands of law-abiding citizens. -- November Webinars for C, C++, Fortran Developers
[Emc-users] Mesa 5i23 step rate limitation with concurrent pwmgen
Four stepgens and one pwmgen are invoked in a LinuxCNC 2.5.2 environment as follows, resulting in step rate limitation on all four joints: loadrt hm2_pci config=firmware=hm2/5i23/SVST4_8.BIT num_encoders=0 num_pwmgens=1 num_3pwmgens=0 num_stepgens=4 Under this configuration, maximum step rate is limited to approximately 250Hz, while without 5i23 pwmgen invocation the 4 stepgens perform as expected (with good step rate headroom). What symptom do you have? For example, irrespective of alternate commands G1 x50 Fr / G1 x0 Fr, where 100 = r = 2500, the joint accelerates smoothly to a maximum feedrate somewhere in the range of 170 - to be more precise, the reported step pulse interval of ~4ms (~250Hz), and eventually decelerates to the required end position. Varying steplen and stepspace have no effect (within reasonable bounds, of course - the pulse width is observed to reflect ini parameter value). The cap on joint step rate accordingly manifests in large to very large following errors, depending on the value of 's' - you will see that min_ferror is set to 50! Do you have the per axis Stepgen maxaccel set to 1.25 times the the per axis machine acceleration limits? As the attached ini file shows, stepgen_maxaccel is generally set to 4/3 of maxaccel (ratio lower in case of Z axis), but setting these to a 5/4 ratio has no impact. If this is not done you may get following errors Having confirmed that this limitation is independent of host motherboard but identical on two Mesa 5i23 adapters tested, and independent of pwmgen frequency between 400Hz and 20kHz, it is expected that this is a firmware rather than performance constraint of the FPGA on the 5i23 adapter. The ini file is unchanged between configs with or without 5i23 pwmgen. I doubt that this is any kind of FPGA performance constraint (the 5I23 stepgens are capable of 12 MHZ step rates) And while stepgens mixed with PWMgens is not terribly common, its used in a lot of step/dir systems with analog controlled spindles. This is exactly the application of the pwmgen, to avoid s/w pwmgen dither / speed resolution limitation. Since I agree that FPGA performance cannot be the issue here, I will pursue the recommendation of Andy Pugh to trace driver parameters - after checking the docs for raw mode invocation! pwm-test.ini Description: Binary data pwm-test.hal Description: Binary data -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Mesa 5i23 step rate limitation with concurrent pwmgen
On Mon, 11 Nov 2013, Hugh Wylie wrote: What symptom do you have? For example, irrespective of alternate commands G1 x50 Fr / G1 x0 Fr, where 100 = r = 2500, the joint accelerates smoothly to a maximum feedrate somewhere in the range of 170 - to be more precise, the reported step pulse interval of ~4ms (~250Hz), and eventually decelerates to the required end position. Varying steplen and stepspace have no effect (within reasonable bounds, of course - the pulse width is observed to reflect ini parameter value). The cap on joint step rate accordingly manifests in large to very large following errors, depending on the value of 's' - you will see that min_ferror is set to 50! What is your servo thread latency? I've seen pathological stepgen behaviour with poor servo thread latency Peter Wallace Mesa Electronics -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] Mesa 5i23 step rate limitation with concurrent pwmgen
Under this configuration, maximum step rate is limited to approximately 250Hz, while without 5i23 pwmgen invocation the 4 stepgens perform as expected (with good step rate headroom). That's rather odd. Is it the same with (for example) SVST8_4? This might require headers swapping. Can you enable raw mode and see if the driver it writing the correct step rates to 0x2000, 0x2004, 0x2008? (The addresses come from this file: http://git.linuxcnc.org/gitweb?p=hostmot2-firmware.git;a=blob;f=regmap;h=b3a 2a77c27de0c71278dc910992efeddd7deb577;hb=HEAD ) These steps will help to determine if the problem is in the driver code or the FPGA code. Gents, my apologies for wasting your time. When I began peeking HAL config I found that hm2_5i23 parameters were not as defined in the ini file, and by poking maxvel and maxaccel quickly confirmed there is not a problem on the 5i23, nor with driver parameter passing. Let's just say I don't recall overriding parameter passing between ini and hal configs by presetting fixed values for maxvel and maxaccel in the hal file! All now working as expected. -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - v1.1.1
On 09/11/2013 20:22, Bertho Stultiens wrote: On 11/09/2013 07:40 PM, alan wrote: I also think this is a good idea. To test it I have quickly rewritten my g-code wheels program see attached file. It currently works only for paths cut in XY plane using XY movements. I cannot check this but the axis path plot look ok. Nice pattern. I'll include it, but may alter the formulation of the code a bit (see below). I am really excited that the grammar performs this well :-) My setup is a rotary system so I need to convert all cartesian XYZ movements into polar R theta depth movements where rotation is around the Z axis. Instead of move emitting g1 X?? Y?? Z?? I need to emit g1 x?? C?? Z?? . I am not sure how to do this. I havent looked yet in detail at the source code . I would appreciate any help / suggestions you have for creating a polar version of the goto and move functions. The current gcmc version uses a 6-axis system XYZABC in the vectors to move/goto calls. Arcs only use XYZ. However, there is a bug that fails the output at the moment because the ABC axes are converted to mm and not to degrees. A fix is in git (and pushed to gitorious). To move in a XZC axis system, you have vectors that look like: vec = [x, -, z, -, -, c]; An additional fix is in the pipeline which includes a 9-axis system XYZABCUVW, where XYZ and UVW are distance based and ABC angular based (also pushed to gitorious). A few comments on the code. You write: function CreateWheel(r,s,p) { local w; w = [r,s,p]; return w; } It could be simply written as (faster at runtime): function CreateWheel(r,s,p) { return [r,s,p]; } FWIW, you do not need the function as such... You call it with explicit addressing as: wheels = {}; wheels[0] = CreateWheel(10,1,0); wheels[1] = CreateWheel(5,7,0); wheels[2] = CreateWheel(3.333,-17,90); I would have written: wheels = {}; wheels += { CreateWheel(10,1,0) }; wheels += { CreateWheel(5,7,0) }; wheels += { CreateWheel(3.333,-17,90) }; or wheels = { [10, 1, 0], [5, 7, 0], [3.333, -17, 90] }; Both alternatives have the advantage that you do not need to keep track of the indices yourself. However, the latter may be more difficult to understand. There are more ways to come to the same result. Thanks Bertho, I did originally write both parts as per your changes. But kept getting a compilation error. I cannot remember what the message was and it was probably because of something else. So made those changes and it all seemed to work . I probably inadvertantly fixed the real problem but not having written C in such a long time I am not sure what was wrong. Something not documented correctly (or not extensively enough) is the conversions of sin() arguments and to_XXX() functions. You do explicit radians conversion in CalcPoint() using to_rad(). If you have defined the angles from the start, then the conversions will be implicit in the grammar: wheels = { [10, 1, 0deg], [5, 7, 0deg], [3.333, -17, 90deg] }; ...and... CutPath(wheels, 0deg, 0.01deg, 360deg, cuttingdepth, svec); The sin(), cos() and tan() functions will internally convert from degrees to radians before calling the underlying system sin/cos/tan function. Didnt know about that thanks for the information Finally a comment about angles. I found when generating gcode in my own windows based program that I had to be careful with angles greater than 360. (This was before wrapped axes havent tried wrapped axes so dont know what will happen) . If I generated a path with multiple turns around the origin (easy to do with the wheels patterns), so that for example the polar coordinates (radius, angle,depth) of successive points was say (10,360,-1) then (12,10,-1) then (15,40,-1) in the same direction which for my setup is anticlockwise. Linuxcnc would get to 360 then do a clockwise move back to 10 ploughing a nice big path through the work and spoiling the pattern. So I have to generate positions (10,360,-1) (12,370,-1),(15,400,-1) to keep rotating in the same direction. So I keep a note of how many times the cutter crosses the x axis in an anticlockwise direction (the winding number) and use this to calculate the angle. If the cutter has a retrograde move and crosses the x in a clockwise direction I reduce this winding number. I mention this because generating polar coordinates is not quite so straightforward as cartesians. So even using your example below vec = [x, -, z, -, -, c]; There has to be some pre-processing. Can this be accomodated by your meta compiler? Just thinking about your explicit angle conversions mentioned above. Anyway keep up the good work, How far do you intend to take this structs? classes? Alan -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable
Re: [Emc-users] Way to control 6 axis robot, jerk limitation. Araisrobo?
Thank you all, especially Yishin, who helped me remotely. He had to call make clean and everything started to work (without sudo of course) Marius -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] gcmc - v1.1.1
On 11/11/2013 09:50 PM, alan wrote: I did originally write both parts as per your changes. But kept getting a compilation error. I cannot remember what the message was and it was probably because of something else. So made those changes and it all seemed to work . I probably inadvertantly fixed the real problem but not having written C in such a long time I am not sure what was wrong. Yes, the error was probably hitting the mm/deg conversion bug. That should be fixed in version 1.2.0, which I released earlier today. I am happy to fix any bugs you encounter as long as I get an example that triggers it. Anyone who is not versed in C may prefer not to delve into the code and I am just as happy to receive examples, comments and suggestions. My background is EE/CS, so my strengths are more in the computer stuff than the mechanics. The sin(), cos() and tan() functions will internally convert from degrees to radians before calling the underlying system sin/cos/tan function. Didnt know about that thanks for the information Yeah, the automatic conversion of units was one of my original design parameters of the language. I have had so many problems and stupid errors when doing it manually that I considered it to be a requirement. Finally a comment about angles. I found when generating gcode in my own windows based program that I had to be careful with angles greater than 360. (This was before wrapped axes havent tried wrapped axes so dont know what will happen) . If I generated a path with multiple turns around the origin (easy to do with the wheels patterns), so that for example the polar coordinates (radius, angle,depth) of successive points was say (10,360,-1) then (12,10,-1) then (15,40,-1) in the same direction which for my setup is anticlockwise. Linuxcnc would get to 360 then do a clockwise move back to 10 ploughing a nice big path through the work and spoiling the pattern. So I have to generate positions (10,360,-1) (12,370,-1),(15,400,-1) to keep rotating in the same direction. So I keep a note of how many times the cutter crosses the x axis in an anticlockwise direction (the winding number) and use this to calculate the angle. If the cutter has a retrograde move and crosses the x in a clockwise direction I reduce this winding number. I do not use any modulo or other alteration in the coordinates, polar or Cartesian (expect for unit conversion and relative output option). You are absolutely right that 361 degrees and -1 degree are not the same in terms of machining as it encodes directional information. Also, as you correctly comment, 0, 360 and 720 degrees are distinct separate positions, considering the winding of the axis. I actually do not know how LinuxCNC handles this because I never /used/ a mill with a rotational axis, but my guess is that it does not do some modulo or other stupid stuff... I had some consideration about the angular axes, but decided quite early on that the user-program had to decide the actual magnitude and not some mathematical idea of modulo calculus. I mention this because generating polar coordinates is not quite so straightforward as cartesians. So even using your example below vec = [x, -, z, -, -, c]; I agree. Polar coordinate systems are much harder to use than Cartesian. Especially because there is no general agreement on where which rotational axis is mounted. Some may be on the mill's spindle (robotic finger-joints), while others are part of the X or Y axis. I have been pondering some generalizations, but have not come to any result that could be used. However, the example is still reasonably easy to handle. The trick lies in the use of undef values in the vectors. The rules for undef are such that simple operations have predictable result. With the addition of shifts ( and ) in the new 1.2.0 it should even be easier to handle coordinate subsets. But still, you need to keep track while writing the program. There has to be some pre-processing. Can this be accomodated by your meta compiler? Just thinking about your explicit angle conversions mentioned above. I have no plans of doing pre-processing at this moment. I do have some considerations of defining values on the command-line, which then can be used in the program. But I have not yet decided how to handle that. You can always use the C-pre-processor as a front-end, which is a text-substitution processor. Anyway, if you have some ideas for pre-processing, let me know and we'll debate the issue. Anyway keep up the good work, How far do you intend to take this structs? classes? I'll take gcmc as far as is necessary for replacing manual gcode programming. The sky is the limit :-) Classes... no plans at all. It is not an Object Oriented mill I try to control. There would be some few cases where it /might/ be useful, but my intuition tells me that the complexity of OO is a bad fit for a mill or a lathe. Structs, that is another case. I have been