Welcome! Log In Create A New Profile

Advanced

Needing help establishing Delta configuration

Posted by papilio 
Needing help establishing Delta configuration
August 04, 2017 05:14PM
A couple of days ago the heater cartridge on my cheap Anycubic Linear went out so I figured I'd just go ahead and buy a Chinese E3DV6 clone on Amazon. That required printing a new effector plate and since switching to that my kinematics are out of whack -- about 0.6mm effective convex printing across the measured 80mm radius of my bed. The Anycubic manual suggest increasing DELTA_SMOOTH_ROD_OFFSET in Configuration.h but that's not making much of a difference at all. From Googling I understand that adjusting DELTA_RADIUS can help but that's evidently stored in EEPROM and therefore persistent unless the EEPROM is cleared.

Is that why there's no definite value for DELTA_RADIUS in Configuration.h? That line merely references
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-(DELTA_EFFECTOR_OFFSET)-(DELTA_CARRIAGE_OFFSET))


If I wish to alter the above value directly it's been suggested that EEPROM be cleared with the following sketch

/*
 * EEPROM Clear
 *
 * Sets all of the bytes of the EEPROM to 0.
 * Please see eeprom_iteration for a more in depth
 * look at how to traverse the EEPROM.
 *
 * This example code is in the public domain.
 */

#include 

void setup() {
  // initialize the LED pin as an output.
  pinMode(13, OUTPUT);
 
  /***
    Iterate through each byte of the EEPROM storage.

    Larger AVR processors have larger EEPROM sizes, E.g:
    - Arduno Duemilanove: 512b EEPROM storage.
    - Arduino Uno:        1kb EEPROM storage.
    - Arduino Mega:       4kb EEPROM storage.

    Rather than hard-coding the length, you should use the pre-provided length function.
    This will make your code portable to all AVR processors.
  ***/

  for (int i = 0 ; i < EEPROM.length() ; i++) {
    EEPROM.write(i, 0);
  }

  // turn the LED on when we're done
  digitalWrite(13, HIGH);
}

void loop() {
  /** Empty loop. **/
}


Are there risks involved in uploading this sketch in order to explore that option?


Of course the immediate fix would be to print the effector plate again to more closely match the dimensions of the original, a couple of measurements are off after PLA cooling -- DELTA_EFFECTOR_OFFSET is about 1mm less than before (as is the distance between the arm joints). But I'm slowly making my way through the process of designing and building a Delta of my own so I need to get started learning this aspect of things -- I've still so much to learn about navigating firmware.


No doubt I've unknowingly left out very relevant details, but I'll be most grateful if anyone can point me toward a possible solution!

- Michael

Edited 3 time(s). Last edit at 08/04/2017 05:38PM by papilio.
Re: Needing help establishing Delta configuration
August 09, 2017 05:31PM
Hi,

this line

#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-(DELTA_EFFECTOR_OFFSET)-(DELTA_CARRIAGE_OFFSET))

actually calculates the RADIUS from the other variables. So changing any of the variables used will have an impact on DELTA_RADIUS including the smooth rod offset variable you changed.

I suspect you are on the right path with the EEPROM. If you are sure, all your variables in the firmware are somewhat ok, just issue M502 in your tool of choice. This will reset all values to firmware defaults (the stuff you defined in configuration.h). After that do a M500 to store the default values. You should now see the effect of changed variables.

Depending on your firmware, you can also modify quite a few of the delta relevant variables with M666. For example M666 H270.5 will set your delta's height overriding the firmware value. You can then store that value to EEPROM with M500. M666L usually prints out the current set of values either from Firmware or eeprom if set. You'll see height, endstop, angle corrections for your towers etc. in variables A, B, C, X, Y, Z, H etc. (just examples, names and values don't correspond, check the documentation for the right letter to meaning).

When using the firmware to calibrate, always do a M502 after uploading, otherwise you likely won't see an effect. That used to confuse me quite a bit when I started with my delta.

Hope that helped,

Cheers,

Richard
Re: Needing help establishing Delta configuration
August 09, 2017 08:36PM
Quote
rstcologne

Depending on your firmware, you can also modify quite a few of the delta relevant variables with M666. For example M666 H270.5 will set your delta's height overriding the firmware value. You can then store that value to EEPROM with M500. M666L usually prints out the current set of values either from Firmware or eeprom if set. You'll see height, endstop, angle corrections for your towers etc. in variables A, B, C, X, Y, Z, H etc. (just examples, names and values don't correspond, check the documentation for the right letter to meaning).

I think Richard actually meant M665 commands? NB also that it doesn't apply to all firmware (e.g. Repetier doesn't accept M665).
[reprap.org]
Re: Needing help establishing Delta configuration
August 10, 2017 04:21AM
Thanks for the correction frankvdh. Yes indeed I meant M665 and M666. Here's the documentation for M665. M666 is right below. I got confused since I used mk4duo on my delta for a while and they seem to have consolidated quite a few of these settings to the M666 command which seems to be only for endstops in plain Marlin.

Commands need to be checked for the particular firmware however the concept is still true. If there's an override in the eeprom, you likely won't see changes you make in the firmware. So reset to firmware defaults after flashing to make sure the new values in the firmware get used. Alternatively use the software configuration with the right commands for your firmware to more quickly do the calibration and then transfer those values to firmware to have sensible default values to revert back to.
Re: Needing help establishing Delta configuration
August 10, 2017 05:33AM
Thanks guys, for your replies! Your attention and time are appreciated, and the tips you've shared have been bookmarked for future reference.

I did finally find online some specific instructions as to how best to proceed:
I entered M665 L218.00 R98.40 S100.00 A0.00 B0.00 C0.00 in iterations, gradually increasing R(Delta_Radius) to 100.3 followed by M501 (Save_To_EEPROM) each time.

Bed flat and true once again, at last ... BUT more importantly, I learned how to do it. grinning smiley
Re: Needing help establishing Delta configuration
August 10, 2017 05:58AM
You're welcome and great that you were successful.

One comment... The M665 line you wrote changes all the values at once (L, R, S, A, B and C). I usually don't do that (unless in a situation where it's desired). I had better luck doing things step by step and only changing one of the values every iteration. This also reduces the risk of accidentally overwriting something that was already well configured. For example, I used G33 autoconfiguration for my delta. If for some reason I had to tweak the delta radius to finetune the G33 results, I would only change one of the variables because otherwise I'd also override the things set via G33. Of course you can also always find out before what your current values are and build the full line accordingly.

And I guess there was a typo, right. M501 reads from eeprom and applies the settings. I suppose you were using M500 :-)


Happy printing...
Re: Needing help establishing Delta configuration
August 10, 2017 06:04AM
Quote
rstcologne
One comment... The M665 line you wrote changes all the values at once (L, R, S, A, B and C). I usually don't do that (unless in a situation where it's desired). I had better luck doing things step by step and only changing one of the values every iteration.

Precisely so! It's just a matter of being so new to these matters and not knowing the proper/working syntax, so I just copied and pasted the whole line -- being certain of course that I was changing only one parameter at a time.


And yeah, busted! That was a typo indeed, I meant M500.
Sorry, only registered users may post in this forum.

Click here to login