text:
Print layer shifting on Alunar M508 Prusa i3 clone
[Edit: My specific question is firmware error or standard layer shifting. using 2 different versions of Cura were getting quite different results from the same stl file.]
Per the image below with Cura 15.4 the centered print both shifted to the bottom of the print bed for the first few passes and then did not build the proper internal structure of the bracket. the top loops were then skewed to the top of the bed.  The 2nd print in the corner was using Cura 3.1 and the first few passes like usual skewed off towards the bottom but it seemed to start printing normally after that.  I am trying to determine if it is a hardware calibration issue or bad firmware on the printer. Any suggestions on what's going on would be appreciated. For some reason the image flipped 180° when posting.
Center part completed its print and should be about an inch or so tall. It was not even able to build the internal structure like the 2nd one had started to do. the 2nd one I stopped after about 10 min since it clearly showed different behavior. from the layer shifting links the most likely cause would be over current stepping.

Possible duplicate of How to fix Y layer shift on Creality Ender 3?

If I may ask, what's going on with your bed tape? If your settings dictate a 0.1mm layer height, the bubbles we are looking at in your tape are going to mess with your print. By having the rough layers of tape with bubbles and the edges not sticking, you are just creating more issues for yourself. I'm not sure what kind of tape that is, and maybe it just isn't sticking too well. If you must use tape, get some 3M Blue Painter's tape and ensure there's no overlap of the tape, there are no gaps, and most importantly, there's no bubbles.

That bed tape is very badly mounted. You want to put it down as flat as possible and not overlapping. As you laid it down, the nozzle will catch at the upcurling edges and incuce layer shift.

This effect is called layer shifting . Now that you know what it is called you could look at some other solutions fixing this issue; e.g. here, here or here. The answers of this question describe best what is causing this. Usually (most of all the cases) it means that your belts are not tight enough.
An edit of the question shows that the effect happens when a different version of Ultimaker Cura is being used. In such cases you need to check the speeds and acceleration settings. Too high values may lead to skipping steps causing layer shifting. Be sure it is not a mechanical issue, also note that the nozzle does not get caught up by the uneven tape on the bed. In that effect, you may want to look at this unaswered question.

@Kendrick get your print speeds down to at best 150 mm. and Flatten your tape!

Ended up being a missing set screw for the bed stepper.  it was tight enough to hold during normal movement but when transitioning from the back where the layer ended to the front corner etc the speed would go to high and slip.


text:
Prusa Mk3 printing rough surfaces
My Prusa Mk3 has been making this sort of rough surface on prints, and I'm not sure what caused this. I am printing with PLA Prusament with 0.2 mm layer height at the preset for PLA. What is this, and how can I fix it?

Edit: Changed absolutely nothing, tried again and problem solved!

Welcome to 3dPrinting.SE! Your picture is really hard to see ... is there any way to get a better quality image posted? Also, you might want to post what type of filament you are using and the settings used to print it. If this is a regular pattern found on Thingiverse (or some other accessible library), please post a link to it so we can understand what exactly you are trying to print.

Added better picture and more info

I'm no expert (by far) but it looks to me like you've got a warped bed. The rough texture would be areas which pull away from the print head, while the smooth part is right in the ball park. Just my gut check here as like I said, I'm no expert.

@Geekdude3 is this the top or bottom of your print?

@PerplexedDipole from the exposed infill on the left I guess top

The OP was not able to reproduce the problem as can be taken from an edit to his question:

Changed absolutely nothing, tried again and problem solved!

To honor the Q/A approach used on SE sites, this comment has been converted to a community answer, that once voted for will not make this question pop up once in a while.

This is an stability temperature issue. thats way some times can't be reproduce until the user have the same ambient and the time of stabilization temperature. But this have solution mechanically, by parameters, by time.

To me this looks like your nozzle is too hot. Try turning the temp down by 5 degrees at a time and see if the issue goes away.

Thanks! I'll give it a shot and see if that's the issue

source: Stack Exchange

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

sort: votes


text:
How do I decide what size my push-fit feature should be?
I'm designing a box and lid that will be FDM-printed. The lid push-fits onto the box. What kinds of gaps/tolerances should I use when designing pieces that fit together? has advice for designing the clearance between the lid and the box. Assume I've already settled that question and I have a good clearance so my lid slides on and off freely.
Now I'd like to add a lip-and-groove feature to my design to hold it shut, with a lip on the lid that clips into a groove in the box when the lid is fully closed - like a cantilever fit, but easy to open, and directly on the mating walls.
How deep should I make the lip and how tall? Does it depend on what plastic I'm printing in? Does it depend on the wall thickness and the geometric rigidity of the part?

it depends on all that and more. for the non engineer, testing a few variations and refining the prototypes are likely faster to give good results than theoretical plotting that overcomes dozens of unknown variables; temp, rigidity, printing humidity, material blend (eg plasticizers et al), size, tension, required precision, expected service life, sheer force on lip, and on and on and on. In general, you want it fairly difficult to snap, and you want the interface corners to be pre-rounded, so that wearing doesn't affect performance as drastically.

besides material, the actual design and print orientation also plays a huge factor.

I designed and printer a box with a sliding covered battery area once in Tinkercad and just removed shapes from each other to create the positive and negatice spaces. Therefore there was zero tolerance. Once I printed it I just filed and sanded the edges and they started sliding nicely together.

A push-fit, or rather snap fit, feature can come in several shapes and forms. Let's look at the example of a snap buckle, inspired by Angus video on the tpic:

This Buckle has a harsh hook, it offers no way to push it in after finding its resting place, it is pretty much a "no release, no safety release" type. But with slight alterations it can become a safety buckle just by altering the 90° angle in the middle and providing a slope while offering a place to press the buckle in at the catch offers user release. Now, what does that have to do with dimensioning?
Dimensioning a piece
When deciding about the dimensions of a feature we need to evaluate several factors against each other:

Intended use
Printability and print orientation
Material choice

Let's discuss the three separately.
Intended Use
The shape is dictated by the function of our part. Do we need a one-time snap fit that keeps the internals of our box closed forever? Do we need to open the buckle whenever we take off a backpack? Do we need a safety release to prevent the backpack from strangling the user if it catches somewhere? As we design the part for the use, and its intended loads, we also design minimum sizes for some features: a user-release buckle or snap fit needs to be large enough to be manipulated by a human (with the right tool), and the dimensions have to be large enough so the part can bear the intended loads.
Material Choice
Different plastics behave differently under stress. ABS is known to be somewhat flexible in comparison to PLA, bending before breaking softly while PLA shatters once its maximum load is broken. The choice of the material also dictates the wall thicknesses, and thus the dimensions, we can use.
As an example, I have printed one of these Z-Axis tension triangles in PLA for my TronXY-X1. Due to how this part is designed, the bent arm can bend a little but wants to return to its original shape, thus forcing the straight arms apart. By this, it applies force on the wheels which in turn roll tight on the beam in between. Even as this is PLA, the work on the part is still in the elastic deformation area due to the sheer size of the item - the lever is quite long to take the little flex PLA has and distribute it over the whole length of the arms.
Print considerations
Now, we have to keep in mind we print our parts layer by layer and the weakest part of a print is the inter-layer bonding. So the strongest snap-fit will have its bending lever printed in the XY plane while the weakest has its lever bend in a way that the bending occurs along with the XY slices.
However, we can use this to our advantage if we want to: I had printed this for StarWarsDay this year, and the little det_button.stl is printed with the levers of the snap-fits bending in the XY layer. They are also extremely fragile (1-2 walls). From own experience, they survive being pushed into their respective hole but can't be extracted without destroying the levers, making this piece pretty much act like a tamper seal.

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


text:
The bottom few layers printed on Ender 3 are extruded wrong
For some reason, the bottom few layers printed on my Ender 3 are distorted. Used the benchy from http://www.3dbenchy.com/ and Cura 3.6.0, sliced with default settings for Ender 3 on the draft preset. The material is Hatchbox PLA. I think the bed is leveled pretty well, but there might be some adjustments I could make.

Please post an image of the bottom, usually this effect is caused by a too large of a nozzle to bed distance, this question, and the printed result, looks very much like asked here.

It may not be a duplicate as the dup's OP determined that the solution didn't actually resolve the issue.


text:
What exactly does calibrating a 3D printer do?
I’m building a 3D printer and need to understand what calibration and bed leveling is, and I was surprised to see there isn’t a clear explanation on the internet anywhere. Does bed leveling compensate for an uneven bed? So then, what does calibrating do? Is it the same thing?

First, welcome to the 3D Printing Stack Exchange!
On bed leveling
Bed leveling, or more accurately bed tramming, adjusts the bed so that it is even in relation to the print head. Typically it is done by sliding a paper between the nozzle and the bed when Z = 0, or the print head is at its lowest. The amount of friction should be similar to the amount of friction of a sheet of paper between two magazines (recommended by Tom Salander on YouTube I believe). One sheet of paper is about 0.1 mm, which is a common gap and allows for good adhesion of the deposited plastic, and typically the gap is measured at the four corners and the center of the bed.
But wait, there's more!
Mesh bed leveling can account for a physically uneven print bed (like a bowing glass sheet) and can be done manually like above or one can mount a sensor so that everything is automatic. The print bed is broken down into a grid (typically 3x3 or 5x5) and the Z height adjusts so that the gap is 0.1 mm at each point in the grid. A mesh is then made and stored in the printer. As the printer prints it makes the necessary variations in height so that the print is flat. Please note that the bed should be leveled as best as possible before setting up the mesh as it will vastly improve the resulting mesh. Mesh leveling is primarily software. The actual level of the bed remains unchanged, thus needing to level it prior to setting up the mesh.
Other calibrations
Bed leveling (including mesh bed leveling) is one aspect of calibration. Other important factors to tune in are temperatures of the nozzle and the bed. For example, PLA has a temperature range of 180-230 °C but each printer is different and may need to print at a higher or lower temperature for best results. Or the printer reports a temperature of 200 °C but the thermistor is off and is actually printing at 190 °C. It's up to the user then to compensate if they want/need to print at an actual 200 °C.
Other settings to tune are print speeds, acceleration and jerk, retraction, and extrusion. Faster print speeds can result in poorer quality prints, namely ghosting and under extrusion. Acceleration/jerk works in the same vein since it directly affects speed. Retraction helps with stringing. If the retraction settings are too low then there will be stringing on the model, if it's too high then there can be under extrusion and heat creep. Adjusting the extrusion factor will tell the printer to push more plastic out or push less. The higher the factor the more plastic is pushed. IMO best practice is to leave the factor at 1 in the slicer and calibrate the stepper motor itself (as can be seen here)
Calibration models
There are several calibration models on thingiverse that can show common print issues. Some of the popular ones are:

The calibration cube which one can ensure that the motors are moving accurately to print out a 20 mm cube. This also shows ghosting along any of the three axes. This cube may also point out if any of the axes aren't 90 degrees perpendicular to each other as the cube should be, well, a cube and not an amorphous shape (thanks to Joel Coehoorn for pointing this out).
3DBenchy which shows a myriad of potential print quality issues including ghosting, poor overhangs/bridging, and stringing.
A Temperature Tower uses post scripting in the slicer to change the temperatures so one can determine the different print qualities across a spectrum of temperature. There are a lot of different models online if this one does not work for you.
An all-in-one test can do a lot of tests in one model and they are all labeled within the model. (The linked one is the mini version, there are several similar tests online.)
This list is by no means inclusive, there are several other models that can test other problems. These are just what's usually printed (especially the cube and Benchy).

Happy printing!

This great. Since he's building his own printer, I'd add one more section about making sure each axis (x, y, & z) are all at exactly 90 degrees from each other.

@JoelCoehoorn I feel that falls outside the scope of calibration which seemed to be the heart of the question to me. Though I think I'll add it to the cube since the cube should be able to catch that.


text:
Where to get the Slic3r configuration files for the 3D PrinterWorks Creatorbot printers?
I have a Creatorbot 3D printer made by 3D PrinterWorks.  Their website appears to be down, as well as their Facebook page. To me it appears they are no longer around.
I've installed Slic3r as 3D PrinterWorks has recommended in the handbook but cannot download the settings for this from the 3D PrinterWorks website, since that is down.
Does anyone know where I can get the Slic3r configuration file for the Creatorbot?

I interpret this as the slicer config is needed

Looks like 3dprinterworks.net went down sometime after March 2018 and 3dprinterworks.com went down in January 2019. Luckily the Wayback Machine still has the machine's specs.
Here is the instructions for entering settings in Slic3r as found here in lieu of importing a profile. (Please note that I have not used Slic3r so the following is solely based on the link)
The key settings under General are

Bed size*: X = 305 mm; Y = 305 mm; and Z = 457 mm
Print center**: X = 152.5 mm; Y = 152.5 mm
Extruders: 2
Heated Bed: Checked

Under Extruder (each extruder should have its own settings so be sure to set up both)

Nozzle diameter: 0.4 mm
Extruder 2 offset: 30.9 mm (good job, OP on finding the email stating this)
Everything from Retraction and on is up to what works best for you

There may be a set of setting for acceleration (there is in Ultimaker Cura) which is 3000 mm/s2 for most printers, I think. This is the max acceleration, not to be confused with acceleration settings when slicing the model.
The next set of settings, though outside of the Slic3r link, regards the filament. The diameter should be 1.75 mm and the nozzle temperature should be within the range of the filament (e.g. PLA should be set within 180-220 °C) and a heated bed set to 50-60 °C. These parameters are filament dependent and not printer dependent (other than diameter).
That should be the settings that a profile would set for you. Thankfully there's not too many.

*There is a wizard for this section that may make input easier, but here is the build volume.
**This setting may require whole numbers and may, in fact, not be a necessary setting at all.

I just found in an old email from Ben Kilar, owner of the company that built the printer, the 2nd extruder offset.  It's 30.9 mm.

@mbmast good job on finding that. I updated my answer to include this.

The configuration files were on a flash drive that came with the printer.  That being said, here is the file that was located on my flash drive for Slic3r (denoted as deprecated on March 1, 2017).
This is for a Creatorbot Pro II.
https://pastebin.com/j1dkSt8f
Save it as Slic3r_config.ini and import it in to Slic3r.
Good luck!


text:
Print ASA without enclosure
Is it possible or recommended to print with ASA filament with printer that has no enclosure? I Know that ASA is better than ABS, but is it that better that enclosure is not needed?

According to MatterHackers, Simplify3D, and 3D Insider an enclosure is not necessary but highly recommended as ASA, like ABS, is susceptible to drafts and can warp. A heated bed is necessary (somewhere between 90-110 °C), and little-to-no cooling fan used. The enclosure helps ensure adhesion and a consistent temperature. ASA also has fumes and an enclosure can help contain unwanted smells.
MattHackers has a video (Step 4 in the link) on making an enclosure with some kind of plastic sheeting or trash bag (I didn't watch it). There are videos on YouTube on using cheap Ikea side tables and acrylic sheets to make an enclosure if you want a more permanent solution.

"can help contain unwanted smells". I heard that ABS(and guess ASA) releases toxic vapors/smell/something. Is it true? I'm really sad that ASA needs enclosure. Does exist filament that has similar mechanical properties as ABS/ASA but it doesn't require enclosure?

@SilvioCro You may be able to get away without an enclosure, just make sure that it's a well ventilated area. PETG seems to have a similar hardiness that ABS has but prints similar to PLA (though at higher temperatures). I don't have experience with anything outside of PLA so I can't really comment. Although, my understanding is that the main plus to ASA is that it handles outdoors a lot better than ABS.

@SilvioCro Woops, missed the question on toxicity in your comment. ABS/ASA does release toxic vapours, but as long as there is adequate ventilation then there shouldn't be any problem. Typically it's an issue of comfort and not safety (but this assumes that the user is responsible and ensuring ventilation).

a big cardboard box might be enough; cheap, low effort, fairly effective.


text:
Move print bed to front at the end of a print rather than the back
I have a Monoprice Maker Select Plus, currently using Ultimaker Cura 3.6.0 with the default settings for a Wanhao Duplicator i3 Plus. Right now when a print finishes, the bed retreats towards the back of the machine. I'd rather present the bed forward for easier part removal.
Here is my ending G-Code:

M104 S0      ;extruder heater off
G91          ;relative positioning
G1 E-1 F300  ;retract the filament a bit before lifting the nozzle, to release some of the pressure
G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more
G28 X0 Y0    ;move X/Y to min endstops, so the head is out of the way
M84          ;steppers off
G90          ;absolute positioning

It looks like I need to change that G28 line third from the bottom, but I'm not sure what to change it to. I've not yet done any g-code manipulation of my own. I don't know what units it's using, and it looks like it still has relative positioning, so even then I don't know it's a good idea to just set it for the max size of the bed.
So how can I change this code to move the bed as I want?

Note that this reference states that:

Because the behavior of G28 is unspecified, it is recommended not to automatically include G28 in your ending GCode. On a Cartesian this will result in damaging the printed object. If you need to move the carriage at the completion of a print, use G0 or G1.

So you need to use a G0 or G1 move.
When using Ultimaker Cura (like many other slicers), there is built in functionality known as keywords with a complete list found here.
The keyword machine_depth is the one that is of use to you, embed this in your end G-code in between curly brackets and it will expand to the bed size of your machine (replacing G28 X0 Y0):
G1 X0 Y{machine_depth}
For me this compiles to (e.g. for my coreXY printer):
G1 X0 Y300
To set the speed, just add the following command prior to the one above:
G1 F2500
Adding this line before the actual move ensures that the speed is constant, if F2500 would have been included in the move command (like G1 X0 Y{machine_depth} F2500), this defines the end speed, it would start moving at the last speed value prior to the move.
This results in adding the following lines in your endscript:

G1 F2500
G1 X0 Y{machine_depth}

You're correct that the G28 line should be changed. What I would do is the following:
M104 S0 ;extruder heater off
G91 ;relative positioning
G1 E-1 F300  ;retract the filament a bit before lifting the nozzle, to release some of the pressure
G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more
G28 X0 ;move X to min endstop, so the head is out of the way
G90 ;absolute positioning
G1 Y200 ;Move bed forward
M84 ;steppers off

This way your X axis still gets homed after the Z bumps up and before Y moves to present the print.
G28 is the command to home the print head. Your current settings homes the X and Y axes. G1 is a linear movement. One caveat to this change in G-Code is that there needs to be a home command at the start of your prints since you're not homing afterwards anymore. (I believe most slicers default to a G28 at the start AND end of prints so it's not a major concern, but one to be wary of now just in case.)

Cool. What do I use for the max Y value, given a 200mm bed? Is it just 200? And why G1 instead of G28?

@JoelCoehoorn Sorry, having a caffeine crash and brain farted those particulars. Edited answer to clarify.

@JoelCoehoorn You can do even better and use the actual bed size, I'll show you in an answer.


