text:
Arduino WEMOS and RAMPS
I'm thinking of buying an Arduino WEMOS1 as I am tired with SD card fiddling.

As the ESP8266 chip has 32 Mb (~4 MB) flash memory, I am hoping to be able to push most of the G-code files over the Wi-Fi.
I was trying OctoPi but, having electronic noise issues, the transmission was not stable.
Has anyone tried WEMOS with RAMPS? Is the serial communication stable between ESP and Arduino?

1 Product description is Mega +WiFi R3 ATmega2560+ESP8266 (32Mb memory), USB-TTL CH340G. Compatible for Arduino Mega, NodeMCU, WeMos ESP8266

You might have confused RAM with Flash memory. The ESP8266-12 as used in that board has about 50 kb of RAM available.

That is correct, will edit question.

you also confuse units: the ESP has ~3MB of storage to use, not 32. the 32 figure is Mb (megabits) and your program takes up about a meg as well.

@dandavis thanks for that - that is taken from the specs I found. Anyway if it is 3MB or 32Mb my question is still valid as I was planning to use SD card for storage.

I don't know about RAMPS in particular, but ESP -> Arduino serial communication is extremely reliable; I have a few devices with such a setup and they have well under 1 ppm error long-term

Just to clarify, are you asking about (1) the Wireless noise issues between the ESP and the OctoPi; (2) ESP to the ATmega, or (3) The Arduino board and the RAMPS board? Or all three?

As a follow up, were you able to use this board Wemos Mega +WiFi R3 Module ATmega2560+ESP8266 32Mb instead of the Mega Arduino?

You can also skip the Arduino ATmega, and get an ESP8266 board or it's bigger brother, an ESP32 board. They're 32 bit microcontrollers while still very low power. It's actually kind of funny having the much more capable ESP8266 chip being used on an arduino board just for Wifi. I didn't put this an answer because I don't have a specific board to recommend that meets your needs.

After having looked into them, these boards certainly seem to be rather interesting.
There appear to be two varieties of this board, as I have seen photos with either RobotDyn:

rear (from Instructables)

or WeMos logos on them.

They may, or may not, be the same. There is also this one, with just a generic "WiFi" logo (from the eBay page below):

Memory Discrepancies
However, there is certainly some discrepancy relating to the specification and amount of memory (unless there are a number of variants - which would certainly be possible):

4 MB of Flash is in the ESP8266-12, as Dan states, see ESP8266 SMT Module - ESP-12. But is it the ESP8266-12 in the board, or is it another ESP variant?
This WeMos product, on eBay, WeMOS Mega + WiFi R3 ATmega2560 + ESP8266 USB-TTL For Arduino Mega NodeMCU appears to agree with the 32 Mb1
This RobotDyn board, Контроллер RobotDyn Mega 2560 R3 + WiFi ESP8266b, flash память 8Mbit, USB-TTL CH340G, MicroUSB, has 8 Mb apparently.
However the same product page, but in English, upgrades the memory to 32 MB! See MEGA+WiFi R3 ATmega2560+ESP8266, flash 32MB, USB-TTL CH340G, Micro-USB

Looking at this article, Instructables - Arduino MEGA 2560 With WiFi Built-in - ESP8266, it isn't exactly the ESP8266-12:

In today's text, we discuss an Arduino that I consider extremely special, as it has an ESP8266 embedded in its board. It doesn’t have the ESP12 soldered onto the board. Instead, it has the Espressif chip. So, on the board you have the built-in Tensilica chip with 4MB of memory, along with the ATmega2560, which is the traditional Arduino Mega.

So the ESP has 4 MB, but where does the 32 Mb come in to play?
Well, looking at this RobotDyn memory table (taken from the Instructables page):

