How to make it so that multiple motors respond to I want to make it so that the E1 and E0 do exactly the same as the Y motor and I was wondering if anyone here knew how to do that?
I basically just want to make it so that when the Y motor is triggered, so is the E1 and E0.
I'd really appreciate any help, thanks!

One way to have two E-steppers to do the same work should be to enable MIXING_EXTRUDER in Configuration.h. I have no experience in this myself, but it is a good starting point.
A second way is to actually connect the two identical steppers in parallel. That trick is sometimes used for Z-steppers. I don't expect the current consumption to be an issue. This will require soldering, unless your mainboard has two Z-stepper outputs and you only use one of them. Then move connectors and reconfigure pins.h (or similar file) to use the correct steppers for Z and E.
A third way is possible if your mainboard has removable stepper driver modules. Remove the E1 stepper driver from the socket and cut off the EN, DIR and STEP pins. Solder thin but insulated wires between the solder-pads on this one to the E0 stepper. These are all inputs, so now the second stepper will follow the first perfectly. Soldering shall be done while the stepper driver modules are removed, otherwise the heat might ruin the sockets. (There are more precautions)


3d Extruder temperature lower automatically (Prusi I3) when I command to start print from SD card; extruder temperature raise slowly and print start but with in 4-5 minutes suddenly Extruder temperature lower automatically.

Please consider to reference your precise model (genuine Prusa i3 or clone?) as well as the slicer software you are using.

You should be able to note from the panel information what layer the change appears. For example, if you are printing 0.200 mm layer thickness and the temperature change begins at 10.200 height, you have an important piece of information.

Open your gcode file in a text editor and look for the Z reference in the 10.000 or 10.200 range, along with the temperature gcode command. According to the reprap wiki,, the gcode command to set extruder temperature is M104 followed by Sxxx where xxx = temperature in °C. For example, you should see something like this near the beginning of the gcode

M104 S205; set extruder temperature to 205°C (comments mine, some slicers also include comments)

but if your gcode is faulty, later in the body of the gcode you may see a similar command:

M104 S000;

the number after the S could be anything. Consider to examine any M10x codes as there are different results for various codes.

If you find you have a dropped extruder temperature due to the gcode, double check your slicer settings to see if a second process has been initiated.

I have a dual extruder printer and will usually keep the second extruder cold until just a few layers prior to printing supports at a level above the bed, then turn it on to do the supports, then back off for the rest of the print.


Do firmware updates affect print speeds? I flashed the TH3D unified firmware (R2.7) yesterday and so far everything works. I printed the 20 mm cube using the same G-code file I used for my very first print ever. However, with TH3D firmware I noticed that the print head was ridiculously fast compared to the previous firmware. The new cube has layer shifting and more noticeable ghosting so I know it's not just my imagination/faulty memory.

The slicer should have everything moving at 60 mm/s but I feel like the printer is going like 80+ mm/s.  I only uncommented my printer model and a couple of features of the firmware; nothing involving speed (mainly the mesh bed leveling). Is it possible that the new firmware thinks 60 mm/s is a different speed than the original?

Note: This question isn't about print quality. While the cube had flaws, it was just testing that the printer would actually print. And, of course, I can just dial things down. This question's scope is just about the input of the G-code and the output of an actual speed of printer head facilitated by the firmware.

I agree with @silver, but also wanted to point out that maybe the acceleration values on the old firmware you had were different from the default in TH3D R2.7.

The current settings can be retrieved using the M503 command, which should return the values from the eeprom:

Maximum Acceleration (units/s2):
M201 X1000 Y1000 Z100 E10000
Acceleration (units/s2): P R T
M204 P400.00 R1000.00 T1000.00

You can then lookup the default settings for your printer model and use M201 and M204 to set the new values. Then M500 to save the new settings to the EEPROM.


Ender 3 PRO BLTouch V2 perfect on center with small prints but fails on corners or big prints For my Ender 3 Pro I bought this touch sensor set Chinese clone BLTouch set and changed the printer's firmware to the latest TH3D firmware (first I tried with Creality's original BLTouch firmware but after 4 hours, I never managed to set a correct Z offset, I believe there is a bug or this BLTouch clone isn't compatible with Creality firmware).
After installing TH3D, found the right Z offset, when I print items like this one which stays at the center everything just perfect it sticks well, no strings, strong lines.
But if I try to print something like this which is using almost all the printing table from corner to corner (I need to rotate the print  45° to fit onto the build platform), it's good on center or near to center but not sticking on the corners and first lines are sticking to nozzle (because at the far corners, the nozzle is too far or too close) and makes a mess.
I powered off the printer and adjusted the good old way (with a paper) and re-setted the Z offset accordingly but the result is the same.
According to my research some peoples advised you need to add G29 after G28 to your G-code to get proper solution, I added the code in Cura. When I try adding G29, the printer starts leveling after starting printing, but the "not sticking problem at the corners" still continues.
I tried with both magnetic bed & glass bed, but nothing helped. I was using 200 °C for the nozzle and 60nbsp;°C for the bed, printing speed is 50nbsp;mm/s with Standart quality 0.2nbsp;mm, retraction enabled, mostly using 10nbsp;% infill on my models.
I thougt maybe filament causes this problem, changed filament to another roll but not helped, I also have an Ender 3 V2 (no BLTouch) and tried same model, same filament, same settings on V2 printed perfectly.
This is how my bed looks like according to OctoPrint bed visualizer plugin;

I've watched many tutorial videos and some said you need to adjust your bed with spirit level to make sure it's flat, I even did that and it is just perfectly flat.
I've installed the BLTouch clone 1 week ago and I'm struggling with this problem since then, I believe I'm missing something very obvious or making a realy simple mistake because many people use touch sensors and they are all happy with auto bed leveling.

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

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

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


What kinds of gaps/tolerances should I use when designing pieces that fit together? Let's say I'm modeling a simple box with a lid. Just as an example, we'll say the outer edge along the top of the box is 50mm x 50mm. With 3D modeling software, it's easy to build a lid for this box to surround the top with an inner edge size of also exactly 50mm x 50mm ...but this seems like a bad idea. Surely I'll want some kind of of gap, to ensure an easy on/off. An exact fit seems like it's asking for trouble.

How much gap do we leave for this kind of thing?
Is it related to nozzle size?
I suppose it also matters how tightly you want to fit, though I expect in cases where a tight fit matters some kind of snap or clip would be used.
Are draft prints with larger layer sizes useful for figuring this, or do the rough layers make things seem tighter than they'll be in a final print?

I use my clearance values according to my rule of thumb: 0.1mm - to fit with some force, 0.2mm - just fit edge to edge without force.

Examples:

1) 3mm metal cylinder to be pressed into plastic part needs 3mm+0.1mm*2=3.2mm diameter printed hole (clearance from two sides)

2) 3mm screw to fit into plastic part needs hole bigger than 3mm+0.2mm*2=3.4mm that is 3.5mm will be already good.

This is fully experimental but always worked for me on three different printers and both on PLA and ABS.


Calibrated Esteps Causes Extruder Skipping I have replaced the stock extruder on my Ender 3 with one of these:

The grip gear has a smaller diameter, so I calibrated the esteps as per the top google search: Extruder Calibration – 6 Easy Steps to Calibrate Your Extruder...

If I set the esteps so that it's spot on with 100 mm of filament is used up when I ask it to extrude 100 mm, then during a print I get the occasional skip on the extruder.

If I dial it back a bit and set it so that it extrudes 90 mm of filament when I ask it to extrude 100 mm, then I don't get the skips.

In both cases the print looks normal.

I've tried changing the nozzle as well in case there was some blockage, but it doesn't make a difference.

Should I just go with the under extrusion? or is these likely to be some other problem that isn't apparent?

I didn't notice any issues with the stock extruder and the stock estep setting, but I didn't think to check the calibration.

Consider that the extruder is skipping because it is unable to push filament at the rate you are requesting. By reducing the steps to ninety percent, you are reducing the rate by that much as well.

Typically, a skipping extruder is an indication of clogging, but it does not have to be clogging caused by particulates jamming the nozzle. At higher rates of filament travel, one needs higher temperatures to compensate for the cooling at those higher rates.

Consider to reduce the print speed to ninety percent of the current figure, or raise the nozzle temperature by five to ten degrees (in steps) to see if you'll get rid of the cold blocking that may be causing this problem.


Is there any way to correct uneven bed temperature? I'm using an Ender 3 Pro with stock heated bed & glass build surface on it (without any base of stock magnetic plate). My heated bed looks completely flat too despite of many uneven Ender 3 heated beds around.

But when bed temperature set to 70 °C and I check the temperature of bed with infrared laser thermometer gun, the front of the bed is around 72 °C and the back is around 64-68 °C. So the temperature is different at all sides and this looks like leading to warps too.

Is there any way to make it more even for all bed surface?

I had this exact issue with my Qidi X-Plus. After checking with a thermometer there was a spread of 9°C - enough to burn in (always the same) certain areas when printing at higher extremes of temperatures, or causing poor adhesion in other certain areas at lower temps. Very similar scenario too, I noticed this primarily when switching over to glass from the stock magnetic plate.

My solution was quite straightforward - I set the bed temperature on the printer's control panel and preheated it before sending it a print. As long as I left it there for a solid 10 minutes after getting up to temperature it balanced within around 1°C. I observed far more consistent results from print to print.

Now I don't know your exact machine myself, so I don't know if this is possible on the control panel on an Ender 3. However if it's not, as an alternative possibly consider looking up how to stick a pause in the initial gcode in Cura to see if you can achieve the same effect.