text:
What kind of filaments can I use?
This is probably the most basic of questions. When I was shopping for a printer I saw models that would list a slew of certain plastics that the printer can print while other printers (different suppliers) would only list PLA/ABS. At the same time, the instruction manual that came with my printer only listed PLA and ABS.
What is actually used to determine the possible material (other than diameter)? I assume that if the nozzle can reach the required temperature to melt the plastic and the bed can reach the necessary temperature to maintain bed adhesion, then my printer can print that plastic. Am I correct?
For example, my nozzle can reach 250 °C, but the bed can barely reach 80 °C so I can print with ABS but not with ASA (since it needs at least 90 °C on the bed. However, if I switch out the heating element for something beefier then that opens up anything that needs a hotter bed. Right?
Let's assume that I have the means to change nozzles and extruder type to fit the need of the filament. The goal of this question is to limit to one or two limiting factors of the printer without major modification.

At least tell us your printer type (bowden or direct extruder? All metal hot-end or lined?)

The correct question is "what do I want to use," and can only be answered by considering the intended use of the items printed.

@Trish Yeah I totally blanked on those. To me the extruder/nozzle was the least of my concern because I was so tunnel visioned on temp. I'll edit the question.

@CarlWitthoft I often find that "can use" precludes "want to use" since what's the point of wanting to print in, say, nylon if my printer can't even do it. The question was about sourcing what's available then being picky from that list.

Lux, the extruder type (bowden vs. direct drive) and hotend setup (all metal vs. lined) are the quintessential factors of what filaments are possible besides the print temperatures possible. If you can only reach 80°C bed temperature, that is a severely limiting factor, eliminating some materials.

There are other factors besides temperature. Certain "soft" filaments won't go well through all extruders, and some other filaments with wood/metal particle additives don't go well through every extruder type and can cause clogging. Even people who do tend to print a lot of these materials will often use a specific nozzle just for those filaments.
That said, you still might be able to print even with something like ASA that seems unsupported. You can do this by taking additional measures for bed adhesion, or upgrading or swapping your nozzle or hot end.
If you can print PLA and ABS, you can probably also print so-called PLA+ and PETG, at a minimum.

So let's say that I am able to swap my nozzle for the recommended type of any given filament and I am using only hard filaments, then my limitation is solely based on temperature, correct?

Mainly, but the moment I go out on a limb and give a definite "yes" someone will create some new exotic material.

There is even more to if you can print some materials. There are filaments that absolutely need an all metal hotend, others can't be printed with one, some filaments are highly abrasive...


text:
Ender 3 needs Power Supply AND USB to work
I installed a BLTouch on my Ender 3 following this video: https://www.youtube.com/watch?v=sUlqrSq6LeY.
What I noticed too late was that when installing the BLTouch, I swapped the brown and red wires followed by connecting it to the mainboard.
Then I realized that the printer wouldn't turn on. After reading some of the comments, I swapped back the wire and I could see the BLTouch do its self-test.
However, it seems that I need to plug into the USB before the LCD + motors can work.
So is my mainboard fried? Or how should I fix it?

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


text:
Adding more extruders to GT2560
What possibilities are there to add a third and fourth extruder to GT2560 rev A?
The board by default contains connections for two sets of extruder drivers and steppers and has no obvious way to connect more, or some kind of shield/extender.
I was thinking about few possibilities:

find 3 unused pins to control another driver - I think bltouch and pwm fan might be easily available. Not sure if MAX endstops (which are free now) can be used.
some kind of drivers multiplexing - what if I shared STEP and DIR pins between multiple drivers and used E1_STEP and E1_DIR as E2_ENABLE and E3_ENABLE? I do not want color mixing so only one active extruder at a time might be enough?
remove both extruder drivers and use these 6 pins as an interface for some kind of extender?

I am a SW developer and my experience with electronics is very limited so no idea if any of these makes sense.
Photos with layout and captions:

top - http://www.geeetech.com/wiki/images/e/e3/IMG_3771.jpg
bottom - http://www.geeetech.com/wiki/images/8/80/IMG_3773.jpg

Pinout: https://reprap.org/wiki/Geeetech_GT2560

Have you found a commercial mount which supports four hotends?  Just wondering how you are planning to use these additional output drivers.

@CarlWitthoft I was thinking about something similar to Prusa MMUv1 - 4-way junction, or the 5in1 diamond hotend. There is the Kraken too but that is worth more than my current printer :)