The 4 MB of the ESP appears to have been immediately contradicted and upgraded to 8 MB! The ATmega2560 somehow has 32 Mb (which seems a bit of a lie - as there isn't an ATmega2560 known to man that has that much memory2), and is confused further by the corresponding text:

As we see in the table above, the ATmega has 32MB of memory, not counting the ESP memory. This is wonderful, since the traditional Mega Arduino has only 256kb of memory.

So MB or Mb? Is there an additional flash IC external to the ATmega2560? Looking at the schematic, taken from the Russian RobotDyn page, there doesn't appear to be:

So this could be nonsense. Logic would dictate that the ATmega has 256 kB and the ESP has 4 MB... But I could be wrong..?
Links from Контроллер RobotDyn Mega 2560 R3 + WiFi ESP8266b, flash память 8Mbit, USB-TTL CH340G, MicroUSB:

Schematic (PDF)
Pin out (PDF) (JPG)
Mechanics (PDF) (JPG)

Reliability of communication
Regardless of the actual spec, to address your question of ESP/Arduino communication reliability:
As the ESP8266 and the ATmega2560 are on the same board one would assume that the (serial) communication between the two would be faultless. However, some issues have been reported3.
Nevertheless, from your question, it seems that you were having issues with the ESP to the OctoPi communication, rather than ESP to Arduino, so maybe this doesn't actually answer your question.
Also, as to their compatibility with RAMPS, there is very little information available currently, and it would seem to be a case of try-it-and-see. The closest I got was this post on the thread, OnStep and RAMPS1.4, but it seems to be spam.
However, it certainly sounds worth a gamble as it would be a nice combination of technologies. However, I would imagine that some modification of the firmware would be necessary.

Useful Notes

From post #8 of Mega + WiFi R3 ATmega2560 + ESP8266 (8 Mb mémoire)

To upload the sketch to the board:
5, 6, 7 ON
RXD3 - TXD3

To run the sketch:
5 and 6 ON
RXD3 - TXD3

Here is an excellent manual in Russian

Footnotes
1  From WeMOS Mega + WiFi R3 ATmega2560 + ESP8266 USB-TTL For Arduino Mega NodeMCU

WeMOS Mega + WiFi R3 ATmega2560 + ESP8266 USB-TTL For Arduino Mega NodeMCU
Features:

Full integration on one board: Mega R3 ATmega2560 and WiFi ESP8266 with memory 32Mb (megabyte)
All of the modules can work together or each separately. And everyone has their own pinout headers
The convenient solution for the development of new projects requiring Uno and WiFi
Via USB you can update sketches and firmware for ATmega2560 and for ESP8266. For this on board have the USB-serial converter CH340G
Use this board is very simple
The board has DIP-switch, to connect the modules. For example to:

USB and ATmeg2560,
USB and ESP8266,
ATmega2560 and ESP8266

Table DIP- Switch:
Connection                                                          DIP
                                           1        2        3         4       5         6        7
ATmega2560<->ESP8266                      ON       ON       OFF       OFF     OFF       OFF      OFF
USB <->ATmega2560                         OFF      OFF      ON        ON      OFF       OFF      OFF
USB<->ESP8266 (Update firmware or sketch) OFF      OFF      OFF       OFF     ON        ON       ON
USB<->ESP8266 (communication)             OFF      OFF      OFF       OFF     ON        ON       OFF
All independent                           OFF      OFF      OFF       OFF     OFF       OFF      OFF

Special solution:
USB <->ATmega328<-> ESP8266
Connection                                                          DIP                                     SWITCH 2
                                           1        2        3         4       5         6        7

USB <-> ATmega2560<-> ESP8266             ON       ON       ON        ON      OFF       OFF      OFF         To RXD3/TXD3

USB converter CH340G connect to RX0/TX0 of ATmega2560
ESP8266 connect to RX3/TX3 of ATmega2560

Size: 10.5x5.3cm/4.13x2.09inch

2 From the Atmel ATmega640/V-1280/V
-1281/V-2560/V-2561/V datasheet

3 From Mega + WiFi R3 ATmega2560 + ESP8266 (8 Mb mémoire), there do appear to be some issues communicating between the ATmega and the ESP ICs, with a number of users reporting problems.
However, a couple of solutions are provided:
Solution 1
From post #2

Set the DIP switch to "special" mode: (1=on, 2=on, 3=on, 4=on, 5=off, 6=off, 7=off, 8=off) see the the description of the
  product.
Set the switch in RXD3
Run the below sketch, change the SSID and PASSWORD values. this is just to test that Arduino and ESP8266 are working together. The code
  originated from BISSA ORBOEA in Element14.

Code:
#include "ESP8266.h"

#define SSID        "YOURSID"
#define PASSWORD    "YOURPASSWORD"

ESP8266 wifi(Serial3,115200);

void setup() {

  Serial.begin(9600);

  Serial.println("Restart");
  wifi.restart();
  delay(1000);

  Serial.println("FW Version:");
  Serial.println(wifi.getVersion().c_str());

    if (wifi.setOprToStation()) {
        Serial.println("OprToStation ok");    }
        else {
        Serial.println("OprToStation  err");
    }

    if (wifi.joinAP(SSID, PASSWORD)) {
        Serial.println("Join AP success");

        Serial.print("IP:");
        Serial.println( wifi.getLocalIP().c_str());
    } else {
        Serial.println("Join AP failure");
    }
}

void loop()
{
}

Solution 2
From post #6

First you need to write the code for each board according your
  application, but in your code you need to establish a commmincation
  between serial port of Atmega and ESP in both code, again in according
  you application. Finally, put the switches which make the intenal
  interconnection between both.
For example, I made a code for ESP to connect in an Access Point and
  put on a TCP server. When a wireless client is connected in ESP and
  consequently in the TCP Server, all data send by client I redirect to
  the serial port. As serial port of ESP is connected with serial 3 of
  the Atmega, the code in Atmega pass to theat the data from serial 3.

Solution 3
From post #11

Follow this if you have the same to my cases:

programm to the ESP(upload sketch) for wifi connection by configure the DIP to 5:on,6:on,7:on and other off.
program to mega(upload sketch) in case you want to send communication to each other by configure Dip to 3:on,4:on, and other
  off.
switch two  RX0/TX0(in my case I use Serial.print() and Serial.readString() for communicate between Esp and Mega)
after you already upload sketch to both Modules you can test communication between them by configure DIP to: 1:on,2:on,3:on,4:on.
  and then press Reset Button to restart the boards.
In ESP you can get the string from Mega by  if(Serial.available()) Serial.readString();  and In mega you can get data from ESP by :
  if(Serial.available())Serial.readString().
After you got a string so you can split or do anything whatever you want.
If you want send data to Firebase you must use the Firebase Library at the Esp side, in Mega it not support.

thanks a lot for that compilation. will buy one and see how it works.

Yeah, I want to get one. I've just updated my answer with a reasonably accurate sounding description. I will continue to look for a RAMPS use case.

Great post, you want to make me buy that board! :D

@0scar - The trouble is that the documentation seems to be lying about the memory, and there is not one clear description. There also seems to be two varieties. RobotDyn and WeMos - although they may be exactly the same


text:
What do you call this effect in 3D printing and how can I remove it?
I have a Bowden extruder in my printer setup. Everything works great except this effect which must be related with retraction and is generated on Z layer change:

The model itself, is printed in one layer perimeter / outline shell, with 0.25 mm layer height with the following settings:

Turn off coasting. You should see some improvements right away.

What you see on the outer surface is called "zits and blobs".
These small imperfections you experience are "zits" (larger ones are referred to as blobs). As the extruder needs to start and stop as it moves around during a print, it is difficult to create a seamless joint, so the over-extruded filament represents the location where the extruder started (or ended) printing a section of the outer perimeter of your print model. Sometimes it returns to the same spot in a single extrusion run, in other cases the perimeter is constructed of multiple sections.
It is possible to do something to minimize the effects depending on the slicer you use, but the general solution is to prevent too much plastic being deposited at either the start or the end of that seam. E.g. incorrect retraction settings may cause too much plastic to be extruded at the start, and pressure build-up in the nozzle may cause an excess of plastic to be extruded, both lead to the imperfections you experience. First you have to find out which of the two effects is happening with your prints. Once identified, you can play with settings like retraction, priming, and coasting to counteract on these imperfections. A more detailed description can be found here.

Edit:
Please read the addition posted in the comment by @Trish; the comment describes that this may also be related to over-extrusion!

I have experiences, that slight overextrusion also can result in only being visible at the point where the outer shell meets.

@Trish Yes true, nice addition!

Retraction speed is slow, retraction distance is high, wipe nozzle :/ ...

Your retraction-related setting "Extra Restart Distance" = 0.12 mm could be the cause of your issue, by using a too-high value.
I don't know which slicer you use, but it seems that this setting is the equivalent of "Retraction Extra Prime Amount" in Cura, there explained as follows:

Some material can ooze away during a travel move, which can be compensated for here.

So if retraction happens on layer changes in your case, then this setting could be too high, leading to the observed zits.
Indeed your value is quite high. It is equivalent to $\pi \times (\frac{1.75 mm}{2})^2 \times 0.12 mm = 0.29 mm^3$ (assuming 1.75 mm filament). Each of your zits is roughly a half cylinder of 0.6 mm in diameter and 0.35 mm in height, so $0.5 \times \pi \times (\frac{0.6 mm}{2})^2 \times 0.35 mm = 0.05 mm^3$. It is easy to imagine that your 0.29 mm3 extra prime amount could be too much by 0.05 mm3.

Yes, the problem in this question was entirely "extra restart distance" which is always wrong and should always be set to zero. There is simply no way that any constant value will do the right thing. I've even seen people with it "reasonably low" who had giant prints fail from nozzle collisions once they got to a part with lots of travel because the over-extrusion added up and had nowhere to go but up.

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

sort: votes


text:
Gaps in Cura's Slicing for Monoprice Select Mini V2
Why does this happen (circled in red), and how can I fix it? It is making my prints come out horrible.
Not shown in the picture, but the option "Coasting" was Enabled:

Coasting Volume 0.064 mm3
Minimum Volume Before Coasting: 0.8
Coasting Speed 90%

Hi and welcome to 3D Printing.SE Could you look at the option "coasting" and report the value?

Coasting was Enabled (Coasting Volume .064 mm^3, Minimum Volume Before Coasting: .8, Coasting Speed 90%). I've disabled it and it looks sane now. Feel Free to write an answer and I'll give you an upvote.

If you enable the option "Coasting", the extruder will follow the extrusion path at the end of switching to the next layer or the next section, but will not deposit any material as it uses the build up pressure in the nozzle to deposit the final bits. This shows up in your G-code representation by empty (non-depositing) gaps (in reality, when fine-tuned correctly, will be filled).
E.g. sliced without "Coasting" enabled:

E.g. sliced with "Coasting" enabled:

I have had a similar thing happen when slicing a large piece that has - in real life - walls of about 2 cm. By scaling it down to 1.5%, this become less than the wall thickness, and the wall was simply omitted by CURA.
In my experience, a model showing gaps can have in these locations a thickness less than 1 wall.

Yes that is true, but not the case in this example. Very nice addition to mention for people that may stumble onto this topic with wall thickness issues!

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Print quality of Kossel clone for Print in Place models
My first printer is Delta style Kossel clone and I have bad luck with Print In Place (PIP) models, especially with hinges. I suspect that my printer just can't achieve low enough tolerances to make the hinges work.
Are there any tricks I can employ to get better prints for PIP models?

Much better. Would you share some specs about your printer? like nozzle size?

Delta printers are considered to be able to be accurate printers cause of the limited weight in the head (using Bowden extruder setup). The positioning can be very accurate (limited weight, limited overshooting) and because of the limited amount of weight, the print speed can be increased.
An interesting paper has been written on a comparative study between a Cartesian and a Delta machine. The paper concludes that the Delta style printer produces "a better surface finish". However, I'm a bit skeptical as the images of the Cartesian printed part they have printed are of far less quality I can produce with 2 of my printers. Fact is that Delta machines have no Z-wobble (also called banding) that is a common problem with Prusa i3 style printers for instance.

It is possible that your printer is over-extruding, and this will certainly give less satisfactory results when you try to print models which have internal clearances.
It is also possible that you have some calibration issues which affect orthogonality, x/y/z dimensions or flatness in each axis.
In terms of general improvements, slower and maybe cooler might help - but before jumping in with difficult models, how are your 'standard' print test parts coming out?

Which 'standard test parts" would you suggest?

@linuxdan ask that as a separate question...

asked here https://3dprinting.stackexchange.com/q/6470/10422


text:
Heatbed with zones?
Waiting for a heatbed to get up to 85˚C for a relatively small part got me wondering why beds aren't hardware/G-code configurable for what area is heated? I'm sure it would be an increase in parts costs and electronics, but it seems that being able to just heat an area a little larger than the part(s) being built would save in time and energy use.

That is a very good question. It would require switchable sections of the PCB track, but how would those sections be configured? Differing radii of circular PCB tracks? or if in square blocks how would they be arranged, and how many (in halves, quarters, eighths etc.)? I guess the permutations for a square one are a bit more complex and numerous to be practicable. Doing it for a round heatbed seems simpler though. Also, how big would the market be, and would the added complexity in electronics (i.e. cost) and code be worth it. It seems a good idea though... Design a prototypePCB in EagleCAD?

@Greenonline RepRapFirmware already has an optional parameter (H for M140) to select heatbed, this could possibly be used for that. For Marlin it will require some extra coding as H is not yet a supported parameter. Nice project!

You must learn patience, grasshopper.     No, seriously: when you're printing anything that takes longer than 30 minutes to complete, the heating time is insignificant.

Well, not just all about patience ... do we really need a full 200W (~) element heating up non-used space for hours (days)?

@Jer well, Using the whole heating element the heat bed reach the printing temperature in 3 or 5 minutes, using the half heating element the time increases between 8 to 12 minutes. I don't want to wait to get roots on my feet.

I'm not sure why you are saying it will take more time to heat up. If I turn our stove's small burner on high it doesn't take longer to warm up than the large burner. Now, if there's zones each zone will also need to have its own thermistor to know when it has reached temperature.

@Jer, the reason why it takes longer is called "conduction"; heat flows to the rest of the plate that is not heated, so it takes longer. Does any of the answers helped you to get an answer on your question or helped you come to your own conclusions then please do vote and accept an answer. This helps us reduce the unaswered questions list. Found an other answer (then the already posted) yourself? Please add that answer (and accept after 48 hours) to share your experience with the community.

I've wondered that myself a while ago and fact is that such beds or silicone heating pads do exist. Usually these are quite large (and expensive) and usually referred to as "dual zone heat beds/pads".
As far as energy consumption; less area to heat is faster heat up times (depending on the control) and less energy consumed. For small prints this may be beneficial. The price of such beds are very high, so to break even you would have to print a lot. An alternative to buying would be to etch your own bed.

Thanks. As I've been thinking over people's answers I can see you'd want to segment the heated areas in a number of ways: ideally a bit of a heat break, some kind of switching to turn on/off zones, they'd need their own thermistor, and finally something to control/interpret all of this back to the main board. Not something you'll find any time soon on a sub-$200 printer.

The heated bed is a reasonably good thermal conductor, so the difference in energy between heating all or 10% of the bed (assuming a 3x3 grid split 1 and 8) isn't going to be that significant.
In terms of heating speed, 200W across the whole bed will heat it faster than 40W applied to the centre square, and will also be less likely to cause warming or heat cycling effects (unless PSU regulation is a problem).
If the bed is much larger, or has thermally separated zones, then there might be some justification in the increased control complexity.
As an example, although glass has a thermal conductivity around 1% of a metal, it is still 30x better conducting than air. Conductivity towards the unheated areas of even a solid glass bed will roughly match the surface loss - so best case you would reduce losses to somewhere 20%-50% of what heating the whole bed might cost (assuming the same 3x3 grid).

I had the same concerns as you about conduction, but not come to putting it in words! The only thing I can think of to dispute this is thermal silicone heating pads (on an insulated body) in conjunction with a glass bed, glass is a poor heat conductor. Nice addition!

As the etched version is very impressive (thanks 0scar for that), there are other possibilities to build zones on the bed:

Using resistance wire;
Using a etched bed with zones.

The challenge with zones is mainly down to:

When and how to switch on/off particular zone;
Temperature control needs to be added to every zone to avoid over/under heat in the particular zone.

This last point brings even more challenges as that requires a PWM channel and a temp sensor (per zone), so standard RAMPS need some extensions in the wiring.
One could overcome that using custom G-Code to set on/off zones and a double temp sensor for the main zone to follow the temperature changes.
In detail: a dedicated Arduino with PWM outputs that will read the temperature from a secondary temperature sensor in the main zone and follows it.

The commercial dual zone beds come with a controller to do that, indeed a simple Arduino should be able to do that. You could even alter the Marlin bed heating code to include an extra parameter that determines which bed to heat up. It seems that reprap firmware already has such functionality (parameter H). Recent versions of RepRapFirmware also provide an optional 'H' parameter to set the hot bed heater number. If no heated bed is present, a negative value may be specified to disable it.

thanks for that @0scar, I have a 500mm X 500mm  bed, so I am thinking to slice it in 100mm zones, that gives 5 zones to be controlled, and RAMPS will not handle that without extending it as that requires at last 8 extra pins and some extra computing power which we know is limited.

100 mm squared makes 25 zones ;) What about control using i2c?

