Slicer that exports vectors or pics for every slice For a large scale project, I need a slicer which gives me the slices as image (BMP or vector).
I have a 3d model and want to assemble it manually using large printouts on  cardboard. For this I need my 3d model somehow sliced into 2mm layers, get a silhouette of the outline for every layer  and print it in cardboard. Later all cardboard layer will be cutted manually and glued  in the right order.

Does somebody know a slicer, which gives me as output images for every slice?
Or any different idea how to geht my large cardboard 3d model?

Your approach is one of many and you may find that Slic3r will do as you require.

There's a direct reference to generating SVG files (vector) at this link:
http://manual.slic3r.org/advanced/svg-output

You may have to create a printer profile based on irrational figures when compared to conventional 3d printers. Your 2mm "layer height" should be matched in the printer settings to an appropriate nozzle diameter for the desired result.

You may find also that Simplify3d will create such files, but it's not a free program.

An alternative to 3d printer slicing software would be to use OpenSCAD to import your model (or create it directly in code) and use the Projection command to generate the individual layers. I've done this and found it works well, but the process to learning the necessary code was time consuming, as I'm not a programmer.

You would also want to incorporate some form of registration in your model, cylindrical holes or external tabs to enable you to properly align each cardboard layer.

If you have a makerspace nearby or know someone with a suitably sized laser cutter, you may also save some labor cutting each panel, as the laser will accept the vector files easily.


Is "CoreXE" a thing, or is there a reason it's not? Thinking about different types of extruder designs, and especially remote direct drive, I wondered if anyone's ever made a cartesian bed slinger printer (Ender 3 style) where a direct drive extruder on top of the X carriage is driven by a stationary E motor at the end of the gantry via a belt. This would of course turn the extruder hob whenever there's motion along the X axis, so the X and E motors would have to be synchronized, with effective extrusion being the difference of the X and E motor motions (thus my allusion to CoreXY in the name). Are there reasons not to do this, aside from needing an over-engineered belt assembly with closed loop belt? It seems like you could get whatever reduction you need just with an appropriate belt pulley, and no need for a gearbox on top of the hotend to get the necessary torque to the extruder hob.
Of course as described this only makes sense for bed slinger printers, since if you have to move the gantry in the Y direction, you have the motor mass moving just like a normal direct drive. Of course it might be extensible to "CoreXYE" with an appropriate belt layout.

Wow, Kevin O'Connor (of Klipper) just pointed me to a real CoreXYE design by Vlad Strateniuk called REXY, with video available:

There's an open Klipper issue about supporting it and apparently Marlin was already adapted to run on it.


Brass rails, bunting bearings ok for x,y axes? new to 3D printers and to this community :)

Would a 1/4" brass rod with bronze bunting bearings for sliders and SAE 30 oil suffice for X and Y axes with moving extruder instead of print surface?

I'm gathering cheap/scavenged materials for a first time build, as a learning experience, and it doesn't need to work very long.

I just have no idea yet how heavy the extruders are, generally. I'm thinking of threading the rod so I can pull it tight for straightness under load.

Extruders tend to be quite light. An E3Dv6 complete with fan, shroud and wires is under 100g. Unless you use a Bowden extruder, you also have to add ~300g for a stepper motor. In any case, it will be quite light.

Sintered bronze bushings can definitely be used in a 3D printer; they're used in the (quite popular) Ultimaker 3D printers. I can't tell whether your particular bushings will work well, but I think the most important consideration is that there isn't too much play between the rod and bushing (but I'm assuming you took care of that). 3D printers don't place high loads onto the motion system.

"Proper" LMxUU bearings aren't very expensive either (reasonable ones can be had for less than $2) so if the bushings don't work out, you could always try those.


Creality Ender 3 X axis homing issue I bought an Ender 3 recently. Auto-home is on the right front moving away from the end stop. I did reverse the wiring of the X axis motor, it did not work. I had Marlin 2.x uploaded, it didn't work too.

Marlin 2.x:

Configuration.h
Configuration_adv.h

The print starts off with a boundary line in the middle and goes off the bed on the right corner to print. Y and Z axes are fine. X axis seems to be bumping into the right front, every time while homing. I had tweaked little bit of Marlin, but I'm a beginner and I don't understand it completely.

I'm using Cura, printer settings, max X=235, max Y=235, max Z=250, origin at the center: unchecked.

This might help...

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

#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 250

#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0

(left this after so many trails)

In Pronterface the mid point X117.5 is at the middle right corner.

I'm thinking the printer is behaving like the origin(0,0) is on the right front, for X at least and it has nothing to do with the slicer.

It's about centering the prints, but it doesn't print on the bed mostly.

Start G-code:

; Ender 3 Custom Start G-code G92 E0
; Reset Extruder G28
; Home all axes G1 Z2.0 F3000
; Move Z Axis up little to prevent scratching of Heat Bed
G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position
G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line
G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little
G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line
G92 E0 ; Reset Extruder
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish

End G-code:

G91 ;Relative positioning
G1 E-2 F2700 ;Retract a bit
G1 E-2 Z0.2 F2400 ;Retract and raise Z
G1 X5 Y5 F3000 ;Wipe out
G1 Z10 ;Raise Z more
G90 ;Absolute positionning
G1 X0 Y{machine_depth} ;Present print
M106 S0 ;Turn-off fan
M104 S0 ;Turn-off hotend
M140 S0 ;Turn-off bed
M84 X Y E ;Disable all steppers but Z

The issues you are facing can be caused typically by a defective X-axis endstop, an inverted logic of the X-axis endstop or a defective printer controller board.

When the X-axis endstop is reporting being triggered, it will not move. After "homing" it will only go to the right of the "home position".

There a couple of things to troubleshoot the X-axis endstop working:

Command an M119 command over a printer console or connect your printer over USB to a printer software application like PronterFace, OctoPrint, Repetier-Host, etc. and look at the reported endstop triggers; these should be triggered when the endstops are pressed. Issue the M119 when you press the X endstop manually, if it reports "open" for X you need to invert the logic. If still triggered, the endstop is broken.
Swap the X-endstop for a any other endstop (Y or Z); then you can also check if the printer board is broken!

If it is the case to invert the polarity of the endstop, in the Marlin firmware Configuration.h, look up:

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.

Change the boolean value of the endstop you'd like to invert.


Ender 3 needs Power Supply AND USB to work I installed a BLTouch on my Ender 3 following this video: https://www.youtube.com/watch?v=sUlqrSq6LeY.

What I noticed too late was that when installing the BLTouch, I swapped the brown and red wires followed by connecting it to the mainboard.

Then I realized that the printer wouldn't turn on. After reading some of the comments, I swapped back the wire and I could see the BLTouch do its self-test.

However, it seems that I need to plug into the USB before the LCD + motors can work.

So is my mainboard fried? Or how should I fix it?

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


First layer eventually sticks to the hotend and tears I am at my wits end with this problem. I start a print and the skirt goes down fine, then the outline of the parts go down fine (usually) and then when it goes to fill in the first layer, it will always get stuck to the hotend at some point and rip apart the layer.

Any ideas on how to solve this?

Printing PLA at 210°C;
First layer temp is 225°C;
Bed temp at 60°C;
1.75 mm filament, and;
0.4 mm nozzle.

Maker Select V2.1, using Cura to slice.

Step Zero: is always to check/adjust the bed level - if the height over the bed varies while putting down the first layer, it's hard to ever get first layer settings that work.

Step One: is to adjust your first layer settings - height, temperature, extrusion width until you find a set that work for your setup (knowing that they may change somewhat when you change filament.) Some folks find more success with thin first layers, others with a thicker first layer to pump more plastic, still others use the same layer height but increase the width to pump more plastic, and others combine these approaches. Increasing the temperature is common, though in my case I found that the "usual" +5°C was not enough for the present setup.

You can change one setting at a time and have an idea of what works better or worse in each case, or you can change lots of settings and hope you get lucky. I prefer the tedious approach, it's less maddening.

Are you using any surface treatment on the bed? A bit of gluestick or hairspray may help you stick.


I can set the voltage and current of the TMC2130 driver manually. But, in which cases some of the components could burn up? I need to know if something will burn up beforehand I plug all the circuits:

Ramps 1.6+
Arduino Mega 2560
PSU 12 V, 15 A
2 TMC2130 V3.0 Stepper motor driver
2 Stepper motors 17hs3401

Driver Potentiometer

The driver has a potentiometer to change the voltage that is giving to the motors. Range of Vref values:

Default: 1 V (±0.2)
MAX: 2.4 V
MIN: 0 V

As one person answered me in another question, I would need 3.2 V to make the motor work well (2. Ω * 1.3 A = 3.2 V). As the driver just can offer 2 A I assume that the speed will be lower and the driver will be warmer because the motor will drain more current.

Marlin Current Configuration

There is a file in the Marlin firmware (Configuration_adv.h) where I can set the current that the driver is going to give to the motors. I do this to calculate the current in the motor XCURRENT = 1300 mA x sqrt(2) = 1838.5 mA and set the value in the file

    #if AXIS_IS_TMC(X)
        #define X_CURRENT       1838.5      // (mA) RMS current. Multiply by 1.414 for peak current. Default 800
        #define X_CURRENT_HOME  X_CURRENT   // (mA) RMS current for sensorless homing
        #define X_MICROSTEPS    16          // 0..256
        #define X_RSENSE        0.11
        #define X_CHAIN_POS     -1          // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
    #endif

Possible problems

What I am going to do is to set the drivers potentiometer to the maximum and check what happens. And I will also set the current in the Marlin to 1838.5mA

As the drivers have less voltage to give to the motors, are my drivers going to burn because they will have to give more current for a long period of time? Or will the stepper motors burn because they won't get enough current or voltage?

I also found some other possible problems in this other answer

  If the current is too high, you lose the linearity of micro-stepping. If the highest current exceeds the maximum, then the highest current micro-stepping positions will collapse on each other.

  If you are within the specs of the motors, there are no motor-related problems caused by higher currents.

  But other problems can be caused by increasing the current. The current must be within the capacity of the motor drivers and their heat sink. If the drivers overheat, many will simply shut off, causing the motors to not move when they should, which will appear as misalignment on X, Y, or Y.

