PETG and Clear Aligner? There is a material called PETG. In addition, there is a medical solution called Clear Aligner to fix perplexed teeth.
Can I use a 3D printer using PETG and make transparent apparatus?
The program I use gives transparent apparatus, 3-dimensional output in STL format. Do I get results if I send the STL file to the printer?

No
PETG is a material that can only be used in FDM machines. This precludes any internal medical use, as FDM prints can't be made sterile or even hygienic - the sterilization processes would destroy the print, and FDM layers create many spots for germs to grow. Atop that, you can't get the needed precision with FDM - which means any FDM prints are at best waste at worst endangering the patient!
In contrast, 3D printed metals and laser-printed nylon can be created and post-processed in ways that do not have layer lines. Resin prints do not have layer lines that offer these discrete hiding spots for germs. They all are made in a fashion that kills germs or disallows them from being embedded and they can be properly sterilized or made hygienic.
No!
PETG can't be printed completely clear in FDM. By the processing method, air and layer boundaries are included, making prints at least somewhat opaque.
Only Resin prints can be fully transparent as they contain neither boundaries nor air.
NO!!!
STL files contain only surface data and need to be processed into printer readable format. G-code is one of those formats, commonly used in FDM machines and CNC machines.
The processing from STL or other surface data into FDM-3D-printer G-code is done by a program called a slicer. Examples are Cura, PrusaSlicer, Slic3r, and many others.
Resin printers using DLP use different slicers that create images of the model's crossections together with some sort of machine code for the movement. For SLA machines, the code is entirely different again.
Further Reading
I highly suggest you read more about 3D printing dental applications before trying anything for dental use, and especially anything that is printed for any medical application!


Can you fix a warped, removeable build surface backing? I have an Ender 3 with a removeable build surface. The build surface backing has become warped - the center is at least 0.3 mm higher than the corners. I'm not sure what the material of this plate is - it's the part behind the BuildTak-clone surface that sits on the aluminum heat bed and is clipped to it. This makes it impossible to level the entire bed, and annoyingly tedious to level it enough just to use the center, since the paper method doesn't work at the corners. Can this be fixed, or do I need to source a replacement for it?

Yes. I rigged up the following setup with blue tape and clips and a pen for tensioning, used the nozzle (unheated) to hold the center down against the bed, and set the bed to 100 °C for about an hour. Afterwards the curvature was in the opposite direction and easily compensated by clips.


Printing 2x slower after upgrading to "MarlinTarantula" firmware I have a TEVO Tarantula printer, recently I have upgraded it's firmware from the stock firmware to marlin 2.0 using this configuration repo.

Since upgrading my prints take 2x the time they used to (and the time Cura says they should take). I have tried to increase the printer's acceleration and jerk maximum configuration, but it did not help.

In addition, another symptom that is new is that whenever a straight line is printed (for example an infill line) instead of the motors moving in one swift motion, I can see (and better yet, hear) them moving in a different speed. Specifically, it looks like the motors slow down midway and start again.

How can I address those issues?

First, Ultimaker Cura estimated printing times are not necessarily accurate for non Ultimaker printers. For Ultimaker printers this is perfectly tuned, Cura estimates the printing times from experience for the UM3E correctly. Please look into question "How to determine real printing speed (tarantula/cura)?" which is relevant to this question and has an interesting accepted answer.

Second, changing the MAX accelerations will not work, you should increase the default acceleration:

From the TEVO Tarantula Marlin fork you read from the Configuration.h file:

/**
 * Default Acceleration (change/s) change = mm/s
 * Override with M204
 *
 *   M204 P    Acceleration
 *   M204 R    Retract Acceleration
 *   M204 T    Travel Acceleration
 */
#define DEFAULT_ACCELERATION          1000    // X, Y, Z and E acceleration for printing moves
#define DEFAULT_RETRACT_ACCELERATION  2000    // E acceleration for retracts
#define DEFAULT_TRAVEL_ACCELERATION   3000    // X, Y, Z acceleration for travel (non printing) moves

From the main Marlin source you will find:

/**
 * Default Acceleration (change/s) change = mm/s
 * Override with M204
 *
 *   M204 P    Acceleration
 *   M204 R    Retract Acceleration
 *   M204 T    Travel Acceleration
 */
#define DEFAULT_ACCELERATION          3000    // X, Y, Z and E acceleration for printing moves
#define DEFAULT_RETRACT_ACCELERATION  3000    // E acceleration for retracts
#define DEFAULT_TRAVEL_ACCELERATION   3000    // X, Y, Z acceleration for travel (non printing) moves

The TEVO Tarantula sources have lower default acceleration values, you could try to increase those.


Failing y-axis home with loud rattling I have an Anet A8 and I currently try to improve the y-axis (with a tensioner and a frame to support the structure). Now after I dis- and reassembled the y-axis, I get a loud rattling noise when homing the y-axis (and also when moving it stepwise from within the firmware). After the rattling goes on for a second or two, the printer halts and asks to reset. During the rattling, the print bed moves much slower. It appears to only rattle at the end of the axis, close to the endstop, however the point at which it starts to rattle appears random.

I tried a tighter and looser belt and aligning the frame. When moving the bed manually, it does require some force, but it does not appear to be tighter at the back side of the axis. Also nothing seems to block the path of movement.

I noticed that with a tighter belt the rattling starts only closer to the end stop, however it appears like I have to overtighten it to work properly. I got it to hit the end stop this way without halting, however it still produced the rattling sound. Also the y-stepper motor made a high pitched humming noise after this operation.

What else could I check or do about it?

This is a video showing the print bed with the rattling sound:
https://www.youtube.com/watch?v=H0Xhz2GtUYQ

View from below:
https://youtu.be/oTEuZUWD0ZM

This is the motor mount:

And this is the tensioner with the support frame:

From your video, it sounds to me as though the stepper motor is fighting against the bed movement. That would indicate to me the bed rails on the X-axis are not square to the bed movement, which would cause binding of the linear bearings on the bed.

To see if this is the issue, loosen the threaded rods in all six places (three placed times two rods). Loosen the belt tensioner so it is not causing any issues. Then see how the bed moves. If the bed is freed up, tighten the nuts on the threaded rods two at a time on the same plane (each plate of the frame). At each tightening, ensure the bed continues to move freely. Measure the distance as accurately as possible to ensure the frame continues to stay square and are parallel to each other. Once you have tightened all of the nuts on the threaded rod, then re-tighten the belt tensioner.

If none of this solves it, it could also be an issue with your linear bearings. If your Anet A8 is a Chinesium clone, the bearings are not what I'd call "top notch". I replaced mine with Igus Drylin bearings and have not regretted the $10 investment. There are other printed options you could go with as well, which you can find on thingiverse.com.


Small part bed adhesion I am trying to print a model that has (at the start of the print) several small parts attached to the bed. Some of these parts have bed contact 2.5mm x 20mm.

After a few layers, if there are any imperfections in the previous layer, the hotend is bumping the imperfection and knocking the part loose.

I am using a genuine Prusa i3 Mk2s with Filaform PLA. I am slicing with PrusaControl and using the "Generic PLA" settings, which is giving me 215/210 degree hot end (first/other layers), and 55 degree bed. I have the fan enabled. The print bed is clean and dust free

How can I improve bed adhesion for these small parts, ideally without adding brims etc?

Thanks

One technique is to add your own custom brims to the model. A couple of "Mickey Mouse ears", attached to each end of the piece, may be enough to keep it in place (and will also be easy to remove).


What are the "magic numbers" on a Monoprice Select Mini? What are the "magic numbers" people refer to regarding print resolution on the Monoprice Select Mini?

The "magic numbers" are optimal values that work particularly well for the layer height.  Michael O'Brien derived these numbers by reverse engineering the mechanics of the Z-axis stepper motor.

Using these values as your layer height will generally improve your print quality over using round layer heights such as 0.15, 0.2, or 0.25 by eliminating quantization errors.

To see an example of this, print a copy of 3DBenchy at 0.15 and 0.175.  On the 0.15, you will see some wavy patterns on the curved bow portion compared to the 0.175.  This is the result of inexact rounding.

Layer Height (mm)
0.04375 (results may vary)*
0.0875
0.13125
0.175
0.21875
0.2625
0.30625


Z motors work synchronously ToyRep I have a problem with Z direction. As you know it has two motors. And my problem is that one sometimes goes to the different direction (so basically one is screwing and another one unscrewing). It is like random, sometimes it is ok, sometimes this one goes to the different direction. Could you help me, please? Wiring is like in building tutorial. The tutorial is here http://reprap.org/wiki/ToyREP_Build_Manual . I am using Marlin and Pronterface. Code I took here http://reprap.org/wiki/ToyREP_User_Manual

The problem was in the wiring of the motor. According to different sources it says to check wiring, everything seemed ok, but I've found one wire was damaged.


Would appreciate advice on unclogging hot end [Makerbot Replicator v2] My Makerbot Replicactor V2 constantly jams. Usually when I go to use it after it's been off for a few hours the filament has jammed and I have to take off the front fan to remove the filament. Today, after going through the usual rigmarole of having to take the front fan and fan guard off, remove the filament, cut it and then load it back in I found that there was another problem.

It appears something is jammed inside the hot end itself. When I loaded the filament back into the machine, it took it but nothing came out of the nozzle, instead it all pooled up around the aluminium mounting block where the filament feeds through.

Here's a couple more pictures, the last one is basically what happens to me on a regular basis: http://imgur.com/a/2jvnP

How should I go about fixing this? I've already cleaned the extruder nozzle, but unsure as how best to proceed with this. I would prefer to get this fixed fairly soon as I need to 3d print files for a uni assessment piece.

For molten filament to jam at the inlet to the thermal barrier tube like shown here, there must be something wrong with the cooling in your setup. The cold zone needs to be cool for the extruder to work right. It looks like the cold zone is not staying below the glass point of the plastic, so the filament softens and mashes into a jam.

Here are some common causes of jamming in Replicator 2 extruders:

Printer's environment is too hot. If it's in a hot garage, move it indoors. If you have it inside an enclosure or cabinet, open it up to let it breathe. All-metal extruders with PLA are very sensitive to ambient temp.
Not having good contact between the heatsink and the cooling bar. Normally, just bolting them together is fine, but a small amount of of thermal grease (like Arctic Silver) smeared over the contact surface can help too.
Not having the fan pointed the right way. You want the fan to blow ONTO the heatsink: this provides more turbulent flow and better cooling. This means you should not see the fan sticker when everything is assembled.
Fan dying and and spinning too slow. A new fan can be a good idea. (24v fans only!) Or you can try gently peeling off the fan sticker and adding a single drop of light oil (like 3-in-one) to the bearing, then re-attaching the sticker.
Using non-stock thermal barrier tubes that do not have the correct internal geometry. Lots of people sell bad tubes that don't have the "secret sauce" (internal diameter step). The four good vendors I'm aware of for this part are Makerbot, Carl Raffle, Micro Swiss, and Performance 3D.
"Floating" the thermal barrier threads by tightening jam nuts on both top and bottom of the cooling bar. All-metal extruder designs require good contact pressure between the thermal barrier tube threads and the cooling bar, to ensure maximum heat transfer. The best approach is to put one jam nut below the bar to forcibly push the thermal barrier tube threads into the cooling bar, and no nut on top. (Using just one nut on top is better than two nuts, but worse than one nut below.)

It's also possible that there is some material partially blocking the nozzle, which is contributing to molten plastic backup up and jamming.

What I would recommend right now is removing both the nozzle and thermal barrier tube from the printer, and either replacing them or fully cleaning them out. There are multiple options. You can preheat the hot end with the cooling bar in a vise or on a metal surface with no fans attached, to heat up the plastic in the thermal barrier tube and allow you to push the blockage through with a small allen key. Then do something to REALLY clean it out, like nylon cold-pulls, or cooking the parts in a blue flame such as a torch or gas stove. Then check for internal debris with something like a toothpick.

Once you can see through the nozzle orifice and there's no junk inside anything, reassemble everything properly and try again.


Thermal runaway when power on I get the error "Thermal runaway on E1. Reset printer." today on my Tevo Tarantula when powering on the printer. The display shows the error and the speaker beeps loudly everytime I power on the printer or reset it.
I use the firmware
https://github.com/JimBrown/MarlinTarantula, because I can switch E0 heat nozzle to E1 wires, without soldering; PID's for nozzle were configured, and works fine before I replaced the power supply.
Recently my power supply was broken, and today I installed new power supply, clean nozzle, several times start bed leveling, and on fourth time of homing error appeared.
Power supply voltage tested with a multimeter and the voltage of power supply is 12.06V.
Note: several times printer started bed leveling.

Issue is solved!
Root cause was a broken thermistor circuit at board and broken thermistor.
I disconnected all wires and power, measured board and thermistors resistance: E0 = ~120 Ω, (E1 and Bed) = ~700 Ω. I swapped pins for TEMP_0_PIN and TEMP_1_PIN within Marlin for Tevo firmware at pins_RAMPS.h as described in answer on question Change hotend thermistor input in Marlin, changed thermistor and everything prints fine.


What's the best printing technique to produce splints (a device to immobilize a body part)? One of the most interesting field in which the 3D Printing is being considered is the fabrication of biocompatible devices and parts for a medical applications.
For that I am interesting in knowing what  technique are used for the fabrication of splints or cast used for the immobilization of human body part, also which material is compatible with this technique?

For anything where there is an open or bandaged wound, you should NOT use 3D printing, and should use sterilized medical equipment to prevent infection and heavy metals infiltrating the bloodstream.

SLA/SLS 3D printing may be the best option for replicating the complex structure of the splint you have pictured above, as FDM printers have difficulty reproducing those structures.

However, FDM printing CAN reproduce it, and generally FDM printers have access to a wider variety of materials of which models can be printed with, so they may be the best option overall.

For something to immobilize a body part that has been broken, you may want to use a stiff material such as ABS or Carbon Fibre, However PLA may work still in these cases.

As for something to support a body part, Flexible or Semi-Flexible materials may be desired, such as Ninjaflex (TPU), Nylon.

As a disclaimer:
I am not a medical professional, This is not medical advice, please consult a properly licenced medical professional first before using 3D printing to solve a medical ailment.


3DTouch sensor fails after probe deployment and triggering I'm using a 3DTouch sensor (from Geeetech) on a self-build CoreXY printer (HyperCube Evolution). The sensor worked perfectly until not being used for a month.

The symptoms are that it fails to deploy the pin on the second probe deployment so basically it fails after the first probe is triggered by the raised platform.

On homing Z (not only for G28 or "home all" but also for G28 Z to "home Z axis") and goes into some sort of a fail-safe mode where the LED keeps flashing. Sometimes it does deploy and finishes the homing instructions and continues to the G29 instruction (note that double probing #define MULTIPLE_PROBING 2 is enabled in the Marlin 1.1.8 firmware) and show similar symptoms as described above for the G28 command. Note that failing to deploy the probe sometimes leads to a rising build platform that does not stop, other times some fail safe kicks in and the bed lowers and aborts the print.

To lift the fail-safe condition, a reset of the sensor is required (this can be done through the LCD or by command M280 P0 S160).

What I have done to solve the problem is to isolate the wires from the 3D touch sensor as I was under the impression that this was related to electromagnetic interference (therefore when the sensor is probing, the bed and heater cartridge are not powered momentarily), but that did not help.

Any suggestions and solutions to get it working again are appreciated.

After troubleshooting I have managed to fix the sensor problems.

(Please take note of the update at the end of the answer below as the problem started again shortly after the so-called fix...)

Digging into several posts I found this post that hints to a solution:

After readjusting, the sensor worked and I was able to produce a print, but the next day it failed again... What I found is that the bed and extruder are NOT shut off while probing although that should have been enabled in Marlin 1.1.8. I assumed that this de-powering is only during the actual probe lowering, so very short. So I figured that this might be an EMI problem. In a last resort I updated to Marlin 1.1.9 which has the functionality to shut the power off for heater and bed and everything now seems to work perfectly. I now see that the de-powering is a bit longer and in fact the extruder temperature drops slightly, this has never been seen with the previous firmware version.

Update:
Not long after the "update"/"fix" the problem manifested itself again... Further troubleshooting revealed that it was a bad connection of the connectors of the sensor that got temporarily "fixed" as the cables had been fiddled with during the firmware update.


Enclosed volumes with stereolithography 3D printers I have no prior experience with stereolithography 3D printers.
For a research application I am considering the SLA approach but I have a more basic question.
I would like to use SLA in order to print porous structures from ice cores. Using X ray tomography I have raw data of very high resolution 3D images of the cores. The idea is to use this information in order to print representations of these cores to perform a diffusion study.
Some of these cores come from depths below 50 m thus the snow has compacted in such way that volumes of air are occluded.
My question is if it is possible for SLA printers to print in such enclosed volumes. Imagine for example a solid cube with a gas bubble in the middle. Is that possible for an SLA printer and if yes will the bubble contain air or the liquid resin of the printer?

The bubble will contain air, but this will vary by printer. Most resin printers lift the printed part out of the bath slightly after each layer. Some printers, however, don't lift the piece completely out of the bath. This will cause the resin to become entrapped. Once those entrapped pockets of resin are exposed to light, they will also undergo photopolymerization. It may be possible however to program those printers to lift the part completely out of the resin for each layer.


How close should the nozzle be to the substrate? I have my nozzle close to the substrate that I am printing on, so that a piece of paper can just about slide underneath it freely, without catching.

Is this the right way to do it?

This photo isn't exact, but may help

Edit: Whoops! Forgot to include source. This is from the Wanhao User Manual/Build Guide. I can't quite find the webpage at the moment.


Knotted String as Replacement for Toothed Belt I'm at a location where I don't have easy access to toothed belts for my printer (a RepRap Wallace). While trying to look for some solution, I saw some talk of using fishing line as a belt, along with a log of admonitions of Don't.

However, as I have easy access to fishing line, but almost no access to a toothed belt, I was thinking of using multiple strands of fishing line with regularly spaced knots to simulate a toothed belt. However, Google didn't help much with either usage or possible Gotchas.

Is there any possible issues that I may face with this solution?

I’m going to recommend not using a fishing line with knots.  Probably the biggest problem you’ll have using the fishing line with knots is if the knots are not perfectly spaced,  movement along the X or Y axis is not going to be consistent. This could result in weird deformations in your print.

Depending on how you tie the knots they may not grip the teeth of the gears quite well enough to prevent slippage.

Both of these issues will mean that you will not get very good quality prints assuming the print doesn’t outright fail.

You would be better off waiting to get the correct belt then attempting to use fishing line.


Z Steppers just hum, vibrate and don't move at all As I said in the title there is some issue with my z axis steppers. They will make a humming sound and vibrate a little but won't actually spin. I'm fairly sure this is an issue with the firmware (but I might be totally wrong) since they turn when the wires are switched with the ones for the Y axis and swapping the driver board for a spare had no impact on them. Any help would be appreciated. I am using RAMPs 1.4 and marlin firmware.

Try connecting Y-motor to your Z ports. If Y-motor will behave like Z-motors, then there's problem with your Z ports, be it hardware or software. I'm not a RAMPS user, but have heard that there is voltage regulator for every motor port. Sounds like your motors may be underpowered.


Where to get smartphone shapes from, to create a case all by myself? I'm looking for some kind of collection of shapes of smartphones, so I can design a case that will fit certain models perfectly.
STL, or any other kind of 3d file.

Lots of companies produce cases for smartphones, do they have the shapes straight from the manufacturer? Do they reverse engineer every model?

I'm asking here because I couldn't find a stack exchange site that would be a better fit for this kind of question.

I'm not aware of a source for STL files or engineering diagrams, but you can do the measurements yourself fairly easily. I did this to make credit-card-slot cases for my Moto G4 and the fit turned out very good.

Start with a digital caliper and measure the maximum length, width, and depth of the phone, ignoring rounded corners. Next, trace the phone on a piece of paper and use a straightedge to extend the flat parts of the sides to a bounding rectangle, and measure how far from the corner the curved part extends in each direction before meeting the flat part. Finally, if the sides of the phone are rounded too, estimate how thick the phone would be if you extended the curved edge to a full semicircle.

At this point, you can approximate the shape of the phone as the convex hull of 4 spheres scaled appropriately in the x, y, and z directions, if the sides are curved, or the convex hull of 4 cylinders scaled in just the x and y directions, if the sides are flat. In the former (spheres) case, the approximation will be thicker than the phone, and you have to slice off the top and bottom to match the arc segment that's actually present on the sides of the phone. There are ways to do this exactly but I found it doesn't need to be precise and you can just eyeball it.

In order to make a usable case, you'll also need to measure the distances of camera lens, buttons you want to expose, etc. from reference points. This is straightforward with a caliper.

Here's my result, following this procedure:


Grease for PLA sprocket I am attempting to construct model tank tracks with accompanying wheels and sprockets. All parts will be printed in PLA. The tracks will be driven by electric motors.

What would be a suitable grease for this project to minimize friction without damaging the plastics.

I use cosmetic vaseline - petroleum jelly. Usually it is white to transparent and odorless. It's cheap and available in all drugstores and cosmetics stores.

As suggested by Tom van der Zanden I'm adding additional info about interactions of vaseline and plastics.
I've found many web sites which claim that vaseline can damage plastics but none of them really proved that statement. There is nothing about it neither on producers sites nor wikipedia or any other believable sources I've found. So according to it and my practice I'm pretty sure that vaseline won't damage popular plastics (including common filaments).

The only information I've found is that vaseline can damage natural rubber but I cannot confirm that on my own.

Of course it might not be true for some materials so be careful and check the interactions first on invisible side or on refuses.


How to slice rounded corners in thin walls with Cura I'm trying to print a small box with 1 mm thick walls.
The box has rounded corners.
Cura slices the rounded corners with straight internal lines instead of rounded lines:

The reason for these straight lines is that Cura is using infill to fill the walls, because it determines that there's not enough space in a 1 mm wall for three 0.4 mm passes.

This causes the walls to have small imperfections in the final print.
I was able to solve this by increasing the model wall thickness to 1.2 mm (to allow for 3 0.4 mm lines), but even then it wasn't doing it as a single continuous line, but instead breaking it into short lines at the corner:

Is there a way to avoid this issue without increasing the wall thickness, and have 3 continuous lines?

Fixing the model
My solution to this problem is, to increase the thickness in such corners by 0.05 mm by pushing the inner wall's radius towards its center. This allows some extra space as a round corner is not actually saved round but as a pattern of straight wall facets, and those can get squished together just enough to make the slicer believe the wall is too thin for a proper wall. As you see, the new corner rounding starts a little bit before the outer one - in this exaggerated model I use 1 millimeter extra - violet are the normal corners 10 mm apart, black is the new inner corner, the light blue area between them is the extra bulk that will massively reduce the problem.

origin of the error
As an example, let's put the number of facets to 1 and 2 when we form them from the rounded corner. The more facets there are, the closer the distance between the walls will get to the full wall thickness, but it will always stay a fraction below.

How does the model fix work?
Well, we shifted the inner corner away, and with 2 facets we get a fidelity to the intended wall thickness of 96.21 % instead of 92.39 % for the non-modified wall - and with even more facets the fidelity gets better more quickly. However, there is a point where your gaps will start to diverge in the corner, so just using a tiny alteration is advisable - in our model case, 9 facets (a 10°) is the point where the inner wall will start to become more distant to the outer wall. That's why I only need such a tiny bit of extra space if I export the model with the most fidelity in the .stl generation my CAD has available.

making it work in the slicer
Another thing I do when I can't alter the model is, knowing that I usually slice width a line width of 0.45 mm. In case such a corner appears, I can then alter my line width in the slicer down to 0.44[5] mm (or more) and get pretty much the same result at the cost of possibly needing to account for errors in other areas.


Octoprint: Reducing Camera Lag Time? I've got a webcam (Logitech ProductID_2470, according to my Mac) attached to my Octopi running on a RPi 3B.

I am able to get the video on the Octoprint display page, but the lag is huge: over 50 seconds.

How can I diagnose the problem and reduce this lag time?

This was due to a slow Wifi connection.  It was fast enough for the low bandwidth of printer commands and status reports, but the video feed was overwhelming the connection.

Adding a Wifi repeater increased the bandwidth and fixed the issue.


Can't connect printer to repetier-server on RPI3 I'm struggling to connect a K8200 printer to a rpi3 running repetier-server 0.86.2 armhf.

Everything works fine on a PC with the 0.86.2 windows version, but on the Rpi i'm stuck on the second step of the printer setup :

I define my firmware, Marlin, my baudRate at 250000, then I tried every port that seems involved (/dev/serial/by-id/usb-FTDI_FT231X_USB_UART_DA00DDXD-if00-port0, /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0, /dev/tty/USB0, /dev/tty/AMA0, )
but whatever I may try, I'm stuck on "En attente de connexion", that forbids me to go to step 3, as to see my printer connected.

I tried to use the reset button on the printer board, as unplugging-plugging the USB, with no more luck.
/var/lib/Repetier-Server/logs/server.log don't shown any error.

Note : CartesianVirtual port still works fine...

What else can I do ? Is there other relevant logs anywhere ?

I'm unsure if this question should have been adressed to rpi, 3d printing or linux community, I'm sorry if I offend anyone :)

