How do I set the G-code buffer size on Marlin?

Marlin does allow one to change the size of the buffers, in Configuration_adv.h. In the current version there's an ifdef that switches between two cases, one with SD support, and the other without. Both have a movement planner of size 16, which can be adjusted.

Additionally, in the same file, BUFSIZE can be changed to modify the size of the buffer storing unparsed commands before they are parsed and enter the movement planner buffer.

Additionally, for some firmwares, M112 will immediately shut down the printer, no matter what is in the buffer, but the reset button will need to be used, and the axes will not be homed afterward. In Marlin, it's hardcoded to call kill().


It was a while back I created this post, since then I've have numerous problems / learning curves and now I'm very pleased to say I have a printer that prints perfectly and is set-up correctly.

I must say that the support from QidiTech is first class and during my journey I was sent a new extruder assembly, new extruders and also new print matts, all completely free and covered by the warranty.

I have now printed numerous models successfully.


PET-G under-extrusion after changing the nozzle to a 1.2 mm d. one (Prusa i3 mk3s and PrusaSlicer v2.0)

Piecing this answer together from the comments on OP's post.
Myself and R.. noted that a layer height of 0.35 mm, nozzle width of 1.2 mm, and a fairly high feedrate (200 % according to OP, no reference to what 100 % is), is an exceptionally large amount of plastic to try and melt through almost any hotend on the market except possibly the Volcano, or the high-throughput version of the Mosquito.

OP responded that lowering the layer height to 0.2 mm seemed to fix the issue. That's still an impressive amount of plastic, but it's a 43 % decrease in total flow compared to 0.35 mm layer height.


What is the thermal conductivity of various 3D printing filaments?

All values are in W/(m*K).

PLA: 0.13
HIPS: 0.20
ABS: 0.25
PETG: 0.29
PEEK: 0.25
PLA with copper: 0.25 (see discussion)
PETG with 40% graphite: 1.70 (ansiotropic)
TCPoly: 15
Steel (not a 3dprintable plastic): 10 - 50


The video treats about sodium polucarbonate (C3H3NaO2) this is a superabsorbent polymer has the ability to absorb as much as 100 to 1000 times its mass in water. This is used as desiccant on products that moisture can be a problem basically during storage prior selling. The video shows the water how is trapped inside the particles of sodium polycarbonate, this happens inside a diaper or any product urine odor absorbing, also is used on waste liquid control.

Also you can find something similar on some products that has a little bag that says silica gel (SiO2).


Converted comment on OP to answer:

The comment links to a question on SE.Blender; the answer that led to the solution is quoted below.

  The STL exporter doesn't take Scene Scale into account. Import your
  STL back into Blender (it will have the same size) and drag Scene
  Scale up back to 1.0, and you'll see how the cube grows relative to
  the grid.

  1 Blender unit equals 1m, but STL seems to assume 1 unit as 1cm.

  If you want 1 unit to be 1mm, set Scale on STL export to 0.1 and
  Scene Scale to 0.001 to make it match the output scale in viewport.

  Note that the STL will be 10x smaller if you re-import it into
  Blender!


How to calculate the strength of a printed object?