Printing Plastic Replacement Parts On a number of occasions I've broken small plastic parts that are nearly impossible to replace but could easily be 3-D printed.  The latest such mishap is the volume knob on the factory-installed radio on my car.

I have little experience in 3D printing, and would like to be able to replace these parts with something very close to the original.  Spending hours measuring and designing a replacement part that should be $5 isn't really an option.  I need something to scan the broken pieces in 3D and somehow just seal up the seam where it's broken.

Is there a scanning/printing/software system to do this that doesn't require a lot of 3D design experience?

The easiest way is as you currently do: model the pieces by hand, using (digital) calipers to measure them.

Scanning technology isn't very good, and the models are not of printable quality. Usually, fixing a scan is more work than modeling an item from scratch.


Can you put PLA parts in your car (in the sun)? I'm in the process of building my own head unit / stereo prototype for a car, which will have a 3D-printed enclosure.

My concern is that cars can get quite hot in the sun, and even more so if you live in hot climates. Some estimations put the interior of cars getting up to 50-60 °C, sometimes even in only 20 °C weather due to the 'greenhouse' effect created in the car. I live in a fairly temperate climate, but the summers can still get up to 20-29 °C (80-85 °F), and my car might get up to 60 °C/150 °F on a hot day.

The part won't be exposed directly to the sun, but will obviously be exposed to heat both from the interior of the car when in the sun, and potentially from the engine radiating heat through the firewall, though the latter factor will differ from car to car.

Should I be concerned using PLA for my part? If not, what material, if any, would be better suited for these possible temperatures (other than metal)?

No, PLA cannot be used in cars standing in the sun. Temperatures can locally get over 50 °C (122 °F).

