text:
Stop and continue 3D printing
How to successfully pause 3D printing and turn off the printer and the next day, continue to print the model?

Do you know when you want to pause it when you start the print?
I completed a failed print once by measuring its height and removing all already printed segments from the g-code file. Worked reasonably well.

You could use an M0, M1, or G4 command after a non-printing move (preferably just after a layer change and move to home) if your setup allows.

I recommend that you don't turn off the printer and resume the next day. If the heat bed cools down the part could become unstuck. The printer must be kept hot for the entire time that you need to print; unless it's PLA which tends to be more forgiving. Also Turning off the printer and turning it back on will cause it to loose it's position. Each time you home the axis of the printer it could home in a slightly different location. If you resumed the print under those conditions it would leave a clear line on the outer walls that is indicative of the layers not lining up properly. Lastly, if you let the nozzle ooze for period of time, you will have to purge the nozzle before you could print again. In this regard be prepared for some air printing for the first few movements. Depending on what you are printing, this could result in a build failure.
Needless to say, people have been able to recover a print under power off/failure conditions, but that's not a strategy to 3d printing. Those were mitigation efforts to exception cases.

If you enable M413 in Marlin firmware, the printer will write a resume printing file to SD card e.g. every layer.
From M413 - Power-loss Recovery documentation I quote:

Enable or disable the Power-loss Recovery feature. When this feature is enabled, the state of the current print job (SD card only) will be saved to a file on the SD card. If the machine crashes or a power outage occurs, the firmware will present an option to Resume the interrupted print job. In Marlin 2.0 the POWER_LOSS_RECOVERY option must be enabled.
This feature operates without a power-loss detection circuit by writing to the recovery file periodically (e.g., once per layer), or if a POWER_LOSS_PIN is configured then it will write the recovery info only when a power-loss is detected. The latter option is preferred, since constant writing to the SD card can shorten its life, and the print will be resumed where it was interrupted rather than repeating the last layer. (Future implementations may allow use of the EEPROM or the on-board SD card.)

This means if you cut the power you can resume the print layer, the only problem is that the part must remain attached to the plate, if it comes loose it is hard to resume printing. This feature is now commonly found on printers these days.
The regular pause and resume functionality of the printer will not work when the power is cut over night, i.e. no recovery file is written in such a case.

I have never understood the votes cast on this sub. IMO This is the perfect answer, all the others are just tinkering (mine included)!

@Valmond, thanks, remember voting is key! Top answers will float to the top. Note that this answer, although it works, it is not perfect, this is not what the resume on power outage has been designed for. There is just no alternative if it has to include a shutdown as per request of the OP, this is the best answer I could think of including powering down.

Yeah guys, vote, but when you downvote, also tell why or it only comes off as an angry down-vote spree.

@Valmond, unfortunately... that is the nature of man. If you doubt that, become a member of Reddit and watch as people downvote you to infinity at first, until you establish you credibility.

@TDHofstetter  Left that place for Lemmy some time ago already ;-)

This functionality has a lot of negative side effects (like putting warts all over your print), and should not be used. It also does not resume at the point you left off, only at the start of the layer. This means some parts will be re-printed, producing collisions between the nozzle and the part and likely knocking it off the bed.

Set up your printer to be controlled by an outside source via USB or other protocol. Now set up a PC / a Pi / a Beaglebone / an Arduino / etc ... to feed GCode to your printer from MicroSD. I personally like the "an Arduino" option here because it's super-low-power and gives you tons of control over what you're doing... so I'll continue along the Arduino vein here.
Power your Arduino from a battery-backed wallwart. That'll give it plenty of guts to hurriedly write a record to a special file on MicroSD maintained for that express purpose. Or heck, write that record to EEPROM, which should be good for a hundred thousand power outages.
Next, rig up something that permits your Arduino to sense a complete power failure at the wall. You'll want a current transformer, perhaps, and little to no filtering so you get notified within 1/50 or 1/60 of a second when you detect a missing power excursion. Your Arduino should stop sending and record that record when it detects a power drop.
At power-up, your Arduino should detect that it wrote a power-off record and offer to resume pumping GCode to your printer after it sends the appropriate warm-up sequence to the printer. It should offer you the option of bagging the print or trying a resume. If you try the resume, it should seek() to the file position corresponding to the first GCode command after the last Z increment that was not a "Z hop". It should then step through all the G1 commands since that position, but traverse only, do not extrude, until it reaches the last command it had sent. It cannot know where along that G1 the printer paused, so it should repeat that one G1 line with extrusion active. You should get exactly one partially extra-fat line of filament at that one point in your print, but otherwise the stitching should be very good.
Provided, of course, that you've been ensuring exceptional print adhesion. The whole nine. Don't risk poor adhesion with a stunt like this, give yourself good adhesion. Really, your print should not pop off the build surface upon cooling. If it does, then you aren't doing enough to keep it there.

The majority of my edits were in accordance with the Meta post Useful things to check for when cleaning up posts. Please don't roll back useful edits.

@agarza Too many of your edits were arbitrary. For example, you changed "wallwart" to "wall-wart", despite the worldwide standard usage of "wallwart" as a single unhyphenated word. Please don't make arbitrary "corrections". Useful edits (or suggestions) are welcome.
After your whole packet of "corrections", my answer no longer read like MY answer... and I couldn't roll back each arbitrary edit invidually.
And... frankly... I don't see where :any: of your edits were in confornity with the "Useful Things...Posts" guideline.
I removed "So... ". Nothing else is incorrect.

1) Cut the model up in several parts and print one each day. Remove each part every day and in the end, glue them all together.
2) Cut the model up in several parts and each day, add a G-code to the file to be printed so it lowers the heat-bed and thus starts to print on top of yesterdays print. This cannot be used when the printer is auto-calibrating as the printer-head would crash into the already printed part. It would probably be tricky.
3) Pause the printer in the evening, then resume next day (don't forget to lower temperatures and rise them again tomorrow).

Some printers have built-in functionality for resume after power-loss. I believe this is a standard part of the Marlin firmware now; I know the Creality Ender 3 has it and I don't believe it was a nonstandard addition (and if it was, their source was released in accordance with the GPL anyway, so it could be merged). So if you printer doesn't already have the functionality, but is amenable to a firmware upgrade/replacement to a version of Marlin that does, it should be possible to get it.
I have an Ender 3, but I haven't tried this feature so I can't speak to how well it actually works.

I already answered once more directly, but I think a better answer might be a frame challenge: design your model to avoid extremely long print times. Even if you didn't have all the problems of pausing and resuming to deal with, which include:

warping and detachment from bed due to loss of bed heat
possible motion of stepper motors while unpowered
extrusion problems due to loss of material to oozing
...

you still have the fundamental risk that something goes wrong during the print, which increases significantly with the overall print duration.
There are lots of ways to design your model to be printed in multiple parts that don't amount to just "cut it at height intervals and glue the result". Glue isn't a terribly good solution, at least not by itself; it's hard to ensure perfect alignment, and creates points with different thermal and mechanical properties that are likely to break. Other options include:

Snap fits, either reversible or permanent.
Peg/hole press fit.
Slide-in tension fit.
Threaded interfaces. These can easily be directly between your parts if the parts are rotationally symmetric or orientation doesn't matter. If it does matter, you can design the threads to stop at the right point but it's more work.
Threaded holes in one part, metal or 3D-printed bolts through the other to attach it.

In addition to letting you print the object in steps rather than all at once to reduce the chance/cost of failure, these techniques also allow you to print different parts of the object in different orientations, taking advantage of the orientation for ease of printing without supports, or for obtaining stength in the directions your object will be subjected to stresses in.
Most (really all) of the above can also be made permanent with glue, if you desire.


text:
3D print appears to print very weak walls in long print
So after a long print the walls in the print begin to weaken and it appears they might not be printed at all.  In the upside down picture you can see the weakness where the two pieces are separated.  I'm wondering if perhaps reducing my speed and changing the extrusion size from .35 to .45 which is larger than the extruder itself.  Thanks for any help and suggestions!

Is this a one-time problem or do you see it regularly at about that height?

What you refer to as weak walls in fact are under-extruded walls. This can be caused by multiple sources, but, since the print recovers this most probably is caused by filament that is entangled on the spool (this causes more friction for the extruder and as such less flow, so under-extrusion; like as if the filament is being pulled back). Any other source that may induce extra friction is equally valid. E.g. kink in filament when using a Bowden configuration (long time extra friction in tube) or friction on the spool itself (I once had severe under-extrusion as the spindle of the spool caught a plastic bag which got wrapped around).

It could also be caused by a kink in the filament (more friction on delivery) or a section of undersized filament (proper advancement, but lower volume).

Besides a kink (which is very possible) I dropped a roll once and tried to re-coil it back up. In doing so I ended up accidentally looping the filament under itself. Exact same result of additional friction, but something to keep in mind if you're as clumsy as I occasionally am.

@Diesel Looping filament under itself is considered entanglement in my opinion. I think we all have had the experience where you forget to secure the end of the filament causing the filament to unwind. :-) E.g. I use a spool of 2.85 mm POM filament, if you let it go (I let it slip once...) virtually the whole spool unwinds considering the high stiffness of the POM in combination with the large diameter.

@0scar, I'd completely agree with you on that. But, unless you've done it before and identified the problem, you might not necessarily think of it. I just thought it might not hurt to point it out for anyone who hadn't thought of it as it drove me NUTS for a week of printing before I put two and two together and fixed it.

A filament tangle is one possibility, one alternative is that you are seeing a jam in the extruder. The trigger for a jam might be excessive retraction, heat soak or some other issue with the heat-break. Less likely, you might have an electrical problem which is position dependant.
The extrusion-related issues won't necessarily react in an 'obvious' way to any tweaks you make to the parameters (for example, slower might exacerbate heat-soak because the downward filament flow and thus cooling effect is lower).

source: Stack Exchange

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

sort: votes