text:
Clogging due to heat creep: buy new cooler or new hotend?
Sadly, I am not able to "repair" my 3D printer. Every time, I want to print something that takes a bit longer to print, the extrusion stops at some point during the print (the first few layers are great), no under-extrusion whatsoever before that critical point.
I already tried temperature variation (185-220 °C) with about 5 different brands of 1.75 mm PLA.
I tried printing without any retraction, but failed (I also experimented with flow rate a lot and calculated the perfect percentage etc.)
Everytime a print fails, it is a nightmare to remove the PLA filament from my Bowden tube (because it expanded near the nozzle and is stuck in the Bowden tube). I have to pull with so much force, that I already cut myself several times because I slipped off my pliers.
As I know for sure (I already wasted almost 1kg of PLA for my testing) the problem is heat creep = heat travelling from the heat block to the PLA above because the heat break or fan seem to be broken.
So my question is: "Will it be enough to buy a new cooling fan (as the standard fan doesnt seem to be powerful enough)?"
I have to add that I already bought the original hotend long time ago and I tried printing with the "fan of the first hotend" and with the "fan of the second hotend" (the fan that blows air towards the cold end) so that might not be the problem.
Or do I need a totally new hotend? (with heatbreak etc.)
My printer is a Creality CR 10, and I'm using Ultimaker Cura 3.6.
Or is it enough to buy a new heating block + heat break? (I don't know if the cooling fan is the problem or the heat break).

Can you check if your heat break is PTFE lined? If it is and the tubing has slipped upward, you'll get something akin to your description.

What exactly do you mean? I think that the PTFE tube connects to the nozzle without any gaps.

Maybe you could add an image of the extruder/nozzle assembly?

I can infer that you have a bowden setup, but nothing else about the topology of your hotend.

Is it just me or does it seem that the vast majority of mechanical problems posted here are for Creality printers?

@CarlWitthoft I think, you are right.. at least my printer caused plenty of issues in the past several months..

To fight heat creep, you must understand why this is happening.
Heat creeps up the hotend assembly (into the cold end) as a result of incorrect settings or hardware setup causing the filament to prematurely soften and swell.
It is important to reduce the heat travelling upwards in the first place rather than fighting the result. Too high print temperatures are an obvious culprit, but also print speed and retraction length are important. These need to be dialed in in perfect harmony.
Even when you buy a complete new hotend or parts for the hotend, incorrect settings may lead to the same results. It is known that all-metal hotends (due to the lacking of a thermal barrier PTFE liner in the heat break shielding the filament of excessive heat input) are more susceptible to encounter heat creep and should generally be avoided by less experienced makers.
Whether or not you should buy new parts depends on the current extruder, your ability to fix it (and the willingness to put in more effort to try) and the knowledge to install new parts and find the correct settings for optimal printing. There is no unambiguous answer to this question.

Thank you. I have had my Creality CR-10 for quite a while now and the first several months, it worked perfectly.. I think, I will replace the fan and in addition to that, I will reset cura. And I'll buy new isolation "tape" for the heat block. Hopefully, it works..

I resorted to google to find a candidate image which might be similar to your hotend.

Now, it is safe to assume that a like-for-like replacement will not improve matters significantly. It is also a good assumption that the performance gap which you need to close is small. Presumably you know how much time you need to wait for the creep to manifest itself so are part way along to being able to perform some heat flow calculations.
The mass of the cold-end here is small, and there is maybe next to no additional metal on the cold side (compared with direct drive, where the servo acts as thermal damping).
You ought to be able to perform static testing - a thermocouple thermometer should be cheaper than running a spool of filament, and all you are interested in is the temperature rise at the hot side of the cold end after 'time to fail'. If you can achieve a halfing of this rise, you're on the way to achieving a 4x longer print run (or better). If you test with zero filament flow, you should see a worst-case result since there is no cold material flow into the cold end.
The one obvious improvement to make with the specimen above which I found on Amazon would be to duct the fan, so airflow is forced past the fins. A side benefit will be reduced cooling of the hotend.
A further improvement, if there are any metal parts in the carriage, would be to remove the anodizing and use thermal transfer grease to increase the effective heatsink size (assuming that the fan also provides airflow over this metalwork.
You might find a larger cold end heatsink (more air surface area over the fins), that might be a worthwhile improvement - but it depends on the mechanical constraints of your printer.

If it's a printer stock, no modifications, obviously you don't need to change the hot end, Creality did not release a printer without testing it. At least, no such extreme issues can be expected.
Check the fan power, wear, and settings.

This comment does not allow for the common problem to many things: a product is not perfect.  It is entirely possible that a printer was released with marginal cool-end cooling.  The problem wouldn't show up during normal test prints, and may be limited to long prints in a particular environment.  Not every good product is perfect for every user.

Cooling the hot-end heat sink may be the key.  My first step would be to try ducting so the all the air from the fan flows through the fins of the heatsink.  To keep it easy and be a quick experiment, use cardboard (or business cards) and tape.  Check the controls to be sure the fan is running at full power.  You should feel air passing theough the fins.  You can not cool it too much.
For cleaning out pla from tubes, nozzles, and hot ends, I use a hot-air heat gun.

Do you know by chance, how strong the fan should be? Because I can only feel a light breeze coming out of it..

A light breeze should be enough iff most of the air participates.  Air that blows past the heat sink does nothing.   I solved this problem on a Thing-o-Matic with a business card,  ty-wraps, and tape.

Oh... I had to add a small fan, since the Thing-o-Matic was passively cooled.

So you built some kind of funnel to direct the airflow? Do you have a picture of your solution? thank you in advance

I'm not home.   If yours looks like the picture in another answer,  i would just put a flat duct from the sides of the fan to the heat sink, taped to the sides of the heatsink.  If it was easy, maybe a card from the top of the fan to the top of the heatsink.

It only needs to be better, not perfect.

There is a different, much simpler possible answer, that I see posted nowhere, and after changing many many things on my setup I have finally figured out....
Clean the built-up dust off your heatsink and fan.
Undo the 2 screws and clean the dust off.

While this can help, the constant airflow of the hotend cooling fan prevents dust from settling there in the first place.

I have a cheap Chinese all-metal CR-10 hotend. I used to have a lot of heat creep, but after I setup my only 30x30 mm fan as a part fan to be 100 % at all times to cool the heat sink and retract 10 cm of filament after finishing the print, the heat creep went away.
You can add this G-code after finishing the print to retract 10 cm of filament:G1 E-100 F1200, so it prevents the filament to cool down and expand inside the heat sink.
Another good way is setting up a fan to be up all the time to cool the heat sink. Since I don't have a heated bed and have a single fan, I've wired my fan to D8 pin (for RAMPS 1.6), then setup Marlin:
#define MOTHERBOARD BOARD_RAMPS_14_EFF  at Configuration.h
Make sure src/pins/linux/pins_RAMPS_LINUX.h has:
#elif ENABLED(IS_RAMPS_EFF)                       // Hotend, Fan, Fan
  #define FAN_PIN                   RAMPS_D9_PIN
  #define FAN1_PIN                  RAMPS_D8_PIN

At Configuration_adv.h:
#define E0_AUTO_FAN_PIN FAN1_PIN
...
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255   // 255 == full speed
#define CHAMBER_AUTO_FAN_TEMPERATURE 30
#define CHAMBER_AUTO_FAN_SPEED 255

This means that your extruder 0 will have a fan connected at D8 pin running 100 % after it hits 50 °C all the time, thus helping with the heat creep issue.


text:
Question about retraction distance and stringing/print quality with PETG
I've tried printing the Basic Stringing Test on my CR-10S using PETG (250 °C nozzle, 80 °C bed) with different retraction distances leaving all the rest unchanged.
In the image below you can see 0 mm, 5 mm and 10 mm retractions (in order left-to-right).

The result stunned me because I would have imagined that raising retraction distance would have diminished the stringing.
Why is that?

I know that having too high of a retraction can lead to other problems (namely under extrusion and possibly heat creep). The stringing surprises me too.

Yes, it's very counterintuitive! Should I go beyond 10mm to see what happens?

@FredoCorleone No, but lowering the temperature also reduces strings, PETG can be printed at a lower temperature.

Toy around with values around the 5 mm

So I could pick the best result so far (retraction distance of 5mm) and progressively lower nozzle temperature to see if quality further improves. What about increasing rectraction speed? What about increasing cooling fan speed?

You cannot endlessly increase the retraction distance, doing so leads to different problems as you encountered. As a rule of thumb, the retraction distance should not exceed the length of your nozzle. Depending on the type of extruder, many printers use a value between 2 and 7 mm (e.g. the Ultimaker Cura retraction length is 6.5 mm at 25 mm/s, this is for a Bowden style extruder).
In fighting stringing (in which PETG is very subjected to happening) retraction length is only one of the parameters that you need to adjust to optimize the printing process. Other important parameters (besides retraction length) for stringing are:

retraction speed
travel speed
minimum travel distance
flow modifier-> From experience with printing kilometers of 2.85 mm PETG: if PETG is over-extruded by little, it causes the excess of material to form "curtains" like in the left image.
combing-> added by comments: PETG does not like to be "combed" over; moving back over the already printed material without retracting will "pull" it back up (due to adhesion to the molten material in the orifice) as well as pulling more material out of the nozzle; this results in junk all over the place which can manifest as "stringing" even though it's different from what "stringing" usually is.

Furthermore, the type of extruder (direct or Bowden) is also important and other parameters that may reduce the stringing are:

coasting (stop extruding before the end of the print line is reached using the residual pressure in the nozzle to extrude the last filament) -> Please note that coasting is a last resort as the amount of material needed for the whole print is not what is being extruded, i.e. stopping earlier means that the overall amount of material is less than what should be put in...
pre-loading/priming filament after a move

Usually it suffices to tune the first parameters. As you see in your results, the retraction of 5 mm is close to the result you would expect, increasing it, may lead to clogs and in your case leads to a sort of stringing. This latter result is probably due to the fact that the filament does not reach the print in time (you definitely see under-extruded cylinder columns), while leftover pressure after printing the column layer oozes some of the filament creating strings.
Just play with the retraction length in steps of 0.25 mm (around the 5 mm) and you may try to change the speed with 5 mm/s increments if necessary. Also experiment with the flow modifier.


text:
Use Gcode Extrusion Speed in Calculations
I have a Rostock Max V2, and I've added a second extruder going into a y-splitter into a single nozzle on my printer. I have both extruders working correctly, but I'm having trouble tuning the retraction settings to prevent stringing when I switch between extruders during a print.  My system is essentially identical to the setup seen here.  However, I can't get my printer to retract as cleanly as the one in the video
What I'm trying to avoid is the long, thin "tail" that forms when retracting the filament from the hot end. That "tail" binds the other filament during the switch and makes the extruder grind a hollow spot on the filament.
I've had limited success tuning my retraction settings, but I find that I need different settings for different extrusion speeds. For example, after an extrusion like G1 E20 F240 a 3mm retraction, 3mm extrusion, then a fast retraction creates a nice, clean break (this routine is recommended here by kraeger on the SeeMeCNC forums). However, after an extrusion like G1 E20 F900 I have to use longer  retractions to get a clean break.  I think this might have to do with the filament acting like a spring inside the bowden tube. It would make sense to me that the harder you push the filament, the more you need to pull back to compensate for the pent-up spring force.
Here's my question:  Is there a way to read the value of the extrusion speed, essentially the "F" term from the gcode commands, and change my retraction routine accordingly.
Example pseudocode:
If F value < 500 Then do short retraction
If F value > 500 AND F value < 1000 Then do medium retraction
If F value > 1000 Then do long retraction

I'm using the tool change script feature in Simplify3D to store the tool change code.

I don't think you're going to find either a firmware feature or a slicer feature that handles specifically what you want to do. The slicer would probably be the best place to put it, and I'd recommend maybe opening a feature request ticket with Ultimaker, because that sounds like an awesome feature.
That being said, there's nothing stopping you from post-processing your GCode file after it's been generated. If you're experienced with python at all, that's the place I'd recommend you start.
You'll probably want to do it via the following:

Find the first line number that does a retraction.
Sum up all the extrusion distances between that line and the starting point (the beginning of the file)
Replace the retraction distance and feedrate with whatever your short/medium/long retraction settings are
Store that line number as your new starting point
GOTO 1.

If you're using Slic3r, there's actually a post-processing script function built into the app itself, you just need to write the script and give it to the application to make the whole process hands-off. For other slicers you'll probably just have to run the script manually between slicing and printing.

Wow, I didn't know that Slic3r implemented that kind of thing.  I'll check into it!  Just thinking out loud here - Slic3r is completely separate from Prusa's experimentation with it, e.g. PrusaSlicer.  So I would be working with Slic3r, not necessarily PrusaSlicer, unless Prusa has implemented this as well.
I think the way I would do it would be to insert some sort of comment using the slicer like "Insert long/medium/short retract here," and then use the post-processing script to fill in the gaps.


text:
Inconsistent inner/outer dimensions
Using CuraEngine with my Ender 3, I'm getting what I'd call inconsistent inner and outer dimensions - for example, a nominally 3 mm peg is significantly larger than a 3 mm hole, and it takes dimensions something like 2.9 mm for the peg and 3.1 mm for the hole to get them to fit. Is this level of error normal? Is it caused by overextrusion, or does CuraEngine run its paths along the curve of the slice rather than offset by approximately half the nozzle width inside the sliced region? The magnitude of the error being almost exactly 0.2 mm, which is half of the 0.4 mm nozzle diameter, makes me wonder if it's the latter.

Cura does correctly account for line extrusion widths wheen positioning the lines, and attempting to fix this with negative xy_offset was a mistake that led to lots of problems: in some cases, it completely eliminated tiny components of the model and left gaps in layers. At some point after asking this question, I did a new test with 8mm peg and hole, and I was actually able to force the 8mm peg into the hole (but not remove it) using tools, without cracking the parts, so I think past tiny sizes where dimensional accuracy is very difficult to achieve, everything is just about right.

Filament expands slightly as it is extruded. Also, the width of the extrusion depends on the volume of plastic extruded (not the nozzle size), as well as the amount that it is "squidged" down. Some slicers (e.g. Simplify3D) allow you to specify the width of the extrusion that you desire, but I'm not sure if Cura does this. You can fine tune the width of extrusions by adjusting the flow rate. Note that apertures get larger as nozzles wear out, but this should not affect the width of the extrusion very much since the determining factor is volumetric flow rate.
I would say that if you are getting a dimensional accuracy of +/- 0.1mm, you are doing pretty well. If you want to improve on this, you will need to calibrate your extruder and also monitor closely the average diameter of the filament that you are using. I have included a link to an external article, since doing this is beyond the scope of my answer. However, I doubt if it is possible to get push-fit accuracy with FDM printing without fudging the dimensions of the objects that you want to print.
3D Hubs: How to calibrate, tune and fine tune your printer and filament

The effect you are describing is called "die swell"; you can counteract this effect in the calibration of the extruder.

Do you know if Cura compensates for the width of extrusion it's attempting to produce by positioning of the path? Of course this won't solve the problem if the width of extrusion (after "die swell") differs from what it expects, but if it doesn't do such compensation I don't think any reduction in extrusion rate could fix this.

I've no idea. You could, of course, just examine the G-code. S3D sets a default line width of 0.48mm for a 0.4mm nozzle, whereas Cura just uses the nozzle diameter. Maybe S3D is trying to compensate for die swell?

Interesting. Yeah, I probably need to dig into the gcode output to figure out what it's doing (or the source, but that's usually worse).

I'm not sure I'd call it "fudging."  For a given material, and a reasonable range of hole sizes, you should be able to calibrate (much nicer-sounding word :-) ) the excess pin diameter and/or the loss of hole diameter.

@CarlWitthoft: I'd call it fudging (or a hack) if you have to modify the object geometry rather than the slicing parameters to fix it. Calibration should be something that happens at the slicing layer to produce an output that accurately reflects the source model.

I think the wall_0_inset setting of CuraEngine might be what I need. It looks like it's auto-set when called from Cura python gui (but doesn't do anything even then unless wall_line_width_0 is less than machine_nozzle_size), but needs to be computed and set manually when invoking CuraEngine directly.

Or perhaps just xy_offset...

I've been able to fudge/calibrate it with either xy_offset=-0.1 or material_flow=80, but the latter leaves serious ridges in the top skin and obviously isn't right. I haven't been able to get wall_0_inset to do anything meaningful.

@Mick: From examining the gcode, Cura does indeed position the path for the outer wall inset by half the nozzle-width from the surface. Further, xy_offset behaves as expected and allows it to be offset from there in either direction.