Thanks to the repetier team on git hub, we found that the problem came from a permission issue on /dev/ttyUSB0, as the user repetierserver couldn't access it.

Other people reported that these commands solves the problem:
sudo adduser repetierserver dialout
sudo adduser repetierserver tty
but in my case it seems I need to run :
sudo chmod 777 /dev/ttyUSB0
in order to solve this.


Resume print but no extrusion Had a print stop about 20 % through and read through some old questions (3+ years) so I'm posting again.  Apologies if it's in here some where...
Found the layer to restart, deleted everything from layer 0 to layer 77 (in my case)
The set the E value to the value in layer 76, but still no extrusion.  Using Ultimaker Cura.  I can dump this but really want to know for future issues with larger prints...
EDITED AFTER ANOTHER ATTEMPT:  (Same effect)
Sorry, I'm at a loss
also made change to G92 code subtracting 5
Here is the start sequence:
;FLAVOR:Marlin
;TIME:41644
;Filament used: 21.0489m
;Layer height: 0.2
;MINX:29.678
;MINY:92.227
;MINZ:0.2
;MAXX:198.806
;MAXY:194.503
;MAXZ:65.6
;Generated with Cura_SteamEngine 4.6.1
M140 S50
M105
M190 S50
M104 S200
M105
M109 S200
M82 ;absolute extrusion mode
; Ender 3 Custom Start G-code
G92 E0 ; Reset Extruder
G28 ; Home all axes
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position
G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line
G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little
G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line
G92 E0 ; Reset Extruder
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish
G92 E0
G92 E0
G1 F2700 E-5
;LAYER_COUNT:328
G0 Z15.6

G92 E1744.14148
;was G92E1749.14148

;TIME_ELAPSED:19808.769206
;LAYER:77
;TYPE:SUPPORT
G1 F2700 E1754.14148
G1 F1500 X73.481 Y110.942 E1754.14217
G1 X74.078 Y110.968 E1754.16204
G1 X74.527 Y110.792 E1754.17808
G1 X75.311 Y110.007 E1754.21498

The line you added:

G1 E1749.14148

asks the printer to extrude 1.7 meters of filament. The firmware likely has a feature to ignore such excessive requests as bogus. Then, subsequent extrusion amounts are also huge (1.7m+) relative  to the current extruder position (0) and also get ignored. What you meant to do was:

G92 E1749.14148

which means "set the logical extruder position for its current physical position to 1749.14148 mm" so that subsequent extruder positioning commands are interpreted relative to that initial position.


How to make moving parts not stick together? I am new to the 3D printing world and I would appreciate if someone can give me advice on how to 3D print moving parts without them sticking together. I recently 3D printed the predator pliers from Thingiverse and it came out very nice except for the fact that the parts where stuck together and I could not move any of the pieces. I had to use an Exacto knife to loosen the parts and in doing so my predator pliers broke and I was very sad.

The printer and the settings that I use are:

PowerSpec WanHao Duplicator I3 PLUS 3D Printer
Ultimaker Cura 3.4.1
Black PLA Plastic 1.75 mm
0.4 mm nozzle
60 °C Bed Temp
200 °C Extruder Temp
20 fill  (usually-sometimes more)
Layer height 0.15

UPDATE:
I printed a PIP from thingiverse and it worked out    perfectly. All the parts move.

If parts stick together after printing, the positioning or extrusion is not working optimally.

This can be related to various issues:

Positioning of the head is not correct; this could be related to incorrect belt tension, incorrect steps per mm, streched belts.
The extrusion process is not working optimal; this could be related to over-extruding (incorrect steps per mm for the extruder, incorrect multiplier in the slicer, filament too hot) or the first layer height is incorrect (too low, so the lines spread out and tough each other). Extruder calibration is explained in more detail in this answer.

A very good start to verify what exactly your tolerance problem is is to print this tolerance test. Basically, these are diabolic shaped objects in a slightly larger outer shape object. Please slice this STL file with your favorite slicer to obtain the G-code for your printer. When the print is ready, you use a screwdriver to turn the diabolic shaped objects from large to small tolerance, the last one that does not turn is the maximum tolerance of your printer. So when printing in place hinges, you should use tolerance values higher than the one that did not turn.


PID tuning 50 W cartridge in Marlin Recently I decided to upgrade my Geeetech A10 (GT2560 v3.0 board) with E3D Chimera, Marlin 2.0.3 and more powerful 50 W heater cartridge. I wired everything up and tried to PID tune the hot end, but I got a problem.

When the tuning ends and I use the values with M301, the values are too agressive and the hot end initially overshoots more than 15 °C. After that the temperature is rock steady.

The tuned values are P=9.4 I=0.47 and D=46.4.

I tried to change the values according the wikipedia table to no overshoot (P=3,13 I=0.47 and D=123.7), but it just made the temperature unstable.

I also tried to tune the values manually but with no succes. I even tried to use zeros for all three gains but it just oscilated ±10 °C and still overshot.

My guess is that the cartridge is too powerful for the Marlin PID tuning.

