Mini CNC case study
Forum » Contraptor Forum / Contraptor talk » Mini CNC case study
Started by: AlbanetcAlbanetc
On: 1256843589|%e %b %Y, %H:%M %Z|agohover
Number of posts: 76
rss icon RSS: New posts
Summary:
an experiment to design and build mini CNC machine from Contraptor set
Mini CNC case study
AlbanetcAlbanetc 1256843589|%e %b %Y, %H:%M %Z|agohover

So this is an experiment to see how quick/easy something useful could be built from Contraptor. I've gotten several emails regarding possibility of building a small CNC machine from Contraptor, so looks like this might be a good test. I had previously built the mini-router and it worked, but it was pretty cumbersome to assemble and adjust, hence another attempt.

Yesterday I did this napkin drawing.
flickr:4054409122
A CNC machine can be built in many different ways, this is just one of them: fixed gantry, moving table on X (or is it Y?), moving head on Y. Entire Y stage moves in Z.

Then I spent about 3 hours in Sketchup building the structure and some motion assemblies. The Sketchup file is on 3D warehouse, it is draft and unfinished: http://sketchup.google.com/3dwarehouse/search?q=contraptor+mini+CNC I think I'll change a few things and finish the design, hopefully today.
flickr:4055313946

Reply  |  Options
Unfold Mini CNC case study by AlbanetcAlbanetc, 1256843589|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
sparrsparr 1256848449|%e %b %Y, %H:%M %Z|agohover

Why is the Y/Z stage not centered over the range of motion in X (which is constrained by the locations of the bearings holding the table in place)? It looks like only one half of the table can be brought under the Y/Z stage

Why design the Y stage to move in Z? It seems like you are unnecessarily overloading the Z stage bearings/belt/screw. Instead you could put the Z stage mechanism on the Y stage, so that the Z stage only moves the tool, while the weight of the Z stage is supported by the Y stage.

Reply  |  Options
Unfold Re: Mini CNC case study by sparrsparr, 1256848449|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1256851195|%e %b %Y, %H:%M %Z|agohover

I put up some more screenshots of the design:

flickr:4056693954

The tool head is centered over the range of motion in X. It might be a bit too far out relative to Z rails, but we'll see.

Regarding Z on Y vs Y on Z - yes, Z on Y would probably be better. One issue though is that a single sliding element on angle rail can have some play if twisted. It's not a problem for something like extruder but for the milling head it might be as the head would be mounted some distance from angle giving it a moment arm. A pair of sliding elements with pair of angle rails would not have this problem but would seem too bulky for Z.

But I'm sure there are more optimal designs for something like min CNC. If you have one in mind - grab Sketchup and throw something together :)

Reply  |  Options
Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1256851195|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1256888678|%e %b %Y, %H:%M %Z|agohover

Worked some more on the design, changed some things, now it's ready for trial assembly. Sketchup file is at the same place: http://sketchup.google.com/3dwarehouse/search?q=contraptor+mini+CNC

Specs are becoming more or less clear - axis travel X=8", Y=6", Z=2" (though it will probably be 1.5" in Z with Dremel flex shaft). Pics including assembly guides are in the flickr set:
flickr:4057162105flickr:4057900064

Reply  |  Options
Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1256888678|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1257069580|%e %b %Y, %H:%M %Z|agohover

Spent about 5 hours on assembly today. A few hiccups but mostly done, only leadscrews/bearings/belts/motors left. About 90 assembly pics in the flickr set:
flickr:4063802068

Reply  |  Options
Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1257069580|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1257146825|%e %b %Y, %H:%M %Z|agohover

It was kind of an off day today, so I only spent about an hour in Sketchup doing some design modifications. Real life Y/Z stage had come out fairly heavy and it will be even heavier with Dremel on it, overloading the Z bearings (the problem pointed out above by sparr), so I'll add a pair of thrust bearings at the top of Z lead screws:

flickr:4067131395

Speaking of bearings, I had also planned to use Dremel flex shaft for milling, but after taking it apart yesterday in attempt to reduce radial play and discovering a pair of really tiny bearings, I think I'm going to use Dremel itself.

Reply  |  Options
Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1257146825|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1257235484|%e %b %Y, %H:%M %Z|agohover

Spent about an hour today; pretty much assembled the Z axis motion mechanism and realized that I don't have the right size belt for it. Bummer!

flickr:4070831879

Because I didn't have the belt in the 3D model, this problem sneaked in when I made the design more narrow which changed the distance between Z axis rails. Once again I'm reminded of the importance to work everything out in 3D before assembling.

I had encountered this problem before. From here, the options typically are: a) redesign, b) buy right size belt. This time I'll go with (b) because the belt is only $5.39 on Mcmaster and because I was going to order some stuff from Mcmaster anyway.

flickr:4071596074

I will also see if there is any way to c) mount tensioner pulley somewhere around there ^, though this would require some Contraptor acrobatics.

Highlight of the assembly:

flickr:4071594726
Reply  |  Options
Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1257235484|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
ril3yril3y 1257254155|%e %b %Y, %H:%M %Z|agohover

For the tensioner pulley… I can fab a plexi-flat part NP. Just give me some specs. Or perhaps something like this:

download?mid=93894e353220f1c263e7fcf19f0712f0&rtyp=lt&ctyp=other&ts=1257253797000

The link to this part is in google 3d warehouse under contraptor and rileyporter however here is the link. If you want to change it go ahead and I will print it when I get home. I walked out the door today and forgot to bring the stuff I was going to ship to you. So I can make this also before I ship.

Ril3y

Reply  |  Options
Unfold Re: Mini CNC case study by ril3yril3y, 1257254155|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1257294455|%e %b %Y, %H:%M %Z|agohover

Sure, I can try it out (as is on your sketch) if you include it.

Reply  |  Options
Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1257294455|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1257322070|%e %b %Y, %H:%M %Z|agohover

While I'm waiting for the belt to arrive, I decided to make a Dremel mount out of scrap square tube left from making early sliding elements. The process was fairly straightforward, except for 3/4" hole in 1/8 aluminum. I ended up drilling a bunch of 1/16" holes along the hole circumference and hammering the center out with a metalworking chisel. Then I cleaned the hole with large 5/16" high speed cutter until Dremel fit into the hole. Here is the mount:

flickr:4074656956

Here it is, with Dremel, installed into mini CNC:

flickr:4073899211

SVG file should be attached to this page; material is 1.5 x 1/8 aluminum square tube.

Reply  |  Options
Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1257322070|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1257752003|%e %b %Y, %H:%M %Z|agohover

On Thursday night I added X and Y motors, lead screws/nuts and belt:

flickr:4085209090

Then I had to take a break from mini CNC till late today, due to family matters.

Today I added stepper boards, connected them to Arduino and performed a few basic motion tests. This one is a circle:

Limit switches and X table still need to be added. I could make the table from 1/4 acrylic, but I'll wait for lasercut one from Riley.

Reply  |  Options
Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1257752003|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1258231854|%e %b %Y, %H:%M %Z|agohover

A few hours of work on Thursday night. Added a table from HDPE cutting board and after reading/research about stepper resonance and inertial dampers, decided to try simple flywheels on X and Y screws. The difference is clear - mini CNC can reliably do 20 in/min, straight lines and circles, effectively doubling the feedrate. Noise and vibration are significantly less. Don't know what the performance will be under milling load, hopefully not worse. Without flywheels, straight lines could be performed at 20 IPM but circles were jagged at four points where X speed = Y speed, on any feedrates past 10 IPM. Here is the videos of flywheels in action:

  • Test pattern at 20 IPM
  • XYZ motion
  • G-code fragment from earlier tests, run at 20 IPM (video is 4x realtime)


flickr:4101574112

The lasercut table from Riley arrived yesterday along with some templates and bunch of prototype plexi "skin" parts. It looks very cool comparing to the cutting board :)
flickr:4103110329flickr:4103110875

Yesterday I also started testing motion around the perimeter. With the exception of corners where the screws are sticking out, I get 6" of motion in X and 6" in Y. The X travel will be 8" when the whole gantry is moved 1" back - my mistake, fixed in Sketchup. The last 1/2" on either end of Y are a problem - it becomes increasingly difficult to rotate the lead screw and the motor stalls at 20 IPM. The reason is slight misalignment of Y lead nut and Y shaft mounts, which becomes pronounced as the lead nut approaches shaft mounts. I removed Y axis yesterday and pretty much took it apart in an attempt to fix it.

Last edited on 1258231987|%e %b %Y, %H:%M %Z|agohover By Albanetc + Show more
Reply  |  Options
Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1258231854|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
SchoeftingerSchoeftinger 1258405211|%e %b %Y, %H:%M %Z|agohover

Hi Albanetc,

I've been a curious follower of your mini CNC thread since the beginning.
Cudos to your mechanical engineering skills - you practically built that thing in no time!!!

However, since the mini CNC is just another prototype application of the Contraptor concept/kit, I'm starting to wonder if it's actually possible to use the Contraptor package for creation of a larger CNC.
During the past year, I had to do pretty time-consuming woodwork several times.
Unfortunately the parts I had (and will probably again have to) work on are dimensioned roughly 20"x15"x4" (LxWxH).
Do you think it's possible to use Contraptor for building a CNC prototype which is capable to work on workpieces that large?

Thanks,
-Schoeftinger

Reply  |  Options
Unfold Re: Mini CNC case study by SchoeftingerSchoeftinger, 1258405211|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
ril3yril3y 1258416759|%e %b %Y, %H:%M %Z|agohover

Larger CNC designs should not be all together that much more difficult to come up with. The only thing that you need to start to think about is if your materials start to bend the aluminum which of course will kill your accuracy. Also the obvious you will need much larger stepper motors. I am not quite sure that the reprap drivers will drive very large steppers well. But if you take the arduino / reprap stuff out of the picture and used say one of the commercially available pc kits I would imagine it would work.

But full speed ahead. Go download the contraptor mini-cnc from google warehouse and hack it up until you are at the sizes you were intending. A tip for this is you can always put a few 24's together and make them an component. Just knowing that you will have to make a 48" for contraptor instead of 2x 24's.

What sizes are you shooting for? I went and picked up some ACME threaded 1/2 screws that are 4' long each for some possible larger trials later down the line. But super cool any way you look at it!

ril3y

Reply  |  Options
Unfold Re: Mini CNC case study by ril3yril3y, 1258416759|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
SchoeftingerSchoeftinger 1258453288|%e %b %Y, %H:%M %Z|agohover

Thanks for the quick reply!

Rethinking my future requirements, I'm aiming at minimum (woodwork) dimensions of 30"x18"x5" (LxWxH).

However, even using the RepRap motors, the CNC would be much faster than I doing the routing, carving, cutting, rounding, etc. manually.
Of course the larger the CNC, the more power is required to move the router.
I have no clue whether the motors are powerful enough to move almost twice the weight.

I'm pretty skilled in software dev. - Do you think, the arduino hardware is not capable of handling larger motors, or is this a pure driver (software) issue?

A few more points:
Is there any info on how well the transformation from CAD-format (e.g. dxf) to G-Code works? - I had a look at the specs and there're also codes for changing the CNC tools etc. I'm curious if this actually works with the Contraptor/RepRap software stack.

Has anybody of you guys ever tried using models generated in Blender with Contraptor?