Strictly speaking, it is difficult to do calculations on these materials, but not impossible (I've heard about a few commercial analysis tools that do that). The FDM process (Fused Deposition Modeling) creates a product based of fused slices of material causing an anisotropic material (this means that the properties of the material are different in different dimensions). Basically, your product will be quite strong and similar in the X and Y directions, but fragile in the Z direction (layering direction). You can imagine that every layer may be a seed for cracks to grow when you're pulling at the part.

When applying a compression load on a product like in your example, the walls need to be strong enough to hold the pressure (not all of the load as, based on the type of infill, the infill also can/should take part of the load!) and need to be of sufficiently high percentage, not only to take part of the load, but also support the walls to prevent buckling. I remember that stress calculations for buckling are difficult and require FEA (Finite Element Analysis) for more complex objects other than bars or beams.

I think it is difficult to determine or calculate the infill percentage based on the compression load beforehand as you do not know the exact material properties and the buckling behavior. You do know that a 100% infill will give you enough strength and support, you could try to print at a lower infill, e.g. 75%, and test if that works for you.


How long is an extruder's/nozzle's life?

This is highly dependent upon the type and quality of filament you use.

Exotic materials such as wood, metalic, or otherwise infused plastics can potentially wear out the inside of the nozzle and at the very least leave deposits of composite material in the nozzle. This can lead to more frequent or irreversible clogs. You may also notice your prints becoming "stringy-er" (sorry for lack of vocabulary at the moment) as the volume of your nozzle reduces with more deposits sitting in the basin of the nozzle, therefore leading to lighter extrusions against what your slicer is expecting.

Lower quality materials (common ABS/PLA) can also have an effect on your nozzles life span. So can good quality filament, don't get me wrong. However, lower quality materials have a tendency to go through much more drastic material changes during the printing process than better quality filaments. For instance, a lower quality PLA may not be 100% PLA. It could have 10% Nylon, 5% ABS, 0.1% operator's BandAid, and 83% PLA. Well, the 17% of the filament that isn't PLA has the potential to clog the nozzle just as easily as the exotic filaments. This is why it's so important to verify the quality of your source of filaments.

Some signs that your nozzle may be wearing:

It simply clogs more frequently
The printed part looks "stringy" or "bubbly". The "stringy" effect is that the extruder is not extruding at a fast enough rate for the speed of the motion, which is common if your extruder is about to clog, your filament is crappy quality, or your slicing settings are invalid for your machine. The "bubbly" effect can be from an overheated extruder or another sign that your nozzle is about clogged.
Your filament begins curling around the nozzle as it initially comes out. Typically there is a burr or something that catches the filament on its way out that you can simply take a small file to grind it off, but sometimes it may be because there is the build-up of deposits towards one side of the basin.


Reprap prusa i3 Y and Z axis swapped when printing GCODE files

Sounds like your slicing program is not set up right.. Or more likely your printer isn't.

I would use Pronterface

I use simplify 3d, but the best free software is Slic3r.

Try those then report back. Honestly I think you might not have it wired correctly. With pronterface tell it to move X. Then try moving it and manually holding the endstop. Then if it does not stop try going tho incorrect way with that endstop still pressed. If you find that your reversed you will need to correct this with your firmware. If I knew this was a ramps board you could reverse the wires, but lets do it in firmware as I am not buying you a new board.

After that you should work. Software wise we just made sure your interface and your slic3r work and talk the same language. Those two I know will not be doing anything funny. After that report back if it is still not working.


What technics are you using to seal between the throat tube and nozzle?

A seal between the heat break and nozzle should be achieved by tightening them while the hotend is hot. After assembling the (cold) hotend, heat it up to somewhat above the highest temperature you will print at and then tighten the nozzle some more. When it cools down again, you will have a very tight seal. If the nozzle still leaks after this tightening then it is defective.
Using teflon is possible but will limit the maximum temperature you can use your hotend at safely and you won't be able to print some higher temperature materials.


What's the best printing technique to produce splints (a device to immobilize a body part)?

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

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

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

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

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

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


Low Accuracy while perfect travel movement

You shouldn't calibrate the steps/mm for the X, Y, and Z axes. Just use the default settings which are based on the theoretical values for the given belts/leadscrews/threaded rods.

The mistake is in assuming that the error in the dimensions of the 20x20x20 calibration cube are purely due to the steps/mm setting. Due to a variety of reasons (inconsistent extrusion, measurement error, slop in the printer, backlash) no printed part will have its dimensions be perfectly accurate (no FDM 3D printer is capable of better than a few tenths of a millimeter accuracy in part dimensions). When you calibrate the steps/mm so that a 20x20x20 cube comes out "perfect", you are hiding all of these non-linear inaccuracies in a linear compensation of the steps/mm. When you then print a larger part, these inaccuracies (which are incorrectly compensated for in the steps/mm) get blown up.

Suppose your calipers had a constant error of +0.1 mm, i.e. every measurement reads 0.1 mm higher than it should. If you calibrate your steps/mm so that a 20x20x20 calibration cube comes out "perfect"; the actual size of the calibration cube would be 19.9 mm (which your calipers would read as 20 mm). If you then were to print a 100 mm part, it would come out as 99.5 mm which your calipers would read as 99.6 mm.

If you insist on calibrating the steps/mm you should do so by printing a part as large as possible. This ensures that the constant error is divided over a large part size, giving a better estimation of the actual steps/mm. However, usually the theoretical value is more accurate than what you can measure yourself, even with a part taking up the entire print bed.

  10 cm filament ... and measuring how much was really moved

10 cm is a very short length; you would get a much more accurate calibration with a 100 cm length. However, calibrating the e-steps very precisely is kind of pointless. It is hard to do so precisely because extruding into free air (and at possibly a different speed than when actually printing) will result in a different amount of resistance and thus a different length of extrusion than during an actual print. You will need to calibrate for the diameter and flow characteristics of the actual filament anyways, during which calibration you can much more effectively compensate for small inaccuracies of the extruder steps/mm.

Perhaps it would be a good idea to look into the rigidity of the entire printer and how securely the parts are mounted. If there is a lot of play in the bed or hotend this could also explain why parts are turning out oversized.


Wanhao Duplicator i3 Mk2 Firmware Update

My problem was resolved with the help of comments above.

A quick Google search shows that there are multiple issues with updating to new firmware for printer and LCD (these are separate firmwares!). Useful links are this one and this one which have support for the MkII....
Try to disconnect the display if you go down the Arduino route and see if you get it running while connected to serial (USB) and Pronterface for instance. When pursuing the Arduino route, be sure to send M502 and M500 after the flash to the printer to get the values from the firmware and overwrite the current stuff in the EEPROM.

I downloaded the Mk2 firmware from here and then used the normal Wanhao procedure to update both the motherboard and LCD and this left me with a working printer afterwards. Why the firmware downloaded from Wanhao's own site does not work is a mystery.


It's almost always what you call system 2:
The LCD screen is acting as a "mask" for the UV backlight, which is a strong bulb under it. This also is the reason that the screen degrades over time and that the machines need replacement bulbs: the heat from the UV source burns out the screen and itself over time. Both parts are consumable, just like the screen.
You could technically swap out the light source for any one that fits the machine. However, a 360 nm light source won't help you for printing resins at all: most resins you can buy cure between 395 and 410 nm.
Yes, even by curing with an UV light source, you need to post-cure the print. The reason for that is to get rid of any uncured, not washed away resin that still sticks to the surface and that a 3D print right of the platform actually isn't cured fully - especially the inter-layer-bonds are not formed fully and curing in the lightbox increases the stability to the print a lot.


Going to post the answer here for posterity and for those, like me, trying to cope with Linux after making a career in Windows.

I'm running Kubuntu 18 because I didn't want to have to buy an operating system or install a bootleg copy of Windows. The most important thing for a Windows user to know is that the readme.md file is important. Think of it as a .chm file, or a series of linked help documents. What you want to know is THERE, not on the github page.

Using the following command in the mjpg-streamer-experimental directory got me where I needed to go.

mjpg_streamer -i 'input_uvc.so -d /dev/video0 -r SVGA -f 30' -o 'output_http.so'

e.g. webcam, 800x600, 30fps to http (port 8080 is the default) The MD files break it down. I also found two web pages very useful:

http://skillfulness.blogspot.com/2010/03/mjpg-streamer-documentation.html
https://wiki.ubuntuusers.de/MJPG-Streamer/

In OctoPrint the streaming setting is then:

http://127.0.0.1:8080/?action=stream

In my case, I use the network IP rather than local host so I can monitor the print from my upstairs PC. For snapshots:

http://127.0.0.1:8080/?action=snapshot

I'll admit that Octolapse doesn't work for me yet because I'm still trying to work out ffmpeg, but that's another issue. EDIT: got that done, too. Useful command:

whereis ffmpeg


Using dollar-store picture glass for print bed on top of original heated aluminum bed?

Picture frame glass (generally float glass) will work well enough, but count on it eventually cracking/getting chipped. It's always very flat (due to the way the production process works).

Taking it up to 100-110C for printing ABS should not be a problem, but you'll want to avoid sharp changes in temperature, and should be careful that your prints don't adhere too well: I've had PLA/PETG prints take out pieces of glass with them due to the force required to remove them from the build plate. You might want to try without any (or very little) adhesive first, and make sure your nozzle isn't too close to the build plate.


Poor surface quality when sweep interrupted

It looks to me like you have underextrusion in these regions probably due to loss (oozing) of material during travel moves prior to printing them. Aside from small gaps in the surface sweep at the part you're talking about, I see a long slightly-diagonal light-gray line between the middle of the right and the middle of the bottom of your image, which appears to be material that oozed during combing.

Make sure you have retraction enabled, have sufficient retraction (at least 6 mm for bowden; somewhat less for direct-drive) and either disable combining or set max combing distance very small (like 1.5x nozzle width) and see if this helps.


Why don't LCD printers use subpixels in color panels?

If what Thomas Sanladerer states is correct, the Mars 2 Pro (monochrome LCD, no color filter) has a layer time approximately 1/3 as long as the Mars/Pro printers (where color LCDs are used):

This would indicate that the light passing through the LCD, when the color filter is present, is 1/3. Put it in other words, only ONE subpixel is capable of transmitting UV light.
Consequently, using all of them would not improve resolution because the other subpixels are always opaque.


Is there any reason not to clean nozzles with fire?

If you carbonize the filament or other particles that are clogging the nozzle, then you will never get them clean. In my experience, it's not worth cleaning the nozzle with anything other than cleaning filament. If that doesn't work then change the nozzle. Heating the metal nozzle with a torch will change the temper of the material. I used to try cleaning with a soldering iron; which was to no avail.

Purchase a dozen brass nozzles and save your self the headache. Either that or a good quality set of stainless steel ones. They are easier to clean with the cleaning filament and aren't ablated by the filament as quickly, allowing for better dimensional accuracy over multiple prints.

https://www.amazon.com/eSUN-CLEANING-Filament-Printers-Cleaning/dp/B00MVIYNFW/


Temperature offset on Wanhao Duplicator i3 Mini

It's very difficult to diagnose 3D printers without physical access to the machine, but here's a few possibilities that come to mind (several of those may contribute together to the problem).

The temperature reading is poorly calibrated or defective

This means that the actual temperature is lower than what displayed.  You can verify this hypothesis by using an IR thermometer or replacing the probe (on some printers the heat probe on the bed is the same than the one on the hot end, so you don't need to buy a new part).

The batch/brand of filament you have has a higher melting point than expected

So: the filament is supposed needs to be extruded at 225°C, but the label (or simply your assumption from having used other spools of filament) says otherwise.  Just use that temperature and be happy.

The teeth of the extruder gear are worn

Within limits, the hotter the molten plastic is, the runnier.  This means that at 225°C it will be less viscous than at 210°C and will strain the extruder motor less.  If the gear of your extruder has worn teeth that won't "bite" deep enough into the filament, they will eventually slip when reaching a certain torque.  The teeth of an extruder wheel should feel well defined under your fingers, if you are in doubt about them not being sharp enough, then they probably aren't, as the feeling is quite distinctive.  Replacement gears can be purchased online very cheaply.  EDIT: re-reading your question I realised you wrote that the motor skips, so this and the following point may not be the case for you, even if sometimes - but not always - slippage makes a similar noise to skipping.

The spring of the extruder gear is weak

See above, but here the root cause of the slippage is the extruder gear not being pushed hard enough into the filament.  This is caused by the extruder spring being too weak.  Most printers have some mechanism to regulate the tension of the spring.  A DIY method is that of adding a stack of washers (or a custom printed cylinder) at one end of the spring in order to "pre-tension" it.  Otherwise again: spring replacements are extremely cheap.

Your part fan is blowing on the nozzle

The temperature probe measures temperature at some place in the heat block, not the nozzle.  If your part fan is blowing too high, the flow of air may be cooling down the nozzle, instead of the extruder part.  You most definitively want to avoid this by repositioning the fan or printing a custom fan deflector (the latter is a classic among mods).  This is an easy-to-diagnose problem as most slicers allow you to turn the part fan off.


This solution assumes the following

a-The scaling factor for the object is correct i.e real world dimensions .

b- There is a .STL file available .

c- This will take some 3ds max skill and time .

Steps to be followed -

1- Take the .stl file into Autodesk 3ds max .

2- Now we are going to trace the exposed surface using a process called reptology . Here is link to get you started - https://www.youtube.com/watch?v=azkbuZloTqo .

3- Once you are satisfied with recreating the mesh and sure it is as accurate as humanly possible , run the measure utility on the recreated part .

This is the link . https://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/3DSMax/files/GUID-12CDEA7A-042E-4CB3-9BF6-8191D3290CD8-htm.html .

If there is a upper side and a lower side to the model then you should divide the surface area in half ( in this case it would be ).

3Ds max is very accurate if your part is designed properly .

4- This can be done directly on the .STL file if you can efficiently isolate your target area , lemme warn you this is not an easy task .STL files are notoriously difficult to edit. ( its much easier to redesign on top  )

Try it should work out fine .

Please do not waste time processing .STL files on 3D-Slicer, Seg3D, ITK-Snap
they are mostly for file preparation i.e (.STL file generation ),viewing and study purposes only .


If you don't mind adding another tool to your toolbox, you can use a plug-in for Inkscape called Inkscape OpenSCAD DXF Export that will convert your SVG drawing to appropriate code to import to OpenSCAD. Even if you aren't keen on learning OpenSCAD, once you have the code, press F5 for a preview, F6 for a rendering and then export the STL file.

The link on Thingiverse gives instructions how to add the plug-in (extension) to Inkscape, which is relatively simple. I've been using the extension for applicable projects with great success. Expect minor complications for closed paths within other paths, however. You may have to create separate STL files for those paths and use Boolean subtraction to remove the "holes" as needed.

The extension is slightly counter-intuitive. Be sure to manually add the .scad extension to the file as it does not perform that task automatically.

UPDATE: I have discovered that the above link is not the one I've been using. I'm leaving it in place as it may be useful to others to have the ability to create .DXF files from Inkscape. The correct one is called Inkscape to OpenSCAD converter v6 and works as described above.

As always, read and follow all label instructions. Do not operate heavy machinery after using this product.


I believe I would want to do:

 M104 S0 ;extruder heater off
 G91 ;relative positioning
 G1 E-1 F300  ;retract the filament a bit before lifting the nozzle, to release some of the pressure
 G1 Z+0.5 E-5 X-20 Y-20 F{speed_travel} ;move Z up a bit and retract filament even more
 G90 ;absolute positioning
 G0 X0 Y200 ; move to back-left corner
 M84 ;steppers off

Here, Y200 is the depth of my build plate.

This works, but the movement is very slow.


How about the Ultimaker clips? Ultimaker uses 2 mm heat bed and 4 mm glass, that should be within reach by bending the clips a bit. They have quite a low profile/footprint.

These clamps are very cheap and can be found on those typical auction or Chinese sites.

Alternatively, you can also tape the glass to the aluminium bed using kapton tape if you are concerned about hitting the binder clips.

Note that e.g. in Marlin firmware, you can define a Z-offset to prevent hitting the binder clips on movement.


Geeetech Prusa i3 Extruder seems to push more filament, gear slips/skips?

A nozzle with a nozzle width of 0.3 mm cannot print a 0.3 mm layer height. You could do that but you should not as you ultimately pay the price in the form of a less aesthetic finish. The general rule of thumb is to maximize the layer height at 75 % of the nozzle width, so a 0.3 mm nozzle would allow for a maximum of 0.225 mm. The rationale is that the filament leaves the nozzle as a tube and needs to be flattened to make it flat and adhere to the previous layer, too high layer heights increase the pressure in the nozzle (more filament is needed) causing a less than ideal extrusion and cause the extruder to skip; this is identified by observing a distinct clicking noise.

Please lower your layer height (try 0.2 mm) and decrease the printing speed to see if this works better.

Furthermore, for PLA, temperatures for the hotend (unless you have some sort of a special PLA filament) and the bed temperature are too high. Please aim to print PLA at about 200 °C with a bed temperature of 50 - 60 °C.


Alternating number of lines for the shell between layers

It is possible to get an alternate extra wall in Ultimaker Cura, the option is called Alternate extra wall. It can be used to catch the infill more firmly, strengthening the print.

From Ultimaker support:

  Alternate extra wall

  This setting adds an extra wall every other layer. This way the infill gets caught between the walls, resulting in stronger prints. For example, if you set the wall line count to two walls and enable alternate extra wall, it will print two walls on even numbered layers and three walls on odd numbered layers.

I've used this option frequently, but I'm not aware of any option that you can change the amount of layers alternating. You can do that probably with the option to set different options for different sections of the model, see e.g. "Different infill in the same part".


In this case I would like to first recommend replacing your PTFE tube with a better quality product. Unfortunately, the quality:price ratio is as to be expected here. My reasoning:

PTFE has great thermal properties for a polymer, just like ABS. In fact, the glass-transition state begins at relatively the same temperature between the two materials. ABS starts transitioning at about 105°C and about 127°C for PTFE.

However PTFE, traditionally, has a much higher melting point at about 327°C as opposed to the usual 125° we use in 3D printing.

My Point: I think the hardware you currently have has low-quality PTFE.

PTFE can be recycled for re-use in other PTFE products. In recycled PTFE, you can lose a lot of the desired properties in the material (true for any material). This includes both the ideal "friction-less" and thermal resistance we need in 3D Printing.

What I think happened: The higher print temperatures of ABS transitioned the PTFE into its glass-state. As the throat expands, the path of least resistance in the assembly is towards the extruder motor since the nozzle holds more pressure.

I would not recommend "fixing" this problem with a retainer! By forcing the PTFE throat to stay in position, you could potentially force the PTFE to expand in other ways. Most likely resulting in constricting the filament, leading to grinding of filament on the drive gear and clogging of the nozzle. Worst case, you end up with gooey PTFE in your nozzle and/or around your retainer.


Try checking the wiring on your motherboard and all of the connections to your steppers. When I first had my printer, the z-axis didn't work because a wire was loose. I took apart the control box on my Di3 and made sure everything was firmly connected, and after that everything worked fine.


Using both .gcode and .gbr files in a hybrid 3D printer + circuit etching machine? (RepRap 1.4 with Marlin firmware)

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.


What do the pink colors in Slic3r preview signify? If it signifies a problem, how do I fix it?

In slic3r preview, salmon (pink) represents infill, yellow represents perimeters, and green represents support material, including skirt and brim.


Adjusting Bed Temp values on Monoprice/Wanhao I3 (Repetier Firmware)

It is completely normal for the surface of the bed to be cooler than the indicated temperature. The thermistor goes on the underside of the bed, near the heating traces. The top of the bed (which is further away from the heating traces) will naturally be cooler.

It would be possible, though a lot of work, to build a custom thermistor table that more accurately reflects the surface of the bed, though that means your thermistor table will no longer reflect the characteristics of your thermistor, but instead reflect the particular circumstances under which you build your custom table (which would be affected by ambient temperature, any drafts, ...).

The accuracy of an infrared laser thermometer depends on the characteristics of the surface you're measuring for, so unless you adjusted the thermometer specifically to measure the aluminium surface of the bed, it's possible your thermometer is off as well.

The exact temperature of your bed doesn't matter anyways (you just need it approximately in the right ballpark) so I would suggest to just live with it. The 60C/90C figures are not supposed to be for the surface of the bed. They're meant to reflect the temperature reported by the printer. That said, 90C is a bit low for printing ABS (but the bed/power supply on your printer might not be powerful enough to get any higher).


Does having more curvier corners help warping more then smaller curves

In short, yes, it helps a little. Curves provide less surface area per unit volume (a sphere has the least possible surface area relative to the volume of the solid), and that reduces the rate at which the material in that corner will cool relative to elsewhere in the print, and also changes how the material can deform if and when it does cool unevenly. Uneven cooling of fine features, including sharp corners, is what causes warpage, as these areas typically cool faster than others. The curve also helps with bed adhesion, as the more rounded corner is more easily kept down on the bed by the various forces within the object and in the bed adhesion. Sharper corners depend more on the surface area under the corner itself to keep the piece properly stuck to the bed.

However, it's not a panacea. It's not always possible, for one; it's usually an option when CADing a "green field" design for a household item or other standalone product, but if you're making a replacement part for an existing device, or printing a figurine or other detailed model, you usually have to take the curves (and edges) that design gives you. Also, if you radius an outer edge of a hollow shape, but don't radius the inner corner to keep the material thickness constant, you'll end up with similar cooling problems as the apex of that edge cools fastest.

Strategies for avoiding warping are along a couple common lines, but exactly how you implement that strategy depends on the material and on the printer. One overarching strategy is to increase print surface adhesion; the stronger the part sticks to the bed everywhere on its first layer, the harder it will be for corners to lift. Exact techniques depend on the print material, but many of them, like blue painter's tape, Elmer's glue and hairspray, work well for several filament types. Adjusting the printed shape, to print a brim around the shape's base or even a raft under the entire object, are also common anti-warping strategies. The tradeoff is that the stronger the bed adhesion, the harder the part will be to remove from the build surface when complete, which depending on your print bed construction can cause more problems than the warping.

Blue tape is nice because it's cheap to buy and easy to apply to the bed surface, both of which mean you don't have to worry too much about damaging the tape as you remove the part, just strip the tape and put down another layer. But, it doesn't work for all filament materials; the only thing I've found that really works well for ABS, for instance, is kapton tape, which is significantly more expensive and takes a lot of effort to lay down a wrinkle-free, bubble-free layer over the entire print bed for a large part (especially on my MakerBot, which doesn't have a removable build surface on it, so I'm laying this tape down in cramped quarters within the printer enclosure). A glass surface painted with ABS slurry is an option I've not yet had opportunity to try for ABS printing, but plenty of people swear by it.

Cooling, especially uneven cooling rates, are another major contributor, but again, exactly how you deal with cooling depends on the material. Most plastics, especially PLA, tend to work best when you keep things as cool as possible; the coolest extruder temp that reliably feeds fil, the coolest bed temp that reliably sticks, part cooling fan turned up, and even a standing or box fan blowing through the entire work area to put as much air over the part as possible. What this does is to get the PLA down onto the print surface as a hot "putty", then immediately "freeze" that bead of plastic as a solid as the heat's removed, so the bead can't shrink as it cools more gradually.

Now, with ABS, this cooling strategy doesn't work, and in fact it's the worst thing you can do to an ABS print. The material is much more elastic than PLA, which is quite brittle, and has no true melting temperature, with a very hot glass transition temp. So, as it's laid down, the extruded beads quickly put the part under elastic tension as it cools. Shrinkage is a fact of life with ABS; the only thing you can do is to control the shrinkage by controlling the part cooling, so the part cools and shrinks evenly. ABS calls for a hot print bed for good adhesion, which will keep the first few layers warmer longer, but higher layers of the print will be further from that heat source, so if there's air moving over or within the work volume, these higher layers will cool more rapidly, at which point it really doesn't matter how good your surface adhesion is (I've seen prints split halfway up the model to relieve the tension by warping). So for ABS, a heat enclosure is pretty much a must. My MakerBot is built that way (in fact it's designed for ABS printing and works better with ABS than with PLA, which is supposed to be the more user-friendly material of the two), but most of your open-gantry RepRap-type designs will need something built around it, usually with a separate heating element to heat the work volume more than the bed is capable of doing.


How to recycle filament material from printed parts?

There are a few options.

Machines are available which grind the used plastic into fine pieces, melt it down, and extrude it as filament to be reused. Filabot is perhaps the most well known.
Depending on where you live the local recycling programs may accept PLA or ABS. They will then shred it and melt it down for reuse.
PLA is bio-degradable so you can put it in the compost.
I put scrap ABS in acetone which results in a slurry which can be used as a glue to attach ABS parts, fix cracks, and hold parts to the bed.


Those wavy lines could be artefacts caused by closely-spaced infill, but they could also be resonance patterns caused by noisy stepper motors and over-tight belts. Since you have said that you have your belts nice and tight, I would suggest reducing the tension on them and see what happens. I know that some pundits say that it is not possible to have timing belts too tight, but I disagree with that. Belts should obviously be tight enough to eliminate free play in the system, and you may have a lot of latitude in the tensions that you can use, but if you make them drum-tight, they will transmit motor vibrations very effectively to the build plate (and onto your models).

If your stepper motors are noisy, you may want to invest in some vibration dampers. They can reduce noise and vibration significantly. Another solution would be to use more sophisticated stepper motor drivers, such as the TMC2100.

RepRapWiki: TMC2100


You need to do two or three things:

Print a holder or bracket for the probe, if your probe did not come with one, and looking at the eBay item listing, it doesn't appear to include a bracket. There are a number of designs out there, take a look at thingiverse, for example:

Installing the BLtouch on Anet A6 - This one includes a PDF guide.
Anet A6 Autolevel Sensor Support 18mm

Change the firmware - SkyNet 3D, Marlin is a good choice, or Anet's own
You may need to change the Z-stops

There is a step by step guide here, Autolevel for the A8 Anet 3D Printer. It is for the A8 but most, if not all, of the steps will apply to the A6


Will there be any negative effects on the print process if the printer is outside?

Unless you enclose the printer fully in some way or another, I see problems, even beyond just print quality:

humidity can and will end inside the printer by condensation and destroy the electronics, especially in the fall and winter months.
being accessible, children from the neighborhood might get their stubby fingers into the running machine or throw off the leveling.
being not locked in a box, people might decide to nick your printer.
If the printer is in the sun, the filament might age much more rapidly
Moisture can impact your filaments, making prints impossible with some filaments unless those are kept in a dry container.
Shifting temperatures along a day could lead to prints warping during printing, resulting in deformed prints.


Do the two loose pieces go where the fill shows up on the larger piece?  If so, you may have internal surfaces there that need deleting in your drawing so that they don't mess up your slice program.  Otherwise, the slice program may leave a gap in the gcode where you have no extrusion.
If you retract too much, it can cause the filament to jam in the hotend, but you wouldn't be getting all the mid-air extrusion, not connecting to anything.
We need more information to give you a more precise answer.  I suspect you have a settings or gcode/drawing issue rather than a hardware issue.


In the actual Marlin Firmware all supported printer boards are listed within the file "boards.h". This file contains the following entries for the RAMPS 1.4:

#define BOARD_RAMPS_13_EFB  33 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed)
#define BOARD_RAMPS_13_EEB  34 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed)
#define BOARD_RAMPS_13_EFF  35 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan)
#define BOARD_RAMPS_13_EEF  36 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan)

The most common version may be the variant . In this case you have to set the value as the following lines show.

#ifndef MOTHERBOARD
  #define MOTHERBOARD BOARD_RAMPS_13_EFB
#endif

Enable Display

#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

Ok, it's time to make the adjustments specific to your 3d printer. You might first check the setting for the amount of extruders at around line 58. Most 3d printer rookies may start with one extruder, so the default entry of '1' is quite sufficient.

// This defines the number of extruders

#define EXTRUDERS 1

At around line 70 you have to set up the thermistors connected to the RAMPS for the extruder and the heatbed. Depending on your hardware configuration you have to change the last value in the defines.

#define TEMP_SENSOR_0 -1
#define TEMP_SENSOR_1 -1
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 0

The define for TEMP_SENSOR_0 determins which thermistor type is assembled at the hotend of extruder 1. This termistor has to be connected to the first sensor input (see also wiring schema). The thermistor for the heatbed has to be connected to the second sensor input. The thermistor type is configured with the define line of 'TEMP_SENSOR_BED'. If you use a thermistor of the type EPCOS B57560G104F (100K, Beta = 4036), you write the value '1' into the matching define. In case you have a thermistor with 100k and Beta = 3950, you have to set the value '60' in the corresponding define. So the defines will look e.g.:

For EPCOS (Beta = 4036) on hotend and heatbed:

#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 -1
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1

For Beta = 3950 on hotend and heatbed:

#define TEMP_SENSOR_0 60
#define TEMP_SENSOR_1 -1
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 60


Trouble printing Poppy Robot with SpiderBot

Having a bit more experience since my comment post above, I can offer up a possible solution. If your printer is able to print ABS, it works great with HIPS as support material. I've been printing boatloads of ABS models. When support is needed, the HIPS supports will bond reasonably well to the ABS, but when cooled, flick off with a sharp pointed instrument such as a razor knife point.

As an additional reference, a good bond to the print bed is required for both ABS and HIPS and if your slicer allows support density adjustment, increase the support in that manner. My slicer (Simplify3D) would print an accordian type of support unless instructed otherwise. I set up for alternating 45° patterns making a denser but also more vertically rigid structure.

If you cannot print ABS, PLA and PVA as Ogre55 suggests is about your only option. I see from the 'net that the SpiderBot Pro supports ABS, which implies the basic version might not have a heated bed.


I don't understand the reasoning behind a first layer having a different offset from the following layers, but, You can manually add a re-definition of the current height after the first layer, suppose your first layer is 0.2 mm, you just need to tell the printer to move to a slightly higher next layer to redefine this as a different Z-offset.

From a G-code file find the start of the second layer:G0 F600 X141.541 Y109.467 Z0.37
Modify this to:G0 F600 X141.541 Y109.467 Z0.42
Now insert the following command:G92 X0.37

Now it is like you have changed the Z-offset.
The reason for not using M206 is that is applied onto current offsets, if you accidentally save setting to memory after printing, it stores this offset. You can use M206, but use it carefully. A re-definition of the Z level is never stored, the next G28 erases the effect, so does repowering the motors.


Yes... The issue with all 3d printing materials. Not just ABS, but worse with ABS is the fine air particulate and Ultra fine it creates during the 3d printing process. PLA is considered safer than ABS. But I fear people will use this as justification, it is like saying I only smoke one cig a day instead of two so I am safe and healthy. No it really should be taken seriously.

There are a number of scientific papers and articles proving that this is an issue. Specifically that 3d printers release ultra fine particles into the air. Which can damage the lungs over time. I would STRONGLY advise not using a 3d printer around children, or at least putting it in the garage where you will not contaminate your homes air supply.

I.E.

http://www.sciencedirect.com/science/article/pii/S1352231013005086
http://built-envi.com/portfolio/ultrafine-particle-emissions-from-3d-printers/
https://www.ncbi.nlm.nih.gov/pubmed/11139166
http://www.3ders.org/articles/20160201-new-study-shows-health-hazards-of-3d-printing-suggests-pla-could-be-your-safest-bet.html

Lot of these have some scary looking graphs. Note that I am being a bit sarcastic when I say "scary looking graphs" the take away is ABS has twice the Fine Partical emission as PLA. However should you be worried, is still up to debate. The idea is that FPE can maybe contribute to cancer or other illnesses. FPEs are thought to irritate the lungs.

These graphs are of the ultra fine particle emissions.

as you can see PLA is MUCH safer in this regard.

I cannot find the paper at the moment, but the recommendation is a full air cycle several times an hour. As someone that lives in a Cold state I personally just use PLA and am rolling the dice.

There is another SO where I cover my future plans for an air scrubber.

I will note that other materials such as Polycarbonate should just be plain avoided.

I also want to provide these links on WHY ultra fine particles are bad. In summary they really upset your lungs and are thought to cause lung cancer over time.

Wikipedia on Ultra fine particulates.
White paper on ultra fine particulates.


How do I calibrate the temperature of my hotend?

Unless you are using a calibrated temperature sensor, it is a question what the temperature will be.

Actually it doesn't really matter what the temperature exactly is, you just need to find the sweet spot for your filaments on your machine. With respect to reported temperatures by others, your settings may differ a little, but that does not matter.


There are many possible causes for printing defects, but the easiest one to eliminate is dirt. Always use a filament cleaner to prevent dirt from entering the extruder. There are plenty of designs available on Thingiverse. Always keep your nozzle clean. After pre-heating mine, I clean it (carefully) with a folded paper kitchen towel. It may also be worthwhile doing a "cold pull", if you suspect that you have dirt in your nozzle. Finally, you should check that filament is not leaking out between the nozzle and the heater block.


How to pause a print to insert something in a cavity using 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.


Is the weather a problem for MDF frames?

I want to add the following to the already direct and very good answer of @Dani Epstein. It does not answer your question, but hopefully may help many people who are reading the question when choosing between the two materials.

Acrylic is less stable and will probably wear off faster than a well-built MDF frame for a 3D printer! I will address the points separately.

An MDF frame has much(!) more mass than acrylic, which will reduce vibrations immediately. Almost more important, a box frame, as typical for the Prusa i3 for example, stabilizes itself intrinsically more by its 'redundant wall' design (don't beat me up over the wording here, I didn't find a better way to describe the property that results from the towers.)
Compare these two images taken from reprap wiki Prusa i3:

You will probably not find an acrylic frame with this design. Shear stress as produced by the moving carriages, as well as z-wobble from the rods should theoretically be much less.
The acrylic might not wear by 'natural causes' since it is not a biologic material as wood is, but it will wear much faster due to handling the material, maintenance and human errors. The material is very brittle. You can find lots of reports on the web where the frame cracked or broke during setup. Here is my favorite example from someone with a lot of experience (1:20-2:30): https://www.youtube.com/watch?v=wkkVk8c8XoU
Acrylic is a bad choice in terms of its mechanical properties: It is soft (I found low tensile strength as a number to compare in the given database), has lots of thermal expansion (5 times higher than stainless steel) and melts at 160 C (so beware of anything touching your hotend). Feel free to compare it to other materials here (no MDF or plywood in that database, though ;-) ): http://www.goodfellow.com/E/Polymethylmethacrylate.html

This altogether makes acrylic a very bad choice for a 3d printer frame material in my opinion. Choose MDF or plywood, you can make it look cool by painting it, too.


So the issues with the digital display values, was caused by the X-axis binding up and not advancing. I had to move the axis via the control panel in the positive direction and noticed once it got about half-way out, it wouldn't advance for like two or more steps.

On the control panel, it said I was 235 mm out from the home position, but in reality I was more around the midway point. When I would move it back to the home position the read-out still displayed that I was offset from the home position in the positive direction.

To fix it I tore it down and reconstructed it (made sure everything was plumb and level), I also flipped the belt in the opposite direction (teeth down, so that the stepper pulley grips the belt teeth).


Z-axis steppers and bed alignment problems

I assume you did everything according to the instructions but here is a checklist of what could be possibly wrong:

Friction - check if you can rotate/move parts without lot of resistance
Screws - check if screws on couplings are tight and they don't slide over a shaft or thread
Stepsticks - check if they are cooled properly and similar (as there are two of them)
Carriage nuts on threads - check if they do not slide out of their nests while [the x-axis] carriage goes up
Filament - check if filament unrolls without resistance which can eventually cause [the x-axis] carriage to hang.

IMO #2 and #3 are the most possible cause


Printrbot Simple + OctoPrint on PC not working

Before any axis can move the printer must be homed correctly (G28 command, or an equivalent home button, there are 2: an X/Y and a Z button). A correct printer profile must also be defined; this profile contains some bed geometry and speed data, these are some basic values that are easy to add through the wrench button and "printer profiles" menu item.

Note that Cura 15.04 is very old, more recent version with far more options and better stability can be downloaded, but won't work integrated in OctoPrint, instead you download the most recent version of Ultimaker Cura directly from Ultimaker.com slice your product and store the G-code file to later import this into OctoPrint.

Please take care in choosing an optimal power plan in Windows 10, if your computer goes to sleep during a print (or updates or crashes) your print is lost; using a Raspberry Pi is far more safe.


Marlin "Tune->Bed Z" vs "Tune->Babystep Z" vs Z Offset?

Tune -> Bed Z

http://marlinfw.org/docs/features/lcd_menu.html#tune

Per description in this table, this refers to the Mesh Bed Leveling process. It allows to modify all saved mesh z-offsets by the given amount.

Tune -> Babystep Z

http://marlinfw.org/docs/gcode/M290.html

This just instructs the motor to move the given amount, once, without changing any parameters.

Control -> Motion -> Z Offset

http://marlinfw.org/docs/gcode/M851.html

Here we are talking about the offset of a z probe (e.g. BL-Touch) from the nozzle.


Welcome to the fantastic, sometimes frustrating but most often glorious world of 3D printing David! :)

