UC300Eth Rigid Tapping Issues - (Mach3 v3.043.062)

If you think you've found a bug post it here.

UC300Eth Rigid Tapping Issues - (Mach3 v3.043.062)

Postby Olivier-CNC » Mon Apr 28, 2025 8:30 am

I was able to start testing Rigid Tapping on my mill using Mach3 v3.043.062 and latest CNCDrive Plugin 1.022. I'm especially interested by other people and CNCDrive reports and feedback here, because i was not able to find any precise information on this subject on Internet.

I did wire an incremental 250 PPR quadrature encoder (A,B,Z) on the UC300Eth // port #1 pins 2,3,4.
Then i did set the parameters for it in the UC300ETH plugin setup screen. I did use 250 PPR, the right Pins for A and B, and Index Prescale = 1.
I did set the parameter for Z Index inside Mach3 input pins setup screen. (i was surprise to see that this setting was inside Mach3, not in the UC300Eth plugin, seems like the index is not managed physically by the UC300Eth controller. This mean probably that Mach3 receive this signal and send the "start sync mode" information to the plugin from there. This mean that there is possibly an inconsistent delay because communication between Mach3 and the Plugin through Ethernet is asynchronous, resulting in a different start phase if the same Tapping is redo. But let's forget this secondary problem for now).

I did check that A,B, and Z signals where fully ok (electrical shapes and levels using a scope, and checks in the plugin input states slowly turning the encoder by hand).
I did check as well that the Index signal was properly received by Mach3.
Everything was ok.


Next, starting the tests, i did face 4 problems :

1) The most important one, and strangest, is that the plugin did not want to switch to "Sync. Thread" mode using the CNCDrive mach3 Rigid Tapping macro, M84.m1s :

Code: Select all
SetUserDRO(1200, Param1())   'P parameter = Z end
SetUserDRO(1201, Param2())   'Q parameter = pitch
NotifyPlugins(10200)      'Load parameter
SetUserDRO(1202, 0)         'Start Rigid tapping
While(GetUserDRO(1202) = 0)   'Wait for finish rigid tapping
   Sleep(50)
   NotifyPlugins(10201)
Wend 


For testing, i did use P=-3, Q=1. And was starting the macro with Z axis at 0 position.

After many tries, i was not able to get the sync mode. Then i had the idea to perform a Mach3 G84 rigid tapping cycle, and boom ! Surprisingly, after executing this (and cancelling it with a G80), the sync mode on the UC300Eth was available for the M84 macro.

Seems like the plugin never switch to sync thread mode, except if a G84 Rigid Tapping cycle has not been started before.
I had now a working sync Thread Sync mode on the UC300Eth.

The solution for this problem : perform a Rigid Tapping cycle G84, followed by a G80 to cancel it, after each Mach3 restart, to enable Sync mode availability on the UC300Eth.


2) The Pitch is for times the requested pitch :


When requesting M84 P-3 Q1, i should get 1mm of travel on the Z axis for one encoder turn. But strangely i get 4mm travel. As said before, i'm using a 250 PPR encoder, and the UC300 plugin is set to 250 PPR.
Seems like the UC300 is behaving like if there was a 1000 PPR connected encoder.
Then i did recheck my encoder output, measuring the count of pulses for each turn, and i can confirm that for each A and B channel, the count is 250 pulses, like indicated on the encoder label.

Seems like the UC300 is counting rising and falling fronts on each channel for more precision, (something that is doable inside a FPGA counter). The result is that with a 250 PPR setting inside the plugin, i get 4 times the requested pitch.

The solution was to divide by 4 the requested pitch inside the M84 macro :

Code: Select all
SetUserDRO(1201, Param2() / 4)   'Q parameter = pitch


Another better solution would have been to use 1000 PPR in the UC300 plugin setup screen, but this is not possible, the maximum value is 999 PPR.

3) The reported Spindle Speed inside Mach3 is for times the real speed.

This problem is linked to the precedent one. The UC300 plugin is counting each rising and each falling front of each A and B encoder channels, resulting in for times the encoder channel frequency.

The solution here is quite simple, in the UC300 plugin Setup screen, put an Index Prescale = 4.

4) More importantly the P parameter does not seem to work.

Regardless what i try, the P parameter does not seem to have any effect. Then i did check that the macro did receive correctly this parameter, displaying it with a MsgBox command from the macro, that was ok.

I suppose that with P=-3, the plugin should stop and reverse the spindle at Z=-3. But that never happen.

