51

Re: Firmware Z wobble compensation

Sorry haven't been on Github for a bit.

In truth, the firmware hasn't been updated to take on the main Marlin's changes in ages. I put it off as a change a while back chaged the structure of the files a bit, and this would have affected Neil Martin's addition.

On the weekend I'll wipe mine, refork it (to get the latest version) and tweak what needs tweaking to get it back to Solidoodle specs. Then I can add Rincewind as a contributor to add in the wobble changes himself so it's done correctly.

52

Re: Firmware Z wobble compensation

Super awesome team go!

I edit my posts a lot.

53

Re: Firmware Z wobble compensation

lawsy wrote:

Sorry haven't been on Github for a bit.

In truth, the firmware hasn't been updated to take on the main Marlin's changes in ages. I put it off as a change a while back chaged the structure of the files a bit, and this would have affected Neil Martin's addition.

On the weekend I'll wipe mine, refork it (to get the latest version) and tweak what needs tweaking to get it back to Solidoodle specs. Then I can add Rincewind as a contributor to add in the wobble changes himself so it's done correctly.

Alright, sounds good! Thanks! BTW, do you have any idea of what we should do with the "official" solidoodle repo? They would like mods to be submitted there, but on the other hand they reference yours even on the official website...

54

Re: Firmware Z wobble compensation

I think the way they have set it up is not very conducive to updates. We can get this one working and then they can copy it if they want.

55 (edited by nickythegreek 2013-02-22 04:01:18)

Re: Firmware Z wobble compensation

decided to run the PID autotune command today and then try and setup kisslicer today and based off of Ian's profile.

Look at this beautiful 50mm calibration tower with my M97 command active!

http://f.cl.ly/items/080s021C0j3B2D3i0w39/photo.JPG

higher res here.

56

Re: Firmware Z wobble compensation

@nicky it looks like you managed to get very nice prints! Congratulations! Thanks for sharing!

@tealvince: I'm working on importing your code into my github, how would you like to be cited in the copyright notice? And I would also like to create a page in the wiki about banding, uploading there your methods and stl files, is it ok with you?

57

Re: Firmware Z wobble compensation

Rincewind wrote:

@tealvince: I'm working on importing your code into my github, how would you like to be cited in the copyright notice? And I would also like to create a page in the wiki about banding, uploading there your methods and stl files, is it ok with you?

Thanks!  It's not important to me exactly what you choose to say.  You can just use my handle (TealVince) and write whatever you see fit.  I'm just happy to contribute to the community.

58

Re: Firmware Z wobble compensation

The first issue of the reprap magazine (free pdf download) has a 4 page spread (pages 29-32) titled "Taxonomy of Z axis artifacts in extrusion-based 3d printing" that is extremely relevant to anyone wanting to learn more about this topic.

59

Re: Firmware Z wobble compensation

nickythegreek wrote:

The first issue of the reprap magazine (free pdf download) has a 4 page spread (pages 29-32) titled "Taxonomy of Z axis artifacts in extrusion-based 3d printing" that is extremely relevant to anyone wanting to learn more about this topic.

Interesting, but doesn't mention our situation (smooth rods constraining the movement to the Z direction but still significant wobble), and I have my doubts that the pitch not being a multiple of the layer height is actually a problem, for sure it's not in the solidoodle. Considering that the Z motor has ~2000 steps for a mm, one step more or less is unlikely to make any difference in our layer height.

In other news, I included TealVince's modifications in the github repository, and created two pages in the soliwiki: http://www.soliwiki.com/Banding and http://www.soliwiki.com/Calibration_of_the_Z_wobble . Suggestions and modifications are welcome!

60 (edited by nickythegreek 2013-02-23 16:11:25)

Re: Firmware Z wobble compensation

Rince your wiki pages put mine to shame! These should really help out new solidoodlers to learn about this issue.

I put up a post over at the reprapmag thread linking to your resources on this issue.

61

Re: Firmware Z wobble compensation

nickythegreek wrote:

Rince your wiki pages put mine to shame! These should really help out new solidoodlers to learn about this issue.

I put up a post over at the reprapmag thread linking to your resources on this issue.

Thanks! smile

62 (edited by nickythegreek 2013-02-23 17:24:53)

Re: Firmware Z wobble compensation

Rince, can you put up an EDIT on your original post in this thread to link to those 2 wiki pages. Should save people some trouble and will hopefully cut down on unneeded posts by others on this issue.

63

Re: Firmware Z wobble compensation

Rincewind wrote:

In other news, I included TealVince's modifications in the github repository, and created two pages in the soliwiki: http://www.soliwiki.com/Banding and http://www.soliwiki.com/Calibration_of_the_Z_wobble . Suggestions and modifications are welcome!

Two truly excellent and well-written pieces.  Some small suggestions:

1) In banding, how about adding some info to help a user identify the type of banding they have based on the banding properties, e.g.:

- z-backlash: random?
- wobble-driven z-displacement: periodic at 18tpi, symmetric (peak on one side of print matched by peak on opposite side), often sinusoidal, effects amplified at low layer heights, fixed by firmware compensation
- wobble-driven x/y-displacement: periodic at 18tpi, asymmetric/helical (peak on one site match by trough on opposite  side), often sinusoidal, not affected by layer height, possibly fixed by third rail
- slicing/xy backlash: asymmetric, period = ?
- temperature swings: periodic but uneven, spacing between bands decrease as layer gets larger/more complex.

2) The preload nut referenced is really more of a jam nut IMHO, though I know this is what most people use.  I suggest also linking to the spring-based preload (http://www.thingiverse.com/thing:34397) as it won't jam and should theoretically give better results since a spring make sure there is no gap at all.

3) In firmware compensation, mm2tts found out that the correct layer height should be measured from the *top* of the object when measuring the sinusoidal phase using a "drifting" object.  Suggest noting that.

4) For measuring the error, suggest clarifying that this method can create a compensation curve of any periodic shape, so can be especially useful if banding is not strictly sinusoidal.

5) For measured (custom curve) compensation, suggest clarifying that if using a dial gauge, the distances entered into the gcode should be relative to the initial bed position (~.1, ~.2...), not the actual distance of the head from the bed (~1.5, ~1.6, ...).

6) Since sinusoidal correction also involves some sort of measuring (of test prints), what do you think about renaming these sections based on the curve shape (e.g. "experimentally-obtained sinusoidal curve" vs "measured custom curve")

Again, great job on everything.

64

Re: Firmware Z wobble compensation

Thanks for the suggestions, I included them. Please feel free to edit the wiki, if you like! I will try to contact Brad to see if it's possible to upload stl/gcode files so we can include your stl rocker and the calibration phantoms.

65

Re: Firmware Z wobble compensation

teal, you should put your rocker up on thingiverse (tagged solidoodle) with a link to the wiki page.  That way if people are not part of this forum, they can still find the solution there.  And that way others can add it to their collections or remix it to fit different laser pointers.  Then we can link the thingiverse inside the wiki.

66

Re: Firmware Z wobble compensation

The having the layer height as something other than an even multiple of the steps will cause an error in layer height of .007mm at the most.  I don't buy it as a cause for banding, either.  It's something like an error of 2% of the layer height.

67

Re: Firmware Z wobble compensation

IanJohnson wrote:

The having the layer height as something other than an even multiple of the steps will cause an error in layer height of .007mm at the most.  I don't buy it as a cause for banding, either.  It's something like an error of 2% of the layer height.

Not only that, but I wouldn't expect any banding due to roundoff to have a period equal to the thread height.

On my solidoodle, the firmware is set to 2268 steps per mm.  This means the error in step distance should be error = z*2268 - int(z*2268). When I plotted this (attached), I got a sawtooth wave with a period of 1/2 mm (something nobody has described) and a peak of only 0.00035mm, or less than 1% of layer height; truly negligible.

Of course one could always adjust the firmware to 2270 steps per mm and stop worrying about it since this change would only increase the height of objects by one-tenth of one-percent (0.15mm for an object the full height of build envelope).

Post's attachments

SD Z error due to roundoff.png
SD Z error due to roundoff.png 35.89 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

68

Re: Firmware Z wobble compensation

Ok I've done the new Marlin fork and updated everything. I've added Rincewind as a collaborator on github so please add your code for this.

The structure of the Marlin update is different but I'm sure it won't be a problem.

69

Re: Firmware Z wobble compensation

Thanks! I already had a look and it should be quite straightforward. Have you also tested it already?

70

Re: Firmware Z wobble compensation

Your code? Not yet.

I've been looking at some of my previous print and some have some banding and others don't. I'll print the calibration pieces and see how they look.

71 (edited by Rincewind 2013-02-24 11:06:10)

Re: Firmware Z wobble compensation

No no I meant the new firmware in general. I also noticed that you didn't reimplement Neil Martin's backlash correction. Is it intentional? It doesn't work for me, but I don't know if others are using it.

Edit Sorry I just saw your post in the firmware update thread where you said it was intentional.

72 (edited by lawsy 2013-02-24 11:57:15)

Re: Firmware Z wobble compensation

My understanding was it had a fatal bug that hadn't been fixed. If this is incorrect I'll add Neil and he can reintroduce the code.

73

Re: Firmware Z wobble compensation

lawsy wrote:

Ok I've done the new Marlin fork

How much of this is Solidoodle-specific, and how much of this could be used with other printers?  I know some of the printer dimensions are specific to the SD, but what about all of the other enhancements?

74

Re: Firmware Z wobble compensation

Ok the banding compensation mod is in! Sorry I think I made a bit of a mess with the newlines, so it appears that Marlin_main.cpp and planner.cpp are completely new files when only a few lines were changed in each.

75

Re: Firmware Z wobble compensation

jon_bondy wrote:

How much of this is Solidoodle-specific, and how much of this could be used with other printers?  I know some of the printer dimensions are specific to the SD, but what about all of the other enhancements?

Solidoodle changes are not very detailed at all. That part only takes a short while.

I haven't explored all of the new features but it seems as though a lot has been added concerning SD card printing and LCD menus.

If equipped with these, the Solidoodle should support pretty much everything that has been added, as well as the non LCD changes too.

Thanks for adding the code, Rincewind.