I could use some help
-
@droftarts you’ve been busy! To be clear, these setting are the software solution versus rewiring the switches.
And, they include reinstalling the Z-probe (BLTouch). Is that what I’m seeing?
-
@droftarts @alankilian Interesting the Driver 2 is “unassigned,” to accommodate the Z-pride in its own assignment area of the software.
-
@mac I updated my post so it looks more like your setup. I'd chosen the wrong pins.
As I've said before, it doesn't matter which way around you wire a switch to the pins on the Duet. If you are using C and NO, wire one to the IO header GND, and one to io[x].in. Same if you are using C and NC. It's just the signal is different, so that needs changing in the configuration.
Think of it this way;
- NC means Normally Closed. In a circuit, the switch in 'ON'. A light bulb in the circuit would be on. If you flick the switch, the light bulb turns off.
- NO means Normally Open. In a circuit, the switch is 'OFF'. A light bulb in the circuit would be off. If you flick the switch, the light bulb turns on.
The Duet doesn't mind which way it's wired, it just need to know the way you want the logic to work.
The answer, really, is to test your endstops before relying on the homing macro to be correct. For each endstop, send M119 in DWC. This will report the state of the endstop. Then press and hold the endstop, and send M119 again. The state of the endstop should change. When it's not pressed, it should say "not stopped". When it is pressed, it should say "at max stop" (or "at min stop" if that's the way it's been configured.
Ian
-
@mac
To be clear, these setting are the software solution versus rewiring the switches.
Yes
And, they include reinstalling the Z-probe (BLTouch). Is that what I’m seeing?
You've got one, it was working, may as well use it!
Interesting the Driver 2 is “unassigned,” to accommodate the Z-
prideprobe in its own assignment area of the software.Yes. But... you can have a Z endstop as well, if you want. Generally, best to use the Z probe for Z homing, but there are cases when it's good to have another option. If your printer stops mid-print (eg power failure), the Duet can save the position in the current file (it detects the power drop and quickly saves this info before power completely disappears). When power is back on, and assuming you want resume the print, how do you home the printer? X and Y is usually fine to home, but homing Z with the probe will probably cause it to hit the print. In this case, if you set up a max Z endstop, the printer can home Z to the top of the frame (as your printer moves the X axis up on Z), and then continue with the print.
Ian
-
@droftarts "In this case, if you set up a max Z endstop, the printer can home Z to the top of the frame (as your printer moves the X axis up on Z), and then continue with the print."
Is a "max Z endstop" a virtual endstop (versus the real z-stop)? Is it a record of the elevation when the printer lost power, that is used to return to the print with?
Mac
-
@droftarts does selecting Z-Probe render the Low end selection moot? Is that why your picture didn't show Z as "High end?"
-
@fcwilt now THAT! is an endstop! (referring to the picture of the lovely blue endstop)
-
@droftarts I learned yesterday that there are two settings for Microstepping: x32 and x32 (on). I had changed my settings to x32 (on) because the Xvico board has a 32 bit processor. I thought they would use 32 (bit?) microstepping, so to be inline with their choices, I should use those choices on my board.
What's the difference? Can I use an even higher setting to get more microstepping?
Mac
-
@mac said in I could use some help:
Is a "max Z endstop" a virtual endstop (versus the real z-stop)? Is it a record of the elevation when the printer lost power, that is used to return to the print with?
No, it's a real endstop, just at the top of the frame. When power is lost, all the Duet can do is record the current position. When it is turned back on, the printer needs to be homed in all three axes, so that it can resume at that position. So the X axis gets lifted in Z until the Z endstop is triggered, which then gives the machine the Z position. Basically, it's just two different ways of finding Z home, depending on the circumstances.
does selecting Z-Probe render the Low end selection moot? Is that why your picture didn't show Z as "High end?"
Selecting Z Probe forces the homing macros to use the Z probe for Z homing. Your Z probe can't measure at the high end. (Theoretically you could use a probe at the max end, but you would need to mount it at the top of the machine, and then you wouldn't be able to probe the rest of the bed with it, so it would be the same as fitting a microswitch there.)
Ian
-
@droftarts this is where I post a funny picture of myself with my eyes crossed. Maybe I'm using my hands to suggest that my head is about to explode.
-
@droftarts said in I could use some help:
Generally, best to use the Z probe for Z homing
I will offer a different opinion here.
I prefer homing with a Z endstop sensor.
Homing with a Z probe requires that X and Y be homed first and that code includes short Z movements to be sure the nozzle is clear of the bed while moving X and Y.
With a Z endstop sensor you can home Z first and usually at a faster speed then you can with a Z probe.
And since Z is homed first you need no Z movements when homing X and Y.
I have both "low" and "high" Z endstop sensors which can be "enabled" as needed via M574 commands.
Again, just my opinion.
Frederick
-
@droftarts can I put a date after a generated config.g file? I'm saving all of them, and right now, the only way I've found that I can keep track of them is to order them in a folder as "Most Current."
-
@mac said in I could use some help:
@droftarts can I put a date after a generated config.g file? I'm saving all of them, and right now, the only way I've found that I can keep track of them is to order them in a folder as "Most Current."
You can name the config.g file anything you wish when you save it.
I don't use dates, since that information is already part of the file metadata.
I use version numbers:
- config_001.g
- config_002.g
- config_003.g
and so forth
BUT to use a config file with a changed name it will have to be renamed back to config.g
Frederick
-
@mac said in I could use some help:
@droftarts I learned yesterday that there are two settings for Microstepping: x32 and x32 (on). I had changed my settings to x32 (on) because the Xvico board has a 32 bit processor. I thought they would use 32 (bit?) microstepping, so to be inline with their choices, I should use those choices on my board.
What's the difference? Can I use an even higher setting to get more microstepping?
Mac
Microstepping has NOTHING to do with the processor. Duet has a 32-bit processor too, but we generally recommend x16 microstepping, with interpolation turned 'on'. Using x32 microstepping will limit the maximum step rate, and generally doesn't offer any extra accuracy. Why? Now, how much stepper motor theory do you want to know?! Here goes...
Stepper motors move in... steps. Generally, stepper motors that are used in 3D printers are either 1.8° or 0.9° motors, and each full step rotates the motor that far. That means they have either 200 or 400 'full' steps per rotation (yours are 1.8°/200 steps per rotation). Remember the 4 wires/2 phases you connected to the stepper driver? Each pair connects to a coil. As each coil is energised, the magnets on the motor shaft move towards it. By controlling the order in which each coil is turned on and off, you can control which way the motor turns. There's a good explanation here: https://youtu.be/eyqwLiowZiU
So that is full stepping. Rather than just turning the coils on and off, if you use a variable voltage, you can add extra steps between the full step. This is microstepping, and increases the positional resolution (ie instead of moving 1mm for each step, it can move 0.1mm for each step). However, most motors have an accuracy on the full step of +/- 5°. When you do the math, this means you don't get much more positional accuracy once you go beyond about x10 microstepping. You can generally see a small improvement between x8 and x16, so we recommend x16. Using higher microstepping has its uses, but comes with an overhead on the processor if you are trying to move the axis fast, and will limit the step rate.
Lastly, interpolation. This is controlled by the stepper driver itself. It smooths the voltage transition between one microstep and the next, making movement smoother. You want that switched on.
TL/DR: Use x16 microstepping, with interpolation on. If you change the microstepping, it will also affect you steps per mm (M92) for that axis.
Edit: Though you're probably okay with x32 microstepping if you're not planning on moving the axes very fast.
Ian
-
I changed the microstepping back to 16x. I need to check to see if I had interpolation checked.
Mac
-
-
droftarts said in I could use some help:
If you change the microstepping, it will also affect you steps per mm (M92) for that axis.
@Mac
To expand on what droftarts said:
If you place the M92, in the config.g file, before the M350 and set M92 based on 16x micro-stepping then you can freely change M350 while leaving M92 alone.
The firmware will make the needed adjustments.
Frederick
-
With 16x (on)
-
@mac From the video, it looks like you haven't changed your steps per mm (you need to halve them if you go from x32 to x16), and at the least your Z motor is going the wrong way.
Did you test your X and Y endstops with M119?
Ian
-
; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X220 Y220 Z240 S0 ; set axis maxima ; Endstops M574 X2 S1 P"!io5.in" ; configure switch-type (e.g. microswitch) endstop for high end on X via pin !io5.in M574 Y2 S1 P"!io6.in" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin !io6.in M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M950 S0 C"io3.out" ; create servo pin 0 for BLTouch M558 P9 C"io3.in" H5 F120 T3600 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X15.875 Y0.625 Z2.5 ; set Z probe trigger value, offset and trigger height M557 X5:190 Y5:215 S10 ; define mesh grid