Is there a setting in the firmware where I can set the PWM value for the PID tuning? To slow the heating down? I tried to use M301 E1 P0.25 S200 C10 but it seems that it didnt use the P parameter.

Or is there a way to manually tune the values without the printer? I've got an Arduin Uno and RPi Zero availible. Or do I have to buy another less powerful cartridge?

Besides the P, I and D values, you may also have to tune PID_FUNCTIONAL_RANGE and PID_INTEGRAL_DRIVE_MAX.

Basically, the functional range disables PID control when more than the set number of degrees away from the target temperature and just puts the heater to zero/maximum power. The integral drive max parameter limits the value of the integral term of the PID controller.

The RepRap wiki notes: (note this wiki is dated! some options might not be available)

  In Marlin, the parameters that control and limit the PID controller can have more significant effects than the popular PID parameters. For example, PID_MAX and PID_FUNCTIONAL_RANGE, and PID_INTEGRAL_DRIVE_MAX can each have dramatic, unexpected effects on PID behavior. For instance, a too-large PID_MAX on a high-power heater can make autotuning impossible; a too-small PID_FUNCTIONAL_RANGE can cause odd reset behavior; a too large PID_FUNCTIONAL_RANGE can guarantee overshoot; and a too-small PID_INTEGRAL_DRIVE_MAX can cause droop.

My hunch is that the functional range may be too small; the PID doesn't kick in until close to the desired temperature at which point you will already have overshot the target (due to the high power heater and delay in the measurements). Once you've overshot the target temperature the integral term starts growing (negative) which causes the massive undershoot.


3D printing for storage card shell? I know nothing about 3D printing and I was wondering if it is a good candidate for what I want to make.

I want to make a custom game cartridge which looks like this:

Basically it's like a SD card in a custom shell. Now I can produce the inside as a thin PCB (0.6mm-1mm). But I was wondering what the best (and cheapest) way to prototype (and maybe make a small run production) the outer shell would be. The entire cart is about 2mm thick, so each half of the shell would be at most ~0.6mm thick.

Is this something I can do with a typical 3D printer? How would I "attach" the two halves together?

With the experience I have with my 3d printer you can make (almost) everything you can draw with it.

0.6mm parts can be 3d printed but will not be very strong though.

For joining the 2 halves when they are so thin, I think the best solution is to glue them together. With the things I make for myself I mostly use small screws or small nuts and bolts but with 0.6mm parts I guess this wil not be possible.


Filament residue sticks to bed and wont come off There is filament residue on my glass bed that is so thin that it wont come off. I have had residue buildup for over a year now and none of it has come off. This residue appears with both the PETG and the PLA filament I have. Is there anyway to remove this residue?

I would try a single edge razor blade at a low angle used as a scraper.  If you can't feel the blade catching in the residue,  it probably isn't an issue.
If you must get rid of it you don't have good choices of solvents.  Maybe you can burn it off by placing the class in an oven through a clean cycle.  With luck the hearing and cooling won't break the glass.
If you can't scrape it off with a sharp razor blade,  I would just let it be.


Connecting (Anet A8) 2004 display to MKS GEN L Was anyone able to connect the default Anet A8 (2004) display to a MKS GEN L?

I've tried direct connection with re-wiring, and see white squares there, but I'm only able to see white squares on the screen as on screenshot:

Wiring:

The code that is currently used for the display :

Config.h uses #define ZONESTAR_LCD.
Also #define MOTHERBOARD BOARD_MKS_GEN_L
Config_adv.h uses #define LCD_PROGRESS_BAR
Pins were left as they were in config file.

Also I've tried replacing them with this numbering (which comes from MKS spec):

35  16  25  29  5V
37  17  23  27  GND

I've got the Anet A8 display working on a RAMPS 1.6 (which basically works exactly the same as a RAMPS 1.4 board). Note that at first connection I got exactly the same display when I connected the LCD to the EXP1 and EXP 2 headers using the "smart adapter".

To get the Anet A8 display working on a MKS GEN L (which is basically a RAMPS board as the pin layout of the RAMPS configuration are used in the firmware of the MKS GEN L) you need to forget about the EXP1 and EXP2 headers and the "smart adapter" for the Anet A8 display. Instead you need to connect the Anet A8 display to the AUX2 header. The only thing you would have to do (from the hardware side) is to switch the cables that are connected to the pin 1 and pin 2. I used Dupont connectors and cables. Pin 1 on AUX2 is VCC and pin 2 on AUX2 is GND, this is reversed on the Anet A8 display.

From the software side you need to set the following constants:

#define ULTRA_LCD   // Character based

and

#define ZONESTAR_LCD

Please note that in the photo you still see the "smart adapter" with flat ribbon cables, but they are not connected to a screen, the reason for them being there is I also tested the full graphic discount controller in a previous session. The Anet A8 display is connected to the flat ribbon cable on AUX2 just above the top-left most stepper driver.

UPDATE:
At the time of writing and the use of an older Marlin version, this required to set #define ULTRA_LCD. In Marlin 1.1.9 you do not need to set #define ULTRA_LCD explicitly, this is now intrinsically set by #define ZONESTAR_LCD. To elaborate on this, the #define ZONESTAR_LCD sets the constant #define ULTIPANEL which sets constant #define ULTRA_LCD in Conditionals_LCD.h.


Creality CR-10 problems with extrusion while printing I have an extrusion problem with my creality CR 10 3D printer while printing.
I am using a standard 0.4 mm nozzle with a 1.75 mm diameter PLA and I use Cura as my slicer.

This printer worked perfectly fine and I stopped using it a few months ago right after the problem started.

When I try printing a .gcode file, the first layer is very thin but visible (it seems like the glass bed is engraved). However, after the first layer is complete, the extruder stops working properly. It moves forward then jumps backwards so it looks like the filament isn’t moving (I can also see the extruder’s marks on the filament). Also, the axis seem to move fine in all directions as I’m able to see a clear first layer.

However, when I go into the “prepare” menu of my printer and move the extruder, it works great as the filament flow is very smooth.

Hence, the problem is only visible while printing. I don’t think there’s a problem with the .gcode files as I printed them perfectly fine beforehand.

