Print the same file, with the same settings, on both machines.

If the problem persists, try swapping the filament between the two printers. If the problem now occurs on the other printer, that suggests that the filament is the issue. Label the bad one "For lumpy prints" and put it away.

If the problem persists on the printer where it first occurred, despite swapping filament reels, the issue probably has something to do with the printer. Remove and examine the nozzle, and consider replacing it even if it looks OK. Nozzles are cheap and easy to replace, so this is an easy early step.

If a new nozzle doesn't fix it, other parts related to the extruder like the hot end thermistor, fans, heater block, etc. could be to blame. If the thermistor is just positioned a little differently than on the "good" printer, for example, it might be reading a little low and causing the nozzle to heat up more to get to the target reading. That doesn't necessarily mean that you have to replace those parts; you just need to recognize the difference and compensate for it when you use that printer. Just as a baker might think "the recipe says 400 °F, but I know my oven runs hot, so I'll use 375 °F instead," you may need to adjust the nozzle temperature to compensate for the hardware differences when you use this printer.


Will I see a noticeable difference switching from a .4mm to a .3mm nozzle?

1) Smaller nozzle advantage: sharper "corners" (higher X and Y resolution)

2) Larger nozzle advantage: faster 3d printing (because you can print the shell faster as each perimeter can be thicker so you'll need less perimeters to be printed to get the same shell thickness. Same true for infill).

3) Smaller nozzle disadvantage (varies, debatable): higher risk of clogging. There are of course other factors which can result in clogging, but this can also affect it as even finer particles in less quality filament can get stuck now.

4) Smallel nozzle disadvantage: since less plastic can come out at a given duration of time, it means less speedy printing of larger layer heights, if at all possible.

I feel like I should get back to (1) and explain why it is so.
When companies market their 3d printer they usually talk about the layer height (the Z resolution) completely ignoring the X and Y. This makes sense for marketing. Luckily it is not hard to explain what is usually left out and what is important for one of the answers to your question on what are advantages of smaller nozzles:

The Z resolution depends on two main things:
1) The stepper motor driver accuracy of your 3d printer's motherboard. Pretty much all are the same now. Claiming your 3d printer can print at 20 micron layer height doesn't say anything, pretty much any 3d printed today can.
2) Nozzle/extruder quality, nozzle diameter. The latter surprisingly does not determine much. Because of how FFF/FMD 3d printing works, the perimeters of your 3d print can be way thinner than your nozzle diameter. This might sound odd but there's a simple explanation: the molten plastic coming out of the hotend is squished and stretched when the head moves. Because it is stretched, it can be made thinner as you increase how much it is squished. There's not much experimentation done on this and available online, only from personal experience I can say I can print perimeters 50% thinner than my 3mm nozzle. So I suppose if you wanted thinner perimeters than that, you would need to swap to a thinner nozzle.
Why would you want thinner perimeters? To get sharper corners or in other words better X and Y resolution for your 3d prints which is ignored by most unlike the overstated "layer height" (Z resolution).
Here's an illustration to help you visualize how fatter perimeters and less sharp corners/edges on your 3d model result in "lower X/Y resolution" (the illustration is a 2d cutout, viewed from the top):


Printer randomly stops, Is the power supply bad?

It could be several things.

Your ramps board is overheating or has to much load on it. If you're not cooling the ramps board adding a fan may help the issue.

I know Robo3D had this issue and started shipping with a fan to cool the ramps board.

The ramps/arduino board could be faulty, the firmware may have gotten corrupted or the current version has a bug in the code.

If you are not printing from the sdcard on the lcd controller and using software through a usb connection, that computer may be causing the issue as well.


Why are my layers messy and curling off the print bed?

This is clearly overextrusion relative to the volume the material is being deposited into, but that doesn't necessarily mean your extrusion rate is wrong. It could be:

Nozzle smashed down into the bed (bed way too high) but somehow still extruding
Problem in Z axis movement preventing the head from moving up the right amount for each layer (possibly not moving up at all?)
Extrusion (flow) increased significantly above 100% in slicer
Wrong extruder steps/mm setting (usually controlled on printer not slicer, though you can send a setting in the start gcode)
Misconfigued filament diameter (unlikely since there's no common setting smaller than 1.75 mm; larger setting would under-extrude)


Can I use a metal filament on M3D Micro (or Pro)?

Most 3D printers that use non-proprietary filament can print exotic filaments, such as the ones you mention. One thing to be aware of, though, is that some of these filaments wear down the nozzle far more quickly than ordinary PLA, and therefore should be used with reinforced nozzles (unless you have extra nozzles to spare). Carbon fibre and metallic filaments are generally known to increase nozzle wear, while softer alloys such as wood and bamboo generally are less abrasive.

A quick google search reveals that many people have used non-proprietary filament on the M3D Micro successfully, but be aware that using such filaments is not covered by your warranty. If you are going to use abrasive filaments with your Micro, I would check that M3D allows you to replace the nozzle first.


Using the preview feature as you have is a good method to determine that the original model is flawed. It's not unusual to discover detailed models have reversed normals or non-contiguous surfaces, which will not print.

In a simple example, consider a cube for which five of the six faces are properly described by the design software. This would result in all eight vertices being present, allowing the software to present the "missing" face, but the slicer is unable to create this aspect. The cube is no longer solid and is presented as seven zero-thickness panels, which can't be printed.

It is necessary to repair the broken models, by closing gaps and reverting/recalculating normals, but that requires skill in other software.

Some slicers will attempt to repair damaged models, but some are so severe, the results you've experienced are the result.

If you want a confirmation of a failed model, load it into free Meshmixer, run Analysis/Inspector and expect a "pincushion" of highlighted failures.


Monitoring X, Y, Z position of extruder in real time

Depending on your methods, you can easily (evidently) get (or compute) "where the printhead is commanded to be" in more-or-less real time, as evidenced by the "progress display" in Repetier Host software (based off the G-Code it's sending to the printer) - though I have found it advisable to stick with the temperature display while printing as I've had the host bog down on processing the display at least once, which then made the print go slow.

As for "is it even possible" - sure, how much would you like to spend? Add encoders to each axis that are read by the computer, or by something (probably not your printer processor for "least impact on the printing" and "most real-time") that reads them and talks to the computer. The more precise you need, the more expensive it gets. Of course that also starts to probe 'what you mean by "real time" ?' as there are applications where the time spent reading the encoder and sending/receiving the data would be considered "not real-time" by the time the computer had the data, but for the average person with a printer built partly from wood, it's likely "real-time enough."


IMHO, it's probably better to get the printer as-is first. This way you can get familiar with the printer and 3D printing in general before you get overwhelmed with all the extra introduced variables from your upgrades.
The new model already has loads of features that were considered upgrades on the older model and you can already get very nice results.
Upgrading your printer is a part of the 3D printing hobby, and you'll probably never be done with it :)


What does a "3 h5" mean in reference to the axle of a motor?

I think it's a reference to a tolerance. Look at this ISO table. This States that the nominal diameter of 3mm is held to a tolerance of +-0.004mm.

@DarthPixel provided some great links identifying the term interference fit (or press fit as I've heard locally) as described here. Also, here is a better link providing examples of how the tolerance works and more legible tables to reference the correct tolerance. Keep in mind that the units in the tables is in nanometers.


This printer controller board looks exactly like an Anet controller board. These also have a v1.5 version:

Your board misses the "Anet" branding, but includes the 1.5 version designation. Your board is probably customized with a different silkscreen (ink layer that identifies components and other information) on PCBs (printed circuit boars). Rebranding is pretty common in electronics.


Getting that first layer to stick is sometimes pretty hard, you just need to find a good combination of settings. Clearly your filament does not stick too well as the brim comes off after been laid down after a while.

Parameters that affect adhesion are:

Bed temperature; a temperature close to the glass temperature is favorable as the filament is soft at that temperature, the stresses are low due to this softness and the smaller temperature difference. You already tried to increase bed temperature: 50 - 60 °C should be fine for PLA, there is no need to go higher than 60 °C,
Hotend temperature; the temperature of the filament deposition could be increased for the initial layer, usually a 5 °C increase over the standard temperature should be enough,
Overextrusion; a small over-extrusion on the first layer (filament flow scale factor larger than 100 %) could sometimes help to better adhere the first layer, but usually this means that the nozzle to bed distance is too large,
Correct leveling and correct nozzle to bed distance; level the bed as good as possible or scan the bed and use mesh leveling if the build platform does not have a uniform (flat) shape, also make sure the distance between the nozzle is correct: too small or too big cause the filament not to stick very well.
Debris in nozzle; debris in nozzle can cause non-uniform extrusion, cleaning the nozzle with the atomic method (heating up the nozzle, inserting filament, cooling down the nozzle and finally yanking out the filament cleaning all the cooked stuff inside),
Cleanness of the bed; make sure the bed is not greasy,
Tack of the bed; the use of a PVA based substance on the bed like e.g. gluestick, hairspray or specific printer sprays like 3DLAC increase the bed adhesion considerably,
Bed preparation; sanding the bed to roughen the platform, using tape, etc. are all tricks to get the filament to stick better.

Either one of the suggested parameters or a selection of these are the answer to your question, just figure out what works best for your printer.


The MKS GEN L v1.0 is a board that according to the information found on the web operates to run on a voltage between 12 - 24 V, this means that all peripherals on the board should match this voltage. A 5 V fan should therefore not be connected.
First, you need to establish that you are using the correct fan port on the board.
Which port to use?
If you take a closer look at the board layout you will find that the top fan connector cannot be controlled, it is a fixed voltage power supply of 12 - 24 V (so basically depending on the power that is supplied to the board).
This can be seen from the board layout:

Or zoomed in on the top left corner:

Note that no pin number is given, this means that it is a constant power supply fan header. A 5 V fan attaching to this port does not seem to be a good solution, it can easily burn out the fan electronics. This fan should match the voltage of the power supply you use, so when powered by a 12 V power supply, attach a 12 V fan or a 24 V fan when the board is powered by 24 V.
As said, this fan port is not controlled by PWM and can therefore not be scheduled from within your slicer, however, it makes an excellent fan for cooling the cold end of the nozzle assembly.
To schedule a fan for print part cooling through the slicer you need to attach the fan to the other fan header below the X stepper driver on the left, if you look closely to the schematics, you see that that is a fan that can be scheduled using the digital pin D9.

Note that this fan also operates at the voltage specified by your power supply; a 5 V fan should not be connected to this port either!
The solution to your problem is to buy a fan of the correct voltage and connect it to the correct fan header.
As you have tried connecting a fan to the lower fan port, and conclude that the fan has never rotated but still rotates when supplied with a correct voltage, you need to ask yourself if this port is:

configured correctly in the firmware, or
not broken.

Now that you know where to connect the fan for print part cooling, connect a fan that matches the power supply voltage.
Why is the fan not working?
The microprocessor of the board schedules and reads various ports or pins based on the firmware it runs. This implies that the setup of the firmware is very important in the use of certain ports. It is therefore important to research if this port:

was meant to be used by the printer manufacturer (so enabled in the firmware)
or board is controlled by which firmware

Once you establish that it is enabled (e.g. the manufacturer describes that the printer has a print part cooling fan), you should try printing a part where you enable the print fan in the slicer software. If not, you need to change the firmware configuration to enable the fan. If this does not work, you should address your attention to why it is not working. A multimeter can be used to read the voltage of the fan MOSFET output or the D9 output. If either one of those doesn't record a voltage, your board or MOSFET are probably broken. To fix this, you could solder an unused pin to the fan MOSFET or a new MOSFET and change the firmware. Another option is to buy a new board and flash a new configuration of a printer firmware onto it.


Is it possible extrude faces along normals individually in OpenSCAD?

Extruding faces is only possible on 2D polygons. From a 3D object you cannot capture the face and extrude it. To extrude "faces" you would need to define the shape of the face and extend it in the third dimension of your choice. This way a 3D shape is created that could be concatenated (joined using e.g. union) to the original shape. For the extrusion, the function linear_extrude is available:

linear_extrude(height = fanwidth, center = true, convexity = 10, twist = -fanrot, slices = 20, scale = 1.0, $fn = 16) {...}


The use of smoothers totally depends on the stepper drivers you are using! Note that the TL and MKS smoothers do exactly the same thing. Both use an arrangement of 4 or 8 diodes. Details of the problems with drivers and the working of the smoothers is explained in this blog post. The problem is that some stepper drivers are not able to produce low currents as of the present dead-zone.

if we had a way to modify the motor so that with a voltage of 1.4 V there would be no current flowing, then the driver would be able to generate all the currents because it would always be spitting out more than the minimum voltage

The diodes prevent current to flow at the cost of a voltage drop; a 1.4 V voltage drop (2 diodes) would prevent current to flow, as such you see diodes in series on the smoother boards.
These MKS/TL smoothers help with smoothing out the signal going through stepper motors; e.g. the notoriously noisy DRV8825 motor drivers are known for a stepped sine curve rather than a smooth output.
More modern chipsets such as the TMC21xx, TMC22xx, and TMC51xx do a much better job at providing smooth signals, and surprisingly, so do the cheaper drivers like the A4988s!
So if you are using stepper drivers that do not produce a smooth sine wave, like the DRV8825 stepper drivers, you could potentially benefit from installing smoothers. This could help with salmon/zebra skin/moire and ringing print artifacts/defects.
To quote the popular All3DP 3D printing site from "TL Smoother: Should I Add One to My 3D Printer?":

It’s a yes if you’re running DRV8825 stepper drivers. This was
what TL smoothers were designed to do: fix a design flaw in the
DRV8825. Your mileage may vary based on your printer’s power supply,
but you’ll likely see noticeable improvements in print quality.
It’s a no if you’re running newer Trinamic stepper drivers.
Trinamic drivers have many “smart” features built in that don’t suffer
from the same issues as the DRV8825 and already counter electrical
noise. As a post from Trinamic notes, adding TL smoothers doesn’t
provide any significant benefit; it only increases power consumption
and heat generation.
It’s a maybe if you’re running other drivers. Other stepper
drivers might not have the DRV8825’s design flaws, but they may
benefit from the slight electrical dampening created by the TL
smoother’s circuit. Considering the smoothers’ low cost (~\$8-15 for
packs of 3 or 4), it doesn’t hurt to try it out and let the results
speak for themselves.


G29 Bed Level not doing anything on Marlin 2.0

From the linked Configuration.h file the probe X, Y, Z probe offset is set by constant array:

#define NOZZLE_TO_PROBE_OFFSET { 75, -35 , 0 }

So, the sensor is mounted at the right-front (X+, Y- according to the Marlin configuration definition) when facing the printer.

This implies that the sensor is limited on the right and at the front.

The probing area used to be defined in Marlin 1.1.x in the Configuration.h file. However, Marlin 2.x requires edge offsets rather than absolute bed size constraints. From the Configuration_adv.h of linked file, the following probing limits are set:

#if PROBE_SELECTED && !IS_KINEMATIC
  #define MIN_PROBE_EDGE_LEFT (75 + MIN_PROBE_EDGE)
  #define MIN_PROBE_EDGE_RIGHT (X_BED_SIZE  - MIN_PROBE_EDGE)
  #define MIN_PROBE_EDGE_FRONT (MIN_PROBE_EDGE)
  #define MIN_PROBE_EDGE_BACK (Y_BED_SIZE -35 - MIN_PROBE_EDGE)
#endif

This is incorrect, this is what you would do in Marlin 1.1.x. Note that this answer describes in detail how to set the bed probing limits. You need to specify the offset from the edge on each side, in schematics the probing area is defined as:

From your printer configuration, the probing limits should be set to:

#if PROBE_SELECTED && !IS_KINEMATIC
  #define MIN_PROBE_EDGE_LEFT (75 + MIN_PROBE_EDGE)
  #define MIN_PROBE_EDGE_RIGHT (MIN_PROBE_EDGE)
  #define MIN_PROBE_EDGE_FRONT (MIN_PROBE_EDGE)
  #define MIN_PROBE_EDGE_BACK (35 + MIN_PROBE_EDGE) ; Note that 35 is absolute(-35)!
#endif


How to rotate camera using mjpg-streamer-experimental?

Edit: Having now installed Octopi myself, I have found that they made it easy to rotate the image right from the interface. If you open the "Settings" and look under "Webcam & Timelapse", there are settings for flipping the image horizontally or vertically and for rotating 90 degrees.

There are a few ways to rotate the image of which I am aware. You can do it via the input plugin, the client, or post-processing.

The "input_uvc" and "input_raspicam" plugins both have options to rotate the image. If you are using one of these plugins see the documentation at input_uvc or input_raspicam (it is worth noting that the input options may not be supported by all cameras). You should be able to run the command like the following to get a stream that is rotated 180 degrees:

  mjpg_streamer -i 'input_uvc.so -rot 180'

I'm not sure how you are handling the stream, but it is possible that your client can perform the rotation. For example, if you are using VLC you can set the angle of rotation by doing something like this:

Open the “Tools” menu and select “Effects and Filters”
In the “Adjustments and Effects” window, on the “Video Effects” tab, select the “Transform” check box
Select a rotation from the dropdown menu and then click “Close”.

Finally, if you are saving the stream and are only concerned with rotating it afterwards, you can post-process it with a utility like ffmpeg. See this post as an example and look for "Rotate" in the accepted answer.

If your stream is being rendered via a browser you may be able to add some CSS3 formatting to the video element. For example, you could add an ID of "videoElement" to the stream and then add the following to your CSS:

  #videoElement {

transform: rotateZ(180deg);
-webkit-transform:rotateZ(180deg); /* Safari and Chrome */
-moz-transform:rotateZ(180deg); /* Firefox */

  }


Multipart 3mf file, need to extract one of those parts for printing.

If your 3D file has separate objects and vertices and are just merged together then do the following:

Import into Magics;
Select part (in the part list menu).
Right click (in the part list menu) and select Shell to parts;
(Be very careful here) Select the area you want to isolate with the translate tool. If you don't know how to do this just left click hold and drag the mouse to select an area inside a box;
Use translate tool to move it a little ahead from the original grouped object (just drag on any axis);
Right click (in the part list menu) and select merge part.

Should work out fine. Tell me if you get stuck.

This can also be done on Netfabb. Not on SolidWorks.


What is the best way to adhere an old printed part to the bed?

I have not done this, but I believe this is the best method and I want to test it at some point soon:
Model a negative for the footprint of the part you want to adhere to the bed, in the orientation you want to adhere it, with just a few mm of height, and clearance suitable for your printer (probably around 0.25 mm) in the XY plane, and print that with thick extrusions on the initial layer so that it adheres well to your bed. It should look exactly like a "thickened brim" for the part you want to re-adhere. Don't let the bed cool after printing it.
Now, you have a slot to insert your part into that will not only hold it to the bed, but holds it to particular coordinates you chose to print at, which you can align to the coordinates of the new model you want to print on top of it.
If you can't get the clearances right to hold without knocking off the negative footprint from the bed, you could try adding some threaded holes to it, so that you can put a couple set screws through it to hold the part in place. This technique can also be used if you want to avoid modeling a full negative (e.g. if you don't have the original in CAD form where you can easily negative it) - just print a few posts to hold set screws in approximately the right places on the bed.


gcode commands in octoprint: Z moves ignored?

Thanks in part to Tom van Der Zanden, I got a working version, which I'll paste below to add some actual value to this question! The G1 XY coordinates for each position are for near the corners on a 220x220 bed, but leaving enough room to access a screw in the corner of the bed if you need to (I don't anymore, but my printer did initially) - for different bed sizes, you'll want to change them. Add to ~/.octoprint/config.yml

controls:
- children:
  - commands:
    - M140 S50
    - M104 S190 T0
    name: Preheat
    type: command
  - commands:
    - G91
    - G1 Z10
    - G90
    - G1 X30 Y50 F9000
    - G28 Z0
    name: Front Left
    type: command
  - commands:
    - G91
    - G1 Z10
    - G90
    - G1 X180 Y70 F9000
    - G28 Z0
    name: Front Right
    type: command
  - commands:
    - G91
    - G1 Z10
    - G90
    - G1 X30 Y160 F9000
    - G28 Z0
    name: Back Left
    type: command
  - commands:
    - G91
    - G1 Z10
    - G90
    - G1 X180 Y160 F9000
    - G28 Z0
    name: Back Right
    type: command
  - commands:
    - G91
    - G1 Z10
    - G90
    - G1 X100 Y100 F9000
    - G28 Z0
    name: Centre
    type: command
  layout: horizontal
  name: Levelling