text:
Reproducing entire slicing configurations in Slic3r
3D printing is often an iterative process and I frequently find myself wanting to re-slice an STL I've already printed, but with just one setting tweaked. The problem is, unless I have left Slic3r open with the STL still loaded, I struggle to remember the exact combination of Print Settings, Filament Settings & Printer Settings I used for a previous print.
Am I missing something, or do I need to be meticulous in manually noting down every single setting? Feels like there should be a way for the computer to handle this for me.

Did you check the generated gcode? There is a section at the end with the settings used to generate it if thats what you are after.


text:
Is PETG filament food safe?
I've been trying to find a 3D printer filament which would not release any chemicals if in contact with heated water for a substantial amount of time. So far, I've easily ruled out both PLA and ABS, as they're not considered food safe from what I can find. I have found PETG filament, which seems to be food safe.
My question is: "Is there's anything special you'd have to do to make sure the print is food safe, or as in my case, to make sure it's safe for usage in a mug?".
I will be using a steel extruder as brass ones may contain lead.

Welcome to 3dPrinting.SE! I'm not quite sure your question is on topic for the site, but have a look at this article. I think it answers your questions. They actually suggest using PLA, because it is non-toxic. You have to seal it, though, as using it straight from the print bed is going to leave you seeping "stuff" all over the place (prints are very commonly porous). Anyway, there are others who are far more adept at this than I am who can give you a real answer.

@Pᴀᴜʟsᴛᴇʀ2 although that article also says that PETG is a good filament

All I was suggesting is that don't discard PLA as an option, mainly because it is non-toxic due to it being made from corn starch.

it's the tiny gaps that breed pathogens that causes 3d prints not to be food-safe, not the chemicals in the filament (although that could also be a concern).

Many manufactures list their filaments as being food safe, but I would not treat this as "gospel truth". Apparently, the FDA considers PETG to be safe for food contact, but they are probably thinking about injection-moulded and vacuum-formed parts. Unfortunately, an initial search of the FDA's website did not yield any definitive information.
Even if a particular filament is genuinely food safe, that does not mean that a 3D-printed part made from it will be food safe, since there will be an abundance of nooks and crannies where bacteria can lodge and reproduce. You would have to sterilise a utensil before and after every use to be absolutely safe.
Anyway, good luck with making a water-tight mug with an FDM printer. You will probably have to seal it to make it water-tight, and then it will be the food-safety of the sealant that you will need to worry about. I would give it a miss, if I were you (at least, for other people's use). Items intended for one-time use would be OK, I suppose.

Yeah, thanks, just realized I could just buy a normal mug and take it apart, as that will make my life a lot easier :)

This print is watertight: https://www.youtube.com/watch?v=OzfXVH59LjM

As far as PET-based filaments go, most of them are FDA approved. So yes, "food safe". It's the process of 3D printing that ruins that. all the little layers trap just about everything and are hard to clean. If you wanted to boil your part, that might work, but you'd be better off buying a food-safe coating spray for your parts.

Much of the information is simply false. PETG filament exists but PET is not printable in itself. Also, while PETG in itself is a food rated material, this does not make either the filament or the printed object food rated as the manufacturing procedures have to be food rated also.

LMK if you find a food-safe spray to seal your parts. I searched around the other day for such a spray but was dismayed to find nothing


text:
Modifying Marlin Extruder code to use 28byj-48 motor
I'm currently working on a project to convert an old 3D printer to a 2D powder dispenser. I'm using a Ramps 1.4 + Arduino Mega, and I'm trying to modify the extruder code in Marlin. I've printed a check plate and attached it to a 28byj-48 stepper motor.
The idea is to trigger the 28byj-48 motor to move a few steps in one direction to open the check plate on a "begin extrude" command (allowing the powder to flow through via gravity) and to close the check plate on a "stop extruding command".
However, I'm getting a little bit overwhelmed with the Marlin code, and would love any help making these changes or even figuring out which files I would need to look at to do this.
I've already done the hack on the stepper to make it work with the Ramps board, but haven't touched any of the code yet. Right now vanilla Marlin is running fine with my hardware, and I'm able to move the x and y axes fine.
** If you're interested, this is the inspiration for the project: https://www.youtube.com/watch?v=gXceYzhCWcs

Welcome to 3dPrinting.SE!

@Pᴀᴜʟsᴛᴇʀ2 Thanks! Hoping I can figure this out - any thoughts?

I'm a newbie to this stuff. Anything beyond throwing PLA into my printer and slicing something from Thingiverse and I'm left out ;-)

The process you describe sounds very inaccurate. Preferably you should use an auger to dispense the powder. But, if you want to follow the path you started, you might want to look into controlling a servo from Marlin.


text:
M12 vs M18 V5 inductive probe
I currently have my printrbot with a LJ12A3-4-Z/BX-5V Inductive Proximity Sensor ( 61mm M12 DC 5V NPN NO 300mA)
That detects my aluminium bed at around 1.2 mm distance. While it works, if the printer does the smallest blob the probe crashes into it.
I am considering replacing the probe by the M18 version LJ18A3-8-Z/BX-5V (
M18 8mm DC 5V NPN NO 300mA).
I haven't been able to find real specs for these probes (apart from what the sellers put in eBay or AliExpress - which I do not trust).
Will I get a larger detection distance with the M18 version of the 5 V probe? (I wonder if the M18 version is exactly the same M12 version with a larger casing).
Or should I move to the 6-36 V versions of the probes - I do not want to do that to not modify my wiring.

The larger the diameter and the higher the voltage the larger the detection distance. You do not need to do much wire modification if you use an optocoupler, see this anwer.


text:
Why did my power supply fuse blew out on my Anet A8?
So yesterday I got my power supply in the mail and I thought, let's check it out!
I put all the wires in correctly (as shown in this YouTube video, Anet A8 power supply unit fuse blown, I just searched really quickly, this person has the same problem as me) and "BANG", it blew.

Luckily the only thing broken on it is the fuse, for which I can get a new one, but my main question is .. why? why did it blow out? Did I wire it up wrong? The 12 V output goes to a RAMPS 1.4 board which is working correctly.
It worked the first time I plugged it in; the little green light went on. The second time a nice "big bang". When I tested it the first time, I didn't add the 12 V wires to the RAMPS board yet. When I did, the fuse of the PSU blew out.
The board is a RepRap RAMPS 1.4, which works fine when connected via USB to laptop.
Upon closer inspection I found a burned out resistor in the circuit of the power supply, maybe this caused the bang?
BIG update!
I opened it up and flipped the board, and noticed that there was a big ol' blob of tin connected to one of the pins I connected my wires to. I am very sure that this blob shouldn't connect to that pin at all, hence shorting my board.
Is this the cause?

Here is a link to the webpage I bought it from: Anet® 12 V 20 A 240 W Power Supply Dual-input Centralized Power Monitoring For 3D Printer
Here is how I wired it up at the PSU side:

At the RAMPS side:

This shows the internals of the PSU, it clearly shows burn marks:

I think we also need to see how things are connected on the other end before we can help you see where you went astray or if there indeed is something wrong with the power supply. It appears from the picture you have up you installed the wiring correctly (except for the missing ground as 0scar pointed out in his answer). The controller end of the equation is important, because if you've crossed something up on that end, you're most likely in for an issue as well.

Added images from your imgur link ... it looks like your board is fried to me, but I'm not an electrician. Disconnect the power from the supply to the board, replace the fuse, then plug it in and check the voltages coming from the power supply to verify it's still good. If it is, the main board is going to need replacement is my bet.

@Pᴀᴜʟsᴛᴇʀ2 i think it is most certainly dead. the metal is scorched from the heat from the flash.. i  think i might as well throw it away. Thank god my ramps board is still okay. I sent a message to banggood and they will investigate it within 24 hours.

The "burned" image is from the power supply? Sorry, that wasn't made clear, but if so, yah, power supply no good! ;-)

@Pᴀᴜʟsᴛᴇʀ2 Always nice to see people have the hammer close by in case of emergency! ;) Please try to keep the workspace clear when using electronics, metal screwdrivers laying around is not optimal.

The resistor shows burn marks, but these are residues from the other component next to it (4-way diode?). I think this question is best asked in the Electrical Engineering Stack. In reaction to  Thank god my ramps board is still okay!; what makes you say that? You have no reason to assume that from this experiment. Is this your second PSU, as the Anet A8 comes with a board and PSU as it is a complete kit, you need to add more information. What kind of PSU did you buy? (make and model or link/image of info plate)

Hello 0scar, thanks for your help so far. I tested it via the cura program,  clicking the axis buttons and looking for a flashing light when i did. That did work, so that's why i thought it wasn't toasted yet. But i am no expert so i just hope it still works on 12v

The lump of solder might just be a result of overheating. If it was the problem for the short, the solder would have vaporized, in your case the rectifier has blown out. I think it is best to ask this at EE.SE.

You need to closely look at how to connect to the output connectors. In this case it appears that you have wired it correctly according to the stamped in markings above the connectors. You have chosen not to connect the earth, this is strongly advised.
Did you check if the power switch matches the voltage of your country? If you are in Europe the switch should be set to 230 V, not 115 V (which is used in America).
E.g. for the following power supply you see such a switch on the side:

If a PSU is connected without load and works, and short circuits when externals are connected there are a few options:

there is a short in the connected printer board,
the load that the board takes is too large for the PSU,
the PSU cannot deliver the load,
the PSU was faulty to begin with.

Hello! I just found this youtube video after i blew it, finding out he used the same method of connecting it as me. The voltage switch is on 230V, which is correct. I looked at charts which told me to connect it this way.

Dear oscar, the board is a ramps 1.4 board that doesn't short when i connect it to my laptop via a usb cable. the lights all flash nominal.
I don't think it really takes such a big load, since most 3d printers use it, and i didn't connect any motors to it yet. If it's broken, then how do i prove to Banggood (ironic name) that it wasn't my fault?

@wesseldijkstra "If it works over USB" has no relation to powering it with 12 V.