text:
Makerbot Replicator 2 LCD screen not turning on
I recently got a MakerBot Replicator 2 from somebody. When I got it, it was not in a working state. The problem is that the LCD screen does not turn on. When turning the printer on, the 5 V and 24 V lights light up and the little lights from the BotSteps (this is how MakerBot calls their Pololu style stepper drivers) also turn on. Furthermore, the LED lighting at the top of the machine also lights up. But, nothing else happens. I am not able to turn on the LCD screen. When connecting the printer to a computer, the printer does show up in Makerbot Desktop though. I have tried to update the firmware but there is still no change (it could be that I did it wrong as I have never owned a Makerbot machine). The Makerbot Desktop did say that the upload was successful and that the current version of firmware is the latest version: 7.6. I read here that it could be the BotSteps (motor drivers). So, I took those out and tried powering on the 3D printer but the LCD screen still did not light up, so it is probably not those either.
Could it be the LCD screen? Or is it the Mightyboard? Or something else?

What have I done already?
I checked the cable of the LCD screen and the screen itself but it looks like it is in a good/decent state (no real big scratches or anything).
This is a picture of the screen without the SD card in it:

Here is a picture of the LCD screen with the SD card:

Link to video demonstration:
Video of the LCD screen

Update 8/22
I have decided to just throw out the Makerbot Hardware/software altogether. I am currently busy on getting it setup with Marlin. I am doing this because this will gave me many more options. Ordering a new lcd screen from Makerbot is really expensive (from that money you can buy almost all of the components that I will be using now). Also, I can update it with a heated bed and auto bed leveling sensor later. I am thinking about maybe creating an Instructable/Medium blog post or something, is anyone interested?

The screen is where I'd go, but before you replace it outright, there has to be a way to test it. Does the backlight on it light up?

I took the screen out of the case and there were 2 little red lights on. Another thing I noticed was that when taking the sd card out, the screen was a little bit lit (grayish). But, when putting the sd card back in, the screen would turn completely off again. Is there something wrong with the sd card reader? Does this indicate I have to replace the lcd screen and the sd card?

@RosalieW That sounds there could be a loose electrical connection to the screen. Is there a connector you can re-connect with the power off? Also, check the state of the cable, if there is one, for cracks and abrasions.

I don't know what your electronic skills are, but I would hook up the LCD module to a Arduino Uno to see if it works. With and without the flat cable.

@RosalieW After seeing the video, it looks like something in the SD card or the SD  card socket is shorting something out. Have you tried a different SD card? If you look inside the socket, does anything seem out of place?

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


text:
Visible/irregular horizontal lines for complex models
There is this small issue I've been trying to find a solution for quite some time now, and nothing I've tried seems to work. My machine is an FDM printer, i3 style, but I have customized so much of it there is little but a few screws left of the original.
As it looks like it might be a mechanical problem, I'll try to add as much information as I can think of now.
The machine was originally a P3 Steel Pro, but I replaced a bunch of things:

Replaced pretty much all the electronics. Got a "premium" RAMPS and Arduino after I killed 1 RAMPS and a couple of Arduinos somehow. Been running with the premium ones for about 4 years now without a hitch. I replaced the drivers that came with the printers with Trinamic drivers, to make the motion silent and smoother.
I also replaced the linear bearing rods for the X and Y axis with some custom cut hardened steel linear rods (G6 tolerance) because the ones I previously had were slightly damaged due to a faulty bearing and I thought this might make print quality better.
Linear bearings I replaced at the same time I replaced the rods, and got some KH0824PP.
Replaced the Z index's lead screws with TR8x2 and plum couplers, expecting this would improve the quality (and it did). At the same time, I installed a custom piece and bearing on top of the Z-axis to make it more rigid (which I have no clue if it worked or not to be honest).
Replaced all the GT2 belts with Gates Powergrip belts, also trying to improve the issue here. The idlers got replaced at the same time with Gates idlers.
Replaced the belt mechanism for the X-axis (the bed carriage) with one that was easier to tension and was more reliable than the original, which I got from toolson edition. Also replaced the bearing at this time, with an SKF608-2Z.
Replaced the extruder entirely around January, using a DD BMG-X2 with a e3d chimera+ hotend. The carriage it's mounted on I edited myself from the original carriage, so it would be able to mount this beast.

