PLJack/Daniel:
The development of the G-code interpreter is exciting, but I have one question: If the toolpaths are running down the center of the tracks, won't that leave copper everywhere but where we want it? Drilling holes seems pretty easy (just a set of XY coordinates to plunge into), but don't we need to interpret trackwidths and compute an outline to cut?
-dave
Correct.
I have been meaning to mention this before.
The reason I am working so hard on the plotting side of the software is an exersize to prove the parser (and programmer) are working correctly.
If I can't plot the G-Codes then I have no chance of telling the SX what to do.
Dave Paton said...
Drilling holes seems pretty easy (just a set of XY coordinates to plunge into), but don't we need to interpret trackwidths and compute an outline to cut?
-dave
Once I feel the parser is rock solid I will start working on inverse milling.
With a powerfull (and custom) parser the sky is the limit.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- - - PLJack - - -
Perfection in design is not achieved when there is nothing left to add. It is achieved when there is nothing left to take away.
I would like to share some thoughts about this project.
I have gone a bit off the idea of milling pc boards. Actually that would be a mc board.
Having said that, do not MISUNDERSTAND me. This machine "will" make pc boards. No doubt about it.
It is just the more I think about it the more it seems like a pretty violent way to make traces on copper.
If I had this machine in front of me right now I would stick a resist pen in the chuck and have it draw me a beautiful pc board. Then chemically etch it. Then place it back into the mill to drill holes.
Let me repeat. I have not gone off writing the software to mill traces. Just gone off the idea of milling them myself.
What really excites me is the versatility of such a machine. If we can get a working model in front of tons of people I bet they will do things with it we just never imagined.
As for getting the project going, some more thoughts.
We need a testing circuit. In other words a "mill" proto board.
Something anyone can build and thus become beta testers of the software and hardware.
For instance. I don't have any stepper motors. It would be nice if I had the serial side of the motor control.
Basically a MAX chip, and some LEDs to represent the steppers.
Yes, I could whip one up but I'm thinking of an "official" testing circuit so that everyone is working with the same hardware and software.
Bean and myself need to use the above board to develop the PC to SX protocol.
Bean IS going to need the actual stepper motors for development. If he does not have any then maybe we should hunt down some company to donate them. It would be a good thing for a company to have this mill designed with motors they have in stock. If you know what I mean.
So those of you that can't contribute technically and have experience at this kind of thing, now is your chance.
Someone needs to actually build one of these machines in order to develop the software.
I can only go so far before the software needs real life testing.
It would all go faster by a factor of 100 if I build one first. I may just have to bite the bullet and drop the cash on it.
As for development time of the software I just can't say right now. At the moment I try to work on it every night.
At this point I think our immediate goals are:
For me to finish the G-code parser and plotter.
Work out the Desktop Motion Control protocol. (DMC) (What'a ya think?)
Design the mill proto board.
Get three steppers moving reliably. I just had a thought. How about placing three steppers side by side. Print out three X Y Z gauged paper disks (0-100) that we can attached to the shaft of each stepper. That way anyone could beta test the system. If the command is to move 40 clicks along Z then the disk would move to number 40.
I'm babbling now.
Off to work on the software.
Wish me luck.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- - - PLJack - - -
Perfection in design is not achieved when there is nothing left to add. It is achieved when there is nothing left to take away.
I'm able to write the SX software and design and layout a stepper control board with the SX on it.
But as Jack has said we are going to need a table with steppers pretty soon.
If anyone wants to be involved, but doesn't have the technical ability, this would be THE way to help.
I would think SOME company would want to get in on this project considering the amount of activity we have.
I wonder if the powers-that-be would consider giving this it's own forum ? It would be easier than one huge thread.
Bean.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"SX-Video·Module" Now available from Parallax for only $28.95
Regarding the unit "remembering" where it was during a previous session, to me seems of little value. The machine cannot be GUARANTEED to be where it was when a previous session ended; while the power was off, it could have been bumped or jarred or moved wilfully or accidentally, or just wear and tear. So in my opinion a mechanical "home" position is ABSOLUTELY required, and that said, then why not recalibrate (home) the machine (under computer control) on every power up....... so forget the "remembering".
Recalibrating a mechanical device to 0.001 is not a trivial task; switches, Hall sensors, an LED with a tiny hole all won't do it accurately and/or reliably enough. Since we do not plan to use encoders (which might have a sufficiently accurate "reference" pulse), the only practical way I see to perform this task is to do what most motion machine manufacturers do; a switch to get one "close" together with a mechanical "stop" on the lead screw or belt drive shaft. I am designing that feature into the mechanics because it is absolutely essential in order to reliably get .001 recalibration.
I have a small amount of stepper experience but no practical lead-screw driving experience; so let me ask this. Would it make sense to have one rough positioning sensor on the sliding carriage (or two, one at each end of travel) and a separate sensor on the shaft of the stepper itself? The stepper would drive the carriage until the carriage sensor indicated "close to home" then the stepper would continue stepping until its shaft sensor was set, with a resolution of a single step. This seems like it should be able to home the carriage, but I don't know what sort of backlash or play we'd expect to get from a leadscrew, or the bearings, etc. If we were to approach "home" from the same direction each time, might this achieve 0.001"?
I have a test frame with two stepper motors with controllers and a power supply. I've already driven both motors with a simple SX test program; as soon as we get some test code I'm ready to run it on some hardware (in my limited avalable time).
David, · Here is my code so far. There are lots of comments so I hope it makes sense. · Just change the demo values assigned to XMove and YMove at the label "Main:"
· All comments welcome...
P.S. Please download newer version posted on 7/22.
Bean. ·
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"SX-Video·Module" Now available from Parallax for only $28.95
What you describe is exactly the process I had in mind. The "end stop" can be implemented mechanically (a "hard crash") or electrically with a cam on the shaft. When I get the first unit built I will know which way to go.
By the way, my extrusion material has now arrived, so I need to move forward at full speed!! Good to see you guys pushing me. Hope I can find enough time.
Also, I have two X_Y stepper macnines with lead screws I can use to try out software. Included is a drive power supply and I have a variety of SX boards to accommodate code.
For those (Bean) writing low level SX code, can you please include for each axis two bits I can use to switch power supply voltage levels? As we accelerate we need more "jam", and when we decelerate that can be reduced to "normal". The other bit, off for full stop, would be used for just a "hold" current. Probably I will use 48 V during acceleration, 24 V for normal, and 5 V for idle hold. This way, heat dissipation will be kept to a minimum without sacrificing speed performance.
pjv said...
Recalibrating a mechanical device to 0.001 is not a trivial task; switches, Hall sensors, an LED with a tiny hole all won't do it accurately and/or reliably enough. Since we do not plan to use encoders (which might have a sufficiently accurate "reference" pulse), the only practical way I see to perform this task is to do what most motion machine manufacturers do; a switch to get one "close" together with a mechanical "stop" on the lead screw or belt drive shaft. I am designing that feature into the mechanics because it is absolutely essential in order to reliably get .001 recalibration.
[noparse][[/noparse]I have briefly reported this once, but it seemed good to do so again in this context.] David McNab describes another way of re-establishing the correlation between the workpiece and the machine, briefly on his web site (http://www.freenet.org.nz/cnc/), and in more detail in this messge in another group (http://groups.yahoo.com/group/Homebrew_PCBs/message/9725) that works well in practice, assuming that the any shifting of the work-piece does not require an axis to travel out-of-bounds.· He uses two points to establish the linkage between the workpiece and the machine frames-of-reference.· Three points may be even better, but necessarily more effort/complexity.
In any case, saving the part program line number where the process is interrupted, coupled with a means, either pvj's or newzed's, or even McNab's, allows one restart the part program at the point of interruption.· An important consideration, I suppose, for the hobbiest.
For those unfamilier with the homing process for a machine axis, I'll share what I've come to expect.· Basically homing is the process of finding a specific position on the axis' range of motion, and equating that position with a specific measurement in the user's frame-of-reference.· Let's say that for the X-Axis, the homing switch is set to trip when the measurement should read 10 mm.· The typical mechanical process of finding the home spot is multi-step one that eliminates back-lash as a variable:
seek the homing switch closure at a modest speed (always seek in the same direction, hence the reason that the homing switch is typically at one end of the axis' range of travel).
stop the axis when the switch closes.
reverse the axis at a slower speed, run until the switch opens.
at an much lower speed, again approach the switch.
if the system does not have a encoder with marker pulse, stop the axis upon detecting the switch closure.
if the system sports an encoder with a marker pulse, continue after the switch closure until the marker pulse is detected.
this position (or measurement) is the home positon, and is assigned the axis measurement value (in this example) of 10mm.
Using a final very slow speed for the final home approach allows pretty good repeatability and accuracy along the length of the axis.· When present, the marker pulse allows one to get not only linear position, but to also get to an exact point of rotation of the motor-spindle.
I have seen cases where one of the over-travel limit switches was also used as a homing switch. In this case, the machines overall response to limit switch tripping must be completely within software control, not part of a E-Stop or other·type of hardwired·circuit.· For machines without absolute encoders, the homing switch is a typically a third limit switch on the axis.
pjv said... ·a switch to get one "close" together with a mechanical "stop" on the lead screw or belt drive shaft. I am designing that feature into the mechanics ...
Would you also consider provisioning, but not necessarily placing, space/mountings for overtravel switches of some sort for each axis?·
I'd find them useful in the event of applying servos instead of steppers.
I'd find them especially useful to allow software to gracefully accomodate reaching end of travel.· Without feedback, a stepper would otherwise just·stall against·the stop, and the controller would assume continued faithful-to-command motion.· In my mind, the difference is a possibly salvagable workpiece vs. a virtually guarenteed destroyed workpiece.
Oh, absolutely we need over-travel detection at both extremes of each axis. This can probably be readily dealt with by each builder's own requirements. Obviously, the standard "kits" to be handled by Parallax will have these provided.
Have you considered using a periodic interrupt to strobe out the stepper phases; the balance of the interrupt can then calculate the next step's phases.
This would allow trival accel/decel and feedrate management--just change the apparent interrupt period.
If·the·interrupt will also be used to bit-bang the serial comms, that process' apparent interrupt period will need to be invariant.
Daniel, · I'm sure we will end-up with an interrupt routine, but I just wanted to get something working. · Also I plan to move to the SX48 or SX52 protoboard as we run out of I/O's and probably need the larger memory space.
P.S. Can someone (Sid) tell me what a reasonable "steps per second" value is for an X-Y table with a typical stepper motor.
Bean.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"SX-Video·Module" Now available from Parallax for only $28.95
I'm glad I wasn't completely misunderstanding things. I agree wholly on the idea of a powerful parser. Writing a truly solid expression parser is tough, especially when it's got to be as versatile as yours. Mad props to you, as the kids say.
As far as the violence of milling copper, you're right. It's hard, loud, slow, and somewhat violent. The idea of a resist pen is promising, but I keep coming back to a UV laser diode and some fiber optic waveguides. Connect the diode drive to the spindle control, and draw the circuit on presensatized PCBs. Double sided-ness would get very easy with simple registration work. This is getting kind of exciting...again...
Daniel-
I like the idea of limit switches as well as home switches, not so much as position elements but as failsafes, just in case. I'd link them to some kind of hard shutdown, like an enable pin on the motor drives. I'd also probably put rubber bump stops at the hard ends of the axes travel, to keep from bending things in the event that something goes horribly wrong.
I close on my house in exactly 2 weeks, so I probably won't have a running shop again until the middle of September. By then I think I can probably start prototyping things, or maybe a little before. When we have motor driver designs figured out, I can begin layout any time.
-dave
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
This is not a sig. This is a duck. Quack.
Thought you might like to see my very first PC board.· A bit crude perhaps, but it is a functional board, so don't laugh. · Will hold 3 TIP120s. 3 resistors and pads for Stamp input and TIP output.· I'm quite pleased with the resolution - I was all over this board with my cutter, picking up cuts I couldn't make on the first pass, and when I told the program to go to a certain point it was always right on.· I went back and forth from left edge to right edge about five times.
OK - so the traces are .050 wide.· I had plenty of room and don't forget - this is the first PC board I have ever made.· We'll get better.
Total investment so far - about $339 -· $289 for the mill and about $50 for material to make the stepper mounting hardware.
I'd like to request the reservation of an input point for a probe.· Probing·would also require that the 3D coordinate be passed back to the front-end controller.
[noparse][[/noparse]Background: A probe is basically a switch closure when a stylus is driven into an object.· It allows the implementation of G31Probe Move and G32Probe Cycle.· One use is to place an object on the table, and have the machine probe it to derive a 3D map of its surface.]
A little input on the homing/ calibration issue. Since this is an open loop system ( no encoders to monitor shaft movement ), the chances of losing calibation during machining could happen. If the x or y axis get over-torqued during milling or a crash, the motors could miss steps, throwing the reference off. The easiest way to get the reference back is to use micro-switches at the home position, which is usually the user furthest degree of travel on both x and y in the plus direction of travel. These switches will also double as limits for plus direction, and there should be limit switches for the minus direction too. These switches have to be good quality, as so it trips exactly the same every time, as any variance will give a false value. This will be the true reference to the z axis, and will over-ride any discrepancy of stepper values when returning to the home position. A small initialization program can be performed at start up, to move the xy axis in and then back out to the homing switches to establish the axis reference, and this also eliminates the need to save the stepper positions at power down. I have seen other calibration being done by using a reference point on the table itself, then jogging the table until it is lined up with a pointer tool in the z axis. It takes time and is basically a pain to do, but makes the hardware simpler and cheaper. Also, for anyone constructing their own machine for fine milling, if you want .001 tolerance on the depth of the z axis, that means the positioning table itself has to be mechanically level to .001. So, unless you have the frame professionally machined, it might prove to be a problem. In other operations such as drilling or using a trace pen, it wouldn't be as critical. A software E-stop should be written in to the program also, if possible.
I mostly agree with you; let me reiterate my post of yesterday at 4:52;
"Home" switches by themselves are inadequate for reliably repeating 0.001 positioning, no matter how "good" a practical switch you get. Its trip point is generally not very repeatable, and it WILL change over time.
Therefore a double mechanism is required, a "coarse" switch to determine when we are in the last leadscrew rotation "home zone" plus one to detect single step resolution of the motor shaft. Often this second event is strictly a "hard" mechanical stop on the shaft that is repeatable.
I will be releasing the binaries, not the source code.
I don't release code as a policy.
OK, I hope I am not giving too much critics here, but I think this could be a little problem in the long run.
If only the binaries are released, we're always at the mercy of PLJack if someone wants to tweak the system to do something special.
The project is supposed to be a community project, so I was under the impression that it would also be possible to change the software if the need was there.
(every member of the community having the possibility to pick up the software and make some modifications if necessary)
If only the binaries are released I don't see it happening that alot of people customize the software to meet their own needs.
Again, maybe I'm completely wrong about this issue but·I would like to see some comments from other people on this list.
What's your idea about not releasing the source code?
OK, I hope I am not giving too much critics here, but I think this could be a little problem in the long run.
That is a valid issue. But I'm afraid that the chances of me braking my policy is about nil.
noxus said...
If only the binaries are released, we're always at the mercy of PLJack if someone wants to tweak the system to do something special.
I am sensitive to that as well. I'm hoping to implement some sort of macro functionality before it is all said and done.
noxus said...
The project is supposed to be a community project, so I was under the impression that it would also be possible to change the software if the need was there.
It is. My contribution to the project will be about 1000 hours before I am done. that is the most expensive currency I can spend.
I am not against open software. But, as I said before, I am not giving away all the libraries I have been designing and using over the years.
I know that sounds terse, but please consider this:
a) If someone has the ability to modify the software, then they have the skill to write whatever software they need.
b) There is nothing stopping anyone from plugging an off the shelf CNC motor control into this machine and using any software they wish.
c) I am also involved in the protocol. that is an open protocol to do with as you wish.
d) I'm writing this software anyway because I am going to build one of these machines. And you can be sure I will not be using off the shelf software.
noxus said...
I don't see it happening that allot of people customize the software to meet their own needs.
That is true with open source as well.
Writing software is not for the weak at heart. It takes a tremendous amount of energy and work to pull it of well.
noxus said...
Again, maybe I'm completely wrong about this issue
Your not wrong. It's a valid issue.
noxus said...
but I would like to see some comments from other people on this list.
Once again I am asking the community what I should do.
I have no problem with making the software open source. (less work for me)
I'll volunteer to write the parser. And would be happy to help the software team.
noxus said...
What's your(community) idea about not releasing the source code?
I really hate to be terse again, but that question can not be answered by the community.
The real question is do we want to go open source with the software.
Speak up every one. (Jeopardy music....)
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- - - PLJack - - -
Perfection in design is not achieved when there is nothing left to add. It is achieved when there is nothing left to take away.
I'd like to request the reservation of an input point for a probe. Probing would also require that the 3D coordinate be passed back to the front-end controller.
Now that is a cool idea. CNC in reverse. I had not thought of that.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- - - PLJack - - -
Perfection in design is not achieved when there is nothing left to add. It is achieved when there is nothing left to take away.
I believe your position is well taken. Everyone should be free to contribute or publicly disclose what they like, and also keep private what they like.
Anyone who feels otherwise can come up with "the goods" by themselves or by some other means.
Like you, I believe time is precious, and those who are commercially in the elctronics/software design business have the intrinsic right to keep what they strive to create. I too have a long list of routines and techniques developed over the years, and I'm not about to give ALL my best secrets away; that represents, after all, the talent distinguishing me from my competition.
OK - so the traces are .050 wide. I had plenty of room and don't forget - this is the first PC board I have ever made. We'll get better.
Sid
Sid that looks great.
You have us all in suspence.
Thank you, sir.· I've just completed a new layout - more holes, more copper to be removed and more traces.· We'll see how it goes.
There has been some conversation about "home" and "where am I?"· My two cents is only worth about a thruppenny bit so I will only mention what I am using.· The program considers the origin to be at ·X and Y = 0.· When I travel, my LCD always tells me where I am with reference to origin.· I have found the "computerized home" to be invaluable, because many times I have to lift the cutter and send the tables to a new position to perform a cut which could not be done in the normal sequencing.· Without my "home" I would never know exactly where I was.
Did I explain that clearly?
I'm asking Ken Gracey if we can have a dedicated "Community Mill" forum.
Sid
Having just spent several weeks designing and building a CNC drilling machine, I thought you might be interested in what I came up with and then to avoid my mistakes.
As you, along with PLJack, are apparently the three heavy lifters of this project, I would find it interesting to hear your statements as to what your intestions of sharing the results of your endeavors, how much information, IP, and invested time you are expecting to release.·
PLJack seem to have pretty clearly stated his intentions, but has expressed a willingness to participate in different open manner.
It might be interesting to hear form Parallax on this issue as well, although I would not be surprised that they might not comment immediately.
For myself, I'm in it for the community aspect, including an intention of sharing farely freely my contributions, such as they are.· My two submissions to-date, have been marked as having copyright retained by myself, but I have placed that information before this community (and beyond).
Comments
Correct.
I have been meaning to mention this before.
The reason I am working so hard on the plotting side of the software is an exersize to prove the parser (and programmer) are working correctly.
If I can't plot the G-Codes then I have no chance of telling the SX what to do.
Once I feel the parser is rock solid I will start working on inverse milling.
With a powerfull (and custom) parser the sky is the limit.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- - - PLJack - - -
Perfection in design is not achieved when there is nothing left to add.
It is achieved when there is nothing left to take away.
I have gone a bit off the idea of milling pc boards. Actually that would be a mc board.
Having said that, do not MISUNDERSTAND me.
This machine "will" make pc boards. No doubt about it.
It is just the more I think about it the more it seems like a pretty violent way to make traces on copper.
If I had this machine in front of me right now I would stick a resist pen in the chuck and have it draw me a beautiful pc board. Then chemically etch it. Then place it back into the mill to drill holes.
Let me repeat. I have not gone off writing the software to mill traces. Just gone off the idea of milling them myself.
What really excites me is the versatility of such a machine. If we can get a working model in front of tons of people I bet they will do things with it we just never imagined.
As for getting the project going, some more thoughts.
We need a testing circuit. In other words a "mill" proto board.
Something anyone can build and thus become beta testers of the software and hardware.
For instance. I don't have any stepper motors. It would be nice if I had the serial side of the motor control.
Basically a MAX chip, and some LEDs to represent the steppers.
Yes, I could whip one up but I'm thinking of an "official" testing circuit so that everyone is working with the same hardware and software.
Bean and myself need to use the above board to develop the PC to SX protocol.
Bean IS going to need the actual stepper motors for development. If he does not have any then maybe we should hunt down some company to donate them. It would be a good thing for a company to have this mill designed with motors they have in stock. If you know what I mean.
So those of you that can't contribute technically and have experience at this kind of thing, now is your chance.
Someone needs to actually build one of these machines in order to develop the software.
I can only go so far before the software needs real life testing.
It would all go faster by a factor of 100 if I build one first. I may just have to bite the bullet and drop the cash on it.
As for development time of the software I just can't say right now. At the moment I try to work on it every night.
At this point I think our immediate goals are:
For me to finish the G-code parser and plotter.
Work out the Desktop Motion Control protocol. (DMC) (What'a ya think?)
Design the mill proto board.
Get three steppers moving reliably. I just had a thought. How about placing three steppers side by side. Print out three X Y Z gauged paper disks (0-100) that we can attached to the shaft of each stepper. That way anyone could beta test the system. If the command is to move 40 clicks along Z then the disk would move to number 40.
I'm babbling now.
Off to work on the software.
Wish me luck.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- - - PLJack - - -
Perfection in design is not achieved when there is nothing left to add.
It is achieved when there is nothing left to take away.
But as Jack has said we are going to need a table with steppers pretty soon.
If anyone wants to be involved, but doesn't have the technical ability, this would be THE way to help.
I would think SOME company would want to get in on this project considering the amount of activity we have.
I wonder if the powers-that-be would consider giving this it's own forum ? It would be easier than one huge thread.
Bean.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"SX-Video·Module" Now available from Parallax for only $28.95
http://www.parallax.com/detail.asp?product_id=30012
Product web site: www.sxvm.com
"One experiment is worth a thousand theories"
·
Wow! A lot of activity; great to see that.
Regarding the unit "remembering" where it was during a previous session, to me seems of little value. The machine cannot be GUARANTEED to be where it was when a previous session ended; while the power was off, it could have been bumped or jarred or moved wilfully or accidentally, or just wear and tear. So in my opinion a mechanical "home" position is ABSOLUTELY required, and that said, then why not recalibrate (home) the machine (under computer control) on every power up....... so forget the "remembering".
Recalibrating a mechanical device to 0.001 is not a trivial task; switches, Hall sensors, an LED with a tiny hole all won't do it accurately and/or reliably enough. Since we do not plan to use encoders (which might have a sufficiently accurate "reference" pulse), the only practical way I see to perform this task is to do what most motion machine manufacturers do; a switch to get one "close" together with a mechanical "stop" on the lead screw or belt drive shaft. I am designing that feature into the mechanics because it is absolutely essential in order to reliably get .001 recalibration.
Cheers,
Peter (pjv)
I have a test frame with two stepper motors with controllers and a power supply. I've already driven both motors with a simple SX test program; as soon as we get some test code I'm ready to run it on some hardware (in my limited avalable time).
David
· Here is my code so far. There are lots of comments so I hope it makes sense.
· Just change the demo values assigned to XMove and YMove at the label "Main:"
· All comments welcome...
P.S. Please download newer version posted on 7/22.
Bean.
·
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"SX-Video·Module" Now available from Parallax for only $28.95
http://www.parallax.com/detail.asp?product_id=30012
Product web site: www.sxvm.com
"One experiment is worth a thousand theories"
Post Edited (Bean (Hitt Consulting)) : 7/26/2005 2:20:13 AM GMT
What you describe is exactly the process I had in mind. The "end stop" can be implemented mechanically (a "hard crash") or electrically with a cam on the shaft. When I get the first unit built I will know which way to go.
By the way, my extrusion material has now arrived, so I need to move forward at full speed!! Good to see you guys pushing me. Hope I can find enough time.
Also, I have two X_Y stepper macnines with lead screws I can use to try out software. Included is a drive power supply and I have a variety of SX boards to accommodate code.
For those (Bean) writing low level SX code, can you please include for each axis two bits I can use to switch power supply voltage levels? As we accelerate we need more "jam", and when we decelerate that can be reduced to "normal". The other bit, off for full stop, would be used for just a "hold" current. Probably I will use 48 V during acceleration, 24 V for normal, and 5 V for idle hold. This way, heat dissipation will be kept to a minimum without sacrificing speed performance.
Cheers,
Peter (pjv)
In any case, saving the part program line number where the process is interrupted, coupled with a means, either pvj's or newzed's, or even McNab's, allows one restart the part program at the point of interruption.· An important consideration, I suppose, for the hobbiest.
For those unfamilier with the homing process for a machine axis, I'll share what I've come to expect.· Basically homing is the process of finding a specific position on the axis' range of motion, and equating that position with a specific measurement in the user's frame-of-reference.· Let's say that for the X-Axis, the homing switch is set to trip when the measurement should read 10 mm.· The typical mechanical process of finding the home spot is multi-step one that eliminates back-lash as a variable:
Using a final very slow speed for the final home approach allows pretty good repeatability and accuracy along the length of the axis.· When present, the marker pulse allows one to get not only linear position, but to also get to an exact point of rotation of the motor-spindle.
I have seen cases where one of the over-travel limit switches was also used as a homing switch. In this case, the machines overall response to limit switch tripping must be completely within software control, not part of a E-Stop or other·type of hardwired·circuit.· For machines without absolute encoders, the homing switch is a typically a third limit switch on the axis.
Daniel
I'd find them useful in the event of applying servos instead of steppers.
I'd find them especially useful to allow software to gracefully accomodate reaching end of travel.· Without feedback, a stepper would otherwise just·stall against·the stop, and the controller would assume continued faithful-to-command motion.· In my mind, the difference is a possibly salvagable workpiece vs. a virtually guarenteed destroyed workpiece.
(Yes, I am·sensitive to design-by-commitee.)
Daniel
Oh, absolutely we need over-travel detection at both extremes of each axis. This can probably be readily dealt with by each builder's own requirements. Obviously, the standard "kits" to be handled by Parallax will have these provided.
Cheers,
Peter (pjv)
This would allow trival accel/decel and feedrate management--just change the apparent interrupt period.
If·the·interrupt will also be used to bit-bang the serial comms, that process' apparent interrupt period will need to be invariant.
Daniel
· I'm sure we will end-up with an interrupt routine, but I just wanted to get something working.
· Also I plan to move to the SX48 or SX52 protoboard as we run out of I/O's and probably need the larger memory space.
P.S. Can someone (Sid) tell me what a reasonable "steps per second" value is for an X-Y table with a typical stepper motor.
Bean.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"SX-Video·Module" Now available from Parallax for only $28.95
http://www.parallax.com/detail.asp?product_id=30012
Product web site: www.sxvm.com
"One experiment is worth a thousand theories"
Post Edited (Bean (Hitt Consulting)) : 7/22/2005 12:04:56 PM GMT
I'm glad I wasn't completely misunderstanding things. I agree wholly on the idea of a powerful parser. Writing a truly solid expression parser is tough, especially when it's got to be as versatile as yours. Mad props to you, as the kids say.
As far as the violence of milling copper, you're right. It's hard, loud, slow, and somewhat violent. The idea of a resist pen is promising, but I keep coming back to a UV laser diode and some fiber optic waveguides. Connect the diode drive to the spindle control, and draw the circuit on presensatized PCBs. Double sided-ness would get very easy with simple registration work. This is getting kind of exciting...again...
Daniel-
I like the idea of limit switches as well as home switches, not so much as position elements but as failsafes, just in case. I'd link them to some kind of hard shutdown, like an enable pin on the motor drives. I'd also probably put rubber bump stops at the hard ends of the axes travel, to keep from bending things in the event that something goes horribly wrong.
I close on my house in exactly 2 weeks, so I probably won't have a running shop again until the middle of September. By then I think I can probably start prototyping things, or maybe a little before. When we have motor driver designs figured out, I can begin layout any time.
-dave
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
This is not a sig. This is a duck. Quack.
Thought you might like to see my very first PC board.· A bit crude perhaps, but it is a functional board, so don't laugh. · Will hold 3 TIP120s. 3 resistors and pads for Stamp input and TIP output.· I'm quite pleased with the resolution - I was all over this board with my cutter, picking up cuts I couldn't make on the first pass, and when I told the program to go to a certain point it was always right on.· I went back and forth from left edge to right edge about five times.
OK - so the traces are .050 wide.· I had plenty of room and don't forget - this is the first PC board I have ever made.· We'll get better.
Total investment so far - about $339 -· $289 for the mill and about $50 for material to make the stepper mounting hardware.
Sid
· I'm impressed !!!
Bean.
·
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"SX-Video·Module" Now available from Parallax for only $28.95
http://www.parallax.com/detail.asp?product_id=30012
Product web site: www.sxvm.com
"One experiment is worth a thousand theories"
Post Edited (Bean (Hitt Consulting)) : 7/27/2005 11:20:29 AM GMT
Maestro,·we·eagerly await your selection of encore.
[noparse][[/noparse]Background: A probe is basically a switch closure when a stylus is driven into an object.· It allows the implementation of G31 Probe Move and G32 Probe Cycle.· One use is to place an object on the table, and have the machine probe it to derive a 3D map of its surface.]
Daniel
kelvin
I mostly agree with you; let me reiterate my post of yesterday at 4:52;
"Home" switches by themselves are inadequate for reliably repeating 0.001 positioning, no matter how "good" a practical switch you get. Its trip point is generally not very repeatable, and it WILL change over time.
Therefore a double mechanism is required, a "coarse" switch to determine when we are in the last leadscrew rotation "home zone" plus one to detect single step resolution of the motor shaft. Often this second event is strictly a "hard" mechanical stop on the shaft that is repeatable.
Cheers,
Peter (pjv)
If only the binaries are released, we're always at the mercy of PLJack if someone wants to tweak the system to do something special.
The project is supposed to be a community project, so I was under the impression that it would also be possible to change the software if the need was there.
(every member of the community having the possibility to pick up the software and make some modifications if necessary)
If only the binaries are released I don't see it happening that alot of people customize the software to meet their own needs.
Again, maybe I'm completely wrong about this issue but·I would like to see some comments from other people on this list.
What's your idea about not releasing the source code?
Bean.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"SX-Video·Module" Now available from Parallax for only $28.95
http://www.parallax.com/detail.asp?product_id=30012
Product web site: www.sxvm.com
"One experiment is worth a thousand theories"
·
That is a valid issue. But I'm afraid that the chances of me braking my policy is about nil.
I am sensitive to that as well. I'm hoping to implement some sort of macro functionality before it is all said and done.
It is. My contribution to the project will be about 1000 hours before I am done. that is the most expensive currency I can spend.
I am not against open software. But, as I said before, I am not giving away all the libraries I have been designing and using over the years.
I know that sounds terse, but please consider this:
a) If someone has the ability to modify the software, then they have the skill to write whatever software they need.
b) There is nothing stopping anyone from plugging an off the shelf CNC motor control into this machine and using any software they wish.
c) I am also involved in the protocol. that is an open protocol to do with as you wish.
d) I'm writing this software anyway because I am going to build one of these machines. And you can be sure I will not be using off the shelf software.
That is true with open source as well.
Writing software is not for the weak at heart. It takes a tremendous amount of energy and work to pull it of well.
Your not wrong. It's a valid issue.
Once again I am asking the community what I should do.
I have no problem with making the software open source. (less work for me)
I'll volunteer to write the parser. And would be happy to help the software team.
I really hate to be terse again, but that question can not be answered by the community.
The real question is do we want to go open source with the software.
Speak up every one. (Jeopardy music....)
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- - - PLJack - - -
Perfection in design is not achieved when there is nothing left to add.
It is achieved when there is nothing left to take away.
Either here or some free site.
We have too many conversations going on in one place.
It is starting to effect the efficiency of this project.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- - - PLJack - - -
Perfection in design is not achieved when there is nothing left to add.
It is achieved when there is nothing left to take away.
Sid that looks great.
You have us all in suspence.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- - - PLJack - - -
Perfection in design is not achieved when there is nothing left to add.
It is achieved when there is nothing left to take away.
Now that is a cool idea. CNC in reverse. I had not thought of that.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- - - PLJack - - -
Perfection in design is not achieved when there is nothing left to add.
It is achieved when there is nothing left to take away.
I believe your position is well taken. Everyone should be free to contribute or publicly disclose what they like, and also keep private what they like.
Anyone who feels otherwise can come up with "the goods" by themselves or by some other means.
Like you, I believe time is precious, and those who are commercially in the elctronics/software design business have the intrinsic right to keep what they strive to create. I too have a long list of routines and techniques developed over the years, and I'm not about to give ALL my best secrets away; that represents, after all, the talent distinguishing me from my competition.
Cheers,
Peter (pjv)
There has been some conversation about "home" and "where am I?"· My two cents is only worth about a thruppenny bit so I will only mention what I am using.· The program considers the origin to be at ·X and Y = 0.· When I travel, my LCD always tells me where I am with reference to origin.· I have found the "computerized home" to be invaluable, because many times I have to lift the cutter and send the tables to a new position to perform a cut which could not be done in the normal sequencing.· Without my "home" I would never know exactly where I was.
Did I explain that clearly?
I'm asking Ken Gracey if we can have a dedicated "Community Mill" forum.
Sid
Having just spent several weeks designing and building a CNC drilling machine, I thought you might be interested in what I came up with and then to avoid my mistakes.
I've documented the project including circuit diagrams, DXF files, source code, etc. at:
http://www.bologrew.demon.co.uk/The CNC-Drilling Platform Project.html
Hope you find it useful. I'm happy to answer any questions on it.
Best regards,
Nicholas
You sir, are a saint.
Thank you very much for that.
I'm off to read it now.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- - - PLJack - - -
Perfection in design is not achieved when there is nothing left to add.
It is achieved when there is nothing left to take away.
As you, along with PLJack, are apparently the three heavy lifters of this project, I would find it interesting to hear your statements as to what your intestions of sharing the results of your endeavors, how much information, IP, and invested time you are expecting to release.·
PLJack seem to have pretty clearly stated his intentions, but has expressed a willingness to participate in different open manner.
It might be interesting to hear form Parallax on this issue as well, although I would not be surprised that they might not comment immediately.
For myself, I'm in it for the community aspect, including an intention of sharing farely freely my contributions, such as they are.· My two submissions to-date, have been marked as having copyright retained by myself, but I have placed that information before this community (and beyond).
Best Regards,
Daniel