Have you considered using Contraptor to reproduce itself (metal CNC'ing itself).

schoeftinger

Unfold Re: Mini CNC case study by SchoeftingerSchoeftinger, 1258453288|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
ril3yril3y 1258464428|%e %b %Y, %H:%M %Z|agohover

Your dimensions should be "doable" however there would be quite a bit of tweaking here and there to be done. Sorry for the confusion but when I refer to a stepper driver I am referring to the PCB board that "drives" or "powers" the motor. Like this, http://www.thingiverse.com/thing:760

I have never used blender to design stuff. Google Sketchup works very good for our purposes. Perhaps when we create an contraptor extruder blender will be required.

For metal CNC'ing. YES! very much so. :) In fact Vitaly created a contraption for making the angle you can see it here: http://www.garagefab.cc/contraptor/what-can-be-built/perforaptor Its older and from what I remember it didnt really work super great but hey its a start. There are also a few other options. Like, getting a proxxon rotary tool instead which is suppose to be more powerful etc. And lastly you would need to slowly remove material in small steps. Not like a giant 1/4" thick cut at a time like you can do with mills etc.

Personaly I have not converted any DXF to Gcode but I think you can look on the reprap forums or post there for input.

Hope that answers a few questions. Thanks for being active in the contraptor community. Let use know / see what you build. We are attempting to grow a list of contraptions!

Ril3y

Last edited on 1258464513|%e %b %Y, %H:%M %Z|agohover By ril3y + Show more
Unfold Re: Mini CNC case study by ril3yril3y, 1258464428|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1258526593|%e %b %Y, %H:%M %Z|agohover

More powerful motors would require more powerful driver boards (like Geckos as James mentions below). The driver board interface is typically simple: digital pulse steps the motor, so in principle Arduino should be able to control the boards. Cdegroot mentioned inexpensive 3-axis board (Xylotex) in another thread, maybe he'll try it with Arduino :)

To go from DXF to G-Code, you need CAM software. I've been using CamBam recently and there are other free/open source alternatives out there too. Once I have functional mini CNC, I hope to get to documenting the software chain. Arduino G-code interpreter supports very basic subset of G-Code - straight lines, circles, pauses. No advanced stuff like tool changing (you'd need a tool changer for that too:).

As far as Blender - we'd love to see Contraptor components converted to other 3D formats since not everyone prefers Sketchup. Blender, being open source, would be a great start.

Reply  |  Options
Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1258526593|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1258525330|%e %b %Y, %H:%M %Z|agohover

Hi Schoeftinger,

Thanks for kind words, after nearly 2 years tinkering with Contraptor assembling contraptions comes easy :) It's the adjustment and tuning to decent performance that's pretty time consuming. In short, yes - it is possible to build larger CNC using Contraptor components. There are several factors though that need to be taken in consideration:

1. Power of the rotary tool - the best match for Contraptor is probably Dremel/Proxxon cutting wood/plastic in shallow passes. To get benefits of more powerful routers you'd need stronger frame, linear bearings and motors. Probably something to take care of the noise, too.
2. Rigidity of longer beams - this is mostly taken care of by using 80/20 T-slot, which Contraptor is compatible with (80/20 is fairly inexpensive on Ebay)
3. Weight of 80/20 and longer beams - this means either slower acceleration/speed or more powerful motors => more powerful driver boards => bigger power supply. Basically, more $$$.
4. Wear/long term reliability - because the set is mostly intended for prototyping and bootstrapping, long term reliability was not a design goal. With prototyping you would assemble and disassemble things all the time. With bootstrapping, you would assemble a small CNC machine or Repstrap which would mill or print parts for another CNC machine/Reprap.
Now, this doesn't mean that contraptions will fall apart after first use :) it just means that some design solutions will work in the long term for particular applications and others won't. One way to see what works and what doesn't is to try.

I dug up and uploaded to 3D warehouse a sketch of the mini router design using 80/20 T-slot and Contraptor parts, which I created a while ago:
download?mid=77de40f7e9977968fe722077966c7c7a&rtyp=lt&ctyp=other&ts=1258521803000
The work area in this design is I think 12"x24". Now, it is only a design (and unfinished one!), and there are several things that I would already do differently. But this hopefully illustrates the design process which is done largely in the computer and then recreated in flesh from Contraptor components.

Reply  |  Options
Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1258525330|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
SchoeftingerSchoeftinger 1258551431|%e %b %Y, %H:%M %Z|agohover

Hi again,

thanks - I'll need the luck! ;-)

I've already had a look at the other contraptions - including your mini router.
Why did you change the design for your cnc so radically? - Stability?

Besides that, I'm struggling with ideas how to fix the workpiece to the cnc table, while routing.
Large CNCs kind of suck the workpiece and therefore don't require additional clamps, etc..
However, when using clamps the workpiece might start moving around on the cnc table (once the part of wood where the clamp is fixed is cut off).
Neither is it feasible to attach a clamp somewhere at the center of the workpiece or attach it from beyond (using screws or whatever means).

How to you fix your work pieces on the mini cnc?

Before starting some actual work, I think I'll need to clarify a few more issues, such as this.

Another thing: given your response times, I assume you guys are either American night owls or europeans, right?
I'm asking because it appears that you support each other with building your contraptions…
BTW, I'm in Austria

Unfold Re: Mini CNC case study by SchoeftingerSchoeftinger, 1258551431|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1258572351|%e %b %Y, %H:%M %Z|agohover

Hi Schoeftinger,

I'm simply trying different designs, T-slot is useful with larger sizes and it is also faster to build with. On the other hand it's more expensive than angle so there isn't as much flexibility in trying different designs. One of the goals for this particular design above was to build a mini CNC router for cutting 12"x24" size of plywood/MDF/acrylic with Dremel/Proxxon.

Regarding workpiece clamping - with the mini-router, I milled the material in shallow passes - about 1/32" - so the cuts were gradually made deeper without disconnecting the milled part. Deeper passes are difficult for Dremel anyway, and this allows the workpiece to be clamped at the corners. The table can have the grid of holes drilled and tapped for clamping screws.

I can't speak for everyone here but Riley and I are American night owls, correct :)

Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1258572351|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
SchoeftingerSchoeftinger 1258586543|%e %b %Y, %H:%M %Z|agohover

Good… then on with the questions. ;-)

On the reprap page (http://reprap.org/bin/view/Main/Generation3Electronics) I saw that they have a new mainboard (V1.2) and new stepper drivers (2.3).
Do you actually use the original reprap board or is your arduino board something else?

The reprap site says, the new stepper driver can control motors up to 2A.
I'd select the following NEMA 23 motor:
http://uk.farnell.com/jsp/displayProduct.jsp?sku=4743167&CMP=e-3e6f
Do you think this particular motor may be powerful enough?

Since buying multiple sets of hardware will become very costly, I'd be happy to choose appropriate hardeware from the beginning.
Please let me know, if you have better motor/stepper driver proposals…

As soon as I have a shopping list, I'll sort out the total costs and go on…

Thanks for all your input!

Unfold Re: Mini CNC case study by SchoeftingerSchoeftinger, 1258586543|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1258698686|%e %b %Y, %H:%M %Z|agohover

Hi Schoeftinger,

We're currently using Reprap v1.2 Stepper Driver Boards to drive stepper motors and Arduino as controller. We have not tested Reprap v2.3 stepper board with Contraptor steppers - so I can't really say that they work, but unless overheating of the board is an issue, they should.

The motor you linked has higher torque than Reprap recommended one, but also higher resistance/rated voltage (8V) which makes me wonder whether the stepper board (either v1.x or v2.x) will have enough power to drive this stepper. Usually steppers are driven at significant overvoltage - for example Contraptor steppers are rated for 2.3V while PC power supply puts out 12V.

If you're looking at the above 80/20 sketch, my wild guess is that torque rating around 150-200 oz*in would be needed to move the gantry with more or less decent speed. This would require more powerful stepper board. Please don't hold me to this number though :)
Y and Z motors on the contrary would not need to be as powerful, so if you needed to upgrade, it would likely be for one motor/board set.

My preference in an unknown situation is to start with something cheaper and upgrade as needed, but that's me.
Alternatively, you could estimate the power you'd need based on the estimated weight of the gantry and your desired speeds and accelerations.

Reply  |  Options
Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1258698686|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
CubespawnCubespawn 1258470992|%e %b %Y, %H:%M %Z|agohover

I also think a larger CNC is "doable" using Contraptor, but given the requirements for a larger motor driver board per axis, you might want to consider using a Cubespawn (www.cubespawn.com) 1 meter cube - as Albanetc, Ril3y and I have discussed, Contraptor is ideally suited to building prototypes, due to its flexibility. But in a production machine its flexibility may be a mixed blessing, as the high fastener count may be susceptible to problems with vibration, which a router produces a lot of…

A Cubespawn solution will cost more than Contraptor as well, although Ebay is a good source for aluminum 80/20 structural material, you could still use the Arduino for control, but drivers might be this:
http://www.parkermotion.com/products/Stepper_Drives_and_Motors__4003__30_32_80_567_29.html
or
http://www.geckodrive.com/
motors like this
http://cgi.ebay.com/GP54760-Parker-OEM83-93-MO-DS34-Nema-34-Stepper-Motor_W0QQitemZ330346167160QQcmdZViewItem?rvr_id=&itemid=330346167160
and so on

If you should decide to scale Contraptor up, the same drivetrain considerations would apply to it as a Cubespawn solution.
you might consider scaling the structural components up, as in: 2 inch angle for long spans…

Either way, building a CNC is like all learning expieriences: i.e. slightly painful at first, but ultimatley rewarding,
Anyhow, theres my 2 cents! ;-)
Good Luck!
James

Last edited on 1258471381|%e %b %Y, %H:%M %Z|agohover By Cubespawn + Show more
Reply  |  Options
Unfold Re: Mini CNC case study by CubespawnCubespawn, 1258470992|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
SchoeftingerSchoeftinger 1258477581|%e %b %Y, %H:%M %Z|agohover

Thanks again for the input!

I just had a short glimpse at the CubeSpawn site.
However, I don't fully understand what the project is exactly about.
It appears that you try building a production-grade, pluggable tool set whose components can be combined to act as an overall production facility.
Correct?

Besides stability, what's the benefet of using a 1x1m cube for the CNC?

Reply  |  Options
Unfold Re: Mini CNC case study by SchoeftingerSchoeftinger, 1258477581|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
CubespawnCubespawn 1258485548|%e %b %Y, %H:%M %Z|agohover

Yes, Your summary is accurate.

The Cubespawn projects goals are to:
Provide a starting point for a bootstrapped manufacturing facility, with open source versions of the main (existing) manufacturing techniques to be added over time. (flexibility is desired over capacity) Like Vacuum Forming, pick and place, CNC routing/milling - and perhaps someday: Aluminum re-melt (induction/arc furnace) plastic re-grind - plastic or aluminum extrusion, on and on…

To keep part counts as low as possible - if it has to make its own parts, then re-useing components and short BOMs are important.

To add a library of parts to make whatever is needed over time and share that as open source designs.

To do it at a reasonable cost - there is more to it than that, but…

There are two main (percieved) benefits to the cube approach…
Mechanical:
Structural ridgidity from a relativly lightweight frame, also modularity - its not clear on the site yet, but it incorporates a pallet handler at the base, power, network, motion control in a small package - I have started with the 1/2 meter version to control costs while prototyping - but most designs will scale up well.

Form Factor:
If designers have a standard to build to, and the completed designs are modular, everybody wins for usability - anything I design, you can use - and if you contribute your designs, I (or anyone else) can then use them, but more important, if you design a Vacuum former, it'll bolt up to my router so you can form and trim-out parts in one process.
This is an open ended system, no constraints except working envelope - but, at the same time, it retains the benefits of standardization.

One thing to note - the cube form makes it harder to access the workpiece, but a second (open) frame for loading/unloading the pallet solves this, and, really, the goal here is automated handling - so its not intended to work like an open CNC table….

I hope this answers your questions, if you have any more, I'll do my best to answer them ;-)

James

Last edited on 1258496284|%e %b %Y, %H:%M %Z|agohover By Cubespawn + Show more
Reply  |  Options
Unfold Re: Mini CNC case study by CubespawnCubespawn, 1258485548|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1258712171|%e %b %Y, %H:%M %Z|agohover

This is what I made tonight. This is just a wheel. I wanted to test how it would come out before cutting the inertial damper wheels for steppers. It took about 10 minutes to cut, using tungsten carbide bit, speed setting 2, pass depth of 0.02" and feedrate of 12 IPM. I got these parameters from earlier mini router experiments/tests.
flickr:4118807483flickr:4118807383