I have printed sun visor hinge pins from PLA for a car (not exposed to direct sunlight either), but after one day in the sun (it usually doesn't get over 29 °C or about 85 ˚F here too) the pin deformed (only printed it for form fitting). The actual pin was eventually printed in PETG, and even with PETG the part deformed a little when it got really hot in the car.

Your part might not get that hot as it is lower in the car, but you could best print parts in Nylon (Polyamide, PA), ABS or any other high temperature resistant Co-Polymer (e.g. made from Amphora HT5300), there are lots to choose from nowadays.

If it is a non load bearing component that is not stressed (e.g. a cover or a bushing) it could be printed in PLA, but I would not take a change and would print it directly in a more temperature resistant material.

Downloading some of the technical data sheets from various filaments will give you for PLA:

  Not suitable for long term outdoor usage or applications where the
  printed part is exposed to temperatures higher than 50 °C (122 °F).

similar for Nylon:

  Not suitable for applications where the printed part is exposed to
  temperatures higher than 80 °C (176 °F).

To complete the overview, generally, materials should not be exposed prolonged periods of time above (give or take):

70 °C (158 °F) for basic Co-Polymers
85 °C (185 °F) for ABS
100 °C (212 °F) for enhanced Co-Polymers
105 °C (221 °F) for Polypropylene (PP)
110 °C (230 °F) for Polycarbonate (PC)


Problem with grid infill (line positioning) I have a problem with the grid infill on my BCN3D+ Dual Paste extruder: when I print a structure the lines of the infill are not evenly printed, every two lines the gap between the lines is higher (see the photo) while in the Simplify printing preview (preview image) the space between the infill lines is the same all the time. Do someone know if it can be a problem of the printer or a Simplify command?

It looks like a case of one axis affecting the other.  This is a subset of cases where things are not rigid enough.  Basically the movement direction in X is causing an offset in the Y, or whatever you want to call the axes.  It is present in small amounts in all screw-driven setups where the screw essentially acts as a wedge, and can be in others for various other reasons.  The solution is to tighten up your linear bearings/slides so that there is less transverse play.
There is also a chance that you are trying to print beyond the resolution of your printer, in which case it is "rounding" to the nearest within its capabilities, but that seems less likely.


Effect of particulates on the viscosity of paste that is used to transport it in extrusion printing I am trying to find research articles that have data on how particulates(metal powder in a paste/hydrogel affect the viscosity of the paste/hydrogel. But I have been coming up blank in my last few hours of research. Is anyone aware of any research papers that discuss this and could point me towards them please? thanks.

I found a journal article "Experimental study of the viscosity of suspensions"
that looks like what you are looking for.  Just like most journals, it costs to access it. Also, it might be available as Open Access; but, I was not able to figure out how.


precise transformation using meshmixer I am trying to do some edits on an STL file. I am trying to use meshmixer for this. I am essentially trying to move a hole in the following picture

and widen the hole on the bottom of the part. I was playing around with meshmixer and it seems that it can do this by sculpting rather than precise measures. I would appreciate comments if my observation is correct and if so, what other STL editor would you suggest to do these edits. Thanks!

It's possible to close over a hole using Meshmixer. I've done exactly that recently, although the "hole" was a depression, the process would be the same. As you've discovered, Meshmixer can be considered somewhat imprecise.

Fusion 360 will import the model you wish to modify. You would then turn off edit history, convert the model to BREP, then perform the edits you require.

Once you are satisfied with the results, it's an easy matter to export the model as an STL file.

I've summarized the steps, which are almost as easy as my description. You'd have to combine Google-Fu with the summary for the detailed portions, but it's something I've done in the past.

Fusion 360 is free for hobbyists, renewable each year. There are many YouTube tutorials and text-referenced solutions for the steps required to accomplish your edit.

Some will consider Blender to be an alternative method and I agree that it's a viable option, but it's not quite as intuitive as Fusion 360 and was more challenging for me to embrace.


Electric shock from ender 3 printer PSU I had recently purchased an ender 3 and after setting it up and plugging it in, I received an electrical shock from the power supply. I live in the UK and so I was provided an EU to UK adapter which I used and I set the voltage to 230 V.

Does anyone know why I was shocked and if there is any solution? Was it because EU to UK isn’t grounded (or am I wrong)?

Would an older 10 amp monitor power cable work better as it’s grounded?

The "shock" is likely from noise filtering circuitry at the power supply's input. For filtering, every power supply has a small capacitor that connects the live input wire to ground (a so-called "class Y capacitor"). A small amount of current can flow through this capacitor, which can give an annoying, but otherwise harmless shock/tingle. Grounding the power supply would solve the problem (which you should do anyways, because it is dangerous to run electronics that are supposed to be grounded without ground).


BLTouch error causing bed and nozzle temp setpoints to change to zero I replaced my CR-10 motherboard with no problems and ran fine for a few weeks, then decided to add a BLTouch. BLTouch was enabled from the config.h during compile.
I had heating issues at first but eventually figured out I had the thermistors plugs swapped on the motherboard. In the past, I never used start and stop G-codes because I only printed printer upgrades off of Thingiverse while learning to print. My prints weren't starting until I learned more about G-codes and added G29 and G29 to my Cura start codes.
I tried a piece that I've printed before because I knew it worked ok. I preheated the bed and nozzle first, then started the print. The G28 initiates and homes, then the G29 does the 9 point bed leveling, then just sits there and does nothing.
BLTouch behavior during the process

BLTouch moves to "home" from center, with probe up and red light
With the light still remaining red, BLTouch goes back to the center
The BLTouch light turns blue once at the center, and drops the probe and lowers until probe touches and the light turns red
Then raises again and the light turns blue, lowers again until probe touches bed then the light turns red again
The light stays red and raises Z axis a little - and stays at center, still red
The probe stays at center and red until reaching preheating temps
After selecting file the probe moves to 9/9 points, with probe raised and blue light (drops probe and lowers until touching and turns red, then raises and turns blue)
Once the last probe location is checked, BLTouch is still red and temperature settings from project file are set and heating starts
The setpoints of bed and nozzle are reached (successfully heated)
After heating, the setpoints switch to zero and temps start dropping towards the zero set point (cooldown) and never moves after that and shows status "Stopped"

Pronterface - manual attempts
I connected through Pronterface so I could see the exact details.
When I run a G28, from Pronterface:

It goes to lower corner and is still red
Returns to the center, probe drops and turns blue
A few seconds later it drops until touching the bed and turns red
Raises up again and turns blue, then drops BLTouch again until it touches the bed and turns red
Then raises up again, but stays red this time
I get an error in Pronterface "Stop called because of BLTouch error - restart with M999".

After it levels 9/9 points1, Pronterface shows a BLTouch error, the printer display shows print stopped, and the bed and nozzle setpoints had changed to zero. They both had already started cooling. I kept the start code simple just enough to get the print going.
I have no idea what the BLTouch error is but just that it caused two temperature settings to go to zero. Any help would be great!

1 The 9/9 points I'm referring to is when I run G29 and my config has 3x3 grid option selected so the G29 probes 9 points total with the BLTouch.

I was wondering if it had something to do with my Z axis and BLTouch. When I unplugged the Z Axis on the printer the extruder wouldn't lower only raise so I plugged it back in and it moves in the right directions. The mother board I'm using is a SKR E3 Mini V2 and the BLTouch is 3.1 On that version motherboard the BLTouch plug has all 5 wires combined in one plug, where on other versions it has a three wire plug for the BLTouch and the wires for the Z axis from the BLTouch has a seperate two wire plug with it's own plug in spot, but I've read about instances where users had to plug those two wires into the motherboards default plug for the printers Z axis which is usually unplugged. I decided to depin the BLTouch Z axis wires from the 5 wire plug and depin the printers z axis two wires and repin that plug with the Z axis from the BLTouch and plug into the spot on the motherboard that is normally used by the printers wires, and that fixed the problem. Here's the link on Github that board manufacturer posted about the issue,  https://github.com/bigtreetech/BIGTREETECH-SKR-mini-E3/tree/master/firmware/V2.0  and thankfully that was my exact problem.


Can I use 20 gauge wire for my Mk2a Heatbed? I purchased the following wire for my MK2a heated bed:

McMaster Carr
1 8209K11 840 Degree F Braided Oven Wire 20 Gauge, Tan, 10 ft. Length 1

Will this be acceptable?  I'd like to print with ABS, which I know that the heatbed has to be hotter than when printing with PLA.

Your wire should be rated for at least the necessary 11 amps which the MK2a heatbed is supposed to take.

You can check this by measuring the resistivity of your wire:

  Always test the heatbed wiring for resistance. Remember, at 10A, 0.1Ohms means 1V voltage drop means 10W dissipated by the wiring!

as taken from http://forums.reprap.org/read.php?392,493405 (useful read for seeing what CAN actually happen)

Did you read through the following links? They might clear up some questions:
http://reprap.org/wiki/PCB_Heatbed
http://reprap.org/wiki/Heatbeds_-_A_beginner's_guide

I personally would use 1.5 mm² cables, which translates to about 15 gauge wire.

*edit: This is a nice table to check:
http://www.powerstream.com/Wire_Size.htm


Cura printer settings for Alladinbox SkyCube 3D I've just purchased an Alladinbox SkyCube 3D that I want to use to print board game miniatures and other fun stuff.

However, the instructions do not give the settings I need to put into software like Ultimaker Cura, and this is where I need some help so that I can generate the G-code files from models I download from MyMiniFactory.

I know it uses PLA and the extrusion temperature should be 210°C. However, I need help with the other settings.

Can someone please point me in the right direction? Is there a better software I could be using? Where can I find settings?

Thanks.

UPDATE: For those wondering "what" settings, I would probably start with the printer and extruder specifications. The following is my best guess.

and

I'm basing these settings on the device specs on this page:
Link to Alladinbox specs

Okay, after some research and experimentation, I've come up with some settings that seem to work.

Firstly, some specs about the Alladinbox SkyCube 3D:

Firmware: Marlin
Nozzle diameter: 0.4 mm
Nozzle speed: 20 to 70 mm/s
Layer thickness: 0.1 to 0.4 mm
Printing area: 110 x 110 x 125 mm (WLH)

Note: There is NO cooling fan present and the base is NOT heated.

Now for the actual printing settings...

I'm using the PLA supplied with the printer so far, and it works well at a nozzle temperature of 210C.

I'm printing at 0.2 mm per layer, which seems to afford to a good level of detail. I've printed a scanned Greco-Roman basin, and the details are very nice indeed.

So far I'm using a 20% line filling, and this seems to give the structure a good solidity and strength. I'm also operating the nozzle at its maximum speed of 70 mm/s and it seems to work just fine.

Obviously, I'm still experiments, and different materials may require different settings, but overall I'm very happy. I hope this post helps someone.


Are there any "best" or at least "common" practices to handle allowances in OpenSCAD code? I'm designing a few mechanisms with OpenSCAD, and one of the parameters that need adjustment between printers/filaments is allowances between pieces that need to be assembled together (for example, if I want a "5 mm diameter pin" to fasten two pieces together, how much larger than 5 mm will the holes / how much smaller than 5 mm will the pin need to be).

Currently I approach the problem by setting a global variable allowance and manually using it in the code, something like:

module pin(radius) {
    cylinder(r = radius + allowance)
}

module hole(radius) {
    cylinder(r = radius - allowance)
}

I have no real world experience with design though, so I wonder if there are common or coding best practices to account for allowances when designing parts like for example:

specific modules to be used,
conventional names for variables
specific techniques to be used (scaling? vectors?)
conventions (like only use tolerances on the fastener, not the fastened object)
...?

To clarify: I'm not looking on advice on how to plan the dimensions of my designs.  Rather, I am looking for advice on how to organise the OpenSCAD code generating them.

It helps to understand the different aspects of dimensions, so you can use the terminology correctly.  This will help you define your variables in OpenSCAD with correct names.  (Tolerance is the wrong term to use.)  And once you have correct names, you'll understand how to specify the dimensions in OpenSCAD.

Tolerance is the amount of random deviation or variation permitted for a given dimension.
Allowance is a planned difference between a nominal or reference value and an exact value.
Clearance is the intentional space between two parts.
Interference is the intentional overlap between two parts.

Two other terms

Accuracy is the maximum dimensional variation between parts.  A machine cannot produce parts with a tighter tolerance than its accuracy.
Precision is the size of the steps your machine is capable of. It is often confused with accuracy.

In your case you need to define the allowance in order to create the clearance you desire.

To design your 5 mm pin and 5 mm hole, you need to understand your machine's accuracy.  The printer could print the pin larger than 5 mm or smaller than 5 mm.  Or it could print the hole larger than 5 mm or smaller than 5 mm.  You'll need to print some pins and holes and measure the differences between what you defined and what you printed.  The difference between the largest and smallest measurements you take is your machine's accuracy.  And be sure to check the accuracy in your X, Y, and Z dimensions; your printer might have a difference between them that would impact the roundness of the parts.

Let's say that your printer's measured accuracy is ± 0.2 mm.

Then, we move to clearance.  What is the minimum gap between parts you are looking for, and what is the maximum you can accept?

Let's say you want a clearance of at least 0.2 mm between the pin and hole, but no more than 1.0 mm.  Since your accuracy is ± 0.2 mm, your pin will be 5.0 ± 0.2 mm, so the hole must therefore be 5.6 mm ± 0.2 mm.  The minimum tolerance condition would be an minimum sized hole (5.4 mm) and a maximum sized pin (5.2 mm); the maximum tolerance would be a maximum sized hole (5.8 mm) and a minimum sized pin (4.8 mm).

Note that a clearance of 1.0 mm might be too sloppy for your application.  You might think to tighten the tolerances to 0.05 mm in order to reduce the clearance.  But if your printer can't produce a part that meets your specified tolerances, you would need to find a different way to manufacture or finish the parts.


Heated bed thermistor placement I just recently upgraded my Printrbot Simple Metal with a heated bed (and longer x-axis). I looked up some tutorials, and all of them placed the thermistor as in the picture on the left below, so I did too. However, the design of the heat plate seems to strongly suggest thermistor placement as in the picture on the right, inside the small hole near the center.

I can certainly see the upside of that. The reported temperature may overshoot the average bed temperature (the reasoning used in the tutorials I read), but most of my prints are built in the center of the bed, and the center placement would surely make the temperature control system more responsive.

What are the pros and cons of these placements? And what would be the proper technique for putting the sensor in the center? Should I still use kapton tape? Do I need to make sure the thermistor makes physical contact with the aluminum of the print bed?

Depending on thermistor type you can get values from around 1ohm/C to 0.01ohm/C
so placing it on particulat place on heatbed (HB) could be very important. If objects are placed in the center then it's quite obwious that thermistor should be placed also in the middle.

Another issue in terms of thermistors are the wires. Because thermistors can be so sensitive then wires should have as less influence as possible on its temperature capacity. That's why wires and thermistor legs are so thin. Generally thiner than regular element's legs.

Answering your question - I would say it's better to put thermistor in the center hole, to use thermal grease in the hole so thermistor would have contact with HB. And personally I would use special thin wires to connect thermistor to the board. Kapton tape is then usefull to position thermistor head in the hole and in the thermal grease. Have a look on the picture.

I have such configuration. (In fact I got additional insulation as mentioned in this thread).

I would not recommend to use circuit board tracks as a thermistor connectors at all, but it's my opinion of course.

[edit]

Please be careful - thermal grease can be electrical conductor or insulator. You should choose insulator because short circuit thermistor legs will cause measuring impossible.

[edit2]

As you know HB is not even necessary when you print PLA so in this case it can be even better to not have heating at all than to overheat the bed. Because if you put your thermistor near to the edge of HB then (as said by Leo Ervin) the difference can be at level of 20C so if you heat around 70C and you get 90C your model can become soft on the bed surface and it will loose dimensions or you'll get elephant foot.

As stated in the comments - it's not really big deal whether you measure the temperature in the center of somewhere around. The issue is what level of perfection is ok for you.


Adding custom M Codes to Marlin If I wanted to add my own custom M Codes in Marlin - in which source code file would I do that?

In the file Marlin_main.cpp on line 7131 there is a switch case:

(To turn on line numbers go to File>Preferences and click Display line numbers.)

case 'M': switch (codenum) {
  #if ENABLED(ULTIPANEL)
    case 0: // M0 - Unconditional stop - Wait for user button press on LCD
    case 1: // M1 - Conditional stop - Wait for user button press on LCD
      gcode_M0_M1();
      break;
  #endif // ULTIPANEL

  case 17:
    gcode_M17();
    break;
  etc.....

Adding another case with an unused number such as 5 and then the code you want followed by a break should do the trick. Ex:

case 5:
   doABunchofCoolStuff();
   myservo.write(thebestposition);
   break;

-AC


Converting an undirected graph to optimal G-code paths I am developing an image to gcode program, that would recognize edges and generate corresponding G-code to be sent to a plotter. I was able to detect edges using the Sobel operator; then the edges are converted to an undirected graph using a search heuristic of my creation. Converting a graph to functional gcode is not difficult: depth first search does the job. The issue is that using this method the generated paths for the plotter are far from optimal, since they contain many movements that could be removed or shortened just by printing paths in a different order. This can be seen clearly in the images below.

Is there an algorithm that can convert an undirected graph to optimal G-code paths? Otherwise, if there are none or the problem is NP complete, what heuristics can be used to generate almost-optimal gcode (e.g. the ones used in programs such as Inkscape)?

The graph on the left is converted to the gcode on the right using depth first search on the connected component of the graph. The white and red lines represent, respectively, the visible writes and the invisible movements of the plotter. The G-code can be found here.

Quote of comment of R.. GitHub STOP HELPING ICE on question reads:

  Pretty sure it is NP-complete (equivalent to travelling salesman problem), no? –

This is correct; this is route optimization at its purest, and is by no means a new problem. You want to travel the shortest total distance between all vertices of what's essentially a totally-interconnected graph; there are no inherent limitations on going from anywhere, to anywhere. The TSP is the general-case statement of this problem, which your problem specializes only slightly by predefining certain movements along edges as being required in the final path (but those edges can be traversed in either direction and in any order.

What makes this complex on its face is the sheer number of possibilities that an exhaustive solution to the TSP like Held-Karp has to evaluate. You have no real constraints regarding which points to travel between; you can go from anywhere, to anywhere. Only a relatively small number of edges (your extrusion lines) are known requisites, and those can theoretically be traced in any order.

If I'm reading your graph right, you start near the top center, then go to the top left, then to the s-curve, then you jump to the main shape and start traversing it from the "right arm", turning downward through the "body" and "left foot" of the central shape, then up to the "right hip", through that leg to the foot, then back up to the "left shoulder", through that "arm", etc.

If I have that right, then you definitely have "endpoint detection", where you are identifying points in the graph that are part of only one line segment (and therefore will require a travel move to get to or from them), and are planning travel moves to and from those points. Very smart. I would be interested in knowing exactly how you choose the next one to travel to. Obviously the closest endpoint of an undrawn line is a natural choice, but your algorithm doesn't seem to be doing that. Right from the off it chooses a relatively further point to extrude and then comes back to the rest of the shape. That actually seems to be the most efficient move in the overall graph, because if you don't get it early you will very likely make a big move to get back to it later, but making that decision in a non-exhaustive way doesn't seem intuitive.

Anyway, your algorithm was doing pretty well at path choice, up until it finished drawing the "right leg". The most efficient move from there would be to go to the bottom of the "Y" looking shape to the right of the main figure and trace through that. When that's done, the closest undrawn line segment will be back at the left shoulder of the main figure, which will lead you to the small dots, and you'll end in this region with relatively small travel moves. Overall, I think that a "closest remaining endpoint" strategy would be near-optimal at every turn; when you reach the end of a drawn line, look for the endpoint that is closest to your current location. It would make most of the decisions your existing algorithm does, and a few better ones. It's not always the best choice (case in point, the dot at the upper left, which is never closest to the end of any other move and so will be ignored until it's the last one left) but more often than not it is.

My programmer savvy says you also have some recursive intersection tracing ("tree-walking"); the algorithm sees that there are multiple paths to draw from a single point, remembers that point and then picks a path. When it reaches an end of a chain of extruded lines, it goes back to the most recently-encountered intersection, re-evaluates available paths, and picks the next one until all paths from that intersection are drawn. Then you skip back to the previous intersection, and so on in a recursive LIFO fashion.

While that's also generally a smart way to approach it, it makes a couple obviously inefficient moves, such as from the "right foot" of the main figure back to the "shoulder" (which is the most recent intersection visited but not fully drawn by that point). The more efficient move is simply the closest remaining endpoint, the bottom of the wonky-looking Y to the right of the main figure.

How you choose intersection paths to prioritize is also key. In general, taking the route that will lead you to the closest intersection or endpoint will reduce the possible backtracking you have to do. However your algorithm seems to prefer the longest path from a fork (or the one with the most forks along it) and that turns out not to be a terrible way to do it in this particular graph.

Now, having drawn the "left arm" of the main figure, it is totally beyond me why your algorithm chose to cross the graph to draw the wonky Y, then cross back over to the left side. That is by far the least efficient move it makes and the one you're probably pointing to yourself. The most efficient path from the end of the left arm of the main figure given what's left to draw is straight-up closest-endpoint, filling in dots and lines on the left side, then making one move across the graph to the wonky Y. Closest-endpoint would actually have already filled in that Y as covered earlier, and you'd end your graph traversal in the left region of dots and small lines. You may have one or maybe two relatively inefficient moves between corners of this region on the left of the graph depending on the closest point calculation, but those are minor compared to the moves made across the graph. If your algorithm is producing deterministic results for this graph, I'd debug it and step through to that point, and figure out why on Earth it thought that sequence was preferable. Optimizing that decision may very well be the key to a near-optimal overall graph-walking strategy.


Complete list of fasteners for the Sintron Kossel TL;DR
I need a complete list of fasteners (bolts, nuts and washers) for the Sintron Kossel.

Has anyone bought this kit, and knows the answer, or knows where this is documented?
A complete list would be great, but in particular, I need the dimensions (M2.5/3/4/5? and length) and quantity of the bolts (and nuts) which:

fasten the PCB mounted mechanical switches to the PLA rectangular end stop spacers/holders, and;
fasten the PCB mounted mechanical switches and the PLA rectangular end stop spacers/holders to the extruded 2020 aluminium.

I have:

Searched the web, but to no avail;
Read the product page, which states only "screws and nuts provided";
Contacted Sintron, but not had an answer;
Obtained the Sintron build manual but there is no list contained therein, nor contains details about the fasteners relating to the endstops, and;
Obtained the Blomker manual, from which the Sintron manual is copied, but that also has no list (as well as not being relevant with respect to the endstops).

Note that I am only interested in the fasteners specifically for the Sintron Kossel and not the Kossel in general. The Sintron uses the PCB mounted mechanical switches (with four holes), and not the simple barebones mechanical switches (with two holes), and uses 2020 aluminium1, not 1515 OpenBeam:

Why? Because I purchased only the 3D printed parts from Sintron, and I am sourcing the rest of the parts cheaply, either locally or from Chinese suppliers on eBay.

1 In my particular case, there is an additional complication. The profile of the non-standard/non-"European" 2020 extrusion that I am using, does not take T-Nuts, only M5 hexagonal nuts (it is unbelievably difficult to find the standard 2020 extrusion in Bangkok). Combine that with the fact that the Sintron kit uses only M3 nuts and not M5 (I only discovered this after purchasing the printed parts kit (see the email from Sintron, in my answer below) - not through lack of research, but because there is no available list of fasteners), then I have the problem of finding a nut to use (see Fat hexagonal M3 nuts, with outer diameter greater than 6 mm).
Here is a photo

I found two lists for the Kossel mini (the documents you referenced are for a mini, so that is what I am assuming you got).  One as a Google Doc and one as an order sheet

Both seem to list all the fasteners.

Here is a Sintron mini carriage assembly and it lists the hardware included

I found an ebay listing for the Sintron 2020 Rails.  The recommended screws are M3x20mm and here is the infor on the required t-nuts.

Happy building.


What is the benefit of the Arduino shield based electronics? Some electronics come as a single PCB. They have CPU and everything on just one board.

Other electronics are a shield for an Arduino. So these are always two boards. The Arduino and the other PCB.

You probably don't want to exchange the Arduino unless it is broken. Does it break that often or are the two boards just the predecessors of the one board solution?

What are the benefits/downsides to having one/two boards?

Many 3d printer motherboards are based on Arduino/Atmega microcontroller and just add some stepper motor drivers, MOSFETs and such in a single board. That explains why you use the Arduino IDE to update or modify their firmware.

Now why you would want to use an Arduino + an Arduino shield board like RAMPS? Well if you're not good at electronics, are happy with the cost of your own board, don't care much about upgrades/modding beyond what is possible with your board, maybe you shouldn't, it might be overwhelming.

There are several advantages with using Arduino with a shield for your 3d printer, "two boards are not just the predecessors of the one board solution", no.

1) It is moddable/exandable/upgradable/has replacable parts.
If your printer came with its own motherboard that doesn't have additional or enough pins to add more fans, enclosure lights, a second extruder, an LCD and you want to, it sucks. RAMPS can do that, it has plenty of extra pins.
It is upgradable. You want to replace the stepper drivers with a new one? Or you accidentally damaged the one you have? Fear not, you can just replace that instead of the whole motherboard.
Think if it like other motherboards being PCs on which you can't change the CPU, RAM and GPU.

2) It is here for a long time, you will be able to acquire one for a long time.
There isn't just one company making RAMPS or similar sheilds. Sometimes 3d printing companies go out of business or stop producing your particular motherboard. RAMPS is likely here to stay. Because Arduino is very likely here to stay.