Does anyone have a Simplify3D configuration file for a Lulzbot TAZ 5 with a 0.5mm nozzle?

Have you tried the configuration assistant under the "Help" menu?

From S3D 3.0.2

And yes, you can just change the nozzle size in the process "Extruder" tab and be done with it, if you're using auto extrusion width. If you're using manual extrusion width, also change that to be equal or greater than the nozzle size.

S3D will handle everything else. It's not a bad idea to recalibrate extrusion multiplier (with 100% infill 20x20 calibration boxes) but it isn't strictly necessary.

General tip for switching to a larger nozzle: while you get used to it, make sure you preview your sliced files carefully looking for areas with gaps or missing details smaller than the extrusion width.


Ender 3 needs Power Supply AND USB to work

It seems like I blew the regulator based on the comment in the Reddit post: https://www.reddit.com/r/ender3/comments/ao5m5b/ender_3_can_only_be_powered_on_by_psu_and_usb/


The Anet A6 does not have a power switch. To power the printer you need to put the power cord into the socket. To "safely power off" the printer you need to pull the plug from the socket. You can even pull the plug during usage when it appears to go wrong (e.g. when the nozzle is digging into the bed). The printer runs a continuous running program/instructions that can be interrupted at any time, it does not have to be shut down according to a certain procedure like computer operating systems that use a proper file system.

You can insert a power button in the power cord yourself for ease of use.

Furthermore, it is pretty common to replace the power cord for a computer power cord with a C13 plug and connect a C14 socket with power button (and an optional fuse) to the power supply unit:

Please note that it is very dangerous to mess with the mains voltage, so please be sure what you do or get help from someone that does. Use proper tools to crimp wire correctors to the leads.

If you are not able to do the rewiring of cables to put in a switch, plug the printer into a power strip with an integrated switch button.


Hold torque during pause to change filament

Is ADVANCED_PAUSE_FEATURE enabled in your printers configuration_adv.h file?
There is a PAUSE_PARK_NO_STEPPER_TIMEOUT option included in there, which prevents the steppers from timing out during a pause, and may be more robust than a G-Code command if you plan to manually pause and resume the print instead of setting it up in the slicer.

Alternatively, in the same file,

#define DEFAULT_STEPPER_DEACTIVE_TIME 120
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true

can be found. You may want to increase the DEFAULT_STEPPER_DEACTIVE_TIME, or set

#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.

to false to keep X, Y and Z engaged while allowing movement of the extruder stepper only.


The latest version of Ultimaker Cura can do that (version 3.6).

I have built models made of different material in the same model.

How to do this is:

Select your CUBE and select the icon "Per Model Setting" in left side menu.
choice "Normal model", select the following settings: Top/bottom thickness, wall thickness and infill percentage
Very Important: all above settings must be set to 0!
Select the model you desire to print and select the icon "Per Model Setting" in left side menu
choice "Modify settings for overlap with other model" and select the following settings: Top/bottom thickness, wall thickness and infill percentage
Select the desired infill percentage and the wall top/bottom thickness for the portion you want print
slice the model

Note: If you need to print supports, then in step 2 select "Modify settings for infill of other models" (instead of "Normal Model"), and in step 6 also select "Add Support" and any other support related parameters you may need. However, Cura needs at least one "Normal Model" to slice, so to fool it you need to also another Cube as "Normal Model" with the parameters of step 4 somewhere else in your build plate (it won't really print).


What solvents are appropriate for smoothing/finishing ASA?

ASA is Acrylonitrile styrene acrylate. According to Wikipedia:

ASA can be solvent-welded, using e.g. cyclohexane, 1,2-dichloroethane, methylene chloride, or 2-butanone. Such solvents can also join ASA with ABS and SAN. Solutions of ASA in these solvents can also be used as adhesives.
Staff, PDL (1997). Handbook of Plastics Joining: A Practical Guide. Elsevier Science. p. 515.

Solvent-welding means that the material is at least somewhat easily soluble in these fluids (they dissolve the material at the interface and as they evaporate, the former interface layers bond as if molded or welded), and the fact that the material can become an adhesive means that it is somewhat good soluble in these.
The least dangerous (and thus most advised from my side) of these 4 is 2-butanone, the others are listed as carcinogenic, and in the case of 1,2-dichloroethane, also toxic.
If these solvents can be used as a smoother similar to acetone with ABS would need testing, but a short exposition to their vapors should suffice to test this.
Addendum:
These four solvents also are able to solve Acrylonitrile butadiene styrene (ABS), which is a quite similar plastic in regards to its contents (butadiene instead of acrylate).

The acrylate rubber differs from the butadiene based rubber by absence of double bonds, which gives the material about ten times the weathering resistance and resistance to ultraviolet radiation of ABS, higher long-term heat resistance, and better chemical resistance. Wikipedia

Acetone might prove to be also a possible option, but results might differ from those on ABS.


From the sources of Marlin you can find how may fans you can use, even if you're not a coder it should be doable. From there you can find how to set the pins for the fans, provided that there are free unused and exposed (so that you do not have so solder directly to the microprocessor). First find how many fans are possible.

Starting in Marlin_main.cpp and searching for 106 (or 106 on the Marlin GitHub website) will lead you to the sources of the execution of the M106 command. Below a snippet of M106 and M107 is shown. The reason for M107 to be there becomes clear later.

#if FAN_COUNT > 0

  /**
   * M106: Set Fan Speed
   *
   *  S<int>   Speed between 0-255
   *  P<index> Fan index, if more than one fan
   *
   * With EXTRA_FAN_SPEED enabled:
   *
   *  T<int>   Restore/Use/Set Temporary Speed:
   *           1     = Restore previous speed after T2
   *           2     = Use temporary speed set with T3-255
   *           3-255 = Set the speed for use with T2
   */
  inline void gcode_M106() {
    const uint8_t p = parser.byteval('P');
    if (p < FAN_COUNT) {
      #if ENABLED(EXTRA_FAN_SPEED)
        const int16_t t = parser.intval('T');
        if (t > 0) {
          switch (t) {
            case 1:
              fanSpeeds[p] = old_fanSpeeds[p];
              break;
            case 2:
              old_fanSpeeds[p] = fanSpeeds[p];
              fanSpeeds[p] = new_fanSpeeds[p];
              break;
            default:
              new_fanSpeeds[p] = MIN(t, 255);
              break;
          }
          return;
        }
      #endif // EXTRA_FAN_SPEED
      const uint16_t s = parser.ushortval('S', 255);
      fanSpeeds[p] = MIN(s, 255U);
    }
  }

  /**
   * M107: Fan Off
   */
  inline void gcode_M107() {
    const uint16_t p = parser.ushortval('P');
    if (p < FAN_COUNT) fanSpeeds[p] = 0;
  }

#endif // FAN_COUNT > 0

Looking at this code, the first thing (actually the first line, #if FAN_COUNT > 0, already hints to that) that catches your attention is constant FAN_COUNT. Apparently the software knows how much fans are defined! Interesting! How does it know that! This piece of code ends just after handling the M107 command (line #endif // FAN_COUNT > 0), hence it is displayed here.

Continuing the search by finding how FAN_COUNT is set (using the search on GitHub for the Marlin repository) leads to file Conditionals_post.h. An interesting part is:

/**
 * Up to 3 PWM fans
 */
#if HAS_FAN2
  #define FAN_COUNT 3
#elif HAS_FAN1
  #define FAN_COUNT 2
#elif HAS_FAN0
  #define FAN_COUNT 1
#else
  #define FAN_COUNT 0
#endif

So depending on HAS_FANx (where x denotes 0, 1 or 2) you can have multiple fans, up to 3 in total! Cool, learned something in the process. :)

Let's now search for HAS_FANx; in the same file you will find:

// Other fans
#define HAS_FAN0 (PIN_EXISTS(FAN))
#define HAS_FAN1 (PIN_EXISTS(FAN1) && CONTROLLER_FAN_PIN != FAN1_PIN && E0_AUTO_FAN_PIN != FAN1_PIN && E1_AUTO_FAN_PIN != FAN1_PIN && E2_AUTO_FAN_PIN != FAN1_PIN && E3_AUTO_FAN_PIN != FAN1_PIN)
#define HAS_FAN2 (PIN_EXISTS(FAN2) && CONTROLLER_FAN_PIN != FAN2_PIN && E0_AUTO_FAN_PIN != FAN2_PIN && E1_AUTO_FAN_PIN != FAN2_PIN && E2_AUTO_FAN_PIN != FAN2_PIN && E3_AUTO_FAN_PIN != FAN2_PIN)

Now we are getting into clear water! This codes hints to FAN1_PIN and FAN2_PIN. If you look into you pin layout file, e.g. pins_RAMPS.h you see that that are the pin constants that need to be defined, actually FAN1_PIN is e.g. set if you choose an "EFF" configuration (Hotend, Fan0, Fan1), e.g. #define FAN1_PIN  RAMPS_D8_PIN.

What is left for you to do is find an unused pin of your micro-controller and set the FAN2_PIN with #define FAN2_PIN  <a free pin number>.

E.g. pin 4 is not a used pin number (and an analog output pin). Don't forget that the pin you choose cannot directly run a fan, it should be used to schedule a MOSFET.

Note that a dual external fan header "Reprap Ramps1.4 RRD Fan Extender" exists, this describes using the D6 and D11 pins. Further investigation led to a 3D.SE posting using this fan header: "How to configure Marlin to enable auto-fans with dual extruder".


Normal PLA is non-conductive. You can take an $\Omega$-meter to a test part if you're really concerned somehow you have some PLA that is conductive.
There is a caveat that your color may include metal flake or graphite of some kind. Depending on the density it may be conductive. But I've tested my silver on hand and it gave me infinite resistance.


CoreXY Carriage moves on the Y when moving the X

For a CoreXY printer to move an axis (X or Y) it requires both stepper motors to turn. If both turn the same direction (at the same speed with the same pulleys), the X-axis will move, if they rotate both in a different direction (at the same speed with the same pulleys) the Y axis will move (see image of CoreXY kinematics below). Rotation of a single stepper would cause a 45° printing pattern.

All four corner points (two top pulleys and two bottom steppers) are fixed to the CoreXY frame

It is therefore highly illogical that you need to use different values for your steps per mm (X = 475.79 steps/mm, Y = 482.87 steps/mm). If you need to use such values, this implies that your mechanical layout/mechanics is/are incorrect (skew frame, different pulley diameters, slip on pulley, incorrect tension of belts, etc.). It is advised to make them equal and check the mechanical layout and inspect all parts (pulley diameters) and make the tension equal (e.g. using a Belt Tension Gauge). If the head still moves in the perpendicular direction as commanded, you could try to calibrate from there.


Cura not allowing full print area to used

Cura is likely factoring in your skirt. Change the skirt lines to 0 and you might be able to print. Cura also seems to have an in-built build size offset of about 2mm. I can't seem to get rid of it in any way other than to change the build size.


How to directly send G-code to printer from a Linux terminal?

For direct low-level printer control from a terminal, without specific software, I found the following solution with full credit thanks to user: http://stackexchange.com/users/6463673/meuh

Sharing here as may be of use to other users in the 3d Printing community, and I was unable to source a "complete" solution to this elsewhere.

Step 1)
Create a custom python script that allows you to set arbitrary baud rates (make executable with chmod u+x).