Your question is really very very broad, but here's my contribution to make your first steps a success.  First of all: I don't have experience with the Robo R2, but judging from the specs available online, I would say that you got a machine that take care of most of the troubles beginners encounter when starting out (e.g.: levelling the bed) and has a few features that allow you to print more reliably/with better quality (heated bed, enclosure, possibility for a second extruder).

Give a hug to whoever made the gift to you! ;)

I like to think to 3D printing as a process that involves 4 phases (well, normally several iteration of them as prototyping is a thing):

Designing (creating the mesh, i.e. the shape of the object you want to print)
Slicing (creating GCODE, i.e. the file with the step-by-step instructions for moving your printer nozzle in space, extruding the plastic, controlling temperatures and cooling, etc...)
Printing (the actual process of having your printer running that GCODE)
Post-processing (finishing the piece, by for example removing support material, sanding, vapor-smoothing the surface, painting, etc...)

Technology in the 3D printing world is moving so fast that printed information tends to get outdated quickly, and the Internet is often the best source of information.  So in the following bits I will mention the the source of information that I use[d] for myself, of which many are online rather than in print.

DESIGN

Broadly speaking, there are two kind of designs one can do: decorative or functional.  Decorative designs are those in which the final object will essentially sit still on a shelf or be handled very gently (e.g.: a model of the Tour Eiffel, a miniature for RPG gaming), functional designs are those in which the final part will have to bear a load or perform some sort of mechanical work (e.g.: a drone, a shelf bracket, a pipe adapter...).

