Hello, I was reading up on the features and capabilities of GRBL and saw a note that said GRBL cannot handle rotational axes (yet)... I want to attempt to build a device that will take a piece of wire and spin it then as it spins, coil some other wire onto that core wire ... i want to build vape coils with this device... Would the "No rotation axes" limitation of grbl mean that it would not be useful to me in this project? Thank you, Mike
It has no current way of defining motion in terms of angles, which isn't much use for rotary machining. For this purpose, you could just as easily define your "steps per mm" such that a convenient number (say, like 1, or 10, or 360) was one revolution, and then simply program your G-Code in base ten revolutions or degrees or whatever. Grbl will still interpret it as mm, but you'd have it configured that it produced the results you intended. For example. You leave the driver at full steps, 200 steps/rev. You want to program a simple integer number of turns. If you set your Z (most logical spindle axis to use here, kinda) $102=200, then if you tell it "move 1mm", it moves one revolution. So a simple G1 Z5 F600 command would turn the spindle 5 times at ten revs per second. Your coil would be wound in half a second (plus acceleration times). Obviously you would also move your wire feeding axis in that same line for simultaneous motion, but you get the idea. Say you want precise partial turns for precision resistance calibration. You do 8x microstepping on the driver for 1600 steps per rev (a good point to get precision without too much torque loss). You want to program in degrees! So as far as grbl is concerned, you need it to believe that 1600 steps is 360mm - so that if you put in a G1 Z360 command, grbl would think it's moving over a foot, but actually it's just one turn. So you'd put in $102=4.444, and hey presto, you now program in degrees. A G1 Z1878 F960000 would turn the spindle 5 times, plus 78 degrees, again at 600rpm. (Assuming my math is right) Grbl has some upper stepping limitations- about 30kHz, I think, so the more you microstep it the slower you have to drive it, but for this type of usage with short runs and frequent stops, it wouldn't be an issue. Just figuring out exactly how you want to trick it.
Thank you Rob ... that was a thorough response ... and one day I hope I can come back and re-read it and actually comprehend all of it... So here are some functions that I would like to do that would make this project extremely valuable... and the way I'm envisioning this device in my head is to use two steppers, one of them spins a piece of wire that is fastened to a clip that is clinging onto a bearing allowing it to spin then off to one side there is very small gauge wire being "spooled" onto the main wire and as it feeds, another stepper very slowly yet very precisely turns a piece of all thread or something that causes the wire off to the side to move down the main wire ... and it would be advantageous to do things like have the slow stepper (micro stepping) having the feeder wire move down the main wire at a rate that would cause the winding to have a gap in the winding equal to the diameter of the wire being wound ... we call that "staggering" in the vape coil world ... I understand what you're saying "make the code think its doing whatever" - yet ending up getting the result I need... and that makes total sense to me as I code in java quite often and have coded in various different languages since the 80's ... i've only briefly looked at g-code when I got into 3d printing but i know little to nothing about it other than its purpose. I'm good with electronics and Arduino's ... been messing with those for a few years now ... and my first degree was in electronics so im good on that end ... but when it comes to CNC and thinking in those terms, this is new ground for me. Any advice on where I can read up and get the knowledge i need to make this happen would be much appreciated. Thanks again for taking the time to reply. Mike
You'd be designing and building your own machine, and programming it manually- so some general understanding of hobbyist CNC machines and how they work would be required- belts, screws, pulleys, steppers, all that good stuff. I wrote a thread on it five years ago, which needs some updating and corrections, but it's somewhere to start to get a grasp on the "moving stuff" The Big Thread O' Linear Motion In terms of tricking grbl, just read the grbl wiki. How it works, how it interprets gcode, how it calibrates the machine, everything. No time is ever wasted reading the grbl wiki, it's great. What you're basically making is a lathe. You have a motor driving a spindle, probably by belt but maybe direct drive, and a carriage holding a wire feeding mechanism that's likely driven by screw. Looking at it from that angle will probably help.
Thanks for posting the reference to The Big Thread O' Linear Motion. I hadn't seen that thread so far and it is a very useful summary to fill in the rather large gaps in my linear motion knowledge. Cheers Adam PS Is it possible to move it to the resources section of the forum to make it easier to find? I'm sure lots of new users like me would find it helpful.