-
Notifications
You must be signed in to change notification settings - Fork 120
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Thread to shoulder, custom thread, multi-start threads (and menu to use). #232
base: master
Are you sure you want to change the base?
Conversation
…traction added to config..
…e values as threading.
…read mode. + key can be used to move to start of thread.
…power state added to config)
…sed when it shouldn't be).
…lder' whilst at shoulder.
kwackers Thank you for this. I am very excited to try it. I stopped using this interface and went with an import setup just to get this feature so thanks a ton! Pardon my ignorance in understanding. Will math be required to thread imperial or will it have the option to choose imperial or metric? |
The imperial/metric works exactly as before so just select your thread pitch before you start 'thread to shoulder'. If however you use the 'custom thread' mode I also added then that only allows you to enter metric values in which case if you needed a custom imperial thread then you'd have to calculate the metric equivalent. |
This PR and its associated repository are why I finally ordered all the parts for the ELS. ❤️ |
Yeah I hope this seriously gets considered for merge. This missing feature is why I went with a nanoels h2 instead. Quick question, why is stopping the spindle before retracting a requirement? |
Main reason is laziness. So it can be done but I stopped at the point it was functional. Perhaps I'll take a look if I get some spare time. |
Honestly I have it a try on nanoels, and just leave it up to the closed
loop stepper. The driver takes care of overspending and getting back into
the right position, and I just need to leave enough lead-in before the
thread.
…On Mon., Apr. 10, 2023, 14:19 Steve Ward, ***@***.***> wrote:
Yeah I hope this seriously gets considered for merge. This missing feature
is why I went with a nanoels h2 instead. Quick question, why is stopping
the spindle before retracting a requirement?
Main reason is laziness.
I've considered changing it so it doesn't have to but I'd need to
accelerate the carriage whilst simultaneously trying to get into sync.
In fact if you manually turn the spindle whilst it's retracting then it
essentially has to do this anyway.
The difference is that manually you'll be rotating fairly slowly so
there's no abrupt change in speed required.
So it can be done but I stopped at the point it was functional. Perhaps
I'll take a look if I get some spare time.
—
Reply to this email directly, view it on GitHub
<#232 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABMZQGSD43DZ3ZKH2VZG4RTXARMMBANCNFSM6AAAAAARQEPN5U>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
You can try it easily enough with a closed loop stepper - there's just a state machine in Userinterface.cpp that sits and waits for the spindle to stop before progressing - if you didn't do that... |
I have a servo and I'm happy to experiment with this in a few weeks, after I finish building and installing the hardware. Additionally, @clough42 if you don't want to merge this PR as it stands because it changes the base config, I'd be happy to help by making a rebased version that separates out the features from config changes. I have an imperial lead screw and I cut mostly metric threads, so I have to keep the half nut engaged from the moment I start cutting threads to the time I'm done, including moving the carriage away from the part if I need to do a test fit. So I'm motivated to help out here. ☺ |
One thing that did occur to me is if you don't stop the spindle then it'll move back to the start position and immediately start cutting the next pass of the thread. So you probably need it to wait at the start position and get it to ask you to engage the cutter. |
It needs to wait for something ☺ Easiest thing is to just have it wait for + again. |
I would love that if so. |
Nope, absolutely do whatever you think necessary. Just remember the old "programmers rule". |
Finally got it working! |
Not sure why it would lose sync assuming it's working correctly for normal threading use. It would be a bit weird for it only to happen to you. |
Hi Kwakers, thank you for answering, could it be that it’s loosing steps as retracting? I’m testing at low speed, 42rpm. |
Folks, pardon my annoyance, what's the latest status on this? I would love to have this functionality, but I don't want to lose all the fixes and updates in the James' latest official firmware. Would it be possible to rebase it onto the head? |
At the moment the fork at https://github.com/kwackers/electronic-leadscrew is ahead of James's version which means it includes all the fixes and updates in his. Whether it'll ever be rebased into the head who knows. Worse case he updates the current version with new stuff in which case you can always re-flash the firmware to his version. |
Ah, that's right, sorry, I didn't notice that :) ok then, off we go, thank you! |
|
Hi blackfister, not sure why you would lose positing when you cut a thread - if you don't actually make the cut do you still lose position? To exit just press power once (in any of the modes I've added pressing power once behaves like a cancel button, press it again to power off). |
Everything is working excellent! |
Do you guys know of any video showing this ELS with thread-to-shoulder function? I'd love to see how it works. |
I've added a menu system selected by the 'Set' button, when activated you can step through the current (three) options using the '+' & '-' keys. A further press of 'Set' selects that menu item. If no button is pressed the menu will time out after a few seconds.
Whilst I've broadly followed the coding style it's probably drifted in a few places and may not exactly follow the intended design exactly. It would be fairly easy for me to make any required changes if so desired.
A quick synopsis of the functionality.
The three options are "Custom Thread", "Thread to Shoulder" & "Position".
Position is a simple utility that swaps RPM for angular position of the spindle.
Custom Thread, shows a metric thread with the first digit flashing. You can change this using the '+' & '-' buttons and press 'Set' to move on to the next digit. When all digits have been entered the entered pitch will be the current one.
At any point during this process pressing 'Pwr' once will exit (but the displayed value will be used as the current pitch).
Shoulder allows threading to a shoulder (and multi-start threads).
It first queries for the number of starts (1-9) the default value of 1 is a standard single start thread.
Next it queries for the shoulder position, move the carriage to the final position for the shoulder and engage the half nuts if not already engaged (these must remain engaged for the duration of the thread).
Press 'Set' to set the shoulder position.
Next it queries for the start position, move the carriage to the start by rotating the spindle.
Once at the start press 'Set' to set the start.
It now enters the threading loop showing 'Begin n.x' where 'n' is the start and x is the number of starts on the thread (these will index each time through the loop). For a standard single start thread this will simply remain at 1.1.
Cut the thread as normal and the carriage will automatically stop at the shoulder.
It will now display "Stop" and wait for the spindle to be stopped.
Next it display "Retract" - retract the tool from the work and press either '+' or 'Set', this will cause the carriage to move back to the start (actually slightly past in order to sync the spindle and carriage).
At this point the display will show "Begin n.x" and we can repeat the process to cut the next pass / start.
Press 'Pwr' once to exit the mode at any point.
One further change allows the brightness of the display to be set when in power off state using the '+' & '-' buttons.
I did consider adding a menu item for this but it seems like unnecessary clutter and mine always starts in this state anyway.