3) As said above, not just one company owns or makes RAMPS or other Arduino shields. Besides the possibility of your motherboard not being produced anymore, there's also the advantage of not being at the mercy of one companies pricing and shipping policies. This is true for some other boards as well though.

4) It is possibly cheaper than what have you. I don't want to post a link, but one company right now is selling their derivative of Printrboard for like $180. Check the cost of Arduino Mega, stepper drivers and a RAMPS board yourself, quite a difference. That said, there are some boards which are close in price.

5) It's an Arduino. Why is this a good thing by itself? Because many people who have a 3d printer are tinkerers/makers and they already use Arduino for other projects. It is open source with a rich library to control many things. The modding and upgrades for your 3d printer which can be done with Arduino is another level higher. Or it can be a good learning experience for your future Arduino projects. If on the other hand you already use Arduino and are experienced with it, you might use it just because you know how to control it/fix it better than some specialized board you haven't seen before. Plus for a guy like you your 3d printer's motherboard will be an "off-the-shelf" part, that's nice, right?

Video on RAMPS: https://www.youtube.com/watch?v=FYJn6FuWOv4


Controlling more fans with RAMPS board I am using RAMPS 1.4 with Marlin. With Marlin, you can control a large number of fans with the M106 P<fan index> command. I'd like RAMPS to control some additional fans, independent of layer fan. Are there free pins on RAMPS 1.4 to do that? Otherwise, could I setup the RAMPS board to send a command to a separate Arduino? I also have Octoprint if that makes it easier.

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

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