Unless you know what you're doing, do not remove the covers from a PSU. The components can store a lethal charge long after power is removed, even if the fuse is blown.
My guess is something loose (now vapourised) in the PSU. Electronics have a tendancy of failing either quite soon after manufacture, or lasting reasonably well. This is described with the Bathtub Curve.
Looking at the failure, there was a significant short circuit somewhere - quite likely within the PSU itself. This doesn't mean you can be sure that the RAMPS board survived, but it has a reasonable chance of not being harmed.
There is no significant chance of the PSU failing like that simply due to an excessive load in its output - unless it was overloaded for a significant period of time. Generally these PSUs will have some degree of overload protection even if they are not explicitly designed to survive an overload.

No, completely wrong (unless your image is misleading, but I doubt it). This is common technique to increase the current carrying capability of the copper track. It goes without saying that you are not experienced enough to safely work on this with the covers removed.


text:
What calibration options should I look into given these defects
I printed a temperature calibration cuboid for Hatchbox 1.75 mm PLA, in 1 °C increments from 180 °C to 190 °C.
I have two questions related to this image:

I'm not seeing any difference in quality across the temperature range. Am I just way off base and need to be substantially higher?
How do I get rid of the small layer shifts you can see across the board?

Printed on a RepRapGuru Prusa MK2 clone.

Most slicers/printers use Celsius and not Fahrenheit for temps. If you are running things in F (Fahrenheit), you're running your temps way too low. You should be running PLA around 200 °C. At 180 °F, this is ~82 °C ... I'm betting you mean you are extruding at 180 °C ... still, this is pretty low, even for PLA. I'd suggest running your temps from 195 °C to 210 °C and checking the difference.

Woops. Yes, typo - C, not F.

Even so, 180-190 is usually pretty low for print temps using PLA ... just a thought.

Fair. I was under the impression that you want to go as low as you can without extrusion issues. Is that not the case? And will this address the unevenness I'm seeing?

Couldn't what you are seeing be considered extrusion issues? Try it, as what do you have to lose but a little time and filament.

Sure. I'm referring to what looks like unevenness or layers along the corners of the print.

Your print does not suffer from layer shifts as you call them. This uneven layer deposition is typically caused by the (positioning) accuracy of your printer. All-in-all, this print does not look so bad. You would get better quality prints on a different style of a printer; most high-end printers have a lowering platform instead  of a forth and back moving platform.
Although 180 °C is at the low side of printing PLA (usually it starts at about 185 °C), the print does look okay. However, looks can deceive, it does not say anything about structural integrity (layer bonding).
Note, to calibrate the temperature using a temperature tower, you need a different calibration test print, preferably one that tests overhang. This latter is usually far more important as there is normally not much to see at the walls, you need a slanting part in the print or an overhang to determine the optimal temperature.


text:
Is there any better way to make this transparent dome?
As part of a larger project, i'm trying to print a translucent green dome.  I set it up as follows:

In Blender, create an icosphere of the maximum allowed complexity. Cut it in half and throw away one of the hemispheres.
Duplicate the hemisphere. Move the second one down slightly and use Subtract, to hollow it out.  Clean up the vertex garbage left behind.
Export the model.  Import it in the slicer, scale to the proper size, and export as gcode.
Print the model with translucent green filament at 100% solid infill.

I ended up with a beautifully rounded dome that doesn't feel at all like a polyhedron, so that worked out fine.  The only problem is, it's solid green.  The filament seems to lose its translucency past a certain thickness, and the fact that my "solid" print is actually made up of thousands of tiny strings pressed up against each other probably doesn't help.
I tried reprinting it in Spiral Vase mode, and while the print turned out to be transparent, it was also extremely thin and fragile, and it failed anyway because of lack of support once the dome's angle got bad enough.
I've been trying to think of how to print this properly, but nothing I think of will work:

Scaling can make the walls thinner, but only by reducing the size of the model.  Its basic dimensions need to remain unchanged.
Doing the same trick again that I used to create the dome, subtracting a copy of itself moved down slightly, would lead to non-uniform thickness in the model.  (Which I already have some of.  But when the thickness is directly correlated to the degree of transparency, this is problematic.)

Does anyone know of any tricks I can use to get it to come out properly?  For reference, I'm using Blender as my 3D software, IdeaMaker as my slicer, and printing on a Raise3D N2 Plus printer.

You use the terms transparent and translucent interchangeably. I realize that's semantics, but translucent is semi-clear, while transparent is clear (like glass).

Why can't you duplicate and reduce the entire icosphere, and then use "Boolean Intersection" (at least, that's the command name in MeshMixer) to hollow out the larger sphere?

The filament seems to lose its translucency past a certain thickness

That's exactly the point. Think of translucency as a percentage of light being allowed through, per amount of material. 2x the material means 1/2 the light. You need either less material (which becomes brittle as you saw), or a more translucent material. I think it has little to do with the model itself.
Also - check out OnShape. One of the features it has is a "shell" function, that does what you're describing - takes a single 3D feature and creates a shell out of it of consistent thickness.

OnShape looks interesting... right up until I hit the registration wall.  Having to sign up for a "service" that, in all honesty, I'm likely to use once ever, instead of them simply offering a download like any civilized software developer would do, is a bit offputting.

fwiw - there's a perpetual free tier that forces your stuff public. similar to the github model. i have no relationship with them, just find the software useful and approachable.

For the modeling, I suggest to change to a proper CAD software, design a half sidecut and create the model by rotating it around Z. That way you'd create an evenly thick part.
As for loosing transparency, that has several reasons:

light loss into printed materials is mainly due to air being captured in the model. To get the air out as much as possible and generate an almost entirely transparent print, I have printed some lens-tests with extra heat and deliberately overextruding to fill all the cavities and voids.
light loss in materials is also dependant on the material factor and thickness.

If you go away from FDM and look into resin-based SLA/DLP systems, you can get almost fully transparent prints with very low colored resins.


text:
Homing the 3D printer
I have just built my first 3D printer, and I am having some problems. It is a Cartesian based 3D printer, using Marlin firmware and Pronterface software. My problem is homing the 3D printer. I do not have a probe to calibrate the z offset but I have all 6 endstops. The problem is that the "ZMIN" endstop isn't precise enough and my hotend is always either too far from or too close to the heatbed. Is there a way to manually set the home position, so when I start the printer, It just starts printing and it doesn't have to home again; Or maybe some other way to set the correct offset. It would also be helpful if I could use just the "ZMAX" plug, and then manually set the minimum Z position using a piece of paper.

In most models without an auto-leveling sensor it is done by a set of screws with which you can adjust the height of the build platform.

That does sound like your ZMIN endstop might just be faulty, or attached to the frame very weakly.
It is possible to home towards ZMAX - simply specify "1" as homing direction instead of "-1" in Marlin and set the "MANUAL_HOME_POS_Z" (or similar) to the distance between bed and ZMAX.
First, I'd try just swapping the mechanical endstop between ZMIN and ZMAX or any other working endstop.

It is possible to "home a printer" without having endstops, technically, you don't require endstops, but it makes your job a lot easier if you want to print something!
Basically, when you don't have endstops or limit switches, you need to define where the head of the printer is located. E.g. you can set the nozzle at [0, 0, 0] (origin in [x, y, z]) and add the command G92 to your print G-code file that it is at that position using G92 X0 Y0 Z0 (or any other location you use, e.g. you could engineer a parking position and refer to that position instead, note that you also need to write the movement commands to get out of that location safely). Don't forget to remove the homing command from your start code in your slicer, replace G28 with the G92 command with appropriate X, Y and Z values.
Regarding the inaccurate repetitive accuracy of your Z min endstop, it might be worth to find out why this is causing such a spread in triggering, maybe you need to invest in some new endstop switches or look more closely to the heated bed attachment to the frame.
Using Z max as a reference point is e.g. used by Ultimaker machines. The heated platform lowers to Z max; the printer knows from calibration and geometry how far it needs to rise to get to Z=0.

I already tried that. I got the printer to the position above the heat bed. I put the piece of paper in between to set the z offset, and I set the x and y axis so the hot end is at the center of heat bed, But when I press print, it just calibrates using endstops...

Is there a way to home it using  Zmax endstop and distance from zmax to heatbed?

@ToniDuspara You do need to remove the G28 (homing command) from your print file! Replace that with G92 X100 Y100 Z0 (that is if your bed is 200x200 mm). In reply on your Zmax comment, yes you can, this is how Ultimaker does it; an Ultimaker platform drops to the bottom to trigger Zmax. But it is better to put your efforts in fixing your current Zmin endstop.

You can reconfigure marlin to use the MAXZ endstop instead of MINZ in Configuration.h, and then reflash it to your printer.
https://github.com/MarlinFirmware/Marlin/blob/1.1.x/Marlin/Configuration.h#L877
Now this is highly unusual, as most printers only have MIN endstops. If you post a pic of your faulty MINZ endstop, we can probably figure out how you could fix it. Zipties come to mind as a likely solution.


text:
How to make sure we reach the total feedrate despite jerk
When printing a G-code at a high speed/feedrate of 12,000 mm/min versus a slower speed we don't always notice a difference since the geometry does not always allow for the full speed to be reached due to the acceleration/deceleration taking most of the length of the segments.
Is the above a correct statement and is there a way to find the sweet spot between length and fastest speed in relation to the jerk values?

This Q/A might be relevant.

That's 200mm/s which seems plausible for very thin layers (0.1mm or less), standard to large nozzle size, and simple geometry.