#!/usr/bin/python
# set nonstandard baudrate. Original Question: http://unix.stackexchange.com/a/327366/119298
import sys,array,fcntl

# from /usr/lib/python2.7/site-packages/serial/serialposix.py
# /usr/include/asm-generic/termbits.h for struct termios2
#  [2]c_cflag [9]c_ispeed [10]c_ospeed
def set_special_baudrate(fd, baudrate):
    TCGETS2 = 0x802C542A
    TCSETS2 = 0x402C542B
    BOTHER = 0o010000
    CBAUD = 0o010017
    buf = array.array('i', [0] * 64) # is 44 really
    fcntl.ioctl(fd, TCGETS2, buf)
    buf[2] &= ~CBAUD
    buf[2] |= BOTHER
    buf[9] = buf[10] = baudrate
    assert(fcntl.ioctl(fd, TCSETS2, buf)==0)
    fcntl.ioctl(fd, TCGETS2, buf)
    if buf[9]!=baudrate or buf[10]!=baudrate:
        print("failed. speed is %d %d" % (buf[9],buf[10]))
        sys.exit(1)

set_special_baudrate(0, int(sys.argv[1]))

Step 2) Run the script to set your baud rate.
./set_custom_baud_rate.py <> /dev/ttyUSB0 250000

Step 3) You can now monitor your printer output in a terminal window simply with:
 tail -f /dev/ttyUSB0

Step 4) And finally, open up a new terminal window, and you can directly send M or Gcode to your printer; example:
echo "M115" >> /dev/ttyUSB0


Safe, cheap, heated enclosure solution for New England garage

The easiest step would be to add some isolation on the outside of the box. If you have space inside, there might be a good spot to store some non-flammable insulation, for example rock or glassfiber wool.
A different material might also be possible - firebrick is not only non-flammable but also a very good insulator! about 2-3 inches of firebrick can contain the heat produced by a tempering oven while the outside is cool enough to be safe to touch with gloves.
However, you should install an extra thermosensor for the chamber temperature - and make sure that the printer enters print halt mode once the temperature in the chamber gets above a critical temperature to try to mitigate fire risks and possibly start a chamber-cooling protocol - which might include aborting the print or activating coolers that rapidly cool down the chamber.
As you pretty much are going heated chamber, you might find a spot when you might want to use a flexible hose to pull non-chamber air to supply the parts cooling fan.
Also, possibly relocate as much of the electronics to a compartment separate from the printer's heat chamber to ensure the electronics don't get cooked and can be supplied with cooler air.


If you are planning to use the printer via GCode entirely, then I don't believe it would be too complicated. For example, Marlin treats the extruder as another axis and uses absolute values for it (if absolute mode is on, of course). Since you want to have two steppers, you would have to connect them in either series or parallel (usually the Z motors are wired in parallel on RAMPS type boards, but many people are going for series since it has some benefits, one of them being that the torque will be much more similar between the two motors). Of course lower the stepper driver current to the minimum before connecting, then adjust it to whatever value you need.
I don't think it will work too well if it has to keep the roll tight - in that case, you could be better off by using only one stepper and some kind of force to hold it tight... maybe a small DC motor at low currents?

You can modify your printer firmware and set your own pin assignments for everything, for example in Marlin you have the pins.h file where every pin from the Mega is mapped to different headers and drivers. I don't know if there is any LOM slicer or firmware available, but you could just use GRBL.


Ender 3 PRO BLTouch V2 perfect on center with small prints but fails on corners or big prints

Following Nathan's answer, I've solved my problem with Nathan's suggestions and the method in  this video.
What I did?

