There might be a much bigger interest in CNC than what appears on the surface within the forum. I personally think quite a few people would participate, but I could be wrong.
There might be a much bigger interest in CNC than what appears on the surface within the forum. I personally think quite a few people would participate, but I could be wrong.
Bruce,
There was the "Builders" forum for a year or so. It had a flury of interest for a short while and then got moved to the forum archives. I don't know if that move was due to lack of activity or a subtle statement on company direction by Parallax.
If the community finds interest, they will sustain threads and resurect them as is proven in this round of CNC discussions.
As always, there are resource limits within Parallax. Maybe Ken will latch on to CNC as one of his open projects soon. Those seem to create a productive burst of activity that causes the target sjbject to take a big leap forward.
CNC and 3D printing are areas I am interested but it's just not the right place or time for me to start building but I like to follow along with those that are.
Well, I am learning as I try to find what is available and useful for a project that would work on a Propeller.
There are situations where Manual Data Input is very useful, and there are situations where GCode is useful.
With Manual Data Input, you can task a lathe or milling machine to create a one-off part in steps and not have to work so hard at tending the machine.
Of course, 3-D printing seems to require a GCode approach for actually printing sophisticated parts. Now I find that the standard GCode is augmented with specific code for the 3-D printer head, called M code. M code is 'machine dependent instructions'
++++++
Both MDI and Gcode with Mcode share a common need to interpolate instructions into straight lines and curves (arcs). So some of the code processes are shared by both. It may be that an MDI solution would merely require a parser for G and M code in place of the human interface front end.
++++++
My impression of the Parallax CNC community was that the primary goal was machined printed circuit boards and that aim was achieved. It was before the 3D printing captured popular attention.
++++++
For a lot of use, the substantial investment in parts has put us off this. A good set of XYZ stepper motors, with controllers, and power supply can run into hundreds of dollars. XYZ platforms vary much in price, but the really stable and precise ones can cost thousands of dollars. I'd love to have this stuff, but I have no place to put it in Taiwan.
What really got the 3-D printers going was the fact that they build the machines with struts and began to replicate the needed parts with the machine. So your investment seemed to create the next generation of machines.
Actually looking at the RepRap reference for a listing of Gcodes and Mcodes reveals a very short list of Gcodes. Mcodes may actually be a longer list and monitoring thermal conditions of the printhead assert another control aspect that 3-axis CNC doesn't usually require.
So it seems that it might be easiest to port the ArduinioUNO approach to a Propeller.
I don't see how Don Starkey's code is going to manage a 3D printer. There is nothing to support the thermal printer head. It needs temperature control and feed control.
On the other hand, the Propeller may actually be better suited for having an independent cog manage at least the temperature aspect.
Also, as I looked over Don Starkey's problem with his ring buffer, he has a whole cog managing this 300 long ring buffer that is in hub ram. I suspect that if speed was his goal, having the buffer be something smaller -- say 150 longs -- and entirely in cog ram might be better.
The short story is quite simple. It is a lot of code of assimilate in a short time. And the Gcode/Mcode scheme that the Arduino RipRap machines use are important information that can't be ignored.
As it is, there are essentially three ways to go with CNC.
A. A modified CNC Gcode/Mcode parser that supports input from existing CAD design software for 3D
printing.
B. A Manual Data Input application that resolves the problems in Don Starkey's code.
C. A full Gcode application that will support serious CNC machine shop devices - lathes, milling machines.
Building the XYZ mechanism and print head may not be the bulk of the man-hours in this.
Some of the popular stuff like Mach3 relies on a parallel port. That's pretty old fashioned. So, it's time for an update to USB, at the very least.
Not true! They support the same high-end Galil Motion Controllers that I use myself which are available in PCI and standalone Ethernet formats. USB is not deterministic so it's out of the question.
If you are only using steppers as opposed to closed-loop servos then there is nothing wrong with the PP.
"ManAtWork" has recently announce a multi-axis package that I assume but cannot be sure is based on the Prop. Google "Benezan Electronics". It's intended to be used with Mach3 and LinuxCNC (formerly EMC2), WinPCNC, etc.
My apologies to everyone for not getting back to this thread much quicker. Sorry.
First a status report and then I will try to respond posts.
As you might have guessed, I have been busy trying to set up the bandsaw and sander, but it isn't as easy as it sounds. The sander will be a very welcome addition to the shop, but it is not without it's problems. The main goal for the sander will be to true up the ends of aluminum stock and various parts. It is my intention to use the belt portion of the sander for rough truing of longer pieces and to use the disc portion of the sander for fine truing. The sander itself is in pretty decent shape and runs well, but the sander table is a rickety piece of junk, so I am replacing the factory table, with a solid make shift table. The bandsaw is another story, basically it boils down to the fact that I need a good motor with a 1/2" shaft. Either way, I have been jumping back and forth between the two of them, trying to figure out everything out. When I get these two machines setup the way I want them, my projects will become much easier to accomplish.
I just wish that I had one of the actuators built, for proof of concept, because I could then say that everything is a go, but until then, I sincerely believe that the concept is good, so here is what I am thinking. I would like the printer to mostly be self-sufficient, meaning that I want it to be able to understand G-Code and follow the procedure outlined in the code, which means it will have to be an embedded solution, however I will use another solution just for testing purposes. Since I want an embedded solution, the Propeller chip is the most likely candidate, since it is the only chip I know well enough to work with. The capability of printer will be dependant upon the software side of things. As I see it now, the printer will only read G-Code, however it would be real nice if the printer could read STL files and generate the G-Code, but I don't even know if this is possible. In other words, perform like the KISSlicer.
For setting up and testing the circuitry, I believe the Propeller Proto Board is the only way to fly, at least for me. They are inexpensive, plenty of prototyping area, and they include options for a mouse, keyboard, and display. Numerous Propeller Proto Boards can used with serial inter-communication, until all the support circuitry and software has been designed and tested, at which point a final control board could be designed, which includes all the necessary circuitry and support. I am accustomed to working with these proto boards, so the learning curve for this project won't be so steep. I am certain that many will disagree with me, but I believe it will be at least a two to three Propeller chip solution, and I believe the difficult part, besides the programming itself, will be what chips do what to make efficient use of each chip and to provide ease of design for the final board and ease of design for the control software.
Building the core components of the machine should be relatively easy, and I don't imagine that designing the support circuitry will be all that difficult either, but I truly believe that the hard part will be the software. I think it will be a very complicated task, dependant upon actual requirements of the machine.
I talk a big CNC game, but there are many here that know much more about CNC than I ever will, especially when it come to controlling serious machinery and understanding G-Code. However, by the end of this project, I will have a much more thorough understanding of how the big boys do things, instead of writing my own control code. Therefore I will be thorughly investigating Don Starkey's work, regardless of whether it has a means for controlling a hot end. Controlling the hot end should be a piece of cake. The hard part is creating the G-Code from an STL file and then having the Propeller interpret the G-Code, as well as designing the user interface, which of course would be dependant upon the machine's actual capabilities.
I apologize once again for not responding much quicker and I also apologize for not providing individual responses. My sincerest and deepest thanks to all those who have contributed and for those who continue to contribute to this thread.
Don Starkey's code is indeed useful, even in its current state.
First, it may allow you to bench test the X, Y, and Z motion of your build without too much effort. Though claimed to be imperfect, it is supposed to do those things.
The dilemma with Gcode and Mcode is that 3-D printing has evolved from CAD software that provides the means to design in 3-D and then to migrate the design to a device that accepts the Gcode and Mcode.
My intentions have been to a get a full overview of what is required, especially answering what is missing for a Propeller solution.
Above I listed 3 options - A, B, and C.
I suspect that all 3 are useful to Propeller users that want to do CNC. The 3-D printer is a special case with avid users. But I am not personally interested in 3-D printing and more interested in a general Gcode solution with optional Mcode additions to suit anything that might come along.
The code seems to require division into the following conceptual solutions:
A. A front end input scheme - either MDI or files of Gcode/Mcode being read from and SDcard.
B. Conversion of input data to actual packets of machine motion and control. Includes interpolation of lines and arcs into right motion
C. Monitoring of machine status - beside the X, Y, and Z limits, there is the control of print head heat and limits on the actual motion speed and acceleration. Some aspect may start out with just accepting arbitary limits as a means to limit the program size.
D. An output buffer - Is this to be done all in cog ram or all in hub ram. Hub ram offers greater size, but less speed of response.
E. An output scheme - this converts all the motions fed from the output buffer to the stepper motors and other devices needing control (such as a print head or a spindel in more conventional CNC).
F. A scheme to setup the appropriate parameters to a particular device. The software has to know how many steps the stepper motor and stepper motor controller are actually providing per 360 degress, whether the product is being produced in inches or mm, feed rate, and so on.
I do have an older DIY book, "CNC Robotics" by Geoff Williams that was published before the 3-D printing came to be. It may be useful. It uses Corel Draw as a front end that can generate HPGL format, not Gcode. (but appears to convert to Gcode).
Gcode is comprehensive and still actively supported. In fact, another Arduino project that is separate from the 3-D printer community support the full Gcode interpretation (or at least claims to do so).
+++++
And so, there you have it --- a general survey of current status.
I suppose that if all else fails, you can start out with Don Starkey's code to bench test and then jump to using an ArduinoUNO for actual 3-D printing or an Arduino Gcode interpreter to run other devices.
But that really avoids getting any new code written for full Propeller CAD -- unless the Arduino C code can be ported into GCC on a Propeller.
******************
No exactly sure where STL file format would fit in.
To me personally, that might be provided to a Gcode compiler outside the Propeller.
The whole HPGL and Gcode concept was actually created as a US government project and given over to the public domain. So there is a large following and lots of opportunity to find software tools for file conversion.
At some point, the 3-D printer is doing one slice at a time and needs to have data fed into it as one line at a time.
My older book, "CNC Robotics" mentions HPGL generated by Corel Draw bying useful and I am not sure how the two reconcile with each other. It uses an older CNC application called KCam and in Chapter 10 discusses Gcode examples and use in depth
A history of the origins of Gcode might be helpful.
I don't believe the G-Code will be all that hard to figure out for a 3D printer, but I could be wrong. I think the hard part will be converting the STLs into G-Code, but even the STL file format does not look all that complicated, except how they store the vertex infomation, because I never learned that type of math. Additionally converting the G-Code into machine movement could be quite complicated, but as you say, Don Starkey has figured a lot of that out already.
I now have the sander securely mount, with a new belt and disc attached. I also have the makeshift table attached and it is rock solid, just the way I wanted it. Now all I have to do for the sander is make a little fence, square and level the fence to the face of the disc, and securely fasten it. I figure about another hours worth of work, and the sander should be ready for my beckon call
I don't believe the G-Code will be all that hard to figure out for a 3D printer, but I could be wrong. I think the hard part will be converting the STLs into G-Code...
Do you need to run the STL to G-Code conversion on the prop board? If not, there are many convertors that will run on the same computer where you create the STL file. There are apps such as 3licer (Slicer), Kiss and SkeinForge that will do the conversion on your PC. There are python sources that do the conversion as well.
Any of these should make your work a little simpler.
No, I don't need to, but I think that would be a nice feature, just load an STL and go. However, I doubt that will happen, but who knows. If everything works well when I am done, it might be worth the trouble, just to have that feature. Right now, I am just wishfully thinking out loud
No, I don't need to, but I think that would be a nice feature, just load an STL and go. However, I doubt that will happen, but who knows. If everything works well when I am done, it might be worth the trouble, just to have that feature. Right now, I am just wishfully thinking out loud
Yes, an all-in-one solution would be advantageous!
I don't believe the G-Code will be all that hard to figure out for a 3D printer, but I could be wrong. I think the hard part will be converting the STLs into G-Code, but even the STL file format does not look all that complicated, except how they store the vertex infomation, because I never learned that type of math. Additionally converting the G-Code into machine movement could be quite complicated, but as you say, Don Starkey has figured a lot of that out already.
I now have the sander securely mount, with a new belt and disc attached. I also have the makeshift table attached and it is rock solid, just the way I wanted it. Now all I have to do for the sander is make a little fence, square and level the fence to the face of the disc, and securely fasten it. I figure about another hours worth of work, and the sander should be ready for my beckon call
G-Code is drop dead easy as we have discussed over the phone. STL conversion is something I have to look at.
A lot has changed over the last decade and I am a bit behind the eight ball, because I have not kept myself abreast of the latest technology, but that doesn't mean that I am completely ignorant. Let's say that the 3D printer has an on board computer with a full operating system, internet access, and loaded with 3D modeling and CNC software, along with a favorites list linking to all the popular 3D sites for experimenting and STL downloads. That would drive up the prototype cost as well as any possible retail cost, but that would greatly simplify everything.
So let's say the core package is the computer that I mentioned, then just add the following items, and Brucie will be ready for some fun
Custom cabinet
Power supply
Propeller CNC control board
Core components of the 3D printer
Filament
Ethernet cable
Internet connection
Various cabling
I am now thinking that is the way to go, because it provides the least path of resistance, and greatly simplifying the research and development aspect of this project.
The questions then become:
What type of operating system?
What type of 3D printer control software?
What type of 3D modeling or CAD software?
And of course the control and modeling software must be compatible with the operating system. There is no doubt that a proper combination of these three with an onboard computer would simplify everything.
Including a PC might be the right way to go. I have a RapMan3.1 printer (company and product extinct) since a couple of years.
The whole 3d stuff is very time consuming and takes a lot of computer power.
If anybody then @Lonesock is able to write a slicer for the prop. He wrote the Kiss slicer and has some deep understanding of mathematics.
But it will be way to slow.
To answer your questions
1) Even if I am a Windows user, I think here Linux might be the way to go.
2) This should run on P1/P2 boards. SD card on Prop or (better) a big external RAM as buffer since G code files get pretty big.
MUST support saving from PC to SD card on Prop without removing card. This is a big pain with my current printer.
SHOULD support Ethernet for this since usb/serial is very slow on big files.
3) Here the world is wide open. I tried lots of them. You will need more then one, depending on project.
Overall you can move file between programs using stl or obj formats. Tons of other formats exist but those are quite common
Same thing with slicers. Some do one thing/object perfect and fail on other things/objects. Always a gamble.
3D printing needs support structures to be printed around your object in most cases. There slicer do different things.
The G-code is quite standard, the M-codes differ between programs. But this is solvable. Mostly Heater control and Fans.
And you have the main difference between 3D printing and CNC. The first is additive the second is subtractive.
They need quite different G-code for the same object...
Let's say you have the onboard computer and design something with the CAD or 3D modeling software, and save the file as STL format. So then you open this STL file with something like Mach 3 or a specialized 3D printer software. As I see it, this software would send G-Code to a Propeller controller board by let's say ethernet......
Ahhh.... After typing the previous sentences, I see where the confusion is..... I forgot to mention that the onboard computer would also have a G-Code generator for converting the STL files into G-Code.
This should eliminate the need for SD or RAM.
Or am I overlooking something?
EDIT: At that point, I believe the Propeller's sole responsibilty would be to interpret the G-Code, and then control appropiate inputs/outputs and provide temperature control.
write script in OpenScad. look at 3Dmodel. change script. repeat.
if happy start slicing to create g-code - this usually takes a lot of time
get g-code to printer (sd-card) - not good. disturbs workflow.
let printer print - this also takes a lot of time.
So while printer prints I would like to have my screen for development. Not displaying status of print.
But you need to watch the printer constantly. It needs its own display. Thus I think the Prop should do that part.
Like in Dons code. But LCD/TV instead of Serial Terminal. Simple Menu, some buttons to navigate File System on SD.
Just run another print of something you have again. direct from SD. Stop, restart, manual adjustment. Small stuff.
All without the need to start Mach3 or Kisslicer or whatever slicer and do it all over again.
Jumper on reset for programming the Props and you even can restart your in-build PC while printing.
If you haven't had a 3D printer you are not aware of how much patience you need to get anything printed successful.
I just mention that because I do have some problems with my temper sometimes. Along the line you described in some of your threads.
Those printer work better if you yell at them I guess.
So when you finally have a 'working' print you need to keep it somewhere. Its more than just G-code for movement.
You need comments. What type of filament used. Settings for FAN/Heated Bed/Overall Speed.
This is for sure a multi p1 job, but here the propeller can show his muscles. one prop for Ethernet/GUI/SD one prop for running the hardware.
For a long time now I am thinking of a replacement controller for my RapMan. It works like it is. But it could be so much better.
It seems to me you are again putting the cart before the horse.
Nevermind all the software, files, CAD, STL and GCode ponderings...... what you should focus on, IMHO, is your mechanics. It will keep your hands full. Perhaps even your life full.
From past postings, I conclude that you are a perfectionist. But in this CNC field, perfection comes after a LOT of patience and experience. In the past you have frequently found "perfect" solutions, only to later find they were not so perfect afterall. So, please, dont underestimate what is involved here. I'm sorry, but a belt and disk sander just doesn't cut it (pun) to get the results I believe you are looking for. You will need to get some serious precision measuring tools and experiment with your design. It will likely take multiple passes.
So I'm encouraging you to follow your journey, but be prepared for numerous setbacks. At least if you want something better than the popular fare of the day. One I tested out recently had more than 20 thou deflection in one of its main beams as the carriage reversed. I was looking to hold a 5 thou tolerance or better.
Everything in 3D printers I have seen so far, except for costly commercial products, is just absolute Smile. Unrepeatable, unreliable and unusable. A curiosity at best. You can do better, probably much better, but focus on those mechanics as without precision there, all the other chatter is pointless.
I tend to feel the same as pjv about 3-D printers. Precision comes with costly sub-assemblies rather than homespun devices. I haven't found an XYZ router table I like for under $1000 USD and have no interest in RipRap.
But I also feel very strongly that when people want to learn CNC, something that works less than perfect allows them to begin learning; whereas the high cost of industrial grade CNC bars entry.
And most importantly,
I would like to see a Propeller CNC board that is as good as any Arduinio solution.. Once that exists, something better than an Arduino soltuion is likely to evolve.
#########################
I suspect that LinuxCNC is the optimal OS.
It can be loaded as a LiveCD and the computer or laptop can be used for other uses with the original OS when the CD boot is not present. Or it can be installed in a dedicated Linux machine.
Yes indeed, HPGL is not public domain -- my mistake.
I have been running down a lot of various CNC choices and got the two confused. The book, "CNC Robotics" generates designs in Core Draw that are HPGL (intended to be ONE layer for a plotter) and then uses a different software that converts HPGL to G-code.
RipRap or 3-D printing requires a multilayer solution that really is a a creative extension to multiple, so conversion from STL files may seem the easiest for a lot of users. I am just not sure that STL is adequate for 3-D printing of objects with interior cavities.
+++
References to G-code are a bit problematic.
The actual complete specification is rarely deployed on one platform. After all, you are going to use either a plotter, a milling machine, a lathe, or a router -- so sub-set G-code interpreters are a logical outcome of which platform you use. And there are industry instances of customized sub-set application for specific use.
The complete G-code specification maybe referred to as RS274, RS274D, RS274X, or some other RS274xxxx. And theRS274 has far more than Gcode involved -- at least Mcodes, maybe Ncodes, and lots of other alphabetical prefix that slip in other funtions. So industry has historically worked on a pick and choose basis when producing a complete CNC product.
It seems that whatever the CAD front-end provides in a file is going to have to be examined for insertions of additional code to make it work with specific G-code interpeters.
Linux and Unix can find errors and ommision with a simple batch file and GREP as the material is all line-by-line.
Similarlly, Linux batch files can manipulate into a a ready file.
Sherline has a nice pdf on CNC milling and turning which includes a bit of history of Gcodes. It may provide a bit of useful background.
Apparently in printed circuit techonologies, RS274D is the original, and RS274X is an extended update.
Gerber files are a sub-set of G-code intended for creation of printed circuit boards.
Riprap files are a sub-set of G-code for the limited context of 3-D printer.
A lot of the file formats that might be converted to G-code originated as plotter files for various products as CAD software supports a wide variety of commercial plotters and that is where HPGL enters the file conversion scheme. Conversion from PDF files seems to not work.
Needless to say that it has been a long hard road for me and numerous experiments for me have failed, but I have also had my successes. I am a very stubborn and determined man to say the least, but persistence is one of the keys to success.
I suppose there are many here that highly underestimate me and my abilities, due to some of my failures, please don't be one of them. Instead I ask to you to please consider the wire bending CNC that I built. That machine straightens, pushes, bends, and manipulates high temper music wire having a diameter of 0.032" and 0.020" clearance anywhere in the wires path would bring that machine to a grinding halt and perhaps a wirery mess.
I would also like you to consider, that my current design is a culmination of several years worth of experimentation with linear movement and control, and that one of my main goals has always been to keep the tolerances tight, meanwhile also considering the thermal expansion of materials, which could also bring a machine to a grinding halt.
My concept is sound. Even if my current design fails, there are only three possible causes, which in turn have two remedies, and I have enough raw materials, to work through two of the three remaining possible problems, with the exception that the load may be to heavy for the X axis. In which case, I will have to increase the size of that axis. So if this discussion doesn't occur now, it would be occurring very soon.
I am certain that if you honestly knew me, you would not doubt my abilities.
@IDBruce
It seems to me that if you have a table saw, most of this project could be done with a much higher degree of accuracy. A carbide tipped blade will cut aluminum.
Band saws are made for boat building or custom furnature, and the same for belt sander tables. You might consider a different tool set. Either a table saw, a radial arm saw, or a cutoff saw.
The table saw would be the best.
Even if you do NOT have a table saw, if you have a good worm-drive skill saw; you can build one from a few sheets of 5/8 or 3/4" plywood. Here in Taiwan, carpenters merely cust a slot and fit in a mount for the curcular saw in an upside down positon. So bypass the trigger and add another switch. Google 'DIY tablesaw' and look at all the images and web sites.
On the table, rails and guides that are parallel to the blade are done with C clamps. For a 90 degree Tee to push material through, a router cuts slots in the table top and a Tee is fabricated from wood. Angle cuts might require an adjustible Tee or set angles just have different fabricated set devices.
Accuracy of the cuts can easily get down to 1/32" with square and 45 degree miters dead on.
When I was a General Contractor, I tried to cut all my material to 1/32" accuracy and builld a house withing 1/16" accuracy. That is way beyond providing as wood shrinks and moves; but tight tolerances always create the look and feel of a higher level of quality.
++++++++++++++
The situation with CNC is that tolerances are much tighter, trying to hold to something such at .0002" or better. I am sure the Propeller can do that if programmed well. And would be acceptiable as an alternative for conversion of older CNC equipment with out-dated or broken electronics.
_______________
Also, I have no problem with a CNC 3-D printer or a CNC router table built from plywood or well-aged oak. (green oak with warp very badly). Marine plywood is best as it has no voids, but it seems that Europe produces most of it. The US plywood product is everywhere; but the strongest, nicest plywood is imported from Europe. Particle board and a plywood product called MDO (medium density overlay) can work for big flat smooth non-structural surfaces.
Of course, if you are going for extremely accurate smooth cuts, the saw blade's sharpness and number of teeth is extremely importing. When I did finish work in custom homes, I would use a planer blade and have to swap out a new resharpened one every day.
For practical building of a CNC machine you need a Bridgeport. There are some other methods that can be used, one of which is to oversize your holes and then place in your bearings, followed by some epoxy once everything is lined up with the rails. I've never done it that way, but people on CNCzone have done it with some success.
Alignment is everything, and here's why: Try to take a piece of 1" by 1" square tubing that is 2 feet long. Try to pull it apart at both ends. How much can you stretch it? Probably near nothing. Now, imagine you have a gantry that rides on the rails. One one end the rails are exactly 2 feet apart. On the other, they are 2 feet plus 5 thousandths. When the gantry reaches the over-sized side, it actually has to stretch. Steel/Aluminium don't stretch easily, and that's where you get your jam-ups. That's what makes it a useless machine when things are mis-aligned by a mere 5 thousandths.
So, forget doing anything that has tolerances over .001 of and inch.
1/32=.03125
1/64=.015625
1/128=.0078125
So, even 1/128 accuracy is unworkable for a CNC. There are some techniques described on CNCzone, as mentioned before. I've been down this road myself, and it's a huge struggle. Before I built a steel machine, I bought plans for one that my equipment allowed me to make from wood. http://hobbyrouterplans.com/
Despite seeing the machine in use at the NAMES show, my version barely worked.
So, if your interests are more for electronics than machine building, then I suggest you just buy a solution. Yeah, the first time I heard that on CNCzone, I didn't want to hear it. What fun is there in buying something when the goal is to create something all your own? Building your own machine can be done, but expect to become a machinist in the process.
So what everyone is telling me that I cannot cut aluminum with a band saw and then true the ends within a couple thousandths on a disc sander? I say bull hockey. The widest width is only 2"
Comments
There might be a much bigger interest in CNC than what appears on the surface within the forum. I personally think quite a few people would participate, but I could be wrong.
Bruce,
There was the "Builders" forum for a year or so. It had a flury of interest for a short while and then got moved to the forum archives. I don't know if that move was due to lack of activity or a subtle statement on company direction by Parallax.
If the community finds interest, they will sustain threads and resurect them as is proven in this round of CNC discussions.
As always, there are resource limits within Parallax. Maybe Ken will latch on to CNC as one of his open projects soon. Those seem to create a productive burst of activity that causes the target sjbject to take a big leap forward.
CNC and 3D printing are areas I am interested but it's just not the right place or time for me to start building but I like to follow along with those that are.
There are situations where Manual Data Input is very useful, and there are situations where GCode is useful.
With Manual Data Input, you can task a lathe or milling machine to create a one-off part in steps and not have to work so hard at tending the machine.
Of course, 3-D printing seems to require a GCode approach for actually printing sophisticated parts. Now I find that the standard GCode is augmented with specific code for the 3-D printer head, called M code. M code is 'machine dependent instructions'
++++++
Both MDI and Gcode with Mcode share a common need to interpolate instructions into straight lines and curves (arcs). So some of the code processes are shared by both. It may be that an MDI solution would merely require a parser for G and M code in place of the human interface front end.
++++++
My impression of the Parallax CNC community was that the primary goal was machined printed circuit boards and that aim was achieved. It was before the 3D printing captured popular attention.
++++++
For a lot of use, the substantial investment in parts has put us off this. A good set of XYZ stepper motors, with controllers, and power supply can run into hundreds of dollars. XYZ platforms vary much in price, but the really stable and precise ones can cost thousands of dollars. I'd love to have this stuff, but I have no place to put it in Taiwan.
What really got the 3-D printers going was the fact that they build the machines with struts and began to replicate the needed parts with the machine. So your investment seemed to create the next generation of machines.
So it seems that it might be easiest to port the ArduinioUNO approach to a Propeller.
If it works, I will seriously consider using the Propeller and Don Starkey's object if possible.
That's all I know.
The drive takes 19.6 Amps in, and outputs 9.6 Amps, just reading off the sticker on the side sticker. It varies of course depending on the load.
On the other hand, the Propeller may actually be better suited for having an independent cog manage at least the temperature aspect.
Also, as I looked over Don Starkey's problem with his ring buffer, he has a whole cog managing this 300 long ring buffer that is in hub ram. I suspect that if speed was his goal, having the buffer be something smaller -- say 150 longs -- and entirely in cog ram might be better.
The short story is quite simple. It is a lot of code of assimilate in a short time. And the Gcode/Mcode scheme that the Arduino RipRap machines use are important information that can't be ignored.
As it is, there are essentially three ways to go with CNC.
A. A modified CNC Gcode/Mcode parser that supports input from existing CAD design software for 3D
printing.
B. A Manual Data Input application that resolves the problems in Don Starkey's code.
C. A full Gcode application that will support serious CNC machine shop devices - lathes, milling machines.
Building the XYZ mechanism and print head may not be the bulk of the man-hours in this.
Not true! They support the same high-end Galil Motion Controllers that I use myself which are available in PCI and standalone Ethernet formats. USB is not deterministic so it's out of the question.
If you are only using steppers as opposed to closed-loop servos then there is nothing wrong with the PP.
"ManAtWork" has recently announce a multi-axis package that I assume but cannot be sure is based on the Prop. Google "Benezan Electronics". It's intended to be used with Mach3 and LinuxCNC (formerly EMC2), WinPCNC, etc.
This is inside the RepRap Wiki... might be useful.
dgately
First a status report and then I will try to respond posts.
As you might have guessed, I have been busy trying to set up the bandsaw and sander, but it isn't as easy as it sounds. The sander will be a very welcome addition to the shop, but it is not without it's problems. The main goal for the sander will be to true up the ends of aluminum stock and various parts. It is my intention to use the belt portion of the sander for rough truing of longer pieces and to use the disc portion of the sander for fine truing. The sander itself is in pretty decent shape and runs well, but the sander table is a rickety piece of junk, so I am replacing the factory table, with a solid make shift table. The bandsaw is another story, basically it boils down to the fact that I need a good motor with a 1/2" shaft. Either way, I have been jumping back and forth between the two of them, trying to figure out everything out. When I get these two machines setup the way I want them, my projects will become much easier to accomplish.
I just wish that I had one of the actuators built, for proof of concept, because I could then say that everything is a go, but until then, I sincerely believe that the concept is good, so here is what I am thinking. I would like the printer to mostly be self-sufficient, meaning that I want it to be able to understand G-Code and follow the procedure outlined in the code, which means it will have to be an embedded solution, however I will use another solution just for testing purposes. Since I want an embedded solution, the Propeller chip is the most likely candidate, since it is the only chip I know well enough to work with. The capability of printer will be dependant upon the software side of things. As I see it now, the printer will only read G-Code, however it would be real nice if the printer could read STL files and generate the G-Code, but I don't even know if this is possible. In other words, perform like the KISSlicer.
For setting up and testing the circuitry, I believe the Propeller Proto Board is the only way to fly, at least for me. They are inexpensive, plenty of prototyping area, and they include options for a mouse, keyboard, and display. Numerous Propeller Proto Boards can used with serial inter-communication, until all the support circuitry and software has been designed and tested, at which point a final control board could be designed, which includes all the necessary circuitry and support. I am accustomed to working with these proto boards, so the learning curve for this project won't be so steep. I am certain that many will disagree with me, but I believe it will be at least a two to three Propeller chip solution, and I believe the difficult part, besides the programming itself, will be what chips do what to make efficient use of each chip and to provide ease of design for the final board and ease of design for the control software.
Building the core components of the machine should be relatively easy, and I don't imagine that designing the support circuitry will be all that difficult either, but I truly believe that the hard part will be the software. I think it will be a very complicated task, dependant upon actual requirements of the machine.
I talk a big CNC game, but there are many here that know much more about CNC than I ever will, especially when it come to controlling serious machinery and understanding G-Code. However, by the end of this project, I will have a much more thorough understanding of how the big boys do things, instead of writing my own control code. Therefore I will be thorughly investigating Don Starkey's work, regardless of whether it has a means for controlling a hot end. Controlling the hot end should be a piece of cake. The hard part is creating the G-Code from an STL file and then having the Propeller interpret the G-Code, as well as designing the user interface, which of course would be dependant upon the machine's actual capabilities.
I apologize once again for not responding much quicker and I also apologize for not providing individual responses. My sincerest and deepest thanks to all those who have contributed and for those who continue to contribute to this thread.
Bruce
First, it may allow you to bench test the X, Y, and Z motion of your build without too much effort. Though claimed to be imperfect, it is supposed to do those things.
The dilemma with Gcode and Mcode is that 3-D printing has evolved from CAD software that provides the means to design in 3-D and then to migrate the design to a device that accepts the Gcode and Mcode.
My intentions have been to a get a full overview of what is required, especially answering what is missing for a Propeller solution.
Above I listed 3 options - A, B, and C.
I suspect that all 3 are useful to Propeller users that want to do CNC. The 3-D printer is a special case with avid users. But I am not personally interested in 3-D printing and more interested in a general Gcode solution with optional Mcode additions to suit anything that might come along.
The code seems to require division into the following conceptual solutions:
A. A front end input scheme - either MDI or files of Gcode/Mcode being read from and SDcard.
B. Conversion of input data to actual packets of machine motion and control. Includes interpolation of lines and arcs into right motion
C. Monitoring of machine status - beside the X, Y, and Z limits, there is the control of print head heat and limits on the actual motion speed and acceleration. Some aspect may start out with just accepting arbitary limits as a means to limit the program size.
D. An output buffer - Is this to be done all in cog ram or all in hub ram. Hub ram offers greater size, but less speed of response.
E. An output scheme - this converts all the motions fed from the output buffer to the stepper motors and other devices needing control (such as a print head or a spindel in more conventional CNC).
F. A scheme to setup the appropriate parameters to a particular device. The software has to know how many steps the stepper motor and stepper motor controller are actually providing per 360 degress, whether the product is being produced in inches or mm, feed rate, and so on.
I do have an older DIY book, "CNC Robotics" by Geoff Williams that was published before the 3-D printing came to be. It may be useful. It uses Corel Draw as a front end that can generate HPGL format, not Gcode. (but appears to convert to Gcode).
Gcode is comprehensive and still actively supported. In fact, another Arduino project that is separate from the 3-D printer community support the full Gcode interpretation (or at least claims to do so).
+++++
And so, there you have it --- a general survey of current status.
I suppose that if all else fails, you can start out with Don Starkey's code to bench test and then jump to using an ArduinoUNO for actual 3-D printing or an Arduino Gcode interpreter to run other devices.
https://github.com/grbl/grbl
But that really avoids getting any new code written for full Propeller CAD -- unless the Arduino C code can be ported into GCC on a Propeller.
******************
No exactly sure where STL file format would fit in.
To me personally, that might be provided to a Gcode compiler outside the Propeller.
http://slic3r.org/
The whole HPGL and Gcode concept was actually created as a US government project and given over to the public domain. So there is a large following and lots of opportunity to find software tools for file conversion.
At some point, the 3-D printer is doing one slice at a time and needs to have data fed into it as one line at a time.
http://www.mmsonline.com/articles/machining-from-stl-files
https://github.com/grbl/grbl
My older book, "CNC Robotics" mentions HPGL generated by Corel Draw bying useful and I am not sure how the two reconcile with each other. It uses an older CNC application called KCam and in Chapter 10 discusses Gcode examples and use in depth
A history of the origins of Gcode might be helpful.
http://www.cnczone.com/forums/g-code-programing/39190-history-g-code.html
http://en.wikipedia.org/wiki/G-code
http://www.practicalmachinist.com/vb/cnc-machining/all-g-code-converter-g-codes-tools-260907/
Sure about that?
HPGL was invented by Hewlett-Packard, (the HP in HPGL)
http://en.wikipedia.org/wiki/HPGL
G-Code was designed by MIT:
http://en.wikipedia.org/wiki/G-code
This was later standardized as RS-274 (Gerber Format):
http://en.wikipedia.org/wiki/RS-274
I don't believe the G-Code will be all that hard to figure out for a 3D printer, but I could be wrong. I think the hard part will be converting the STLs into G-Code, but even the STL file format does not look all that complicated, except how they store the vertex infomation, because I never learned that type of math. Additionally converting the G-Code into machine movement could be quite complicated, but as you say, Don Starkey has figured a lot of that out already.
I now have the sander securely mount, with a new belt and disc attached. I also have the makeshift table attached and it is rock solid, just the way I wanted it. Now all I have to do for the sander is make a little fence, square and level the fence to the face of the disc, and securely fasten it. I figure about another hours worth of work, and the sander should be ready for my beckon call
Do you need to run the STL to G-Code conversion on the prop board? If not, there are many convertors that will run on the same computer where you create the STL file. There are apps such as 3licer (Slicer), Kiss and SkeinForge that will do the conversion on your PC. There are python sources that do the conversion as well.
Any of these should make your work a little simpler.
dgately
Yes, an all-in-one solution would be advantageous!
G-Code is drop dead easy as we have discussed over the phone. STL conversion is something I have to look at.
Jim
A lot has changed over the last decade and I am a bit behind the eight ball, because I have not kept myself abreast of the latest technology, but that doesn't mean that I am completely ignorant. Let's say that the 3D printer has an on board computer with a full operating system, internet access, and loaded with 3D modeling and CNC software, along with a favorites list linking to all the popular 3D sites for experimenting and STL downloads. That would drive up the prototype cost as well as any possible retail cost, but that would greatly simplify everything.
So let's say the core package is the computer that I mentioned, then just add the following items, and Brucie will be ready for some fun
- Custom cabinet
- Power supply
- Propeller CNC control board
- Core components of the 3D printer
- Filament
- Ethernet cable
- Internet connection
- Various cabling
I am now thinking that is the way to go, because it provides the least path of resistance, and greatly simplifying the research and development aspect of this project.The questions then become:
- What type of operating system?
- What type of 3D printer control software?
- What type of 3D modeling or CAD software?
And of course the control and modeling software must be compatible with the operating system. There is no doubt that a proper combination of these three with an onboard computer would simplify everything.Including a PC might be the right way to go. I have a RapMan3.1 printer (company and product extinct) since a couple of years.
The whole 3d stuff is very time consuming and takes a lot of computer power.
If anybody then @Lonesock is able to write a slicer for the prop. He wrote the Kiss slicer and has some deep understanding of mathematics.
But it will be way to slow.
To answer your questions
1) Even if I am a Windows user, I think here Linux might be the way to go.
2) This should run on P1/P2 boards. SD card on Prop or (better) a big external RAM as buffer since G code files get pretty big.
MUST support saving from PC to SD card on Prop without removing card. This is a big pain with my current printer.
SHOULD support Ethernet for this since usb/serial is very slow on big files.
3) Here the world is wide open. I tried lots of them. You will need more then one, depending on project.
Overall you can move file between programs using stl or obj formats. Tons of other formats exist but those are quite common
Same thing with slicers. Some do one thing/object perfect and fail on other things/objects. Always a gamble.
3D printing needs support structures to be printed around your object in most cases. There slicer do different things.
The G-code is quite standard, the M-codes differ between programs. But this is solvable. Mostly Heater control and Fans.
And you have the main difference between 3D printing and CNC. The first is additive the second is subtractive.
They need quite different G-code for the same object...
Enjoy!
Mike
Thanks for responding.
Am I missing something or is it you?
Let's say you have the onboard computer and design something with the CAD or 3D modeling software, and save the file as STL format. So then you open this STL file with something like Mach 3 or a specialized 3D printer software. As I see it, this software would send G-Code to a Propeller controller board by let's say ethernet......
Ahhh.... After typing the previous sentences, I see where the confusion is..... I forgot to mention that the onboard computer would also have a G-Code generator for converting the STL files into G-Code.
This should eliminate the need for SD or RAM.
Or am I overlooking something?
EDIT: At that point, I believe the Propeller's sole responsibilty would be to interpret the G-Code, and then control appropiate inputs/outputs and provide temperature control.
I was just thinking along my common work path.
write script in OpenScad. look at 3Dmodel. change script. repeat.
if happy start slicing to create g-code - this usually takes a lot of time
get g-code to printer (sd-card) - not good. disturbs workflow.
let printer print - this also takes a lot of time.
So while printer prints I would like to have my screen for development. Not displaying status of print.
But you need to watch the printer constantly. It needs its own display. Thus I think the Prop should do that part.
Like in Dons code. But LCD/TV instead of Serial Terminal. Simple Menu, some buttons to navigate File System on SD.
Just run another print of something you have again. direct from SD. Stop, restart, manual adjustment. Small stuff.
All without the need to start Mach3 or Kisslicer or whatever slicer and do it all over again.
Jumper on reset for programming the Props and you even can restart your in-build PC while printing.
If you haven't had a 3D printer you are not aware of how much patience you need to get anything printed successful.
I just mention that because I do have some problems with my temper sometimes. Along the line you described in some of your threads.
Those printer work better if you yell at them I guess.
So when you finally have a 'working' print you need to keep it somewhere. Its more than just G-code for movement.
You need comments. What type of filament used. Settings for FAN/Heated Bed/Overall Speed.
This is for sure a multi p1 job, but here the propeller can show his muscles. one prop for Ethernet/GUI/SD one prop for running the hardware.
For a long time now I am thinking of a replacement controller for my RapMan. It works like it is. But it could be so much better.
Enjoy!
Mike
Thanks for your input, I appreciate it.
It seems to me you are again putting the cart before the horse.
Nevermind all the software, files, CAD, STL and GCode ponderings...... what you should focus on, IMHO, is your mechanics. It will keep your hands full. Perhaps even your life full.
From past postings, I conclude that you are a perfectionist. But in this CNC field, perfection comes after a LOT of patience and experience. In the past you have frequently found "perfect" solutions, only to later find they were not so perfect afterall. So, please, dont underestimate what is involved here. I'm sorry, but a belt and disk sander just doesn't cut it (pun) to get the results I believe you are looking for. You will need to get some serious precision measuring tools and experiment with your design. It will likely take multiple passes.
So I'm encouraging you to follow your journey, but be prepared for numerous setbacks. At least if you want something better than the popular fare of the day. One I tested out recently had more than 20 thou deflection in one of its main beams as the carriage reversed. I was looking to hold a 5 thou tolerance or better.
Everything in 3D printers I have seen so far, except for costly commercial products, is just absolute Smile. Unrepeatable, unreliable and unusable. A curiosity at best. You can do better, probably much better, but focus on those mechanics as without precision there, all the other chatter is pointless.
Good luck
Peter (pjv)
But I also feel very strongly that when people want to learn CNC, something that works less than perfect allows them to begin learning; whereas the high cost of industrial grade CNC bars entry.
And most importantly,
I would like to see a Propeller CNC board that is as good as any Arduinio solution.. Once that exists, something better than an Arduino soltuion is likely to evolve.
#########################
I suspect that LinuxCNC is the optimal OS.
It can be loaded as a LiveCD and the computer or laptop can be used for other uses with the original OS when the CD boot is not present. Or it can be installed in a dedicated Linux machine.
Yes indeed, HPGL is not public domain -- my mistake.
I have been running down a lot of various CNC choices and got the two confused. The book, "CNC Robotics" generates designs in Core Draw that are HPGL (intended to be ONE layer for a plotter) and then uses a different software that converts HPGL to G-code.
RipRap or 3-D printing requires a multilayer solution that really is a a creative extension to multiple, so conversion from STL files may seem the easiest for a lot of users. I am just not sure that STL is adequate for 3-D printing of objects with interior cavities.
+++
References to G-code are a bit problematic.
The actual complete specification is rarely deployed on one platform. After all, you are going to use either a plotter, a milling machine, a lathe, or a router -- so sub-set G-code interpreters are a logical outcome of which platform you use. And there are industry instances of customized sub-set application for specific use.
The complete G-code specification maybe referred to as RS274, RS274D, RS274X, or some other RS274xxxx. And theRS274 has far more than Gcode involved -- at least Mcodes, maybe Ncodes, and lots of other alphabetical prefix that slip in other funtions. So industry has historically worked on a pick and choose basis when producing a complete CNC product.
It seems that whatever the CAD front-end provides in a file is going to have to be examined for insertions of additional code to make it work with specific G-code interpeters.
Linux and Unix can find errors and ommision with a simple batch file and GREP as the material is all line-by-line.
Similarlly, Linux batch files can manipulate into a a ready file.
Sherline has a nice pdf on CNC milling and turning which includes a bit of history of Gcodes. It may provide a bit of useful background.
Apparently in printed circuit techonologies, RS274D is the original, and RS274X is an extended update.
Gerber files are a sub-set of G-code intended for creation of printed circuit boards.
Riprap files are a sub-set of G-code for the limited context of 3-D printer.
A lot of the file formats that might be converted to G-code originated as plotter files for various products as CAD software supports a wide variety of commercial plotters and that is where HPGL enters the file conversion scheme. Conversion from PDF files seems to not work.
Needless to say that it has been a long hard road for me and numerous experiments for me have failed, but I have also had my successes. I am a very stubborn and determined man to say the least, but persistence is one of the keys to success.
I suppose there are many here that highly underestimate me and my abilities, due to some of my failures, please don't be one of them. Instead I ask to you to please consider the wire bending CNC that I built. That machine straightens, pushes, bends, and manipulates high temper music wire having a diameter of 0.032" and 0.020" clearance anywhere in the wires path would bring that machine to a grinding halt and perhaps a wirery mess.
I would also like you to consider, that my current design is a culmination of several years worth of experimentation with linear movement and control, and that one of my main goals has always been to keep the tolerances tight, meanwhile also considering the thermal expansion of materials, which could also bring a machine to a grinding halt.
My concept is sound. Even if my current design fails, there are only three possible causes, which in turn have two remedies, and I have enough raw materials, to work through two of the three remaining possible problems, with the exception that the load may be to heavy for the X axis. In which case, I will have to increase the size of that axis. So if this discussion doesn't occur now, it would be occurring very soon.
I am certain that if you honestly knew me, you would not doubt my abilities.
It seems to me that if you have a table saw, most of this project could be done with a much higher degree of accuracy. A carbide tipped blade will cut aluminum.
Band saws are made for boat building or custom furnature, and the same for belt sander tables. You might consider a different tool set. Either a table saw, a radial arm saw, or a cutoff saw.
The table saw would be the best.
Even if you do NOT have a table saw, if you have a good worm-drive skill saw; you can build one from a few sheets of 5/8 or 3/4" plywood. Here in Taiwan, carpenters merely cust a slot and fit in a mount for the curcular saw in an upside down positon. So bypass the trigger and add another switch. Google 'DIY tablesaw' and look at all the images and web sites.
http://www.youtube.com/watch?v=9f6b4h3nqW4
On the table, rails and guides that are parallel to the blade are done with C clamps. For a 90 degree Tee to push material through, a router cuts slots in the table top and a Tee is fabricated from wood. Angle cuts might require an adjustible Tee or set angles just have different fabricated set devices.
Accuracy of the cuts can easily get down to 1/32" with square and 45 degree miters dead on.
When I was a General Contractor, I tried to cut all my material to 1/32" accuracy and builld a house withing 1/16" accuracy. That is way beyond providing as wood shrinks and moves; but tight tolerances always create the look and feel of a higher level of quality.
++++++++++++++
The situation with CNC is that tolerances are much tighter, trying to hold to something such at .0002" or better. I am sure the Propeller can do that if programmed well. And would be acceptiable as an alternative for conversion of older CNC equipment with out-dated or broken electronics.
_______________
Also, I have no problem with a CNC 3-D printer or a CNC router table built from plywood or well-aged oak. (green oak with warp very badly). Marine plywood is best as it has no voids, but it seems that Europe produces most of it. The US plywood product is everywhere; but the strongest, nicest plywood is imported from Europe. Particle board and a plywood product called MDO (medium density overlay) can work for big flat smooth non-structural surfaces.
Of course, if you are going for extremely accurate smooth cuts, the saw blade's sharpness and number of teeth is extremely importing. When I did finish work in custom homes, I would use a planer blade and have to swap out a new resharpened one every day.
The aluminum fence on my previously nice miter sled found that out the hard way...
C.W.
Alignment is everything, and here's why: Try to take a piece of 1" by 1" square tubing that is 2 feet long. Try to pull it apart at both ends. How much can you stretch it? Probably near nothing. Now, imagine you have a gantry that rides on the rails. One one end the rails are exactly 2 feet apart. On the other, they are 2 feet plus 5 thousandths. When the gantry reaches the over-sized side, it actually has to stretch. Steel/Aluminium don't stretch easily, and that's where you get your jam-ups. That's what makes it a useless machine when things are mis-aligned by a mere 5 thousandths.
So, forget doing anything that has tolerances over .001 of and inch.
1/32=.03125
1/64=.015625
1/128=.0078125
So, even 1/128 accuracy is unworkable for a CNC. There are some techniques described on CNCzone, as mentioned before. I've been down this road myself, and it's a huge struggle. Before I built a steel machine, I bought plans for one that my equipment allowed me to make from wood. http://hobbyrouterplans.com/
Despite seeing the machine in use at the NAMES show, my version barely worked.
So, if your interests are more for electronics than machine building, then I suggest you just buy a solution. Yeah, the first time I heard that on CNCzone, I didn't want to hear it. What fun is there in buying something when the goal is to create something all your own? Building your own machine can be done, but expect to become a machinist in the process.
I guess that's enough said on this.
I'm here for the electronics talk anyway.