The simple answer is that there's no way to guarantee you reach a specific maximum speed, with a given acceleration limit. You have to accelerate and decelerate along the length of a line, so the distance you're accelerating is roughly half the length of the total line. Imagine you can only accelerate at 50 mm/s2, and you've got a line that allows you to reach exactly 100 mm/s before you start decelerating. If you have to print a shorter line, you're going to reach a lower speed. Any combination of maximum speed and maximum acceleration can be defeated just by printing a shorter line than you tested with.
As far as a sweet spot goes, I'm not sure quite what you're asking there. There are tradeoffs to be considered for any combination of speed, jerk, and acceleration.
Prints with high jerk settings will be able to "skip" a certain portion of the acceleration and just jump straight to some minimum speed. This tends to result in echo artifacts on the print around corners.
Prints with low acceleration settings tend to exhibit some irregularities in line width over the length of the line due to the interaction between pressure and extrusion rate inside the extruder. I went into some detail on the third section of this previous answer of how and why this happens.
Prints with high top speeds, but low acceleration and jerk, can suffer from under-extrusion if you set your maximum speed too high, and it can be a little difficult to diagnose this in some cases. If you think of the extruder as having an internal "buffer" of molten plastic, that buffer tends to fill at low print speeds, and empty at higher print speeds. You may think you've got your maximum speed set appropriately, when in reality your extruder drains the buffer over maybe 50 mm of max speed printing (hypothetical nonsensical number), and attempting to print very long straight lines may result in the extruder emptying its buffer until it slows down again. My recommendation is to do some trial and error testing to figure out the fastest extrusion rate your printer can support for an extended period of time, and then put that maximum limit into your printer firmware to prevent printing too quickly. Acceleration and jerk settings should be set as high as you can tolerate without causing echoes and other odd artifacts, with attention paid to the printer itself; it gains you nothing to shake your frame to pieces trying to chase some theoretical maximum printing speed limit.


text:
Boolean operation on two objects in Blender
I'm trying to draw a strange cup, with a kind of empty handle (actually, it's not a cup, but it looks like one).
I need to print this object with a 3D printer, so I exported the model to 3D printing software (Simplify3D) to obtain relative G-code for the printer.
I can correctly export (in .stl) both parts separately (cup [a] and handle [b]), and obtain a good G-code. But when I try to match the two parts with a boolean operation, the result becomes chaotic.
I've added a (G-code) picture to show how the slicer creates strange triangles inside the cup; I really can't understand how to prevent it.
I'm designing the print using the Blender 3D software modelling tool.

I've uploaded my file for reference.
The file has the bezier curves from witch I do screws in the origin. the result that I'm trying to export in stl is on the side.
Note: to have correct dimensions, I scale the model after 90° rotation on x-axis (base on bottom for printing), I then change the scale to 1:10 (bigger model), before exporting as stl.
I would obtain a sort of vase with an empty handle (the cylinder should work as an hole).
here what I do:

I convert curves to meshes
I screw the cup (360° y-axis)
I screw the handle (60° after rotation -30° on y-axis)
I solidify the handle
I add 2 operations to cup, (a) solidify, (b) boolean
to match the two solid I adjust the solidify (a) looking to boolean result of an intersection (cup to handle).
when I have the right overlapping I apply (a) solidify and then (b) union-boolean (cup to handle).
at the end I apply a difference-boolean modificator to cup/handle with cone, to create the hole.

I hope someone should explain me what I am doing wrong. I have made a somewhat simpler version here.

Answers could be better if you share the messed up model and G-code btw.

Make sure there are no "rogue" vertices in your handle part before combining.  I don't know Blender, but I do know that in MeshMIxer, Boolean operations only work after running the "Make Solid" command on the parts to ensure proper Boolean logic.

Check your settings in the slicer software you use: if you look at the sliced print carefully, you see only one line in each layer that crosses the inner section. The lines are also yellow, not green. This strongly hints that these are movement commands, not actual print commands.
On the other hand, you might want to carefully check in blender: at times, the normals in places get swapped inside out and then mess up the whole geometry without being visible in blender. Recalculate Normals can fix that at times, other times choose the messed up vertices and flip normals.
Make sure not to include voids in the model.
The model in question
Looking at the model, I also spotted that there was a lingering solidify modifier. Applying that resulted in this:

This is a particularly bad thing. Fixing is easy though: remove the offending inner vertices.

Atop that, the center points are a clustered mess of vertices - surely you want to merge them into just two vertices.
Applying the Boolean modifier now created a solid shell.

Before exporting, all other items had to be removed (deleted), then the export gives this nice model:

I cheked the slice, they are not only movement, infact they are filled iside.

I also recalculated normals but it still remain the error.. I have no idea, I drawed this project so many times.. please help.. (and tank you for suggestions)

@Marco then please share the model

I added a link at the end of question.

@Marco I did what I could... and came up with a perfectly fine model with just a few little tweaks.

tank you for your support. I did double solidify (I had a mesh with 2 lines), so I had the first "bad thing" you notified. excluding this, I had no problem to slice the model. I don't see the clustered meshes (Verts: 1/464). a part that, I'll retry the model to understand if the error was only the double lines-screw. tank you a lot, there was a long time that i tried to understand.

@Marco the inner shell was connected to the outer via those vertex clusters, which made the object non-manifold. It was mainly the fix of the non-manifold that eased the problems, but the simplification of the surface does yield better slicing times.


text:
Why can my printer display remaining time but OctoPrint can't?
The Prusa i3 MK3 displays the remaining printing time right from the beginning.

Image: 3:38 remaining after 0% printing

From about 8 prints until now, I would say that this time is quite reliable.
Octoprint, however, does not display the remaining time initially and is then far off.

Image: Octoprint saying something like "too uncertain"

Image: Octoprint says 8.5 hours remaining

Why doesn't Octoprint just take the remaining time from the printer and display that? Or can I change a setting so that it does?

I'd strongly suggest using the PrintTimeGenius plugin. It's accurate within a few minutes.

Octoprint is a generic application that has to work with a rather wide variety of printers and printer firmwares. The time estimation that is shipped with Octoprint by default is a very basic method that doesn't rely on any specific printer features. This also makes it kind of useless in some cases, and not very accurate.
The estimate that the Prusa i3 Mk3 shows is not actually done by the printer, it is embedded in the GCode generated by Slic3r PE. There are M73 commands added that tell the printer how far along the print job is.
As for why Octoprint doesn't do this by default, the major reason is likely that this method only works for specific printers and slicers, and only works well if the slicer can actually do good estimates for a particular printer. This is the case for the Prusa because it supports this feature and the slicer is maintained by them and has enough information to make good estimates. But this is not the case for all printers.
The feature is also not entirely standardized as far as I understand, e.g. Prusa uses slightly different M73 commands to give estimates for normal and silent mode.
There are plugins that can read the M73 estimates, you could try that. I never tried them myself, this plugin seems to do what you want from a quick glance.

Thanks. Nice information about GCode I didn't know.


text:
Infill is rough - how to enhance?
My i3 MK3 is printing very well for solid parts of an object, but it messes up with infill.

As you can see in the image, the infill is broken into pieces and bends to that the surface becomes rough and the nozzle touches it next time it moves there, which probably does not make things better.
I've read the Prusa problem page, where they suggest three solutions:

change infill type
flexible filament (I'm using PETG, so this does not apply)
lower printing speed

I'm printing with 20% infill and I believe that this worked before at the same speed, so I'm tempted to say that both remaining options are options, but it should work without them.
It also seems to me as if the infill is thinner that ordinary walls. Is the extrusion speed lower in case of infill? Is there a way of changing the extrusion speed for infill?
Side note: my printer always tells me to upgrade to the latest firmware 3.5.1. Since I have just received the printer back from a warranty repair after the last firmware upgrade, I don't want to upgrade the firmware. Could the issue be related to firmware?
Infos requested from comments:
I'm basically using the Slic3r default settings for PETG. The only thing I adjusted is the temperature, since I'm using HDGlass PETG and there was a recommended temperature written on the spool. Relevant settings seem to be

Filament settings

fan speed min 30 % max 50 %
bridges fan speed 50 %
enable fan below 20 s
slow down below 20 s
min print speed 15 mm/s

Speed settings

Perimenters 45 mm/s
Small perimeters 25 mm/s
External perimeters 35 mm/s
Infill 200 mm/s
Solid infill 200 mm/s
Top solid infill 50 mm/s

what makes smooth infill desireable?

@Trish: a) less noise of the nozzle scratching over the rough infill, making me feel uncomfortable that it might just tear down the whole thing. b) Stability of the final product as expected. c) After the infill, the will finally be a solid top. That top will look ugly when printed over a rough surface. Do you have that problem as well and you just leave it like that?

have you tried different infils? I like 3D infil, like gyroid or cubic. I know that some linear infils (triangle or square) sometimes do that as the lines pass over themselves.

Sure, I can try a different infill. I just don't understand why it works once and it does not work now. I'd like to have reproducible prints that work at first print. Otherwise it's a waste of material, energy and money. I don't want to pollute the environment trying new infills which might or might not work.

how does the infill print speed compare to the perimeter print speed? If the infill speed is appreciably higher you will have failed bonding between layers, which is somewhat how it appears in the image provided. PETG likes reduced cooling, from my understanding (limited) which might also point to cooling fan speed comparison.

From your comments can be read that you print infill at 200 mm/s.
Know that 200 mm/s is ridiculously fast (like high travelling speed), close to the limits of printing on certain machines (for an AtMega)! It is hard for the filament to keep up at this speed. A value of 60 mm/s would be a good value to start experimenting. Your infill is not rough, it just failed printing. I have printed kilometers of PETG, normal print speeds for my PETG are recommended at 30-50 mm/s by my manufacturer; I get good results at 50-60 mm/s. On my Ultimaker 3, 70 mm/s is also feasible.

Note that the filament you use seems to have rather low printing temperatures (195-225 °C) as opposed to the PETG filament (co-polymer) I'm used to. The manufacturer does not specify advised print speeds (other than "high", but what defines "high"?), but this user posted some of his print settings for this material. The overall speed of 60 mm/s seems to support lower than 200 mm/s print speeds.

Ridiculously fast - well, it was the default setting for PET. Is there a way to save this setting as part of the filament definition? At the moment I can only find this as part of the print settings, which means I always need to adjust this. However, I'd like to ensure that I decrease the infill speed every time I use PET as the filament.

@ThomasWeller Just change it and save it. At least that is possible in default Slic3r or Ultimaker Cura.

60 mm/s improved much. 50 mm/s is almost perfect. Great to see that I don't have to decrease the overall printing speed.