Flashed Creality's original BLTouch firmware to printer
Heated up bed to 60 °C
Leveled bed the old fashion way first, but with slight resistance (you don't have to level perfectly)
Followed the youtube method to find proper Z offset
Opened Cura, Settings->Printer->Manage Printers: and added G29; ABL after G28

Voilâ, now your printer prints perfectly! Enjoying the relieving after 1 week of struggling.


Raw material for 3D printed injection mold

P20 mold steel is one standard. Hardened parts are required for long life, depending on the service and material (some materials are quite abrasive).

You can get a small number of relatively poor quality shots out of epoxy if it is properly supported by a metal box. Your best bet if you want to include 3D printing in the equation is probably to use epoxy or lost plastic casting from a 3D-printed master. Aside from the requirements of core and cavity with sufficient strength, there are requirements for vents, cooling tubes (bubblers and such like) ejector pins and slides that complicate most real molds. Productivity demands a high heat transfer rate, for very small quantities of expensive parts, thermal design may be less important.

Temperatures and pressures are very high in injection injection molding- high enough to melt the materials you mention, and the pressures are in the 10K PSI range, so a 4" x 4" projected cavity will have a pressure in the 80 ton region.

If you have sintered and filled metal 3D parts they may be suitable, but from the prices I've seen you'd be better off to use conventional machining. Finish is also very important if you want the part to come out of the mold, with hours of semi-manual polishing not uncommon. If you don't have fine surface finish you will need extreme draft angles.

The requirements can be considerably relaxed if you are molding soft parts such as the PVC or TPE overmolds on cables. The pressure is less and the finish less important because the plastic is soft, but the temperatures are still quite high. This is sort of a sub-category of injection molding and specialized machines are used.


Wanhao i3 stops printing after about 40 minutes

Time to check things that usually don't need checking.  At this point I would check the power split.

Check the power supply voltage (+12V or maybe +24V, I don't know the printer) at the controller before and after the extrusion stops or sputters.   Assure that the voltage stays the same.   If it drops you have a culprit.  While there, also check the +5V.  If the power is inconsistent,  check the connections for loose screws.  If the power is also bad at the supply,  replace it.

If the extruder starts clicking,  it could be under voltage or under temperature.  You have already checked for heat creep, and not found it.  Either supply voltage can mess with actual temperature.

You have ruled out Z-height, so many possibilities are unlikely.


What is the point of diminishing returns on the STL refinement level in Fusion 360 on an Ender 3?

I don't know that this can be definitively answered for a specific printer and all arbitrary designs.

The refinement level basically determines how smooth a curved surface will turn out.  The STL file format can only express an object in terms of triangular-shaped surfaces, so Fusion 360 will need to approximate a curved surface by breaking it up into triangles. Flat surfaces and straight edges can be represented perfectly, so they won't be affected. Low refinement will use a small number of relatively large triangles. On a part like your example, the cylindrical shaft will have noticeable facets. Higher refinement means a larger number of smaller triangles.

If you have "Preview Mesh" checked as shown, you will be able to see the triangle wireframe, and you can use your own judgment if it's "good enough".

Ultimately, higher refinement means longer processing times and larger file sizes. The final print time won't be affected much if any.

Personally, I always use high refinement. Even on my modest system, it only takes a few more seconds to prepare a multi-hour print, and maybe a few hundred kilobytes or a couple megabytes on my hard drive that I will barely notice. This is a small tradeoff to ensure the best possible STL definition.


Are there any software packages that can open and edit 3MF?

Microsoft 3D Builder should have support for this format.

Solidworks 2015 has support too. A software adoption list is placed on 3mf pages.


Bed heating from Pronterface works, but not from LCD menu nor from SD print

I thought this was an easy problem to fix as the previous Configuration.h you shared had PID incorrectly configured.

I'm guessing that you experience this LCD screen:

What I experienced myself when PID tuning the bed is that it matters whether the bed is preheated or not. At first attempt the command such as the  M303 E-1 C8 S70 you used did result a failed PID tuning (note that you should perform the test from a cold bed).

Your PID values:

// PIDTune from Pronterface
#define DEFAULT_bedKp 305.95
#define DEFAULT_bedKi 60.24
#define DEFAULT_bedKd 388.4805

are similar results as I have for a 24V 300 x 300 x 3 mm bottom cork insulated heat plate with 3 mm glass.

You have not added the "Configuration_adv.h", but this file contains the advanced settings for the printer and most probably contain:

#if ENABLED(THERMAL_PROTECTION_BED)
  #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
  #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius

  /**
   * As described above, except for the bed (M140/M190/M303).
   */
  #define WATCH_BED_TEMP_PERIOD 60                // Seconds
  #define WATCH_BED_TEMP_INCREASE 2               // Degrees Celsius
#endif

This describes that the software waits for 60 seconds for the bed to increase 2 °C. If the temperature increase is not observed, there is no heat input to the bed, or it does not reach the set temperature. Please check your values.


The first multi material add-on version off J. Prusa includes several separate steppers that load filament into the hot end. Note that selecting an other color will retract the existing filament so that the next filament can be loaded. There is no mixing hotend nozzle. It is therefore working serial, not parallel. Working 2 steppers at the same time will  lead to clogging the filament joining position.


Z-Axis does not appear to be working on Ender-3 Pro

It turned out that there's something wrong with the G-code file that came with my printer.

I downloaded a calibration cube from Thingiverse and printed it - while it wasn't 100%, it did print viable. Now I need to get into details as to quality, and I suspect that too will be a factor for the G-code used in the printer. I'm looking at "Ultimaker Cura" to figure out the changes in G-code based on option changes.


Sadly, the Ender-3 assembly instructions were not clear on step 7, what the right direction is (teeth on inner side of the loop):

The Belt has teeth that need to engage the teeth of the hobbed gear on the motor, just like in the preassembled Y-axis. The teeth have to go aim to the "inside" of the loop. This way, the belt will not slip on the motor side and the movements will be repeatable.


Why do I have problems trying to get Slic3r to load a config file?

I changed from "Simple" mode to "Advanced" mode, and the config imported fine. Though, I don't think it was my most recent config. C'est la software!

Also, I switched to Cura after this.


Graphite self-lubricating bushings performance?

Bushings will be quieter than linear ball bearings.  Some online discussions complain of the linear bearings becoming noisy, and (in what I think is a failure of the balls to circulate properly) for the balls to develop flat spots.  If the balls aren't moving properly, you will end up with a bushing.  You might start with a bushing in the first place.

Bushings spread the load over the surface of the rods, so there should be minimal wear.  Bearings and bushings are limited by the load and the speed.  In 3D printers, neither the speeds or the loads are particularly high.  Bushings should work well.

Bushings may have slightly higher sliding friction, which could result in slower maximum printing speed for motors with the same torque.  The characteristics should be more stable as they age.

Others may have different experience, but I would consider either the self-lubricated brass bushings, or perhaps the self-lubricated graphite bushings.

As an example, inkjet and laser printers do not use ball bearings for the carrier.  15 years ago, it was bronze bushing on stainless steel shafts.  Over time, it has evolved to PTFE pads sliding on stamped sheet metal.


Unless you know the structure of the Marlin firmware pretty well, are good at coding (in C/C++), and are familiar with programming microcontrollers, then I wouldn't attempt to do this, IMHO. Adding new features can cause a number of issues elsewhere in the code and need rigourous planning and testing as well as discussion with the Marlin community.

You could however make a request (i.e. raise an issue) to the Marlin community on Github, however, I would seriously suggest posting to the Marlin forum, on RepRap, first, as random suggestions and issues raised on Github aren't really appreciated, without checking on the forum first...

If you really want to get into coding, then I would suggest buying an Arduino Uno and some components and messing about with those first, as well as visiting our excellent Arduino Q&A site on StackExchange as well as the Arduino forums.


Extusion rate limiting and firmware retract

Sadly this does not work at present. Setting an M203 E3 resulted in 6 mm retractions via G10 taking 2 seconds each vs the fraction of a second they're supposed to take.

Since it seems desirable for this to work, I've filed a Marlin issue to see if it's intentional or something that can be fixed.

In principle, G10 firmware retractions still make it easier to script a soluton (replacing each G10 or G11 by a sequence of M203, G10/G11, M203 to set E-axis speed then reset it around the operation) but this is less friendly to direct usage of same sliced files with different extrusion speed limits.


The Ender-3 has a problem that stems from the way the X-axis is mounted and which can often be a source for "jumping" in the  Z area. Seeing the upper photo, you can see that the bad printing seems to be on one side more than the other, leading me to believe this might be the reason:

Check if the X gantry is orthogonal to the frame on both sides and make sure the eccentric nuts are not too tight so that the wheels roll easily on it, but not spin freely.

A little drop of oil on the Z-rod might also help to remove any binding, making sure that it moves smoothly.

If your layers are bad repeatedly, it also might be a problem with the extruder. Check if the extruder arm is all intact. When I had such an issue that was recurring every 10 layers, I found the lever arm holding the wheel on it broken and occasionally loosing contact. If it is broken, I suggest swapping the extruder assembly for a metallic one.


Is using a hair dryer on my M3D build plate safe?

Typically, people cool down their build plates to get parts to release, rather than heat them up. That said, I doubt a hair drier will get hot enough to do any damage to the build plate. You could try it with no harm done.


Getting E1 Thermal Runaway errors, even after replacing the heating element on Tevo Tarantula

1 PID Tune
Changing the thermosensor or the heater cartridge is a big change in the system: each of these items has internal errors differing them from each other item. If your thermosensor has a different standard resistance by a small way than the one before, if the resistance of the cartridge is different, then the chip gets readings it does not expect. This is why a change of either of these components (or to a different heater block size/material for the matter) one should run a PID tune, teaching the chip how the new sensor/cartridge behave.
To do this, connect to your Printer via an USB Cable and run a software that can send raw gcode. I prefer Repetier Host, but other software also works. I like to follow the instructions of the e3D v6 assembly manual, but the video by Tom (Thomas Sanladererer) and the RepRap Wiki have excellent explanations too.

Send M303 E0 S200 C8
wait for finishing
send  M301 with the values you just got returned. One example might read  M301 P17.28 I0.63 D118.87
sent M500 to update your EEPROM

If this doesn't help, we might have a bigger problem, so let's go troubleshooting! Hardware first, then Firmware.
A few useful hints that Thomas Sanladerer found when he was checking his printers for fire hazards:

A shorted out thermosensor (closed loop, 0-Resistance) triggers Maxtemp
A burnt out thermosensor (open loop) triggers Mintemp
A non-connected or burnt out (open loop) Cartridge triggers thermal runaway, as does any other error with the cartridge that leads to abnormal heating.

2 Check the Hardware
Hardware can fail, we all know that. But luckily there are only 5 items involved that could fail:
2.1 Check all connections
If the heater cartridge is not connected properly, that will result in a Thermal Runaway Error, as the thermosensor does not detect any change.
A non connected thermosensor will trigger a mintemp error, a shorted thermosensor will trigger maxtemp error.
2.2 Check the resistance of the heater cartridge
A broken heater cartridge can have two results: either it conducts no electricity at all (for example if a lead is broken), or it acts as a jumper and has no resistance at all. To check this, use a multimeter and measure the resistance in Ohm by connecting it to the leads of the cartridge while it is dismounted. A broken circuit in the cartridge triggers Thermal Runaway, a shorted out cartridge can break the board in worst case. A pictoral guide for analogue Multimeters.
My e3D light6 in my 12 V TronXY has a resistance of about 5.2 Ω. The Value you will get depends on what kind of heater cartridge you use. For reference: e3D Heater Cartridges are documented to be around 4.8 Ω for 12 V & 30 W, 3.6 Ω for 12 V & 40 W, 19.2 Ω for 24 V 30 W and 14.4 Ω for 24 V 40 W.
If your Value is given as infinite or near 0 Ω, your heater cartridge is broken - Though having 3 defect heater cartridges seems unlikely on first glance, unless something shortens their lifespan considerably.
2.3 Check your supply voltage
Now comes a thing that can be dangerous for you will measure a live circuit. Be aware that you are working with live current when you do this. Do NOT bring your fingers into contact with unshielded wires!
Set your Multimeter to check the Voltage. Connect the test probes to the output of the power supply that runs into the board. Power up the voltage supply. It should read close to 12 or 24V, depending on your machine.
2.4 Check the voltage given by the board
Again, this is measuring live current and can be dangerous. Use maximum care not to fry yourself!
If your Power supply is working, then it might be the board that is not allowing the current to get the heater cartridge. So we need to measure if it gets power. Since I=U/R, and we have established that R is not 0 or infinity (see above), we can establish if there is I by simply measuring U, which is the voltage.
Mount the tips of your multimeter into the clamps that should take the leads for the heater cartridge and set it to measure the Voltage. Make sure they have contact. Connect the machine to power and start it up. Order it to heat up the cartridge. It should show a voltage that is similar to your supply voltage (12/24V).
2.5 Thermosensor
The Thermosensor might trigger an error if it is faulty but not entirely broken. A broken thermosensor should trigger MINTEMP for a broken open and MAXTEMP for a shorted out sensor. The only way to test this would be to measure it against items of known temperature, for example using the bed sensor as Benchmark.
3 Check the Firmware
3.1 Thermosensor settings
In some cases, the temperature tables of the thermosensors are not compatible and one has to change the settings for that in the firmware. One of the best rundowns I know is in the e3D light6/v6 firmware manual, if you need more help than this.
In the Marlin 1.9 you do this in Configuation.h, under the header Thermal Settings. In my Ender 3 this is done in line 289:
#define TEMP_SENSOR_0 5

That means, that my temperature sensor 0 (the one in the hotend) is of type 5, where type 5 is defined in the block above. The relevant line 256 of my file reads:
 *     5 : 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)

The most common choice in Chinese hotends to use this very 4.7-kiloohm pullup thermistor table, and the actual specific table for most of these is reasonably close to the 5. Other thermosensors can be reasonably overlapping, but in case you change the style of thermosensor, it is generally advised to change this value accordingly1. Always run a PID tuning after changing the thermosensor table!
3.2 Thermal Runaway Protection
The settings for the Thermal Runaway Protection might be worth a look. Maybe it is a little trigger happy? Configuration_adv.h contains a block titled Thermal Settings, containing when to trigger the emergency shutdown. For my Ender3 it reads like this:
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
  #define THERMAL_PROTECTION_PERIOD 40        // Seconds
  #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius

From your error log, I guess that your printer has the second line as 30 seconds. It would be technically safe to increase this time to up to 120 seconds, but I strongly suggest not to go over 60 seconds.
1 - I had switched the whole hotend on my TronXY X1 for an e3D light6, and it only needed a PID tune, but in theory I should have also swapped the Firmware to reflect that - but, as said, luckily many Chinese printers use the table 5 even if they are not using the sensor. Table 5 was made for the thermosensors used by e3D.


The most common cause of print issues like this is incorrect first-layer gap between the nozzle and bed. You can tell if that's the problem by trying to print with a raft and/or letting the print continue for a while. If the raft helps and the print eventually "heals up" and only the bottom few mm are bad, then you have a bed leveling / nozzle gap issue The bed must be leveled to the nozzle properly, or nothing will work right.

When using a probe, you need to follow the manufacturer's instructions for how to configure it. For example, are you adjusting the Z offset in firmware configuration.h or in EEPROM? Printrbot should have a guide for this.

If the nozzle gap is fine and the stringiness continues farther up the print, there are two main causes:

XY or Z movement is larger than intended due to incorrect steps/mm value or wrong microstepping setting
Severe under-extrusion

Of the two, under-extrusion is far more common, and unfortunately has lots of possible causes:

Printing too cold for the material
E-axis steps/mm is incorrect for the extruder drive hardware and microstepping
Extruder stepper current is too low
Extruder hardware is misaligned or jamming or the teeth are full of plastic dust
Partial nozzle clog or damaged PTFE tube in the hot end
Commanded flow rate through the nozzle is too high, such as if you're trying to print big, fat strands at high speeds
Incorrect slicer calibration (eg extrusion multiplier is too low) or inappropriate slicer settings (eg extrusion width too large for the nozzle size)
Excessive filament feed path drag between the spool and extruder drive

The first under-extrusion tests you should start with are:

Preheat and try to push filament through the hot end by hand. Can you get a strand to come out without a ton of force? Does it go mostly down, or curl back up to hit the nozzle?
Remove the hot end from the extruder drive, and command 100mm of filament motion through the extruder. Measure how much travel you actually get. It should be close to 100mm.
With the hot end removed, command some filament motion, and try to stop the filament from moving by hand. Does it take some significant force to get the extruder to stall or slip?

Based on these, you should have a better idea of what needs to be fixed.


Curated resin size shrink (and methods to reduce it)

Generally, this behavior isn't well reearched as of this moment, and it would be dependant on your specific resin. While I can't tell you if your resin is affected by shrink or even uneven shrink, I can give you the method of how to investigate:

Download or design a cube with a well-known dimension. I'd suggest a cube of 20 mm side length. It's best to indent the orientation onto the surfaces. One such model would be thing 3090144, which has a version that is hollow and has a hole to let out resin, but there are others.
Align the X, Y and Z with the letter into the positive side of the axis in your slicer.
Print.
After Printing, clean and cure
Only after curing, measure the X and Y and Z dimensions with calipers.
Calculate shrinkage: Measurement divided by 20 gets you the shrinkage or expansion, multiply by 100 for percent.


I've printed jobs taking as long as 50 hours over a weekend using a German Reprap x400.

Used a large enough UPS to support the printer and the computer.
Printed the gcode file from a USB card instead of the computer, so that a computer update or reboot doesn't interfere with the print. [If you can't print from media independent of the computer, you can disconnect your computer from the network and/or internet.]