This is the cutting process video. The noise is very manageable, but the mess isn't. I need some kind of vacuum to get the swarf out as it forms, otherwise it'll get on the leadscrews, bearings and cause trouble.

So the object is great but can it be useful other than the piece of art? I'm talking about the accuracy of the cut.
The outside cut seems to be right on the spot. The inside cut seemed 1/64" bigger than it should be but then I noticed the gap on my caliper. So far so good.
flickr:4119579368flickr:4118807517flickr:4118807537

Areas for improvement?
1. Speed - I'd like to go 60 IPM +. 15-20 IPM is probably as good as it gets with all-thread leadscrews. Also not sure how will Dremel take faster feedrates and whether pass depth needs to be decreased proportionally.
2. It's pretty inconvenient to attach workpiece to the table. Ideally it should have tapped holes.
3. Vacuum

Last edited on 1258743115|%e %b %Y, %H:%M %Z|agohover By Albanetc + Show more
Reply  |  Options
Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1258712171|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1259830809|%e %b %Y, %H:%M %Z|agohover
flickr:4155113268
Discovered an interesting problem with Arduino and GCode Interpreter - it pretty much hangs after series of very short moves are commanded. This problem first happened when mini CNC was going through the GCode output from Cambam - I exported Sketchup drawing of the inertial damper disk into DXF and used Cambam to generate GCode in a shortest possible way, without recreating the circles. As a result, all circles, including small ones, consisted of a bunch of very short lines which interpreter/Arduino apparently couldn't handle. Reset helped to a point, then I had to reload the firmware a couple of times.

I also reproduced the problem when trying to engrave a small text in the acrylic piece above - see unfinished "Hello W". The text height is about 0.1", or about 2.5 mm. The V bit I used is really sharp, I think the groove should be finer with a larger angle. Nevertheless, the text seems to be fairly accurate.

I'm using older (and buggier) Arduino software (0012) because it's the latest software with which GCode Interpreter actually fits into Arduino (Diecimila) on Ubuntu. Apparently newer software has larger libraries. The interpreter comes with Reprap related extruder code, I guess I will try removing this code to see if the interpreter will fit on a later version.

The good thing is that the problem appears to be easily reproducible.

Last edited on 1267559311|%e %b %Y, %H:%M %Z|agohover By Albanetc + Show more
Reply  |  Options
Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1259830809|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
gatonerogatonero 1269890131|%e %b %Y, %H:%M %Z|agohover

I discovered the same "interesting" problem with Arduino and GCode Interpreter, all attempts to engrave some letters like "Hello World" ended up in perfect circle or some crippeld lines. I wrote "Hello World" in cambam and converted it to GCode:

( Made using CamBam - http://www.cambam.co.uk )
( HelloWorld 3/27/2010 9:13:40 PM )
( T0 : 0.0 )
G21 G90 G64 G40
G0 Z1.5
( T0 : 0.0 )
T0 M6
( Engrave1 )
G17
M3 S0
G0 X1.744 Y1.7862
G1 F4.0 Z0.0
G1 F8.0 X0.6561
G1 Y0.8448
G1 X0.8768
G2 X0.9608 Y0.8214 I0.0099 J-0.1267
G2 X0.9862 Y0.7628 I-0.0474 J-0.0553
G2 X0.9608 Y0.7042 I-0.0764 J-0.0017
G2 X0.8768 Y0.6807 I-0.0741 J0.1033
G1 X0.3065
G2 X0.2225 Y0.7042 I-0.0099 J0.1267
G2 X0.1971 Y0.7628 I0.051 J0.0569
G2 X0.2225 Y0.8214 I0.0728 J0.0033
G2 X0.3065 Y0.8448 I0.0741 J-0.1033
G1 X0.492
G1 Y2.8018
G1 X0.3905
G2 X0.3045 Y2.8233 I-0.0106 J0.1402
G2 X0.2792 Y2.8839 I0.0533 J0.0579
G2 X0.3045 Y2.9424 I0.0728 J0.0033
G2 X0.3905 Y2.9659 I0.0755 J-0.1075
G1 X0.8768
G2 X0.9608 Y2.9424 I0.0099 J-0.1267
G2 X0.9862 Y2.8839 I-0.0474 J-0.0553
G2 X0.9608 Y2.8233 I-0.0787 J-0.0026
G2 X0.8768 Y2.8018 I-0.0739 J0.1141
G1 X0.6561
G1 Y1.9503
G1 X1.744
G1 Y2.8018
G1 X1.5253
G2 X1.4413 Y2.8233 I-0.0101 J0.1356
G2 X1.4159 Y2.8839 I0.0533 J0.0579
G2 X1.4393 Y2.9424 I0.0757 J0.0037
G2 X1.5253 Y2.9659 I0.0755 J-0.1075
G1 X2.0116
G2 X2.0566 Y2.9617 I0.0026 J-0.2152
G2 X2.0975 Y2.9424 I-0.0154 J-0.0859
G2 X2.1229 Y2.8839 I-0.0474 J-0.0553
G2 X2.0975 Y2.8233 I-0.0787 J-0.0026
G2 X2.0116 Y2.8018 I-0.0753 J0.1187
G1 X1.91
G1 Y0.8448
G1 X2.0956
G2 X2.1795 Y0.8214 I0.0099 J-0.1267
G2 X2.2049 Y0.7628 I-0.0474 J-0.0553
G2 X2.1795 Y0.7042 I-0.0764 J-0.0017
G2 X2.0956 Y0.6807 I-0.0741 J0.1033
G1 X1.5253
G2 X1.4413 Y0.7042 I-0.0099 J0.1267
G2 X1.4159 Y0.7628 I0.051 J0.0569
G2 X1.4393 Y0.8214 I0.0757 J0.0037
G2 X1.5253 Y0.8448 I0.0755 J-0.1075
G1 X1.744
G1 Y1.7862
G0 Z1.5
G0 X4.3104 Y1.6534
G1 F4.0 Z0.0
G3 F8.0 X4.0526 Y2.0948 I-0.7038 J-0.1151
G3 X3.5585 Y2.2647 I-0.4773 J-0.5846
G3 X3.2965 Y2.2245 I-0.0068 J-0.8279
G3 X3.0643 Y2.0967 I0.2306 J-0.6943
G3 X2.8065 Y1.6534 I0.4521 J-0.5595
G1 X4.3104
G0 Z1.5
G0 X4.4764 Y1.4874
G1 F4.0 Z0.0
G1 F8.0 X2.8045
G3 X2.8894 Y1.2057 I0.8737 J0.1096
G3 X3.0702 Y0.9737 I0.6847 J0.347
G3 X3.3297 Y0.8258 I0.504 J0.5825
G3 X3.6249 Y0.7803 I0.2862 J0.8779
G3 X4.0096 Y0.8409 I-0.0133 J1.3376
G3 X4.3378 Y1.001 I-0.2664 J0.9619
G2 X4.4022 Y1.0303 I0.0779 J-0.0858
G2 X4.4569 Y1.0049 I-0.0004 J-0.0724
G2 X4.4803 Y0.9483 I-0.0537 J-0.0554
G2 X4.4491 Y0.8839 I-0.0926 J0.0051
G2 X4.2916 Y0.7748 I-0.4154 J0.4316
G2 X4.1151 Y0.7003 I-0.6832 J1.3716
G2 X3.6249 Y0.6163 I-0.4888 J1.3804
G2 X3.2444 Y0.6825 I-0.0114 J1.0601
G2 X2.9198 Y0.8917 I0.3396 J0.8836
G2 X2.6385 Y1.5616 I0.6251 J0.6564
G2 X2.9022 Y2.1749 I0.8245 J0.0089
G2 X3.5585 Y2.4307 I0.6329 J-0.6537
G2 X3.917 Y2.368 I0.0118 J-0.9889
G2 X4.2206 Y2.1671 I-0.3097 J-0.7976
G2 X4.419 Y1.8538 I-0.5979 J-0.5982
G2 X4.4764 Y1.4874 I-0.9932 J-0.3433
G0 Z1.5
G0 X6.0721 Y3.1319
G1 F4.0 Z0.0
G1 F8.0 Y0.8448
G1 X6.7167
G2 X6.7617 Y0.8406 I0.0026 J-0.2152
G2 X6.8026 Y0.8214 I-0.0154 J-0.0859
G2 X6.828 Y0.7628 I-0.0474 J-0.0553
G2 X6.8026 Y0.7042 I-0.0764 J-0.0017
G2 X6.7167 Y0.6807 I-0.0755 J0.1075
G1 X5.2635
G2 X5.1795 Y0.7042 I-0.0099 J0.1267
G2 X5.1542 Y0.7628 I0.051 J0.0569
G2 X5.1795 Y0.8214 I0.0728 J0.0033
G2 X5.2635 Y0.8448 I0.0741 J-0.1033
G1 X5.9081
G1 Y2.9659
G1 X5.4354
G2 X5.3495 Y2.9893 I-0.0095 J0.1344
G2 X5.3241 Y3.0499 I0.0533 J0.0579
G2 X5.3495 Y3.1085 I0.0764 J0.0017
G2 X5.4354 Y3.1319 I0.0755 J-0.1075
G1 X6.0721
G0 Z1.5
G0 X8.4725
G1 F4.0 Z0.0
G1 F8.0 Y0.8448
G1 X9.117
G2 X9.1621 Y0.8406 I0.0026 J-0.2152
G2 X9.203 Y0.8214 I-0.0154 J-0.0859
G2 X9.2284 Y0.7628 I-0.0474 J-0.0553
G2 X9.203 Y0.7042 I-0.0764 J-0.0017
G2 X9.117 Y0.6807 I-0.0755 J0.1075
G1 X7.6639
G2 X7.5799 Y0.7042 I-0.0099 J0.1267
G2 X7.5545 Y0.7628 I0.051 J0.0569
G2 X7.5799 Y0.8214 I0.0728 J0.0033
G2 X7.6639 Y0.8448 I0.0741 J-0.1033
G1 X8.3085
G1 Y2.9659
G1 X7.8358
G2 X7.7499 Y2.9893 I-0.0095 J0.1344
G2 X7.7245 Y3.0499 I0.0533 J0.0579
G2 X7.7499 Y3.1085 I0.0764 J0.0017
G2 X7.8358 Y3.1319 I0.0755 J-0.1075
G1 X8.4725
G0 Z1.5
G0 X11.5409 Y1.5225
G1 F4.0 Z0.0
G3 F8.0 X11.3202 Y2.0479 I-0.7091 J0.0112
G3 X10.7889 Y2.2647 I-0.5179 J-0.5097
G3 X10.2557 Y2.046 I-0.0121 J-0.7296
G3 X10.037 Y1.5225 I0.4912 J-0.5127
G3 X10.2557 Y0.9991 I0.7142 J-0.009
G3 X10.7889 Y0.7803 I0.5211 J0.5109
G3 X11.3202 Y0.9971 I0.0134 J0.7265
G3 X11.5409 Y1.5225 I-0.4926 J0.516
G0 Z1.5
G0 X11.7069
G1 F4.0 Z0.0
G2 F8.0 X11.4374 Y0.8819 I-0.8667 J-0.0124
G2 X10.7909 Y0.6163 I-0.6319 J0.6183
G2 X10.1405 Y0.8819 I-0.0165 J0.8886
G2 X9.8729 Y1.5225 I0.6064 J0.6295
G2 X10.1405 Y2.1631 I0.8698 J0.0129
G2 X10.7909 Y2.4307 I0.6344 J-0.6177
G2 X11.4374 Y2.1651 I0.0146 J-0.884
G2 X11.7069 Y1.5225 I-0.5993 J-0.6292
G0 Z1.5
G0 X15.087 Y0.6807
G1 F4.0 Z0.0
G1 F8.0 X14.8292
G1 X14.3644 Y2.3038
G1 X13.9093 Y0.6807
G1 X13.6515
G1 X13.4093 Y2.8018
G1 X13.3487
G2 X13.2648 Y2.8233 I-0.0101 J0.1356
G2 X13.2394 Y2.8839 I0.0533 J0.0579
G2 X13.2648 Y2.9424 I0.0728 J0.0033
G2 X13.3487 Y2.9659 I0.0741 J-0.1033
G1 X13.9581
G2 X14.0031 Y2.9617 I0.0026 J-0.2152
G2 X14.0441 Y2.9424 I-0.0154 J-0.0859
G2 X14.0695 Y2.8839 I-0.0474 J-0.0553
G2 X14.0441 Y2.8233 I-0.0787 J-0.0026
G2 X13.9581 Y2.8018 I-0.0753 J0.1187
G1 X13.5753
G1 X13.7921 Y0.8682
G1 X14.2355 Y2.46
G1 X14.4874
G1 X14.9425 Y0.8682
G1 X15.1554 Y2.8018
G1 X14.7706
G2 X14.6866 Y2.8233 I-0.0101 J0.1356
G2 X14.6612 Y2.8839 I0.0533 J0.0579
G2 X14.6866 Y2.9424 I0.0728 J0.0033
G2 X14.7706 Y2.9659 I0.0741 J-0.1033
G1 X15.3761
G2 X15.4211 Y2.9617 I0.0026 J-0.2152
G2 X15.462 Y2.9424 I-0.0154 J-0.0859
G2 X15.4874 Y2.8839 I-0.0474 J-0.0553
G2 X15.462 Y2.8233 I-0.0787 J-0.0026
G2 X15.3761 Y2.8018 I-0.0753 J0.1187
G1 X15.3155
G1 X15.087 Y0.6807
G0 Z1.5
G0 X17.5187 Y1.5225
G1 F4.0 Z0.0
G3 F8.0 X17.298 Y2.0479 I-0.7091 J0.0112
G3 X16.7667 Y2.2647 I-0.5179 J-0.5097
G3 X16.2335 Y2.046 I-0.0121 J-0.7296
G3 X16.0148 Y1.5225 I0.4912 J-0.5127
G3 X16.2335 Y0.9991 I0.7142 J-0.009
G3 X16.7667 Y0.7803 I0.5211 J0.5109
G3 X17.298 Y0.9971 I0.0134 J0.7265
G3 X17.5187 Y1.5225 I-0.4926 J0.516
G0 Z1.5
G0 X17.6847
G1 F4.0 Z0.0
G2 F8.0 X17.4152 Y0.8819 I-0.8667 J-0.0124
G2 X16.7687 Y0.6163 I-0.6319 J0.6183
G2 X16.1183 Y0.8819 I-0.0165 J0.8886
G2 X15.8507 Y1.5225 I0.6064 J0.6295
G2 X16.1183 Y2.1631 I0.8698 J0.0129
G2 X16.7687 Y2.4307 I0.6344 J-0.6177
G2 X17.4152 Y2.1651 I0.0146 J-0.884
G2 X17.6847 Y1.5225 I-0.5993 J-0.6292
G0 Z1.5
G0 X18.9718 Y2.3721
G1 F4.0 Z0.0
G1 F8.0 Y1.9581
G2 X19.2016 Y2.1558 I3.7945 J-4.178
G2 X19.4503 Y2.3292 I1.0866 J-1.2936
G2 X19.5927 Y2.3888 I0.3906 J-0.7329
G2 X19.7452 Y2.4131 I0.1581 J-0.5002
G2 X20.0167 Y2.3135 I-0.0027 J-0.4272
G2 X20.0918 Y2.2492 I-0.4853 J-0.6421
G2 X20.1246 Y2.2114 I-0.2131 J-0.2188
G2 X20.1437 Y2.1651 I-0.0679 J-0.055
G2 X20.1183 Y2.1026 I-0.0849 J-0.0019
G2 X20.0577 Y2.0792 I-0.0575 J0.0586
G2 X20.0245 Y2.085 I-0.0021 J0.0849
G2 X19.9737 Y2.1299 I0.2279 J0.3088
G3 X19.8546 Y2.2237 I-0.3736 J-0.3522
G3 X19.755 Y2.2491 I-0.1033 J-0.197
G3 X19.6199 Y2.2219 I0.0108 J-0.4027
G3 X19.4952 Y2.1631 I0.2992 J-0.7967
G3 X19.3567 Y2.0681 I0.7139 J-1.1886
G3 X18.9718 Y1.7432 I4.2691 J-5.449
G1 Y0.8448
G1 X19.6984
G2 X19.7434 Y0.8406 I0.0026 J-0.2152
G2 X19.7843 Y0.8214 I-0.0154 J-0.0859
G2 X19.8097 Y0.7628 I-0.0474 J-0.0553
G2 X19.7843 Y0.7042 I-0.0764 J-0.0017
G2 X19.6984 Y0.6807 I-0.0755 J0.1075
G1 X18.4112
G2 X18.3273 Y0.7022 I-0.0101 J0.1356
G2 X18.3019 Y0.7608 I0.051 J0.0569
G2 X18.3253 Y0.8155 I0.0709 J0.002
G2 X18.4112 Y0.8389 I0.0755 J-0.1075
G1 X18.8077
G1 Y2.2061
G1 X18.505
G2 X18.421 Y2.2296 I-0.0099 J0.1267
G2 X18.3956 Y2.2901 I0.0533 J0.0579
G2 X18.4191 Y2.3487 I0.0795 J0.0022
G2 X18.505 Y2.3721 I0.0755 J-0.1075
G1 X18.9718
G0 Z1.5
G0 X21.6515 Y3.1319
G1 F4.0 Z0.0
G1 F8.0 Y0.8448
G1 X22.296
G2 X22.341 Y0.8406 I0.0026 J-0.2152
G2 X22.382 Y0.8214 I-0.0154 J-0.0859
G2 X22.4073 Y0.7628 I-0.0474 J-0.0553
G2 X22.382 Y0.7042 I-0.0764 J-0.0017
G2 X22.296 Y0.6807 I-0.0755 J0.1075
G1 X20.8429
G2 X20.7589 Y0.7042 I-0.0099 J0.1267
G2 X20.7335 Y0.7628 I0.051 J0.0569
G2 X20.7589 Y0.8214 I0.0728 J0.0033
G2 X20.8429 Y0.8448 I0.0741 J-0.1033
G1 X21.4874
G1 Y2.9659
G1 X21.0148
G2 X20.9288 Y2.9893 I-0.0095 J0.1344
G2 X20.9034 Y3.0499 I0.0533 J0.0579
G2 X20.9288 Y3.1085 I0.0764 J0.0017
G2 X21.0148 Y3.1319 I0.0755 J-0.1075
G1 X21.6515
G0 Z1.5
G0 X24.7726
G1 F4.0 Z0.0
G1 F8.0 Y0.8448
G1 X24.9913
G2 X25.0363 Y0.8406 I0.0026 J-0.2152
G2 X25.0773 Y0.8214 I-0.0154 J-0.0859
G2 X25.1027 Y0.7628 I-0.0474 J-0.0553
G2 X25.0773 Y0.7042 I-0.0764 J-0.0017
G2 X24.9913 Y0.6807 I-0.0755 J0.1075
G1 X24.6066
G1 Y1.0069
G2 X24.2937 Y0.7199 I-0.8104 J0.5694
G2 X23.882 Y0.6163 I-0.4017 J0.7263
G2 X23.4542 Y0.7335 I0.0031 J0.8507
G2 X23.132 Y1.0714 I0.4363 J0.7388
G2 X23.0148 Y1.5225 I0.8274 J0.4557
G2 X23.132 Y1.9737 I0.9368 J-0.0025
G2 X23.4542 Y2.3116 I0.7586 J-0.4009
G2 X23.8839 Y2.4307 I0.4322 J-0.7243
G2 X24.2937 Y2.3251 I0.0079 J-0.8174
G2 X24.6066 Y2.0401 I-0.5247 J-0.89
G1 Y2.9659
G1 X24.3878
G2 X24.3428 Y2.9701 I-0.0026 J0.2152
G2 X24.3019 Y2.9893 I0.0154 J0.0859
G2 X24.2765 Y3.0499 I0.0533 J0.0579
G2 X24.3019 Y3.1085 I0.0764 J0.0017
G2 X24.3878 Y3.1319 I0.0755 J-0.1075
G1 X24.7726
G0 Z1.5
G0 X24.6066 Y1.5225
G1 F4.0 Z0.0
G3 F8.0 X24.555 Y1.8077 I-0.7707 J0.0079
G3 X24.3956 Y2.0499 I-0.6712 J-0.2682
G3 X24.1672 Y2.2099 I-0.5211 J-0.5008
G3 X23.8937 Y2.2647 I-0.2677 J-0.6264
G3 X23.3898 Y2.0499 I-0.0071 J-0.6816
G3 X23.1788 Y1.5225 I0.5128 J-0.511
G3 X23.3898 Y0.9952 I0.728 J-0.0147
G3 X23.8937 Y0.7803 I0.4968 J0.4668
G3 X24.3956 Y0.9952 I0.0061 J0.6795
G3 X24.6066 Y1.5225 I-0.517 J0.5127
G0 Z1.5
M5
M30

I CncSimultor it looked perfectly:

flickr:4473452729

And this is what I got (several attempts)
flickr:4474230256

Maybe the Arduino firmware is not capable to control such small movements. I consider to use a 3 Axis Parallel Interface with EMC

Reply  |  Options
Unfold Re: Mini CNC case study by gatonerogatonero, 1269890131|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1269913693|%e %b %Y, %H:%M %Z|agohover

Hi Christoph,

Before checking anything, rule out the EM interference from motor wires. I try to route logic wires as far as I can from the motor wires:
flickr:4292661490
Ideally, the logic wires need to be very short. This is the shortcoming of the current electronics kit, which is meant as an upgradeable starting point for trying things out.

I ran the same code on my mini CNC. Before it worked, I had to manually (via serial terminal) ensure that:

  • metric units are selected (G20G21)
  • absolute mode selected (G91G90)
  • zero is set (G92 X0 Y0 Z0)

Another difference is that my mini CNC currently has ACME leadscrews on X and Y which move the stages 0.25" per revolution, but I don't think this should affect anything as long as the feedrates are within the range of all-thread screws.

I also have to add that once I upgraded to Arduino Duemilanove from Diecimila, I could not reproduce the problem that I posted above.

flickr:4475140296

The pen was bending a bit, so some lines are not quite straight. An interesting thing is that "e" is rendered with an extra circle around the letter (see the large inch version). I'm not sure whether this is in the GCode or if it's interpreted that way.

Some observations:

  • GCode Interpreter can't process several G commands on one line. There is a line in the beginning of the file, switching to metric and absolute mode on one line. That command probably has no effect on the interpreter.
  • I saw problems with feedrate and units after switching between metric and imperial. As if the next command after switch is still executed in previous mode. Sometimes it looks like feedrate value is taken from another system (too slow in metric mode and too fast in imperial mode). To add to the complexity, there are 2 values of the feedrate - current (supplied via F code) and fast (used with G0 moves). All of this looks like a problem in the interpreter and needs more research.
  • The feedrate should not exceed bot capabilities, otherwise the motors will stall and lose the position. Depending on your friction, flywheels, alignment, the upper limit should be about 15 IPM for all-thread leadscrew. 20 IPM was unreliable in my tests. Sometimes a stall might happen in the normal speed envelope (probably due to vibrations/noise) but it's rare from my experience.
  • Default setting for fast feedrate (G0) in the firmware may be too fast. It was in my case and the motors stalled on a couple of G0 moves. This can be fixed by restricting the fast XY feedrate in the firmware.
  • After the gcode file is completed and if units are changed (G20 or 21), the bot often responds to the next command unpredictably. For example the command would be "G1 X1", but all 3 axes would start moving in unexpected direction. I wrecked a Shapie fine point that way :( I'm not sure why this happens, but again, I think it's something in the interpreter/arduino as everything works fine after reset.
Last edited on 1269990177|%e %b %Y, %H:%M %Z|agohover By Albanetc + Show more
Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1269913693|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1269971213|%e %b %Y, %H:%M %Z|agohover

So, in summary:

Assuming that the interference is ruled out, I think the problem is most likely that the bot was running in relative mode - i.e. every supplied XY coordinate is treated as offset from current position, as opposed to absolute target coordinate. This is the default mode and the switch to absolute never takes place because the absolute mode command (G91) is on the same line with metric mode command (G21, first line in your file).

Also, the feedrate used (4 and 8 mm/min) seems to be too slow, which probably adds to the impression that the bot is doing something strange. You might want to regenerate the file (or search/replace) with faster feedrate (say, 250 mm/min).

I also looked at the interpreter code yesterday and I think I tracked down the problem with switching between metric and imperial modes. I'm going to try some modifications and see if they fix it.

Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1269971213|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
gatonerogatonero 1269987671|%e %b %Y, %H:%M %Z|agohover
flickr:4476799121

I'm getting complete unpredictable results. This should be a hint to interferences. Have a look at my wiring:
The cables from arduino to the stepper boards are shorter than showed in the picture above. The distance to the cable of the stepper motors are as far as possible also to the cables of the PC power supply. Also I separated the perf bord for the PC power supply from the Mini CNC frame. The next step would be to make a complete EMF isolation.

Beside that I will post step by step what I have done.

  • I changed my firmware settings in init.pde to
//our maximum feedrates in units/minute
#define FAST_XY_FEEDRATE_INCH 15 //300
#define FAST_Z_FEEDRATE_INCH  15
#define FAST_XY_FEEDRATE_MM 360
#define FAST_Z_FEEDRATE_MM  360
  • I changed all the speed settings for the F commands to 180.0
  • I changed the beginning of my GCode file to
G21 (metric units)
G91 (incremental mode)
G92 X0 Y0 Z0 (set zero)
  • I made a reset several times. After that I powered the PC power supply and send via serial the GCode file.

My environment is a Arduino Duemilla and Arduiono 0018.

Conspicuous is, that I don't get any "Huh?" responses from the last both commands, also the Z axis is moving up only in the beginning, afterwards there are no more movements. It looks like some (most) commands are not executed by the Arduino firmware.

Please post your GCode (maybe just for the letter "H") and all your step by step instructions, how you got it run!

Unfold Re: Mini CNC case study by gatonerogatonero, 1269987671|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1269989745|%e %b %Y, %H:%M %Z|agohover

Hmm, even with interference, you should get some movement from X and Y. I'm assuming limit switches are wired correctly. Also I'm assuming that Arduino is Duemilanove, since you shouldn't be able to fit this code in Diecimila.

I actually ran your file as it is (only search/replacing the feedrate value in F commands). Prior to running, via serial terminal, i set the interpreter to metric (G20G21), then absolute mode (G91G90) and then zeroed the origin (G92 X0 Y0 Z0), then ran the file.

What is your acceleration settings from _init.pde?

Regarding the "Huh? <cmd>" response, I noticed that sometimes it seems to be out of order, but I haven't looked at the problem closely.

P.S. Sorry for the confusion above, I mixed up G20 with G21 and G90 with G91.

Last edited on 1269990127|%e %b %Y, %H:%M %Z|agohover By Albanetc + Show more
Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1269989745|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
gatonerogatonero 1269990531|%e %b %Y, %H:%M %Z|agohover

I get movements from X and Y but just one from Z. The limit switches are working correctly. And I am using Duemilanove (included in the set).

Here is my complete init.pde:

// define the parameters of our machine.
// belt drive
//#define X_STEPS_PER_INCH 200.0
//#define X_STEPS_PER_MM   7.874

// all thread leadscrew
#define X_STEPS_PER_INCH 8000.0
#define X_STEPS_PER_MM   314.961

// ACME leadscrew
//#define X_STEPS_PER_INCH 6400.0
//#define X_STEPS_PER_MM   251.968

#define Y_STEPS_PER_INCH 8000.0
#define Y_STEPS_PER_MM   314.961

#define Z_STEPS_PER_INCH 8000.0
#define Z_STEPS_PER_MM   314.961

//our maximum feedrates in units/minute
#define FAST_XY_FEEDRATE_INCH 15 //300
#define FAST_Z_FEEDRATE_INCH  15
#define FAST_XY_FEEDRATE_MM 360
#define FAST_Z_FEEDRATE_MM  360

// Maximum acceleration in units/minute/second
// E.g. for 300.0 machine would accelerate to 150units/minute in 0.5sec etc.
#define MAX_ACCEL_INCH 50.0 //500.0
#define MAX_ACCEL_MM 1200.0

// Maximum change in velocity per axis - if the change in velocity at the start
// of the next move is greater than this for at least one axis, we will decelerate
// to a stop before commencing the move, otherwise we will keep going
// value is units/minute
#define MAX_DELTA_V_INCH 5.0
#define MAX_DELTA_V_MM 100.0

// Set to one if endstop outputs are inverting (ie: 1 means open, 0 means closed)
// RepRap opto endstops are *not* inverting.
#define ENDSTOPS_INVERTING 1

// Optionally disable max endstops to save pins or wiring
#define ENDSTOPS_MIN_ENABLED 1
#define ENDSTOPS_MAX_ENABLED 1

// How many temperature samples to take.  each sample takes about 100 usecs.
#define TEMPERATURE_SAMPLES 5

// The *_ENABLE_PIN signals are active high as default. Define this
// to one if they should be active low instead (e.g. if you're using different
// stepper boards).
// RepRap stepper boards are *not* inverting.
#define INVERT_ENABLE_PINS 0

// If you use this firmware on a cartesian platform where the
// stepper direction pins are inverted, set these defines to 1
// for the axes which should be inverted.
// RepRap stepper boards are *not* inverting.
#define INVERT_DIR 1 // CHANGED CM - ONLY ONE FOR ALL AXES

#define STEPPERS_ALWAYS_ON 0

/****************************************************************************************
* digital i/o pin assignment
*
* this uses the undocumented feature of Arduino - pins 14-19 correspond to analog 0-5
****************************************************************************************/

//cartesian bot pins
#define X_STEP_PIN 3
#define X_DIR_PIN 4
#define X_ENABLE_PIN 5
#define X_MIN_PIN 6
#define X_MAX_PIN 7

#define Y_STEP_PIN 8
#define Y_DIR_PIN 9
#define Y_ENABLE_PIN 10
#define Y_MIN_PIN 11
#define Y_MAX_PIN 12

#define Z_STEP_PIN 14
#define Z_DIR_PIN 15
#define Z_ENABLE_PIN 16
#define Z_MIN_PIN 17
#define Z_MAX_PIN 18

//extruder pins
// NOTE - USING Timer1 FOR STEPPER TIMER SO CAN'T USER PINS 9 OR 10 FOR PWM
// OUTPUT (EXTRUDER_MOTOR_SPEED_PIN, EXTRUDER_HEATER_PIN, OR EXTRUDER_FAN_PIN)
#define EXTRUDER_MOTOR_SPEED_PIN   19
#define EXTRUDER_MOTOR_DIR_PIN     19
#define EXTRUDER_HEATER_PIN        19
#define EXTRUDER_FAN_PIN           19
#define EXTRUDER_THERMISTOR_PIN    -1  //a -1 disables thermistor readings
#define EXTRUDER_THERMOCOUPLE_PIN  -1 //a -1 disables thermocouple readings
Unfold Re: Mini CNC case study by gatonerogatonero, 1269990531|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1269992047|%e %b %Y, %H:%M %Z|agohover

The _init.pde looks correct.

So, what happens if you update the feedrate in your file, replace "G21 G90 G64 G40" line with the following:

G21 (mm)
G90 (absolute)
G92 X0 Y0 Z0 (zero to current position)

and send the file to interpreter? Can you take a video?

Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1269992047|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1270228396|%e %b %Y, %H:%M %Z|agohover

Christoph,

I forgot to ask one question - what are you using to send GCode file to the interpreter? The thing here is that the host software should wait for the "ok" response from the interpreter before sending next command, otherwise the commands get lost etc.

Sorry, I should have documented this. I added a Python script which can be used to send GCode file to the interpreter in this manner: http://www.contraptor.org/motion-control

Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1270228396|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
gatonerogatonero 1270229453|%e %b %Y, %H:%M %Z|agohover

Hi Vitaly,

just at the moment I'm uploading several videos which are showing all strange results. I did the uploads of the GCode files with cutecom, which of course doesn't wait for the 'ok' responses. This should be the explanation for the strange results. I will test the python script and will post the outcome.

Thanks for that hint.

Unfold Re: Mini CNC case study by gatonerogatonero, 1270229453|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
gatonerogatonero 1270231129|%e %b %Y, %H:%M %Z|agohover

YEAH!!! Thanks, that's it! :-D

The photo shows something what is hard to read as "Hello World" because the pen bended. But now it's working.

flickr:4484156809

All the time I wondered, whether Arduino firmware has a storage or routine which waits for the 'ok'. My fault, maybe I have been to narrow minded.

Last edited on 1270231185|%e %b %Y, %H:%M %Z|agohover By gatonero + Show more
Unfold Re: Mini CNC case study by gatonerogatonero, 1270231129|%e %b %Y, %H:%M %Z|agohover
Re: Mini CNC case study
AlbanetcAlbanetc 1270240854|%e %b %Y, %H:%M %Z|agohover

Oh I think it's a documentation omission. Right now it sounds as though you can send a file from terminal, which is not the case. I've been meaning to write a simple client in Python allowing user to jog the machine, switch units, have current position readout, as well as to open or copy-paste GCode for execution.

Unfold Re: Mini CNC case study by AlbanetcAlbanetc, 1270240854|%e %b %Y, %H:%M %Z|agohover
Happy Easter
gatonerogatonero 1270406581|%e %b %Y, %H:%M %Z|agohover
flickr:4489971601

Today I made my first engraving :-). It's a "Happy Easter" wish. the hight of one letter is about 1.5 cm which is about 0.6". What I realized is, that the working piece isn't in an exact right angle to the Z axis and there seems to be some failures in circle drawings like for the "e". Also there are three unmotivated circles in the lower right, which didn't apear in CncSimulator. But nevertheless I'm happy to get the machine working :-D

Last edited on 1270422712|%e %b %Y, %H:%M %Z|agohover By gatonero + Show more
Unfold Happy Easter by gatonerogatonero, 1270406581|%e %b %Y, %H:%M %Z|agohover
Re: Happy Easter
gatonerogatonero 1270422051|%e %b %Y, %H:%M %Z|agohover

Here you can see the beginning of the engraving.

Last edited on 1271023733|%e %b %Y, %H:%M %Z|agohover By gatonero + Show more
Unfold Re: Happy Easter by gatonerogatonero, 1270422051|%e %b %Y, %H:%M %Z|agohover
Re: Happy Easter
AlbanetcAlbanetc 1270534709|%e %b %Y, %H:%M %Z|agohover

In case of "e", the interpreter is drawing a full circle where it only needs to draw a small segment:

G1 X2.8045 Y1.4874
G3 X2.8894 Y1.2057 I0.8737 J0.1096

My guess is that the inaccuracies in other letters ("o","k","b") and extra circles in your engraving have the same root cause.

Unfold Re: Happy Easter by AlbanetcAlbanetc, 1270534709|%e %b %Y, %H:%M %Z|agohover
Re: Happy Easter
gatonerogatonero 1270662646|%e %b %Y, %H:%M %Z|agohover

What I have engraved is

"Frohe
Ostern
liebe Vesna"

The letters which went wrong are marked bold. The root cause seems to be, that there are failures in the Arduino firmware, which misinterpret circles and parts of circles.

I will do some testings in it.

Unfold Re: Happy Easter by gatonerogatonero, 1270662646|%e %b %Y, %H:%M %Z|agohover
Re: Happy Easter
AlbanetcAlbanetc 1270956321|%e %b %Y, %H:%M %Z|agohover

I think I fixed the problem:

In process_string.pde, find the following fragment:

      // Must reverse if dominant sign is negative and clockwise, or positive and counterclockwise (which is the same as dominantSign != direction)
      if (dominantSignTbl[startOctant] != arcDirection) stepOffset = -stepOffset;

and replace it with the following:

      // Must reverse if dominant sign is negative and clockwise, or positive and counterclockwise (which is the same as dominantSign != direction)
      // Must count backwards in sign table for counterclockwise
      if (dominantSignTbl[(arcDirection == ARC_CLOCKWISE) ? startOctant : 7 - startOctant] != arcDirection) stepOffset = -stepOffset;

It fixed the problem with "e" in my tests and I think should also fix the other problems with arcs. I'll upload the updated code to Sourceforge.

Unfold Re: Happy Easter by AlbanetcAlbanetc, 1270956321|%e %b %Y, %H:%M %Z|agohover
CCW arcs
gatonerogatonero 1271023046|%e %b %Y, %H:%M %Z|agohover

Today I tested these changing on process_string.pde. The arcs are looking much better, but all movements towards +X seem to have a -X component.

This is how it should look like:
flickr:4511025413

And this is what I got:
flickr:4511026519

Here is a video of the milling:

Unfold CCW arcs by gatonerogatonero, 1271023046|%e %b %Y, %H:%M %Z|agohover
Re: CCW arcs
AlbanetcAlbanetc 1271023649|%e %b %Y, %H:%M %Z|agohover

Hmm. Can you post the GCode from this example?

Unfold Re: CCW arcs by AlbanetcAlbanetc, 1271023649|%e %b %Y, %H:%M %Z|agohover
Re: CCW arcs
gatonerogatonero 1271023861|%e %b %Y, %H:%M %Z|agohover

Here it is:

( Made using CamBam - http://www.cambam.co.uk )
( e-circles 4/10/2010 1:23:46 AM )
( T0 : 0.0 )
G21 
G90 
G64 
G40
G92 X0 Y0 Z0 (set zero)
G0 Z1.5
( T0 : 0.0 )
T0 M6
( Engrave1 )
G17
M3 S0
G0 X17.6075 Y35.6797
G1 F100.0 Z-0.5
G1 F200.0 X21.4068 Y35.2654
G2 X20.1819 Y32.7363 I-9.0526 J2.8233
G2 X18.0773 Y30.7072 I-6.54 J4.6773
G2 X15.1243 Y29.4444 I-4.7414 J7.0037
G2 X11.8677 Y29.0857 I-2.9605 J11.9147
G2 X7.7803 Y29.6697 I-0.3853 J11.899
G2 X4.31 Y31.6621 I2.4791 J8.3368
G2 X2.1243 Y35.0552 I6.0574 J6.3024
G2 X1.532 Y38.9227 I12.7433 J3.9306
G2 X2.1286 Y42.9079 I14.0281 J-0.063
G2 X4.3508 Y46.4175 I8.5166 J-2.9342
G2 X7.6794 Y48.45 I6.1647 J-6.3539
G2 X11.6635 Y49.084 I3.6279 J-9.9636
G2 X15.5393 Y48.4587 I0.3433 J-10.1968
G2 X18.7718 Y46.4716 I-2.8213 J-8.2124
G2 X20.9465 Y43.0285 I-6.1748 J-6.3083
G2 X21.5294 Y39.1209 I-13.2192 J-3.9692
G2 X21.509 Y38.2561 I-32.37 J0.3319
G1 X5.3313
G3 X5.8549 Y35.6831 I9.9322 J0.6816
G3 X7.3535 Y33.4277 I5.7532 J2.1971
G3 X11.8881 Y31.7522 I4.14 J4.2305
G3 X15.3402 Y32.689 I0.3404 J5.5742
G3 X16.7206 Y34.0389 I-2.9329 J4.3799
G3 X17.6075 Y35.6797 I-7.0816 J4.888
G0 Z1.5
G0 X29.5284 Y38.6416
G1 F100.0 Z-0.5
G1 F200.0 X39.2186
G3 X38.9042 Y40.1621 I-7.6857 J-0.7967
G3 X38.1074 Y41.5387 I-3.7855 J-1.2722
G3 X34.4634 Y43.0376 I-3.3263 J-2.9075
G3 X31.0481 Y41.8413 I-0.2988 J-4.6203
G3 X29.9468 Y40.3676 I2.9347 J-3.3414
G3 X29.5284 Y38.6416 I5.236 J-2.1831
G0 Z1.5
G0 X39.1859 Y34.4474
G1 F100.0 Z-0.5
G1 F200.0 X42.2254 Y34.1159
G2 X41.2455 Y32.0927 I-7.2421 J2.2587
G2 X39.5618 Y30.4694 I-5.232 J3.7418
G2 X37.1993 Y29.4592 I-3.7931 J5.6029
G2 X34.5941 Y29.1722 I-2.3684 J9.5318
G2 X31.3242 Y29.6394 I-0.3083 J9.5192
G2 X28.5479 Y31.2333 I1.9833 J6.6694
G2 X26.7993 Y33.9478 I4.8459 J5.0419
G2 X26.3255 Y37.0418 I10.1947 J3.1445
G2 X26.8028 Y40.23 I11.2225 J-0.0504
G2 X28.5806 Y43.0376 I6.8133 J-2.3473
G2 X31.2434 Y44.6636 I4.9317 J-5.0831
G2 X34.4307 Y45.1708 I2.9023 J-7.9709
G2 X37.5314 Y44.6706 I0.2746 J-8.1574
G2 X40.1174 Y43.0809 I-2.257 J-6.5699
G2 X41.8571 Y40.3264 I-4.9399 J-5.0467
G2 X42.3234 Y37.2003 I-10.5754 J-3.1754
G2 X42.3071 Y36.5085 I-25.896 J0.2656
G1 X29.3649
G3 X29.7839 Y34.4501 I7.9457 J0.5452
G3 X30.9827 Y32.6458 I4.6026 J1.7577
G3 X34.6104 Y31.3053 I3.312 J3.3844
G3 X37.3721 Y32.0548 I0.2723 J4.4593
G3 X38.4764 Y33.1347 I-2.3464 J3.504
G3 X39.1859 Y34.4474 I-5.6653 J3.9104
G0 Z1.5
G0 X49.3379 Y36.3608
G1 F100.0 Z-0.5
G1 F200.0 X56.6056
G3 X56.3697 Y37.5011 I-5.7643 J-0.5975
G3 X55.7722 Y38.5335 I-2.8392 J-0.9542
G3 X53.0391 Y39.6578 I-2.4947 J-2.1806
G3 X50.4776 Y38.7605 I-0.2241 J-3.4653
G3 X49.6517 Y37.6553 I2.201 J-2.506
G3 X49.3379 Y36.3608 I3.927 J-1.6373
G0 Z1.5
G0 X56.581 Y33.2151
G1 F100.0 Z-0.5
G1 F200.0 X58.8606 Y32.9665
G2 X58.1257 Y31.449 I-5.4315 J1.694
G2 X56.8629 Y30.2316 I-3.924 J2.8064
G2 X55.0911 Y29.4739 I-2.8448 J4.2022
G2 X53.1372 Y29.2587 I-1.7763 J7.1488
G2 X50.6847 Y29.6091 I-0.2312 J7.1394
G2 X48.6025 Y30.8045 I1.4875 J5.0021
G2 X47.2911 Y32.8404 I3.6344 J3.7814
G2 X46.9357 Y35.1609 I7.646 J2.3584
G2 X47.2937 Y37.552 I8.4169 J-0.0378
G2 X48.627 Y39.6578 I5.11 J-1.7605
G2 X50.6242 Y40.8773 I3.6988 J-3.8123
G2 X53.0146 Y41.2576 I2.1767 J-5.9782
G2 X55.3401 Y40.8824 I0.206 J-6.1181
G2 X57.2796 Y39.6902 I-1.6928 J-4.9274
G2 X58.5844 Y37.6243 I-3.7049 J-3.785
G2 X58.9342 Y35.2798 I-7.9315 J-2.3815
G2 X58.9219 Y34.7609 I-19.422 J0.1992
G1 X49.2153
G3 X49.5295 Y33.2171 I5.9593 J0.4089
G3 X50.4286 Y31.8639 I3.4519 J1.3183
G3 X53.1494 Y30.8585 I2.484 J2.5383
G3 X55.2206 Y31.4206 I0.2042 J3.3445
G3 X56.0489 Y32.2306 I-1.7598 J2.628
G3 X56.581 Y33.2151 I-4.2489 J2.9328
G0 Z1.5
G0 X64.964 Y34.0799
G1 F100.0 Z-0.5
G1 F200.0 X69.8092
G3 X69.6519 Y34.8401 I-3.8429 J-0.3983
G3 X69.2536 Y35.5284 I-1.8928 J-0.6361
G3 X67.4315 Y36.2779 I-1.6632 J-1.4537
G3 X65.7239 Y35.6797 I-0.1494 J-2.3102
G3 X65.1732 Y34.9429 I1.4673 J-1.6707
G3 X64.964 Y34.0799 I2.618 J-1.0915
G0 Z1.5
G0 X69.7928 Y31.9828
G1 F100.0 Z-0.5
G1 F200.0 X71.3125 Y31.817
G2 X70.8226 Y30.8054 I-3.621 J1.1293
G2 X69.9807 Y29.9937 I-2.616 J1.8709
G2 X68.7995 Y29.4886 I-1.8965 J2.8015
G2 X67.4969 Y29.3452 I-1.1842 J4.7659
G2 X65.8619 Y29.5788 I-0.1541 J4.7596
G2 X64.4738 Y30.3757 I0.9917 J3.3347
G2 X63.5995 Y31.733 I2.423 J2.521
G2 X63.3626 Y33.2799 I5.0973 J1.5723
G2 X63.6013 Y34.874 I5.6112 J-0.0252
G2 X64.4901 Y36.2779 I3.4067 J-1.1737
G2 X65.8216 Y37.0909 I2.4659 J-2.5416
G2 X67.4152 Y37.3444 I1.4511 J-3.9854
G2 X68.9655 Y37.0943 I0.1373 J-4.0787
G2 X70.2585 Y36.2995 I-1.1285 J-3.2849
G2 X71.1284 Y34.9223 I-2.4699 J-2.5233
G2 X71.3616 Y33.3592 I-5.2877 J-1.5877
G2 X71.3534 Y33.0133 I-12.948 J0.1328
G1 X64.8823
G3 X65.0918 Y31.9841 I3.9729 J0.2726
G3 X65.6912 Y31.0819 I2.3013 J0.8788
G3 X67.5051 Y30.4117 I1.656 J1.6922
G3 X68.8859 Y30.7865 I0.1362 J2.2297
G3 X69.438 Y31.3264 I-1.1732 J1.752
G3 X69.7928 Y31.9828 I-2.8326 J1.9552
G0 Z1.5
G0 X5.5355 Y40.9225
G1 F100.0 Z-0.5
G1 F200.0 X17.6484
G3 X17.2553 Y42.8231 I-9.6072 J-0.9958
G3 X16.2594 Y44.5438 I-4.7319 J-1.5903
G3 X11.7043 Y46.4175 I-4.1579 J-3.6343
G3 X7.4352 Y44.9222 I-0.3735 J-5.7754
G3 X6.0586 Y43.08 I3.6683 J-4.1767
G3 X5.5355 Y40.9225 I6.5451 J-2.7289
G0 Z1.5
G0 X0 Y0
M5
M30
Unfold Re: CCW arcs by gatonerogatonero, 1271023861|%e %b %Y, %H:%M %Z|agohover
Re: CCW arcs
AlbanetcAlbanetc 1271055661|%e %b %Y, %H:%M %Z|agohover

Strange, I can't reproduce this, I get the series of "e"s as shown on the simulator. The only difference between machines is number of steps per unit distance. Let me post the version with some debug output on Sourceforge.

Unfold Re: CCW arcs by AlbanetcAlbanetc, 1271055661|%e %b %Y, %H:%M %Z|agohover
Re: CCW arcs
gatonerogatonero 1271091469|%e %b %Y, %H:%M %Z|agohover

Today I tried it again and it worked. I guess there is a slack joint somewhere in X axis driver board.

Last edited on 1271091493|%e %b %Y, %H:%M %Z|agohover By gatonero + Show more
Unfold Re: CCW arcs by gatonerogatonero, 1271091469|%e %b %Y, %H:%M %Z|agohover
Re: CCW arcs
gatonerogatonero 1271195728|%e %b %Y, %H:%M %Z|agohover

Today I fixed the slack joint. Everything now works perfectly. As soon as possible I will post a video of awesome e-circles. Thanks for your assistance. The next step will be to mill a pcb. :-)

Additionally: It's a good idea to put some drops of oil to the axis!

Last edited on 1271195847|%e %b %Y, %H:%M %Z|agohover By gatonero + Show more
Unfold Re: CCW arcs by gatonerogatonero, 1271195728|%e %b %Y, %H:%M %Z|agohover
Re: CCW arcs
AlbanetcAlbanetc 1271199436|%e %b %Y, %H:%M %Z|agohover

Awesome! You're right, a bit of oil or grease really helps with smoother motion - it's important considering that when steppers rotate fast, they don't put out a lot of torque.

Regarding PCB milling - might I suggest making the table flat first. From what I read it's critical to have the flat table for accurate PCB milling. I think this could be achieved by resurfacing a sacrificial piece of plywood attached to the table.

Unfold Re: CCW arcs by AlbanetcAlbanetc, 1271199436|%e %b %Y, %H:%M %Z|agohover
Re: CCW arcs
gatonerogatonero 1271200619|%e %b %Y, %H:%M %Z|agohover

Yes of course! Meanwhile I made some accurate adjustments for the table with my micrometer. I will document that procedure how this is to be done for the Z axis. I made some good experiences with fixating the workpieces with double sided tape. First I will attach some sacrificial plywood to the table and on top of this the metal blank. Before starting milling I will verify that all is properly adjusted.

Don't expect a result tomorrow, because I have to get more experiences how to convert a board layout to gcode. ;-)

Unfold Re: CCW arcs by gatonerogatonero, 1271200619|%e %b %Y, %H:%M %Z|agohover
Re: CCW arcs
AlbanetcAlbanetc 1271231628|%e %b %Y, %H:%M %Z|agohover

Looking forward to it :) I did a quick google search and found this: http://www.cnczone.com/forums/showthread.php?t=40777
Is this what you're using to get gcode from pcb layout?