Clearly you're having an extrusion problem. Extrusion problems usually come either from a clogged nozzle (as @Adam S. said) or from the extruder it self. To determine where the problem is located I would first do a flow rate test using this. When doing this test you can determine if the extruder is grinding the filament or if it's not grabbing it too much. After the calibration of the flowrate you can be certain that the printer is (by .gcode) pushing the correct amount of filament. If the problem persist I would first do an unclogging (since it's cheaper than the following option) using something like this.

If both previous options do not solve the problem, I would highly recommend you to by a mk-8 like metal extruder. After a while, the plastic one that comes with the printer loses force and you'll lose steps. Personally, I had a similar problem where the first layer was printed in a droplet pattern and was solved by changing the extruder to a metal one.

Try these options and if the problem persist you could upload some pictures of the first layer or a video. Other possibilities I think of are that the filament is having trouble passing through the Bowden tube or maybe you'll have to reasemble the hotend.


What causes gaps in small region fills and how to prevent them? I saw this cool Nuka-Cola bottle opener. I made it:

As you can see, nasty gaps have appeared in the text. What could've caused them? I am sure I set the filament diameter correctly. So why did the Slic3er not generate enough paths here to fill the letters properly?

I used Slic3er and Repetier Host. My printer is Prusa i3 MK2 1.75mm. The material I used was PLA.

I had a similar issue as described in this question. Curiously, yours is almost opposite as my raised lettering was OK, but the surrounding areas were poorly filled.

I came to the conclusion that Slic3r was simply not able to properly handle the geometry in my part. I tried with Cura and had great results!


Bed design for magnetic easy release when printing PLA I print on a glass bed covered with BuildTak. Prints stick well, release is difficult. They sell a mod, self adhesive magnetic sheet that holds a steel plate which in turn you put the BuildTak on making it easier to get your prints off by twisting the flexible steel as opposed to chiseling your print off a glass plate while attempting to not peel chunks of the expensive Buildtak off.

Magnetic sheets have different strengths proportional to thickness in milimeters. I can get 0.03 mm locally which provides 85 lbs pull per sqft. and was wondering if this might work. It's hard to find the stronger pulls, 0.045 mm and 0.06 mm which can pull 115 and 145 lbs respectively.

I'd prefer cut my own new bed sandwich rather than pay 90 bucks for one.

Has anyone made a bed using adhesive magnetic sheet>
What thickness magnetic sheet has worked for you?
What thickness steel are you using?

Assume it has to flex easily to twist the part of and also flexible enough for the magnet to pull it flat.

With respect to the comment by tbm0115:

  I don't think you need that much magnetic pull for this application. Adhering basic coin magnets to a material in a large array should secure the material appropriately for a desktop printer.

I see where you are going with coin magnets. Have you tried this? In the original Makerbot Cupcake this is how it was done though with larger build surfaces you get warp on metal plates. Most metal sheet comes from the plant on a roll. Though your metal looks nice and flat, temperature changes will cause it to warp and as you know with SLA printers, a changing bed can cause a failure. This happened on the original Makerbot replicator 1st release followed by using a machined plate as a replacement.

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.


OpenSCAD weirdness with imported STL I've tried to remix this model: https://www.thingiverse.com/thing:90933 (Bauhaus chess set) by scaling it down and inserting little magnet holes into the pieces' underside. My SCAD file looks as follows:

difference() {

    scale([0.5,0.5,0.5]) import("Bauhaus2Set.stl");

    translate([ 6, 11  ,0]) cylinder(h=20.5,r=2.5,center=true,$fn=20); // WTH?

    // King/Queen
    translate([ 6, 11  ,0]) cylinder(h=3.5,r=2.5,center=true,$fn=20);
    translate([-6, 11  ,0]) cylinder(h=3.5,r=2.5,center=true,$fn=20);

    // Rooks
    translate([ 6,-11.5,0]) cylinder(h=3.5,r=2.5,center=true,$fn=20);
    translate([-6,-11.5,0]) cylinder(h=3.5,r=2.5,center=true,$fn=20);

[...]

Note the third line with "WTH?" - I've done quite some trial-and-error, and if I remove that line, then I don't get any subtracted holes anymore when I render the whole thing (F6). In preview (F5), the holes are always present, but in the final render, I need to include the larger subtracted cylinder or it won't work.

The STL file seems to be fine in itself, what's going on here?

I see you've accepted cmm's answer, but I'd still like to take a stab at the mechanism of the failure based on your comment on it:

  Excellent explanation, thanks. The "WTH" cylinder is centered on the queen piece, and that has a sphere with lots of faces on top. So it looks like the "kink" is inside the queen where the sphere and the base cube overlap, and by accident, my trial-and-error removing of cylinders also removed just the right spot.

My guess is that if you look at the triangle set of the STL file, you'll find the interior of the queen contains the parts of the cube that are inside the sphere and the parts of the sphere that are inside the cube; they may not even be clipped to meet each other properly where they cross each other's surfaces. Sadly there are lots of tools producing invalid STL files like this. The longer cylinder is probaly sufficient to overlap with where the cube and sphere cross, forcing OpenSCAD to break down the model in that region and recompute the mesh where the components overlap. Without that recomputation, the differences likely end up interacting with just the "sphere part" of the STL mesh.

This explanation also seems to be consistent with the description of the thing on thingiverse:

  I much preferred the style of Bauhaus set that TeamTeaUSA's designed, but there was a lot of fiddling with the queen and the knight wouldn't print without supports. So I nestled the queen's sphere further into the body so it would print standing up, added supports for the knight and plated the whole thing.

where it looks like the creator took someone else's STL files and moved parts around to create an overlap, likely without proper tooling that could regenerate a valid mesh.


can the intel sense "xyzprinters 3dscanner" work on amd prossessors anyway? i ordred a xyzprinter 3d scanner today on ebay, bechause i through it would work with my quick new windows 10 pc setup. but when i tested the scanner compability i downloaded here now, it says that all settings on my pc is compatible, but exept from the prosessor i have, the amd ryzen 7, 8 core. it says that my computer is not compatible with the xyz scanner bechause i have not the intel 4 or newer intel prosessor, but instead of having intel prosessor, i have an amd ryzen 7, 8 core prosessor. will the xyz 3d scanner work anyway, even if i have not intel but as quick as an old intel 4thgen prosessor is, i have an new amd ryzen 7, 8 core?

(i have also 32gb ram memory and nvidia 1070 mini graphic card with 8gb ram in and windows home 10 64bit and 3 usb 3.0 ports on my pc. and a corsair motherboard).

Here are some ways a program might indicate incompatibility:

There is something in the code that is actually incompatible -- such
as some Intel-only DSP instructions.
They are using an Intel library or source code that is licensed only for
use on Intel processors.
They added a check to their code to be sure the processor was
powerful enough to handle the load, and they forgot to consider AMD
or other processors.


Printing screws - is the output usable? (M3 or M4) I just want to ask if anyone has successfully printed a screw (M3 or M4). Is the printed output usable as a screw? What printer is capable of printing screws? I am using an M3D printer - is there a configuration to successfully print a screw that is usable?

Can anyone share a picture of the best 3D printed screw?

well... it's hard to imagine printing M3 or even M4
I haven't try but I haven't because I'm pretty sure it's not possible (on my printer of course)

but some time ago I've tried M8 which is of course way from your needs
it was printed on 0.1mm layer height

it went ok into the nut without any problems but the strength is not very high I suppose

I know the quality is poor but even such bad photo shows issues


Extruder motor making a knocking sound, nozzle is not clogged I've been trying to print anything for the past few days. Every time I go to print something the printer stops pushing plastic out and usually the motor makes a knocking sound.

My original thought was that my E-steps were off (because they were) but I solved that and I still have a problem. Then I noticed that I was struggling with getting the PLA filament to feed into the nozzle. I assumed it was a clogged nozzle and possibly heat creep (because I was a dummy and used my old, bowden retraction settings on my new, direct extruder). I cleared out the clog and I'm able to feed plastic through after disengaging the idler arm. Though, I do struggle getting the filament into the nozzle. Maybe it's due to the Hemera's tight tolerances or due to a misalignment in the hot end, I'm not sure yet. Once I do get the plastic in, it quickly and easily pushes through and spits out of the nozzle so I think that my nozzle isn't clogged. I did do a cold pull the other day.

But I've noticed that my extruder is making a knocking sound, as if someone was gently rapping on my chamber door. I also see that the gears move one step back and forth. It looks to me that the motor is stuck or frozen. I'm pretty sure that it's not skipping steps. The sound happens at varying heights and not just the first layer. The first time I noticed it, it was printing the cabin of Benchy. Z > 1 mm when I finally decided to ask this question. The sound is kind of loud, but that's most likely the resonance in the machine than a symptom, stating it nonetheless.

My setup:

Printer: Creality CR-10S
Extruder: E3D Hemera
Nozzle temp: 205-220 °C
Retraction: Initially 5 mm at 40 mm/s, then 0.3 mm, then most recently none
Motor Vref: just north of 800 mA. (I've read somewhere that the Hemera motor wants 800 to 1000 mA)

I'm just not sure what could be wrong here. I feel like I checked all the steps and I'm just missing something.

A knocking or clicking sound does not imply you have a problem, it implies that you could have a problem; it can be the characteristic of the extruder.

My own designed 2.85 mm filament, 1:4 speed reducing belt driven extruders make clicking sounds while extruding (independent of the layer height), I have verified that no steps are lost and the printer extrudes exactly the requested amount of filament (2.85 mm filament requires a lot more pressure for the same nozzle size, the noise is coming from inside of the metal Bulldog housing, not the stepper adjacent, it is not stepper nor filament skipping noise).

A clicking sound in combination with gears losing position as you describe (or filament skipping back) does mean that the pressure in the nozzle is too big for the extruder to push it through. If the gears loose position, this means that the stepper is not powerful enough to push it through, this means that more current or a more powerful stepper is required (the latter option is due to the design of the extruder not possible). If the filament skips back while the gears are in place the tension/grip to the filament needs to be increased.

In troubleshooting this problem it is best to increase the current to the stepper close to the upper side of the specifications of the stepper and see if the knocking sounds disappear. This should not be a problem for such a priced and tested extruder system, i.e. considering the reputation and quality of E3D this extruder must work out of the box unless you have received damaged components.


Updating Marlin Firmware - Step by Step Guide Note: This question is meant as a wiki to include all steps that are needed to update your printer with a self configured Marlin firmware version. The answer is a wiki that is currently in development and can be seen (and edited) by all users.

I have a printer and need to update my Marlin firmware to get some stuff done to my liking, especially to make sure I have TRP, have power loss recovery and then do a PID-tune. I am also not sure if a bootloader is flashed. So what I need is a step-by-step guide to:

prepare my printer for flashing
configure my Marlin firmware
get my new Marlin firmware onto my printer

Step 0: extracting old settings & setting up

The first step is to get yourself a printing software that has a Console or Terminal like present in Repetier Host, Pronterface (as part of the Printrun software suite), OctoPrint or any other tool (e.g. serial connection with PuTTY also works) that allows to communicate with the printer to extract the settings we already have. Once we have the software installed and the printer connected, send M503 and copy the old settings into a file for later use.

Next, we need our development surroundings. Usually, you want to use Arduino IDE (but the PlatformIO plugin as part of Visual Studio Code can be used for both Arduino based microprocessors as 32-bit processors), but you need to know what kind of board the control board of your printer is derived from because some boards have native IDEs that work better for them.

Step 1: Choice of Firmware

By some metrics of early 2020, about 80 % of all shipped machines run Marlin in some fashionneed citation. The most prolific versions of Marlin at that point are often cited to be 1.1.9 and 2.x. Since anything before 1.1.9 is very much obsolete and needs an update anyway, we will look into 1.1.9 and 2.x only. Version 2.x was developed to include 32-bit microprocessors, but is compatible with 8-bit microprocessor printer boards. As the version jump indicates though, 2.x is pretty much an entire rewrite, so do your choice and jump to the correct next step.

Marlin 1.1.x

Typically, you start by grabbing a blank Marlin 1.1.9. The next step is to alter the static settings of the printer to match yours in Configuration.h - best use the settings from what we pulled earlier via M503 as a start. Alternatively, you can search for a configuration of your printer between known configuration files. You should at least need to adjust these:

For communications and filament diameter:

#define BAUDRATE 250000

// Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc.
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0

Choose your correct temperature tables, and make sure to turn on the one for the bed if you have one!

#define TEMP_SENSOR_0 1
[...]
#define TEMP_SENSOR_BED 0

Next come two blocks that set the 'this is ok' temperature area, for the hotends and bed respectively (only hotend shown here).

// Extruder temperature must be close to target for this long before M109 returns success
#define TEMP_RESIDENCY_TIME 10  // (seconds)
#define TEMP_HYSTERESIS 3       // (degC) range of +/- temperatures considered "close" to the target one
#define TEMP_WINDOW     1       // (degC) Window around target to start the residency timer x degC early.

The next slot is an important safety feature: Mintemp and Maxtemp. Unless you seriously, positively know your hotend can do more than 275 °C (which means you have an all-metal hotend), DON'T touch the Maxtemp, but you might set Mintemp to 0 °C if you like.

Next come PID-Tuning settings, you only need to work with those if you know what you are doing.

The next step is important also: make positively sure that these two lines are exactly as follows, no stray // in front to comment them out. This is TRP.

#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders
#define THERMAL_PROTECTION_BED     // Enable thermal protection for the heated bed

If your printer is a CoreXY or similarily uses 2 belts for moving along 2 axis, you look at the Mechanical Settings tab and alter it there, otherwise we skip further to the Endstop Settings. Enable (remove the leading //) the max-endstops if you have them, the rest is usually not necessary on most consumer-grade machines, then go further to the Movement Settings. From our M503 we grab the settings to fill out the following:

#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 4000, 500 }
#define DEFAULT_MAX_FEEDRATE          { 300, 300, 5, 25 }

If you have a probe, you look into Z-Probe Options and follow 0scar's guide here, skip it otherwise until you find the next snippet. Fix that one up to fit your bed and movement area. You might need to set values for the endstop to bed origin distance. These offsets, X_MIN_POS and Y_MIN_POS, need to contain the correct values to center the bed; see "How to center my prints on the build platform? (Re-calibrate homing offset)
".

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

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 0 // Value of zero means that the origin of the bed is at the endstop
#define Y_MIN_POS 0 // Value of zero means that the origin of the bed is at the endstop
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 200

Next, uncomment (remove the leading //) the following line:

//#define EEPROM_SETTINGS // Enable for M500 and M501 commands

If you want to have a special pause position, uncomment and define it in

//#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE)
  // Specify a park position as { X, Y, Z }
  #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
  #define NOZZLE_PARK_XY_FEEDRATE 100   // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
  #define NOZZLE_PARK_Z_FEEDRATE 5      // Z axis feedrate in mm/s (not used for delta printers)
#endif

We are on the finishing stretch, just a few things in this file remaining! Select your language with the line:

#define LCD_LANGUAGE en

Turn on the SD-Card slot by uncommenting

//#define SDSUPPORT

The last step we need to alter in the Configuration.h is choosing the correct LCD controller. Uncomment the line corresponding to your printer - you might need to use a generic option.

Marlin 2.x

Again, grab the 2.x marlin, either the blank base or a preconfigured version. For some printer styles (like Delta), you have to take a specialized set. Then we look at our M503output and set our communications Baudrate and our motherboard (or the board it is derived from), then the number of extruders and the filament diameter:

#define BAUDRATE 250000

#ifndef MOTHERBOARD
  #define MOTHERBOARD BOARD_RAMPS_14_EFB
#endif

#define EXTRUDERS 1

#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0

Next we go to thermal settings! We need the correct temperature sensor table for hotend and bed, possibly we could lower MINTEMP to 0. Don't touch MAXTEMP unless you know what you're doing and have a full-metal setup and you know your machine can take more.

#define TEMP_SENSOR_0 1
[...]
#define TEMP_SENSOR_BED 0

Our next step is making positively sure that TRP is on. Make sure these lines have no leading //

#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders
#define THERMAL_PROTECTION_BED     // Enable thermal protection for the heated bed
#define THERMAL_PROTECTION_CHAMBER // Enable thermal protection for the heated chamber

If the printer is a CoreXY or similar, enable the style in the mechanical settings area.

Enable (remove the leading //) the max-endstops if you have them, the rest is usually not necessary on most consumer-grade machines, then go further to the Movement Settings. From our M503 we grab the settings to fill out the following:

#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 4000, 500 }
#define DEFAULT_MAX_FEEDRATE          { 300, 300, 5, 25 }

If you have a probe, you need to set it up - 0scar has a partial guide - and it is all in the Z Probe Options area! Otherwise, go on. We need to go down, and in the middle of the Probe setup, we find the bed settings. Set them up to fit your printer and possibly the offset from the home-switches to the build volume corner.

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

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 200

Down to Additional Features we go! Let's turn on the EEPROM by uncommenting (removing the //)...

//#define EEPROM_SETTINGS     // Persistent storage with M500 and M501

...and think about how you want to set up your preheats or where to have your special park position. But then comes the last part, which we really need to do: Set up the interface. Start by changing the language and turn on the SD-Slot by uncommenting the lower of these lines:

#define LCD_LANGUAGE en

//#define SDSUPPORT

Our last stop on setting up the basics is LCD / Controller Selection. We need to uncomment the right one here. If you don't find yours, use a generic one.

Step 2: Preparing the Board

There are 2 variants here: either you use a bootloader, or you prepare a .hex file for overwriting the whole firmware. In either case, we need to know what board we have, so we can compile with the correct encoding and setup. You might need to install a proper extension!

2.1 - Bootloader

A lot of boards come with a pre-flashed bootloader, which makes installing and revising software very fast. But not all boards have one flashed.

Flashing a bootloader needs you to have an Arduino and some cables or a different ISP or AVR programming tool. Complete instructions can be found here by Greenonline and here by Robert Lo Giacco and jpa.

Or you take your control board to your local maker space and ask someone there to help you flash the bootloader - most maker spaces have at least someone that has an Arduino and can help you!

2.2 - .hex file

In this case, we don't need to do anything in this step. We'll have a different installation process though.

Step 3: Compiling & Installing Firmware

Depending on your choice in the previous Step, you have to follow the corresponding branch here:

3.1 - Bootloader

If you have set your bootloader, now installing firmware is as simple as connecting your computer with the printer using a direct connection and doing a compile & Upload command.

3.2 - .hex file

After preparing your .hex file, you can upload it with one of the variants shown here by Greenonline, Trish or Thomas Weller

Step 4: Finishing touches

Seeding

Directly after installing up our new firmware on the printer, we need to seed our settings. Connect to the printer via any Console or Terminal (see Step 0) and use these commands

M502
M500

PID Tune

Then we run a PID-Tune. For the first extruder we send:

M303 E0 S200 C3

It will run the machine some and return values named Kp, Ki & Kd. These directly correspond with P I & D. Store them into the EEPROM and save with the following:

M301 P##.## I#.## D##.##
M500


how to split a 40" model into 5 parts to print seperate I currently have a model in fusion 360 of cylinders with the largest being 40" diameter in a specific pattern as seen below. My printer is a Ender-3x with the build plate dimensions of 8.7" x 8.7" x 9.8"

I need to break this model into 5 pieces of exactly equivalent length so I can print same piece 5 times to equal a full cylinder

You've got several options:

Generate full-size STL, cut via software later

If you just have an STL, you can use software such as Meshmixer to modify it. In this case, a plain plane cut would suffice.

Modifiy the design file

A better way is to go into the design file (in your case fusion) and modify it there. In your case, it's rather easy:

add a construction plane

choose the right constraints, e.g. an angle to the XZ plane or a distance to the XY plane

choose the model

Edit > split model
choose the construction plane you made

rinse and repeat

If you want to get rid of parts that became superfluous after this, use the remove option, not the delete option, as the later tries to make sure that the object never was made in the workflow.


Easy way to refine a 3D-model for 3D printing by removing internal geometry I have been given a proprietary 3D file of a real world item from an item manufacturer with the obligations not to hand it out to anyone to produce a print in a low single digit percentge scale of the object. The object model I was handed was given in STL format, and contains even the tiny geometry of the internals. The first set of files given did come with walls that became too thin to be printable in some areas, and I had to ask them to thicken these parts, which they did.

Now, these files still contain tons of redundant internal geometry), like bolts that would be M20 or something IRL. The technical design is actually produced in a 1:1 scale - and thus much of the item's complexity is retained in scaling and slicing, because I was provided with neat, nested shells that don't intersect at all. A tiny piece of internal geometry after slicing for illustration without giving much about the actual object (which is under DND).

ALL of this internal is superflous, waste of material and additional print time.

The STL of this item contains (according to Meshmixer) about 40 shells, most of them representing single bolts, while the really relevant parts are all in the shell 1. The really problematic part is though, that even ditching these 39 superfous shells, the space reserved for them and a lot of internal geometry is left behind when I try to get rid of the internal geometry.

Saturday I tried for hours to simplify the model first and then stitch away tons of the internal geometry with blender, but while this did reduce print time greatly for the internal cavities were gone, the simplification did mess up other parts of the model to a degree that wasn't nice anymore and it messed up the scaling. Also, it was very time consuming - 6 hours or more - which makes this a very bad time-effect ratio. The print with the retaining 2 % of the vertices was... ok, but not as nice as with the half million vertices from the original file, mainly because I had to simplify the model first to even have a chance to see into the model to get the internal cavity vertices grabbed and removed/merged, before fixing any holes left from the mercyless treatment by Meshmixer's auto-repair feature.

Is there a way to analyse a model for internal structure and remove them for slicing without having to remodel a 500k vertex / 50 MB object in its full? It would be best if such a way was somewhat automated.

My setup usually uses Cura as a slicing engine, my modeling softwares of choice are - in this order - Fusion360 or DesignSpark Mechanical. If nothing else helps and I have to attack singe vertices I do my way around Blenderauto-updated via Steam. Meshmixer I usually use only to fix up models before slicing.

About 10 minutes after writing the question, it suddenly dawned on me, that I was not using Meshmixer to its full potential, and especially not a simple property of Cura:

Cura can discard all parts of a model, that are intersecting a closed volume and thus are inside another volume - fixing intersecting shells this way. This option is called "Union Overlapping Volumes"
Meshmixer can, using the meshmix tool, add simple and somewhat complex geometries to specific places in given size and orientation.

Now, these two parts can be used to get rid or complex internal geometry by intentionally setting it up an intersecting shell. Usually intersecting shells are a no-no for good 3D design, but by having something - for example a cylinder - intersect just the internal geometry and enclosing it, these parts vanish in the slicing, if the slicer is set to fix intersecting shells by ignoring internal geometry. Cura does so with a simple setting, one that seems to be on by default in the 3.3.1 distribution.

So the odd solution to how to reduce a model's internal geometry without impacting the outer look can be this at times:

Manually add geometry, that (fully) encloses the internal geometry and turns it into an intersecting shell, allowing (some) slicer softwares to ignore this part.

To illustrate, almost the same area of the object before and after the added cylinder:

As one can see, the structure became much simpler, as the cylinder cuts away all the internal structure (the 'spokes' and 'axle' one might want to identify from the left picture, but that would be a misidentification) is gone. Much less internal geometry is retained and instead it is now filled with a cylindrical space of nice and fast(er) to print infill, here "Quarter Cubic".

While this is just a partly automated solution - demanding the manual addition of the intentional intersecting shell - I am yet to be taught about a fully automated way.


How to get Sunlu PLA to adhere to the printing bed? I have a Creality Ender 3 that printed a spool of Sunlu PLA with no issues, so I bought a second to replace it, just in a different color.
The problem is I can’t get it to stick. The bed is level, I’ve tried printing at different temps, even adjusted the fan, but no luck. No matter what, the print still only partially sticks to the bed before eventually being knocked loose by the nozzle, if it even sticks at all. Mostly it just extrudes in a spaghetti ball next to the nozzle.
Does anyone know how I can fix this issue? I have tried everything!
Update:
More info for those who have asked:
I have adjusted the temps of both the hot end and the bed to various temps within what is recommended with this filament (200-230 and 50-90 C)
The bed is level
I have attempted prints with both the plastic and glass beds (glass bed has never been printed on)
Attempted to use hairspray
While the print is somewhat sticking, it now produces a glob of pla while making its first pass down, which it then hits and completely unsticks. I think the glob is caused by the pla not sticking to the bed from the very beginning but am unsure.
Hope this helped!

Level the bed
Make sure that the bed is level. The nozzle must be equally high over heated surface, otherwise only part of the print will have chance to be smeared and adhere properly.
Clean thoroughly
First thing I do when I notice that increasing bed temperature does not work anymore, is washing the glass with soap or detergent. Some advice to use also isopropyl alcohol. My impression is that the main mistake is to use alcohol to wipe the glass instead of dismounting and thoroughly cleaning the glass from any grease. This is a bit more work, and for me works great.
Applying alcohol, brake cleaner or similar no-trace solvent could enhance the effect (as suggested by FarO).
Reduce the air flow
Disable fan for the first layer (or even more layers above).
Isolate the printer from environment - e.g. buy or build enclosure. Remove any drafts. Ensure that ambient temperature is not cooling prints down too fast (for example printing in garage or shed may fail until the space is heated).
Use kapton tape
You may like the idea to put kapton tape on the surface (only glass?). Wide kapton roll would be needed to cover big area at once, to cover the whole glass with good quality and in reasonable time. Created surface should be as ideal as possible, because any bubbles will cause later trouble, it is not easy but doable. The outcome is great. Any accidents with hotend should be avoided, and prints removed with some care, to remain tape undamaged as long as possible.
(I use 50 mm tape. And I save this surface for printing ABS, and only occasionally for PLA, because it sticks so well that I had problem to remove prints saving the surface, even after cooling down.)
Apply adhesive
You can use adhesives like hairspray, glue stick or even better a dedicated adhesion spray. It is suggested especially for larger parts, which tend to wrap without this kind of adhesive aid. There is no one good solution. You may want to experiment, starting from cheap and widely accepted to commercial and wildly advertised products, with regards to your local market. Look for example links at the bottom.
Expand line settings for initial layer
Make sure that amount of extruded material is correct. This mean proper calibration regarding settings like: steps/mm for E axis, flow rate. Small difference in amount of extruded filament will reduce the quality of the rest of the print. Bigger differences may ruin print at the initial layer, and for sure will spoil the rest.
Use slicer settings to increase line width for first layer. Values of 120-140% are standard settings for improving adhesion.
Slightly increasing height of initial layer may also help to overcome bed surface
roughness or slight leveling errors.
Decrease speed to 20 mm/s or less
Reduce printing speed for initial layer to 20 mm/s or even lower, and raise it carefully after trouble is really resolved. (In my opinion it is better to decrease speed to let plastic melt and stick, than to increase temperature.)
Modify temperature
The temperature of heated bed should be high enough to keep the initial layer of filament within glass transition zone. This usually means more than 60 °C for PLA (between 50 °C - 80 °C depending on contents). (I usually print at 70 °C, and raise to 80 °C when meet issues.)
Increasing the temperature of nozzle also may improve the adhesion. But it may also be temporary success, because of negative effects related to temperature differences, and for example cause wrapping - ruining especially wider prints. So decreasing the nozzle temperature is also an option to check, when wrapping is observed.
Experiment with more advanced techniques
If you are still failing, then try experiment following many advices around (contrary, but sometimes working). If the firs layer adhere to the bed, but problems appear later, then other advanced techniques may help - like slicing model with additional structures (brim or raft).
The best advice may depend on kind of heated bed, surface or environment. This checklist may be of some use: 3D Printer Bed Adhesion: All You Need To Know. Also there are many troubleshooting threads on the web, like this on Reddit: SUNLU PLA+ will not adhere to build surface, or; this on Thingiverse: SUNLO PLA+: does not stick..


3D printing filament resistant to steam I need to replace the lid of my water kettle and am searching for a filament, that is suitable for this purpose. The requirements are:

Stable at 100°C (212°F)
Resistant to steam/moisture
Food-safe

Has anyone experimented with this or similar purposes?

Referring to the table provided in 0scar's answer, the key challenge with high temperature materials is the gap between the glass transition temperature (bed temperature) and the extruder temperature.

Polycarbonate for example is listed as usable up to 121°C, printing on a bed at 80-120°C, but requiring an extruder temperature of 260-310°C. This extruder temperature is potentially going to challenge the mechanical, thermal and measurement properties of a printer.

In this application, you don't strictly require 100°C operation, so Nylon (80-95°C) and ABS (98°C) might be worth trying. Even if one side of the part is at this temperature, immersed in steam, the opposite side is exposed to air and convection cooling. Providing there is sufficient thermal insulation and internal rigidity, the upper shell of the part is likely to support it. However, if the inner face does start to flow it may take some time before a problem is apparent.

So long as the material is not soluble, absorbing moisture may not be a major issue.

When it comes to being food-safe, this is a huge can of worms, and you're really looking to investigate 'how much of a risk' rather than get a go/no-go answer.


Prusa i3 MK3S 3D printer PETG printing problems I am using a new Prusa i3 MK3S 3D printer kit. I print lots of things using PLA and PETG.

After a week of great performance I noticed that when printing some objects with PETG filament I often encountered a problem  when there's  intense stringing, infill gaps, artifacts, the object sometimes detaches from the plate. I use the Prusa Slicer and Cura and print with the temperature 230/90 °C, speed max. 300 %.This problem occurs rather regardless of which infill methods I choose. I see this problem more often when printing models sliced with Cura. Sometimes everything goes fine, but most of the time I need to stop the print due to the model collapsing, detaching from the surface, its parts collapsing due to infill gaps. The printer sometimes makes some 'clicking, cracking' sounds when printing with PETG.  My filaments come from Fiberology.

Surprisingly, I have run the selftest, XYZ, Z calibrations and all the other ones without any errors. The wizard told me that the axes are perpendicular and it gave me congratulations. All the other tests went nearly perfect as well.

I do not encounter any problems using PLA, just with PETG. I try to maintain the filament properly (keep it away from moisture, in a closed box). Sometimes (rarely) I get crashes. The filament often builds up on the hotend and I remove it.

I do not know what to do, the build went very well and there are no errors, even though I am a new user and this is my very first 3D printer. I have searched the web and I haven't found people reporting this exact same thing.

Could You help me? What can I do to improve the quality of the prints, perhaps maintain PETG better (maybe I'm doing something wrong) and most importantly, solve the problem?

230 °C is way too cool for PETG and will result in underextrusion unless you print really slow, and poor bonding. Underextrusion in turn leads to stringing because of pressure build-up. I print PETG at 250 °C.


How do I know if my BLTouch is faulty or firmware is faulty? I just got the Ender 5 Plus with BLTouch set up today. I was having some massive issues and determined that my leveling was off because the BLTouch was flashing red and not connecting. When I turn on the printer there is about a 50% chance that it will probe correctly by deploying the pin and correctly retracting it. However, I'm having about a 75 to 90% fail rate on auto leveling where it is doing measurements. I've checked the wiring and it looks correct, but not sure what else to check.
The fixes I've seen say updating the firmware, but all show firmware at 1.70.0 BL. Mine is at 1.70.2 BL. So I'm not sure if there are more firmware updates to apply.
I do not know how to check which BLTouch I have. And I've been able to make it get to printing 2 times, but something is off because it is stringy at 1 point of the build on the first layer. No adhesion basically. So that is the problem I'm trying to fix, but can't get to it because the BLTouch fails so often on the first part. The only way I've found to fix the BLTouch consistently is turn off machine, pull the pin down, push it up, then turn on the machine again.
Is it possible this is a firmware issue or is just the BLTouch is likely faulty?

Try calibrating your Z offset
Based on this answer it sounds like the flashing red means there isn't enough clearance between your bed and your probe for it to operate.
You might try raising your Z axis up a bit to let the probe achieve the minimum clearance necessary for deploying the probe. My guess is that your Z-offset isn't quite right and it isn't raising up enough to allow that minimum clearance.
I recommend calibrating your Z offset and see if that resolves the issue.


How can I print in multicolor with Ender 6? I'd like to make multicolor printing on Ender 6, but it seems that the filament change (ADVANCED_PAUSE_FEATURE) doesn't work (it works on my Ender 3).
Can you help me how can I solve that? How can I make the ADVANCED_PAUSE_FEATURE available on Ender 6?

Enabling ADVANCED_PAUSE_FEATURE requires a rebuild and upload/install of a new Marlin firmware. The option is found in the advanced configuration file (Configuration_adv.h).
Please change:
//#define ADVANCED_PAUSE_FEATURE

to:
#define ADVANCED_PAUSE_FEATURE

Rebuild and install the firmware.


3Dtouch triggers way too close Today I finished building and adjusting a Prusa-Clone printer. The brain is a 32bit board with Smoothieware on in. To run the auto bed leveling routine I installed a 3DTouch (BLTouch clone, sorry low on cash).
After many headaches, I got everything working fine and I'm happy with the result. Except for one thing...

When the 3DTouch is probing, it is triggered when the nozzle is about 1 mm from the bed. If I set the probe higher, the nozzle crashes onto the bed. If I set the probe lower, the probe would be on the same level of the nozzle, not so good for print time.

Anyone with similar experience or how to sole it? google doesn't show up much regarding this.

Thanks in advance!

That it triggers when the nozzle is about 1 mm from the build plate is how it is supposed to work. The installation manual describes how to setup the sensor.

  The mount needs to be adjustable so that the distance between the bottom of the sensor (not the pin) needs to be 8.3mm above the tip of the nozzle.

When taking the above distance into account, the probe should be hitting the build plate first when it is extended. When the probe triggers, it triggers at a certain distance from the nozzle. It is this distance that you need to add as an offset so that the printer knows where the actual Z=0 is. To determine the offset, you home the printer, then lower the head until a piece of paper gives a little drag when pulled under the nozzle. From the display you can read the offset, e.g. -1.4. With command M851 Z-1.4 you set the offset between level and trigger point. Use M500 to store the new settings.


Slicer for 32 Bit Operating systems? I currently only have access to an old, 32 bit OS and need to slice a couple things. While there are a lot of slicers around, most popular ones, for example Ultimaker Cura 4, need to run on a 64 bit operation system.

What somewhat recent (late 2018, 2019) options offering common abilities are there that run on older computers?

The last version of Ultimaker Cura that supported 32-bit Operation Systems was Cura 2.3.1 of 2016, which of course has a lot of items not yet in it and doesn't fit the demand of offering some update at worst from 2018.
32-bit support is starting to fade from the support of projects, as 64-bit makes a lot of things much easier and faster and 32 Bit Windows likewise is pretty much a dead-end branch with Windows 7 Support being discontinued on January 14th, 2020. For example, the Slicer project says on their documentation of the May 2019 4.10 version: "We do not make 32 bit builds available."
Yet there is rescue with the Slic3r-Family!
Slic3r 1.3.0 is open source, available as 32 and 64-bit versions, and was released in November 2018, making it somewhat up to date. You need to customize a lot of settings in it, but it is after all quite a powerful slicer - for which you have to write your own Start Code, define your filament settings and machine.
Repetier Host 2.1.6 is likewise a 32-bit application. It's technically a console with slicing features and uses one of several engines to slice - including the Slic3r and Slic3r Prusa Edition engines, which run on 32-bit. In comparison to Slic3r, I find its UI for placing items a little more user-friendly. It does pull the settings from Slic3r, if you have that installed.
Slic3r Prusa Edition/PrusaSlicer is a derivate of the Slic3r project. 2.2.9 was released in December 2019. It too runs on 32 bit systems. It is, UI-wise, even more comfortable than Repetier Host and is somewhat similar to Ultimaker Cura 4.


Tevo tarantula Z- port burnt I burnt the Z- port for the Z endstop. Can I use the Z+ port? I'm using Jim Brown's Marlin firmware.

Any help to change that is highly appreciated. I know nothing about code. Sorry for my ignorance. I'm new on this 3D printing universe.

Assuming line 585 of Configuration.h looks like this

// Almost all printers will be using one per axis. Probes will use one or more of the
// extra connectors. Leave undefined any used for non-endstop and non-probe purposes.
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
//#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG

That is to say, if the Maximum endstop ports/plugs aren't currently being used, then you could just redefine the pin used by ZMIN (Z-) to be that currently being used by the ZMAX (Z+), in the appropriate pins_XXXX.h file (contained within MarlinTarantula/Marlin/src/pins/), where XXXX depends upon which board you have (I don't know what board your printer has).

For example, if you have a RAMPS board then in pins_RAMPS.h at line 79 you would change

//
// Limit Switches
//
#define X_MIN_PIN           3
#ifndef X_MAX_PIN
  #define X_MAX_PIN         2
#endif
#define Y_MIN_PIN          14
#define Y_MAX_PIN          15
#define Z_MIN_PIN          18
#define Z_MAX_PIN          19

to become (note the change in the last two lines)

//
// Limit Switches
//
#define X_MIN_PIN           3
#ifndef X_MAX_PIN
  #define X_MAX_PIN         2
#endif
#define Y_MIN_PIN          14
#define Y_MAX_PIN          15
#define Z_MIN_PIN          19
#define Z_MAX_PIN          18

Then compile and reflash the firmware.

Obviously you would then plug the Z_MIN (Z-) wire from the endstop into the Z_MAX (Z+) port.


Filament extrudes at an angle On one of the nozzles on my printer, the filament comes out at a 45 degree angle.  It seems that this causes problems with adhesion to the bed and overall quality.

What caused this problem?
How do I fix it?
How do I prevent it from
happening in the future?

I've personally had this happen when I had a minor clog in my nozzle.

My first steps to fix this would be:

Make sure the exterior of your nozzle is clean. I've had bits of plastic pull at the extruding filament and change it's direction.
Attempt a "cold pull" or "atomic pull". On my Replicator 2 I do this by removing the extruder motor, heating up the hot end, manually pushing a length of filament through the nozzle, letting it cool slightly and tugging the filament (and hopefully the clog) out of the nozzle.


Printing dental temporary crowns If the right filament material is available, it seems practical for dentist to 3D print temporary crowns. Multiple images of the tooth to crown could be used for a 3D scan. Custom software or settings would probably make the software finish in less time. A 3D-printed temporary crown would probably take less work to get it to fit properly. Anyone know of development to do this? This probably would take a series of clinical trials to get FDA approval.

You ask about "filament", so I assume you expect fused-filament technologies. These are however not accurate enough, besides being prone to gaps and crevices which are problematic in crowns. The smallest viable nozzle, 0.2 mm, is still too rough for that.
Dental 3D printers need to be very accurate, so the most common technologies used are stereolithography (SLA) and digital light processing (DLP).
Crowns can be made using resin printing. It is possible to use also CNC machining of porcelain, but it's not part of 3D printing.
More info can be found on https://all3dp.com/2/dental-3d-printing-guide/


How to get consistent and accurate readings from thermocouples? I upgraded to an Mk9 dual extruder, and it came with thermocouples installed instead of the thermistors I had before.

No matter what I did with the thermocouples, the indicated temperature jumped around by as much as 30C or more. In short, after several weeks of fiddling I never got the thermocouples to work well, and replaced them with thermistors, which have been fine.

So my question is: what is required to get thermocouples to give reliable, consistent, accurate readings? Are they just incredibly touchy?

Some things I tried include:

Of course, one must add circuitry (typically a thermocouple amplifier board such as http://wiki.ultimaker.com/Thermocouple_Sensor_Board_v1), to convert the tiny voltage differences to larger differences usable with Arduino or similar analog inputs.
Place those boards close to the thermocouples, but far enough that they are at pretty stable temperature themselves.
Have absolutely no wire extensions of splices, changes of wire types (material), etc.
Avoid doing repeated measurements too fast.
I replaced a thermocouple board with 5V through a potentiometer to the analog input pin, to rule out problems in the Arduino, pin configurations, or software, and got stable readings.
I checked for shorts-to-ground from the heater block, both sides of the thermocouples, the heater itself, etc. None found.
The thermocouple wires are surrounded by a braided shield (not common or shorted to either thermocouple wire); I tried grounding that at either end and at both ends, to the heat block, the printer frame, the power-supply ground, and the RAMPS board ground. These had various effects (sometimes large), but I couldn't find any configuration that made the readings stable (much less accurate!).

Anything I'm missing?

Thanks!

Steve

Thermocouples work by passively generating VERY small voltages via the Seebeck effect -- usually a few tens of millivolts. They're literally just a pair of wires made from two different special alloys, electrically connected together at the "hot" end. That wire junction can be mounted inside whatever kind of attachment tip or lug is desired.

The fact that they're very simple and passive devices makes them extremely precise and consistent between TCs of the same type, MUCH more so than thermistors. Any type-K thermocouple in the world will give you the same accurate output +/-1-2C or so. You can even cut a thermocouple in half, re-twist the ends of the wires together, and it'll still work!

However, the very small (millivolts) signal they generate is quite susceptible to electrical noise and circuit design. The signal voltage has to be greatly amplified to be useful. So it doesn't take much EMR from your heater or stepper wires to interfere with the TC reading. A frequent problem with TC circuits in 3d printers is the dreaded GROUND LOOP -- if the "hot" tip is electrically connected to the hot block, voltage and current on the heater and motor wires can induce small currents through the TC wires that totally screw up the millivolt signal. The amplifier picks up these stray voltages and it throws off the temp read. So, there are some important guidelines for keeping noise out of the TC wires:

The TC wires must be electrically insulated from the mounting hardware (eye lug, thermowell, whatever your extruder has). You can check this with a multimeter -- you want infinite / out of range resistance from the TC leads to the mounting tip and hot block. While you're at it, make sure your heater cartridge wires aren't shorting to the hot block -- that's unsafe and can also cause problems with TCs.
Keep the two TC wires close together, and not immediately parallel to noise sources like PWM-controlled heaters or stepper wiring. If you must run the TC in a bundle with the other wires, TWIST the heater/stepper wiring pairs. (For steppers, twist each coil pair to a different pitch if possible. You don't need to twist the separate coil pairs to each other.)

Another common issue with TC circuits is the COLD JUNCTION COMPENSATION. A thermocouple doesn't measure tip temperature, it measures the DIFFERENCE in temperature between the hot tip and the cold junction where the TC is connected to either the amp or copper wiring. The TC amp has an onboard thermistor that it uses to add the temp at the cold junction to the measured signal from the thermocouple. There are a few things you need to do to make sure the cold-junction compensation works properly:

You should run TC wire all the way from the "hot" tip to the TC amp. You CAN splice it and install plugs, but only with more type-K TC wire and proper type-K thermocouple plugs. These use the same metal as the TC wire so they don't generate undesired junction voltages that interfere with the TC signal. If you splice copper wire between the TC and the amp, any temp differences along the copper will not be measured! This is a particularly big problem if you splice to copper inside a warm enclosure and then run copper to an amp outside the enclosure.
The amp should not be super hot. The onboard thermistor is designed to accurately measure temperatures reasonably close to room temp, not hot-block temps.
There should not be large temperature gradients near the amp or between the TC wire termination and the actual amp chip. Place the amp far enough away from the hot end and other heat sources (like stepper motors) that it isn't experiencing weird temp profiles.

If you do the above, the TC will output a good signal, and the amp will read it properly. But there's one more hitch. The mainboard has to know how to understand the amp's output. 3D printer control boards that are designed exclusively for TCs, like Mightyboards, usually use digital communication between the amp and the main control chip (MCU). This is high-reliability and does not require any special firmware configuration -- support is baked in. But if you're strapping an external TC amp onto a board that is expecting thermistors, you will have to tell the firmware how to read the signal from the amp. The most common technique is for the amp to output a linear voltage signal to the MCU's normal thermistor input (ADC). Then you configure the firmware to use the appropriate "thermistor table" (really a voltage lookup table) for that particular amp. Depending on your controller board, you also may need to make sure the regular thermistor pull-up/pull-down resistors aren't affecting the amp's output.

So you need to make sure:

You don't have electrical noise issues
The cold-junction compensation is working as intended
The firmware and controller board is configured correctly for your amp chip's output

If you do all that, a TC should give superior accuracy and reliability over a thermistor.