Here is a bunch of pictures (sorry for the dirt, I'm experimenting with some soluble filaments that are being a bit of a mess):

The issue I'm experiencing is that the horizontal lines on some models are very visible/irregular on complex models such as this one:

While on models that are more simple like a simple cylinder these lines seem to be barely visible/far more regular:

I see this regardless of line height, though these pictures are at 0.12 mm. I've also seen plenty of pictures of other people's prints that don't seem to suffer from this (like this random google search result).
Let me go through my line of thought/things I've tried:

I first thought this was down to bed adhesion, but I'm using a glue stick to make sure the print is unmovable and I have ruled that out as the source.

I also thought it may be the spools pulling the extruder upwards at some points, but I don't think that'd add up with the cylinder being more regular.

I tried 3 different "high quality" filament brands, with very low advertised tolerances (0.05-0.03 mm). All suffer from the same issue, and at the same height for the same model.

Then I thought it might be a problem with the retraction, so I lowered the retraction from 0.5 mm to 0.3 mm and enabled linear advance on Marlin (and tuned it as precisely as I could to a K value of 0.15 for this PLA). That also didn't seem to make the lines go away.

I also thought this might be down to my stepper motors being able to do 200 "natural" steps, and perhaps the microstepping was making the Z movement fall into "unnatural" positions that are badly rounded and causing this. But according to my math, at 0.12 mm layer height, the issue should go away and it didn't, so I think that rules that out.

The only other theories I currently have are:

The same as the last one (200 steps not being "natural") but this being an issue on the x/y axis, however, I would expect this to cause vertical lines rather than horizontal.
The extruder being incapable to keep up the pressure and consistently extrude, but I would have expected linear advance to fix this?

I have no clue how to prove/disprove the last two, or if there are any other reasons I can't think of why this could be happening. I'd appreciate if someone more knowledgeable than me would give me some pointers as to how to debug/fix this.

It looks to me like you have a mechanical problem with the rigidity of your axes. What type of mechanisms/linear bearings does your printer have? If it's highly custom can you show some pics?

I second the comment of @R.., it looks like you have some hysteresis issues when layers are different in shape which you do not encounter when all layers are equal. Please add by [edit] which printer brand you have.

Hi, I added as much detail as I could think of and some pictures, if there is anything else I can add that would help, please let me know.

The upgrade described under:

At the same time, I installed a custom piece and bearing on top of the Z-axis to make it more rigid

This is not an upgrade. It is best to decouple the movement from the eccentricity of the screw and nut from the X-axis. If you constrain the top, instead of leaving it free, the screw is over constrained, this causes unpredictable movement of the nut and hence defects in your printed object. Decoupling of the screw can be done by Oldham style couplings or specific lifting parts. I've used both to experience increased print quality, the X-Y movement of the nut doesn't get transferred to the hotend carriage.
The couplers can be printed or commercially obtained.


text:
Using maximum width when slicing in Ultimaker Cura
I am trying to slice a model that is half a mm less than max width, but not successful.

What am I missing? Is there some minimum value less than maximum allowed, or something?
Edit: after changing the width to 220 in machine settings, slicing works. This is a dangerous thing to do, as it could damage the printer.

Did you try centering it on the build plate?

That's the default is it not?

I would try right clicking on the model and centering it on the build plate. Maybe that will help.

I just tried it and it made no difference.

Ok. Let me try some things in my version of Cura

Concerning your "edit", this is not how you should tackle this problem; an in depth description is given in my answer below. Readers of this question should be aware of the danger this could bring, including destroying their machine.

HI Tomas, I've striked out the info in the edit, as it seems a bit dangerous, as @0scar states. Also, If it is a solution,or rather your propsed solution, then it should be posted as a answer, so that it can be voted upon, else it breaks the Q&A format of Stack Exchange. If, however, it is part of the question, and you are asking why that makes it work, and what can be done about it, and why does it make it work, then (I guess) it could be left in place, but with caveats included, stating that this is a dangerous practice. I hope that you see what I mean :-)

The tolerances on the positioning of the build plate might add up to half a mm. There is just some bound where Cura says: "no, it's too dangerous." That bound is about half a mm.

Take a look at this post: https://community.ultimaker.com/topic/15588-cura-23-not-using-full-print-area/. As the raft/skirt/brim will fall outside of the build volume, Cura is not able to slice it. Look at the the answer by @ahouben. He suggests that if you want to use the maximum build volume :

adhesion type = brim
brim line count = 0
travel avoid distance = 0
horizontal expansion = 0
support horizontal expansion = 0 (if support is enabled)
draft shield disabled
ooze shield disabled
infill wipe distance = 0

Note that in most cases brim with brim line count=0 will get you most of the way there

Try this and see if it makes a difference.

Yes, I have skirt I think, so that makes sense.

Neither "none" nor "brim" + line count zero works.

Finding all the other options would take all night, and probably most of next week also.

If you go into Preferences -> Configure Cura -> Settings (on the left side), then you can easily search for them and add them. Also, be sure Cura knows that you have a single extruder printer as a dual extruder's print head will take up more room.

Sure, but changing the machine settings is easier, I believe.

@TomasBy That might be easier, but the incorrect solution!

Why brim and not just adhesion type "none"?

This answer already addresses that Ultimaker Cura "eats up" platform space for e.g. skirt, brim, raft, dual extruder, deposition of priming blob, prime towers, etc. Disabling those features will reclaim platform space so you can print larger prints. However, that will only work when your printer is correctly configured! E.g. the center of the bed needs to be the center of the center in the slicer which needs to have the specific sizes of the bed dimensions. Note that increasing the bed size past the actual dimensions is not considered to be a nice solution, it is an easy work-around that gives you extra space in X+ and Y+, i.e. it does not center this newly created space, furthermore, this can destroy your printer is there is tight space left on those axes! Let's illustrate that with an example, if you have a 200x200 mm build plate and want to slice something of size 200x200 mm, this should be centered around (100, 100), if you change the bed size to 220x220 mm, Ultimaker Cura will center the print around (110, 110) which means that the print maximum coordinates are 210 mm; this is outside the bed area and potentially can destroy your printer!
What you should check is if the physical center of your bed actually is the center as defined by the firmware of the printer (surprisingly, many of the cheaper printer have this incorrectly configured). The answers on question "How to center my prints on the build platform?" (Re-calibrate homing offset) describe how you could do that.


text:
How to activate Power Loss Recovery in Marlin?
Standard Marlin has one problem: when the power suddenly is gone, the print is gone. Prusa and many china printers however come with "Power Loss Recovery" or "Power Out Protection" or similar. But especially China printers come without Thermal Runaway Protection, so in order to make the printer safe, one often has to get rid of TRP (in the basic shape it comes).
How can the PLR be turned on?

Marlin firmware has such a feature that can be enabled to resume printing after a power outage.
To enable power-loss recovery you should send
M413 S1

to the printer using a console (e.g. using Pronterface, OctoPrint, Repetier-host, etc.) or put commands in a text file with extension .g that can be printed from SD card. To disable power-loss recovery send/print:
M413 S0

To report the state of the power-loss recovery, send through a console:
M413

This will result in a returning message in the console of e.g. This Power-loss recovery ON.
To retain the setting, you can use M500 to store it in memory.

If you enable M413 in Marlin firmware, the printer will write a resume printing file to SD card e.g. every layer.
From M413 - Power-loss Recovery documentation I quote:

Enable or disable the Power-loss Recovery feature. When this feature is enabled, the state of the current print job (SD card only) will be saved to a file on the SD card. If the machine crashes or a power outage occurs, the firmware will present an option to Resume the interrupted print job. In Marlin 2.0 the POWER_LOSS_RECOVERY option must be enabled.
This feature operates without a power-loss detection circuit by writing to the recovery file periodically (e.g., once per layer), or if a POWER_LOSS_PIN is configured then it will write the recovery info only when a power-loss is detected. The latter option is preferred, since constant writing to the SD card can shorten its life, and the print will be resumed where it was interrupted rather than repeating the last layer. (Future implementations may allow use of the EEPROM or the on-board SD card.)

This means if you cut the power you can resume the print layer, the only problem is that the part must remain attached to the plate, if it comes loose it is hard to resume printing. This feature is now commonly found on printers these days.
The regular pause and resume functionality of the printer will not work when the power is cut over night, i.e. no recovery file is written in such a case.


text:
What is a printer console/terminal?
I read that G-code commands can be sent through a console/terminal over USB. What is a console/terminal and how do you use that?

There are several programs that could serve as a console to connect to a printer, put let's start somewhere: the USB connection.
Step 1: Connection with USB
When connecting the printer via USB for the first time, we will get a notification that some unknown item is connected. If we use windows we can learn what device it decided we now have via the device manager (Windows Key then typing in manager and Enter). It should be a COM Port as this picture shows.

In this case, we have connected to COM4. To change the COM port, we can do so via a Rightclick->properties, then the connection settings and advanced. In the new window, we can change the COM port number to anything from 1 to 256, but it is recommended to keep the number somewhat low.
Make sure you run the printer's power supply and the connection via USB, as you can't use motor control commands if you have the power supply for the printer off.
Step 2: Using the COM-port
Now, we need a program that can use the COM port to connect to the printer. There are, as said, several out there. One such is Repetier Host, which comes with slicer and a good graphical interface. Another is Ultimaker Cura, which has the same capacities but lacks logging of all the commands exchanged. Because many are familiar with it as a slicer, I will look at it first. As a third option, I will take a look at Pronterface.
CAVEAT: Only one program that actively uses the COM port can be properly run at the same time, as the first program accessing the port will claim all uses for the COM port till it is shut down - any program or even other instances of the same program trying to access the port after that will have no control of the port.
Ultimaker Cura
After launching Ultimaker Cura, choose your printer. many printers are available as presets by now, so just import the printer you use or make a custom profile. At the moment the latest version of Cura is 4.1.0, and will look like this:

After switching to Monitor, it will automatically connect to the Printer via the COM port, in my case 4.

Once more we test the connection via Home  and then use the Send G-Code prompt, confirming lines via Enter.

Repetier Host
After running Repetier Host the first time, you need to configure your printer. Ctrl+P opens the config window for the printer. We need to know the Baud Rate of our printer, so I looked up the documentation of my Ender3, which told me 115200 is the right setting. Most printers seem to run on this setting. The other tabs decide the speeds, extruder number and limits and the bed shape. The rest isn't needed for this. My settings for the Ender3 are these:

Ok, we made our settings and saved via OK.
Now, we press the Connect button on the left side of the menu:

It should change to the blue Disconnect button and display other parts of the print now, showing that we have connected. Note that at the bottom of the screen a log is filled with all the commands and exchanges.

On the right side, we now can choose the Tab Manual Control

Before sending any commands, it is a good idea to press the Home  button. This also serves as an extra test to see if the printer is connected correctly. Now we can use the Prompt G-Code to send our commands. The commands will be put into the log below.

Pronterface
This is the first time that I used Pronterface. The first thing to do after downloading the Printrun package and running the Pronterface application is to press Port, then set the right Baudrate (115200 seems to work for many machines) and press connect.

The GUI will saturate and the right log will show lots of things tested in connection. Note that in the lower right of the GUI, there is a temperature curve log, which can be very handy for troubleshooting, as it shows the change over a little time.

Below the log, we find the input for commands, and if we send a command, we get a log entry of it:

In addition to this answer, the OctoPrint 3D print server software contains a terminal which you can use to send G-code commands from a browser:
OctoPrint
In the bottom string input box (under the check mark items) you put in a G-code command, which will be send to the printer when you hit the Send button. If the printer gives a reply to that command, it will be displayed in the log window above the check mark interface items.


text:
Retraction Jamming Problem!
Recently I had this problem where I needed to change filament from PLA to PET-G or similar. And... filament jam. After playing around with different settings and speeds and still getting the same results I had to clean everything. And again during a print, it jammed.
I brought a new nozzle, heating cartage, Teflon (PTFE) tube and some additional components(fans, new wires and so on) but still was the same. Now I'm waiting for a new set of hotend Mk8Design Needed kit.
A week after the order and still waiting, I played with retraction a little. By default, it was set to 0.8 mm on Sli3er but I had set it to 4-6 mm because it gives the best results and no stringing. I changed it again to 1.5-2 mm and... no more jamming at the cost of getting stringing. I'm using PLA which I never had experienced strings before.
So, in summary, the problem occurs due my retraction setting. Either I have to live with strings and no jam problems or no strings but jamming problems during printing.
Have someone had same problem as me? How did you fixed it?

Printer AlfaWise U30(bowden type) but it's no longer the same.
Motherboard: MKS 1.4 Gen A4988 + DRV8825 Stepper drivers(no problems here)
PID(Autotune), Calibrations and so on done correctly.
Firmware latest marlin 1.1.9 (Tried bugfix but the same)
Sofware for slicing PE Sli3er (Tried Ultimaker Cura with same model and same problem)

Would you please provide some additional things to make it easier? You said Mk8, do you mean a Makerbot Mk8 Hotend? Or did you update to an all-metal hotend? What is your standard printing temperature? What is your retraction speed?

There are more settings to fight stringing, e.g. lower print temperature. PETG is more prone to stringing opposed to other types of plastic.

I wrote what I changed. I haven't touched the hotend. It is original what Alfawise had. They used makerbot mk8 hotend (I believe so) but not quite sure about. Because of that I ordered a new one and different. Alfawise doesn't like to share information about they products. The firmware wasn't open source like marlin. Sorry about the temperature or printing. For PLA is 200-220(recommended) So between those temp. It's still the same. Retract is default in sli3er (35mm/s) I tried from 25 to 50 and nothing... same

The most accurate link to hotend:
https://www.amazon.com/Longer-Printer-Extruder-Creality-Alfawise/dp/B07PB2P5N1

Not an answe, but assuming PTFE is a bowden setup, you definitely need at least 4-6 mm of retraction to avoid stringing. 0.8-2mm is not going to cut it anywhere but a direct drive extruder, and I'd be doubtful that it's even really sufficient there. So you should try to fix this right.

I had same issue when switching to PETG.

With a Reprap x400 I could retract 6 mm, but this did not completely get rid of the stringing.  Retracting to 20 mm jammed the extruder at the first retract.

I had problems with jamming PETG due to retraction.  My model had many retraction moves, such that the amount of filament used during a printing move was less than the retraction distance.  I found that several trips through the feed gear flattened the filament, which caused two problems.

The flattened (or ovaled) filament had trouble fitting through the round holes and tubes, and
Since it was thinner, the filament was not gripped as tightly so there was less force pushing it.

I reduced my feed gear pressure and the problem stopped.
PETG is not as stiff as PLA.  The multiple trips through mangle flattened it.


text:
Using a Full Spool of Filament, Read as "Empty"
I have a cheaper consumer-grade printer that I've owned for a couple of years now. It is an XYZ da Vinci Mini W and it seems to recuperate its incurred losses from selling a cheaper printer by jacking up the prices on their filaments. I don't have much of a problem with this (and I'm not asking to "hack" the chips to let me use cheaper filaments), but I went to switch out my filament with a full one I had laying around and I noticed the chip case it contained was a chip (probably removed by somebody for some odd reason). I used a chip that I had laying around, but the printer read the full spool of filament as "empty" because of the old chip. Because of this, I was wondering if there was a way to force the printer to keep printing when the spool is "empty" or if I can somehow reset the chip.

From what is read online, it depends on the firmware version your printer has. It seems that later versions keep track of tag serials and reports tampered tags as non-genuine tags. The best and most recent reference found is from 2018 which describes you should be creating new tags instead of resetting existing tags. This involves installing an Android App from unverified source and new "paper" NFC213 tags.


text:
How do you solve PLA corner-curling short of printing really, REALLY slow?
I've been trying a lot of different things to combat corners curling upward in the first few tens of layers after the bottom skin. To be clear, I'm not talking about corners of the first layer printed on the bed, but rather the points of the outline in layers above the base where direction of print motion changes discontinuously (discrete corner) or abruptly (turn with very tight curvature). Here's an image I found (not mine) that demonstrates:

And a pic during print of the type of curling I'm talking about:

And some previous worse prints:

My go-to worst test case for this now is a 20mm tall hollow dodecahedron with 0.8mm shell (hollow geometry, not just empty infill; 0% infill on a non-hollow model does even worse, shown above). For everything else I've tried, I've mostly been able to sovle the problem with combinations of

Improved cooling fan duct
Lowered bed temperature or unheated bed (but this is a tradeoff; it seriously hurts first layer quality and increases risk of non-adhesion)
Disabling Cura's overhang detection mode (non-uniform print speed causes a huge increase in the curling due to latency of extrusion rate response)
Increasing motion acceleration limits or decreasing speed limits (also mitigating the latency in extrusion rate response)

but I can't get all 5 edges of the worst-case dodecahedron completely warping-free without just heavily slowing down the print; during print it's obvious that the curling at the corners in each layer is the source of the warping. Increasing Cura's cool_min_layer_time to 10 seconds (default is 6, and I usually get by fine with 3-4.5 for most things) mostly but not entirely solved it, and going much slower than that seems likely to introduce other surface artifacts from extremely slow extrusion.
Are there any additional tricks I'm missing for solving this? I'd like something that's easy to leave on all the time or at least to automate, as opposed to hacks like adding in a junk tower off to the side to waste time between layers.
My printer is an Ender 3 with stock gear except for improved fan duct. The problem was worse with the stock fan duct.

Hi, please provide us with the types of PLA (opaque, transparent, filled) and vendor, and, equally important, what temperatures you're using, what print speeds, etc.  I've successfully printed various thin-wall objects without any deformation at the corners.

@CarlWitthoft: It seems worst with real "natural" PLA (supposedly no additives, clear), but also happens with opaque blue and probably others (I could try if needed). I'll add some pics and further details in the question

Someone commented then deleted the comment that I haven't yet added pics. I've had my printer hacked up for a few days and been busy with other things, but I do intend to get back to this. It looks like the problem might (fingers crossed!) actually be soolved by Marlin 1.1.9 with linear advance; I just tried to reproduce the problem for a pic and got a perfect print. If I can confirm that setting K=0 makes it come back, I'll write up a self-answer based on that.

Still having trouble reproducing it really bad, even with linear advance turned off and bed temp back up to 60°C. Either Marlin 1.1.9 fixed some subtle problems with synchronization of extrusion with motion vs the stock firmware, or there's some environmental issue like ambient temperature or humidity. I'll try later and see if I can reproduce with some clear/natural PLA which seemed to be more problematic, and see if I can find some examples from my scrap box showing the warping.

OK, it reproduces easily with plain clear/"natural" PLA. Added pics.

While I tried a lot of things to solve this, including tuning temperature, fan, speed, etc., ultimately the single biggest factor that causes or prevents it is the state of Cura's Outer Before Inner Walls (outer_inset_first) option. With outer walls first, I don't have the problem at all. With the default (inner walls first), I have it to varying degrees depending on geometry and a lot of other factors.
I don't have a good explanation for why this happens so I'm asking a new question about it.

In Simplify3D, this setting is in the process settings on the 'Layer' tab. It's called "Outline Direction". Changing this from the default "Inside-Out" to "Outside-In" somehow fixed the curling issue I was having

Cura has an additional setting that you can make visible called "Lift Head". My recommendation is that you do the following:

Set your minimum print speed to something actually reasonable like 30mm/s or higher. Printing too slowly negates the following two settings and is not beneficial to printing small features.
Set your minimum layer time to something higher, like 15s or so. The slower you print, the higher this number needs to be. Using too small of a minimum print time prevents adequate layer cooling.
Enable "Lift Head". This must be used to allow the small features on your print to properly cool. Without the "Lift Head" setting, your nozzle will remain parked on your print and provide both radiant and convective heat which prevents cooling and causes sagging of small features.

The combination of these settings will rapidly deposit the layer, then move the nozzle high and away from the print until the minimum layer time is reached, such that the radiant heat from the nozzle doesn't continue to heat the soft PLA while it's trying to cool.
Enabling all three is how I got perfect tiny features on all of the printers here at my office - a fleabay i3 clone, an Anet A8, and a couple Monoprice printers of various levels.
Edit:
I forgot to mention, keep your bed temperature at a reasonable setting too. For PLA, normally people may recommend up to 70C, but realistically, for very small prints, you can keep your bed much colder without detrimental effects. For tiny items, my PLA prints used to use a bed temperature of about 30-40 C depending on the specific filament. Very tiny prints are unlikely to warp even with a cold bed.
Basically, the colder the bed is, the less heat is getting conducted up through the print to the top layers that are molten, and the faster those layers cool. Keep the bed temp down and it'll benefit your layer cooling.

These are some new ideas to try, especially "lift head". But 15s hardly meets "short of printing really, REALLY slow". If my layers can print in 2-4 seconds, 15s is something like 5x slower, for the whole ptint, for the sake of fixing warping in a very small part of it.

There's plenty of trial and error that  goes into these settings. What I've given was just a launch point, if you find that you can print at 100mm/s on a layer and only need to cool it for 6s or so, then more power to you. Unfortunately, just because of the physics involved, there's not a good way to print tiny detailed objects that doesn't involve letting them cool quite a bit. You could also try printing a new fan shroud that works with a 50x15 blower, but you may run into your thermal runaway triggers that way.

2-4s per layer is at 30mm/s not 100mm/s. I've actually considered trying to further upgrade the part cooling fan not with stronger airflow (which warps the just-deposited material by air pressure against it) but rather by adding a TEC in the duct and having it gently blow out air at ~5°C. Would have to worry about drainage of condensation though...

If you have warping on small layers that print in 2-4s, but no warping in other larger sections of the print, a 15s minimum layer time would only effect those small layers. The other larger layers would already take longer and any pauses would be minimal. Even a 6s minimum time might be helpful in this case, if it causes the print head to move away that may be just enough for the small layer to cool adequately. For me, the real problem with this strategy is the filament that will leak out the nozzle while the print head waits.

Filament leak during wait is a valid concern but Cura retracts during the waits, and you can just set your retraction settings a bit higher to make this particular issue a mostly non-issue with most kinds of filament, PETG excluded because PETG is a bear to print with.


text:
Wiring Z-stop directly to hot end and aluminum bed / spacers
So I am really fed up with inductive probes. The one I am using keeps getting shifted slightly every time I switch nozzles or run an oozy print. That means I have to autolevel again, then manually set a Z-offset (as I would have anyway if I didn't have an inductive probe).
On my Lulzbot Mini there is a different scenario. There are four washers at each part of the bed. The nozzle is "grounded" so that when the Mini touches the washers, a current is created that seems to act as the Z-stop. Surprisingly there isn't much out there for a DIY implementation of this.
Since I have an aluminum bed (and aluminum is conductive), I am thinking of doing the following:
1) Put one wire from the Z-stop ground pin to the aluminum bed. Make sure it is away from the wires for the heater / thermister (?)
2) Put one wire from the Z-stop 5V into the heating block of my nozzle.
When the nozzle probes the bed, a current will be created from the 5V heating block, through the conductive nozzle, into the conductive bed, to the Z-stop ground.
I'm always unsure when it comes to circuitry. Will there be any dangerous interference from this technique from, say, the bed heating circuit? I'm not sure what kind of protection circuitry are on each of the Arduino's pins, and I'd rather not fry my board if this sounds like a bad idea to someone.
I figure most people don't do this because they have sheets of PEI or some other non-conductive material on their bed. I can use PET tape but still leave holes in the tape for this autobed leveling probe. It would be really great if it worked and wasn't dangerous.
I shouldn't even need the third pin?

You mean the method that is used in some mills and CNC to find the corners and top of a workpiece?

^ Not sure. But just to add to my complaints: Inductive probes take up space that could be used for extruders, my one in particular required a 3D printed piece that was getting warped, and in fact they shrink the overrall bed size because you can't always move an extruder to a spot on the axis that is blocked by the inductive probe

even a conductive probe (what you want to do!) takes space.

^ Yes I know what you mean now. In my case it takes significantly less space though

I'm reading this question after a month published and using the nozzle as trigger for Z stop can be used if this nozzle is grounded; the main problem is if the nozzle are not complete clean at the time of touching the aluminum bed might fail, but could be realable. I'm using inductive probes and each print the Gcode calls G29 to auto level; this is not a mess but each print is granted to be perfectly aligned and sticky.

I am thinking about using an E3D kraken, and having one nozzle be used for the Z stop. It might also be possible to just attach something conductive (e.g. a paper clip) to a regular E3D heatsink

I went through a period where i did an autoclean before each level/homing like the lulzbot mini does. It worked better than the inductive probe, but not ideal

Edit: i recommend using some conductive felt
The top of the aluminum bed is not conductive, but the sides of it are. You can re-create the Lulzbot Mini endstop set-up by connecting the Z-stop ground to the side of the aluminum bed, then using binder clips and nickels as the "washers". In my case I had to use quarters because my bed was really big and the extruder came down far from its edges.
To do this, you'll need:

A multimeter and a >100 Ohm resistor for safety
Some nickels (or any conductive coin)
Some binder clips (with steel insides)
Some aluminum foil (increases reliability of setup)
A Z end-stop

Building conductive washer perimeter
Create a conductive washer system along the sides of your aluminum bed by:

Wrapping a nickel-sized amount of aluminum foil on the bottom, side, and top of the bed

Placing a nickel on top of that aluminum foil on the bedttop

Placing a steel-inside binder clip to hold down the nickel
Do this multiple times along the perimeter of the bed. It seems you are limited to an evenly-spaced grid structure by the software. In my case I placed the washers at:

X = 0, Y = 0
X = 0.5 * Max_X, Y=0
X = Max_X, Y = 0
X = 0, Y = Max_Y
X = 0.5*Max_X, Y = 0.5 * Max_Y
X = Max_X, Y = Max_X

The aluminum foil provides a contact between the side of the bed and the top and bottom of it. The binder clip can be pressed inwards against the aluminum foil to ensure high reliability. However, the binder clip can get loose. So, using aluminum foil helps make the bottom of the bed conductive too, increasing the surface area of the contact for the binder clip.
Attaching red wire to hot end
Attach the red part of the Z-endstop to your heatblock. It must be in the heatblock somewhere. The thermister hole might work. For me, I was able to slide it in a small space that's used to tighten the screw that holds the heat rod.
Now we want to attach the Z-stop ground (black wire) to the conductive perimeter.
Before attaching Z-stop ground underneath one of the binder clips, a word of caution...
The first time I did this, I stupidly placed a binder clip on top of the 12V heat rod attached to the bottom of the aluminum bed. This put all sides of the aluminum bed (and my conductive washers) at 12V, which created a short into the Z-stop ground pin when I connected it. This resulted in my Z-stop ground pin SMOKING up from the heat going through it. As a word of precaution, you should attach a resistor between the Z-stop ground pin and the side of the aluminum bed should something go wrong in the future. I used a 2.1 kOhm resistor I had laying around. This will limit the current going into the Z-stop ground pin. Since everyone's aluminum bed will be different (for e.g. the bottom of my bed is non-conductive, but yours might be conductive), it is really important to be careful here.
Before powering on, test to see that all of the nickels have low resistance between them. Test to see that the hot end nozzle is connected to the Z-stop red wire.  Use a multimeter for this.
If you don't have a resistor, wait to attach the Z-stop ground before powering on. This will let you check the voltage to tell if your aluinum bed sides are connected to the 12V heat rod. After that, you can power off and attach the Z-stop ground and power on again.
Setting up the software
If you've flashed your firmware before, setting up the software is easy. Go to the  "AUTO_BED" section of Configuration.h. First thing to do is to set your Z-offset to about 2.0mm and remove any existing offsets you might've had for a Z-probe (for e.g. X_PROBE_OFFSET... = -40 was set for me). The Z-offset should be set to a positive value this time. Don't forget to change this setting in EEPROM if you set itas well!
Since I'm only probing the perimeter, I use BILINEAR bed leveling for this one. Bilinear calculates points automatically for me, so I had to set up my perimeter according to an evenly spaced grid like I listed in "Building conductive washer perimeter".
First I activated AUTO_BED_LEVELING_BILINEAR
And my IF tree looks like:
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)

  // Set the number of grid points per dimension.
  #define GRID_MAX_POINTS_X 3
  #define GRID_MAX_POINTS_Y 2

  // Set the boundaries for probing (where the probe can reach).
  #define LEFT_PROBE_BED_POSITION 1
  #define RIGHT_PROBE_BED_POSITION 264
  #define FRONT_PROBE_BED_POSITION 1
  #define BACK_PROBE_BED_POSITION 264

  // The Z probe minimum outer margin (to validate G29 parameters).
  #define MIN_PROBE_EDGE 0

  // Probe along the Y axis, advancing X after each column
  //#define PROBE_Y_FIRST

  #if ENABLED(AUTO_BED_LEVELING_BILINEAR)

    // Beyond the probed grid, continue the implied tilt?
    // Default is to maintain the height of the nearest edge.

    #define EXTRAPOLATE_BEYOND_GRID
    //
    // Experimental Subdivision of the grid by Catmull-Rom method.
    // Synthesizes intermediate points to produce a more detailed mesh.
    //
    #define ABL_BILINEAR_SUBDIVISION
    #if ENABLED(ABL_BILINEAR_SUBDIVISION)
      // Number of subdivisions between probe points
      #define BILINEAR_SUBDIVISIONS 3
    #endif

  #endif