Both designs need to take into consideration the physical limitations of FDM printers such as the fact that the nozzle is round and with a fixed diameter, or the fact that molten plastic needs to rest onto something, thus the need for support.

Additionally, functional design requires an understanding of the physical properties of 3D MFD printed parts (hint: they are anisotropic, so their properties differs along their axis).  If you are interested in functional designing a book that I can highly recommend is Functional Design for 3D Printing by Cliff Smyth.  It is concise, accessible and full of information you'll be using from your very first design.

In terms of tools, for decorative, organic forms, you will probably want to use a program like Blender, that manipulate meshes directly, while for functional designs will probably turn to CAD software, like for examaple FreeCAD that operate on a "model" and let you export the finished part as a mesh at the very end.

Both Blender and FreeCAD are free software (like in: "free speech") but commercial versions do exist as well (most notably from Autodesk).

Blender is professional grade software with a very steep learning curve and I would suggest to take an structured online course like this one about it, rather than trying to learn it the DIY way.

FreeCAD belongs to a category of CAD programmes that operate on a well defined, well understood, set of principles (so it works similarly to OnShape and Fusion360 for example) and it is much easier to learn.  In my experience CAD modelling is best learnt by understanding the very basic, and then just researching further information as you go, according to the needs of your project as CAD design is full of small specific operations that is useful to know only if you actually need them (e.g.: how to draw a screw thread, or to perform a loft).  I started out with this series of video tutorials by the late Roland Frank (a celebrated contributor to the FreeCAD community), but there are tons of other tutorial should you choose to go with a commercial product.