#if FAN_COUNT > 0

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

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

#endif // FAN_COUNT > 0

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

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

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

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

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

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

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

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

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

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


How do I remove a 3D print stuck to the glass build plate I printed a model and now I can't remove it.

I have been chiselling away with a putty knife and made little or no progress.  I even heated the bed up to 70 °C.  That really didn't seem to help.

Last time, I put it in vice, and tried to free it that way, but instead I broke the glass.

Suggestion?

It's useful to know what material you used for the print. Also, you've referenced the glass that broke in the vise, which implies a glass bed, but did you use any adhesive spray or other application?

Allowing for all of this unknown information, there may be a solution for your release. Our library makerspace has a small bottle of 50-50 water/denatured alcohol, although isopropyl alcohol should also work if your glass is not coated with a special film such as PEI. Heat up the surface of the glass to your usual temperature (50-60°C) and apply a few drops of the mixture to the edge of the print.

It will evaporate pretty quickly, but some of it will work under the glass/model interface. Apply a bit more while the glass is still warm. Continue to apply until the the evaporation is no longer accelerated.

Considering the difficulty you are experiencing, it may be necessary to repeat the heating sequence multiple times in order to get enough wicking of the liquid to effect a release.


Ender 3 weird drop in bed level I have an Ender 3 a 3DTouch, with the SKR Mini E3 1.2 board.
From one day to another the probe started producing this pattern, where the right side of my bed (5x5 mesh, tried with 3x3, 7x7, all produce the same pattern) just drops by a significant amount.  The bed is the Creality glass bed. I tried switching it back to the stock Ender 3 plate (non-magnetic), but no physical sign of this drop can be seen by the eye.
Probe testing with M048 usually gave me Range ~0.005, and standard deviation between 0.001-0.0025 both in the problematic part, and any other part on the bed.
What could cause this problem?

Considering this is an Ender, it is probably caused by the rollers on the X axis or the un-driven right Z post.
I've also seen behavior like this caused by a too constraint PTFE Bowden tube, at the far end the tube pulls on the carriage lifting it slightly upwards, hence a different/larger gap.


Maker Select Plus 3D Printer Head Size Settings for Cura I want to print multiple objects in a single G-code file on my Maker Select Plus 3D Printer.

On the Cura "Machine>Machine Settings..." menu, what are the correct settings for "Printer head size" in the upper right quadrant?

My best guess is below:

Note 1: I'm particularly concerned that I got the min and max directions correct.  For instance, I just swapped my Y min and Y max values because when I tried them the other way, the print head impacted the first object when printing the second.

Note 1.5: I added 10 mm to my settings because I was concerned that Cura wasn't accounting for the width of the raft that I usually use when I print.

Note 2: From what I've read online before posting this question, this printer may be physically the same as the WanHao Duplicator i3.

TL;DR

The settings that you seem to need can be found here: Print One At a time settings? CURA:

  You actually can!

  Providing that none of your object is too tall (taller than the Gantry
  clearance). Also the objects cannot be too close from each other (when
  you activate the option and move objects on the bed, you see a gray
  box around them showing this limit).

  The reason you cannot use it at the moment is probably because you
  didn't filled the printer head size parameters (Menu "Machine ->
  Machine Settings..."). You will have to measure them, but on mine
  (Australian clone of the i3) I use those values and it works fine:

  Head size toward X min: 30
  Head size toward Y min: 70
  Head size toward X max: 60
  Head size toward Y max: 50
  Printer gantry height: 35

  Those are "conservative" values (a little bigger than the actual
  values). It means I'm losing a little bed space, but I prefer that to
  the risk of having the print head knocking out previous prints if one
  of the measurements is too low :o).

  PS: The option will automatically disable itself if some object
  dimension are too big to avoid collisions

To be fair, the rest of the thread is people debating whether you can successfully achieve sequential printing, or not, with the Wanhao Duplicator I3.

However, the setting above seem to be the settings that you are looking for. Apart from Head size toward X max, they also correlate, pretty much, to the settings that you have already determined. As the poster notes, their settings are, somewhat, on the conservative side, which would explain the difference.

Extra detail

If this is so that you can achieve sequential printing1, then this may not be suitable for your printer, unfortunately. Sequential printing works best for printers with a long nozzle with nothing (fans, X-axis gantry, etc.) around it, for example a delta printer with a low hanging nozzle would be ideal. Your printer type has a wide head with attachments, as well as an X-axis gantry, and so the clearance is less than that of an (ideal) delta.

See WanHao Duplicator i3 Printer Head Size Settings for Cura for more details.

If you wish to go ahead and still try it, then from the same link:

  The way to measure is lower the nozzle to the bed.

  Then measure the space taken up around the nozzle by the heater block, fans, mounting, the motor, and finally, the distance between the X axis rods and the bed "WHEN the nozzle is touching the bed".

  That gives you some idea of the clearance you have where an ALREADY printed object can exist on the bed and NOT get slammed into the gantry or moving head when printing a second sequential part.

  Just a visual with a moving bed printer and it's not promising.
  Not impossible, but in a 200mm square build area, you might really only get 4 objects at a time in the 4 quadrants.

  Even that is height limited because the gantry will slam into it at a certain height.

  Maybe some weird staggering pattern.

Also, of use, for obtaining your own measurements, from Ultimaker - Cura 14.07 Printer Head Size:

  If I'm not mistaken all measurements are taken from the nozzle tip. So, for the first one, measure the size of your head from the nozzle tip towards the direction in X to where your machine homes.

and

  There's a tooltip when you mouse over these settings which describes what they mean.

  Gantry height is the vertical clearance between the build plate and your x-y gantry (on the Ultimaker, these are the 6mm shafts which hold the head).

  If you print two objects - one after another - then the first object must be shorter in height than the gantry height. Otherwise, the gantry would crash into the first part while printing the second part.

In more detail, paying attention to the placing of the objects can aid with any issues that you have with a low gantry:

  If you place multiple parts in a diagonal line across the build-plate so the gantry and head never intersects earlier parts after printing them, you can set the gantry height to an artificially high value, to ignore it, without problems.

  I place pieces along a diagonal from right-front to left-rear, to avoid conflict when the head homes after finishing the print. I can fit 3 to 4 small but tall pieces on the build plate that way for sequential printing.

The purpose of these Printer head size settings is to enable Cura to determine the order in which the objects are printed:

  ... none of those settings are important as long as you only print one STL file at a time. It's when you want to print multiple objects "one at a time" that these numbers have a purpose - it allows Cura to figure out which order to print them in and if it can do them one at a time or if it has to print them all at once.

Footnote

1 Sequential Printing is where one object is completely printed, before moving on to the next object, instead of the usual method of printing all objects simultaneously one layer at a time. This method can give superior quality prints, but not always. The main advantage appears to be reduced "stringing" of filament between objects, and a cleaner surface finish, due to reduced print head movement between objects. The process is detailed in Multi-part printing.


Producing closely fitting parts I would really like to be able to print moving parts that fit well enough to move without excessive friction, but also aren't excessively loose.  Using an Ultimaker 2, what should be my expectations be, and how would I go about produce well fitting parts?

Using a tool like Openscad to generate parametric parts is really useful because it facilitates the creation of geometrically precise parts such as cogs and drive shafts, which also have precise dimensions.  The problem arises when the parts are printed and joined together.

I recently printed some cogs that were supposed to be able to rotate freely around a shaft, which was also printed.  I made the shaft about 0.1 mm smaller than the center hole of the cog expecting it to be able to rotate freely, however I found that I had to bore out the center hole slightly and sand down the shaft.  I then found that the boring was imprecise and the center of rotation was off center.

There are a lot of factors to 3D printing parts that work and fit together.

A lot of it will be discovered by trial and error, but let's try to put you on the right path.

First your material is what matters the most. Specifically their coefficient of thermal expansion, i.e. how much can the plastic change when heat is applied. PLA's coefficient is low compared to ABS, for example. Which is why the MakerBot can print without a heated bed, but it cannot print ABS with any success.

Here is a list of coefficient of thermal expansions by material.

What you want to do next is to print out a few test items and see for yourself. Below is an example of reality vs. expectation. As you can see the circle shrinks. It will never expand. So you will always make it bigger than you need. It is also good to note in this example below that the block itself is Larger than expected. The best solution is to not expect high tolerances and build a lot of flex into your designs.

Generally you want the hole size larger. If I wanted a 4 mm minimum hole, then I would likely make it 5+ mm.

The best thing you can do is print out a tray and document how different the sizes are. Also, do the same with a print of various peg sizes. Below is an example of such a tray.

Also, you might want to look into other materials such as Nylon and Carbon fiber.
A great source of more tips. Here is a great tutorial, Designing Mechanical Parts - The Whoosh Machine by shapeways, on designing parts.
A RepRap Wiki article on different lubricants in regards to 3D printers. Most people use silicon lube for parts to my knowledge. Again, it depends on your material.

Images taken from this link, The Innovation Station - Tips for Designing 3D Printed Parts.


How do I get circles on small interior holes to adhere to the bed? I’m using a RepRap printer, PLA (Hatchbox 1.75 mm), SketchUp, and Slic3r. The heated bed is covered with a blue polyester sticker.  When I print small holes (1 to 1.5 mm radius), slicer software considers the holes outside edges for the first layer and prints them before the internal first layer. The problem is, unlike the actual outer edges, the holes have no brim and the small first layer circles stick to the extruder rather than the bed. The rest of the first layer print sticks and the print eventually recovers with slight defects depending on where the lifted circles end up. If I could print the first layer circles after the surrounding first layer was printed, this wouldn’t be an issue.  I’ve tried different bed and extrusion temperatures.  All four holes in different locations do the same.  First layer is 0.3 mm thick.  Second layer is 0.2 mm thick.

