Fast Hole EDM from Hacked Parts

More
09 Nov 2024 01:26 #314103 by IronManDylan
Hi all, 


I apologize for the delay. I have been busy with this and another project. 

So the new rackrobo does have a way of modulating power output.  I was able to get my hands on a power supply at no cost to me. They are having some issues but it seems like the probability of an issue occurring is still pretty small.  If I do have issues I'll look at swapping the power supply. 

Yes I imagine sinker would draw a lot more power then wire and especially hole drilling. 


As far as linuxCNC control of EDM. Does anyone know if the ones like tommy was showing are using reverse feed rate and short detection?  It seems like it wouldn't be too difficult to pause the program when a short is detected, but does anyone know if it is possible to get reverse feed to pull out of the short and then reengage? I know this is how professional machines operate and I would think someone has figured out how to do this with LinuxCNC...  Any LinuxCNC wizards out there know how to do this?


Best,
-Dylan

Please Log in or Create an account to join the conversation.

More
09 Nov 2024 19:15 - 09 Nov 2024 19:16 #314138 by Aciera
Yes, reverse feed is possible and also used in EDM machines that use linuxcnc,

 
Attachments:
Last edit: 09 Nov 2024 19:16 by Aciera.

Please Log in or Create an account to join the conversation.

More
17 Nov 2024 02:10 #314635 by IronManDylan
Hi Aciera,

Thank you for the response and sorry again for the delay.  

I am glad to hear that motion.adaptive-feed is available and useful for what I am trying to do.  I have a couple questions. First, and more basically, how do I turn on motion.adaptive-feed? I found some info on the "motion" page, but it doesn't seem to show how to manipulate it.  Is it on the .ini file? 

Second, and more specifically, how would I get the machine to move backwards, but only when it is sensing a short.  There is an output from the EDM power supply that goes either high or low (I am not sure which) when the supply senses a short. Probably what I want is when a short is detected for the machine to move back a specific amount (in either distance or time) to make sure the short is completely gone before reengaging. The other option is simply to reverse feedrate until the short is no longer detected and then proceed with forward motion.  

I have no idea where to even begin to program this though... :/

Best,
-Dylan

Please Log in or Create an account to join the conversation.

More
17 Nov 2024 08:10 - 17 Nov 2024 08:19 #314646 by Aciera
1. 'M52 P1' enables adaptive feed while 'M52 P0' disables it

2. you would bring that EDM output into HAL and create a logic that outputs a float value to the 'motion.adaptive-feed' pin. eg output some negative value if a short is detected and output 1.0 if no short is detected. That could be done using a mux2 component.

[Edit]
The range for the 'motion.adaptive-feed' pin in version 2.9 is -1..1.
In  master this has recently been expanded to  -MAX_FEED_OVERRIDE .. MAX_FEED_OVERRIDE  (As defined in the [DISPLAY] section of the ini file)  
Last edit: 17 Nov 2024 08:19 by Aciera.

Please Log in or Create an account to join the conversation.

More
19 Nov 2024 01:09 #314815 by IronManDylan
Aciera,

Thanks for the response. 


First and unfortunately, I told you wrong.  The Powercore is not outputting a HIGH or LOW signal but a PWM signal.  Here is a excerpt from the GitHub:

“The Powercore V2.0 provides digital telemetry on the spark ignition rate via the ALRT port. The spark ignition rate, defined as the ratio of 'observed discharges' to 'possible discharges'. The spark ignition rate is a key indicator of feedrate efficiency. A low rate suggests the feedrate can be increased, while a high rate indicates an excessive feedrate or a short circuit. Telemetry is reported as a PWM duty cycle, which can be read by a control board or microcontroller. This port enables closed-loop feedrate control, ensuring optimal material removal. An ignition rate of approximately 80% has been observed to be optimal.”

Here is the link as well: github.com/Rack-Robotics/Powercore-V2.0


So I have a few thoughts.  First is hardware compatibility.  My machine is running on a Mesa 7I96S and a 7I85S.  The 7I85S is essentially unused right now. I am looking through the technical documents and it seems like the 7I85S has ports that can be designed as PWM output ports.  I am not sure if they can be configured for input though.  Perhaps you would know?  There are also a bunch of unused IO ports on both boards, but the technical documents don’t specify if those ports can be used for analog/PWM.  The Powercore also doesn’t specify what the voltage would be at 100% duty cycle so I am wondering if it will be compatible with the Mesa in that regard.  I suppose if the Powercore is opporating at 3.3v and the Mesa is operating at 5v for example, a multiplier could be added to the input. But if the voltages are reversed there could be an issue of overwhelming the Mesa or damaging it. 

If the Mesa does not have a PWM input, it seems like the next option would be to use something like an arduino to interpret the PWM signal from the Powercore and then talk to the Mesa via serial communication.  This sounds like a can of worms…


Second, software.  'M52 P1’.  Does this need to go into the main hal file? I assumed I would find 'M52 P0' somewhere but I did not.  So maybe it is currently on the default for my machine..  My machine is called the hackbot. So it would go somewhere inside the hackbot_srt.hal file? And then would the float variable go into this file as well? Plus whatever logic/code needs to be written to account for the above info from the GitHub (changing the federate based on PWM)?  Sorry, I can talk hardware all day long but software I am slow with.. 

Third, interface.  It would be really awesome to have a widget or something on the GUI that shows the PWM spark rate.  This is obviously not necessary but it would be very classy.  I have no idea how to do this… 

Also, it would be very cool to have the machine responding to the PWM and updating the feedrate to keep things at the perfect 80% duty cycle.  But if this is too challenging, it could be kept at default federate unless duty cycle goes over some limit (maybe 95%) then federate is briefly reversed. This would also make control via an arduino (or something else) easier as the arduino can just output a high or low which will avoid serial communication…


Thank you for the help. 

Best,
-Dylan

Please Log in or Create an account to join the conversation.

More
19 Nov 2024 07:07 - 19 Nov 2024 07:40 #314824 by Aciera
Not sure about the analog input of your MESA hardware but it might be possible to use a MESA THCAD board which converts DC voltage to frequency and connects to an encoder input. But you would need to check if it is suitable for 3.3V

'M52 Pn' is Gcode so it would have to go into the Gcode program or be issued as an MDI command.

once you have the voltage (or frequency ) in HAL you can do all kinds of things including a PID loop to control the feedrate also a GUI panel should be trivial then.
Last edit: 19 Nov 2024 07:40 by Aciera.

Please Log in or Create an account to join the conversation.

Time to create page: 0.085 seconds
Powered by Kunena Forum