SLICING

Slicing is as much an art as it is science.  While the actual work of generating the GCODE is automated and requires just the click of a button, there are a myriad of settings that are mutually interdependent in their effect.  For example: filament temperature, movement speed, cooling fan, retraction and coasting all affect oozing, but each of them also affect other things (bridging, layer adhesion, curling, nominal overextrusion, etc...).

Also: settings differs for each filament material, each brand, and sometimes even different spools from the same material/brand.  Moreover, you may wish to tune them depending to what you are printing (maybe you are printing a finely detailed miniature and want to go slower to reduce vibration, or maybe you are printing a torsion bar and want to increase the temperature for increasing layer adhesion, for example...).

IMO the best way to understand how settings affect your print is playing around with calibration towers (example) and torture tests (example).

Calibration towers work by printing the same thing on top of each other but changing at each repetition a specific setting (like filament temperature, or extrusion multiplier).  You will then visually inspect the final piece and evaluate how the print quality changed relative to that parameter.

Torture tests work by putting in the same piece a number of features that are hard for the printer to print correctly (thin walls, bridges, overhangs, to name a few).

A specific model that is sort of gold standard as a basic test is the 3D benchy.  The good thing about it is that it comes with a full website that also tell you how you can evaluate the print.  However, the benchy - differently than torture tests - is not designed to let you discover the limits of your printer, it is more of a quality-control test.  If you can print a 3D benchy, you should be good to go for printing "regular" objects.

Also, at least in the two most common free-as-in-freedom slicers (Cura and slic3r Prusa Edition) each setting comes with some explanatory text while hovering on it, that helps a lot understanding what that setting does).

PRINTING

How much you can affect the actual printing process depends from how "open source" is your printer, and if it uses standard components or not.  Consumer-grade printers get often upgraded/modded to improve print quality or tweak them for a specific job/material.  Typical upgrades are extruder upgrades, stepper motor upgrades, vibration dampeners, different sensors, etc...

Each printer is unique, but normally you can find abundant information wherever the community of owners of a specific model gathers.

I would also advise to subscribe to some good youtube channel about 3D printing like Tom's or Makers Muse or Joel's, and to visit sites like All3dp regularly.  As I mentioned, 3D printing tech changes constantly, and it is good to keep tabs on new materials, new software, new components, etc...

POST-PROCESSING

This is entirely dependent from the material you used for the print, its size, and its intended use, but I wanted to mention this nonetheless as there are amazing things you can do with acetone on ABS, lot of elbow grease on PLA or the use of an airbrush...  so you know 3D printing does not end with the print! ;)

Hope this helps you at least a bit.  Again: welcome to the the 3D printing world! :)


Layman term explanation of the difference between voxel and point cloud

A point cloud is often derived by sampling.  Each point represents an observation.  Sometimes, a point cloud is turned into a surface by fitting triangles to the points in the form of an STL file.

A raster is a 2D grid of pixels.  It divides the area of an image into constant-sized little squares.  Each of these squares has a value.

A 3D raster is made of voxels.  It divides 3-space into constant-sized little cubes.  Each of these cubes has a value.

Pixels and voxels are rendering techniques.  A point cloud is a sampling technique.

The Wikipedia article, https://en.wikipedia.org/wiki/Voxel, is helpful.

In a real system the pixels may not be square or the voxels not strictly cubic, but in every system I've worked with, they do form a regular tiling of the plane for pixels, and fill 3d space for voxels.


Marlin error Rx_buffer not declared in scope

The line defining SERIAL_PORT in MarlinSerial.h should read:

#define SERIAL_PORT 0

To [mis-]quote this answer from RepRap:'rx_buffer' was not declared in this scope (the emphasis is mine):

#define SERIAL_PORT 4

  This is the serial port on the controller, not the serial port on your
  computer. 0 through 3 are valid options on a controller with a atmel
  2560.

  Unless you are doing something like serial over bluetooth or
  deliberately not using the USB port you should not change this from 0