In fact the UC300 plugin does not seem to control the spindle ?

I suppose that this is a bug, the spindle stop, CW and CCW commands should be managed from the plugin when a M84 macro is performed, if not there is no usefulness for the P parameter.

As a side note, i did try to run the M84 macro with a previously rotating spindle, but that does not help, spindle reverse at Z=-3 never occur.


I'm really interested to know what other Mach3 users (or CNCDrive testers), using Rigid Tapping and the UC300 1.022 plugin did find during their tests and if they were able to get a working Rigid Tapping macro.

Thanks for helping.
Olivier-CNC
 
Posts: 13
Joined: Sat Jun 25, 2022 2:43 pm

Re: UC300Eth Rigid Tapping Issues - (Mach3 v3.043.062)

Postby cncdrive » Mon Apr 28, 2025 10:59 am

1.) Unfortunately syncronous operations like thread cutting and rigid tapping are pretty buggy in the Mach3 plugin interface.
Maybe try to install a different version of Mach3. Or better upgrade to UCCNC. :)

2.) This is probably because the UC300ETH is interpolating the encoder in 4X mode reading both A and B channel's rising and falling edges, so with a 250 PPR encoder it will give you 1000 CPR.

3.) Same reason as for point 2.

4.) We will have to check this.
cncdrive
Site Admin
 
Posts: 5163
Joined: Tue Aug 12, 2014 11:17 pm

Re: UC300Eth Rigid Tapping Issues - (Mach3 v3.043.062)

Postby Olivier-CNC » Mon Apr 28, 2025 10:32 pm

cncdrive wrote:1.) Unfortunately syncronous operations like thread cutting and rigid tapping are pretty buggy in the Mach3 plugin interface.
Maybe try to install a different version of Mach3. Or better upgrade to UCCNC. :)

2.) This is probably because the UC300ETH is interpolating the encoder in 4X mode reading both A and B channel's rising and falling edges, so with a 250 PPR encoder it will give you 1000 CPR.

3.) Same reason as for point 2.

4.) We will have to check this.


Thanks CNCDrive, let me know if you need help or reports for testing this, i will be happy to do it.

2) Yes probably, for sure 250 PPR translate to 1000 CPR for a quadrature encoder if all edges of both channels (rising and falling) are read). This is probably quite easy to correct in the FPGA and / or Plugin code.
3) Yes same reason for sure.

4) I will be grateful if you can correct the small things that does not work in the Mach3 UC300 sync mode. Does not seem like a great deal according to what i've seen. Most of the work has been done and raw syncing basically works very reliably.

I will stay on Mach3 v3.043.062 that is probably the most tested and more reliable version. At the end of the Mach3 story, me and other lead testers did try to push a couple new things inside Mach3 just a few weeks before Art retirement. This translated to Mach3 version v3.043.066 (and even v3.043.067). But those very latest versions were not tested enough, and have a few problems that i did personally face, mainly inside macros. I simply cannot use those latest versions because of that.

As you know (perhaps) i did invest a lot of time in Mach3 development (i was one of the lead tester for Mill), to make it more reliable and to integrate some (i think good) ideas and corrections i had. I did convince Art and others to integrate Modbus as well for low cost integration of tool changers, part loaders or other PLC controlled accessories. I spent some time to test Modbdus, mainly with Peter Homann that did design the MOD I/O board, that was the first Modbus device dedicated to Mach3.

The Mach3 story was a lot of fun for us testers and contributors, and at the same time it did trig a lot of good business for third party manufacturers that did provide an advanced pulse engine or other components to work more efficiently with Mach3. CNCDrive was one of them.

I know that UCCNC is more reliable since years and better finished than Mach3, i have a licence for it and i did try it, but i spent so many hours on Mach3, and on my Mill with the ModBus ATC, that i cannot simply switch to another software. This will ask too much time that i don't have actually. I'm quite efficient with Mach3, one of the reason is that i did design a set of screens, macros, and wizards. More Mach3 has still some interesting things inside it, for advanced users.

Then i will be grateful if you can finish the probably small remaining work on Mach3 UC300 Rigid Tapping, the same as you can probably be grateful for all the (hard) work we did on Mach3 :)

You will find my name in the Mach3 Special Greatings inside the Mach3 about screen.

Olivier ADLER.
Olivier-CNC
 
Posts: 13
Joined: Sat Jun 25, 2022 2:43 pm


Return to Report a bug

Who is online

Users browsing this forum: No registered users and 9 guests