#elif // other bed leveling trees

Feel free to disable EXTRAPOLATE_BEYOND_GRID and BILINEAR_SUBDIVISIONS because they might not be necessary for you.
Time to autobed level
Of course, even with all that work, you're still going to want to be able to power off your 3D printer if it doesn't recognize even one of the nickels. So stay close to your power source and be sure to power it off safely if it doesn't recognize one of your contacts or if something comes loose. For example one of my coins was very dirty and yea, it made a huge difference in that corner, so I had to swap it out.
Last but not least, if you have some extra binder clips, you can enable the "Nozzle cleaning" feature in Configuration.h, just by binder-clipping the dark-green layer of a sponge to the board. Then just set the X-Y coordinates of that layer in the nozzle_clean feature in Configuration.h and make your life a lot easier.  These two features working well together basically mean you don't have to do anything between multiple prints except remove the prints from the bed.

I really wanted to add two more perimeter points at: (0, 0.5MAX_Y) and (MAX_X, 0.5MAX_Y). But I couldn't do this using Bilinear bed leveling. There is also something called Unified bed leveling, but I couldn't tell if that would be useful. The reason this is a headache is that you obviously don't want to continue the grid, as it would require putting a nickel right in the center of the bed (disrupting prints where the bed temperature is most accurate). If anyone has any advice on how to add just these two points it would be much appreciated