Overnight prints still fail sometimes, probably from power issues the UPS doesn't filter out.  Often this means the filament material melts all over the hot end instead of sticking to the print on the bed and leaves a mess to clean up.
Other than that, I'm not sure of the risk for your particular printer model.


Bed design for magnetic easy release when printing PLA

Follow up:

I used the 6mil magnet, cut a sheet of thin steel, (about .5mm) to fit, added a layer of Buildtak and now it's much easier to remove prints, build surface is very flat. I assume you could deform the metal beyond the magnet's ability to flatten it but it works quite well. The metal was cut with sheet metal snips, risky as they can bend the sheet. Probably better done with a saw though.


Printing problem on right half of printer

Your bed level according to the sensor and reality is changing between the time of probing and the time of printing. There is not enough info to determine exactly where the problem is, but the possible causes and solutions are most likely:

Bed or X-carriage is mechanically loose: ensure all axis and parts of the printer are tight, including the hot-end mount

Bed temperature changes have affected the bed level: ensure the bed is at operating temperature during all manual and automated leveling

Sensor is not reading correctly across the entire bed due to the magnetic sensitivity of the bed or hot-end heating elements: either enable the PROBING_HEATERS_OFF compile-time feature in Marlin or disable the bed and hot-end heaters immediately prior to the automated bed leveling procedure using the code:
 M140 S0; set bed temperature target to zero
 M104 S0; set hot-end temperature target to zero

then turn them both back on to your desired temperature immediately afterward probing using the same M104 and M140 command syntax to their respective desired temperatures


Can you help me improve my Renkforce RF1000 print quality?

Should I replace the nozzle with this one so that I know what nozzle I've got and so I'm sure this isn't a problem?

That is not really necessary. The exact nozzle size does not really matter.

  Should I replace the filament with new 1.75 mm PLA? If so, why?

No, there's no reason to do that. Going from 3 mm to 1.75 mm filament usually requires replacing the entire extruder.

  How do I fix the extruder?

Tighten the grub screw (the "black hole") with a hex key.

  Is the unconnected fan important and if so: what do I do with it? There's no remaining wire to connect it to.

The fan appears to be cooling the stepper motor. This shouldn't really be necessary, the stepper should be fine without any additional cooling. People tend to "upgrade" their printers by adding unnecessary bells and whistles so it is possible the original owner added this fan just because they wanted to, and not because it is necessary.

  How tight should the 4 screws that hold the filament between the extruder and the rolling disk be?

Tight enough that the extruder grips the filament and is able to extrude it consistently. If it is too tight it might deform the filament too much which could cause printing problems but it should be obvious if this is the case. There is a wide margin here so don't worry about this too much.


how to control fine details from overhanging part to not build upwards

I think the issue is unsupported overhangs. There is not enough material to support the first layer of each small tooth. Have a look at how your slicer slices the first couple layers at the bottom. It might be that it tries to reduce the angle to 45°, so that it can print overhangs, or the overhangs are drooping before the next layer can assist with support.
Looking at your first two images, I think the printed top part of the tooth is actually quite similar to your 3D design.
You can fix this by making the tooth profile from the side have a 45° slope to maximum height, and the same on the top if you want the teeth to appear symmetrical.


Is this fuse a good choice for my Prusa i3's power supply and RAMPS 1.4?

No, do not use this fuse. The current rating is too high to be reasonable for your printer. It will "work" in the sense that your printer will get power, but it won't provide anywhere near as much protection as a lower-rated fuse.

10A is a lot of current for mains voltage. Depending on what else you have plugged in, there is a fair chance your home's 15A breaker will trip before this fuse does, which kind of defeats the point of having it.

Even for "fast" fuses, it takes a significant amount of time for them to blow when conducting their rated current. The internal fusible link has to heat up and melt before the fuse stops conducting. The less the overload current exceeds the rating, the longer that takes. A 10A fuse conducting a 10.5A short might take 30 seconds to trip. In the meantime, your printer is melting. Lower-rated fuses will trip faster for the same short and thus provide better protection.

You need to size fuses as small as possible for the required current draw if you want to have any hope of rapidly cutting off an excessive-current event.

I would recommend a 4A fuse in the USA for this 350w power supply. (Note: the listing title says 360 but the photos show 350.) I use 4A fuses in several printers with 120v / 350w PSUs and they do not trip. But you can do the math for yourself:

350 watts / 120 volts / 80% efficiency = 3.64A

The smallest fuse you can find that is larger than this value is what you should use.

Now, we can argue over whether 80% is the right efficiency value... it could be lower. The PSU label says 6.5A input is required, but that amount of current draw implies either a <50% efficiency (which is quite poor for this kind of PSU) or would only occur for abuse/surge scenarios like starting very large motors. Such short-lived inrush events generally won't trip a fuse unless you do something dumb like lock the rotor. And none of that applies to the small microstepping-driver stepper motor systems we're working with here. This PSU should not draw more than 4A in normal 3D printer use.