it extends by 100mm so we have 5 elements

A rotary switch can help 2P6T, also are called selectors.

@FernandoBaltazar thanks for that - great idea, but it will not be driven by G-code :-)

@profesor79 Can be driven normally the heat bed, you only select the area to be heated manually.

it is probably too late for the party but i thought about grid heated bed recently. about controlling which zone to turn on and off, i think we can treat the grid as Led matrix, the matrix led signal can be used to drive mosfets to power the heat pads.

It makes more sense to insulate "unused" areas, since the heat conduction goes with the surface area. Heating the plate at some place (instead allover the area) makes no big difference (aluminium is a very good heat conductor, this is already mentioned). But insulation will do. I would propose a downside full insulation (5-10 mm) and some "windows-shaped" square silicone (other thin material?) mats to cover the unused areas (mostly on the outer side of the bed) on the top side. Beware of collisions and auto-leveling algorithms (starting very often at corners). Side effect: you may reach much higher temperatures at the uncovered areas (might be doubled if covering half of the surface).


text:
Cura slicer, enforce Z move before layer change
I am slicing with Cura and Slic3r and one important thing that I recently took my attention is that cura positions head in start point of the new layer and then lifts the nozzle. That caused my few printouts to fall as they collided with the nozzle.
Slic3r behavior is different: it raises the nozzle in last printed point and then moves to a new layer starting point (which for me is more obvious)
Is there a way to instruct Cura to lift nozzle before it goes to the starting point of a new layer? excluding Z-hops.