Update: Printing very consistently, but you will want to include the sponge like I suggested at the end and do an autoclean ("G12") after killed prints. Repetier-Host makes this easy. Also add it to your start code. It really only works reliably when you G12 before going home

Aluminium is conductive, but aluminium oxide is not, which is just so what there (unavoidably, since aluminium rapidly oxidises in air) happens to be a thin layer of on top of your bed. The coating is very thin, but it might foul your plans. It would work better with a sharp probe (that can puncture the layer) than with a 3D printer nozzle. You should be careful, because your probing method might be unreliable (which could cause the nozzle to crash into the bed).
Wiring the endstop 5V directly to ground will create a short circuit which will damage your printer. You should use the third (signal) pin and ground instead.

This will not work reliably.
I know, I have tried it, for a couple of years, with poor consistency.
Now, I will tell you that it worked better than the parallax IR sensors.  It worked better than trying to slam the head into the bed and listen for the click.
I used the brass nozzle and the aluminum bed as a switch to detect the bed position.
I used ABS slurry on the bed.  With a 100°C bed the ABS was soft enough for the nozzle to make contact.  Elmer's Glue for PLA also was soft enough.
But, with the elasticity I had in the synthetic Z-axis of the delta machine, the time delay to much the bed adhesive out of the way, and the general problem of trying to conduct electricity through an aluminum oxide layer, I had variability of about 0.1 mm, which was far to much to give a reliable first layer.
To "level" the delta bed, I would touch each point several times (with a clean bed) and fit my leveling function to the noisy data.  For finding my zero reference at the beginning of a print, I would touch off three time and only use the third one.  This helped, but it was still super noisy.
I have subsequently incorporated a strain gauge in the triangular delta-bit.  It gives much more accurate contact information and is not effected by the bed glue not does the aluminum oxide layer cause problems.

The uncertainty and variance I found was less from the bed glue and more from the aluminum oxide breakdown.  The brass nozzle had to contact the bed hard enough to scrub a break in the oxide.


text:
How to pause a print to insert something in a cavity using Ultimaker Cura?
I have a model that contains a cavity, into which I want to insert a piece of metal, so I can use a magnet to stick to the print. How can I introduce a pause into the G-code without manipulating it manually in Ultimaker Cura?

Ultimaker Cura contains "Extensions"; in version 4.1.0, the process is as follows:

Extensions -> Post Processing -> Modify G-code
Add a Script -> Pause at height

Choose the one that matches your firmware!

Choose the Pause height to match the height the insertion should take place. Usually, this is to be the layer just before the roof is to be printed to keep the inserted objects from protruding from their cavities.
Choose a park position well outside of the print. X 10 Y 10 is usually a good position for this.
Add a little retraction if you want.

In printing, you have to wait till the cavity is formed, insert the item quickly and press the control button to resume. The shorter the pause, the better the next layer will hold to the already printed.
Also, keep in mind to make the cavity a little larger than the insert, both in XY and Z, to compensate for the plastic shrinking a little and to allow the nozzle to pass well over the inserted item.

Note that there are different pausing scripts based on printer type; choose wisely.

Neat trick, but I get the impression that it is actually faster to pop the gcode file into np++ and add a standard line or two of code at the appropriate layer.

@CarlWitthoft finding the right line is the problem then

@Trish once you know the layer number - which you need for the Cura tool -- it's easy to find that in the gcode file.

No @carlwitthoft one needs the absolute height, not layer number

@Trish  why?  If you know where the first "roof" layer is, why isn't that sufficient? I've successfully placed a "pause" command that way several times when I wanted to swap filaments at a particular height in a print.

@CarlWitthoft While for convenience most people print in intervals of 0.1 mm layer height, others use intervals of 0.08 mm or something similar as that's what an exact multiple of steps on their lead screw is. In these cases, and making it independant of a layer count, knowing an absolute height is easier than converting it to the layer. With the same script setting you could print an item in 0.1 mm as well as 0.3 mm layer height without adjustment. Add to that layer 1 is often not the same as any subsequent layer.

Please note that the printer firmware must be able to handle the inserted G-codes. Please see this answer, it shows that if a firmware that does not support the inserted G-codes is loaded onto the machine, the inserted Cura scripts will not work.

This answer already explains how you insert the G-codes to enable a pause into your model. But, this will only work if the printer supports the G-codes that are inserted by Cura. E.g. this question shows that this does not always work!
To pause the printer you would need to resort into other methods, e.g. a manually inserted G4 (Dwell) would be a viable solution as shown in  this answer.


text:
Activating heated bed through a switch, or D-pin and TIP31 transistor
Recently the connection between the heated bed and my board blew out. I was able to solder a new connector onto the board and it worked for a day, but now it seems the SMT pad has come off the board bottom.
Another option I have seen to have the heated bed is to put it directly into the 12V power supply. But when I do this the bed gets very hot almost as soon as I turn it on.
I would like to be able to have the bed not get hot as soon as I turn the printer on. Ideally, it could be directly put in to the power supply if:

I could find a mechanical switch capable of handling that much current
Or, I could use a TIP31 transistor and a servos pin to control the bed.