Unfold Re: CCW arcs by AlbanetcAlbanetc, 1271231628|%e %b %Y, %H:%M %Z|agohover
Re: CCW arcs
gatonerogatonero 1271272466|%e %b %Y, %H:%M %Z|agohover

That's the question! Today I tested pcb-gcode with excellent results. It produces multi passes for milling and increments the isolation after each pass. So the result can be made very accurate. I guess the ability in producing gcode with pcb-gcode is better than with CamBam. pcb-gcode is a plugin for eagle.

For myself I prefer using KiCad. One but not the only reason is, that it is Open Source. The tool chain would be exporting a dxf file and import it into CamBam. I have done this before and it works. But my target is to use a complete Open Source tool chain.

So no of these alternatives are perfect in my sense. But this is just a question of time.

Meanwhile I will use both alternatives. KiCad / CamBam for my own boards and eagle / pcb-gcode for boards I derive from others, who use eagle.

I will produce my first board with eagle / pcb-gcode. It will be the dorkpov (eagle files) from our dorkbot group in Aachen. There I presented Contraptor and so the board should have some connection to that group. ;-)

Reply  |  Options
Unfold Re: CCW arcs by gatonerogatonero, 1271272466|%e %b %Y, %H:%M %Z|agohover
dorkpov milling
gatonerogatonero 1271364001|%e %b %Y, %H:%M %Z|agohover