The same error is reported on the Arduino forums, 'rx_buffer' was not declared in this scope:

  Have redone over 5 times and always getting " 'rx_buffer' was not
  declared in this scope ".

  Now I tried Factory marlin and same "
  'rx_buffer' was not declared in this scope " . Dont know what to do - I'm
  so lost.

  ...

#define SERIAL_PORT 4     //before was 0

  Nothing else


First move after Start gcode, to start position (but before printing) is way too fast

By way of comparison, here's what Cura writes as the header of a gcode file.  You may want to adjust some of the default parameters in your Cura settings.  (this header was same for both the default Prusa and the default Deltabot  printer settings)

;FLAVOR:Marlin
;TIME:67934
;Filament used: 22.2173m
;Layer height: 0.06
;Generated with Cura_SteamEngine 3.5.0
M140 S60
M105
M190 S60
M104 S200
M105
M109 S200
M82 ;absolute extrusion mode
G21 ;metric values
G90 ;absolute positioning
M82 ;set extruder to absolute mode
M107 ;start with the fan off
G28 X0 Y0 ;move X/Y to min endstops
G28 Z0 ;move Z to min endstops
G1 Z15.0 F9000 ;move the platform down 15mm
G92 E0 ;zero the extruded length
G1 F200 E3 ;extrude 3mm of feed stock
G92 E0 ;zero the extruded length again
G1 F9000
;Put printing message on LCD screen
M117 Printing...
G92 E0
G1 F1500 E-6.5


Full steps mode for Z axis stepper controller

Focussing on the questions at hand:

  Is it possible to use full steps?

This depends on your printer board. Many boards use dip switches to select the (micro) stepping mode of the stepper driver. E.g. a RUMBA board has dip switches located underneath the stepper driver boards (e.g. DRV8825 or A4988). Sometimes you also see jumper caps. The answer is both yes as is no as it depends on the board you are using.

  Does it improve accuracy if I use compatible layer height (like 0.04mm,
  0.08mm, 0.16mm, etc) for my printer with 0.04mm per full step on Z axis?

Increasing the number of microsteps results in reduced incremental torque (for full step this is 100%, for 16 micro steps this drops to about 10%; this implies that a micro step requested by the controller may not effectively lead to an actual step as it cannot overcome the torque to turn the shaft). So highly loaded steppers could result in positioning errors. Resolution increases but accuracy will actually suffer. Furthermore, Few, if any, stepper motors have a pure sinusoidal torque vs. shaft position and all have higher order harmonics that in fact distort the curve and affect accuracy. according to this source. On the other hand micro stepping makes rotation go smoother (major advantage, see source). Interesting literature (must read) is this test and this paper.

The answer to this question also depends on the situation; when you load the steppers very highly, using micro stepping may result in more inaccurate movement compared to full stepping. When you use the lead screws native resolution for your setup, only when the stepper is actually at the full step position, you would benefit as in this position it will not dwell to the next full step as it is already in the stable position.

As a side remark I've added the correct calculation of the native resolution of your lead screws. From your question I deduce that you have Tr8x8(p2) lead screws. "Tr" for trapezoidal thread, followed by the nominal diameter in mm. The digit after the "x" tells you how much the nut advances per revolution, this is called the lead of the screw. The value between the brackets "p2" denotes the pitch. This means that the screw has 8 (lead)/2 (pitch) = 4 starts. So with every revolution of the stepper (200 steps) the nut advances 8 mm which translates to 8/200 = 0.04 mm per step of 1.8°.


Welcome Fox_89 to the SE 3D Printing site.  Thank you for bringing your question, and I hope you contribute both questions and answers in the years ahead.

I understand that you've tried everything, so I have nothing new to suggest.

Never the less, I would suggest some possibilities, perhaps one of which you haven't yet tried:

Extrude hotter filament.  Increase the nozzle temperature.  My
printer (Pruse3D i3m3s) prints ABS at 255 degrees C.  Give the layers
a better chance to melt together.
Print slower, so that the layers have a longer time to melt together,
and they have a longer time to cool before the next layer reheats
them.
Use a cooling fan to bring the part to equilibrium more quickly.
Try a different filament.  Not all filaments have the same shrinkage.
Hatchbox has worked pretty well for me, but try another manufacturer.
Try another color, like transparent.  White can be a difficult color
because it must carry a high pigment load.  Black can carry less
pigment, and might be easier to print.  "Transparent" or "natural"
carries no pigment.
Check for anything that might increase the strain on the part at that
layer.  It could be a geometry change on the other side of the part,
since that changes the thermal profile of the whole layer.
Must it be ABS?  PETG has a higher working temperature than PLA, but will print
differently than ABS.


3D model with errors when exporting to Cura

In blender, you can occasionally have faces with flipped normals. Those areas then are "inside out". Such areas are just ignored in Cura. Fixing the files is as simple as recalculating the normals, but you'd best use a program like NetFabb for for that.


What is TRP and how does it work?

Thermal runaway protection is basically self-explaining; it is protection against the temperature getting out of control. Essentially, the firmware checks whether the measured output of the thermistor (What is a thermistor? A thermistor is basically a temperature sensor; it is an electrical component (more specific: a resistor) that has a large reduction of its resistance when heated; it is frequently used for measurement and control as you can link the resistance to the temperature via a table or a curve) is within an expected range for a certain target value within a certain time frame when heating the hotend or the heated bed.

E.g. When you request the hotend or heated bed to a certain temperature, the heater elements are being scheduled/switched on to increase the temperature. If the temperature increase as a result of scheduling the hotend or heated bed are not met in time (settings in the firmware configuration), the printer will halt and heating of the heater elements will stop. The printer needs to be reset after such a failure.

What triggers TRP?

Common problems that trigger the thermal runaway protection are:

a faulty thermistor,
an incorrectly placed thermistor (e.g. not making good enough contact with the heater block),

including falling out

a loose heater cartridge,

including falling out

faulty connectors,
faulty or partially broken wires,
basically, anything that interrupts either heating or the measurement of the signal.

Why should TRP be active?

Thermal runaway protection is mainly meant to prevent fire hazards by stopping the heater cartridge when it might have fallen out of the heater block and is trying to set the whole surroundings on fire.

To illustrate the point: This happens if Thermal Runaway Protection is disabled, and the associated story. Luckily this one did not result in a loss of life and home, but it could have - and the owner was able to do some forensic examination on what caused the fire.

How to activate TRP in Marlin firmware?

Please make sure that you have the configuration lines in the Thermal Runaway Protection section (466-485) of your Configuration.h file uncommented (no // in front of the lines starting with #define THERMAL_...).

//===========================================================================
//======================== Thermal Runaway Protection =======================
//===========================================================================

/**
 * Thermal Protection provides additional protection to your printer from damage
 * and fire. Marlin always includes safe min and max temperature ranges which
 * protect against a broken or disconnected thermistor wire.
 *
 * The issue: If a thermistor falls out, it will report the much lower
 * temperature of the air in the room, and the the firmware will keep
 * the heater on.
 *
 * If you get "Thermal Runaway" or "Heating failed" errors the
 * details can be tuned in Configuration_adv.h
 */

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

Note that Marlin 2.x has an additional protection for the heating chamber:

#define THERMAL_PROTECTION_CHAMBER // Enable thermal protection for the heated chamber

This should generally be enough to enable TRP on your printer, fine tuning can be done by changing the time constant and the temperature increase in the file Configuration_adv.h in the section:

//===========================================================================
//=============================Thermal Settings  ============================
//===========================================================================

However, it is advised to not change these values unless you are absolutely certain; e.g. if your heating cartridge is not powerful enough and you are getting printer halts. When getting false-positive printer halts according to the Marlin firmware you could:

* If you get false positives for "Thermal Runaway", increase
* THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD

How to test if TRP is active on my printer?

To test if thermal runaway protection is enabled on your printer, you can disconnect the heater element of the hotend or the heated bed while printing a print or sending temperature commands to the printer over USB using a terminal to send commands directly to the printer. You can disconnect the heater element while the printer is cold (before start) and also when the heater element is heating up. No heating of the nozzle will take place, so after the period defined by the time constant set in the firmware, the printer will halt if thermal runaway protection is enabled. Power down the machine and reconnect the wires, it is not advised to put them back in on a running machine, as one might touch the open wires; when the printer halted, you should power down or reset the printer anyways. If the printer did not halt, power it down as quickly as possible - TRP is disabled.

Further Considerations

Besides activating thermal runaway protection, it is always a good idea to install a smoke detector and a fire extinguisher in the surroundings of the 3D printer: the smoke detector over it, the extinguisher within arms reach of the door leading to the room.


I was told to not even bother using the white filament which came with the Ender 5 as it was very low quality. I used an orange filament from Hatchbox and, once I have learned to adjust my settings (I found it works better at 210-215 °C), it seems to be great.


Looking for information on modifying Boots Industries 3D printers

Contact Brian or Lykle.  We all have Boots Industries printers and have heavily modified it to belt drive and magnetic effectors.  The print quality has improved drastically.  The old Boots support group has since moved on to Slack and we are in constant contact everyday.

https://biv25.slack.com/messages/@slackbot/

https://www.thingiverse.com/thing:1843195


How to set the fully dynamic plotting area?

If the problem of "dynamic area", or even "how to avoid missing the surface and boundaries" could be translated to "where to start well-defined job" - then it sounds to me like common task, with regards to philosophy of CNC machines. (Ok, until the surface is not moving around.)
Pronterface and GRBL work in Cartesain system. GRBL does not support mesh probing. So you must think about relatively flat, plane surfaces.
In my opinion, you need to fulfill following tasks to achieve the goal:

Define boundaries. Hard and soft boundaries of device are supported by GRBL. You should setup them for overall safety.
Plan the job. Recognize ranges of planned plot or print.
Secure the surface. It must be appropriately stabilized. If you want to draw, the pen mount with spring will equalize variations of the surface (hand, finger, egg). 3D printing is sensitive to roughness and obliquity, we add raft/supports to overcome these - could be of use, until it doesn't mean missing your goal? (Don't print with hot filaments on fingers.)
Establish point of reference. You need to home your plotting or printing head somewhere in space in relation to the driving hardware. This is needed for any further actions. I envsion homing Z to the top of the frame, rather then against the target.
Detect surface. Camera will help with horizontal borders (X,Y). You also need to measure the Z distance. The Z probe could be mechanical (then needs vertical movement) or some distance detector (like VL53L0X ?).
Validate fitting. Ensure that the surface will accommodate ranges of planned job. This is actually the key point in my opinion. You need to know scope at the first place.
Program. I see following options to pick and mix the final solution from them:

G-code is generated prior to the whole procedure. You need to synchronize the starting point between the generated file and the real job range. Homing is done "manually" prior to executing the file. After surface is detected, the real starting point could be calculated and applied.
G-code is generated after surface is detected. Job starts with homing, and first moves go from device's zero (home position) to selected starting point on the surface. All consecutive moves are planned within boundaries over the surface. So there is no risk to work outside the safe range.
G-code is generated with relative positioning (incremental distance mode), having G91 in preamble. Then you just travel to the starting point and then run the commands from file.
G-code is generated with absolute positioning (absolute distance mode). To run the job, you need to change coordinate system using commands like G10, G54-G59.
For printing, if there is a needed to match some flat shape to rought surface, then you may need to dynamically generate some supports/raft below the bottom of the printed part.


There are a couple of points to consider with this question. First, you will need to make sure the PSU is correctly adjusted to the float charge voltage of the 12V battery. SLA should be safe to float charge, but over voltage will damage it over time.

One alternative solution (since powering the heaters will limit your run time) is to detect power failure, cut the heaters immediately, and save state to EEPROM in the firmware. This is the approach taken in the latest Prusa printers, and is a bit more complex, but might turn out to be more reliable.

If the problem you are solving really is brown-outs, then a simpler solution might be to isolate the high current and control sides of the circuit. The MCU will be run from a regulated 5V or 3V3, so a large capacitor (with diode isolation) on that regulator's input would do the trick.


How to easily get rid of rafts and support structures?

The best way to get rid of them is to change the design of the printed object to make them unnecessary.

Instead of printing the one part with support material, the piece can be split into two or more parts which can be printed without support material and assembled after the printing.

Given that this is not always fully possible, a convenient way to get rid of additional structures is to use a different fillament for them that can be removed easily. This list of printing materials includes Polyvinyl Acetate (PVA), which is water soluble. You can wash the support material away given that your actual printign material is not water soluble. Here's a quote from the website (emphasize mine):

  PVA (Polyvinyl Acetate) filament prints translucent with a slightly yellow tint and is primarily used as a 3D printing support material because it is water-soluble, meaning that it will dissolve when exposed to water (and so MUST be kept dry prior to use). PVA is most often used with 3D printers capable of dual extrusion: one extruder printing a primary material (such as ABS or PLA) and the other printing this dissolvable filament to provide support for overhanging features. PVA 3D printer filament is available in 1.75mm and 3mm.


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

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

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

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

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

[edit]

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

[edit2]

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

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


Applying 12v to a 24v heater cartridge won't damage anything, but you may have severe issues reaching and maintaining your target temp. A standard E3D heater cartridge is 40w. When you run a 24v cartridge on 12v, you only get 10w of heater power. Here are some rough estimates on where your hot block heat goes:

Uninsulated hot block air losses: ~20w depending on airflow
Insulated hot block air losses: ~5w depending on airflow
Filament melt power at typical print speeds: 0.3-3w depending on filament and print speed
Heat conducted up the heat break: 1-3w maybe, hard to quantify

I've never heard of anyone using less than about 16w to print. (Two 8w power resistors.) 20w is the lowest vaguely normal hot end power. I think you'll struggle to print.


Sorted. Repetier Server was hijacking my com port. Uninstalled it and Repetier host worked fine. As I have no desire to monitor or control prints remotely I have no use for the server software.

Hope that helps others.


Cura 4.3.0 does not pause on Renkforce RF100 V2.2

G-code M0 is not supported!1)
According to the original firmware of the RF100, the firmware is based on Marlin Firmware. From the original sources you can find that in order for M0 (or M1 which is a deprecated alias for M0) to work, you need an ULTRA_LCD supported  LCD panel:

 * "M" Codes
 *
 * M0   - Unconditional stop - Wait for user to press a button on the LCD (Only if ULTRA_LCD is enabled)

However, your printer does not support such an LCD panel, from the configuration.h can be read that the constant is disabled (// means that the line is treated as a comment and as such ignored by the compiler):
//#define ULTRA_LCD  //general LCD support, also 16x2

Therefore, these scripts will not work for your printer!
(Not your printer is running a very old version of Marlin; version 1.0.3)

Solution:
It is possible to manually change the G-code for a (in this case) Marlin based firmware2) (so no adding of a pause by Cura) by inserting a few lines to:

First set relative movement (G91), then retract a certain amount of filament (G1 E-2 F500) or alternatively use G10 using predefined retraction definitions in M207;
Insert a dwell period by inserting the G-code G4 (plus a time to wait), e.g. G4 P2000 to dwell for 2000 milliseconds (alternatively, G4 S2 will also pause for 2 seconds), please adjust the value to an adequate one in which you can insert the object;
First, unretract filament (G1 E2 F500) and then put the printer back in absolute movement (G90 or alternatively use G11 using predefined retraction definitions in M207.

1) By your firmware version/implementation
2) Note that certain G-codes only work for certain firmwares! Fortunately, the original firmware of the RF100 is based on Marlin Firmware (unless it has been changed form the factory default.)


Can I use a pin header in a breadboard to wire up the z-axis motors in parallel?

You could absolutely do that.

Ultimately, the amount of current you can push through a wire/breadboard/connector depends on its resistance: for a given current I, a component with a resistance of R will have a voltage drop of V = I x R across it, resulting in a power dissipation of I^2 x R watts.

I measured the resistance of breadboard traces to be around 7 Ohm/meter (measurement subject to some error, but this is the value I got testing over a 300mm stretch at 0.2A). This is quite high, the wires that came with your stepper motor are probably in the range of 0.1 Ohm/meter. If you had a stepper running at 2A, you'd waste 28W of power in a meter of breadboard rails.

Thankfully you're only going to be dealing with a very short stretch of breadboard (wasting "only" 0.8W for 4 wires over a 3 pin stretch each). It would probably be OK, but it's not ideal. Make sure the connection is good (and keep an eye on it initially) as a bad connection can result in significantly higher resistance and that might generate enough to melt your breadboard and short things out.