I know if I add resistance to the wire then all the heat will just end up in that part of the connection (right?). So I'm wondering if it's even possible to use something like a switch or a transistor. Will all the bed heat just go into the transistor or mechanical switch that's soldered on? Should I be using some kind of high temperature solder for this?
I am not trying to "control" the heated bed so much as just "Activate" it. It is annoying to have the heat blasting up from the bed when I want to do a simple thing like just move the motors. But it is convenient to have the bed remain hot when I do something else like disconnect a USB or move into upper layers of a print.
It seems like the TIP31 transistor (https://www.hobbytronics.co.uk/datasheets/TIP31.pdf) can only handle up to 5A of current? or maybe 1A? In that case, it wouldn't work without adding a resistor, which would make the heated bed itself nonfunctional? It seems like the heated bed currently has a resistance of 0.7 Ohms. What is the ampere limit for the power supplies that most 3D printers use? (The silver box used by the Lulzbot Mini as well).
And then do I need to wire the GND of the servos pin to the heated bed pin as well? Won't that send heat to the board?

If you look where the SMT pad is, can you see any other component which is on the same circuit that you could solder the wire to? If you tell us what the control board is, we might be able to find a photo of the PCB and a circuit diagram - or you could link to them.

The temperature of the bed is likely controlled by switching the heater on and off frequently. That can be done with an FET transistor which will have very low "on" resistance when driven with the correct sufficiently high voltage. With a control feedback loop, the on-off intervals can be set in a PWM fashion.


text:
Handing OpenSCAD module parameters derived from other variables
I'm new to OpenSCAD, but I can only get default parameters working for simple values.
I'm wondering if there is any way to achieve the following, where I have some parameters available to the module caller but by default they are derived from other parameters.
I had expected this to work - I thought the compiler to be able to resolve these variables in-scope during compilation since everything here is deterministic - so perhaps I'm just missing some syntax? If not, is there some better way to achieve this?
module clasp(length=20,
             pin_radius=5,
             mouth = pin_radius * 0.9,
             inner_radius = pin_radius + 0.25,
             outer_radius = inner_radius * 1.4,
             ) {
  ... do the work ...
}

Unfortunately this approach leaves mount/inner/outer all undef.

This seems to be a limitation of the language. One workaround that's only moderately ugly is, in the body of the module:
mouth = is_undef(mouth) ? pin_radius * 0.9 : mouth;

etc. If you'll only be using the file via a use directive in other files, another approach is file-scope variables. These can be overridden when the module is called, just like module parameters, and they do not provide or take values for/from the calling file's file-scope variable namespace.


text:
Infill keeps "shoveling", but perimeters are fine
While printing PET-G (@ 220 °C nozzle and over 58 °C bed temperature), the outlines always print fine but the infill keeps shoveling. Could I be printing too hot or too cold? I am using a 0.8 mm nozzle.
Shoveling is when the plastic is over extruding to the point at which it starts piling up in the path of the nozzle, usually resulting in an uneven surface. Visually, it manifests like a snow plow shoveling snow. I tried adding an image, but, the filament is black so that turned out to be a difficult task.
This reason why this is a problem is because the nozzle hits those peaks while printing, which seems to be causing the print to detach from the bed. I've also noticed the print curling up at the edges, but I think that's a separate problem.
I am printing at 3000 mm/min. The outline, and the infill is 80 % of that. The layer height is 0.6 mm

Normally, what you're calling shoveling is caused by having the bed too high - when you deposit enough material for a space that should be the nominal layer height high, but significantly less volume is available, it has nowhere to go but up around the edges of the nozzle.
However, in your case your temperatures are also seriously wrong for PETG. The normal recommended range of nozzle temperature for PETG is 230-250 °C, and in my experience, you need the full 250 °C to have any hope of printing fast. At 220 °C I'm really surprised you're not having problems with underextrusion instead.
The bed temperature is likely even more important. Minimum bed temperature for PETG is 80 °C. If the material is hitting a 58 °C bed as it comes out, it's likely to cool way too fast. This may lead to what you call shoveling (especially if you see both pits and ridges rather than just ridges), but even if not, it's going to prevent the material from bonding to previously laid down lines, so that your print will end up more brittle than PLA.
One additional detail I initially missed involves your 0.8 mm nozzle. It might be hard for the hotend to keep up with properly melting that much PETG at normal print speeds. As noted in the comments, a 50 mm/s linear extrusion rate with an 0.8 mm nozzle is equivalent, in volumetric extrusion rate, to a 200 mm/s linear extrusion rate with a typical 0.4 mm nozzle, which would be extremely fast for PETG. It's unlikely that any hotend except a "volcano" or similar (with extended melt zone length) could keep up with raising that much material to 250 °C that quickly.

I upped the temp but it didn't work. Had to strip the pva off the bed, retram and try again. Still didn't working. Changed settings. Still getting problems. I think I'll retire the 0.8 nozzle.

@R, So heat up, slow down and reduce the layer height or upgrade to an all metal hotend (e.g. e3d)

@user77232: "All metal" is not what makes a hotend capable of doing high extrusion rates. It needs a longer melting zone and maybe larger heating element. The "volcano" and similar models are the ones to look at, as I understand it.

I slowed down and cut the layer height in half. That seems to have solved the problem. I have other problems though.


text:
Bevel gears 3D model
Goal : create a pair of bevel gears for 90 degrees angle axles.
Context : the gears are designed with an OpenSCAD library (https://www.thingiverse.com/thing:1604369, function 'pfeilkegelradpaar'), then I try to modify them using TinkerCAD.
The problem : When printing the STL exported from OpenSCAD, everything seems fine. But when I import the STL in TinkerCAD, there is a separation where the angle changes, and I cannot seem to find a configuration that works.

Also, when previewing with Cura (tried with the older v14 as well as the latest v4), I get the same behavior : the exported STL creates a solid object, while the STL from TinkerCAD (even if not modified, just imported and exported) has a 'gap' of about 8 layers.

And, of course, everything fails afterwards.
Any help is appreciated. Thanks in advance.

Are you using herringbone gears?  I'm trying to see why the angle changes.

Yes, there is a 20-degree angle; it's one of the parameters of the OpenSCAD library.
But even with no angles, the problem persists; probably because the library creates the gear in two parts.

I don't know how to explain how the problem is occurring with the STL post-processing tools you are using.
Try loading the STL directly into a slicer and view the result, then slice and view the toolpath.  It is always helpful to eliminate steps in an attempt to narrow down where the problem is generated.
Were I to try to patch the OpenSCAD model, I would create a hub component that overlays where the crack is found.  This would be small cylinder with a hole that overlays the hub.
I have had success adding elements and holes to existing OpenSCAD models and imported STL files using OpenSCAD.


text:
What is this called? A tube flange bearing threaded for threaded pushrod
How should I describe this part which looks like a threaded flange so that I can research replacements? It is the gold piece in the middle of each photo. It is used to create a bed raiser in the FLSUN Cube 3D printer.

It gets attached to a motor using a flexible bearing

This answer already describes the name of the "golden" component you are after, this answer expands upon that answer to note that there are various nuts with different thread sizes that look virtually the same, it would be a pity to order the incorrect one.

Note that this trapezoidal lead screw nut is made from brass (e.i. in your image, but these nuts are also available in POM/Delrin) and needs to have exactly the same screw threads as your lead screw has. A much used lead screw is using the following designation Tr8x8(p2) ( for a full description of what that means look into this answer (Anet A8 lead screw threads)). Do note that there are many lead screw nut sizes, buying the wrong one will not fit the current lead screw.

From the image you supplied it looks as if that is the same lead screw as used in the linked answer of the Anet A8 lead screw. To verify this, you could measure how much the nut advances on a full rotation of the nut, if it is 8 mm, buy the Tr8x8(p2) if e.g. 4 mm, buy the Tr8x4(p2). Note that if you are going to buy a new nut, you could opt for a nut that has no backlash, BUT, be sure that it would fit the acrylic hole and you have enough space as its height is larger, or be prepared to modify the acrylic part or reconstruct a new one (it wouldn't be a bad idea to do that anyways, acrylic is known for cracking under applying force such as screws and nuts). Note that an anti backlash nut must be used as depicted below.

There is also ACME thread, which is visually very similar.

ACME thread does look similar, but the channels have a different profile, and they are not crafted with the same precision.

The trapezoidal metric thread form is similar to the ACME thread form, except the thread angle is 30° (29° for ACME). This difference is so small to notice by eye.

To the best of my knowledge, it's just called a lead screw nut or lead nut. The flange and holes for attaching it to a surface are inherent in its role in letting the lead screw move something.


text:
Is this re-Arm controller actually 24 V capable?
I would like to make a 24 V (3D printer board and shield) setup, as opposed to the usual 12 V, and to do so I had been considering using the Taurino Power board, or the clone Eruduino. However, I just found this board:

The specifications state a DC input of up to 36 V:

Does anyone know whether that really means it can handle 24 V in the same manner as the Taurino/Eruduino? If so, then that looks like a double win: not only 24 V support, but also a faster processor. Anyone have experience with this board?
I was thinking of using with a RAMPS1.6 Plus (maybe), or just a regular RAMPS 1.4 (hacked to support 24 V). I'm just shopping about, and I thought that if I was going to spend £14 on an Eruduino, then I just as well spend that money on something better.
It does work with Marlin apparently, as some of the customer reviews would suggest, but none of the reviews that I could find referred to a 24 V setup (heated bed etc.), hence my question.

Given that the capacitor near the input is quite clearly marked 35 V, a 36 V rating seems questionable.
The (buck) regulator used on the (genuine version of the) board is the AOZ1282CI which supports up to 36 V input. This is probably where they got the 36 V rating from, but obviously the 35 V-rated capacitors drop the input voltage down below this.
Schematics for the board are available on the RepRap wiki and show that the input voltage only feeds into the regulator. I see no reason why this board couldn't handle 24 V input, as this is well within the rating of both the regulator and the capacitors.

For completion, I've just seen this, Can a ramps 1.6 support 24v? (which basically confirms the 24 V support of the Re-ARM board) although it isn't particularly useful w.r.t. the RAMPS 1.6 side of things, although I would imagine the the 24 V RAMPS hack would still apply.
In addition, Alex Kenis does a great review, and he has successfully tried it with 24 V, watch 32-bit series part 4: Re-ARM board "review?". Whilst the RE-ARm offers a lot of advantages, some of the main down points to be aware of are:

No 5 V analogue inputs, they are 3.3 V, so the endstops use 3V3 logic (not a problem from mechanical switches, but 5 V optical endstops will have a problem
Some of the pins of the Mega are missing from the Re-ARM.


text:
Anet A6 Just finished the assembly, has power but wont turn on
I finished assembly of the Anet A6. The green light on the power box comes on with the fuse removed, turns off when it is put back in place. When checking it with a voltage meter it looks like power is getting to all of the pieces it just wont turn on.
Before I start buying replacement parts I thought I would see if anyone had some suggestions?

Are you sure you didn't wire up the board backwards (with the wrong polarity)?

What fuse? Add pictures please.

There might be short circuit in the board. Try checking of powerlines are shorted.


text:
Ender 3 Z axis not working?
I recently got an Ender 3 3D printer for my birthday, and while I've had a lot of problems with it, there's one that I haven't been able to fix.
I can control the Z-axis, but whenever I go to print anything, it never does anything. The X- and Y-axis work just fine.
Any solutions?

Use the control menu and see if you can Extrude anything at all, maybe your material isn't feeding down into the nozzle correctly to be melted and pushed out.    Is the bed and the nozzle heating up correctly?

Does the model look correct in the slicer? E.g. Cura shows a picture of what is meant to printed. Does the z-axis motor make strange sounds?

What slicer are you using?


text:
Using both .gcode and .gbr files in a hybrid 3D printer + circuit etching machine? (RepRap 1.4 with Marlin firmware)
I'm making a hybrid 3D printer and circuit etching (CNC milling) machine that can both 3D print and etch prototype circuit boards. I'll be using Marlin firmware with an Arduino Mega & RepRap 1.4 board. It will have a 3D printer head and a milling head side by side. I'd like to have it be able to read both .gbr (for circuit etching) and .gcode (for 3D printing) files. How should I configure Marlin to read both types?

You cannot do that. .gbr files are for photo plotters.

You can use both .gcode and .gbr files one one machine. We do it where I work.
However, when we make prototype circuit boards, we don't print them; we acquire circuit board blanks, and then we either:

Use a diode laser to burn off the top layer of garolite for isolation traces, then do a chemical dip to remove that copper, then another laser burn to expose pads for surface mount components; or
Use a spindle tool to remove the top layer of garolite where needed for pads, as well as mill through the copper layer for isolation traces.

We have not found a printable material that has the conductivity we want in a circuit board.
Source: I work for Hyrel 3D

Note: we don't use Marlin on Arduino, we use in-house firmware on STM32F429 boards.

Would that mean I can load .gbr files just like I would .gcode files with no extra configuring? Also, I'm planning to just use a spindle, no laser or chemicals.

What does your software and firmware work with? Our software and firmware can do this. See this image (also added to answer). We also make our own solder paste masks (from aluminum cans), and use our pick-and-place attachment to position surface-mount components, then put them in our reflow oven to make prototypes and first runs, before sending them out for mass production.

I'm using the Marlin firmware for my machine and I'm not sure it can use .gbr files. My machine is just supposed to etch prototype boards and 3D print.

As noted above, we don't use Marlin on Arduino. We use in-house firmware on STM32F429 boards. I don't know what your setup is capable of, but it does not seem like a very big stretch to turn a different motor during "extrusion" moves.

I asked about using Marlin on Arduino so your answer didn't really answer my question.

That's true - so please do not accept it. But other users may see your title, which is more general (and which this does answer), and find this answer useful to them.

Well, I'm Using pronterface to send the gcode to print the traces of my PCB with an ink pen (sharpie); since the parameter in the Marlin-Rep rap1.4 is configured to fast print, So I can easily send the code just setting the origin or Zero to print on any area of the printer.
To set the new Zero just use the code G92, for example we need to print in the middle of the printer, so just move the spindle to that position and set G92 X0 Y0, then andjust the Z height then set G92 Z0. for your milling add a Z secure travel to avoid collide with the surface and or mechanical clamps
This video shows a PCB print in the 3Dprinter, so for the milling process will be the same. The video shows also the process making the holes on the CNC; I didn't do in the 3d printer because in that time I hadn't a dremel support.
Also Tech2C teach how you can configure the whole printer, just follow this link
So, be happy milling in your 3d printer

Note: for gbrl files I haven't tested but you can try to read and send
  your code thru this program (pronterface) probably you cand get some
  messages like "uknown code" just like gcode sender does while trying
  to send codes for laser etching (old versions).


text:
Is it necessary to replace the SMD fuses in RAMPS 1.5 or greater, for use with 24 volts?
One of the main hacks for converting RAMPS 1.4 boards to use with 24 V, as stated in RAMPS 24V, is replacing the polyfuses, principally F2 (MF-R1100), with wire and using an inline (car blade or wire) fuse on the heatbed wire (or between PSU and RAMPS) instead1. However, that is for the RAMPS 1.4 boards.
As RAMPS 1.5 notes (as well as 0scar's answer to RAMPS 1.4, 1.5 or 1.6?):

The RAMPS 1.5 uses small surface-mounted fuses rather than the large yellow fuses prone to breakage on the RAMPS 1.4. The downside is that replacing the fuses becomes much more difficult.

Are these SMD fuses rated the same voltages, or greater? Yes, this could be a bit like asking "How long is a piece of string" as it depends upon the manufacturer, but does anyone know what voltage should they be rated for?
Ultimately, if they are both rated at greater than 24 V, then there should be no need to replace them.
The answer on this thread, Re: Ramps1.4 or Ramps1.5 or ramps 1.6??? states:

OK the ramps 1.6 can only handle 12v OR 24V

so, that would imply that the intention for 24 V support was there, although, unfortunately, the poster does not post their reference.
However, the PDF of the RAMPS 1.6 schematic shows the same rated fuses as the RAMPS 1.4

Nevertheless, that seems like a straight forward copy and paste from the RAMPS 1.4 schematic as it clearly references the MF-R500 PTC, and obviously SMD fuses have been used instead - or are the part numbers the same for the SMD fuses..? I had a google but couldn't see MF-R500 SMD fuses (maybe I didn't look hard enough?).

Footnote
1 This is because the 11 A fuse is only rated to 16 V. Note that F1 (MF-R500) is rated for 5 A at 30 V, and as such is sufficient for 24 V operation.

Without knowing the exact part numbers used for F1 and F2 it is impossible to say whether the fuses need to be replaced or not. However, based on the manufacturer provided schematic and BOM we can make a pretty good guess.
Looking at the PDF you linked, it states that F1 is rated for 16V. Looking at the BOM spreadsheet it also says F1 is 16V and 30A.
Based on the fact that the only two reference documents available say 16V, I would strongly recommend replacing this component for 24V operation.

I found that at least the following two RAMPS 1.6 derived boards are 24 V capable without modifications:

Bigtreetech RAMPS 1.6 Plus (see the PCB layout picture in this offer)
King Print RAMPS 1.6 Plus

This information is so far only from webshop offers, so might not be the most reliable (and I did not test it myself yet). If somebody can find a confirmation from the manufacturer's spec documents, please let me know.


text:
Sending G-code through USB serial doesn't work (Ender 3)
Recently I was gifted an Ender 3 3D printer. I'm trying to use a Raspberry Pi Zero W to send commands to the printer remotely, if I get this to work the idea is to instruct the RPi to pull G-code files over the internet and then send it to the printer. I read about Octoprint but they don't recommend using RPi Zero W with it, and also I want to learn more about programming (I just know Python), so if possible I'd like to avoid using it.
Here is what I've done:

My RPi Zero W has Raspbian Buster Lite, so I'm using SSH to connect to it remotely. The pi is connected to the mini usb port on the printer.
Once connected I located the serial of the printer, which is ttyUSB0.
I verified the baud rate using stty < /dev/ttyUSB0, which was set to about 9600.
I read on the internet that the Ender 3 controller has a baud rate of 115200, so I ran stty -F /dev/ttyUSB0 115200 and that worked fine.
I tried sending the G-code to go to home position (G28) via serial using echo "G28" > /dev/ttyUSB0, but that just restarts the printer (the screen shows the logo and then returns back to the info screen). This persists even when sending different commands.

I tried opening another SSH session to read the output of the printer using tail -f /dev/ttyUSB0, but that again restarts the printer, and sending echo to it when tail is running won't do anything.


text:
I can't install plugins on OctoPrint?
I have installed OctoPi on my Raspberry Pi 3B+, that is connected to an MKS GEN L v1.0 motherboard for my 3D printer  (Ender 3 Pro). When I open my OctoPrint into a browser I can use it, but I wanted to install some plugins. First time I had an error that said my server was offline, after connecting my Raspberry to WiFi and setting up a static ip-address, I've connected my Raspberry to my main board, after that it said the status of OctoPrint was operational, so I expected it will work.
Sadly, it says that my installation doesn't have internet, so I still couldn't install plugins. I see that in the "connectivity check" my host is 8.8.8.8 and my port 53; I've pressed on test and there it said "server is unreachable".
What am I supposed to do?

Welcome to 3dPrinting.SE!

This is a known issue (WIFI fine, but no internet connection to install plugins) and could well be related to firewall or blocking of certain ports by your Internet Service Provider (ISP).
I quote from the provided link (OctoPrint issue tracker):

Disabling the connectivity check did fix the repository access. The check was configure to use google (8.8.8.8) on port various ports (22, 53, 5000, etc. Not sure the default). I do not have any firewall set up outgoing, unless it is buried in the Raspberian install that I am not aware of.

I stumbled across this issue with the same problem, and I fixed the connectivity check by changing the IP to OpenDNS with 1.1.1.1 instead of the Google DNS 8.8.8.8 set by default.

For me this issue was resolved when I update Date+Time on the raspberry...

For the record, 1.1.1.1 (and 1.0.0.1) is operated by CloudFlare, not OpenDNS (208.67.222.222 and 208.67.220.220).


text:
Lulzbot Taz Pro E2 Not Lowering Into Position
I just bought a new Lulzbot Taz Pro which has dual extrusion. The second extruder will not move when it is about to print so it is extruding filament in above the print bed.
When the print switches from the first extruder to the second extruder it does not move down, so when it begins to print the filament just dangles from the extruder and ends up clumping together and not sticking to the bed.
I've tried manually adjusting the heights of the extruders up and down but the second extruder will not move. I am not sure if this is a defect with the machine or if the was something i did wrong during the set up.

Hi Michael, I'm not sure what exactly your question is. See questions like https://3dprinting.stackexchange.com/questions/4329/print-quality-z-wobble-issue as a good example also this guide here will help as well https://stackoverflow.com/help/how-to-ask

A good example of a question that might be better formatted, How do I test if an extruder is working, and include photos

Please add by [edit] of your question how you slice your model. The printer requires a change script of the extruder, maybe that is missing? Also, for such an expensive printer it is perfectly fine to call the manufacturer for some support, if it is defective, they will replace it.

Just looked up the Lulzbot Taz Pro - Looks like the dual extruders are possibly servo-controlled as far as position goes. Instead of being aligned side by side like normal dual setups, when you switch extruders from E0 to E1, E0 will lift away from the print and E1 will lower towards it.
I'm not finding much information about how this process actually works, chances are there's some custom slicer G-code that needs to be handled, or possibly OP needs to run some of the on-board autocalibration routines.

@Nach0s, it's T0 and T1 for tool swapping. The E argument is feedrate/extrusion.

To isolate whether it's a hardware fault -- does E2 come into position when you're switching extruders in the load filament LCD menu? (It should). Frankly, this is a problem where my first point of call would be Lulzbot's phone support; they're very readily available (and have weekend hours).

(My guess is that you genuinely do have a warrantable hardware issue, but just to cover all bases -- would it be correct to assume you're using Ultimaker Cura LE 3.6.13, per the email they sent out to TAZ Pro owners asking folks to upgrade? If so, have you connected to the printer via serial line and allowed it to upgrade the copy of Marlin? Not that I know of any bugs in the old firmware that would cause this -- but as a matter of completeness).


text:
Is there a way to configure printer extruder to go all way up when printing finishes in Ender 3?
With Ender 3 is there a way to configure printer extruder to go all way up when the printing finishes?
Or even with the Ultimaker Cura software?
I want this, because i'm going to put a switch on the top of the printer that will switch it off when the printer finishes (if i can make the arm with the extruder go all the way up when printing finishes.)
How can this be done?

Have you tried adding a G0 Z(proper location) move before the end of the gcode file?

@Davo no i didnt, and i never edited a gcode file, is it safe?

Might not be the best idea to shut the printer off right after it finishes https://3dprinting.stackexchange.com/questions/10271/should-i-cooldown-before-shutdown/10274

@Nmaster88 Yes, is safe to edit your G Code for adding code that safe your prints and your printer, also for helping to get a better adhesion and auto levels. many recommends not turn off the printer after finishing but I don't see any problem; My printers some times stops on blackouts and nothing happens. (one per month).

@FernandoBaltazar: Indeed, but you're more likely to get a clogged hotend from heat creep if you shut it off right away, because the material still above the melt zone may heat up (without a fan to keep that part cool) and slightly melt, expanding enough that it can't be pushed down into the melt zone next time you go to print. I've never experienced this, but it's the failure mode people cite and it seems plausible.

@R.. Clogged nozzles are because some users (me) forgets to preheat the extruder or while preheating the cooling fan on the feed chamber is off, this creates the worm. the clogged nozzles many times can be unclogged just by preheating the hotend an extra time to allow the plastics flows by gravity. I use this process, I haven't had a clogged nozzle in 3 years, when I started was one per week :D

@FernandoBaltazar from what you say my idea seems safe to implement. Thanks :D

The most safe way to move the printer up to the maximum print height is to use a concept known as "keywords" (sort of constants that are filled by the correct value when slicing) in Ultimaker Cura, certainly if you have multiple printers with different print area sizes.
To use these keywords, just add these in between curly braces and insert them into your slicer "End G-code" script. These keywords will be substituted with actual numbers from the printer settings or slicing configuration parameters. In this case we need to use the maximum print height which is specified by the keyword machine_height. This keyword takes its value from the printer settings, set for the printer in the graphical user interface of the printer settings, see image below (this is a configuration of an Ultimaker 3 Extended, it also shows the Start G-code and End G-code which you can tweak yourself, as seen by the additional G-code line G0 F10000 Z{machine_height} that has been added for this demonstration).

E.g. similar to this answer, you could solve this with a keyword. Now when you slice for a certain printer (e.g. with the printer settings of the image above), the correct value will be filled in automatically when slicing the print object as can be seen from this snippet of G-code:

...
G91 ;Relative movement
G0 F15000 X8.0 Z0.5 E-4.5 ;Wiping+material retraction
G0 F10000 Z1.5 E4.5 ;Compensation for the retraction
G90 ;Disable relative movement
G0 F10000 Z300 ; <------------ note to see {machine_height} be resolved to 300 mm
...

This is specifically for Ultimaker Cura. Do note that e.g. Slic3r even takes the keyword  concept further by allowing arithmetic and logic, similar as you could do in programming languages!

In Ultimaker Cura (and pretty much any slicer), you can easily modify the end code of the Ender 3. To go all the way up, you could add the following in the end:
G90 ;absolute positioning
G1 Z300 ;goto height 300 ; Move to 300 mm = 30 cm.
G91 ;back to relative positioning

If you use OctoPrint, there is a plugin that will allow you to take action on certain events, such as print completion. The action that it can take would allow you to turn of a TP-link smart plug; which would turn off the printer. You could then use the phone app to turn it back on.

while you could turn off the printer that way, it does not answer the question OP asks: how to get the gantry to top out after a print

"I want this, because i'm going to put a switch on the top of the printer that will switch it off when the printer finishes" - This is the OP's objective.

they might have other reasons why they want a mechanical switch.


text:
Can the resin from Resin based 3D printers be used to make printed circuit boards?
Do the properties of 3D printer resin allow it to stick to copper clad surfaces when cured? I am interested in turning my filament based 3D printer into a photo plotter with a laser that can cure a thin layer of resin coated onto a copper surface.

why not try an FDM printer? Not sure how SLA ones work, but that should work with no modification.. just binder clip it to the bed and enter the appropriate offset.

FDM doesn't have the resolution that I need.

What resolution do you need? FDM can be pretty high.

copper, or copper and FR4 mixed substrate?

I recommend in the strongest possible terms that you stick with standard photoresins used by PCboard houses.

The part that I'm intending to mount has a 1.27mm ball grid spacing.

@AndrewMorton, This idea is just for the etching process. To create an etching mask for copper I chloride.

Brushed aluminum is a common bed surface for resin based printers. The aspect of the aluminum that is important to the print is the adhesion, hence the roughness of brushed aluminum. It has to be sufficient to hold the print in place, but not so extreme as to cause destruction on removal.
In the case of copper as a print surface, one would certainly want some mechanical adhesion in the form of surface roughness. You've not specified the forces that would be applied to the copper once cured. If you do not plan to manipulate the copper surface in an excessive manner, it's likely that it would adhere. It's also just as likely to pop free if the plate or surface is flexed. I've seen no reference online to copper coated print beds. This would lead me to believe that it was tested and rejected as suitable for 3D printing, but not necessarily unsuitable for your purposes.
This is one of those situations where testing is warranted and not particularly difficult to accomplish. You can purchase UV curing resin, build a tin to hold the copper surface and pour the expected layer thickness. Leave it in the sun and let nature's UV do the curing.
Consider if you have not yet done so to research safety practice for handling this substance. Wear gloves and eye protection, cover any exposed skin surfaces and have good ventilation.

You're saying there is no research on copper build surfaces which implies that it doesn't work. Either it sticks too well, or doesn't stick at all.

Another consideration with copper is that it's much more expensive than aluminum and may have been suitable, but rejected due to cost.

Copper would not be a suitable print surface because it corrodes easily, and the oxides are mechanically weak. Aluminium forms a thin, but well sealed oxide.

I'd expect that a copper plate covered in resin is going to remain corrosion free, or if the resin reacts with copper, corrode quickly!

Downsides of copper are: expensive compared to Aluminium, soft, and it's 3 times as dense.

@SeanHoulihane are you saying that the print sticks to the oxide layer of the bed. That's why Aluminum is used?

Aluminium always forms an oxide layer, you only see pure metal for a few hours after it is cut. There will be lots of factors that mean it is a good-enough cheap build surface. Adhesion is a minor factor. There are many better surfaces.

@SeanHoulihane, so will it stick to copper at all?


text:
Why is my 3D printer not extruding properly?
I have a Duplicator i3 mini, which has yet to make it a month without breaking. This time it is extra broken because the filament is not extruding properly. the most successful print I've had yet had about a centimeter before turning into an absolute mess. I have a picture. It was not stringy, and had the exact shape i was trying to print, but was like a frame of a sort. I am printing with matterhackers MH build series PLA, which has worked before this started happening. What should I do? What troubleshooting steps should I take?

Welcome to 3dPrinting.SE!

Underextrusion and clogs can also be caused by insufficient temperature in the hot end. You've not reference your temperatures, so consider to use a test model and print at different temperatures. Too low temps can result in the problem you present, while too hot temps will increase stringing and peculiar blobs on the print.
If your slicer changes print speed at the layer of destruction, it may also be too fast, which is related to temperatures. Simplify3D allows speed variation as well as temperature variation at selected layers, but it requires deliberate action on the part of the operator.

A perfect option to find the correct temperature and speed could be determined using a heat tower, see How does one use a heat tower?. Note that retraction can also cause clogging and under-extrusion.

That looks like underextrusion as a result of a clog. Try cleaning the nozzle or replacing it.
See this link for more information about clogged nozzles.
If I have a nozzle clog, can I easily get rid of it by simply replacing the nozzle?