Today I milled my first PCB :-D not into a copper board but into MDF. I have been exited, which accuracy is possible! Here is a short video sequence of it (12x speed)

Of course because this has been the first attempt, it hasn't been perfectly. I made the GCode with eagle / pcb-gcode. As you can see in the following picture each isolation is made by four passes.
flickr:4523964996
The result shows, that each pass has been positioned varying distances in the -X direction. Two positions I marked with a white "T". The right "T" is positioned to far left.
flickr:4524107022
Until now I don't know why. I can't post the GCode here, because it is too large.

Last edited on 1271364210|%e %b %Y, %H:%M %Z|agohover By gatonero + Show more
Reply  |  Options
Unfold dorkpov milling by gatonerogatonero, 1271364001|%e %b %Y, %H:%M %Z|agohover
Re: dorkpov milling
AlbanetcAlbanetc 1271368021|%e %b %Y, %H:%M %Z|agohover

Except for X offsets, it seems pretty good. Just to get an idea of the scale, what is the size of the board?

Since it doesn't seem to happen on Y axis (where you have a flywheel), one version is that without the flywheel, X axis stalls on some moves, which results in offsets like this. It shouldn't happen at low speeds though, but as far as I remember, the stalls tend to happen on shallow angle G0 XY interpolations - when the feedrate on dominant axis is close to maximum and there are nasty vibrations. I've had it happen at 15 IPM (380 mm/min) without flywheels and had to drop the feedrate to 10 IPM (~250 mm/min).