A better way of doing this would be to simply solder the wires together, or (if you don't want to permanently connect the steppers) use the pin headers you mentioned, and solder them together directly (for example on a piece of perfboard or perhaps just link them up directly with a few pieces of thick wire).


What kind of colors should I use to paint my PLA prints?

Fortunately, PLA accepts many types of paints, most common of them is acrylic paint.
Acrylic is water-soluble until it dries, then it becomes water-resistant.

Depending on the goal you plan to achieve, different types of paints can be used - oil paint, already mentioned acrylic, enamels or lacquers.

Keeping in mind that manufacturers may present different types of plastic under the same 'PLA' brand, it is always good idea to try selected type of paint on a print sample to ensure that it sticks well enough and not melts the print too much at the same time.


Small structures are deformed after switching to Duet Wifi

The OP found the solution and shared this in comments but has not written a proper answer. The OP found:

  To complete this, the issue was related to the part cooling fan not spinning correctly. After replacing it the problem was gone.


Thick wall or solid part of an otherwise medium-fill part

I'd suggest creating a hollow tube with ~1 to 1.5 mm walls. Then to increase the strength design your own internal structure rather than relying on the slicer to fill the part. This takes longer to model but you can design the strength of your part much better.

Something like this

If you were to then print this with 60 % infill you'll have the strength and also use less material. If you happen to know specifically how your part would be loaded, you could then change the dimensions on that internal cross structure to take the loads better.


From the pictures can be seen that you have good lead screws as there is no cyclic anomaly/wobble present at the side. It appears as though the lines at the sides of the print are more or less random X/Y positional inaccurate.

These lines can be caused by various reasons. From what is read you tried to improve the mechanical system by upgrading the hardware. It could still be the case that there is still some backlash or play left in the system (e.g. I had once had too much tolerance on the holes of the linear shafts in the printed X-Z mounts causing similar problems). Vibration should be looked into also, e.g. do you have a binding bearing or a large mass on the printer that interacts with the carriage movement like a spool holder on top of your frame. Or maybe the micro-stepping does not work optimally, so check the stepper driver currents.

If it is no mechanical issue, it could be that you are facing inconsistent extrusion caused by variation in filament thickness or gear slipping or too much tension on the filament by friction in unspooling. Or else a hotend temperature variation. Maybe insulation on the hotend helps.


Actually the sensor reads the bed correctly in terms of shape, not in actual reproducible distance.
Plotting the grids:

Results in pretty much the same shapes, so, when correcting for the maximum displacement and plotting all results in a single graph gives:

So the sensor does seem to produce reproducible bed geometry, but not the actual values.
Misinterpreting your initial question I assumed a default Anet sensor, this  official ROKO SN04-N sensor is reported to not be very accurate and has a maximum hysteresis of 10 % error of the detecting distance, which is 10 % of 5 mm (so ± 0.5 mm). The overall maximum measurement is in grid 4 with a value of 0.949 mm and in grid 1 with a value of 0.124 mm;  0.949 mm - 0.124 mm = 0.825 mm is well within the ± 0.5 mm. This seems odd as the hysteresis should be in play on all measurements as the probe goes up and down. I've used this sensor myself, but replaced it for a more reliable sensor like the LJ18A3-8-Z/BX.
Now that it is clear that an accurate sensor is being used, there might be some play/backlash present in your printer. You should check the probe mount and the Z-axis.


What is causing 'droplets' on first layer?

Mine is more of an educated guess than a definitive diagnosis, but it looks to me like if your printer may be overextruding (it's difficult to say with certainty with this particular picture, but your top layers too do not look as good as they should).

I wonder if you have calibrated your extrusion for this particular spool of filament?  This is something that you should do for each and every new spool of filament, regardless of whether you have already used the same brand and material, as different batches and colours may differ slightly in diameter or hardness, and both factors can lead to a different overall flow out of your nozzle (I just checked eSun website, and they state "Accuracy:1.7-1.8mm", and 6% variance is quite a lot).

Possibly unrelated, but 211+°C is also quite on the high end of the correct temperature for printing PLA (if that is what you are using).  Still in the range recommended by the manufacturer - so it should be ok - but you may wish to try bringing it down a notch (205°C perhaps?).


Only generate supports between object and bed (for a brain model)

Within Slic3r, there are settings for support, which can be enabled to create support only from the build plate. This would still generate supports under the brain, but not within the hollow sections.


Does filament have to be stored in an airtight environment?

It makes a difference where I live, and I'm not in a particularly humid climate (California).  When printing with wet filament, you'll sometimes hear it popping and see steam coming out of the extruder (it's usually only this extreme with nylon).  With most other filaments, when they're wet, the extruded filament will have small bubbles in it and the surface finish of the parts will be rougher, with breaks in the layer lines.  It can also lead to more oozing and stringing.  Air print a few centimeters of filament and look at it closely to see if there's any bubbles, if not, it's probably dry enough.  Whether the filament absorbs enough water to be noticeable in a few hours, in a day, or in a week depends a lot on the filament (and I assume the humidity too).  I'm mostly noticed problems with nylon, ABS, and NinjaFlex, less with PLA and PETG (though I avoid leaving any filament out for more than a day).

If you're not seeing any difference between, then I wouldn't worry about it.  Storing filament dry is a hassle.


Poor adhesion on new layer - Monoprice mini select

You could try a higher bed temp, but also check to make sure bed is levelled all round as this can sometimes cause this to happen


Can a dual extruder printer print with multiple filament types?

Yes and No
Yes, if you have two full hotends, you can easily print with two filament types.
Yes, if you have one hotend and both filaments melt at a very similar temperature or are the same polymer, then you can use a Prusa MMU style or splicing machine.
No, if you have only one hotend and the two materials are very dissimilar in their print temperatures (PLA with 200 °C and ABS with 235 °C), then you can't use a MMU/splicing style printing. This does preclude PLA and PVA from the same nozzle: PVA needs about 230 °C according to my data.


Using a MakerBot Replicator 1 dual (or clone like FlashForge Creator) with Cura

Edit:  After looking at GPX more I'm not sure what you are doing?  Are you trying to slice something in Cura and use GPX to make the X3G file or use the starting g-code from Cura in Makerware?  The code you posted above is used in Cura to generate the g-code and it appears you should be giving GPX the g-code file made by Cura.

You didn't specify which error you are getting or where but if I had to guess it's from the information in the curly braces. Everything in curly braces "{}" is a variable in the slicer used to generate the g-code.

All the information below is useless to the printer and I would start by removing it to see if you still get an error.

; Sliced at: {day} {date} {time}
; Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
; Print time: {print_time}
; Filament used: {filament_amount}m {filament_weight}g
; Filament cost: {filament_cost}

If you still have an issue after removing that then you could remove {print_bed_temperature} and {print_temperature} and hardcode those values to something to see if the process completes.

If it's successful at that point then look at a different starting g-code and find those variable names and replace them.


First of all a caveat:
Leveling an FDM printer
...is done differently than an SLA/DLP printer
When calibrating an FDM printer, you align the bed with the X and Y axis, using a paper, metal shim or another tool (such as a feeler gauge) to make sure the plane that the nozzle moves in is parallel to the bed as much as possible. The paper, shim and gauge all serve in making sure that the nozzle does not push into the bed on the move and to be an easily measurable system. You need to do several measurements and repeat the process till the bed is level. This can take quite some time with paper or shims, which is why I use a feeler gauge in the micrometer area.
Leveling an SLA/DLP printer
when leveling an SLA/DLP (aka Resin) printer, you also want to align the bed, but you want to align it parallel to the screen. The process is rather simple: mount the bed and loosen the retention mechanism, have the printer move down and press the bed against the screen surface. Some printers need to have the (preferably empty and clean) vat installed, others need you to remove it. Tighten the retention mechanism. Move the bed up, you are leveled. Only now comes the resin (and vat!) back. Some printers have their leveling mechanism separated from the mounting screw - that allows removing the bed for taking off the part and keep the leveling intact.
In the case of the Creality ld-002r there's a video Tutorial, the alignment screws are on the side of the carriage. Remove your resin vat before leveling. Loosen only those side screw, keep the top one fast!
The reason why I suggest to level against an empty vat is to make sure that on the one hand the resin doesn't go bad (it should be exposed to as little light as possible), you are exposed to the least resin fumes as possible and to make sure that no pieces are inside the vat when your printer firmly presses the bed against the screen - it could damage the screen or surface would there be chunks of former prints left in the vat! Also, you don't want to contaminate your tools with resin, which means you want to work on the fasteners with no resin in the vat.


No, GEL-LAY should not be kept moist to stay flexible. It is made from TPE and filled with small PVA particles. It is advised to print less than normal amount of walls and infill so that the PVA can be rinsed out more easily.

If you look at the way the manufacturer rinses the material, you frequently see ultrasonic baths that improve the dissolving of the PVA. Once the PVA is removed, TPE is all that it left, which is elastic. If your print is still hard after drying it means that not all the PVA has dissolved yet, once dry it will become gluey/sticky again like PVA, hence the cardboard structure.


In my experience, direct printing of chocolate is tedious because:

It has to be around 88 C to melt; and
It doesn't solidify very quickly at normal room temperature.

Unless you can print in a chilled environment (freezer is better than refrigerator), you will likely wind up printing a chocolate puddle. Even then, you have to heat not only the reservoir but also the entire nozzle (or it may solidify in the nozzle).
Also, some chocolates have issues if they freeze or become overheated, so it's a very tight tolerance with the temperatures.


Simultaneous heating of extruder and bed at start of print

This can be achieved with start G-code adaptations, this requires no software changes. Cura, and most slicers, have the ability to use placeholders (basically variables or maybe better: constants). These placeholders are substituted with the correct value upon slicing.
To sequentially heat the bed and hotend you would need to add the following into your start G-code:

M117 Heating bed 1st...
M190 S{material_bed_temperature_layer_0}
M117 Heating core 1st...
M109 S{material_print_temperature_layer_0}

For simultaneous heating you need to add:

M140 S{material_bed_temperature_layer_0}     ; set bed temperature to e.g. 55 °C and continue
M104 S{material_print_temperature_layer_0}   ; set hot end temperature to e.g. 210 °C and continue
M190 S{material_bed_temperature_layer_0}     ; wait for bed temperature to reach e.g. 55 °C
M109 S{material_print_temperature_layer_0}   ; wait for hot end temperature to reach e.g. 210 °C

Note that Cura is very limited in using placeholders. E.g. Slic3r allows for arithmetic using the placeholders. The following example shows heating the bed first to the bed first layer temperature minus 10 degrees Celsius; then the hotend starts heating and heatbed starts further heating up to the final temperature. For my machine this results in the bed and hotend being at final temperature at the same time; so no time is wasted and printing can start.

M117 Heating bed...
M190 S{[first_layer_bed_temperature]-10}
M140 S[first_layer_bed_temperature]
M117 Heating core...
M109 S[first_layer_temperature_0]
M190 S[first_layer_bed_temperature]


How does Prusa3D firmware respond to an open or shorted thermistor during a print?

This sounds like a problem I had with my hotend cooling fan a couple years back. To answer your question, from what I'm reading, the Prusa3D firmware detects thermal runaway if the hotend temperature drops for more than 45 seconds, it detects an open-circuit by reading 16 °C or less (MINTEMP error), and detects a short by reading 310 °C or higher (MAXTEMP error).

Couple questions that might help better troubleshoot the root of the problem:

have you measured the thermistor's resistance while cold or hot?
have you made sure your hotend cooling fan is at an appropriate speed while heated?
have you made sure your print cooling fan duct isn't pointed at the hotend block due to being jostled?

You might find that there are some fairly simple solutions to a handful of overheat problems. I bought a cheap knockoff all-metal heatbreak and immediately ran into problems, but solved them by printing a better heatsink shroud and upgrading to a 40 mm fan. If you've upgraded to an all-metal hotend, you might run into issues with PLA specifically if you're not printing enough material fast enough, as PLA is somewhat sensitive to heat creep through the filament itself in the throat of the hotend.