are you using hairspray or tape to help with bed adhesion? If not that might help.

Also try printing the first layer slower or try adjusting the bed level offset so you are squishing the first layer down a bit more.


Troubleshooting poor adhesion at the edge of the bed I've been printing for a week now on my new printer and have been getting great results, including great adhesion. However, most of my prints have had a fairly small footprint.

Now, I'm stepping up the types of items I'm printing, and I've started to run into a problem. Long, thin parts are starting to lift off the bed, especially at the edges of the bed.

I've read the question dealing with this issue with ABS and realize some (most) could apply to me. However, I'm printing entirely in PLA on a non-heated bed.

My question is: What is the best way to go about troubleshooting this problem? In which order should I attempt fixes to narrow down the problem most quickly?

Printer: Monoprice Maker Architect 3D (Very similar to Makerbot)

Material: PLA

Heated Bed: No

Bed Material: Something similar to BuildTak on top of an acrylic bed. (The sheet of material came unlabeled with the printer and I haven't been able to track down exactly what it is.)

There are several things you could try without spending much but even PLA will warp on an unheated bed.  I had a Legacy Kossel that I switched to an acrylic bed and had many issues with warping and prints pulling off the bed.

Some cheap things to try would be...

Adding a brim to the print.
Blue painters tape on the acrylic, remove the other material if doing this.
Place cheap piece of glass/mirror on bed and use hairspray/gluestick.
Use hairspray/gluestick directly on acrylic.  You must be careful here because first layer height is very critical to prevent damage to the acrylic from the plastic welding.  A layer of hairspray or glue should prevent it but dial in your height before printing.
If you aren't currently using a fan, you could try sealing the sides to prevent drafts.  I doubt this would change much since you are using PLA but it's an option.
If these are your designs, there are steps you can take to reduce warping as seen here.

Also many other suggestions here.


Strange behaviour x and y axis - corner of print Some background to the problem:
Several months ago I started getting poor print quality in one section of my prints (back left corner of bed) - I diagnosed that the plastic X axis carriage and the right Y axis carriage had distorted from heat over a period of 4 years running my Wanhao D4S, and the linear bearings no longer aligned properly.  I found a long gouge in the right Y axis rod and have replaced this.
I have since replaced all plastic carriages with aluminium to eliminate any potential distortion in the future.
Additionally, the 5 mm rods running in the X direction in both front and back of the printer also had slight bends in them, and I have replaced both these with 8 mm rods to enhance rigidity and prevent further bending problems.  With the bent rods there was a very noticeable vibration.
The issue I am now facing is the front right corner of test cubes I have been printing (see attached photo) are not sharp - they are okay at about the top and bottom quarter, but in the middle it is as if the X and Y axes are not travelling far enough to the front right corner, and the corner is cut off diagonally and tapers inwards slightly like an hourglass.  But as mentioned really only in this one corner.  The issue is most apparent where indicated by the arrows - although the others also exhibit to a small degree the same issue.

I have aligned all belts and pulleys, and made sure the belts are tight enough to "twang" but this does not seem to help.  All pulleys have also been re-tightened.
The printer also does seem to still have a vibration when moving along the Y axis, and is much louder than the X axis movement (which is barely noticeable).
When the belts are disconnected both X and Y axes move by hand smoothly.
Has anyone seen this issue before, or can offer a solution?  My next step was to check stepper driver current, although I don't believe this to be the problem as the issue is very consistent in its placement.
I think also overall, print quality in general is not as good as it once was before the initial troubles with the carriages started.
To help install the rear 8 mm rod, I unscrewed the two Z axis rods, but to the best of my knowledge they are in their original position.  They also move smoothly.

After one further check (stepper driver current/VREF), which I didn't think could be the problem due to not adjusting to cause the problem; it turns out this actually was the problem.
All stepper drivers have been reset back to correct VREF for their respective motors minus 10% as a safety margin and everything is printing well again.
I have no idea how VREF could have changed by itself, however thermal expansion on the boards due to constant use may be an explanation.
For anyone else experiencing similar issues and who have discounted the stepper drivers as the problem, I suggest resetting VREF to see if that helps.


Do thermistors degrade in accuracy without hard failure? Lately I've been having problems with overhangs not adhering when curvature is outward (stringing across instead) that look like what you'd see at insufficient temperature, and that go away with temperature jacked up a bit (PLA at 220°C, which is a bit extreme) or fan disabled. Is it possible that the hotend thermistor has drifted and is no longer accurate, making the actual temperature lower than nominal? Or do these things fail hard when they fail?

Yes, thermistors can drift in value as well as outright failing (usually open).
In my experience this is not uncommon in thermistors operated above 100 degrees C. The drift is typically downward in resistance so the controlled temperature will be less than the desired setpoint, which is exactly what you are observing.


Irregular 3D printed part I tried printing from an STL file on the QIDI TECHNOLOGY 3DP-QDA16-01 Dual Extruder Desktop 3D Printer QIDI TECH I. They recommend using the MakerBot software with the Replicator(Dual) profile. The 3D print that I tried is messed up.

The material used is PLA.

Could you help me determine the cause? The following pictures give more details:
(All settings which are not shown are Makerware default settings)

1  The 3D model

2  The printed sample

3  The Settings

Your print isn't cooling fast enough. With small, thin prints like this, PLA needs a fair bit of airflow to solidify before the next layer goes down. Your printer doesn't appear to have a proper print-cooling fan, so I have two suggestions:

Print two or even three of the part at the same time, spaced a fair distance apart on the build plate. This will give each of them time to cool.
Point a box fan into the front of the printer to get good airflow over the print.


Under extrusion when starting outer wall See the pictures below. I have a severe under extrusion when the printer starts the outer wall, which is resolved by the time it finishes the outer wall. It starts the layer in the same place every time, so it results in this vertical line, on one side of which is fine (where it finishes the layer) and the other side has bad gaps and the wall is much thinner.
In this picture, the problem is on the outer wall (see red outer line, the print head is moving counter clockwise.

And here is the print showing the issue. Just fine on one side, but terrible on the other, precisely where it starts the layer.  Strangely, this only occurs on the layers with infill. The top layers seem fine (despite starting in the same place).  I have disabled retraction with no effect.
Here you can see it start at the tip and get gradually better as it progresses.

Here you can see that by the time it finishes, it's just fine, and also what a contrast is between the start and end.  That should be a flush edge, there.

Another view

Is there some setting that I should be tweaking?  I've exhausted my own ideas of different tweaks to no avail.
The printer is a Monoprice Maker Select V2.  I'm using Ultimaker Cura 4.1.0.

Material: PLA
Layer height: 0.24 mm (in the pictures, but replicated with 0.16 mm also)
Temp: 205 °C, here (but tweaking this hasn't had any effect)
Retraction: Disabled

This doesn't happen on layer changes.  Although it does line up with the Z seam, you can see from the G-code visualization below that the outer wall is the very last thing it does.  The issue occurs at the start of the outer wall (still on the same layer) that it has the issue, but by the time it ends the wall (just before switching layers) it is fine.
I've tweaked a few other settings, one by one, and seeing if any have any effect.  So far, not really:

Outer Wall Wipe: 0.2 (default), 0.8, 0.0
Jerk Control - Wall Jerk max velocity change, 5 mm/s
Outer Wall before inner (Yes instead of No)
Wall Line Count (3 instead of 2): This improves it some, but I suspect just by making it a little more difficult to see

What have I done since...
I reset all settings in Cura to a default "Draft" setting and then set layer height to 0.24 mm, and turned off Infill. Then I have tried prints with different settings for "Retract Before Outer Wall" and printing temperature.
Here are those results:
These pics seem to suggest a very clear lag in extrusion.  1 and 2 are different temps.  2 and 3 are different retraction.
205 °C, 0 % Infill, Retract Before Outer Wall: Off

195 °C, 0 % Infill, Retract Before Outer Wall: Off

195 °C, 0 % Infill, Retract Before Outer Wall: On
Note: the retraction setting resulted in a noticeable pause before printing the outer wall. Retraction distance is 6.5 mm, and this is not a Bowden fed device.

There doesn't seem to be anything strange about the G-code, either.  Here are the G0 travels just before the outer wall followed by the wall.
...
G0 F7200 X106.319 Y93.413
G0 X106.26 Y93.909
G0 X107.213 Y93.658
G0 X107.8 Y92.542
G0 X107.286 Y90.844
G0 X107.509 Y90.394

; (outer wall of outside)
G1 F1328 X107.985 Y90.707 E116.98713
G1 X108.38 Y91.128 E117.01098
G1 X108.658 Y91.623 E117.03444
G1 X108.813 Y92.18 E117.05833
G1 X108.832 Y92.751 E117.08193
G1 X108.713 Y93.315 E117.10575
G1 X108.463 Y93.837 E117.12966
; (first curve complete, on to straightaway)
G1 X99.631 Y107.716 E117.80936
G1 X98.912 Y108.59 E117.85612
...

Even more done...
These are retraction off, and 205 °C
If I set the "print speed" in Cura to 20 mm/s (normally 60 mm/s), the outer wall speed is reduced from 30 mm/s to 10 mm/s. The result is quite good.

If I leave the "print speed" at 60 mm/s and adjust only the outer wall to 10 mm/s, it's still quite good.

So it seems like an acceleration thing.  If I can figure out how to get it to slow down in just the right spots or compensate in some way, then perhaps I can make this problem go away with minimal sacrifice in total speed.

Based on other comments, answers, and question edits so far, in addition to your original question, I believe there are possibly two things going on here: incorrect retraction settings, including a misunderstanding of which settings are relevant and what they do, and issues related to slow acceleration. Both relate to misdepositing/loss of material.

First, some basics. When the filament is advanced to the point needed to extrude material and print at the intended volumetric rate, it's under significant pressure, compressed between the extruder gear and the nozzle. My understanding is that your printer has a direct drive extruder, not a bowden, so there's far less compression than with a bowden setup but it's still there. This means that, if you try to stop extruding, it's material will continue to come out of the nozzle, just at a decreasing rate, until the pressure dissipates. This effect is reduced but still present if the nozzle is held-against/moving-over already printed material, and heavy if moving over empty space, even moreso if moving across sparsely-filled space like infill where it will bond with the already-deposited material and get "stretched"/"pulled" out.

The idea of retraction is to pull the filament back when the print head is moving to a new location without trying to deposit material, to relieve this pressure and prevent unwanted misdepositing/loss of material, and to reverse the process, putting the filament back exactly where it was when the last printed line ended, the next time it starts trying to deposit material.

The relevant options in Cura are:

Enable Retraction - must be on
Retraction Distance - should be at least 5-6 mm for bowden setups, probably more like 0.5-2 mm for direct drive.
Retraction Minimum Travel - should be 0
Combing Mode - try different settings. Off is probably the best relative to your issues, but hurts your print time a lot for certain models, and can hurt quality in other ways.

Everything else related to retraction is fairly irrelevant, especially "Retract at Layer Change" is a niche option and not typically useful. As I understand it, turning just "Retract at Layer Change" on does not mean retraction is on.

Now, your other issue may be acceleration. Extrusion works best as acceleration speed approaches infinity, because the extrusion rate and pressure needed to extrude will be fairly constant for the entire line/curve. If acceleration is very slow, pressure will be wrong during the start and end of lines. It's likely that, due to high pressure, excess material will get deposited at the end of one line while slowing down, then after moving to start the next line, even if you retract the filament, you'll have insufficient pressure at the nozzle after reversing the retraction to start the next line.

A jerk limit of 5 mm/s is really low. I'm used to more like 20-30 mm/s. You don't say what your acceleration limit is, but it's probably also low. Slow acceleration has minimal impact if your max speed is slow, because you quickly reach the max speed and most of the print speed (and thus extrusion rate) is steady. But if you want to print at high speeds, you need high acceleration. Try and see if you can increase it. Or accept printing at slow speeds.

Another option, if you're open to hacking on your printer, is replacing the stock firmware with a recent version of Marlin with the Linear Advance feature. It does the math to model the filament pressure as a spring, with a spring constant you can tweak, so that it can compensate for varying print speed and end lines with approximately no pressure remaining.


Should I include fillets on my 3d printed parts? A fillet is like a rounded corner but on the inside of the corner.

Does it make a difference (structurally) to use fillets on a 3d printed part?

If your part needs structural support, then the word is: absolutely. Fillets provide the added support when you need it. If your part has a meeting line which is sharp - 90° (or perpendicular), there is a natural stress riser in your design. This is a weak spot where a crack can form. If strength is needed and the fillet won't interfere with the design, it's definitely something you should include with your part.


Why could my opaque PETG be printing "transparent" in certain places? I'm printing with opaque grey PETG on glass. The intention is to produce a house number plate, so a shiny, production quality finish on the bottom. For this reason, extruding at 245 °C with a bed at 95 °C, to give a perfect glass finish with no filament lines showing. Smaller test versions have been very promising; this seems to be the maximum temperatures before warping or a severe elephant's foot arises.

However when printing the full-scale version, areas of the first layer of filament seem to go completely "transparent"; there seems to be filament there - you can feel the filament "comb" when you run your finger over it, and it feels a similar thickness to its neighbours.

On the attached photo you might think that those gaps are simply not printed yet, however you can see on the top right corner that it's actually started on the next layer.

What could be causing this? Is it a blockage which is interrupting flow, and maybe insufficient filament is being "stretched out"? Or maybe it could be something to do with temperature? Could it be insufficient layer height (I'm using 0.2 mm, but 0.24 mm on first layer, increasing further reveals filament lines, but tested higher and lower on smaller scale with success).

I've tested a range of extrude and temperatures and chosen the temps with the best results; but when I "go large" this always seems to happen. I've also calibrated the bed height using the 3 point adjustment screws on this printer (Qidi X-Plus). (The transparent areas are actually occuring in the center where the smaller test prints where working perfectly, so don't know how it could be to do with this).

Are you using Z-hop? Is there any play in the Z-axis direction? It appears that parts of the first layer are printed much thinner than other parts.

What can happen if there is a little play in the Z-axis direction that the nozzle doesn't return to the same level after a Z-hop movement (e.g. backlash in the leadscrew nuts).

The "transparent" printed part appears thinner, this must indicate that the Z positioning is not up to par.


Combing and Coasting Here is my understanding of Coasting: Coasting stops extruding early in a move so that the string itself will finish the layer.

Here is my understanding of Combing: Combing reduces the need to retract during travel moves by making sure that the nozzle oozes where you want it to on the way to the next point.

I'm curious as to what types of prints these are good for, and also what types of prints these would be bad for.

So for instance, Coasting is good for prints that have a high propensity to exhibit stringing, but what types of prints would I want coasting to be deselected for?

Similarly for combing, although I know neither the pros nor cons other than it reduces the number of retractions (decreases wear on extruder?)

In short, basically I'm looking for the pros and cons of both of these settings. Also if my understanding of the settings themselves is incorrect please let me know. Any advice would be much appreciated.

If anything, combing and coasting allow to mitigate problems that are printer and filament specific, rather than dependent on particular STL models.

Combing helps - as you imply in your question - with materials prone to oozing (e.g. PETG)

Coasting is particularly good for printers with a bowden extruders and low jerk/retraction speeds.  This is because in bowden extruders there is a lot of filament compressed between the teeth of the extruder servo and the nozzle, and that pressure doesn't instantly disappears when the printer stop "pushing" (i.e.: turning the extruder servo).

I believe there are firmware implementations where coasting is also used when approaching sharp corners.  This is to mitigate the problem of "blobs" forming there.  The mechanics of this are similar to those explained above: the pressure within the extruder cannot be instantly relieved and coasting accounts for that.  The only difference being that - because of the micro-scale of the problem - even non-bowden printers are prone to corner blobs.

In my experience (I look forward to other answers to "compare notes") there are very few reasons not to use combing.  The only risk with it is that it increases the risk of the nozzle crashing into the print and destroying it.  It sound dramatic, but it is in practice it requires everything to work against you: a big blob on the previous layer, the nozzle passing exactly there, poor bed adhesion... for me that has proved problematic only when printing miniatures with a 0.2 mm nozzle and 0.05 mm layer height (on a cheap printer).

There is of course a (usually very small) time penalty in combing, as it typically requires the nozzle to travel longer paths.

In my experience (again: YMMV, I look forward to more answers!) the limitations of coasting are related to the way it is implemented.  For example, a given coasting setting may work great for getting rid of oozing, but will create under-extrusion in other parts of the print, as the calculations performed within the firmware may be spot-on for linear motion but inaccurate for corners, or vice-versa.

I believe this is the reason while some popular slicers (like cura) have this setting hidden under "experimental".


Why 3d print has an ugly surface? Lately I'm having some issues with white PLA.

It sticks nicely to the print bed, but the very last layer of the print comes out really ugly.

I'm not a native english speaker, I don't know what is the proper term to describe what I see, so I'm attaching two pictures instead:

As you can see, the surface has wrinkles. If you touch it, it feels like a jaggled surface. What is causing this? I've never had this kind of issue before with the same PLA roll, what can be the issue?

I have a prusa-style printer, 45°C printbed, 225°C hotend, 10% hexagonal infill, 30mm/s print speed. The object stays on the surface without warping, I can tell for sure that it isn't detaching from the bed and coming up towards the extruder.

It happens only for infill, perimeters are just perfect.

What can be the issue here?

This appears to be the result of your hot end (nozzle) temperature being slightly too high.

I'd recommend lowering your nozzle temperature by a few degrees and retrying the print. If the quality improves you're good. If it doesn't improve significantly try lowering a few degrees more.

If you lower the nozzle temperature to the point that you start having other adverse effects, try going back to the lowest temperature that works and check your infill and shell settings. The top shell of your part may be too thin given the span (top surface, maximum travel length). i.e. the strands being printed on the top of your part are sagging between your infil hex's, by thickening this part in the slicer settings the next layer on the roof won't sag as much as the previous.

By increasing your number of shells or shell thickness (or roof thickness, i'm not sure on the exact terminology) you could effectively hide the effect you're seeing by thickening this section of your part.

Best guess though is nozzle is a bit too hot.


What else can I use for a 3D Printer frame? I am building a 3d Printer here:

Build Volume: X:300mm, Y:300mm, Z:400mm
Mechanism: 1 motor, 2 leadscrew, 4 rod Z-axis; CoreXY head movement
Belt: GT2 6mm Steel Core
Pulley & Idler: 20T 6mm, Bore 5mm
Extruder: E3D Titan, Pancake NEMA 17
Hotend: E3D V6
Motors: XYZ: 0.9deg NEMA 17 34mm
Electronics: Mega2560 + RAMPS 1.4, TMC2100, Opto-endstops min & max
Electrical: SSR, Silicone Heat-mat 600W 300x300mm
Bed: 3-point aluminium

Problem is, I can't get V-slots or T-slots easily where I live.
I can get Steel Rods or Seamless pipes, and Bearings & Drylin bushings.

What aluminium profiles can I use to construct a rigid frame and accurate movement?

Were I to build a frame now, I might use 1" square steel tubing members, welded together.  You could also use aluminum, but for the same cross-section, the steel will be stronger.  It is also easier to weld.  If welding is not available, you are limited to shapes which can be bolted together.  This is not impossible, but it requires more thoughtful design.

For the guides for moving or sliding elements, stainless steel drill rod is good.  Because it is round, it doesn't constrain rotating motion, so you might need two drill rods, spaced as far apart as your design allows.  The twisting force will be harder to manage with rods than it would be with a solid element.  If the parts are moving during printing, you could consider stainless steel tube or aluminum rod to keep down the weight.

If you have the machining ability, instead of rods you could use a T cross-section (steel or aluminum) with wheels rolling on the two outside elements of the T.  Machine is likely needed to adjust the profile of the edge to more closely match the wheels (which could be /V\ shaped), and to make the separation be accurate enough that you wouldn't need a spring element to clamp to the T.

There are many materials and forms that could work.  You are limited only by your fabrication ability and access to materials.


How do PLA, PETG, TPU, ABS and/or nylon work together in a single print? I have a dual-extruder printer with a separate heating element for each head, thus able to combine materials in a single print job even if they don't share a single temperature range.

Now the question: When (outside of using expensive dedicated support material or doing multicolor prints for aesthetic reasons) is this actually useful?

Of common printable filaments (PLA, PETG, TPU, ABS, nylon):

Do some of these materials work well (which is to say, substantially better than just doing a single-material print with same-material supports) as breakaway supports for others?
Can some of these materials be dissolved in household solvents that don't harm others?
Do some of these materials adhere to each other strongly enough (and have sufficiently similar profiles in how they shrink on cooling) to reliably generate finished pieces comprising of both? (Especially relevant for anything+TPU, where one might want to generate a design with some soft or rubbery components).

The answers are

yes
yes
probably

Which is to say, if you only want to use MaterialNumberTwo for disposable supports, then you should be fine. Presumably the slicer software is material-aware and adjusts the feed so the layer heights are the same for both materials. BUTbe careful that the support material isn't higher-temp than the object material, or supports which start from the object rather than the bed may cause local melting or distortion when the first layer is deposited on the cooler-melt material.

But if you want to try to intertwine two materials for the final product, then certainly bonding will be a major risk, as will shrinkage during cooling (not to mention the risk of melting the lower-temp material while depositing the higher-temp material on top of it!).  If at all possible I'd recommend printing such parts separately and fitting them together post-print.


Determining exposure time for resin When a resin comes without a proper data sheet (!), or more likely when the timing for first layer and default layer exposure do not match your LED resin printer, how do you go about determining ideal exposure times?

Short answer: Use a calibration test.
Long answer: There are a bunch of calibration test files out there you can run. Ameralabs has a guide on how to read one of them and they have a link to download the STL at the bottom of the website. In short, the test file will print with a bunch of features that are hard for the printer to handle (thin posts, angles, small gaps, etc). You can try printing a test file like you would any other file while just guessing at the exposure time. But some printers have a setting just for this where you can run the printer once and print 8 copies of the same object each with a different exposure time. This is the best way to go if you can. either way, you will need to look at the prints when you are done and compare it to what it was supposed to look like. Pick the print that does the best in all types of features on the test.
here is a video showing how to do the test with multiple prints at once. Anycubic Photon S - Resin Exposure Test - R_E_R_F with custom timing
running these calibration tests can be useful even when you have a data sheet for your printer, it can account for other variables such a temperature. I don't usually bother but if you want to spend the time to get the best print you can it's a good idea.


How to create tappered thread in OpenSCAD? Is there any simple way of creating tappered thread in OpenSCAD? I need something like 10 mm in diameter at the end, 9 at the top and the height of 10 mm.

If your math and OpenSCAD skills are superior to mine, you may be able to make use of the OpenSCAD Metric Nut, Bolt & Threads Library located here:
OpenSCAD Metric Nut, Bolt & Threads Library

It uses various means to generate polygons about a radius and includes the formulae for partial revolutions. It is presumed in the design that the center of rotation for the generated polygons is constant. I looked over the code for outside thread and could easily determine the radius references.

With proper coding, you could generate a variable radius based on the height of the cylinder at a specific point and achieve the tapered effect you require.

I expect that you'd have to reduce your desired radius by a fraction, say 0.05 mm in order to embed the thread forming polygons within your tapered cylinder.

If you aren't a strong coder, disregard this answer.


Applying Kapton Tape To Bed Plate There must be a trick to doing a good job of applying Kapton tape on a printer bed plate…

We built a Bukobot and even with a great deal of care ended up with bubbles under the tape and occasional overlaps. I'd appreciate any pointers.

Try using a solution made for applying window tint, maybe even soapy water.  Squeegee it out, heat the bed for a bit and you should be good to go.

This video demonstrates the process.


Using heat-set inserts with SLA printed part I have an SLA printed part I want to put a brass threaded insert in using a soldering iron. The insert is slightly larger than the hole so I would assume the edge will melt and re-freeze around the teeth. Are there any issues with melting SLA or this idea in general?

The plastic used in SLA printing is what is known as a thermoset plastic, as opposed to the thermoplastic plastics used in FDM printing. What this means, is that it can not be melted. The reaction that hardens SLA materials is irreversible. If you heat up the plastic it won't melt, it will just burn (if it gets hot enough). What you're planning is a bad idea, and it won't work.


Through what methods and mechanisms can a multi-material FDM printer operate? I now own the Prusa3D MMU2.  The benefits, costs, and experience others have had is well documented.  I am interested in rebuilding my large, home-designed delta machine to be multi-material, and don't want to overlook strategies I haven't considered.

My original implementation used an E3D Kraken as the hot-end, and handled the inevitable delta tilt by adding two additional degrees of freedom to the head to lower the selected nozzle to the bed.  I've been through three generations of mechanisms, and I think the third will work.

But, I feel that I am not seeing obvious and better alternatives.

So, the question:  Through what methods and mechanisms can a multi-material (different polymers, different temperatures) FDM printer operate, and are there available designs or examples of best practices for those methods?

Let's look at various methods:

Multiple Hotends

The oldest version and one of the best to print materials at vastly different print temperatures (like printing a cheaper PLA infill into a Polycarbonate shell - the print temperature difference is 60-100 °C) is to have 2 or more hotends. This way also avoids the need for purging towers. It does, however, limit the maximum size of the used printbed and few 2-printhead machines are cheap.

Y-Coupler

Using a bowden setup, a Y-coupler could be used to feed the filament from 2 extruders into one hotend. On the switching tool command, E0 would pull the filament back some couple millimeters beyond the coupler and then E1 would push forward back into the meltzone. One will need a purging tower/object.

Special, multi-entry hotend

Some Hotends had been concieved that have 2 or more ways into the meltzone and the multiple extruders push along them. They generally are quite complex and hard to clean, but they allow to seamlessly blend between two filaments of the same material and create pretty much a controlled fade by precisely directing how much of either side is used on any layer. For clean cuts, a purging tower is necessary.

Splicing filament

This is what the Palette 2 and the Prusa MMU do: they push pieces of filament into a feeder tube that then are consumed by the printer via its own extruder. If they melt the filaments together like in the PAlette, it's proper splicing, if they just line up the next filament piece without merging into a spliced filament it's more like instant color switching.

This method is good for multi-color prints or using materials that have the same or similar1 melting temperatures. It might or might not need a purge tower/object to get rid of the residue in the zones between the filaments.

This could btw also be done manually but should be avoided.

1 - or rather not too dissimilar, if the slicer is set up to do it right. By setting up the slicer cleverly, one can have the extruder retract the filament, then adjust the heat over the purge tower and then resume extruding in the purge object at the changed temperature. PLA/PVA from a Prusa MMU is known and advertised to be doable, PLA/ABS might be possible this way. For extreme dissimilarities like PLA/PC (60-100 °C) I have my doubts though.

Usability

All of these variants are basically viable, but some have benefits over others. Service is in this comparison meant as repairing a broken extruder, maintaining as the operations needed to keep it in printing order.

multiple fully independent hotends is among the easiest to services. It could be direct drive (good for flexible filaments) or bowden. It is however heavy and usually not an option for delta printers. It has a downside that you have to perfectly level two hotend nozzles to be exactly on the same height, putting it in the hard to maintain category.

multiple hotends on the same carrier is harder to service and maintain in comparison to multiple independent hotends as the components are very close together. Especially nozzle height adjustments can be more finicky.

Y-Coupler needs to be a bowden and has problem with materials that are very stringy. That makes it especially bad for flexible materials. Maintaining is like a normal hotend and servicing is almost the same.
Special hotends are hard to come by but could be available for direct drive, making them possible for flexible filaments. They are, as already noticed, very hard to service.
Splicing filament can be done with either direct drive or bowden setups. It is probaby the most convenient to use after setup and has the maintenance and serviceability of a single hotend and a fully separate machine. Their biggest downside is price and setup time needed.


Nozzle moves very slowly from home to start position I´m currently working on a custom delta printer running Marlin 1.0.2 firmware. To control it I´m using the Repetier Host software with the onboard Cura software to slice my objects. The printing works fine but it takes the nozzle nearly 5 minutes to move from the homing position at 250 mm to the starting position of the print near z=0.

I already tried to increase the travel speed but nothing changed. Can you guys please tell me how to increase the speed of my nozzle to move down to my starting point of the print?

I had the same problem, and I solved it by changing the Z-Axis Feed Rate to a much higher value (1000 mm/min.) in Repetier Host via Config -> Printer Settings -> Printer.