According to your _init.pde above, your fast (G0) feedrate is 360 mm/min. The remedy would be to either install the flywheel or to not exceed 250 mm/min feedrate. This is one potential reason, but there may be others, such as something in GCode that causes this. If you email me the file, I'll try it out and see if I can reproduce this.

Reply  |  Options
Unfold Re: dorkpov milling by AlbanetcAlbanetc, 1271368021|%e %b %Y, %H:%M %Z|agohover
Re: dorkpov milling
gatonerogatonero 1271370799|%e %b %Y, %H:%M %Z|agohover

The size of the board is a little bit smaller then the Arduino board.

Might be the reason is stalling. At the moment I can't install a flywheel on the X axis, because I shortened it too much and can't get imperial threaded-rod here, maybe I will look around in the net. So I will try a slower feedrate. I emailed the file.

Last edited on 1271373127|%e %b %Y, %H:%M %Z|agohover By gatonero + Show more
Unfold Re: dorkpov milling by gatonerogatonero, 1271370799|%e %b %Y, %H:%M %Z|agohover
Re: dorkpov milling
AlbanetcAlbanetc 1271404523|%e %b %Y, %H:%M %Z|agohover

I tried to draw this, unsuccessfully.

First, I'm having a problem with Z axis - sometimes it loses its position. The Z axis connection at Arduino end is not very solid and I think what's happening is vibration might be making some contacts loose every now and then, probably closing limit switches (they're +5V in open position). When that happens, Z doesn't move in response to commands, loses its position, and ruins the entire job. This can be seen towards the end of the video when "TINYPOV" is being plotted:

Second, I noticed that at some point there was offset (maybe -0.5mm) on the X axis (the long one, I think it's your Y). In my second test offset was repeated so I think some specific command might be causing X to skip steps, and this could probably be fixed by reducing feedrate (I ran this file at 1500 mm/min for XY and 125 mm/min for Z). However, to get to this, I need to resolve the problem with the Z first.
flickr:4524798243

Unfold Re: dorkpov milling by AlbanetcAlbanetc, 1271404523|%e %b %Y, %H:%M %Z|agohover
Re: dorkpov milling
gatonerogatonero 1271432397|%e %b %Y, %H:%M %Z|agohover

In fact vibrations are a hard stress test to the electronics. This might be the reason for my slack joint while testing e-circles. The ultimate solution could be to place the electronis somewhere completely separated in a housing with satisfying cooling. I will not do that (now, maybe in the future). One effort beside the vibrations could be to use the electronics with other Contraptors. Now this means for me to make all connections as good as possible and to avoid cold solder joints ;-). But what I will improve definitely are the connections of the limit switches at the stepper boards. This has been several times a source for failures.

You are right, according to DIN 66217 my X axis goes from left(-) to right(+), my Y axis from ahead(-) to back(+) and the Z axis from bottom(-) to top(+).

Now I have put some oil to all axis, reduced the fast feedrate (10 IPM (~250 mm/min) and I'm looking forward to mill the very first PCB with MiniCNC worldwide ;-D

Unfold Re: dorkpov milling by gatonerogatonero, 1271432397|%e %b %Y, %H:%M %Z|agohover
Re: dorkpov milling
AlbanetcAlbanetc 1271434327|%e %b %Y, %H:%M %Z|agohover

Well, I hope reducing the feedrate works, it's a pretty long milling job with a lot of opportunities to skip steps. To fix my Z problem, I'll try to reduce max Z feedrate (to rule out Z stalls when moving up) and if it doesn't help, I'll move the electronics off the frame.

Reply  |  Options
Unfold Re: dorkpov milling by AlbanetcAlbanetc, 1271434327|%e %b %Y, %H:%M %Z|agohover
TINYPOV Milling Challenge!
gatonerogatonero 1271443724|%e %b %Y, %H:%M %Z|agohover

Hi Vitaly, a new chance for everybody to mill the first PCB with MiniCNC worldwide! I just finished another attempt, and in the very last steps the screw of the motor-coupling on Z axis unscrewed. Have a look at the (nearly) optimal result:

flickr:4526494428

On YouTube you can see a low quality video with 16x speed of the milling process

So I decided to evoke a challenge! That one (me excluded) who is able to mill the dorkpov (tinypov) completely into stiff material will get a dorkpov set milled on the PCB mill from fablab Aachen from me. Here is the TINIPOV GCode file. It is made for a cutter diameter 0.2 mm / 0.00787402". Instead you can do it with a cutter 0.5 mm / 0.019685", but I guess this one will not work (electronic rule check).

Here you can see how the result should look like:

dorkpov_bottom_and_top.jpg

(The GCode file will engrave TINYPOV instead of "dorkpov V1.0"

Just the backside is needed

The set includes all parts which are needed to build a nice POV device for your bycicle.

Last edited on 1271493812|%e %b %Y, %H:%M %Z|agohover By gatonero + Show more
Reply  |  Options
Unfold TINYPOV Milling Challenge! by gatonerogatonero, 1271443724|%e %b %Y, %H:%M %Z|agohover
Re: TINYPOV Milling Challenge!
AlbanetcAlbanetc 1271474496|%e %b %Y, %H:%M %Z|agohover

I guess my entry is also disqualified since with ACME leadscrews, I'm at 4-5 times speed advantage :)

I tried lowering the FAST_Z_FEEDRATE and still got the problem with Z (try #3), which most likely indicates vibration-induced problem with electronics. On the next try I reseated all connections on Z driver board, removed Arduino from the mini CNC frame and attempt #4 was completed successfully - see below. Unfortunately I had little space left on SD card so I don't have the video. I will try again with Arduino off the frame but FAST_Z_FEEDRATE at previous value, to validate the result.

flickr:4526787709flickr:4526787755

The accuracy seems to be not bad. I doubt it can mill SMT PCBs, but through-hole should be doable (once we work out all the bugs).

Regarding the vibrations, I'm hoping that microstepping drivers will mostly take care of them. But it seems clear that electronics need to be away from the frame.

Reply  |  Options
Unfold Re: TINYPOV Milling Challenge! by AlbanetcAlbanetc, 1271474496|%e %b %Y, %H:%M %Z|agohover
Re: TINYPOV Milling Challenge!
gatonerogatonero 1271492381|%e %b %Y, %H:%M %Z|agohover

Awesome! :-D

Through-hole milling is definitely doable, because this is a board with 9 (!) through-hole traces ;-)

flickr:4527835366

The weak point in electronics n my opinion are the connectors, specially that ones for the limit switches.

PS.: I have seen that you are using a Canon camera, might be the Canon Hack Development Kit is interesting for you ;-)

PPS.: You are not disqualified because of ACME leadscrews (tuning is allowed), but we both didn't start from scratch. And beside that, you have done a drawing not milling into a solid material. ;-)

Last edited on 1271494175|%e %b %Y, %H:%M %Z|agohover By gatonero + Show more
Unfold Re: TINYPOV Milling Challenge! by gatonerogatonero, 1271492381|%e %b %Y, %H:%M %Z|agohover
Re: TINYPOV Milling Challenge!
gatonerogatonero 1271515391|%e %b %Y, %H:%M %Z|agohover
flickr:4527742317

Result of a fully completed milling run :-D

The run took about 1 hour. With ACME leading screws it would be much faster.This has been done with a 0.6 mm cutter. Therefor I doubt that every trace would conduct (in the upper right). These dorkbot people sometimes are doing too strange things (lot of university people ;-). But luckily I have a cutter with 0.2 mm diameter. The next run in a copper board should make a functional board.

Also this shows, that the accuracy must be much higher than the estimated 0.01"

Last edited on 1271515505|%e %b %Y, %H:%M %Z|agohover By gatonero + Show more
Unfold Re: TINYPOV Milling Challenge! by gatonerogatonero, 1271515391|%e %b %Y, %H:%M %Z|agohover
Re: TINYPOV Milling Challenge!
AlbanetcAlbanetc 1271523242|%e %b %Y, %H:%M %Z|agohover

Very nice! What were your feedrates, normal and fast?

Regarding the accuracy, don't forget that there has been virtually no resistance from the workpiece. We'll see whether mini CNC has enough rigidity to hit 0.01" milling PCB copper, especially in X axis (one with Dremel).

I also found a couple of areas where traces differ from the dorkpov board, but this is how they are in the NC file. I left notes on this flickr photo.

Last edited on 1271523307|%e %b %Y, %H:%M %Z|agohover By Albanetc + Show more
Unfold Re: TINYPOV Milling Challenge! by AlbanetcAlbanetc, 1271523242|%e %b %Y, %H:%M %Z|agohover
Re: TINYPOV Milling Challenge!
gatonerogatonero 1271528938|%e %b %Y, %H:%M %Z|agohover

In _init.pde I'm using these feedrates:
#define FAST_XY_FEEDRATE_INCH 10
#define FAST_Z_FEEDRATE_INCH 10
#define FAST_XY_FEEDRATE_MM 250
#define FAST_Z_FEEDRATE_MM 250

The workingspeed for Z direction F100 the other directions are F200.

Some minutes ago I started milling in PCB copper. I haven't seen any difference with milling in wood. But I aborted that run, because I realized, that my 0.2mm cutter is VERY excentric :-(, so that it mills broader than my 0.6mm cutter!

Here is what I got:
flickr:4528860850

And here is a short impression of milling:

Have a look how much dust is produced. This is an epoxy board. Tomorow maybe I will do an open air milling ;-) and I will test miiling into a card board with 0.6mm cutter. I will generate a new GCode file.

Of course the original board looks different. I just used the eagle files to create the GCode entirely by myself. Because in fablab another software for generating GCode is used, there are some differences.

PS.: Just in the moment I have had a look at your comments at the flickr photo. I used NCPlot to have a quick look to the GCode. In this back tracker also no insulations has been showed at that points you marked. Maybe the reason are some settings in pcb-gcode. Thanks for the hint.

Last edited on 1271530137|%e %b %Y, %H:%M %Z|agohover By gatonero + Show more
Unfold Re: TINYPOV Milling Challenge! by gatonerogatonero, 1271528938|%e %b %Y, %H:%M %Z|agohover
Re: TINYPOV Milling Challenge!
AlbanetcAlbanetc 1271529922|%e %b %Y, %H:%M %Z|agohover

One question - how are you tightening the bits in Dremel? I used to tighten them with the supplied wrench and I had noticeable runout (eccentricity), until I read the manual where it said to finger-tighten the bits.

Unfold Re: TINYPOV Milling Challenge! by AlbanetcAlbanetc, 1271529922|%e %b %Y, %H:%M %Z|agohover
Re: TINYPOV Milling Challenge!
gatonerogatonero 1271530225|%e %b %Y, %H:%M %Z|agohover

I tightened it with the wrench. So I will do it manually next time.

Unfold Re: TINYPOV Milling Challenge! by gatonerogatonero, 1271530225|%e %b %Y, %H:%M %Z|agohover
Re: TINYPOV Milling Challenge!
AlbanetcAlbanetc 1271533091|%e %b %Y, %H:%M %Z|agohover

Regarding the differences between boards. The traces actually appear almost identical; however in at least two instances the adjacent traces on the TINYPOV board are joined (presumably because they're too close). The same traces are isolated on the dorkpov board.

Compare this (see notes and full size image):
flickr:4527742317

to this:
flickr:4527835366

Also, thanks for the CHDK pointer, I'll check it out, I definitely like the timelapse feature.

Last edited on 1271534154|%e %b %Y, %H:%M %Z|agohover By Albanetc + Show more
Unfold Re: TINYPOV Milling Challenge! by AlbanetcAlbanetc, 1271533091|%e %b %Y, %H:%M %Z|agohover
Re: TINYPOV Milling Challenge!
gatonerogatonero 1271594830|%e %b %Y, %H:%M %Z|agohover

Today I have had a close look to the milled board. You are right regarding the not isolated traces. I checked it and realized that I got it from pcb-gcode. Maybe my fault, because this has been my first board with pcb-gcode and the board is too sophisticated, because it has been designed for that high-tech machine in fablab Aachen.

I also have had a close look to the "waves". I found them only in that region, and maybe this is conditional upon the wooden structure below the black color. I can't truely say, whether this depends on some changings in the color of the wood or in different density of fabrics. The challenge will make it clear.

Today I also did a second milling with that "0.2mm" cutter. It is a 0.2 mm to 0.5mm konical one. If you just touch the board it's diameter is 0.2mm, deeper cuts are 0.5mm broad. Also before I tightened the cutter to strong with a wrench into my dremel. Now I do it manually.

But these kind of cutters are very difficult to handle. They are used with a very high-end mill hci.rwth-aachen.de/mill. I doubt seriously that it is possible to get the precision of that machine with a Contraptor MiniCNC. So I will have a look for different cuters.

Also I will make a new PCB design, because the measurements of the layout in some regions are to sophisticated for DIY hobbyists. I doubt, that I could do it with the toner transfer method I used until today.

Read this article on instructables to gte an idea what I mean.

Last edited on 1271604689|%e %b %Y, %H:%M %Z|agohover By gatonero + Show more
Unfold Re: TINYPOV Milling Challenge! by gatonerogatonero, 1271594830|%e %b %Y, %H:%M %Z|agohover
Re: TINYPOV Milling Challenge!
gatonerogatonero 1271606398|%e %b %Y, %H:%M %Z|agohover

I decided to make another GCode file available for the contest. It's much more easier, it's milling time is about 13 minutes and you can use a 0.5mm cutter, which is much more gettable for dremels, proxxons etc.

It is the blinkie board from instructables realizing the "Design Rules". Each isolation route is milled four times, so the milling time could be recuced do about 3 minutes. This is the very coarse end of MiniCNC, while the TINYPOV seems to be the very fine end.

You can download this file here.

Here is the result in plywood

flickr:4530960257

and here in copper

flickr:4530958767
Last edited on 1271606698|%e %b %Y, %H:%M %Z|agohover By gatonero + Show more
Unfold Re: TINYPOV Milling Challenge! by gatonerogatonero, 1271606398|%e %b %Y, %H:%M %Z|agohover
Re: TINYPOV Milling Challenge!
AlbanetcAlbanetc 1271608652|%e %b %Y, %H:%M %Z|agohover

So, as I understand, the difficulty with 0.2mm cutter is uneven Z of the surface? Or do you still have the runout (eccentricity) even if it's finger-tight?
I'd really like to try and mill the TINYPOV board, just for demonstration purposes :)

Unfold Re: TINYPOV Milling Challenge! by AlbanetcAlbanetc, 1271608652|%e %b %Y, %H:%M %Z|agohover
Re: TINYPOV Milling Challenge!
gatonerogatonero 1271611510|%e %b %Y, %H:%M %Z|agohover

One thing is your table and material has to be VERY plane and exact adjusted. The other thing is that very small movements in the Z axis will have a "big" effect on the milled diameter. A few minutes ago I chatted with René from fablab Aachen. What they are using is a "Tiefenbegrenzer" ("depth limiter?" I don't know the English word for it). It's an instrument to get very exact control about the milling depth so that it is possible to adjust uneven surfaces etc. On Wednesday I will meet René and we will speak about to make a DIY Tiefenbegrenzer.

Beside that, I tightened the 0.2mm cutter manually, it nevertheless has some eccentric. It's not a new one and maybe the students ruined it a little bit ;-)

I'm also still interested in milling a working TINYPOV. This should be done with a newly generated GCode file with pcb-gcode. Now I know, where to adjust the settings for milling, more important: how to adjust that settings.

Last edited on 1271626709|%e %b %Y, %H:%M %Z|agohover By gatonero + Show more
Unfold Re: TINYPOV Milling Challenge! by gatonerogatonero, 1271611510|%e %b %Y, %H:%M %Z|agohover
Re: TINYPOV Milling Challenge!
gatonerogatonero 1271627761|%e %b %Y, %H:%M %Z|agohover

Some posts above I promised to explain, how I adjust my table in a way, that it is parallel as accurate as possible to the Z axis.

flickr:4532706462

The trick is to don't do anything to the table, but only to the right Z axis. First on the left side of the table I put something for example a construction angle in a way showed in the picture. Than I lower the Z axis, that it gets in touch with that angle. Afterward I put the angle to the right side ans unscrew the pulley of the right Z axis. Than I turn the right Z axis until it touches the angle also. When both sides touch the angle equally I fasten the screw of the pulley. Voila!

For better results you should move the table, so that the middle of the table is below the gantry.

Last edited on 1271627877|%e %b %Y, %H:%M %Z|agohover By gatonero + Show more
Unfold Re: TINYPOV Milling Challenge! by gatonerogatonero, 1271627761|%e %b %Y, %H:%M %Z|agohover
Re: TINYPOV Milling Challenge!
AlbanetcAlbanetc 1271629751|%e %b %Y, %H:%M %Z|agohover

Nice. Regarding the height dependency when milling PCB - take a look at this blog post and video:
http://builders.reprap.org/2010/03/open-source-circuit-boards-using-reprap.html

Unfold Re: TINYPOV Milling Challenge! by AlbanetcAlbanetc, 1271629751|%e %b %Y, %H:%M %Z|agohover
Re: TINYPOV Milling Challenge!
gatonerogatonero 1271798714|%e %b %Y, %H:%M %Z|agohover

The idea of Gavilan (based on Poul-Henning Kamp) software solution PcbSubtraction is brilliant. First he scans the gcode and takes some probes. Afterwards he adjusts the gcode with measurements from the probes. Because he is also using the reprap firmware it should be possible to adopt his solution. My programming skills are not good enough for that job.

Unfold Re: TINYPOV Milling Challenge! by gatonerogatonero, 1271798714|%e %b %Y, %H:%M %Z|agohover
Re: TINYPOV Milling Challenge!
AlbanetcAlbanetc 1271869862|%e %b %Y, %H:%M %Z|agohover

I haven't looked at it in depth but I think it shouldn't require any coding, just flashing the firmware and using host from PcbSubtraction package. Well, and connecting the probe pins to Arduino. As long as this firmware fork has acceleration support, it should work in general as well.

Last edited on 1271916520|%e %b %Y, %H:%M %Z|agohover By Albanetc + Show more
Reply  |  Options
Unfold Re: TINYPOV Milling Challenge! by AlbanetcAlbanetc, 1271869862|%e %b %Y, %H:%M %Z|agohover
New Post
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License