You sure of that?  Nobody else is complaining about Z-interference (unless you've found some forum links) from Cura slices.  I suspect you're dealing with overextrusion or some such.

@CarlWitthoft with 0.4 nozzle and 0.2 layer is okay. With 0.32 layer I'm running into issues

A 0.32 mm layer is slightly over 75% of the nozzle diameter which is regarded as the maximum, try 0.28 mm or 0.24 mm instead.

OK, after going via all the options I found that CURA has a combing mode which reduces retraction and offers another option which is Avoid Printed Parts When Traveling.
That solves my problem.

Good to hear that you found a workaround that works for you, but technically your answer does not answer the question Cura slicer, enforce Z move before layer change or Is there a way to instruct Cura to lift nozzle before it goes to the starting point of a new layer?

@0scar please read this twice: 'Keep an open mind
The answer to your question may not always be the one you wanted, but that doesn’t mean it is wrong. A conclusive answer isn’t always possible. When in doubt, ask people to cite their sources, or to explain how/where they learned something. Even if we don’t agree with you, or tell you exactly what you wanted to hear, remember: we’re just trying to help.' source: https://3dprinting.stackexchange.com/help/how-to-ask and the main point is that asking a question is a part of creating the solution!

Why not change the question to include "or another method to avoid hitting the print" and expand your answer where you say you address the avoidance of the printed parts, then it would be a correct answer!

To lift the head to prevent the nozzle to tip over your print you could use an option called Z hop in Cura. Just enter `hop' in the search box on the right side to make those options magically appear (in a recent version of Cura, e.g. version 3.x.x).
Other than Z hop there is no default action, or series of commands, per layer to be specified before the start of the layer. There are 2 other ways to circumvent this:

The first is saving you G-code to file and open the file in an advanced text editor (e.g. Notepad++). With a (recorded) macro you can find the words ;LAYER:, which are inserted by Cura before each layer starts, and insert a pre-copied list of commands that set the movement in relative mode, move Z up 2 mm, set into absolute mode again. When the next layer starts the extruder goes to the layer start from a 2 mm rise.
Write a plugin for Cura to post-process (C:\Program Files\Ultimaker Cura x.x\plugins\PostProcessingPlugin\scripts) the G-code file to inject the code to Z hop before the start of every layer, or a plugin that adds a new option and/or category to the slicer settings sidebar of the GUI.

that is not an option..... shall add that to question. this will extend printing time by 3 to 4 times as was trying that...


text:
Interesting project for a child
A member of our hackspace wants to get their 8- and 11- year old kids1 excited about 3D-printing and CNC cutting and makering in general. We have a weekly open training where people can design and print/CNC/laser an item of their choice like a dogboned box or a two-piece sword and hilt, or a name tag, or whatever. I need a few ideas prepared so we don't spend half our lesson on Thingiverse or in Fusion (more like a quarter)! I'm not a parent and my youngest friend is probably in their twenties.
What we have:

a full bed 1200x1800 mm CNC (preferred, because it's loud and fast)
Prusa mk3
cheapo 80W 500x300 mm laser
Fusion 360 based workflow, easy :)
Arduinos and stuff

Ideas we've had: a minecraft creeper, done as a simple-ish box.

1: the (girls) are not interested in my normal kids' goto, which is: swords, shields. They are interested in: minecraft, dragons, horses. _o_/
edit: this is NOT an opinion-gathering post, though there may be more than one "correct" answer.  We need specific applications of 3d printing for a young audience. This collection of answers will be useful to evangelize making to a whole new generation!

Hot network question! :-)

Correction... was a HNQ, until it was closed... ah well... :-(

With some edits it could become a more solid question. It just needs to be more specific, and less open.

@StarWind0 - I quite agree. Shame really, as it got a lot of people's attention, and we need HNQs.

court3nay, can you reword it, so that it isn't such a shopping question? And not so opinion based (somehow)? I don't know if that is possible. Also, maybe, remove the "I know that this is an opinion based question" as that is the kiss of death, TBH.

@Greenonline How do we invite someone to a chatroom, we could help them that way and help rewrite it. Or do the edit ourselves.

@StarWind0 either super ping them from within the room or send them to this URL: Public 3D Printing Room.

This question is in the idea nice, but it is also a can of worms in others: it is open ended, as the limits are very open, unless making it very general. There is no way there is a best answer for this, making it opinion based. And finally: the last sentence makes it an idea grab.

it's too late! you can ban it, but I got some great answers before you did :) Sometimes you have to let a question slide against the "rules" because it's in fact in direct synchrony with the mission, which is applications of 3d printing. It is in fact highly specific and there are in fact best answers. Just look!

Well, I'm glad that we managed to squeeze in some answers prior to the closure :-) I've just updated my answer, with some other links that I had in my note book.  Good luck inspiring the budding 3D Printing Engineers...

@court3nay the system did it based on user flags. Not an admin action. SO can be a tad strict given it's format unfortunately, and giving it got to hot question it was just a matter of time. The "this is opinion based" is probably what did it alone. Glad you got what you needed. Hope you post again soon.

Useful question. I asked something similar in Chat, and got no reply...

update: the girls made nameplates/name-tags with animals they had just drawn (inkscape) on the laser cutter.

@court3nay I know your passion or the question, but as it is, there simply is no way to serve this question justice at the stack, as each answer is equally valid.

@trish nope, this in fact specifically adheres to part 2 of https://3dprinting.stackexchange.com/help/dont-ask i.e. what to ask.

@court3nay there can't be a best answer, it is an open ended list question... or in other terms: a shopping question.

This question is unfortunately, not a good fit for this site, as it stands, for as you say it is opinion based. However, it is great to see that you are getting kids into a relatively new technology (yes, I know it has been around for years, but it is still seen as new to big media and the general public).
My answer doesn't provide you with any actual designs, as you asked for. However, just to add an idea or two that I have been thinking about recently, in order to engage kids:

Have you thought about using 3D printing pens (as side projects to the main feature of the printer)? Although I'm not so sure that the fumes at such close proximity would be that great, unless using PLA. That really would show close up the additive process.
Also, there is a lot of useful sites to be found on google (which you have probably seen), such as:

kidscodecs - What is 3D printing?
All3DP has 3D Printed Toys – 11 Ideas for Children of all Ages, but these seem to need to be purchased.

Alternative applications for kids, from Best CAD Software for Kid Creators, that might be worth considering if Fusion 360 doesn't float their Benchy boat:

Solidworks Apps for Kids,
SketchUp
123D Design
Tinkercad;
LeoCAD
Leopoly
BlocksCAD
3D Slash
Some other ideas from 3dPrint.com - 3d design app for kids

Maybe, as all kids seem to have iPhones, or what have you, these days, how about an App for kids upon which they can play with a design, and then print it later? Such an app would probably provide examples for them to get started with. One such app is the Toy Maker by AstroPrint - although that may require a commercial printer, I'm not sure. However, other such apps for smart phones probably are out there.

As for examples, there are 42 kids toys tagged on Thingiverse, such as:

Save the last Unicorn [Game]
Cartoon Weiner Dog
Lily Bobtail (Peter Rabbit Series)
Grand Hillar

Also to take from IronEagle's idea, some fidget spinners:

Fidget Spinner
Kid Sized Generic Spinner
10mm Nut Fidget Spinner

you say it "isn't a fit for this site", but here you are with a bunch of good designs AND anyone in future looking here for "kids" will get a bunch of answers that I'd say are all factual and definitive. Good stuff! :)

As @fred_dot_u mentioned above, keychains are a simple, personalized item to make.  In terms of interesting projects, things that I found intriguing when I first encountered 3D printing were objects that could not be made by other means, such as those "geared bearings" (Google: geared bearings 3d print).  Given the popularity of figet spinners a while back, they could be an interesting item.   A captive ball in a box, or three joined rings, can also be set up as a 3D print, and could have the same effect, while being easier for the kids to design.
EDIT:  Some links to versions of items along the above lines.  Thingiverse tends to slowly break links, though, so these might not last:

Geared Bearing
Captive Ball
Three Rings
Triple Gear
Self-aligning Bushing Keychain

Why the downvote?  OP asked for ideas for objects to make, not software to make it with.  They already mentioned they have a good workflow based on Fusion 360.

I'm not sure, maybe because you suggested geared bearings and not dragons and horses? Although, obviously, I can't see what's wrong with girls printing gears, personally, it is something that should be encouraged. Maybe if you could provide some direct links to gears and spinners on Thingiverse, that might garner you some upvotes? Here's a +1 as encouragement :-)

thankyou, I didn't downvote you, but the kid would say: what's a gear /bearing? maybe kids like things that are more obvious, like: a fidget spinner or something with a gear in it?

Our local library makerspace holds summer camp for a limited number of lucky attendees, ages from 12-15 and the curriculum has a segment which appears to match your objective.
In the case of the Launch Pad Camp, the campers will be using OnShape to create a keychain/nametag with text of their choosing. It will be an unremarkable 3mm thick x 35-40 mm wide x 70-80 mm long "plank" with a depressed center (by 1.5mm) and raised text. The mentors of the camp expect to be able to teach these campers how to use the software to perform tasks by rote. I assisted the mentor in the process as she had no idea how to use OnShape. Neither did I, but that never slows me down.
Another aspect of her camp is that it will (or may) include using Scratch

and does include using a Scratch based program called Ozoblocky to interface with Ozobots.

I suggested to her that she could use BlockSCAD to create the 3D objects, as the interface is nearly identical, and in my opinion, very easy to use.
Not surprisingly, BlockSCAD has a series of tutorials available on the YouTube.
The editor for BlockSCAD is browser based removing the requirement to install on every computer.


text:
What voltage does the Creality Ender-3 run at?
I am pondering about buying a Creality Ender-3, and I am honestly confused about some reviews. Some claim it is running 24 V, one did claim it was 12 V, most don't mention it. Since I know about some issues with the clamps, if I get myself an Ender-3, I want to replace the hotend with a proper one from day one. So knowing its voltage is needed to order the right parts.

Bearing in mind that the specifications on Amazon's page are sometimes not 100% (even though they are in this case), it is always best to check on the manufacturer's website.
From Creality3D's own website, Creality3D.shop, on the Creality3D Ender-3 product page, Creality3D Ender-3 3D Printer Economic Ender DIY KITS, the specifications are given as (emphasis is mine):

##ender-3 Machine Parameter:

Modeling Technology：FDM (Fused Deposition Modeling）
Printing Size：220220250mm
Machine Size：440410465mm
Package weight：8kg Max
Traveling Speed：180mm/s
Filament：1.75mm PLA,TPU,ABS
Input：AC 100-265V 50-60Hz
Output：DC 24V 15A 360W
Layer Thickness：0.1-0.4mm
Nozzle diameter：0.4mm
Precision：±0.1mm
File Format：STL,OBJ,G-Code
Working Mode：Online or SD offline
Max Nozzle Temperature：255℃
Max Hot bed Temperature：110℃

Attention! Creality3d.shop is not the real shop https://www.creality3donline.com is the real online store. this information appears correct though, as it's probably just ripped from the official online store.

The Creality shop is now https://www.creality3dofficial.com/, as said on their site https://www.creality.com/ (online shop link)

After checking the amazon listings of the ender-3, they contain more information than the gearbest listing: indeed it is a 24V machine.

Product description
[...]
Output: DC 24 V 15 A 360 W
[...]

The Ender 3 and the CR-10 printers use the same board which runs on both 12V and 24V.  I have one of each and have to be careful swapping parts between the two.

Really? That is very interesting to know. Please see What specifications of the dual voltage controller of the Ender 3/CR-10?

I'll go poking around with my voltmeter this weekend and report what I find.


text:
Writing G-code : swiping at start of print
Ok, I did it, I ordered myself an Ender-3, a genuine 24V e3D hotend, inductive sensor and some better tubing/clamps to cope with the problem the CR10/Ender line has occasionally.
But now I need to fix up my Cura for the machine coming in. The start is the CR10, and fixing the dimensions is easy.
But now comes the tricky part: Start and End G-code. For my TronXY I never bothered with changing it away from the "basic" settings that a "custom 3D printer" on Marlin gave, but this time I want to know what I type in there. The basic code, after I dragged out the G-code handbook from the RepRap wiki to add the missing comments is:
G28            ;Home
G1 Z15.0 F6000 ;Move the Gantry up 15mm going fast
;Prime the extruder
G92 E0         ; reset extrusion distance
G1 F200 E3     ; extrude 3mm of feed stock
G92 E0         ; reset extrusion distance

The RepRap Wiki suggests that there could be made so much more from this.
I would love to swipe the nozzle before starting to print, making sure that the curled up filament from this first extrusion doesn't get squished against the nozzle and make a bad first layer.
How does an example (commented) G-code for swiping the nozzle look like?

The lazy way: Skirt/Brim
With my TronXY X1 I learned pretty fast, that this first bit of extrusion on an unheated bed can totally mess up the first layer by being just in the way, as explained in the question.
To some degree, this behavior can be avoided by adding a skirt of a certain length. An equally good alternative that also increases bed adhesion for tricky parts is the brim. Both are not set via G-code but can be added by the slicer. In Ultimaker Cura both are found in the tab Build Plate Adhesion as type, as the following pictures show:
Skirt: 2 lines, minimum length 250mm

Brim: minimum length 250mm, 8mm width

The Prusa Priming-line
Angus/MakersMuse introduced me to the Prusa Priming Line in one of his tutorial videos. For his Wanhao he used (for the video) just this start G-code script:
G28
G1 Y-3 F500 ; Move out of print volume
G1 X60 E9 F500 ; start purge line
G1 X100 E12.5 F500 ; finish purge line

This resulted in a nice line like this:

In Ultimaker Cura, this piece of code is added via the preferences of a machine. In Cura 3, you usually had to add the starting G-code yourself. Since at least version 4.2.1, all preset machines contain some variant of a priming line, usually at the left side.

What code we have so far
The code already made by Ultimaker Cura 3 (and then commented on) can be explained a little more:
G28 ;Home
This homes your machine to hit end stop positions, from now on your printer knows the coordinates of the print volume. This place it knows as <0-0-0> - check where that is: above the print surface or next to it!
G1 Z15.0 F6000 ;Move the Gantry up 15mm going fast
Instruct the build plate to move down, or in your case lift the head up 15 mm at 6000 mm/min
;Prime the extruder
This is a comment that the nex code will deal with priming the nozzle
G92 E0 ; reset extrusion distance
G92 sets the position of the extruder by resetting the current position to the specified value of zero
G1 F200 E3 ; extrude 3mm of feed stock
This will extrude 3 mm of filament at a feedrate of 200 mm/min
G92 E0 ; reset extrusion distance
This will reset the extruder length again to zero
Result of the code
Basically you will have some filament dangling on your nozzle now, or falling of as the nozzle is hot creating a fine string. You now are facing the possibility that the primed material will be dragged along the build plate to the start of the print.
Nozzle Preparation: Priming sequences
Ultimaker 3: 'blob'&swipe
An alternative I really like is the priming sequence of the Ultimaker 3. The hot end is instructed near the origin of the printer at about a height of 2 mm above the build plate when it starts to extrude plastic, once the extruded plastic becomes a puddle of about 6 mm in diameter the build plate lowers a few mm's and keep extruding for a bit. It then moves in positive Y direction (to the back) and raises the platform (this is the swipe action), then retracts and starts to move to the print start. Now the puddle of filament stays near the origin and will not be dragged.
You can easily make a similar schematic for your printer, I've done so also for various printers. Try and experiment what works best for you. The swipe action is the movement where the nozzle will be instructed to move near the build plate while moving in a certain direction (Y or X), a height of a few tenths is enough to swipe.
I don't have my exact profile here, but you could add (skipping feedrates):
G1 Y15 Z0.2 ; moves the nozzle backwards and down from 15 mm to 0.2 mm
G1 Y20 Z0.2 ; swipes the nozzle, this should cut off the "worm"
G1 Z1     ; raise for movement to start of print to add a little space to travel

Blob & Cut
A different approach is to move to a position out off the print bed, then extrude a long piece of filament and then move forward, cutting the filament at the edge of the print surface. A sample G-code that needs to be adjusted to your bed:
G28
G1 Y-5 X5 Z0.1 F500    ; Move off the print surface, a bit above the 0
G92 E0                 ; reset extrusion distance
G1 F200 E10            ; extrude 10mm of feed stock
G92 E0                 ; reset extrusion distance
G1 Y2 F500             ; Move into the print platform

This is my code:
START CODE:
M117 Preparing....    ; Nozzle clean message

M140 S{material_bed_temperature_layer_0}   ; set bed temp

M107                  ; Turn layer fan off
G21                   ; Metric
G28                   ; Home X/Y/Z axis
G0 X0 Y0 Z20 F9000    ; Move up 20mm for heating

M104 S{material_print_temperature_layer_0} ; set extruder temp
M190 S{material_bed_temperature_layer_0}   ; wait for bed temp
M109 S{material_print_temperature_layer_0} ; wait for extruder temp

G92 E0                ; Zero extruder

G28                   ; Home X/Y/Z axis
G0 X1 Z0.1 F9000      ; Move up 0.1mm
G0 Y10 F500           ; Move 10mm to get rid of material
G0 Z1 F9000           ; Move up
G0 Y110 F9000         ; Move to line start
G0 Z0.2 F9000         ; Move down

G1 Y20 E25 F500       ; Extrude 25mm filament over 90mm Y axis
G1 Y10 F500           ; Move 10mm without extracting
G92 E0                ; Reset extruder
G1 E-7 F1400          ; Retract 7mm filament

M117 Printing....     ; Printing message

END CODE:
G91                   ; Incremental coordinates
G1 E-3 F1800          ; Retract
G1 Z10 F9000          ; Move up
G90                   ; Absolute cooridinates
M106 S0               ; Turn off cooling fan
M104 S0               ; Turn off extruder
M140 S0               ; Turn off bed
G1 X0 Y220 F9000      ; Move back
M84                   ; Disable motors
M117 Finished!.       ; Printing message

It's almost working perfectly. I can start prints without checking if the first layer is good (requires a leveled bed).
I am open for improvements

This works well, only thing I would note is that in Slic3R I had to swap the curly braces for square brackets.

How does retracting work? Doesn't it mean that 7mm needs now to be extracted (pushed) again before it starts flowing from the nozzle?

I've experimented a lot with priming/swiping in the G-code prologue, as a result of realizing from this question and answer how important it is to get it right. The key points are:

Don't go back and forth; you risk picking back up material you already got rid of. Just swipe in one direction.
Don't overextrude. This can lead to ending with pressure remaining (especially for printers with bowden extruders) after the swipe/prime line is finished. It's fine if your extrusion rate is so low that adhesion doesn't start til halfway down the line.
Slow movement with fan on is good.

And with that said, here's what I use with my Ender 3:
M106 ; Max fan to discourage ooze sticking to nozzle
G28 ; Home all axes
G92 E0 ; Reset Extruder
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching
G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position
G1 X0.1 Y200.0 Z0.3 F750.0 E18 ; Draw priming line
G92 E0 ; Reset Extruder
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching

I also undo all but 1mm of the filament retraction at the end of my epilogue (custom end) G-code, to leave the printer in a state comparable to having freshly loaded filament. If you don't undo the retraction here, the low extrusion rate in the prologue might not be enough to prime the next time you print, but increasing it would over-prime in the case where you're dealing with freshly loaded filament.


text:
Inductive Sensor in 24 V machine?
I am getting a 24 V based Ender 3. From the factory, it has an aluminium bed. So I also put this LJ12 A3-4-Z/BX Inductive NPN NO 4 mm with 6-36 V operation current into the box together with a few other spare parts. Now, as I read up on these things something dawns on me: The normal input and output voltage of a simple switch is 5 V, as sensors are ran on 5 V on most boards (and in digital logics). The sensors run on 6 V plus though.
I do not want to fry my machine by putting in 24 V into the sensor input: What do I have to do (besides making a mount)?

The inductive sensors work better when you apply a higher voltage than 5 V. Usually they are rated for 6-36 V, but please do check.
To prevent frying your board when connecting the sensor to (12 or) 24 Volts you could optically isolate the 5 V and the (12 or) 24 V circuit with an OptoCoupler module:
Image of an optocoupler module

This module uses an optical switch based on the output of the sensor and should be correctly connected:
Image of connecting an optocoupler module to the sensor and to the board
Please note that the image uses a capacitive sensor rather than a inductive sensor, both are connected similarly

Note that there are many sorts of sensors, a few are listed here. Generally speaking, the larger the diameter of the sensor, the larger the detection distance to the bed. Note that these work well with metal beds (Iron/steel better than Aluminium), but will not work for glass (capacitive sensors work on glass but are prone to drift by moisture in the air, a touch sensor may then be a better alternative).

The specs for the indicated linked sensor does show up to 36vdc capability. Nice solution.

Another possibility is to create a voltage divider circuit.

In electronics, a voltage divider (also known as a potential divider)
  is a passive linear circuit that produces an output voltage (Vout)
  that is a fraction of its input voltage (Vin). Voltage division is
  the result of distributing the input voltage among the components of the
  divider. A simple example of a voltage divider is two resistors
  connected in series, with the input voltage applied across the
  resistor pair and the output voltage emerging from the connection
  between them.

Note that fluctuating voltages of the power supply can have side effects that the voltage of the divider is either too low or high for the pin and could result in either a detection miss or could burn the on board processor.
A voltage divider based on 12 V is depicted below based on this source:

Please note that for different voltage you require a different value, e.g. for 24 V you would require (by calculation) a 2.63 kΩ resistor (which does not exist, so put two resistors in series; a 2.2 kΩ and a 430 Ω to get that value).

NOTE:This is posted as a separate answer as the question by the OP can be answered by different solutions; this solution uses a totally different approach than my other answer. It is up to the OP to decide which of the answers suits the OP best. This is not in contrast to the SE approach as can be taken from various Meta questions on this topic. To incorporated this answer into the other answer (with multiple ways under captions) is per definition not better than having various answers; different solutions should be in different answers so that they can be voted independently of each other

It is important that the resistors used for the voltage divider be substantially (at least 10x, as a guide, IIRC) smaller than the input impedance of the circuit that the signal is fed to. Resistors in the kΩ range are likely to be suitable; resistors in the MΩ range may give an unreliable circuit without taking into account the input impedance, and may also give problems if there is any EMI around.

Minimalist Solution
The very simplest possible implementation is to use a single resistor(!) to protect the input pin, as described in this source. The AVR inputs are protected from over/under voltage by internal silicon diodes D1 and D2. The input resistor must be sized such that it will conduct no more than 1 mA when the internal clamping diode, D1, conducts at Vcc+0.5V, or 5.5V in this case. A 22K resistor could work in this case if we use our 24V supply for the sensor. Our current through the clamping diode is calculated by Ohm's Law as (24V - 5.5V)/22K = 0.84 mA.
There is no reason, in this case, to cut so close to the bone though. We do not need particularly high speed detection for this application, so a 100K resistor would be a better choice, and limits diode D1 to 0.19 mA. This gives additional protection for voltage spikes.
This solution works well until the internal diode gets fried by a spike or surge, so it is much better to add redundancy, and use a pair of external Schottky clamping diodes, which have a lower forward voltage drop and will conduct before the internal silicon diodes.
So, my solution, (the one I plan to implement soon on my own Ender 3 Pro*), is from this source article and looks like this:

Where R1, D3, and D4 are my external components as described, and C1 is omitted for simplicity. (If C1 is used, it forms a low-pass RC filter, so you'd need to size it appropriately. If we find that noise or 'bounce' is an issue, we can add C1 easily later.)
In my opinion a single 100K resistor and two Schottky diodes are adequate protection for this circuit, and the 6-36V proximity sensor will work very well on the available 24V supply.
*Based on the first comment to this proposed solution, I recognize the need to look carefully at the failsafe property here. Depending on whether the existing Z endstop is included in the loop, and how Marlin handles this too will determine whether this is a satisfactory solution.
I'll leave my part of the discussion there for now, until I get closer to design and implementation on my own machine.

While this is technically an option, a properly rated (MOS)FET in use as a Voltage Controlled Resistor (or switch) would be preferable. Using the 24 V on the in and putting both outs directly to the pins of the switch turns it into an NC switch that opens upon voltage from sensor, so it needs an NC probe to have a failsafe - on loosing signal from the probe (ripped cable) the limit switch triggers just like on detection.


text:
How bed leveling is achieved without table screws?
I have seen printers with table screws and bed leveling sensor and printers that have only bed leveling sensor (such as Prusa).
So my question is how does the bed levelling work when there is only a sensor, and no adjustment screws? What will happen if I totally remove the table from the printer and then re-assemble it? Will the print fail or what?

Are you asking 'will the calibration persist through dissassembly/reassembly' or something else? Your question is a bit confusing,

RealMen(TM) always level manually like the universe intended. (Shamelessly stolen from some stick-shift enthusiast)

@SeanHoulihane Yes, exactly that.

Does any of the answers helped you to get an answer on your question or helped you come to your own conclusions then please do vote and accept an answer. This helps us reduce the unaswered questions list. Found an other answer (then the already posted) yourself? Please add that answer (and accept after 48 hours) to share your experience with the community.

Prusa uses 9 marker points in the bed that are sensed with an induction sensor to determine the X, Y and Z position. Any deviation for skewness or bed level is compensated through the software. Please do note that the bed is pretty level to begin with (by design).
This is precisely described here, please check the video.
Note that Marlin Firmware (which is basically what drives the Prusa printers) has skewness compensation implemented. This is implemented in the configuration file, and found under header Bed Skew Compensation. You basically print a square and measure the diagonals and insert these measurements into the configuration file. Prusa printers do this automatically by using the measurements of the marker points.

One question to the auto leveling: If the bed is tilted and the autoleveling measured this and then the printer adjust the z axis over the position on the bed, will  a x-y-point on the first layer be located exactly under the (in model) same x-y-point in a higher layer, or will it be shifted to? I mean, if the bed is 1 mm lower on one side over 10 cm then a top corner of a 10-cm-cube should be also 1 mm shifted, so that the cube sill is real cubic and not sheared.

@Horitsu The bed level is usually fading out over a predefined distance, in e.g. Marlin #define ENABLE_LEVELING_FADE_HEIGHT determines that, and the height can be set with M420 Z<height>. Yes, a cube will not be perfectly cubic, that is why even with auto bed leveling you need to provide a bed as level as possible, it only should correct for very small deviations.

@Horitsu Your comment contains a valid question that contains information to ask here on SE.3DPrinting. I'll be happy to answer it again in more detail.

@0scar It is a bit hard t tell from the original question, but I think you can reasonably include this extra detail in this answer. 'How does bed-leveling function' includes the aspect in the comment, and a good answer would make this a good 'duplicate target'.

@0scar i posted it as own question, I'm exited for the answer


text:
3D Printer makes steps at Y axis (in some cases)
I have bought the Tevo Tarantula 3D Printer Kit.
When I'm printing something that I created (using Cinema 4D), the printer prints it without any problems, but, when I download something from the internet, my Y axis makes steps 1-3 mm per layer and it makes any product unusable at the end.
This is what is does.

It does every single layer, not just randomly. I don't know if I have bad configuration or something like that.

I assume you use a slicer like Cura. Is there anything visible in the slicer? Since the model is completely proceeded there should be no impact of the source and style of the stl file on the gcode.

Also a photo is worth a thousand words.

Y-Axis is Heating bed.

Hi and welcome to 3D Printing.SE! With this amount of information it is really hard to troubleshoot for others. Maybe you can specify (in the question) how you download things and what you do with these models to generate G-code files, as in this last step you define the instructions for the printer.

Hi Lopolo! As @0scar implies, we need a comparison of, or you need to compare, a g-code file that works, and one that doesn't. What are you downloading, an .stl file presumably? What do you then do, and use, to create the G-code? Please edit your question and provide detailed steps (with examples/links?) of what you are doing.  Also, as Klaus has stated, a couple of photos of a good print and a bad print might be useful. The more information that you provide, the easier it will be to answer your question. :-)

Also, what do you mean by Y axis makes steps 1-3 mm per layer and your comment Y-axis is Heating bed? It is a little unclear (that is why a photo would be useful). per layer implies the Z-axis. The heating bed is both in the plane of the X and Y axes. But the X-axis is really the print gantry, across the printer. Do you mean that the 1-3 mm steps occur in the Y axis, i.e. the direction coming out towards you, as the print bed moves? and that they occur in every layer? I presume that is what you mean

I will add some photos when ill be home.

duplicate of https://3dprinting.stackexchange.com/questions/475 I suspect.

Reading it closely this could be layer shifting, e.g. https://cdn.shopify.com/s/files/1/0714/6487/files/DSC01220_x500.png

This is what is does. https://imgur.com/47cvqZm It does every single layer, not just randomly. I dont know if i have bad configuration or something like that.

Thanks for the image. Next time please edit your question, and post the image (and any additional information) in the question, not in the comments. That way, all of the information is in one block and people don't have to read the comments to get all of the information. Comments are used for clarification demands. I have edited your question for you this time. Thanks again :-)

When you describe a problem like this, it is best to describe the effect, not what you think is the cause - particularly since others then might mis-read your description.
Each layer being offset in one direction suggests that there is a problem with either the part moving on the bed (unlikely), or in the registration of one axis drifting over time.
Most likely, your Y-axis is skipping steps. It could be several things:

the axis binding on it's runners
the drive belt skipping because it is loose
the drive belt binding because it is too tight
too fast a print/travel speed
the print nozzle catching on the print (bed too high, no z-hop)
not enough drive current to the stepper motor
stepper motor failing
belt drive loose on the stepper shaft

A common 'feature' of 3d printing is that different models might emphasise one problem, but a different shape might hide it.
Check that everything is properly tightened, moves freely, and the belts are undamaged - with luck you can find the problem and it's not electrical.

Seems you are right. See the image OP has provided.


text:
How to center my prints on the build platform? (Re-calibrate homing offset)
When I print large prints close to (but not exceeding) the maximum dimensions of the heated build platform on my Anet A8, the brim or skirt or the print itself is printed outside the heated bed, while there is some space left at the opposite sites. It appears as if the print is not in the center.

Why is the print not centered on the bed?It was centered in the slicer before generating the G-code.
How can I center the print to make it fit on the heated build platform?

When centered in the slicer correctly, without offsets defined in the slicer, the printer is most probably incorrectly configured! Luckily you can do something about that! Basically, you will have to calibrate the printer for a new center.
Printer origin?
First of all, the firmware determines where your origin of the printer is. This implies that you need to properly set bed dimensions and offset values from the end stop switches in the firmware (usually not necessary out-of-the-box, but important when a newer or different firmware version is uploaded). These offsets determine where the origin of the bed plate is located. For Marlin firmware it is very common (for most printers) to have the origin specified at the front left corner (when facing the printer). From the configuration of Marlin we find the origin is e.g. in the front-left corner. Note that this can be rotated 180 degrees in certain printers, so the aft-right. Also be aware that there are a few printers that have the origin in the center, e.g. Delta's and a few Cartesian printers. Marlin definition (edited snippet) of a common bed layout:

 *      +-- BACK ---+
 *      |           |
 *    L |    (+)    | R
 *    E |           | I
 *    F | (-) N (+) | G
 *    T |           | H
 *      |    (-)    | T
 *      |           |
 *      O-- FRONT --+
 *    (0,0)
 * .(-Xh, -Yh)

How do I find the physical origin of the printer?
This can be tested by instructing the head/nozzle to go to e.g. (0, 0, 15) using a terminal/console or a simple G-code file with a move to that coordinate that you print from SD card (e.g. G1 X0 Y0 Z15 F500); note a Z of 15 is chosen for safety!. When this is performed, the nozzle should be at the (elevated, so X, Y) origin as defined by your firmware. Usually this is at the left front corner of your build plate (there may be clips there, so therefore the elevated value), but this may be different depending on the firmware settings or firmware brand.
Next step is to configure the slicer as such that this coincides with the actual origin. Incorrect slicer settings can cause the slicer to assume the origin is at a different position than your actual position. In Ultimaker Cura, the "Origin at center" is notoriously known for this when the physical origin is not in the center, but in a corner. When the slicer is properly instructed, but the origin is still not at the corner of the build plate (beware! in some printers the origin is in the middle of the plate) you might have incorrect endstop to origin offsets.
Determine the offset first!
To quantify the offset of the center as it is known by the printer software (firmware) it is advised to print a large square that is a few percentage smaller than the maximum size of the bed. E.g. you can create a square hull at e.g. 90 % of the dimensions of the bed (parametric designs are very useful for this purpose, see e.g. this design). There are many things (.stl models) to be found on the internet. If it includes a cross, even better as some platforms have a mark in the center of the bed.
Example of a bed center calibration model

Once printed, measure the distance from every edge from the build platform to the printed square. If you fail to print the square, please check the level of the platform; this is also an excellent test for the level of your bed!
The measurements should give you a notion of the offset of the bed. E.g. for the X-axis you measure a distance of 12 mm on the left and 8 mm on the right (when facing the printer) you can easily deduce that the center is (12 - 8)/2 = 2 mm to the right (positive X direction). This implies that the printer manufacturer has done a lousy job by delivering you a printer with an offset bed; better said incorrectly configured in their firmware. Note this is not uncommon!
How to fix this!
Once you quantified the offset, you want to be sure that your next print prints in the middle of the bed. How to proceed? Basically there are a couple of solutions you can use, each with its own advantages and disadvantages.

A simple solution (i.e. if the printer support this) is to adjust the position of the endstops. Alternatively you can print alternate endstop holders to match the position change as measured from the calibration print.

Another simple and popular solution is applying an offset in the slicer. You could do that in the printer options some of the available slicers. If such options are not available, you could add G-code commands in the start code to create the offset (e.g. G1 X-2 moves to the left and G92 X0 resets the X origin). Note that this is a quick fix and should be applied wisely. The printer does not know where the actual center is! You merely changed if after the homing sequence. Exchanging .gcode with fellow enthusiasts with the same printer may have adverse effects.

A far better solution is to fix the center in the firmware so that the printer knows the actual center. This requires some extra effort by uploading firmware (files including configuration settings) to the printer or send G-code commands. The latter option will be discussed first.

A prerequisite of this method is that it requires the G-code command [M206](https://reprap.org/wiki/G-code#M206:_Offset_axes) to be supported by your firmware; note that not all 3D printer firmware solutions are able to use this G-code command for axes offset definition. E.g. the stock Anet A8 runs a modified Repetier version that does not support M206, it would be time to upload a new firmware like e.g. Marlin Firmware making this particular printer safer as the stock firmware does not include thermal runaway protection! See question: "What is Thermal Runaway Protection?". To send G-code commands to a printer you have the option to hook up your computer to the printer over USB and use a 3D printer program that support sending commands to the printer (this is called a terminal; i.e. an interface to the printer). Programs like PronterFace, Repetier-Host, OctoPrint, and probably many more have such an interface. A simple alternative that works also is creating a text file (with .gcode extension) with the commands on separate lines and executing the "print". The following codes need to be sent: M206 e.g. M206 X-2 Y2 (move center left and to the back, note to use integer values, float values are not allowed!) and store this new center with M500.

The final, best solution is to set it fixed in the firmware. This requires an upload of a more recent configured version of an applicable firmware. See e.g. question: "How to upload firmware to reprap printer?". Note that there are different methods to upload a firmware to the board, it is best to search the internet for the applicable method for your board.

To do that you will have to be comfortable with computer software and tools to build source files and upload binary code to the printer. This depends on the type of firmware you choose and therefore cannot be described for each firmware in detail. Various sources on the internet describe this process. Generally speaking, it requires you to set the bed and offset values/positions correctly. For Marlin Firmware this comes down to changing the settings in the configuration file, this is similar in other firmware software solutions:

// The size of the print bed
#define X_BED_SIZE 220
#define Y_BED_SIZE 220

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -35 ; used to be -33, so 2 mm shift to left now
#define Y_MIN_POS -8 ; used to be -10, so 2 mm shift to the back
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 240

Thanks for this very detailed explanation! I have an offset for x of -115mm and y of -123mm when I set the X_MIN_POS & Y_MIN_POS accordingly, I can't compile the firmware anymore, it says error: static assertion failed: Movement bounds (X_MIN_POS, X_MAX_POS) are too narrow to contain X_BED_SIZE. Adapting X and Y_BED_SIZE results in the same error. It's an Ender 3. Any advice? Thanks a lot!

@ChristianBaumann Your offsets are impossible values, no wonder it doesn't work.

As to why this happens, particularly with a budget printer the end-stop mountings may not be particularly precisely located, or the moving part may actuate the endstop slightly differently in each build. In my case, replacing the hot end (and thus the whole carriage) gave me an offset of some cm. With this upgrade, it was impossible to retain the stock calibration since the extruder dimensions are quite different.
As to how to fix it, the easiest way for me was to modify the 'start g-code'. This fix only applies to the particular slicer, means that what I slice for my A8 won't be centred on the work maker-club Prusa, but doesn't need me to mess about with firmware or apply a per-model update.
After the Z-home operation, I already have a pre-extrude step. Prior to this, I set the actual position of what I want my homed point to be, using G92
M82          ; absolute extrusion mode
G28          ; home all
G92 X17 Y-12 ; re-define origin
G92 E0.0     ; reset extruder distance position

Limit switch mount errors should be considerably less than a millimeter.  My impression of the OP is that he's off-center by a large amount consistent with failure to include head offset in the slicer.

With the A8, I thought the limit switch mounts used a screw-in-slot - or maybe that was only for Z. I can imagine the actual switch provided might vary between batches too, so it could be a few mm...


text:
Printing with colorfabb XT fails after several successful layers
I'm printing parts for a HEVO (HyperCube Evolution CoreXY), using Colorfabb XT filament. After several successful prints. I'm having a lot of failed prints. They start off pretty well but after ~15 layers the filament starts to string and blob.
Printer details
Model: RepRap i3
Extruder: E3D 1.75 all metal hotend.
Nozzle: .4
Print temp: 260°C (max. recommended).

Steps I took to troubleshoot

First I thought my nozzle was clogged. But it's not I can push the filament by hand without issues.
Lowered the speed to 35 mm/s.
Disabled retraction / disabled part cooling.
increased the max temp with 10 % to ensure the filament flow

Printed parts that fail:

Note: the two parts on the left are printed in one job

UPDATE 26/07
Dit a few more prints with PETG to eliminate the moisture problem. Same results.

Welcome! Very well written and documented first post! Lowering speed and increasing temperature is usually the opposite of what you want. Is the cold end properly cooled? The filament you use is of high quality, my favorite brand actually, their filaments print very well using their settings, you print at the maximum temperature and under the minimum suggested speed.

could you add nozzle size and layer height

This looks a lot like under extrusion caused by heat creep.
Heat creep is when the nozzle temperature 'creeps' up through the filament and makes it melt (a bit) and form a blob (or just widen enough to get stuck) a centimeter or two before the nozzle.
The characteristic is usually that everything works perfectly well for some quite fix amount of time, then there is severe under extrusion.
Solutions:

Lower the temperature (yes, as then the heat won't creep as much!)
Add a fan cooling down the cooling part of the print head

I have the same print head as you it seems (E3D 1.75 all metal) and I had heat creep when I changed the fan to a less noisy one (but also less effective).

Thank you all for response. I will investigate the heat creap. I use the fan that came with the E3D. It's a 7 blade fan of good quality. But maybe I need to clean the cold-end and the fan blades. They catch dust after a while.

I had something like that too, but in my case it was caused by retraction settings. The retraction made the filament get out of the nozzle hole and caused a jam and thus an under extrusion.

This suggestion may not apply in your specific case (you seem to have looked closely at the problem, and it doesn't really fit the apparent time-dependence) but you might have an issue with the extrusion drive. If your hobbed drive isn't tight on the stepper motor then the 'push' might not be enough to match the force you've tested by hand. This explains one way that the extruder can be more sensitive to small performance variations than you would normally expect (heat build up somehow contributing to those variations).

Actually I have. I added extra current to the stepper driver because it was skipping when I first started to print with XT I also added tension to the hobbed gear springs. When it get's stuck the hobbed gear grinds the filament away. So no tension issues here. XT is a tough cookie.

I have a possible cause for my problems. XT is sensitive to moisture (hydrolytical stability) When I extruded 20mm filament manually, the string felt a bit rough. When I looked closer very tiny bubbels where visible. I baked the filament at 60°C for 2 hours.
The baked filament allowed me to print a perfect model.
But after one print the filament is again affected by moisture so I need to build a dry-box and do some more tests before I come to a conclusion.

Nice to post an answer, please update when you have more information. The only remarkable thing is that it prints fine in the beginning, and all parts fail at about the same height (or are the parts printed in one job?).

Forgot to mention that the two parts on the left are printed in one job.


text:
Multiple unattended prints using extruder to sweep build plate?
I read something the other day about a guy who found a way to knock over completed prints with the printer head itself, then slide them to the edge of the build plate, where they fall into a box/basket. This allows printing several Eiffel Towers while you sleep for example. It doesn't work with skirts (duh), and the adhesion has to be just right not to wake up with a pile of spaghetti, but it still sounds useful.
Well, now I cannot re-find the description I read; does anyone know what this process is called? Is there an easy way I can perform such an end-of-print action on my CR-10 with a cura plugin? If such a thing takes a touch of end-time custom gcode, is there a proof of concept rough draft or demo I can start tinkering with? Any more info is helpful.

It will probably not work with brims either. The process is called series production.

See also Printed part auto-eject (automatic part removal) and How to automate printing of multiple parts continuously?

@Greenonline: thanks. I checked those out to see if they had this technique covered, but the one I saw/lost needed no extra parts or mods, which is what excited me most about it...

If you could relocate the link that you first saw, that would be great

You could cool down the heated bed (with e.g. [M109][1] R28) and cool down the hotend (with e.g. [M190][1] R40). This will usually release the print from the plate, perform the actions to move the head (e.g. go to the largest X, Y position G1 X{max} Y{max}, move down G1 Z10 to then move to minimum X, Y G1 X0 Y0 position such that it sweeps the print to the origin) that it knocks it into the basket and start printing again by copy pasting the whole G-code beforehand a couple of times. Note that this all depends on the product you are printing. You should at least use the end code scripts for the specific tasks to cool down, and start scripts to heat up again.
You can write a Cura plugin to implement a new GUI item to copy the G-code multiple times or create a post processing plugin.

I was planning to use cura or repetier host's end/start snip sections, with AutoIt to re-print when done. Sounds like I need to learn about gcode commands and the few above will cover me. It takes per-print setup and hard-to-perform testing but should be workable. I was secretly hoping that someone would know the article I saw, link to it, and it would have a low-effort plugin or example gcode, but you make it seem pretty simple...

I would advice against it, or at least have some detection for when the object won't budge:

Leaving a printer unattended needs special care too (fire alarm springs to mind but not only).

Agreed -- using the print head as a wedge/driver is far worse than those homeowners who use a screwdriver as a can-opener.

This is caused by the horrible build platform. With a glass bed like the Ultrabase this wouldn't happen. Good point about the fire alarm.

@CarlWitthoft - More like those home owners who check the electrical output of a wall socket with said screwdriver ...

Good point about monitoring, something I will take into consideration for sure. w/adhesion, I don't use tape anymore (glass+hairspray only), and can adjust 1st layer temp and whatnot to get it barely cling through the printing. Applicability depends on the print I suppose: a maker coin would be much harder than the almost-ideal Eiffel Tower...

@dandavis You can do multiple coins on the build plate at once or sequentially, unless they are huge coins

Another method - shake it off
Taken from Automatic 3D Print Removal using G-Code, by Make Anything

In order to shake the completed print from the bed, you can use an ending script, like so:

See the video at 2:45 for an explanation of the scripts, both starting and ending. Note that the starting script does not include a wipe (for purposes of a purge), as a brim is used, which acts as a purge.
The code is:
G1 X105 Y195 Z50 F3000; Move up and back

; Make some (alert) sounds
M300 S3520 P200    ; A7
M300 S4698.63 P200 ; D8
M300 S5274.04 P200 ; E8
M300 S6271.93 P200 ; G8

G1 X105 Y195 Z1 F3000 ; Lower
G1 X105 Y1 Z1 F2400 ; Remove print
G1 X105 Y30 Z1 F8000 ; Shake it out
G1 X105 Y1 Z1 F8000 ; Shake it out
G1 X105 Y30 Z1 F8000 ; Shake it out

;M106 S0  ; Turn off fan
;M104 S0  ; Turn off extruder
;M140 S0  ; Turn off bed
;M84      ; Disable motors

The guy is using an Anycubic i3 Mega, but this technique should work with most other printers.

A note on the motor sounds
With respect to the alert sounds at the start of the ending script, there is a video for making the motors emit sounds and tunes, see I Taught My 3D Printer How to Sing ( and Dance! ) - using G1, G4 and, principally, M300.
An example can be seen here, the mii channel theme but it's played using a 3D printer ♪ ♫.
See also Writing G-code: Audible Alert at end of print.

For fun, from Thingiverse -  Automatic Print Ejector - The Punching Machine.
There's even a video: MatterHackers Punch-Out!
Hover for a (slightly annoying) image:


text:
How to calculate linear Y rod length for a larger replacement bed?
I have an Anet A8 which I want to convert to an aluminium frame printer like the AM8 (rebuild of Anet A8 parts):

This should give a much more stiff frame with respect to the acrylic frame to aid in a better print quality.
Since the bed (220 x 220 mm) has a slight warp, I want to use a larger build platform (200 mm x 300 mm) I have laying around. My plan is to use the 300 mm in the Y direction.

Knowing the maximum outer distance of the current Y bearings to be 105 mm, is that too short for such a large bed?
How do I calculate the length of the Y axis rods? (especially if you take another distance than 105 mm)

Basically, your setup is the following:

The overhang of the bed, assuming the bearings are in the center, equals (300-105)/2 = 97.5 mm on each side. So the distance from the leftmost bearing face (when bed is at y = 0 mm) to the center of the Y rods assembly equals 300 - 97.5 = 202.5 mm. Knowing this distance for the other side of the center to the right when y = 300 mm is the same, the minimum length of the rod will therefore be 2 x 202.5 = 405 mm which equals the addition of the bed length and the outer bearing distance 300 + 105 = 405 mm.
Please note this excludes extra length for e.g. a limit switch, and some extra space around the bed. Basically the extra length of the bed 300 - 220 = 80 mm needs to attributed to each side of the bed, so 40 mm on each side extra.
For a 220 x 220 mm bed, the minimum length would be 2 x (220 - (220 - 105)/2) = 325 mm. When I measure the rods between the acrylic flanges it measures about 365 mm, about 40 mm extra for clearance around the bed (20 mm on each side).
The overhang for the 300 mm bed is not that much, and a construction under the heated plate will be used to fasten the bed at the corners, as long as that construction is not too flimsy, the current distance will be alright. For other distances you should change the value of 105 in the formulas above. E.g. for an outer flange distance for the bearings of 120 mm, you would require rods of at least 420 mm.


text:
Adjusting Z-axis (Monoprice Maker Select)
Have a Monoprice Maker Select v2 and have recently changed to an Anycubic Ultrabase glass plate. In Cura, the model I am printing is in the middle, as shown here:

but the printer puts it around 2/3 of the way up in the Y dimension:

Further investigation: I now believe the platform screws were too far down at one point, so that the platform could not move all the way forward, somehow making the printer think the platform is further back than it actually is. The original and the new platforms are the same size, 22x22 cm.
(When I run the Cura "bed leveling wizard", the stops are a bit from the edge at the front, and off the platform at the back, consistent with the theory in the previous paragraph.)
Even more further investigation: I have now dis-attached the Y-axis belt and moved it back and forth with no improvement. Also, the platform screws hit a couple of bolts at the back, which prevent it from moving all the way back (i.e. the extruder head forward), which seems to be the reason it is not getting to the front of the platform. I think I will have to increase the Z position first.

In the above picture, the platform is much higher than the origin position. This is the `back left' corner. If I lower the platform to the nozzle origin, it cannot move all the way back (i.e. nozzle cannot reach front). The screws came with the plate (and are different from the ones I had before). With the platform at the height shown in the picture, it moves freely all the way.
So the question now is: how do I change the Z-axis "origin" position? Have tried to manually adjust and then select "set origin" on the printer menu, but it did not have any noticeable effect. When selecting "home" it goes back to the old position.

I sawed off about 2 mm from the (bed) screw in the photo so it wouldn't catch on the screws of the Y endstop. It now works as before.

If somebody has a more cerebral solution I will gladly `accept' it.

Could you expand upon the answer, if possible, as it is a little terse. Which screw and to what length? Maybe also include a photo of the part with the screw removed


text:
Cooling fan spins extremely fast, noisy on startup
I have built a 3D printer from parts. It is using a standard 12V power supply, an Arduino Mega 2560 replica and a RAMPS 1.4 board. The hotend cooling fan is connected to the 12V-AUX pin (the one right next to the x axis stepper driver) on the RAMPS board so that it continuously receives power as long as the machine is turned on. The printer is controlled by the Marlin firmware.
When I give power to the board, the cooling fan starts spinning with a lot of noise. It sounds like it is receiving a higher amount of current than it should. Moreover, the noise is not steady, but fluctuates slightly. After about 30 seconds, it gets slightly quieter; after about 40-50 seconds, there is a sudden break. From then on, the fan spins quietly and regularly.
According to measurements with a multimeter, the power supply is keeping a constant and correct voltage of slightly over 12V right from the beginning. Hence, I suspect the issue is somewhere on the RAMPS board.
I am worried about this being more than a problem of unpleasant noisiness. What could be the cause and is there more to worry about?
You can listen to a recording of the sound: 3D printer hotend cooling fan noise
Note that I am not talking about a fan for cooling the extruded plastic, but the one sitting on the extruder heatsink.

Shutting down the printer (even literally unplugging the power supply) and plugging it back in does not lead to the startup noise appearing again. Only when waiting for multiple minutes before reconnecting does it happen again.
The voltage to the fan is measured to be constant. The current, on the other hand, correlates with the sounds heard. It starts at 110 - 115 mA. When the fan is quiet, it is at about 90 mA.

After the fan has stabilized; if you power cycle the printer, will it then start all over again with the high speed?
Something tells me this could be a software / control system thing, and that the first few seconds is just the software adapting to the situation.

Note: this is not a PWM fan. (thanks to @Oscar for mentioning this. Answer deleted)

@TormodHaugene I edited the question to add some more details.

@OyaMistAeroponics You are right, it isn't a PWM fan. The 12V should go straight from the power supply to the board and from there to the fan.

I have had similar experience, but that was for the part cooling fan which is controlled over PWM, so in that respect it is different from your problem. Can you measure the voltage of the fan during startup with a multimeter and report back? This is not a simple problem; possibly be caused e.g. by a faulty voltage regulator?

@0scar The voltage is constant. The current going to the fan, on the other hand, matches the sounds — starting high and going down over time, until it reaches a stable level.

Now that you have done some measurements, you could make some conclusions.

The voltage over the fan is reported to be constant, but the current
  starts at 110-115 mA and reduces to 90 mA over time.

With limited knowledge of electronics you can conclude that the resistance of the fan is not constant as the resistance determines the amount of current through the fan. So the fan resistance increases over time. This could just be a manufacturing problem or characteristics of the fan. You could try to replace the fan with another fan to see if this fixes your problem.

Please excuse the super late reply. Yes, this is it. A fan from a different brand does not have the same issue. I guess I learned that if there's a problem with the fan, then the first place to look for a solution might be that very fan... Duh. Thanks for your patience!

The discussion about resistance is a bit misleading. A fan does not have a well-defined "resistance". It makes about as much sense to talk about resistance of a fan as it does to talk about the resistance of a diode. If you try to measure the "resistance" of a fan you'll get a nonsense value that depends on the multimeter you're using.

Late to the party but still...
The noise could be caused by the lubrication of the fan ...when you turn on the fan, the lubrication is seated down. As the fan spins, the lubrication gets all over the bearing thus centering the fan reducing the vibrations aka noise.

It could also be the lubrication/grease offering resistance to the fan's rotation and gradually heating up from the friction until it no longer creates (excess) resistance. This also explains why the current decreases after a while, as the resistance to rotation decreases.

I propose examining the current voltage of the motor and the arm. The fluctuation of voltage causes the noise.

The voltage is constant, but the current is not. Do you know what could be causing the higher current in the beginning?


text:
Recalibrating Home-position
I got myself the Ender 3. The Home position is about 1 mm left and 2 mm in front of the front left corner. Now, the hotend center axis is 11 mm from the carrier plate with the "Mk 10" cooler mounted right onto a pair of 5 mm pegs that are part of the plate. As I want to change to an e3D v6, which has a diameter of 22 mm, I will have to move out some distance (ca. 13 mm) to the current Z axis. This means, that any Y command will be off by this distance.
How do I reconfigure the Home position to have an offset to the 0-positions gained from the limit switches?
According to Repetier Host it runs on Marlin 1.0. Creality offers the firmware on their website as a .hex file - which is hard to edit.

Basically, you want to center the nozzle in the middle of the bed from what I understand from your question. When the nozzle is in the center all other dimensions are correct also. I have described how you do that in How to center my prints on the build platform?. Solution 2 and 3 are firmware, not slicer solutions, and do exactly what you want. Once you have centered the nozzle in the middle of the plate, the nozzle will be at the origin (0,0), so the corner of the plate.

The working origin/print bed origin at 0,0,0 does not necessarily need to be the homing switch location.  Industrial CNCs put the limit switches at the mechanical/safety limits of the system, and then calibrate the working coordinate  system to the work with "Offsets".  The offset in Z, X, Y between the home location and the bed coordinate system is configurable in Marlin with M206: https://marlinfw.org/docs/gcode/M206.html You can hard code some default offsets into the mMarlin source code and recompile the firmware, or use M206 and then write the offsets into EEPROM on your current firmware.

Greenonline and I spent this evening hacking/reverse engineering the Ender3 to solve this. Greenonline also wrote about this in his blog.
Step 1 - Get the Firmware
To do this, there are basically two ways:

Find the a ready-to-use firmware
Make your own

Variant 1 would be to use the pre-supplied .hex files from Creality or some other manufacturer. Variant 2 means writing the settings yourself or using Repetier firmware to write the files for you. In the case of the Ender 3, the chip used sadly disqualified Repetier firmware, so writing it yourself is the only option.
To write the firmware yourself or using Repetier firmware, you need the old settings. To get these, connect the printer via USB, connect it with a software like Repetier host and send M503 to get all the settings.
Now, either hack those into Repetier firmware or use a blank Marlin.ino and the Arduino IDE to customise it. In the later case, you need to put the folder Marlin-?.?.X.ZIP/Marlin-?.?.X/Marlin into the Arduino folder in Documents (Windows) or Home (Mac). Now open the Marlin.ino in Arduino IDE. Set up the new firmware with these base settings or adjust as needed.
Step 2 - Adjust
Now that we have our Configuration files (in the end we pretty much skipped step 1 and grabbed a fitting (German!) one from Christian, a German maker also known as "Chaos-Drucker"), we need to first adjust them as needed to fit our needs and then compile them properly (next step!). As an alternative (English!) base to work with, the TH3D firmware is also available, provided by the Hooglands and team at TH3D.
So, let's open your Marlin.ino with arduino and find the X_MIN_POS (CTRL+F > X_MIN_POS > Search all sketches).
In the configurations we grabbed the sketch file Configuration.h contains lines 786-789 (might differ):
// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -10
#define Y_MIN_POS -15
#define Z_MIN_POS 0

Adjust these till the wanted position is achieved - Repetier Host can help here to determine the right position.
Step 3 - Compile
The hardest step with the Ender3 was to get the code to actually compile, as it uses an ATmega1284P 16Bit which isn't supported by Arduino natively. While the MightyCore supports this chip, it doesn't compile with this hardware library. However, Christian did figure out that the Sanguino set to an ATmega 1284P 16bit does work. These belong as extracted folders into the Arduino/hardware folder, usually in your Documents (if you use Windows) or Home (on mac). Now, we did set Tools>Board:> Sanguino and Tools>Processor:>ATmega1284 or ATmega1284P (16 MHz)
It was also mandatory to have the U8glib.h for Arduino installed. To do this, download the zip from github, then in the Arduino software Sketch>Include Library>Add .ZIP Library... and choose the whole zip repository to auto install.
With these settings we were able to compile the settings.
Step 4 - Getting it on the machine
Most people would expect to read about bootloaders and flashing now, and indeed that is an option. But as I had just figured out how to install firmware from .hex and so I wondered: Can't we make .hex files from our settings? And yes, Arduino supports this.
So, in Arduino IDE press Ctrl+Alt+S (or Sketch > Export Compiled Binary). This will result in two files:

Marlin.ino.sanguino.hex
Marlin.ino.with_bootloader.sanguino.hex

Of these two, the Marlin.ino.sanguino.hex is the interesting one for "direct flashing" via CURA. Use this file with the process starting at Step 2 here or use one of Greenonline's solutions to get the firmware flashed - no bootloader needed!

When homing the printer, the hot end carriage will be instructed to hit the (mechanical or optical) end stops. From this point a well configured firmware knows where to find the origin of the heat bed.
For the printer to know the origin of the bed, offsets are defined in the firmware from the end stop locations to the actual origin of the heat bed.
E.g. in Marlin Firmware this is defined by
 #define X_MIN_POS -35 ; move the head 35 mm to the right to place the
                       ; nozzle at X = 0
 #define Y_MIN_POS -8  ; move the head 8 mm to the back (or the plate
                       ; forward) to place the nozzle at Y = 0

When you change the hardware (e.g. carriage), you need to re-calibrate the movement from the end stop location to the origin of the bed. Note that any arbitrary point on the heat bed can be used to re-calibrate this. E.g. the center of the bed can also be used, and is frequently much more easy to re-calibrate as the heated beds usually have rounded corners or are slightly larger than the actual print area (e.g. I have a 300 x 300 mm heat bed that actually measures 315 x 315 mm). Printing a large square on the heat bed will therefore give you a good impression of the offset of the nozzle due to your new carriage design.
Note that, if you cannot or will not flash new firmware, an alternative solution exists to set new incremental offset values using the M206 command IF your current firmware supports this.
A detailed description to re-calibrate is found in answer How to center my prints on the build platform? or in external link Bed center calibration.

Your answer skips over essential stepts, now that I actually am testing it: 1) how to get the firmware settings currently installed? 2) How to implement the changes via Repetier Host? 3) How to upload the modified Firmware?

You could improve the answer massively by including 1) M503 to get the current Firmware settings. 2) indicating which files of a Firmware Configuration usually contain these commands and 3) mention that one usually uses an arduino as Bootloader to flash new firmware and link to a tutorial for this.

@Trish Getting, changing and uploading is already described in another question, but very nice you have figured out to compile it on your board! Good to hear it   works out!

just... had to pretty much reverse engineer parts of the ender3 XD

oh god, I just realized how much I learned in the last 1.5 years about firmware... back then I was a noob, now I instruct on how to do this by pointing back to this question!

@Trish Note that the Marlin source is still actively developed and changes are between the 1.1.9 and 2.0.x version. E.g. for sensor offset, in 2.0.x the offset is defined by #define NOZZLE_TO_PROBE_OFFSET { XXX, YYY, ZZZ } it is also more hard to get the individual values from the array, I've described this here.

we might do a Step-By-Step guide to swapping firmware for the knowledgebase, using all the answers here and updating them for 2.x??

Following on from 0scar's answer

To change or obtain your EEPROM settings you need to open Repetier Host (for Linux or Windows, v2.1.3 - the OSX version I tried, v1.1.0, didn't seem to have this functionality).
To change existing settings
From How to make changes to the EEPROM data. Apparently there is an EEPROM editor available (in Repetier Host). From this post:

If you see it in eeprom editor just change them. If it is repetier-firmware based it will store changes in eeprom on pressing "ok".

To retrieve existing settings
This post from retrieval of existing settings..., shows how:

To copy eeprom data:

Connect with host
Open eeprom settings
Select export eeprom settings. That saves all data in a epr file and you can later use import eepsom settings to rewrite it.

An example of the resulting file is shown in the question, Help with Repetier firmware variables (Dimension Dual Delta - J Group Robotics), a sample of which I have included below:
<Repetier-Firmware-EEPROM>
<epr pos="1028" type="0" value="0">Language</epr>
<epr pos="75" type="2" value="115200">Baudrate</epr>
<epr pos="129" type="3" value="32.752">Filament printed [m]</epr>
<epr pos="125" type="2" value="21644">Printer active [s]</epr>
<epr pos="79" type="2" value="0">Max. inactive time [ms,0=off]</epr>

However, you would appear to have to be running Repetier firmware for these two solutions to work, and not Marlin (but I may be wrong).