This other person also told me

  you set the power level for the TCM2130 to more than 50 % then it will overheat. However, it may only do so when running at low speed. I doubt it will overheat if running at a high speed

The TMC2130 drivers can tolerate a motor operating current 1.2 A (peak 2 A). I am setting the maximum to 1838.5 mA (that's Okay) and the motor RMS is 1.3 A (more than 1.2 A). Will these settings overheat the driver?

Question

Will I have any of these problems with the configuration I have set above? Will the TMC2130 overheat?

Update 22 April

My chip is the TMC2130-LA. Then, to calculate the X_CURRENT value:

Imax = 1.2 A            # max current available in the controller
Irms = Imax / 1.41 = 0.851
X_CURRENT = 90% Irms = 0.851 * 0.9 = 0.766 = 766 mA   # 90% for safety

The driver has a potentiometer to change the voltage that is giving to the motors.
[...]
As one person answered me in another question, I would need 3.2 V to make the motor work well (2. Ω * 1.3 A = 3.2 V).

You are misunderstanding that answer and what the potentiometer does. The potentiometer does not control the voltage going to the motors. It makes no sense to compare this voltage to the rated voltage of the motor. The potentiometer controls the current going to the motor, with a potentiometer voltage of 0V corresponding to 0% of the driver's current, and a potentiometer voltage of 2.5V corresponding to 100%. The documentation of your driver is a bit unclear but it looks like the maximum peak current is 1A per phase or 0.7A RMS (per phase).

There is a file in the Marlin firmware (Configuration_adv.h) where I can set the current that the driver is going to give to the motors.

This only works if the driver is set to SPI mode, otherwise the setting is ignored. To enable SPI mode you need to remove the jumper resistor labeled "SPI" mode and make connections to the long pins sticking out the top of the driver. This configuration option overrides the current setting set by the potentiometer.

What I am going to do is to set the drivers potentiometer to the maximum and check what happens. And I will also set the current in the Marlin to 1838.5mA

That's not such a good idea. It would be wiser to set the potentiometer relatively low, and increase it just enough so that the motors do not skip steps.

As the drivers have less voltage to give to the motors, are my drivers going to burn because they will have to give more current for a long period of time?

No, because the drivers do not have "less voltage to give to the motors". They don't work that way. They are constant current drivers.

Or will the stepper motors burn because they won't get enough current or voltage?

No. The only thing that could cause the motors to burn is (far) too much current or voltage. This will never happen because your drivers will burn up before the motors ever would.
Keep in mind that in the question you linked to, one answer is more detailed than you can reasonably understand with your level of electronics knowledge, and the other answer is completely wrong.
Summary

The current setting in configuration_adv.h is irrelevant unless you have enabled SPI (but I doubt that you have)

Do not start out with the potentiometer set to maximum

Everything will be fine. The motor can handle more current than the driver can ever deliver. The driver you have is configured so that it can never exceed its rated current.

Regarding your update
Yes, if you are using SPI current control then the potentiometer is ignored.
The TMC2130 can handle 1.2A RMS per coil, though the datasheet notes that more than 1A RMS per coil requires special attention to heat dissipation (the small breakout PCB probably does not have great thermal properties).
Your calculation is overly conservative because it treats the 1.2A figure as peak current when RMS current is meant. You do not need to divide by $\sqrt{2}$ to convert to RMS because the figure already is RMS.


When to use 1.75 mm vs 3 mm filament? Why do we have two standard filament sizes, 1.75 mm and 3 mm? Does it really make a difference when printing? Or is the 1.75 mm just for smaller printers?

In what situations should I be using 1.75 mm?

When should I be using 3 mm?

There's no appreciable difference. Just use the filament that fits your particular printer.

If you don't yet have a printer, then I'd get one that uses 1.75 mm filament:

1.75 mm is increasingly becoming the "standard", thus being easier to get. Some filaments are not available as 3 mm.
1.75 mm filament allows for finer control, because feeding in 1 mm of filament corresponds to less plastic extruded.
1.75 mm filament requires less force to extrude. Compressing 1.75 mm down to 0.3 mm takes less force than doing the same to 3 mm filament.

However, the advantages are fairly minor. I don't see any reason to replace a functioning 3 mm extruder with a 1.75 mm one (yet).


Print "hairs" without support in GrabCAD Print I have a part with hair strands, such as the Hairy Lion on Thingiverse, and I want to print it on a Stratasys F370. The thin strands are intended to print without support, bridging to the exterior wall. Although the bridges are quite long, it doesn't matter if they sag, because they will be heat-treated afterwards.

But when I open the STL file in GrabCAD Print, the slicer gets over-protective of those long bridges, and inserts soluble support for every one. As well as being a huge waste of support material, it would take ages to dissolve out all of that support, and it's completely unnecessary. However, there are other parts of the model that overhang and do need support, so I can't just disable support completely.

How can I avoid supporting these bridges?

There's no way to do this in GrabCAD Print alone, but you can achieve it using Insight, which you can reach from the Apps menu in Print. The steps are as follows:

Open your STL file in Insight.
Go to Modelers → Setup… and set the printer, layer height, and material to the same as in Print. If you get these wrong, you won't find out until you get to the end and Print refuses to print the part.
Use one of the red icons to slice your print, with or without the wall thickness filter.
Use the red and green icon to generate support. You'll notice all of your hairs are now supported.
Go to View → Display options…. Set View only to Group curves, and then Group to view to All support. This filters out the (red) model curves, showing only the (green) support curves.
Go to Edit → Delete…. Then left-click and drag a box around the unnecessary supports. For my part, dragging the 3D view to be top-down made it easy to drag a box around just the hair supports while leaving the other supports untouched, but it'll depend on the shape of your part.
In the right panel, make sure the delete mode is set to Curves, and click OK. Now all your supports should be gone. At this stage you can set the display options back how they were if you want to inspect your model further.
Use the green circle icon to create toolpaths
File → Save As… → Toolpath to save as a .cmb or .cmb.gz file.
Go back to GrabCAD Print. (You can close Insight now if you want.)
File → Import CMB and choose the file you just saved.

CMB files show up very boxy on the tray view (and Print will display a warning about that), but if you go into slice preview mode, you should see it as it was in Insight, with just the right supports.

There's one caveat with this method. The slicer generates the base as a single contour, so deleting the supports under the hairs doesn't remove that section of base, and AFAIK you can't make the slicer recompute just the base (so generating support again would put the original supports back). You could edit the base contour before step 8, or disable the base completely in the support options before step 4, but the amount of support material saved probably isn't worth the effort.


Extruder Motor Not working during Printing I am a newbie trying to setup and configure a 3D printer following online YouTube videos and tutorials. I am trying to configure a Hypercube Evolution 3D printer.
I followed Tech2C videos (on YouTube) and was able to configure Marlin firmware to some extent. I am using Pronterface to send test codes and taking files from thingiverse.com for testing.

Configuration :

CoreXY
Board : Ramps 1.4
Extruder Setup Type : Direct drive using Titan e3D
All end stops, temperature sensors, heaters configured and verified.

What is working :

X,Y,Z axis movement directly from panel.
Homing is ok.
Temperature sensors, heating bed and hot end as expected.
Extruder motor working with direct on panel command.

What is not working :

When I send a print file (taken from thingiverse.com), the X,Y,Z axis work but there is no extrusion what so ever. I have tried a lot of things but using files from thingiverse, the extrusion of filament is not there whatsoever. It's been 2 months trying to figure out whether the issue is in firmware or the file, however to no use.

Can anyone help me get out of this or point out where I can be going wrong?

If the extruder extrudes fine from the control panel, chances are there's a configuration problem somewhere. For example, check your extruder steps/mm in the firmware to make sure it's not a nonsensical value; check the slicer settings to make sure that the filament diameter, line width, and layer height are all correct; make sure you're not trying to extrude in volumetric mode without having configured volumetric printing in your firmware and slicer correctly; and finally check your temperature control settings. When I first set up my fleabay 3d printer, I couldn't get my printer to work because the hotend minimum shutoff temp (thermistor disconnect protection basically) was set to something like 195C and the print temperature was 180C. I had an almost identical issue when I changed my fan assembly and it started blowing on the wrong part of the hotend, causing the firmware to register that entirely too much energy was being put into the extruder. Check the minimum temps for both hotend and heated bed and see if one of them is tripping your failsafes and stopping the extruder before printing even begins.


Cura acting REALLY sluggish all of a sudden I've been using Cura on my computer for a while now, (at least a month) but all of a sudden the entire interface has become noticeably sluggish. Whenever I scroll through the profile parameters list or the settings visibility dialog, the list lags and doesn't fully appear.

I'm at a loss to explain why this is happening.

Cura has and/or had a memory leak (or some other similar phenomenon) that occurs if you leave it running for a long time.  I have left Cura running for days or a week or three and eventually ran into a similar problem.  One could infer that you've left Cura running for a month, though it's not clear in your question.

I update Cura a few weeks ago (maybe a couple months) and noticed that it had a substantially smaller memory footprint, so that tells me they are working on memory management.

Looking in the release notes, you can see that 2 versions ago they implemented analytics, which is possibly a reason for the poor performance.  You'll also notice a lot of new features and bugs fixed int hat version.  That means a lot of work went into it.  Coupled with the short time to another release, and I think they're working on  fixing things.

For a more precise answer, include details and specs about your PC, internet connection, mother's maiden name, SSN, etc.  I'm kidding about the last 2, but it is probably a PC or software problem that you're running into.


Ball screw: Maintaining Z axis position when motor is OFF I'm building a 3d printer of size 500 x 500 x 500 build area. For the Z axis, I'm planning to use this Linear actuator.

The maximum weight Z axis might encounter is 15 Kg due to it being a clay printer. A single linear actuator can, according to the specs, lift 10 Kg. So I'm planning to use two of this.

My question is a ball screw of pitch 4mm or 5mm, will it be able to Maintain it's position when the motor is de-energized under a load of 15 kg shared by two systems.

What effect the diameter of rod has on it??

Is there any way to find that??

My question is a ball screw of pitch 4mm or 5mm, will it be able to Maintain it's position when motor is deenergized under a load of 15 kg shared by two systems.

The detent torque of a typical NEMA 23 stepper varies between around 3 and 7 N·cm. This is the torque produced when the windings are not energized.

Using this leadscrew torque calculator, you can find that the torque required for a 12 mm diameter, 4 mm pitch leadscrew to hold up a 75 N load, is around 5 N·cm - assuming there is no friction. If there is friction, then the required torque will be lower.

So, the torque required is almost equal to or possibly even higher than the detent torque. Therefore, you should not count on a de-energized motor holding up the build platform. In practice, you might see that friction is enough to hold up the build platform, but that any disturbance (such as somebody bumping into the printer) is enough to get the leadscrews to start spinning and have the platform drop like a rock.

  What effect the diameter of rod has on it?

Increasing the pitch also increases the torque required (so, go with a lower pitch leadscrew). The diameter does not affect the torque directly, but having a larger diameter increases the friction and so is beneficial.


Has anyone experienced scorching or burning of cork heatbed insulation? A comment to my question How much insulation do I really need? has made me paranoid about using cork as a heatbed insulator:

  Why worry -- other than the fact that it's flammable. All that's needed to start a fire is having the thermistor fail or come loose. I'd use a flameproof material if you're going to insulate.

The flash point (ignition temperature) of cork is, apparently, 300 - 320°C1, which is not, as far as I can tell, a temperature that the heatbed reaches, so, in theory, cork should be safe to use as an insulator. In fact temperatures of around 300C are used in the manufacturing process of some cork products2:

  For insulation applications, agglomerates of granules of
  cork, known as black agglomerates, are employed. They
  are manufactured in a closed autoclave at high
  temperature (approximately 300uC) and pressure
  (around 40 kPa) without the use of adhesive

In addtion, according to Why should we use cork?

  Does cork burn?

  Cork is a slow combustion material. That is to say, yes it burns but very slowly and it doesn't produce flame so it doesn't spread. Also, when burning, the smoke that it releases is not toxic.

However, I am not sure if all cork is equal, or whether the thickness of the cork can affect the safety. To give a definite figure, I was thinking of using 2 mm - 5 mm thick cork sheeting.

Has anyone experienced, or know of, any burning (or scorching) of cork, when used as a backing insulator to a heatbed, in particular, an aluminium PCB MK3 heatbed?

1 Source: What is the the ignition temperature of cork? | ChaCha

2 Source: Cork: properties, capabilities and applications

The real fire risks with 3d printers are electrical in nature. Lets say your wires come undone and happen to come next to the other lead. If it archs and happened to be in just the right position. Pretty unlikely. Once I did a bad solder job and when I was working on my printer. The wires literally burst into flame in my lap. No damage done (other than needing a new board). That said we often see people who have their boards catch fire in the flashforge owner groups. Weak solder joints, and over all bad quality.

Do you really have something to worry about with Cork? No. A series of unfortunate events would have to happen, and more likely your board will cause a fire. That said I would look into adding a layer of aluminum and reflect some of that heat back up.

If you are that worried I would just remove the sheet. Unless you are having issues calibrating you heated build plate / PIDs there is no reason to use insulation. I only use it on printers that have a hard time hitting ABS temps of 100c. Even then I only use tin foil and try to trap the air underneath.

Just a side note. If you are having heated build plate issues maybe what you really need is a heat chamber.


How do I calibrate temperature control in a Repetier firmware? I have built a 3D printer using RAMPS 1.4. I am trying to raise the hotend temperature over 180 °C. But I can hardly get to 100 °C in 60 minutes. I applied power directly to the heater and I was able to get to 220 °C in about 15 minutes. What am I not doing right? Currently I think the PID isn't correctly calibrated. How do I do that with the Repetier firmware?

P.S. I tried PID tuning but end with an error on timeout.

When applying a voltage directly to the heater element, it should heat up very fast. You could measure the resistance of the heater element. A 12 V heater element of 40 Watt should have a resistance of about 3.6 Ω; you could test that with a multitester. If the resistance is a lot higher, the heater cartridge could be a 24 V heater element. Operating such element on 12 V would imply that the power output would only be 10 W. Heating of the hotend is much slower at low power output.

Incorrect PID settings can indeed prevent the heater to heat up fast enough to trigger errors during tuning. The trick is to heat up the element a little prior to performing the tuning, or upload new PID settings to the firmware prior to tuning.

PID settings can be set not only by uploading a modified firmware version (configuration file), but also by sending commands to the printer over serial terminal connection (e.g. Repetier host, OctoPrint, Pronterface, etc.) or stored in a G-code file and executing it ("printing"). The G-code command to set the PID values is M301. The relevant parameters are:

  Hnnn heater number Pnnn proportional (Kp) Innn integral (Ki) Dnnn
  derivative (Kd)


What kind of filter do I need for the enclosure of a 3d printer? I've heard alot about the need for ventilation when using 3D Printers lately.  Is there any special sort of filter that would prevent the toxic gases from leaking out of the printer while it's printing it's filament?  Is printing outside a solution while I build an enclosure?

For the most part, a consumer 3D Printer will only need proper ventilation when using potentially harmful materials such as ABS. (See duplicate question). If you're printing with primarily PLA, then you don't need to worry. I print mostly with ABS and keep my machine close to a window and I haven't experienced any issues.


Does the Inverse-Square law apply with SLA Printing? I was adjusting the position of our projector to allow for bigger prints to be generated.  I encountered a problem that at larger distances, our prints are not seeming to adhere as desired.

Does the inverse square law of light apply to DLP projectors?

I am aware that the inverse-square law only is 100% applicable when you have a point as your light source.  But I assume close to the same holds constant for other real world light sources.

Unless DLP projectors compensate for distance with their power output. Is this the case?

Cross-Post: @ Physics.SE

Yes, of course it does. The same amount of light is being spread across a wider area, so there's less light per area. Once you're past a few 10's of filament diameters, a point source is a highly accurate representation of most light bulbs. Even more so when there's a lens setup that causes the light to go through a point focus.


Using hardboard for 3D printer enclosure; what is the temperature rating of hardboard? I am looking for the temperature rating for hardboard. I want to use that as the base for my printer enclosure.

It has proven incredible hard get a ball-park figure from Google.

So, what is the maximum safe temperature for a hardboard panel at long term? (considering a print job can easily take 6 hours).

PS: if you have used a hardboard to build your enclosure, your experience might be helpful.

Hardboard is called Masonite here in the States because that is the trade name of the product. If you look up the Material Safety Data Sheet you will see Masonite it states the following (Section 5):

  Auto-ignition Temperature (°C): >200 degrees Celsius

In Section 7, it states:

  These boards are flammable but difficult to ignite.

Furthermore in Section 10, it states:

  Conditions to avoid: Avoid sources of radiant heat and flame; and avoid sparks and sources of ignition in all electrical equipment, including dust extraction equipment.
  Avoid excessive build up of dust from boards.

The hot end works of printers are neither radiant heat, nor flames, nor sparks. Yes, you'll have a buildup of heat within the working confines of an enclosure, but if you are only using it for a base there should be absolutely no issues. If you were to build an entire enclosure from hardboard, you could put a thermal probe inside with the printer to ensure it doesn't get too hot, but realistically, it will never get hot enough within the enclosure to light the hardboard on fire.


Print not coming out good I just designed a robot in blender, and whenever I print it, it goes horribly wrong. The first print was laying down, I had supports on, Then it started to print the arm, starting with the bottom of a sphere, and the supports caused it to fly off. The second time, I printed it standing up, with supports, and the arm didn't even print, PLA got all over my build plate. How would I print this successfully? Sideways like this?

I uploaded the model to Thingiverse last night, Here's the link: https://www.thingiverse.com/thing:2417504

Based on your description of the print failures, it appears that the problem is not specific to the model. If printing supports is causing parts of the model to "fly off," there may be a temperature problem or a speed problem or a combination of the two. If you have a new filament type, it may be necessary to perform test model prints to ensure you are using good settings for the filament. If you are using old filament, it may be necessary to print test models with no complex shapes to ensure that your filament will still function properly.

You say that "PLA got all over your build plate." This is another indication of a problem not related to the model position or model design or orientation.


Issues with Auto Bed Leveling I have enabled auto bed leveling on my 3D printer. I have used a 6-36 V inductive sensor with a 7805 voltage regulator running the sensor at 10.78 V.

I am using Marlin 1.1.9. This is my configuration file for Marlin firmware. I used this video for marlin setup.

I have done a voltage regulator setup by using this video.

I have place an Aluminium plate with insulated copper wire. (I also tried an Iron plate). After Setting this I use Pronterface to control the printer. While homing command is given the XY axis gets home and Z axis moves downwards and doesn't stops even the Light in the sensor gets ON. This video I made shows that it does not stop.

And also once the Zmin gets TRIGGERED, it is always TRIGGERED.

After I enabled SAFE_HOMING, the XY axis comes to the centre of the printer. And Z axis goes down again without stopping.

Please help me in this.

Your problem is that the hotend carriage does not stop when the sensor triggers. I assume you mean "on homing", not "while printing" (UPDATE: after watching the video it is confirmed that it is "on homing"). First, the working and this difference is explained. Thereafter your configuration file is assessed and typical errors or inconsistencies are reported. Note that assassing an existing configuration file is more work than for you to start over taking the consideration below into account. Also look into this answer which describes what you need to do starting from a clean configuration file.

Note:
Why not test if the sensor works at higher Z values by using a metal screwdriver to test if the head stops, then you do not run into the bed (with way less chance to damage your printer). From the video you can see that the sensor triggers, does the signal also gets registered by the printer board? With M119 you test the endstop status of all endstops.

Auto bed leveling theory
An auto level sensor does not trigger exactly when the nozzle hits the bed like in normal leveling using switches. The sensor is meant to detect the bed before the nozzle touches the bed. It is the offset that you define with command M851 e.g. M851 Z-1.85 that determines the correct offset between sensor trigger point and the nozzle. After homing G28 and auto bed leveling G29, the nozzle needs to get under the sensor trigger point (e.g. in the example above it is then still 1.85 mm away from the platform) so while printing it is perfectly fine that the sensor stays triggered until printing height gets above 1.85 mm. This gives an answer why you see the head go past the trigger point when printing, when homing or leveling that should not happen.

Configuration file observations
From your configuration can be seen that

//#define Z_SAFE_HOMING

is not enabled, this is advised to enable. This is important, but not the complete solution.

Also, you have not defined the auto leveling area by setting the boundaries for probing (where the probe can reach). In your config you will find disabled constants for (see also this answer or question: "How to set Z-probe boundary limits in firmware when using automatic bed leveling?"):

//#define LEFT_PROBE_BED_POSITION MIN_PROBE_EDGE
//#define RIGHT_PROBE_BED_POSITION (X_BED_SIZE - MIN_PROBE_EDGE)
//#define FRONT_PROBE_BED_POSITION MIN_PROBE_EDGE
//#define BACK_PROBE_BED_POSITION (Y_BED_SIZE - MIN_PROBE_EDGE)

You only have defined a Y sensor offset in your configuration :

#define Y_PROBE_OFFSET_FROM_EXTRUDER 43

but the video and the comments say otherwise, you should therefore should have set:

#define X_PROBE_OFFSET_FROM_EXTRUDER 43

so e.g. the following could work (depending on the offset from limit switch position to printer origin):

#define LEFT_PROBE_BED_POSITION MIN_PROBE_EDGE
#define RIGHT_PROBE_BED_POSITION (X_BED_SIZE - MIN_PROBE_EDGE)
#define FRONT_PROBE_BED_POSITION MIN_PROBE_EDGE + Y_PROBE_OFFSET_FROM_EXTRUDER
#define BACK_PROBE_BED_POSITION (Y_BED_SIZE - MIN_PROBE_EDGE)

Another part in your configuration that need further inspection is your offset from limit switch position (when homing) to printer origin; you have:

#define X_MIN_POS 0
#define Y_MIN_POS 0

This is very unlikely, but possible, it means as is that the X=0 and Y=0 is exactly on the limit switches for X and Y. Usually this is not the case and you see negative values for these constants.

All-in-all, your configuration file has a lot of problems which need to be fixed. To solve your problem you need to read into configuring Marlin. Once you got the printer working fine you progress to an ABL sensor and make the correct settings in the configuration by using the hints above.


Possible 3D printer nozzle jam? Is this a jam? How do it fix it? There is a piece of filament stuck in the metal block (I have no idea what it is used for(other than mounting). When I heat up the extruder and try to extrude nothing happens.
Printer: Maker Select v2 (Wanhao Duplicator I3 Plus)

Image above is the hot-end with the filament feeding stepper motor removed.

What you are looking at is the top of a Makerbot MK10-style hotend. It appears that the filament has snapped off at the entry of the heat break at the top of the cold end. The image below shows how the hotend is constructed, from top to bottom, brasss nozzle, heater element block, heat break (with PTFE liner, or not if it is an all metal hotend) and the cold end cooling block.

You indeed have a jam if an increased temperature cannot push the filament out. What you can try is to heat up the hotend (above the normal filament printing temperature, e.g. 10-20 °C higher; a too high temperature can cause filament to carbonize) with the feeder stepper removed pushing a 1.5 mm drill bit from the top of the heat break and see if you can push the obstruction out. If you have a fine needle or a specific nozzle cleaning tool, you could try from the nozzle opening. If not, you need to take the hotend apart and need to consider to buy some spare parts (at least a new PTFE liner if present), this is usually more simple than cleaning the small parts. If it is ABS filament you can use acetone to dissolve the filament, but for PLA/PETG there are no simple solvents.
The image below shows an exploded view of the assembly.


How to tell machine how far travel limits without switches I have a 3d printer that is homebuilt with salvaged parts. Occasionally there is some kind of error and when i start my code the minute it starts it max out on x and y axis and continues to do it until i kill the connection and reset everything. I have found that when i put G21 G90 into the first line of the file it doesnt do this anymore. But I'm wondering if i can "teach" my machine how far it can go before it stops? I am using "grbl controller" to send g-code to my arduino uno woth grbl loaded onto it.

Since 3D printers works with coodinates and the gcode generator requires the origin point and bed shape and bed size. knowing this your programs never will be out of the printing area.

My printer has a printing area of 16.5 x 16.5 cm, so I set this parameter to CURA, Slic3r and 3dsimplify and I can't generate the gcode if the part does not fit on the bed. So I print parts with 15cm maximum

Also the firmware has this limits to 16cm, the 0.5 cm is just for safety

Of course if I send a command with pronterface or any other gbrl controler I can go over the limits due the X0Y0 could be out of position (offset), but if you respect the origin point and don't try to go over the limits by yourself the machine will be ok.


How to slice this wing so it has a smooth infill like perimeters I have this wing design that I want to print:

You can notice that its walls have a thickness, which is 1.0 mm.
I want to print it so that the perimeters are inside that thickness.
Here is the wing sliced with 1 perimeter and 0% infill:

You can notice a gap between the perimeters. That gap is what I want filled and not the perimeters in the image. With 0 perimeters and 100% infill I got this zig-zagged line:

I want the gap to be filled; but, I don't want it to be zig-zagged like in the image. I want it to be smooth like the perimeters in the other image.

Basically I want a smooth infill that goes around the curves just like the perimeters. The reason why I don't want to print both the perimeters and the infill is because I want to save as much weight a possible as this is a wing of a model plane that must fly, so the lighter it is the more efficient it will be.

Any ideas how I can slice this?

The images are screenshots in Slic3r, but I can use Cura as well.
This is just a test slice. The wing model is not finished yet.

I found a great solution!

In Cura, there is a setting under Shell called Horizontal Expansion. What this does is it controls the distance between the two perimeters. A negative value in this field will make them come closer together, thus removing the gap between them.

I found that -0.1 is the perfect value for 1 mm thick walls like the ones in my design. So I set it to -0.1, then set the infill to 100% because in some spots the thickness is a little bit more than 1 mm, so the infill closes the gaps in those places. Here is the result:

You can see the perimeters are now sticking to each other and there is no gap between them. The result estimated weight is 71 g, which is a quite good reduction from the estimated 92 g when not using horizontal expansion.


Any code to move up Z axis after finishing the printing? Is the firts time that I saw this movement after the printing has finishig and causes the nozzle crashes to the printed part and I noticed due the part is 14x8 and the nozzle is to near and below to the border of the shape. I supposed that some scripts has changed but, seems to be everything ok.

this is the end script:

G92 E0
G1 E-1.5000 F1800
; layer end
M104 S0 ; turn off extruder
M140 S0 ; turn off bed
G28 X0  ; home X axis
M84 ; disable motors
; Build Summary
;   Build time: 3 hours 9 minutes
;   Filament length: 12689.1 mm (12.69 m)
;   Plastic volume: 30520.78 mm^3 (30.52 cc)
;   Plastic weight: 38.15 g (0.08 lb)

Z axis moves down 4mm after finishing going to X0, why? I don't want the nozzle crashes the part on going to zero.

You can use:

G91
G1 Z10

G91 make the printer use ralative positioning, while G1 Z10 would move the gantry up of 10mm, reagrdless of its actual position.

In order to understand what's going on, you could experiment with the position of those lines in the script.

The safest bet it to insert them at the very top, but you could insert them straight after the homing of the X axis to understand if the drop you are seeing is caused by the homing command itself or by the ´M84´ one.

My guess is that the drop is actually caused by the latter.  M84 doesn't really "disable motors", rather it stops using energy to keep them still (i.e.: it stops the idle hold).  What I believe is happening in your case is that when you stop the idle hold, the weight and mechanical play of the X gantry causes it to move slightly (a bit like when you relax your body on the sofa and you "sink" in it a bit more).


Bed heating stops when paused by filament runout sensor My CR-10 S5 has a feature, that stops the print, when the filament runs out.
However, when the printer pauses, the bed cools down and the print plops if the bed. Is there a way to tell the printer to keep the bed heated, when paused (by the runout detector)?

There is no easy way to keep the bed heated during pause
Looking at the sourcecode, I am pretty sure that the current version (10/29/2019) keeps the heated bed at the right temperature.
Features are built into the firmware. You need an Arduino and some wires to write new firmware to the built-in SOC. Adjusting the code should be as simple as commenting a single line.
That is some serious shortcoming of the CR-10 S5! I can't imagine a reason why not to leave the heated bed on.
The command that keeps the heated bed at temperature is in Marlin_main.cpp:5664:
Source code link


Can I print and sell 3D models licensed under CC BY-NC-SA 3.0 Can I Print models from Sources like Thingiverse and sell them ?
I will be only charging the print costs and will provide full credits and attributes to the original creator of the model (with links to their profiles) in my web-page.

There are websites like 3dhubs where the seller will print any file the user uploads. Similarly I want to charge only for the printing services.

I am not an attorney, so this isn't legal advice. Like any legal question, you should consult with an actual attorney, who can consider all the gory details.

That said, it seems like you've got the BY and SA parts covered. "Non-commercial" is more difficult: does a sale that's not for profit count as "commercial"?

The Creative Commons site (https://creativecommons.org/faq/#does-my-use-violate-the-noncommercial-clause-of-the-licenses) explains it a bit more, as pasted below. But perhaps the best thing is to just drop an email to the originator and ask. Probably you'll get an email back saying it's fine; and who knows, maybe you'll make a new friend, too. I've been on both ends of exchanges like that, and it's generally worked just fine.

  Does my use violate the NonCommercial clause of the licenses?

  CC's NonCommercial (NC) licenses prohibit uses that are "primarily
  intended for or directed toward commercial advantage or monetary
  compensation." This is intended to capture the intention of the
  NC-using community without placing detailed restrictions that are
  either too broad or too narrow. Please note that CC's definition does
  not turn on the type of user: if you are a nonprofit or charitable
  organization, your use of an NC-licensed work could still run afoul of
  the NC restriction, and if you are a for-profit entity, your use of an
  NC-licensed work does not necessarily mean you have violated the term.
  Whether a use is commercial will depend on the specifics of the
  situation and the intentions of the user.

  In CC's experience, it is usually relatively easy to determine whether
  a use is permitted, and known conflicts are relatively few considering
  the popularity of the NC licenses. However, there will always be uses
  that are challenging to categorize as commercial or noncommercial. CC
  cannot advise you on what is and is not commercial use. If you are
  unsure, you should either contact the rights holder for clarification,
  or search for works that permit commercial uses.

  CC has a brief guide to interpretation of the NC license that goes
  into more detail about the meaning of the NC license and some key
  points to pay attention to. Additionally, in 2008, Creative Commons
  published results from a survey on meanings of commercial and
  noncommercial use generally. Note that the results of the study are
  not intended to serve as CC's official interpretation of what is and
  is not commercial use under our licenses, and the results should not
  be relied upon as such.


Anet A6 Z-axis min endstop not triggering I had a Z probe installed but the wires came out of the header so I am trying to use software endstops, but any time I G28 the nozzle will always ram into the bed. I am using Marlin Firmware. Which I am relatively new with. I'm used to having hardware endstops, but,

I don't have a hardware endstop currently (no probe/no switch).

Is it possible to do this with software?
I took out G28/G29 in my G-code and it shows that it is going to z0.2 and working upward (but it still hits the bed). If the bed is level do I need a G28?
Should Z probe offset be 0?

    #define USE_XMIN_PLUG
    #define USE_YMIN_PLUG
    #define USE_ZMIN_PLUG
    //#define USE_XMAX_PLUG
    //#define USE_YMAX_PLUG
    //#define USE_ZMAX_PLUG
    #if DISABLED(ENDSTOPPULLUPS)
      // fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
      //#define ENDSTOPPULLUP_XMAX
      //#define ENDSTOPPULLUP_YMAX
      //#define ENDSTOPPULLUP_ZMAX
      //#define ENDSTOPPULLUP_XMIN
      //#define ENDSTOPPULLUP_YMIN
      //#define ENDSTOPPULLUP_ZMIN
      //#define ENDSTOPPULLUP_ZMIN_PROBE
    #endif
    #define X_MIN_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
    #define Y_MIN_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
    #define Z_MIN_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
    #define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
    #define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
    #define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
    #define Z_MIN_PROBE_ENDSTOP_INVERTING true  // set to true to invert the logic of the probe.

    // Enable this feature if all enabled endstop pins are interrupt-capable.
    // This will remove the need to poll the interrupt pins, saving many CPU cycles.
    #define ENDSTOP_INTERRUPTS_FEATURE
    #define PROBE_MANUALLY
    #define X_PROBE_OFFSET_FROM_EXTRUDER 1   // X offset: -left  +right  [of the nozzle]
    #define Y_PROBE_OFFSET_FROM_EXTRUDER -55 // Y offset: -front +behind [the nozzle]
    #define Z_PROBE_OFFSET_FROM_EXTRUDER -3.4
    #define MULTIPLE_PROBING 2
    #define Z_CLEARANCE_DEPLOY_PROBE   0  // Z Clearance for Deploy/Stow
    #define Z_CLEARANCE_BETWEEN_PROBES  3 // Z Clearance between probe points

    // For M851 give a range for adjusting the Z probe offset
    #define Z_PROBE_OFFSET_RANGE_MIN -20
    #define Z_PROBE_OFFSET_RANGE_MAX 20
    #define INVERT_Z_DIR true
    #define Z_MIN_POS 0
    #if ENABLED(MIN_SOFTWARE_ENDSTOPS)
      //#define MIN_SOFTWARE_ENDSTOP_X
      //#define MIN_SOFTWARE_ENDSTOP_Y
      #define MIN_SOFTWARE_ENDSTOP_Z
    #endif
    #define AUTO_BED_LEVELING_BILINEAR
    #define MANUAL_Z_HOME_POS 0

    #define Z_SAFE_HOMING

    #if ENABLED(Z_SAFE_HOMING)
      #define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2)    // X point for Z homing when homing all axes (G28).
      #define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2)    // Y point for Z homing when homing all axes (G28).
    #endif

There is no such thing as a software endstop for the 3D printer. When you power a printer the print head can be located at every X, Y, Z position (usually, Z is  at the print height of your last print, X is at the minimum X, and Y is at an arbitrary location determined by the last print).

This is exactly why we need endstops, either mechanical, optical or electronic (inductive or capacitive) end stop switches or sensors. You instruct the printer to home by using a known fixed location of the printer; this is the hitting of all endstops. The origin of the printer may have offsets, as the origin of the printer may not coincide with the endstop location. For the Anet A6 this is a few millimeters, e.g. for Marlin firmware this is defined in the configuration by:

#define X_MIN_POS -3
#define Y_MIN_POS -5

The answer to your question: "Is it possible to do this with software?" is therefore, no, you cannot do this solely with software.


Technique for removing support from Ultimaker 2+? I have made some prints with the Ultimaker 2+ and Ultimaker 2 Extended+. The prints are in PLA. For slicing, I use Cura and I check the support checkbox (haven't gone to advanced settings to adjust support yet). I can clearly see that there is a little space between the support and the print. The supports often look like long pillars and such.

My question then is: "What is the best technique for removing the support?". Is it to use a knife, pliers or perhaps PLA-water? Is it possible to use PLA-water to remove support when printed with Ulitmaker 2+ or is that just the Ultimaker 3? What type of technique would give a good looking print?

Ultimaker 3 has support filament that's water-soluble. Is there something similar for Ultimaker 2+?

The Ultimaker 2+ is a single extruder 3D printer. Without changing the PLA spool and PVA spool continuously during the print you practically cannot make water soluble supports on the Ultimaker 2+ which can be done on the Ultimaker 3. Note that PVA (from experience) is strange material to print, the filament is very hygroscopic and will form bubbles during printing when moist. Also, PVA is prone to clog the nozzle (it cooks easily) it therefore has its own printer core (nozzle assembly) on the Ultimaker 3 (still it clogs easily). Furthermore, it takes a while to dissolve in water.

If you have a single extruder and nozzle, your best option is to use the same material for support, but modify the support settings as such that it can be easily removed. E.g. on thin layer heights (0.1 mm) I usually increase the gap between support and product over the default value, see this answer.

On dual extruder printers, e.g. on the Ultimaker 3 and S5, my colleagues have better experience using Ultimaker Breakaway filament rather than using PVA. As with the PLA supports, you need to "break them away" from the actual product; I use a Leatherman Charge or FREE P4 as these tools have fine pointed pliers. Note that there are removal tools available that are best described as soldering irons that can aid in the removal of support structures:

Note that I have mixed feelings about this product; it is hard to neatly remove supports using these small soldering irons, but it sometimes works.


Positioning Extruders after Tool change : Marlin 1.1.6 I'm currently working on a project which uses two extruders. One for making an impression in a powder and other one to dispose a liquid in to the impression made by the first extruder.

I'm currently manually writing gcode for the purpose, and have some doubts about gcodes and setting up a second extruder. I've once configured a dual extruder system, but it uses old marlin and current one has a variety of dual extruder system, so confused about which one to choose.

Firmware : Marlin 1.1.6

Machine : custom made

Board :  Ramps 1.4

configuration file : Configuarion

Dual extruder setup: two nozzles with separate stepper motor for each nozzle. For the sake of simplicity let's say something like this

Which category does this one go?? By reading marlin documentation it doesn't belong to any special category (???)

I only changed following in FW,

#define EXTRUDERS 2

#define TEMP_SENSOR_0 5
#define TEMP_SENSOR_1 5

I tested by sending T0 and T1 to select extruders and extruding them

Do I have to change anything else??

This is the test gcode:

G28       ;home

T0        ;select extruder 1
G0 X20    ;move to X 20
G92 E0    ;set current position of extruder as 0
G1 E10    ;extrude 10 mm
G92 E0    ;set current position of extruder as 0
G1 E-10   ;retract 10 mm

T1        ;select extruder 2
G92 E0    ;set current position of extruder as 0
G1 E5     ;extrude 5 mm
G4 P500   ;give a delay of 500 ms before next move

T0
G0 X 30
G92 E0
G1 E10
G92 E0
G1 E-10

T1
G92 E0
G1 E5
G4 P500

T0
G0 X 40
G92 E0
G1 E10
G92 E0
G1 E-10

T1
G92 E0
G1 E5
G4 P500

T0
G0 X 50
G92 E0
G1 E10
G92 E0
G1 E-10

T1
G92 E0
G1 E5
G4 P500

T0
G0 X 60
G92 E0
G1 E10
G92 E0
G1 E-10

T1
G92 E0
G1 E5
G4 P500

T0
G0 X70
G92 E0
G1 E10
G92 E0
G1 E-10

T1
G92 E0
G1 E5
G4 P500

T0
G0 X70
G92 E0
G1 E10
G92 E0
G1 E-10

T1
G92 E0
G1 E5
G4 P500

T0
G0 X80
G92 E0
G1 E10
G92 E0
G1 E-10

T1
G92 E0
G1 E5
G4 P500

What it does is:

After homing, move to given position
Activate extruder 1 and extrude some(make impression)
then activating extruder 2 and extrude
move to next position and repeate

What I actually want is:

After homing, move to given position
Activate extruder 1 and extrude some (make impression)
then activating extruder 2
move extruder 2 to the position where extruder 1 extruded material
Extrude material (by extruder 2)
Move to next position and repeat

one way to achieve this is add an additional code after enabling extruder 2

eg:

T0
G0 X 20
G92 E0
G1 E10
G92 E0
G1 E-10

T1
G0 X15   ; if X offset of E2 from E1 is 5mm, assuming no Y offset
G92 E0
G1 E5
G4 P500

T0
G0 X 30
G92 E0
G1 E10
G92 E0
G1 E-10

T1
G0 X25
G92 E0
G1 E5
G4 P500

In plastic extrusion this is normally done by setting offset in Slic3r.

Is there any other way to do this, position E22 to the position of E1.
Is there any specific G/Mcode for it??
There's a provision to set offset in Marlin. But this is what it says in marlin documentation

"Z hotend offset only available with DUAL_X_CARRIAGE or SWITCHING_NOZZLE."

Does it work with normal dual extruders.?(Does mine come under any two system mentioned above?)

Interesting project your are working on.

  Does it work with normal dual extruders.?(Does mine come under any two
  system mentioned above?)

The hotend/extruder you mentioned above is a E3D Chimera like system. And it is not suited for your application because you cannot lower/lift the hotends independently from each other.

examples of these configurations

DUAL_X_CARRIAGE:

look at BCN3D sigmax dual extruder

SWITCHING_NOZZLE:

look at ultimaker 3 mechanism for lowering/switching the active hotend.

The above systems aren't well documentend and will be hard to make.
I advice you to look into an interesting blog post from E3D about a tool changer. It is opensource, well documented so you're be able to create one yourself with tool heads for your application. A spade to create patterns in the powder. And a liquid tool to fill the patterns.


Slicing directly from non-mesh data? This is a bit of a weird question, and I imagine the answer might simply be "no." But here goes anyway:

I'm writing some code that generates shapes for 3D printing via "implicit surfaces," i.e. a mathematical function f(x,y,z) that is positive inside the shape and negative outside it. This works pretty well for designing the kind of shapes I want to print, but the problem is, turning the implicit surface into a good mesh is hard - there are some libraries that can do it, but they're kind of finnicky and you have to play with parameters a lot to get it to work well.

But I was thinking: the only reason I need a mesh in the first place is to send it to a slicer, which will ultimately throw away the mesh and turn it into gcode instead. My plan was to do

implicit function --> STL file --> gcode

but I'm wondering if there are any slicers that will let me skip the intermediate step and let me just do

implicit function --> gcode

instead. That is, my code would supply a 3D grid of voxels, containing the value of the function at each 3D point, and the slicer would create the gcode from that instead of from an STL file.

It seems that Shapeways have a nice and simple format called SVX that is exactly this, but as far as I can tell, this is only supported by Shapeways and not by any FDM slicing software.

Another option would be for my code to supply a sequence of 2D polygons, one for each layer of the printed model, so the sequence would be

implicit function --> big list of slices --> gcode

This would be both easier and more accurate than first converting it into a mesh, and I assume the slicer must generate this kind of representation anyway, before it calculates the path for the print head to take.

I suppose the question is, is there an existing CAD format that supports either of these options, that is also supported by existing slicer software? If so then I can just write my code to output in that format and it should just work.

No, not natively
To the current point, all slicers in frequent use do use some kind of 3D model with explicit surfaces to cut up into slices and then solve the path functions to create the G-code. The model can be in STL or OBJ or some other format, depending on the slicer, but at this point (November 2019), no slicing program I know about supports direct math as input.
Probably make it yourself?
However, you have a way to design the models by solving a mathematical formula. You could probably use the program that solves the formulae to also act as a slicer of some sorts.
One software that might form a base could be Cura, which allows writing plugins, so there might be a way to have Cura automatically solve the surface formula and then plug that into the slicing without storing the intermediate data as an STL.
Slic3r might also work as a base since the whole source code is open. It would be a similar endeavor as modifying Cura.


Marlin firmware function call location for menu commands? I found the pause_print() function in Marlin_main.cpp but when I search the rest of the files I cannot find the file that calls this function. I expected to find it somewhere in the file that controls the LCD menu but it only exists in main.

What file has the function calls that happen when I select a menu option from the LCD?

And why isn't pause_print() showing up elsewhere as a function call?

This function is called by the g-codes M125 and M600

I could find ADVANCED_PAUSE_FEATURE defined in configuration_adv.h and called in Conditionals_post.h, trice in Marlin.h, referenced as needed for M600 in Marlin_Main.ccp and mentioned 2 times.

In Marlin_Main.ccp it also declares the function pause_print in line 6482 to 6571. Its start and end are these:

static bool pause_print(const float &retract, const point_t &park_point, const float &unload_length = 0,
                          const int8_t max_beep_count = 0, const bool show_lcd = false
  ) {
    if (move_away_flag) return false; // already paused

    #ifdef ACTION_ON_PAUSE
      SERIAL_ECHOLNPGM("//action:" ACTION_ON_PAUSE);
    #endif

[...]

    HOTEND_LOOP()
    thermalManager.start_heater_idle_timer(e, nozzle_timeout);

    return true;
  }

This function does define the pause state, and relies on the ADVANCED_PAUSE_FEATURE in some cases. But what calls it? Simple enough, both calls are in the same Marlin_Main.ccp that defines it. The calls are in the functions that are used for filament change:

gcode_M125line 8534 (Save current position and move to filament change position)
gcode_M600line 9939 (Pause for filament change: "M600 X Y Z E L")


Printing Object in multiple parts Is there any software/methods to automatically splice objects into multiple pieces sort of like a jig saw puzzle so that I can combine them together and bypass the build plate size limit?

As an example I have this 2D image that I want to print out but my printers size limit is roughly the size of the blue "squares." It's pretty tedious and time consuming to do this manually. Also, any tips on getting seamless lines or proper alignment when gluing these pieces together are appreciated.

From what I understand, you're trying to partition your object into smaller pieces with the hopes of putting them back together in a manner similar to a Jigsaw puzzle.

There are two options that I know of to do this, which requires using OpenSCAD:

The PuzzleCut library - This allows you to disassemble your object into a multiple pieces that can be assembled together in a jigsaw puzzle type manner
The PinCut library - This allows you to disassemble your objects into multiple pieces that than be reassembled using the pins and corresponding holes on the pieces.


Print bed moves way up for printing I am new to 3D printing and I am assembling/calibrating an Ultimaker Original+ for my college.

I am done with all the assembling and the printer works fine except for one thing.

The print bed moves way up. It touches the extruder and pushes it upwards. So, the extruder cannot extrude any material.

I tried to set the Z axis value before string the print but as soon as I start the print the platform just moves up and blocks the extruder.

Please let me know if you need any more information from my side.

It is normal for an Ultimaker print bed to move up. But it should be stopped before the nozzle.

As it doesn't stop the end stop doesn't work. So either the end stop is not connected to the right connector or it is triggering too late.

The Z end stop must be screwed at the right hight. If you mount it too far up it will not trigger. The bed assembly has a small wooden peace that sticks up. The idea is that that wooden peace pushes the end stop at the right hight.

So instead of configuring the hight in the firmware you need to mount the Z end stop at the exact right hight. You can make the fine adjustments(Bed Leveling) with the screws that hold the bed.

You can test the end stop by manually triggering while the bed moves up. It needs to stop immediately once you trigger the end stop. If the bed does not stop, then check the connection or exchange the switch.

It can happen that the switch itself malfunctions if you screwed it in too tightly. So loosening up the screws a bit is a final test.


Can Cura alert me (give a warning) if it estimates times for layers are too long? I occasionally have a problem with warping and peeling. Mostly this is fine; it only happens rarely. Recently it happened again on a larger item, and it gave me an idea. I went back and looked, and I noticed it's much more likely to happen when I have very large layers near the base of the print, where the time between layers is too long. The print cools down too much before the next layer can cover it, causing the warping.
To help avoid this issue, I'd like to have Cura alert me somehow if I'm gonna have times for individuals layers greater than, say, 4 minutes (I'll improve on that number over time).
Is this possible?

In posting this, I noticed an even better option for slic3r to automatically disable the cooling. If Cura can do that, I'd also like to know how. But I still want to know about alerting for those layers.

Look at Cura's cooling settings. It doesn't have a warning like you asked for, but it does have options to control the fan to avoid over-cooling. I think you need to set "Regular/Maximum Fan Speed Threshold" to the number of seconds you want to consider a "long time" for a layer to take, then set "Regular Fan Speed" (for layers that take a long time) to 0 or something low, and "Maximum Fan Speed" to 100 or whatever you normally want to be using.


What is the best way to dry filament? I have some nylon that appears to have soaked up some moisture, the prints have the texture of rice bubbles. So I'm wondering what people suggest for drying.

My priorities are:

cheap
low energy use
safe
effective

I know you can put it in the oven for four hours, but that's going to chew up a lot of electricity.

I have been leaving the spool in front of a fan heater, since the heater is on anyway, it probably only gets to 40°-50°, but since my kids spend all day sitting in front of the heater I can leave it there for an extended amount of time. Anyone have success with this method?

I had considered putting it in my car. I know even on cool days it gets pretty warm in there, but I'm not sure whether that would translate to low humidity.

If we think about drying as a process, then we need to consider some factors:

we need to get same humidity level on the spool
that will require a good stable temperature and an air rotation (fan)
then we need to store  spool in a dry area (a bag and silicone sachets will do the work)

As energy consumption by owen could be the case, if we will run it for 4h full steam, then considering that we shall have about 60 degC, will turn down the usage by at least 70%, so we could assume that 2kW heater will be on only 30% of the time (so it will be 2kw*0.3 = 0.6kW, multiply by 4h -> we have 2.4kWh, so that is about 50 cents).

If you consider the price of wasted filament - then adding 50 cents to the drying process is something that is cheap enough to save precious nylon.


How to create supports for the parts hanging above 45 degrees? Do you have any specific process recommendations to achieve support for the parts hanging above 45 degrees, using open source software?

PrusaSlicer has support enforcers you can place on areas that need support.
See this video: Prusa Slicer Support Enforcers.
Automatic supports
There are automatic supports, in the Supports dropdown menu, select Everywhere:

Click Yes in the resulting dialog:

Click on the Slice icon in the bottom left:

You will end up with a lot of supports:

However, this method generally results in too much support...
Custom Suport Enforcers
So turn off Supports in the drop down menu, select None:

Now, in the Print Settings tab, under Support Material, disable Auto Generated Supports and enable Generate Support Material:

Then right click on the model and select Box from the Add Support Enforcer menu item:

You can move by clicking the Move button in the left hand palette,

resize by clicking the Resize button

and re-shape the Box as necessary, to support the difficult overhanging parts parts only. Here we can see three boxes have been added - pale blue for the previously added boxes and green for the current box:

And a fourth final Box for the tail:

Now, when you hit the Slice button, there will be much less support structure than when using Automatic supports:

Parts of the model that the slicer thinks still needs support will be highlighted in dark blue (such as the elbow and back of the head):

Add a cylinder support enforcer:

Resize and re-shape as before and move into position below the elbow:

Adding a second cylinder as a support enforcer

Upon hitting Slice:

Now in Print Settings - Support Material - Pattern change it from Rectilinear to Rectilinear Grid:

For prints with curves and details Rectilinear Grid works better, than Rectilinear (which is fine for supporting a plain cube in the air). It is easier to break the support off the print.
Now save your hard work as an AMF file:

This file maintains all of the support enforcers so that they can be modified if the actual print needs some adjustments - without having to re-add all of the support enforcers all over again.


Filament not extruding I've recently bought an Anet A8, and haven't been getting good prints with it. I noticed there was filament leaking from the top of the hot end and pooling, eventually dripping over onto my prints. I took the hot end off to clean it, and when I put it back on and tightened it, my printer wouldn't extrude anymore. I took the motor apart, and there was a lot of filament shavings inside. I tried tightening the screw that splits the bearing and gear that feeds the filament since I thought it may be getting caught in there.

I can manually push filament through and it works fine. There's no jam, so I'm thinking it IS something to do with that, but I don't really know what to do. Now that I've done this also, I feel as if I've screwed up the e steps.

Any ideas?

The spindle screws on the gear are shipped not tight enough. Try taking the fan off and make sure the gear is seated properly and tighten the screws down. Here's a video that might help. https://youtu.be/zkZKzF3J3NA


Firmware Choice: Marlin vs Repetier vs Other We are custom building a Cartesian 3D printer to be used in a production 3D printing environment, with the following requirements:

Intended Z resolution 0.13mm;
Dual extruders (primary + support material);
Four spools (two per material with y connector, perhaps add auto switch-over functionality later);
Camera;
Onboard 11" touchscreen for control & interaction, run by a Raspberry Pi 3;
Custom board based on ATMega2560 to control the printer;
Printer should gracefully handle conditions like "out of material", etc.

Question: How to select firmware?

Are there notable differences between the primary firmware options (Marlin/Repetier) for this setup?  From the google code groups, I understand the Repetier has a much cleaner code base, and apparently gives smoother physical performance.  Yet, from what I can gather, 95% of the community uses Marlin - is that correct?

Given that this printer will have the Pi3 to control "higher functions", is it worth considering a compact firmware like Teacup?

Edit 12/April/2017:

For others looking: After much review, Klipper was selected as the most forward firmware - all kinematic calculations are done on the host computer, instead of on the microprocessor, resulting is significantly faster/smoother stepper movement.

Given that this printer will have the Pi3 to control "higher functions", is it worth considering a compact firmware like Teacup?

A few days ago I came across klipper.

It seems to do exactly that functionality split you mention


G-code firmware for handheld plotter (Arduino) I'd like to build a plotter to work without a PC (power supply by battery).
Plotter will write only several numbers on a card (really short G-code).

Do you know any firmware, which can be easily modified for this reason?
Or do you know G-code library which could be easily implemented into my stepper controller in Arduino?

My plan is to use Repetier (printing from SD), but I prefer to print without SD.
Repetier is also too big, there are a lot of functions that I don't need.

Your question may be useful to people interested in 3d printing (the purpose of this SE Site) so, even though you're not asking a 3d printing question per se, I think this answer will be helpful...

GRBL:

GRBL is a well known and mature g-code interpreter that will run on an Arduino Uno and is free and open source.  Check it out here.

I hope this helps!  :-)


QIDITECH Dual Extruder and PETG I have just received my QIDITECH printer, I've have ABS, PLA and two reals of PETG.  I printed a sample using the clear PETG and this worked find, I didn't have to change any of the default settings.

Today I've tried three times to print a simple model using the black real of PETG.  I've created which is essentially just a rectangle, but after a few minutes the extruder starts to drag around filament.

What can I do?  The filament is loaded ok, and it starts out ok, but very quickly messes up.

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.


What are the specifications of the dual voltage controller of the Ender 3/CR-10? Following on from What level of voltage does the Creality Ender-3 run at?

Dave's answer states that both 12 V and 24 V can be used on the controller board. It also goes on to say that the controller board is used in both configurations in two different printers:

Ender 3 and;
CR-10

I would like to know how this dual voltage operation works:

Does it use both voltages at the same time, or either one or the other?
Are there two different electrical inlets or are they the same?
Does it auto-detect or are there jumpers used to configure or are the components tolerant to both voltage levels?

Also related:

What is the board used?
Is the board a proprietary design or a standard third party board?
Does anyone have any photos of the board and/or schematics?

I own the Ender 3, and it runs on 24V, as this photo of the power supply shows:

From power supply  to the board, it uses a 2-wire line connected with a XT60 plug/jack that is common on RC cars:

The board itself is a proprietary design and labeled as "V1.1.2". The Voltage in is the lowest input on the left:

The Cooling fan (blue-yellow wire), the hotend cooling fan, heater cartridge (white shielded), bed heater (left black-red), board cooling fan (middle red-black) run (in this setup) on 24V. The Logic connectors (black-black & White-white) run 5V logic. I could not figure out the voltage of the stepper motors (upper row).

I have not figured out how the power management circut works, but it achieves this:

Supply voltage $ U_S = 12V \lor 24V $
Logic Voltage $ U_L = 5V $
Sensor Voltage $ U_{sens} = U_L$
Hotend Cooling Fan $ U_{cool} = U_S$
Hotend Heating Cartridge $ U_{hot} = U_S $
Heatbed $ U_{bed} = U_S $

The chip's caption can't be read on the photo, but it is labeled as "Δ ATMEL // ATMEGA1284P // AU 1726"

For the pinout, a german maker did determine, that it the configuration of a Sanguino equipped with an Atmega1284P 16Bit works for compiling firmware and flashing via a bootloader.


Homing damages limit switches Ender 3 I'm new to 3D printing and have bought an Ender 3. I have printed a few good prints but I'm noticing a worsening issue:

When I select "autohome" the axes head towards their limit switches, but the y axis in particular seems to slam into the limit switch, bending it away, meaning that the platform bounces off and doesn't activate the limit switch a second time

This causes the machine to slam against the back over and over until the limit switch is triggered or power is removed.

I've replaced the limit switch twice

I've tried supergluing the limit switch to its PCB but even with a needle and patience this caused the limit switch to be ruined

What can I do?

Edit: Here are some photos of the switch (2nd replacement). The OEM switch also did the same thing, but I don't have photos of that. The screws are loose in these photos, but this is just because my Allen key is lost - the previous two switches had the screws reasonably tightened with the correct Allen key, provided in the box

Personally, I have found that if you bend the arm of the limit switch out, it gets triggered earlier and solves this issue for good, (broke a switch clean off at the bend on the pins, soldered old switch back onto the pins in the board) bent the arm to a greater angle, so the striker triggers 3-5 mm earlier, problem averted!


How do I create a STL file from a 2 dimensional grid of data Given a large set of data, I was able to create a 3D graph in Microsoft Excel.  How can I create a STL file similar to this graph to create a physical model of this graph?

for that you can use openSCAD.
Data can be represented as a multi-array and we can iterate on it via for loop

// data structure is x,y,z where z is value
arrayOfData=[[0,10,4],[0,21,9],[0,13,8],[0,41,2],[1,0,4],[2,0,180],[7,0,90]];

for(a=[0:1:6])  translate([arrayOfData[a][0], arrayOfData[a][1],0])  cylinder(arrayOfData[a][2],2,.5,false);

And where you get the model it can be intersected with a cube to get the desired shape.


How do skirts aid print bed adhesion? In cura one of the options under "build plate adhesion" is "skirt", which seems to simply print a loop around, but not touching, my print. How is this supposed to help my prints stick to the bed?

These skirts they don't contribute at all to help your product adhere better to the build plate other than priming your nozzle so that it is ready to lay down filament for your product.

A skirt does give a good indication of the adhesion prior to printing your product, if the skirt does not adhere, maybe it is a good time to stop the print and re-slice with different options or fix the bed level.


Hotend is oozing out the sides and getting in the way of my print My Ender 3 just started having this problem a couple of months ago. Prior to that the amount of excess filament showing up on the hotend was very minimal, but now it is oozing so much out of the top of the metal hotend, that it is hardening on my prints and hitting my extruder. How did this happen? and what can I do to fix this problem?
This is the hotend I have, a detailed image of my hotend is shown below:

The part of the hotend that I think is oozing is highlighted in purple/blue.
Here is the actual Image

There is now a clog somewhere, since I changed the filament yesterday, not sure if that is related, just thought I should mention it.
UPDATE: I fixed the clog, and it is not related to the hotend...

Looking at the picture of your nozzle, it appears to seal against the heat break and not the Bowden tube.  (A nozzle sealing against the heat break will have an entry hole of about 2 mm dia. for 1.75 mm filament.  A nozzle will have an opening large enough for the Bowden tube to slip into if it seals against the Bowden tube.)
If your heat break is all metal, you have an all metal hot end that can extrude above 250 °C.  If your heat break has a Teflon tube inside it, your hot has a highest temperature below 250 °C to avoid degrading the Teflon.  Both follow the same procedure below, but you highest temperature for making the seal will be different.
To see if your nozzle is OK (not clogged), try pulling the filament out with the hot end at temperature (same procedure as unloading filament).  Trim the irregularities off the filament while leaving a sharp end.  Then, see if you can push the filament through the nozzle at extrusion temperature.
If still clogged, remove the nozzle (you will need to tighten it later anyway) and see if the filament will go through without the nozzle.
After camera piture: unless your hot end is all metal, the Bowden tube likely forms the seal to the nozzle.  See if the length of the tube going into the hotend goes down to the nozzle.  The end of the tube needs to be smooth to make the seal and the seal surface to the nozzle needs to be clean or the filament material soft enough to push out of the way.  Pull up to release the tube.  When you push down to lock the tube in, it should push the tube against the nozzle.
For an all metal hot end follow the procedure below.
Before camera picture:
Sounds like you lost the seal between the nozzle and the heat break.  For most hotends (unless you have a plastic tube that pushes up against the nozzle) heat up to the maximum hotend temperature, then tighten the nozzle tight against the heat break in the heat block, to form a seal between the two.
If the nozzle tightens against the heat block before the heat break, you won't get a seal.  You should see some threads of the nozzle exposed and not in the heat block.
Take care not to over tighten the heat break in the heat sink because the heat break is thin going into the heat sink to minimize heat conduction and will easily break.
If your seal to the nozzle is with a plastic tube, investigate why you don't have a seal.
Looking at picture:
Follow the above procedure while the heat break to the heat sink is of less consern since it appears that separate screws tighten it into the heat sink.


How to remove a PLA print stuck to a BuildTak sheet BuildTak is great because the printed plastic really sticks to it, it pretty much solved all the problems I had with prints detaching from the buildplate during printing.

However, it does sometimes cause the opposite problem of prints sticking too much and just not detaching from the build plate.

I'm specifically not asking how to prevent this from happening - I'm asking what to do after I made a mistake and now have a print that isn't coming loose.

I would do as fred_dot_u initially suggested, by increasing the bed temp (or using a hair dryer) to heat the BuildTak. Then, use a small fan to quickly cool the platform (or at least quicker than room temperature). An ice pack on the build plate/part could also work. This drastic fluctuation between the build platform (or BuildTak) and the part should make it easier to remove the part.

This works because the temperature coefficient is going to be different between the build plate, BuildTak, and the 3D printed part. So, each part rises and falls in temperature at different rates. When objects are heated and cooled, they expand and contract (respectively). Essentially, as each object expands and contracts at different rates, the objects begin to separate.

A good example is if you've ever placed a jar into the fridge/freezer to make it easier to open. Typically the jar is glass and the lid is either plastic or metal. You'll notice that the lid is significantly easier to open, as opposed to its original state, because the lid and the jar physically react differently to temperature changes.

Also, here is a good article explaining a few different ways to remove a stuck part. (for prosperity sake, here's a quick list):

Brute force. Just try to yank on it until it pries off.
Sharp objects. Try using a small blade to get under a corner of the part and wiggle the part a bit. Careful not to break the blade and send it flying.
Utilize temperature difference. I already explained this above.
Use solvents. I didn't know this, but apparently there are solvents in the market that are targeted for 3D printing maintenance. Essentially its just an alcohol-based liquid...
Use floss. Another cool idea that's related to using a sharp object, using dental floss. Basically, any small object that you can remotely wiggle under the part and give you more leverage to yank on it.
Invest in a flexible build platform. I've personally heard some mixed reviews on these (in present day of 2016). But material science is getting better every year, so who knows what will be available soon.


Can an extruder rated for 24 V work with 12 V ATX power supply? Heads up: I'm not good with electronics and only have a vague idea of it's inner workings.

I have a E3D V6 Extruder rated for 24 V, that i plan to use in my 3D printer. Will there be any problems with it if powered by 12 V? Will it take longer to heat up? Will it be able to heat up enough to melt PLA? Will it work at all for that matter?
If there are any other quirks or potential problems that I overlooked, please let me know.

Electrical engineering can be quite complex, but in this case you can save yourself with same simple equations/relations. Using the following formulae:

Voltage ($\ U$) equals current ($I$) multiplied by the electrical resistance ($R$)

$$ U=I \times R $$

and

Power ($P$) equals the square of the current multiplied by the electrical resistance

$$ P=I^2 \times R $$
can be rewritten using the first formula to:
$$ P= \frac{U^2}{R} $$

Applying these formulae to a 40 Watt, 24 V heater element, the electrical resistance (in $\Omega $) is calculated by:
$$ \frac{{(24\ V)}^2}{40\ W}=14.4\ \Omega $$

Running this heater element with 12 V will lead to a power of
$$ \frac{{(12\ V)}^2}{14.4\ \Omega}=10\ W $$

The heat produced is proportional to the square of the current multiplied by the electrical resistance, halving the voltage is quartering the heat output. This will heat up very slowly! If it is able to reach the required temperature that is. Calculating the temperature is far more difficult, but if you are interested in doing so, please look into this answer from the Electrical Engineering Stack Exchange.


How do you make sure you have the right voltage on the trimpots on an A4988 stepper driver? I've been looking into this, but:

I'm not certain how to configure my multimeter;
I don't know how to keep the voltage going, and;
I don't know how to keep the multimeter connected to the VMOT?

I'm told you're supposed to aim for about 1 A.

I want to add some points and clarifications to the answer that @darthpixel already has given. Most information you need is in there, I want to give some more practical advice, since that is what I understand you're question is asking for. I'll start with some points on the more theoretical side, though:

notice that the Vref is not a voltage that is passed on to your motor. The described pipe analogy is very good, but the Vref is outside of this analogy. The reference voltage Vref is only used to set the current limit. This seems confusing, but has electronic reasons. One can understand the major (side-)benefit easily: Voltages are very easy to measure externally, because you connect your voltmeter in parallel. If you wouldd want to measure the current, you would need to get your ammeter in series with the circuit.
The stepsticks work by supplying the needed current for movement of the motor (current, because it works by creating magnetic fields), the voltage the stepstick supplies is 'just' supplied as high as needed to feed the desired current through your motor (determined by its resistivity/impedance). This just as an add-on.

Now to the practical side and the application of darthpixel's answer and the above:
You want to measure the reference voltage to limit the current that produces the torque, but also heats up the motor - let darthpixel's advice be your guide: if you can't touch it because it is too hot, then there is too much current, i.e. Vref is too high). To do so:

Set your multimeter to volts, range can be autorange or something bigger than 2V.
Connect one lead of your multimeter to the ground of your Prusa i3 controller board's power input (I use the screw that fastens the ground input of the RAMPS). The other lead goes directly to the center of the trimpot on the Stepstick. I took the best of my paint skills to create an image showing the process:
Note the value you read (12V power has to be on)
Use an insulated screwdriver and turn the trimpot slightly.
Get a new reading by repeating the measurement process.
Repeat the whole process until you get the desired Vref.

Warning: While I've had no problems turning the trimpot while everything was switched on (with my DRV8825 drivers), you should switch the power supply off when doing so.
The described process allows only for a stepwise and rather slow setting of the Vref, but this is the easiest way I've found. I have read of people that use a crocodile clamp to attach the multimeter to the screwdriver for a readout while turning.
If you don't have any idea whether you need more or less current on the motor at the moment, check your resistors on the board and calculate the Vref you should need (see darthpixel's answer for the formula). I would however just do what darthpixel already suggested: figure out the trimpot position by ears and touch: klicking motor: go to higher Vref. Can't touch the motor for more than some seconds: go to lower Vref. It might be a lengthy process, but in the end you'd need to do it anyway to get the best out of the printer!


Printer going wild mid print Mid way through prints the print head will crash into the print, then crash into the bed, raise up about 3 inches, and start swinging back and forth over one part of the bed.

I have had successful prints with the same firmware, but this just started happening and I cannot wrap my head around why. The part of the bed it swings back and forth over is the same on every print. It also do not occur at any particular time, on some prints it will happen after the first few layers, on other it will happen mid way.

My printer is an anycubic kossel delta running marlin. I have tried re uploading marlin and switching slicer software. I have used mattercontrol, cura and ultimaker cura.

Thank you!

For anyone having the same issue I found out it was due to a Z axis motor lock up because the pulley attached to it would get stuck under the bed. I found out because I tried to print again and it locked up completely and I had to pull it out with pliers. Just finished an 18 hour print to confirm


Will I brick my Ender 3 if I try flashing without a bootloader? I have a recently purchased Ender 3 Pro, and it may well already have a bootloader on it. I don't have the various adapters to flash one yet.
Is it destructive to try flashing over USB without the bootloader? Does it fail in a non destructive way?
I have watch some tutorials which claim that it's fine to just try it, but I'd like to be more sure about that.

My understanding is that if there is no bootloader, you can't flash over USB; you need an ISP programmer attached to the board. So if you're able to flash over USB, that means there is a bootloader, and updating via the bootloader should leave the bootloader in place and just overwrite the rest of the firmware. I'm not sure how strongly this is enforced, though, so you may want to wait for supporting comments/answers from others.
Of course it's always possible to damage your printer in ways that require replacement of the board or at least some parts on it if you flash bad firmware, so you need to be cautious anyway.


Plug sdramps module and Anet A8 LCD together into RAMPS smart adapter I want to upgrade my Anet A8's motherboard (the stock one is broken anyway, see: Anet A8 reading 739°C from the extruder thermistor!) to the RAMPS 1.4, without having to get a new LCD/microSD module. I am thinking of getting both a smart adapter and sdramps, then maybe plug the sdramps and the stock Anet A8 LCD into the smart adapter, but I am not sure whether the sdramps module has a different pinout than the RAMPS smart controller, which is what the smart adapter is made for.

Can someone confirm whether they have the same pinouts or not, or give me some alternatives to my idea?

The Anet A8 uses a simple LCD with 5 buttons, the problem is that the buttons do not use digital pin signals, instead analog pins are used. Based on the pressed button, with corresponding resistance the firmware knows which button is pressed. The RAMPS smart adapter uses digital pins, so the Anet LCD is not compatible with the smart adapter, you may wan't to opt for a cheap Chinese 12864 LCD smart controller, they are about $8, they are compatible.

The topic Connecting (Anet A8) 2004 display to MKS GEN L shows you to hook up the Anet A8 LCD to a RAMPS board. You do not use the smart adapter, instead you use AUX2. You only have to change 2 wires (interchange them on AUX2) and you will be able to use the display. The reason you cannot use the smart adapter is that the 5 button display requires analog pins, which are not available on the smart adapter, but are available on the AUX2 header.


What is the 3D printer filament (or pellet) most resistant to bending at high heats? I'm looking to 3D print a structure that won't deform in high heat, up to about 220 °C. The filament itself can be 3D printed all the way up to about 380 °C.

PEI seems like it could be a viable option. I found some here. This PEI filament  specifies the glass transition temperature at 217 °C.

Would this filament work? Are there any other types of materials that would fulfill this engineering requirement?

Your expected operating temperature exceeds the glass transition temperature by 3 °C. This implies that the structure will become weak and can deform under load.

Note that you cannot simply print PEI on a normal machine, it requires a special high temperature capable printer with hot end temperatures up to 400 °C and heated bed over 120 °C up to 160 °C, furthermore it will need a heated chamber (up to about 80 °C) which requires special care to cooling and placement of electronics and motors.

Not having specified what kind of structure you require, you could look into steel.