Looking at this on the other end -- how much damage will 10A do versus 4A? Lots. If the short is in the 12v system, and the PSU's short protection doesn't trip in (because it's a cheap knock-off) you would roughly multiply the AC fuse current times 10 to get the DC current. And 40A is a downright scary amount of current! Depending on wire gauge, putting 40A through heatbed wiring may make it smell and smoke. Whereas putting 100A through heatbed wiring will almost certainly start a fire.

You're much safer with a 4A or even 6A fuse for this PSU than a 10A fuse.


Is 'natural' colored filament equally brittle compared to white filament?

No
Natural colored filament has no pigments added, the ivory off-white color is the natural color of the mixture in the filament.
Also note, those white filaments can have much less than 50 % volume percentage of pigment, depending on the exact hue of white. The starkest cold whites might make that, warmer white can work with a lesser amount. Pigments are part of the filler materials.  The other fillers make the filament behave in the designed way and can make up a considerable amount of the filament. Usually, less than 40 % are fillers compared to the PLA.


That is actually not uncommon to happen for the Anet heated beds, many users report this. Mine was able to reach about 100 ℃ out of the box (took a while to get there), but not beyond.

For the bed to reach higher temperatures you would need to make some adjustments. You should at least insulate the bottom of the heated bed with cotton or cork to reduce the heat dissipation by half. Note to speed up heating to e.g. 110 ℃, I often insulate the top of the plate with a removable piece of cotton or cork to remove it just before leveling and printing starts. Furthermore, replace the heated bed connector and solder the bed power wires directly to the pins at the back of the connector. That connector is NOT rated for the amount of current requested by the heat bed! E.g. due to the moving bed the connector jitters which leads to sparks; you see many pictures of burned or brown connectors on the internet. While you do that please consider replacing the wires to the heat bed also to some proper gauge silicone wire, AWG 14 should be good enough.

WARNING!

Last thing to mention of prime importance is that the stock firmware of the Anet printers has NO thermal runaway protection! I.e. if your hot end thermistor would fall out of the nozzle block, the firmware would detect the temperature drop and will keep sending current even if it does not measure a temperature rise. This leads to an overheated nozzle and is definitely considered to be a fire hazard!

Edit:

The answers to question How to increase bed temperature over 103 degrees are of great value to this question.


Can I mix TMC drivers with A4988 on the same RAMPS board?

Yes you can mix different drivers, including the TMC drivers (e.g. using for X and Y only).
How you do that is described in this instructable.

Please do note that, from observations, the 8-bit based Arduino boards and shields such as the RAMPS are becoming more or less obsolete; the 32-bit based controller boards are becoming mainstream. Such boards have a lot more potential in execution speed, memory and more available options for peripherals.


RAMPS PLUS 2 and E1 socket problem (K200 Delta, but related to the PCB , not printer)

Repetier reads configuration from the printer when a connection is established, so as long as it gets info about 2 heads it will display it.

The best approach will be to disable heatbed or hotend directly in the firmware and reflash the printer. You could also swap pins on the board.

When you decide to reflash the firmware, you could check with producer if they have suitable one or use Marlin (this is a configuration guide).


How to generate gcode only for first layer?

I understand your question like this:

  I know I could cut the mesh and just slice the bottom of my model, but since I am interested in a given number of layers and the heigh of a layer may change according to settings (e.g.: 0.2mm, 0.1mm, 0.05mm...), I want to find a way to generate an arbitrary number of layers from the full model.  I use slic3r.

If my understanding is correct, then you can achieve what you want with a few steps.

Use verbose GCODE

The setting is under "Print settings → Output Options".  This will output gcode with comments in it.

Save the finishing gcode of a valid printing job

Basically, open a valid gcode file, and save the last few lines (comments will help you to understand which ones, it changes from printer to printer) in a separate file (gcode.tail).  These lines are typically those that move away the nozzle from the print, disable the heating element, the steppers and the part cooling fan.

Prepare the first-lines.sh script

#! /usr/bin/env sh
sed -e '/move to next layer (3)/,$d' $1 > /tmp/gcode.tmp
echo ~/gcode.tail >> /tmp/gcode.tmp
echo /tmp/gcode.tmp

What this script does is:

take a file name from the command line ($1) and savie into gcode.tmp only the part of it up to and excluding the line saying "move to the next layer (3)" (you should actually use the number of layers you actually want here, 3 is just an example).  Again, the presence of such a line depends from you generating "verbose gcode".
append to gcode.tmp the content of the file gcode.tail (here replace ~/ with the actual path on your machine.
output as a stream the full content of gcode.tmp

Set your printer to automatically run the script onto the generated gcode

This setting is again under "Print settings → Output Options". You have to type in the full path to first-lines.sh.  Also remember to make the script executable (chmod +x first-lines.sh).

You can also hover over the textbox to get additional information of how you can access slic3r variables there (for example you may want to read the layer height from the settings and compute within the script the number of layers you want to keep).

Profit

:)

Final notes:

I tried the sed command and have post-processing scripts running on my gcode myself, so it should work, but I haven't tried the full procedure myself, if you encounter bugs please leave a comment so I can fix the answer for everybody. :)
I use slic3r Prusa Edition (I believe these settings are the same, but just in case... you may wish to download that version.
All of the above should work out-of-the-box on all mainstream Linux distributions and OSX.  For windows, it has been suggested in the comments to install CygWin.
Since this procedure still slices the full model and then throw away most of it, you could make it faster by only slicing a reasonably thick "bottom part" of your model.  For example: say that you know you will never want to print more than 5 layers and never with a layer height past 0.3mm... in this case you could only keep the bottom 2mm of your model and you'd be safe for all other combinations of layers and layer heights.  Don't keep exactly 1.5mm though, as this is likely to generate a different top layer than the one in the full model.

Good luck! :)


Adding additional extrusion to a raft (raft with a skirt?)

In Ultimaker Cura you can select only one of the the build plate adhesion options skirt, brim or raft. You cannot select multiple options.

There is no option available in Ultimaker Cura to increase the outline count of the raft bed adhesion structure. Basically the raft exists of a line support structure as can be seen in the figure below.

The line around the lines should be considered "the skirt", so if the nozzle is not properly primed (not sufficient molten filament available), you need to properly prime the nozzle prior to printing.

To prime the nozzle, you need to add some extrusion of filament in your start G-code.

Personally, I like the style of Ultimaker where prior to printing, a puddle of filament is deposited priming the nozzle adequately. Basically you need to move to a position where you like to deposit filament:

 G1 X10 Y10 Z2

Then you need to extrude material

 G1 F125
 G1 E10
 G1 Z3 E5

After that you can even wipe the nozzle.

Another option (that requires some copy/pasting from your side and would not be a recommended practice) that is possible is slicing the model with a skirt (with a sufficient distance to stay away from the raft position) instead of a raft and look at the generated G-code and copy the skirt deposition codes into the raft G-code file. You do need to take care of the proper length of the extruder when the skirt followed by the raft, so you need to use G92 Exx.xx where xx.xx is the actual length of the filament start for the raft.


Does Octoprint stop printing on Crash Detection?

You are describing precisely how the crash detection should work on the Prusa Mk3, so it is doing exactly what it should do. If you look into this video from Jozef Prusa you will see him explaining that in case a crash is detected (steps missed are registered because the Mk3 uses trinamic stepper drivers), the print head is homed and will immediately restart printing.

Please do read this interesting post; it describes your similar problems: after detection it resumes. He noteworthy mentions that even a few lines of G-code went missing, this is probably caused by the fact that OctoPrint buffers a few commands or something that get lost because the Pruse Mk3 crash fail safe kicks in.

In effect, OctoPrint is just a simple supplier of G-code commands and does not recognize the problem to act on it and will therefore continue sending new commands after the Prusa Mk3 crash has recovered (sending ok to OctoPrint for receiving new commands) from the crash and re-homed and got the temperatures back to normal levels.

An existing plugin for OctoPrint may help you in this case. The Action Trigger Plugin is able to detect events, but have to be implemented in your firmware. E.g. the action for filament describes:

  This trigger will pause the print and home the X and Y axis, giving
  the user the opportunity to change out the filament. The print needs
  to be resumed manually through the UI.

Maybe it can be configured to pick up the existing event and issue a pause. It could be worth looking into this.

EDIT
Looking closer to the ActionTrigger plugin I noticed that you cannot configure it and the "manual" is very terse. I guess this might involve some serious hacking...


Welcome to the group! A video would help. Or at least some photos.

Are both the motors connected? If you remove them from the coupling do they move? Likely it is binding (too much friction, not level etc) or you need to adjust your voltage controller. I am going to say 80% confident you need to play with the voltage.

Chances are it's just the voltage. I do not know what electronics you have but if they are RAMPS 1.4 then you are looking for these

Also here is the wiki on the 1.4. Just turn the screw gently. One direction will give it more power. The other less. When it has too much power your motors will start making a thud noise.

EDIT post adding the video

Oh yeah that is binding. If you wouldn't mind putting the video on youtube to that the video can help people for years to come? Dropbox is a bit volitle.

I would also in addition to my advice in your other question take a bubble leveler to all the rods. It could be a distortion on your camera but it looks like the rod is a bit bent. Also in my Prusa (original) I used to have to make the motor mounts lose, as it did not fit all that well and had binding issues. Try making the screws loose enough so that they float and can move around a lot. The lead screws are less important to the overall stability.


Hey why to make it soooo sophisticated and poor?
Air valve cannot be designed with 2 stiff elements - it will never work.

Make the air your friend but not the enemy. Use old good rubber (silicone) "flake" instead. Especially when you have such small design.

Take a look on the picture.

Here you have black element which is rubber or silicone. It's sticked on one side. When air goes from the pipe (goes up) then rubber is slack so the air can flow. When you suck then rubber seals the pipe.

[edit]

You can find such solution in for example bike pumps, inflatable matterss pumps also gas masks and so on. It's pretty fine for low pressure.

Of course ball valves are also widely use but then such device has to have "rubber" ball nest so ball lies on the rubber ring to seal it. There has to be a spring to tight the ball to the ring. Without such spring turning the device upside down would cause the valve would not work at all.
Ball solutions are intended to higher pressure.

Please note the spring which tights a ball creates kinda threshold on the pressure level which means that pressure has to exceed a spring force to reduce a pressure. This doesn't occure in rubber valve.

I don't know what device you are trying to prototype but I'm pretty sure a rubber valve will be just fine.

Please also note that sealing surface is very low in ball valve solution but in rubber valve it can be almost unlimited so it can seal quite well even when the surface is not perfect.


It is quite likely not a thermocouple, but a thermistor:

A thermocouple would look like a small blob of metal. The tip of your temperature sensor appears to be a glass bead, which is a commonly used way to encase thermistors.
Thermocouples are polarized. The fact that the wiring is not "directional" suggests it is a thermistor.
Thermocouples are used in high-temperature applications (such as a high-temperature hotend for printing specialty materials), where a thermistor would break down. The bed is not such a high-temperature application.

You can easily verify this with a multimeter. If it was a thermocouple, its resistance would be near zero. With a thermistor, you should see a decent amount of resistance (most 3D printing thermistors are 100k at room temperature).


My MakerBot 2 jams after a couple hours of prints

As you stated, it could be a result of the material beginning to melt before the extruder. Here's a few things to look out for:

Is your extruder temperature appropriate for the material? Typical printing temperatures can range anywhere from 200 - 225 °C for PLA (depending on the supplier). Often, if the extruder is too hot, the material will bubble or over extrude.
Is the material of proper quality? There's a reason MakerBot Industries wants you to use their filament (besides putting their hands in your pocket book), and that is repeatability. They've tested their filament on their hardware and ensured that the material will extrude with regular print settings.
Is the material being stored properly? Sometimes people forget to store PLA in a dry place to avoid absorbing moisture in the filament. If moisture is absorbed, it can perform poorly in the print. Indications of moisture can include a slight steam from the extruder and/or bubbles in the extruded material (similar to overheating).
Are the fans operating correctly? If the fans aren't running or aren't running enough, the filament begins to heat further up the extrusion assembly (closer to the drive gear) which can inhibit extrusion. I know that MakerWare/MakerBot Desktop has been updated lately with more emphasis on controlling fans for active cooling, so make sure that your fan(s) are operating for duration of the print as necessary.

All and all, your filament is getting too hot. If you can't determine the sudden change, consider printing with a lower extruder temperature from now on. However, if you're using MakerBot filament (or similar quality) then I would definitely verify that your machine is calibrated, wires are fully connected, and settings are double checked. If all is as expected, then you should call MakerBot support (since they're closed source now, they technically have an obligation to help you) especially since the machine is so new.


Resetting the zero position of the X axis on a RepRapPro Mendel Mono

I think the cleanest option is to move the X-endstop back about a centimeter to match, and then increase the size of the bed in both Slic3r's and the printer's settings.

You could also try using M206 to set a persistent offset after homing.


PETG warping - adhesion or temperature too high?

PETG is a pain to print with, but adhesion/warping usually isn't the issue.
To begin with, fan should be completely off for PETG unless you hit problems that necessitate a fan, and then only minimal. Certainly not 50% or 100%. Fan will seriously impact adhesion between layers and give you brittle prints. It also might be responsible for the warping you're seeing, but the biggest issue here is that you have an adhesion problem.
I'm not sure if blue tape is generally recommended for PETG. The Buildtak clone that came with my (original, not v2) Ender 3 adheres extremely well (if anything, too well) with PETG so I've never worried about adhesion with it. But if it's not adhering to your blue tape or v2 coated-glass bed (or if you're concerned about ruining that bed from PETG adhering too well) you need to find something it will adhere to. I'd suggest getting a Buildtak-clone Ender 3 v1 bed surface (you can find these cheap) and clipping it to your bed (since you presumably don't want to glue it over the v2's much nicer bed).
I guess I should mention that distance to build surface could also be the issue. Make sure the bed is leveled correctly. I don't like the paper method because it's too imprecise; the best way I've found is to move the Z axis to 0.1 mm and adjust until 0.1 mm feeler gauges fit under it with some friction and 0.15 mm ones don't fit at all.


Is there a way to print on a 3D printed surface?

Rather than post a series of links for various services and vendors, consider to use as a search term "hydrographic film at home" to find results to suit your purpose. The first search results I found excluded "at home" and indicated it was not suited for home/hobbyist use, but the modification resulted in vendors supportive of home users.

In advanced circumstances, the image printed on the film is topographically matched to the model to which it is to be applied. For home users, I suspect that is somewhat out of reach. Most of the products aimed at the home user are patterns or solid colors, although with care, one could combine films in sequential applications.

Effectively, the process involves a colored film floating on a water filled container. Certain products are applied to the film and to the prepared model to ensure bonding. Additional processes are required to protect the graphic-coated model after removal from the bath/container.

As with the other responses, it's not likely one will achieve 300 dpi resolution without resorting to the topographically matched commercial methods.


What's the purpose of the "outlines" around prints?

I am curious, what is the purpose of printing a single-height outline around the objects to be printed?

The (equidistant) lines at distance from the print object is called the "skirt", the skirt is an option found under the "Build Plate Adhesion" options in your slicer. The primary function of the skirt is to get the flow going, but there are more benefits you can get from the skirt:

You can find out whether the bed is correctly levelled, or if the bed has concave or convex areas (the skirt should be a line, I prefer at least 2 lines, of consistent thickness, if not, this may hint to incorrect levelling;
You can find out if there is enough or a sufficient amount of adhesive (e.g. glue stick, hair spray, specific print adhesion sprays like 3DLAC or DimaFix, etc), if not the bed might be greasy or lacking the adhesion product;
You can configure the skirt height to use the skirt as a shield for draft or ooze and distance to product);

  Also, how would it affect the outline if the object to be printed extends to (very near) the very edge of the print area?

Do note that a skirt limits the useable build area by the distance and width of the skirt.

Basically this has been answered (see this answer and this answer) in a different question ("Random lines are being printed?"), but it might be beneficial to answer this question rather than closing this for a dupe.  This question is focussed on the skirt, the equidistant lines around the print object, while the other question focuses on the priming line.


The main consideration when building the body/frame of a 3D printer is the stiffness.  The stiffer the material, the less the frame will deform under load, and the more accurate and repeatable your results will be.

UHMW has a Tensile Modulus of Elasticity around 120,000 psi (http://www.polytechindustrial.com/products/plastic-stock-shapes/uhmw-polyethylene)

Aluminium has a Modulus of Elasticity around 10,000,000 psi (Mott, Applied Strength of Materials, 5th Edition, depends on the specific alloy)

Aluminium is around 100 times stiffer than UHMW.


There are a number of programs available which will convert g-code to DXF, a common drawing format. If your device does not support DXF directly, there are a number of programs to convert DXF to SVG. I would paste links but a quick search with your favorite search engine should give you useful results. The better conversion programs will allow you to eliminate movement g-code entries, which prevents connections between lines. I did not paste links, as my research shows such variety as to be overwhelming.


Why keep the bed heated after initial layer(s) with PLA (or PETG)?

There are three reasons (I can think of):

A large problem you'd face with allowing the bed to cool after first layer is you stand the chance of losing adhesion after it cools. When you heat the bed, it expands somewhat. When it cools it contracts. It has been known for parts to actually pop off the bed if left on there to cool (after a print). If you allow the bed to cool fully, you could ruin a print due to it losing the adhesion, popping off the bed, then the printer keeps on going.
When you're dealing with 0.1 mm layer height, that's not a lot of wiggle room. When you level your bed before printing, it should be done after everything is heated. If you were to turn off the bed after you start printing, you could very easily shift the bed enough to take up the worth of an entire layer, which means your print has adjusted and will then have major imperfections. This isn't a given, but definitely a concern ... especially for larger or taller prints.
Whether PLA or PETG, the extruded filament needs to have heat in order to stay. This is not only heat in the extruder, but heat in the print itself. If the print cools off, this could affect subsequent adhesion for the filament getting laid down. If you turn the bed heater off after print start, you'll lose that heated environment. The print will cool off and you'll start seeing variations in the print, which, if the print is large enough, would most likely be more noticable. Think of it as a heated environment, not just putting piling host plastic on top of each other.

There may be other reasons, but I believe these are very good reasons not to turn your bed off after print start. If you are worried your power supply isn't providing enough power, then get a bigger power supply. If you're worried about power consumption overall, once the bed is heated, consumption goes way down (as @r_ahlskog stated in their answer).


In Cura, can I make my top and bottom layer be all perimiters?

I found the answer myself just after posting - I'm posting it because it might be helpful to other Cura novices.

There is a setting for this, it's just that it's not shown by default. In print settings, you have to click on the three lines next to the search box, and select "Show All Settings". Then you can find a setting called "Top/Bottom Pattern". Setting this to "concentric" does what I described.

Actually this setting affects not just the top and bottom layers, but all layers that are part of the top and bottom shell. This seems like a good thing, but if you really want to affect just the bottom layer, there's a setting "Bottom Pattern Initial Layer" that does this. There is also a setting under "Experimental" called "Top Surface Skin Pattern" that I think does the same for just the top layer.

In addition to "Concentric" there is also a "Zig Zag" option that's quite similar to the default "Lines" mode.

You can also change the visibility of settings in the preferences menu, to make these settings show up by default.


Thingieverse does respect the orientation an item was designed in, just like most slicers will. Designers will often choose any one of the three planes (XY, YZ, ZX) as their first by preference, then work out the other parts in relation to the first. This does often not take into account the actual print orientation it should be printed in.
In the case of this box, you'd have to turn all items around the Y-axis (the front-left to back-right one) by 90°, first to the front, then the back then to the front again, getting almost 0 overhangs.


Multiple unattended prints using extruder to sweep build plate?

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.


You've not stated this, but one must presume that you have a dual or multi-material extruder equipped printer.

Because PVA dissolves in water, the supports will be eroded on contact when the part is immersed. As the PVA dissolves, it increases the concentration of PVA in the water, but only slightly. You would have to agitate the water, change it if you feel it is becoming too concentrated. At some point, you should be able to rotate the cylinders, creating more turbulence, causing more PVA to dissolve into the water.

If you are determined enough, you can cause all of the PVA to dissolve, followed by a rinse with clean water. This would remove any residual PVA.

The water containing the dissolved PVA is somewhat sticky, but would not glue parts together if the parts were thoroughly rinsed. It's not out of the question to use an ultrasonic cleaner with plain water to provide sufficient turbulence, again changing the water periodically to keep the concentration low.

If you use an ultrasonic cleaner, test a sample of your print filament to determine if the heat generated will soften the plastic. I've had success with PVA to the extent that I have not had to use an ultrasonic cleaner to remove it.


Marlin 1.0 works: Marlin 2.0 destroys Z-axis motion

I believe (from reference) the default steps per mm for the FLSUN 3D Cube are:
                                          X,   Y,    Z, E0
#define DEFAULT_AXIS_STEPS_PER_UNIT   { 100, 100,  400, 150 }

Default marlin 2.0.x are:
                                          X,   Y,    Z, E0
#define DEFAULT_AXIS_STEPS_PER_UNIT   {  80,  80, 4000, 500 }

Such a setting would explain the excessive speeds; while the printer only needs 400 steps for advancing a single millimeter, the stepper receives 4000, this implies a tenfold, hence larger displacement and higher speeds.


Tomas Sanladerer has produced a nice video on this topic: https://www.youtube.com/watch?v=il9bNWn66BY

@ 7:31 you see an overview of the precision of various sensors, including the ones you mention. It appears that the M12-4 and M18-8 sensors are more accurate than the M8-8.


and welcome to the Stack Exchange 3D Printing site.

Let's look at the specs compared with the requirements.

How much power is used by the heated bed?  You have specified 120W (12V, 10A).  That information makes it easy!  On my homebrew printer it is higher, but that seems like a good high limit for a typical i3-style design.

So, the MOSFET you propose, assuming you completely turn it on, will dissipate 0.01 ohms * 10A^2, or 1 watt.  This will warm the part, and you probably should attach it to a heat sink, which could be as simple as the existing extrusions.  There is a much more complete answer to this exact question on the Electrical Engineering Stack Exchange site: Dissipating 1W on a TO-220 without heatsink?

I doubt the PID frequency is higher than 40 KHz.  Since the Vgs rating you referenced is specified with 10V on the gate, you can't drive that directly from an Arduino pin.  You need another driver transistor (NPN or FET) to drive the power FET gate.  The turn-on time for the power FET will be determined (in the simplest circuit) by the pull-up resistor to +12v connected to the output of the transistor and the gate of the FET.


What clearance should I leave between parts that are supposed to fit together perfectly when using a .6mm diameter nozzle?

First, find or make a tolerance checking test print. This basically just involves a few cylinders with diameters something like 0.1, 0.15, 0.2, 0.25, 0.3, ... mm smaller than a cylindrical hole, and lets you figure out what works without going through lots of iterations on your actual part design or time on the printer. Make note that diameter (2 gaps) vs radius/gap-width (single gap) is a really important distinction here.

With that said, your design does not look well-suited to 3D printing. The purple studs are going to break. That's pretty much a given. And overall there are just way too many pieces. A big part of the advantage of 3D printing is that you don't have to assemble things out of parts that would be easy to produce (or available stock) with traditional manufacturing methods. You can often produce a complete working result all in one print, or two or three if there really need to be separable parts.

I would replace the purple studs and red piece that looks like it's intended to allow easy connection/removal with a threaded interface. That would distribute the forces much more evenly, and it's easier to print. If you don't care what orientation it stops at, it's super easy; otherwise you have to put some sort of stop or predict where the friction will hold it.


Which algorithm does Marlin use to create arcs?

The algorithm is based on the "Vector rotation by transformation matrix", and this solution is based on a solution from Jens Geisler. The formula for clockwise rotation is:

More information about the vector rotation can be found on Wikipedia.