I have dealt with this on infill as well on multiple MK3s.
However, it was not the speed itself, but the hot end having difficulty extruding enough to keep up with the infill.
Some things to try:

Raise hot end temperature 5 degrees (melt filament faster)
Lower infill speed, it will not affect your overall print time very much (surprisingly)
A combination of the two above.

Good luck!

Yes, temperature does make an effect, certainly when you are using 2.85 mm filament, that needs more time to melt through to the core. But from experience I found that still with raising the temperature you hit a limit causing the line width to be smaller than intended. But a good additional answer! I wondered to add that myself yesterday, but limited the answer to the IMHO high extrusion speed. Welcome at 3D Printing.SE!


text:
Connecting Anet 8 2004 display with Ramps 1.4 to Aux2 can't seem to figure it out
I've heard about switching out some connectors, but can't seem to figure out which ones and can't seem to find a diagram out there that is much help. Does anyone know which connectors I should switch to achieve this?

This answer clearly describes that you need to switch pins 1 and 2. It also describes that the MKS board is similar to a RAMPS board.
First thing to look for is the layout of the AUX2 header:

The pin layout reveals that pin 1 is VCC and pin 2 is GND. These need to be switched to be able to connect the display on AUX2.


text:
Wrong Z-Axis movement in G-Code
Alright so I bought a broken UP mini. There was only a defect on the board so I connected the components to a Duet 2 Wifi.
Everything is fully operational and I can manually move all axes correctly using the interface as well as homing them.
The problem is that when I try to slice a model (I am using Slic3r) and upload the G-Code the bed will be raised instead of lowered during printing.
How do I change it so the direction of the Z-Axis goes correctly?
Additional information:

The Z endstop is at the bottom
When homed the Z coordinate is on 0 mm
When placing the bed under the extruder the Z coordinate is 170 mm

Did it work before you messed up the board?

You could put the z endstop at the top, and flip the motor connector to make it move the other direction. This should make it home to the top near the nozzle, and then move downward during the print.
Otherwise, you'll have to tweak the firmware configuration and reflash.


text:
Can a single line of Gcode have variable extrusion rate?
Fairly long winded, but hopefully makes sense;
I understand that G-code is executed line-by-line, and in the main printing phase each instruction is effectively go to location XY (assuming staying within the layer) at a set speed with a set extrusion amount (not rate, as far as I can tell).
Imagine you were printing a single road width, say 10 mm long. If the single instruction says to move that 10 mm at a set speed and extrude 10mm of material (which is, I guess, not 10mm of filament), with infinite acceleration and deceleration of the nozzle and extruder gears, then a linear amount of material would be extruded per unit length along the 10 mm. However, given that there is some acceleration and deceleration, that extrusion must be non-linear.
My questions are as follows;
- Is it possible to counteract this within a single line of Gcode by having a variable extrusion rate?
- Can the machine do so regardless of the instructions given to it?
- Is this effect embraced somehow?
- Does the need to accelerate both the nozzle position and filament effectively cancel out?
-Would/could you aim instead to split a single straight line of filament into multiple lines of G-code, some extruding (say in the middle), and some not (say at each end)?

Welcome to 3dPrinting.SE!

The extrusion axis E follows the same acceleration profile as the X and Y axis in most firmware (Marlin). It's not like the E axis moves linearly while the others are accelerating. Those swells at the corners of your prints are due to physical lag in your extrusion system.

My understanding is that the printer firmware will define the maximum acceleration and speeds for each axis (X, Y, Z, and E). When executing a line of g-code that involves more than one axis, the acceleration for each will be limited such that they all begin and end, including acceleration together.
During the start and end of a line, when the print nozzle is moving more slowly, the extruder will also move slowly. In the middle of the line, the extruder will move faster. The amount of material extruded per distance will be constant over the length of the line.
Another way to look at it - suppose you could accelerate quickly on X with a high top speed, but slowly on Y. A move only in the X direction could happen quickly. A move only in the Y direction would be slower. If you want to move at a 45-degree angle,  you will need to slow down X so that it doesn't get ahead of Y.
If you did want to intentionally vary the amount of extrusion per distance during a line, you would need to break it into multiple segments with individual lines of g-code.

Let's see...

Is it possible to counteract this within a single line of Gcode by having a variable extrusion rate?

No, it cannot. G Code executes line by line. If you have a line : G1 X10 F100 F200 F300
some parseres will accept the first (F100), some will only accept the last (F300)

Can the machine do so regardless of the instructions given to it?

If you program a custom G code parser to do so, you still couldn't because there is no time scale to which you would want the effect to apply. To do this you would have to introduce a new letter to your parser (let's call it K), which you could use to instruct the machine to scale the extrusion accordingly (e.g. G1 X10 F100 K0.24). The machine would then know to scale the F parameter by 0.24 over the course of the movement.

Is this effect embraced somehow?

Uhm... no?

Does the need to accelerate both the nozzle position and filament effectively cancel out?

Cancel out how? The filament stepper as well as the gantry steppers are step synchronized so that they operate at the correct feedrate, at all times.

Would/could you aim instead to split a single straight line of
     filament into multiple lines of G-code, some extruding (say in the
     middle), and some not (say at each end)?

Absolutely not. Each line of gcode has to be completed by the machine before any other line can be considered. You can't have one motion governed by multiple lines of g-code, because there will be not way to control the timing of the execution of the lines.

Your formatting makes more sense Trish. thanks much.

Of course you can split one extrusion line! Just introduce several visiting positions in the middle!

While Trish directly answers the G-Code part of your question, my answer offers an alternative if you use Marlin. RepRap has a similar feature called pressure advance, but this answer is focusing on Marlin's feature.
According to Marlin:

Under default conditions, extruder axis movement is treated in the same way as the XYZ linear axes. The extruder motor moves in linear proportion to all the other motors, maintaining exactly the same acceleration profile and start/stop points. But an extruder is not a linear system, so this approach leads, most obviously, to extra material being extruded at the end of each linear movement.

In short, corners result in being rounded instead of sharp due to the constant extrusion when laying down a line. One can mitigate this by changing the flow, though this might affect straight lines in other parts of the print, namely under extruding them. Marlin's answer to this is linear advance.
With linear advance, the extrusion rate changes as the print head speed changes. When the print head moves faster, more plastic has to be pushed out to lay a consistent line and as soon as the head slows down, the extrusion rate slows down to compensate. The print should then have a consistent line. This is all done using a new factor called k. From Marlin:

K is now a meaningful value with the unit [mm of filament compression needed per 1mm/s extrusion speed] or [mm/mm/s].

One can determine the k value for their printer using Marlin's k calibration tool which prints out multiple straight lines and instructs the printer to print the start of each line slowly, then print fast, and end the line slow again. Each line has a different k value and the user chooses the k value from the line that is most consistent.
Some caveats
Bowden style extruders require larger k values which, even then, linear advancing may not work. This is due to the bowden tube itself and the material between the extruder motor and the hot end. This is along the same issue as trying to print flexible plastics with a bowden extruder. While linear advance is better suited for direct drives, it's not impossible to use it on a bowden.
Setting up linear advance requires an extra set of tuning. While this primarily means tuning the k value, print speeds may need adjusting (potentially allowing for faster speeds even).
Older linear advance version, at least on Marlin, had the extruder motor a lot more active. Some people report that printing is noticeably noisier. This feature might also add an extra load to the CPU. These issues should not be a problem anymore, as of v1.5, but YMMV.
One needs to change the firmware/G-Code so that each print can use linear advance. If the printer is only using one material the firmware can be changed. However, if multiple materials will be used within the printer's lifetime, the G-Code will have to include the following command at the end of the start script ( more found here). This k value will be different for each material. An example of the command is as follows:
M900 K75 ; Set k-factor for PLA

The link also recommends setting the k factor value to 0 when turning the feature on in the firmware. This essentially disables the hard-coded value in the firmware.
Finally, slicer settings like pressure advance, Coast at end, extra restart length after retract should be disabled when using linear advance as they do a similar operation. On the flip side, these settings may work for your printer so you may not need to even use linear advance.

I thought the "linear advance" is a firmware solution, not a hardware dependable one (referring to your answer: "Some printers are capable of"); Could you elaborate please?

@0scar I guess I was thinking "some printers [due to their firmware]" which is ambiguous without that clarification. I shall replace printers with firmware since that is more accurate. Thanks!

@0scar, you also got me thinking that linear advance may work only on Marlin firmware so I did some research and found that seems to be the case. So thanks for that as well. :)

Not on one line, but...
On Hyrel systems, you can, manually, split one long move into several smaller moves, each with a different extrusion rate.
For example, let's start at X100 Y100, and move to X100 Y200. On a Hyrel, this would look like this (with an inherited F rate if not specified):
  G1 X100 Y200 E1

We could change this by specifying our Feed Rate Multiplier:
  M221 S0.9 ; set feed rate multiplier to 90%
  G1 X100 Y110 E1 ; print 10mm
  M221 S0.95 ; set feed rate multiplier to 95%
  G1 X100 Y120 E1 ; print 10mm
  M221 S1 ; set feed rate multiplier to 100%
  G1 X100 Y130 E1 ; print 10mm
  M221 S1.05 ; set feed rate multiplier to 105%
  ...

We can also vary all of the parameters between moves, including print speed, acceleration, deceleration, cooling, and UV curing.
And we do use "linear advance" as well, so extrusion ramps up with travel speed.
Note: I work for Hyrel.

That is, technically, not one line of code though, as each part is one line of code.

@Trish True enough. I was thinking "one line" (printed).

No
G-code is written line separated, starting with one command what to do, then who does it with what factors. For example G1 X10 F100 E10 says this:

G1 Move...
X10 The X axis by 10
F100 Use the factor to 100 units
E10 Also: the Extruder by 10

To my knowledge any repeated or invalid expression is simply ignored (or overwritten). So G1 X10 F100 E10 F200 gets parsed as either  G1 X10 F100 E10 or  G1 X10 E10 F200, depending on how your firmware interpreter is set up.