Welcome! Log In Create A New Profile

Advanced

Switches for x,y,z

Posted by Joar107 
Re: Switches for x,y,z
November 09, 2015 03:51PM
Quote
Treito
The sensor works indeed better than the original sensor but only partly. It is nearly light independant. Really funny. I put a really bright light source under the sensor and it was still able to detect the height. I only had a difference of 10 digits with light on and off.

The light you referenced that you tested with is an LED light. This will not affect an IR reflective sensor at all (because it has no IR output). If however you switch on an incandescent room light or have daylight (sunlight) fall on the printer, I think you will see some very large variations. The original Ormerod used a reflective sensor, and it worked fine in a room illuminated by florescent or LED lights.

Dave
Re: Switches for x,y,z
November 09, 2015 04:53PM
Hello Dave,

like I said the original sensor is affected by that high LED light. At home I used fluorescent lights for more than 10 years and I switched to LED lights two years ago. I never have watched problems with environmental lights, but as I described above the original sensor jumps by 800 digits and the other sensor only by 10 digits if I use this LED light.
Even using the modulated version of the sensor board does not show any hint that the sensor may be affected by environmental lights at me. Luckily I placed the printer in a way where the sun could not shine directly to. Unfortunately the curve about the wavelength is missing at the datasheet of this sensor.

Nevermind I would like to run some tests with the original board, the MS method, a modified version of dc42's board and a tilt sensor. Dependent from the results I will run other tests the next month but if I will use a modified board for my forthcoming tests it would not matter which sensor I would use as only the jump is important, but I have both sensor types here. So let me say for example the speed would be reduced at 600 and as the sensor board measures 700 the switch is operated and the value jumps to 900 or something like that. Or I will use a method like the homing for y-axis as the switch is operated the z-axis goes up and at least slowly down again. I am curious about the results


Slicer: Simplify3D 4.0; sometimes CraftWare 1.14 or Cura 2.7
Delta with Duet-WiFi, FW: 1.20.1RC2; mini-sensor board by dc42 for auto-leveling
Ormerod common modifications: Mini-sensor board by dc42, aluminum X-arm, 0.4 mm nozzle E3D like, 2nd fan, Z stepper nut M5 x 15, Herringbone gears, Z-axis bearing at top, spring loaded extruder with pneumatic fitting, Y belt axis tensioner
Ormerod 2: FW: 1.19-dc42 on Duet-WiFi. own build, modifications: GT2-belts, silicone heat-bed, different motors and so on. Printed parts: bed support, (PSU holder) and Y-feet.
Ormerod 1: FW: 1.15c-dc42 on 1k Duet-Board. Modifications: Aluminium bed-support, (nearly) all parts reprinted in PLA/ ABS, and so on.
Re: Switches for x,y,z
November 09, 2015 06:27PM
I am surprised you found that the original Ormerod 1 sensor was sensitive to LED lighting, because I didn't. However I found it was extremely sensitive to halogen lighting. I had to replace an overhead halogen bulb by an LED equivalent to get it working at all.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Switches for x,y,z
November 10, 2015 12:45AM
As I said it is a powerful light. The sensor is not affected by the room light LED with 750 lumen. I put the LED light directly underneath the sensor. The punctual beam is higher than the room light.


Slicer: Simplify3D 4.0; sometimes CraftWare 1.14 or Cura 2.7
Delta with Duet-WiFi, FW: 1.20.1RC2; mini-sensor board by dc42 for auto-leveling
Ormerod common modifications: Mini-sensor board by dc42, aluminum X-arm, 0.4 mm nozzle E3D like, 2nd fan, Z stepper nut M5 x 15, Herringbone gears, Z-axis bearing at top, spring loaded extruder with pneumatic fitting, Y belt axis tensioner
Ormerod 2: FW: 1.19-dc42 on Duet-WiFi. own build, modifications: GT2-belts, silicone heat-bed, different motors and so on. Printed parts: bed support, (PSU holder) and Y-feet.
Ormerod 1: FW: 1.15c-dc42 on 1k Duet-Board. Modifications: Aluminium bed-support, (nearly) all parts reprinted in PLA/ ABS, and so on.
Re: Switches for x,y,z
November 12, 2015 12:32PM
Quote
dc42
You can use both a Z switch and a proximity sensor if you want, just use M574 to enable or disable the switch. You could also set up macro files to change the Z probe trigger height to handle different bed surfaces. You may find the trigger height varies less if you put black paper under the glass, or paint the aluminium heat spreader black.

Hi DC,

I looked at the RepRep G-Code Wiki, and it states " if the parameter is zero, the endstop switch for that axis is used for homing instead."

I have fitted a microswitch fitted similar to KimBrown's design. I want to use the micro switch for homing Z, and for the Z-Probe when I do a G30. I want to use the normal dc42 height sensor for X Homing.

The microswitch is connected to the Z Endstop pins. It is currently wired in the always closed position, clicking it breaks the circuit (the switch can also be wired to work the opposite way).


So if I understand correctly, probing should be possible by doing the following:

M558 P0 Z0; Don't use height sensor for Z-probe, fallback on limit switch
M574 Z1 S1	;Set Endstop type for Z-Axis to End-Stop at 0, active = high
G30

Running M558 on it's own then prints "Z Probe type 0, channel 0, dive height 3.0, used for these axes: X"

But if I then execute a G30, the head doesn't stop when it activates the microswitch

However, the following seems to work

M558 P0 Z0 ;Don't use z-probe for Z endstop
M574 Z1 S1	;Set Endstop type for Z-Axis to End-Stop at 0, active = high
G1 Z-2000 F200 S1 ; home z

Basically, my question is, how to I get the G30 command to use the microswitch? Can you perhaps spot the obvious mistake? Below is my config.g for reference:

; Configuration file for RepRap Ormerod
; RepRapPro Ltd
;
;M111 S0 ; Debug off
M550 POrmerod ; Machine name (can be anything you like)
M551 Preprap ; Machine password (currently not used)
M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xED ; MAC Address
;New version of firmware supports DHCP via 0.0.0.0
M552 P192.168.0.98 ; IP address
M553 P255.255.255.0 ; Netmask
M554 P192.168.0.1 ; Gateway
M555 P2 ; Set output to look like Marlin
G21 ; Work in millimetres
G90 ; Send absolute coordinates...
M83 ; ...but relative extruder moves
M906 X800 Y1000 Z1000 E800 ; Set motor currents (mA)
M563 P1 D0 H1 ; Define tool 1
G10 P1 S0 R0 ; Set tool 1 operating and standby temperatures
M92 E426 ; Set extruder steps per mm - 364 is for Black CADHouse PLA
;M92 E424 ; Set extruder steps per mm - 424 is for Funky Blue CADHouse PLA
M574 X0 Y2 Z0 S1	; Y End Stop is at the end - DC Firmware specific
M558 P1 ; Use an unmodulated Z probe - DC firmware
;G31 P500 Z2.75 ; Set Z probe height and threshold - DC firmware
G31 P500 Z2.60 ; Set Z probe height and threshold - DC firmware
M561 				  ;Cancel any axis compensation
M557 P0 X55 Y25       ; Five...  
M557 P1 X55 Y175      ; ...probe points...
M557 P2 X175 Y175     ; ...for bed...
M557 P3 X175 Y25      ; ...levelling...
M557 P4 X115 Y100    ; ...DC Firmware style - DC recommends using the average of the X and Y's
;M557 P4 X125 Y100     ; ...DC Firmware style
M556 S78 X0 Y0 Z0 ; Put your axis compensation here
M201 X800 Y800 Z15 E1000 ; Accelerations (mm/s^2)
M203 X15000 Y15000 Z100 E3600 ; Maximum speeds (mm/min)
M566 X600 Y600 Z30 E20 ; Minimum speeds mm/minute


Thanks!

Edited 1 time(s). Last edit at 11/12/2015 01:43PM by pandionx.
Re: Switches for x,y,z
November 12, 2015 05:07PM
Is the microswitch normally closed (and opens when the probe is triggered), or normally open? By default the firmware assumes a normally-closed switch.

You can test the Z probe by looking at the probe value in the web interface, or by sending G31 from Pronterface. For a switch it should report 1000 when triggered, 0 when not triggered.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Switches for x,y,z
November 12, 2015 05:46PM
Hi DC,

The switch is set to be normally closed at the moment.
Just to verify - I originally posted a question, found my silly mistake (operator error sad smiley ), but then ran into a new problem.
I then edited my question above to reflect the real problem, instead of the red herring I caused. I think your response might refer to my original question?

Thanks,
Dieter

Edited 1 time(s). Last edit at 11/12/2015 05:49PM by pandionx.
Re: Switches for x,y,z
November 12, 2015 09:15PM
Yes I answered the original version of your question. The answer is that you cannot use a microswitch connected to the Z endstop connector for G30 probing, because G30 by definition uses the Z probe. What I think you can do is to connect the microswitch to the E0 pins and use M558 P4 in config.g. In the homex,g and homeall.g files, use M558 P1 to switch to the IR sensor prior to X homing, and then M558 P4 to switch back again.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Switches for x,y,z
November 13, 2015 12:33AM
Ok, I reread the sentence I linked to in the gcode wiki, and I see now it specifically says "for homing". I originally took that to mean probing as well, but I understand now the concepts of homing and probing are separate. The fact that we can use the z-probe for both is merely a matter of convenience and a by-product of a particular printer's mechanical implementation.

It does indeed work when I connect the microswitch to the extruder motor endstop pins, my problem was that my IR sensor was plugged into the same pins, so I thought I could only use one of them at a time.. But again I think the devil is in the details - I see you refer to E0. And upon closer inspection I see the microswitch uses the 2 outside pins of the 3 pin endstop connector, while the IR sensor uses one outside and the middle pin. So I am guessing that means I can combine the IR switch and microswitch connectors into a single 3 pin connector; microswitch on the one outside pin, sensor on the other, and then a combined ground connected to the middle pin. Do I understand correctly?

Edited 1 time(s). Last edit at 11/13/2015 03:09AM by pandionx.
Re: Switches for x,y,z
November 13, 2015 03:33AM
Yes. Both the IR probe and the microswitch use the ground pin of that connector. The IR probe uses the +3.3V pin and the switch uses the input pin. So you can connect both at once.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Switches for x,y,z
November 14, 2015 01:01PM
Quote
Treito
I put the paper down under the nozzle and moved it slowly down until I barely could pull out the paper.

Thats wrong - move down until you can barely feel the paper - use the nozzle as you would use any other fine measuring tool, micrometer etc., any use of force will offset your measurement

Quote

I noticed the values, entered it and the skirt looked awful.

No, remove the 0.10mm paper and lower the nozzle same distance, thats the whole point of using 0.10mm paper

Quote

Besides that: We live in the 21st century so I demand from my printer to do this automatically. tongue sticking out smiley

Fair enough, thats a valid point!

Quote

Besides regarding my Ormerod 1 the bed leveling seems to change for some reasons but I do not exactly why. One possibility could be if you remove a part and it stucks somewhere and a screw is not 100% tight you may get twisted rods.

I remove the glass bed before removing a print, just to play it save that is as I do not have any problem with the smooth rods, the printer (BigFoot) is bolted down on a cast aluminium lower part from a electric saw



Quote

Besides the additional costs for a MK3 aluminium heated bed to a MK2B or MK2A is less than the cost for the glass if you would like to have a good glass (borosilicate).

Any old 4mm windows glass is fine with me, I get it for free and cut it myself..and also often myself :-)

Quote

Did you ever tried a FLIR?

Nope, but somebody did long time ago and posted a picture (the fanduct backwash problem)

Quote

I do not believe that the heat is spreaded exactly the same high all over the bed you will have hot spots or you need a damn good insulation which overtakes this job.

I do have good insulation, radiator foil, reflective side up, bed goes to 110C in 10 minutes, that is with the original Ormerod1 ATX (11.0 volt at duet in)

BTW, radiator foil will start melting at 150C so will change it for something else later, but sure will keep a reflecting layer

Erik
Re: Switches for x,y,z
November 15, 2015 02:34AM
Hello Erik,

I think I will not quote anything, I hope this is okay.
At first: Many thanks for your answers.
But what do you mean by feeling the paper? Of course I did not use much force trying to pull out the paper, only the smallest finger and try to move it. I also forgot to mention that I of course tried to use the manually bed leveling with the paper method and the skirt looked awful, too. I always got better results using the sensor for manually leveling except for the front screw (middle screw). I always have to change this by looking at the skirt fault. The sensor often fails until I am in a region where the bed is leveled. So I can control this afterwards. Really strange but I think this is caused by the extreme height difference. For the moment I did not try to level my Ormerod 2.
Maybe you are lucky to get a 4mm sheet of glass for free, others not. The second problem is that the manufacturing process of this kind of glass does not guarantee that this glass is even. To be 100% sure you need borosilicate glass which starts at 6€ for our printer. I forgot to mention that the MK3 heated bed has another advantage: It is more even than the MK2 versions. In thoery you can even print directly on it. Replikeo does not provide any other surface anymore as the support told me.
The fact that you may use a good insulation (I can not rate it for two reasons: I did not see it and I do not have enough experience) does not mean that you would not get any hot spots regarding your surface because you need a good heat spreader to spread the heat equal allover the area. Regarding the insulation I will soon try to use a cork plate. Unfortunately it is only sized 190mm x 190mm, but as I use a MK3 heated bed I should see some kind of effect. It will be much better than now, I guess.

Yesterday I was able to run some tests using optical parts like IR-LED and IR-transistors. I now fully understand the principle of dc42's sensors. I have to say that this is really clever. Of course I understood the principle before and I could imagine how this worked but then I could "see" how this practically works step by step (without Microcontroller for example). Personally for me these tests were important to fully understand the problems regarding the original proximity sensor. This method cannot work very well. Using a proximity sensor I think there are only two possibilities which can work: Using a Microcontroller and two sensors (or at least two receivers) like dc42 did. This is indeed technically the best method and it looks professionally. The second possibility would be to use Kim's tilt method. Until know I only have theoretically thoughts but these should be work even with slowing down that means you get an analogue signal. For this method I still have to run several tests but in my eyes it will always look like a workaround and it will not beat the accuracy of dc42's sensor but it would be cheaper.

Mechanically the best method would be the servo method and a micro switch directly contacting the bed surface. Besides this looks very good when the MS flips down and is lifted afterwards.
This would need a digital output. The only way I know so far would be using a Duet shield and a PWM output. As I would like to add a second fan to my printer I could not use the PWM output from the Duet board. And as I did not get any answer it seems there is no digital output available which can be controlled without modifying the firmware itself.

Best regards,

Sven


Slicer: Simplify3D 4.0; sometimes CraftWare 1.14 or Cura 2.7
Delta with Duet-WiFi, FW: 1.20.1RC2; mini-sensor board by dc42 for auto-leveling
Ormerod common modifications: Mini-sensor board by dc42, aluminum X-arm, 0.4 mm nozzle E3D like, 2nd fan, Z stepper nut M5 x 15, Herringbone gears, Z-axis bearing at top, spring loaded extruder with pneumatic fitting, Y belt axis tensioner
Ormerod 2: FW: 1.19-dc42 on Duet-WiFi. own build, modifications: GT2-belts, silicone heat-bed, different motors and so on. Printed parts: bed support, (PSU holder) and Y-feet.
Ormerod 1: FW: 1.15c-dc42 on 1k Duet-Board. Modifications: Aluminium bed-support, (nearly) all parts reprinted in PLA/ ABS, and so on.
Re: Switches for x,y,z
November 15, 2015 04:18AM
You could also use a force sensitive resistor in the head mount to detect when the nozzle touches the bed. That would give you an analog signal. I started designing an X carriage mount with an FSR built in to the idler bearing mount, but never finished it.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Switches for x,y,z
November 15, 2015 05:08AM
This is planned for the next month as I need an elegant and more or less cheap way for my own design. My Ormerod 2 uses one of these widely spreaded cheap chinese nozzles like the E3D. I guess here it will be much easier to implement a FSR. My future design will not allow the nozzle to tilt so using a FSR would be much easier. Unluckily a FSR is a little bit expensive.

I also would like to test a tilt sensor. I would like to run every test using my Ormerod 2 as this nozzle design and my nozzle holder make things much easier to print an adapter part for a MS, an optical switch or whatever for testing purpose only (as the holder is not designed for a long term relationship between itself and a new device).
But I just finished preparing a new nozzle. This time I used some tools to tighten all connections so the filament would not be able to find another exit - I hope so.

I just tool a look at the datasheet. The tilt sensor is out of the race. The tolerance is 15°. That means in detail it has a dead zone of 15°. Even if this means that this affects only two different sensors I do not think that the repeatability is high enough. Bummer!


Slicer: Simplify3D 4.0; sometimes CraftWare 1.14 or Cura 2.7
Delta with Duet-WiFi, FW: 1.20.1RC2; mini-sensor board by dc42 for auto-leveling
Ormerod common modifications: Mini-sensor board by dc42, aluminum X-arm, 0.4 mm nozzle E3D like, 2nd fan, Z stepper nut M5 x 15, Herringbone gears, Z-axis bearing at top, spring loaded extruder with pneumatic fitting, Y belt axis tensioner
Ormerod 2: FW: 1.19-dc42 on Duet-WiFi. own build, modifications: GT2-belts, silicone heat-bed, different motors and so on. Printed parts: bed support, (PSU holder) and Y-feet.
Ormerod 1: FW: 1.15c-dc42 on 1k Duet-Board. Modifications: Aluminium bed-support, (nearly) all parts reprinted in PLA/ ABS, and so on.
Re: Switches for x,y,z
November 16, 2015 07:17AM
Quote
Treito
... The second problem is that the manufacturing process of this kind of glass does not guarantee that this glass is even. To be 100% sure you need borosilicate glass which starts at 6€ for our printer.

I disagree. Float glass is more than flat enough for the purpose - it is made by floating molten glass on a surface of molten tin and produces a surface that is flat enough to be of optical quality (which is better than we need). The advantage of borosilicate glass is not with its surface quality, but its low coefficient of expansion, making it resistant to thermal shock. The heat bed does not however heat high enough or fast enough for this to be a problem (at least I have never heard of a case of heat cracking), so the use of borosilicate is unnecessary (and moreover it may well have a surface that is less flat than the cheaper float glass).

Dave
Re: Switches for x,y,z
November 16, 2015 09:11AM
But regarding float glass there are different manufacturing processes. One of them guarantees you a 100% even surface but there are cheaper variants where you will not get an even surface. I am not willing to risk this to safe 3€.

BTW I prepared a microswitch so it can be hopefully connected to the proximity input. That makes things easier as I do not have to change all configuration files. Also the x-end-stop should work. The MS is not equipped with a lever. I hope that the adapter will fit. It took me three hours to design (as I first did something wrong) and 5 minutes to print! grinning smiley
As this is an IP67 switch it is a little bit more force needed to trigger it so I hope this works.

Okay three times hope. What is the prize? Green glasses?


Slicer: Simplify3D 4.0; sometimes CraftWare 1.14 or Cura 2.7
Delta with Duet-WiFi, FW: 1.20.1RC2; mini-sensor board by dc42 for auto-leveling
Ormerod common modifications: Mini-sensor board by dc42, aluminum X-arm, 0.4 mm nozzle E3D like, 2nd fan, Z stepper nut M5 x 15, Herringbone gears, Z-axis bearing at top, spring loaded extruder with pneumatic fitting, Y belt axis tensioner
Ormerod 2: FW: 1.19-dc42 on Duet-WiFi. own build, modifications: GT2-belts, silicone heat-bed, different motors and so on. Printed parts: bed support, (PSU holder) and Y-feet.
Ormerod 1: FW: 1.15c-dc42 on 1k Duet-Board. Modifications: Aluminium bed-support, (nearly) all parts reprinted in PLA/ ABS, and so on.
Re: Switches for x,y,z
November 17, 2015 07:25AM
Quote
Treito
Unluckily a FSR is a little bit expensive.

This one is about the same price as a pint of beer and packet of crisps at my local pub. [proto-pic.co.uk]

If you need cheaper parts, it will probably be necessary to make them yourself from scrap. Some ground-up graphite from a discarded pencil between two bits of aluminium foil may possibly do the trick. You do not need an accurate force measurement so no need for sensors that are accurately calibrated and give 100% repeatability - it's purely acting as a binary switch and there will be large changes in force with extremely small Z movements.

Dave
Re: Switches for x,y,z
November 17, 2015 08:23AM
Thanks for the tip. I ca get this one at a German electronic vendor for nearly the same price, but as this vendor is not cheap, I hoped to get this item somewhere for half of the price. I will use a professional item. I am considering also some kind of ring construction, so when the nozzle is lowered and touching the bed a ring is pulled up triggering a MS.


Slicer: Simplify3D 4.0; sometimes CraftWare 1.14 or Cura 2.7
Delta with Duet-WiFi, FW: 1.20.1RC2; mini-sensor board by dc42 for auto-leveling
Ormerod common modifications: Mini-sensor board by dc42, aluminum X-arm, 0.4 mm nozzle E3D like, 2nd fan, Z stepper nut M5 x 15, Herringbone gears, Z-axis bearing at top, spring loaded extruder with pneumatic fitting, Y belt axis tensioner
Ormerod 2: FW: 1.19-dc42 on Duet-WiFi. own build, modifications: GT2-belts, silicone heat-bed, different motors and so on. Printed parts: bed support, (PSU holder) and Y-feet.
Ormerod 1: FW: 1.15c-dc42 on 1k Duet-Board. Modifications: Aluminium bed-support, (nearly) all parts reprinted in PLA/ ABS, and so on.
Re: Switches for x,y,z
November 17, 2015 10:17AM
I mounted a microswitch which is triggered by the tilt of the arm. Perfect looks different. Second problem: At the last two values I think the triggering happens far too late as all parts are already bending. Except for the first value the other values are more or less stable, but why is the first value drifting that much?
16:01:39
G32
Bed equation fits points [50.0, 20.0, -0.162] [50.0, 175.0, 0.089] [195.0, 175.0, -3.196] [195.0, 20.0, -2.336]
16:00:54
G32
Bed equation fits points [50.0, 20.0, -0.683] [50.0, 175.0, 0.074] [195.0, 175.0, -3.161] [195.0, 20.0, -2.277]
16:00:06
G32
Bed equation fits points [50.0, 20.0, -0.607] [50.0, 175.0, 0.074] [195.0, 175.0, -3.144] [195.0, 20.0, -2.297]
15:59:20
G32
Bed equation fits points [50.0, 20.0, -0.188] [50.0, 175.0, 0.072] [195.0, 175.0, -3.065] [195.0, 20.0, -2.295]
15:58:39
G32
Bed equation fits points [50.0, 20.0, 0.016] [50.0, 175.0, 0.134] [195.0, 175.0, -3.023] [195.0, 20.0, -2.255]

The MS is fixed to the nozzle and when the nozzle tilts the MS hits the X-arm. and here is the weak point of this construction: What about this X-axis-Rib? If this is not cut or printed 100% perfect I am getting exactly this problem what I got now. Would it be more accurate to use the X-axis plate?
But this shows me that the triggering should be somehow done directly at the nozzle.

The MS uses no lever and it works perfectly even with the X-axis homing using the bulb. The values of the proximity sensors are 0 non-triggered and 1021 triggered. Is this okay? It uses the changeover contact to switch between 0V and 3.3V. At the common output I used a 1.5k resistor.


Slicer: Simplify3D 4.0; sometimes CraftWare 1.14 or Cura 2.7
Delta with Duet-WiFi, FW: 1.20.1RC2; mini-sensor board by dc42 for auto-leveling
Ormerod common modifications: Mini-sensor board by dc42, aluminum X-arm, 0.4 mm nozzle E3D like, 2nd fan, Z stepper nut M5 x 15, Herringbone gears, Z-axis bearing at top, spring loaded extruder with pneumatic fitting, Y belt axis tensioner
Ormerod 2: FW: 1.19-dc42 on Duet-WiFi. own build, modifications: GT2-belts, silicone heat-bed, different motors and so on. Printed parts: bed support, (PSU holder) and Y-feet.
Ormerod 1: FW: 1.15c-dc42 on 1k Duet-Board. Modifications: Aluminium bed-support, (nearly) all parts reprinted in PLA/ ABS, and so on.
Re: Switches for x,y,z
November 17, 2015 11:58AM
The recommended way to use a microswitch as a Z probe with my firmware fork is to wire the NC contacts to the E0 endstop pins and use M558 P4 in config.g.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Switches for x,y,z
November 17, 2015 12:08PM
That is why I used the 1.5k resistor so I do not have to change the wiring very much. It was only for testing purposes. For permanent usage I would have used the P4 parameter.
However I found the reason (and the triggering is also not working anymore):

At the outer extremes for the X-Axis there is no support for the bed so the nozzle is pushing down the edge of the bed instead of tilting enough to trigger the MS. This may be caused of the needed extra force to trigger this type of switch, but it also shows me the weak point of this method. So I guess the only proper way is to use dc42's probe or to catch the nozzle touchpoint somehow.

I will also try the tilt switch tomorrow. It is some kind of ball inside a housing. If the angle is high enough it rolls and opens to contacts. Perfect for the P4 parameter.


Slicer: Simplify3D 4.0; sometimes CraftWare 1.14 or Cura 2.7
Delta with Duet-WiFi, FW: 1.20.1RC2; mini-sensor board by dc42 for auto-leveling
Ormerod common modifications: Mini-sensor board by dc42, aluminum X-arm, 0.4 mm nozzle E3D like, 2nd fan, Z stepper nut M5 x 15, Herringbone gears, Z-axis bearing at top, spring loaded extruder with pneumatic fitting, Y belt axis tensioner
Ormerod 2: FW: 1.19-dc42 on Duet-WiFi. own build, modifications: GT2-belts, silicone heat-bed, different motors and so on. Printed parts: bed support, (PSU holder) and Y-feet.
Ormerod 1: FW: 1.15c-dc42 on 1k Duet-Board. Modifications: Aluminium bed-support, (nearly) all parts reprinted in PLA/ ABS, and so on.
Re: Switches for x,y,z
November 17, 2015 12:30PM
That means the E0 is switched with GND instead of 3.3V like it is common using Atmel microchips?


Slicer: Simplify3D 4.0; sometimes CraftWare 1.14 or Cura 2.7
Delta with Duet-WiFi, FW: 1.20.1RC2; mini-sensor board by dc42 for auto-leveling
Ormerod common modifications: Mini-sensor board by dc42, aluminum X-arm, 0.4 mm nozzle E3D like, 2nd fan, Z stepper nut M5 x 15, Herringbone gears, Z-axis bearing at top, spring loaded extruder with pneumatic fitting, Y belt axis tensioner
Ormerod 2: FW: 1.19-dc42 on Duet-WiFi. own build, modifications: GT2-belts, silicone heat-bed, different motors and so on. Printed parts: bed support, (PSU holder) and Y-feet.
Ormerod 1: FW: 1.15c-dc42 on 1k Duet-Board. Modifications: Aluminium bed-support, (nearly) all parts reprinted in PLA/ ABS, and so on.
Re: Switches for x,y,z
November 17, 2015 04:59PM
Quote
Treito
That means the E0 is switched with GND instead of 3.3V like it is common using Atmel microchips?

Yes, just like the endstop switch(es).



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Switches for x,y,z
November 17, 2015 05:47PM
Thanks for the answer. I wanted to be sure as I was not aware of it until then. I saw it of course but I did not noticed it. Normally you switch with the positive voltage except for the Atmel processors. grinning smiley But I like the idea. And I also fully support that normally the NC contact is used.

So what can I say so far? The MS method is good for Z-homing but not practicable for ABL Before somebody asks: it is my intend that the bed is not leveled at the moment. When I have finished testing I will try to level the bed as good as I can by hand.
I do not think that the tilt method is suitable for ABL, but for fun I will also try the tilt sensor. I will have to add a LED indicator for helping adjusting. That is why I asked for the connection in detail. Luckily the switch has two independent contacts.

it seems that dc42's level sensors are the second best method in theory and the best method practically for the moment. The best method is not implemented now. It would be registering the contact of the nozzle with the bed somehow, but how? FSR? I am afraid that I can run tests regarding this only in December as I need FSR and I have to collect more things or otherwise the order would be too expensive at that shop.

I do not know these FSR so I am a little bit unsure if they are accurate enough as you would use one force point as reference and if this value is repeatable good enough so you stay within 0.1mm tolerance? On the other hand it could be more accurate than any other methods as optical sensors are using some kind of offset from the nozzle and are dependent from other things like the reflection of the surface and so on.

At least one last thing to the tilt sensor: I did not know if I should start laughing as I recognized that there is a ball inside. Okay this method definitely works and this is cheap in production, but I would have thought of a more modern solution like a special liquid. However I am happy that this switch does not use mercury like other ones I know and the switch is really tiny, but who knows maybe it surprises me. One thing is clear as it is also somehow written inside the datasheet: You cannot replace one switch with another and expect that the point of triggering is the same, but do I need this? For me this would be no reason to refuse this switch but I also do not aspect that this is somehow accurate. I would guess of a tolerance of more than 0.5mm or even more.


Slicer: Simplify3D 4.0; sometimes CraftWare 1.14 or Cura 2.7
Delta with Duet-WiFi, FW: 1.20.1RC2; mini-sensor board by dc42 for auto-leveling
Ormerod common modifications: Mini-sensor board by dc42, aluminum X-arm, 0.4 mm nozzle E3D like, 2nd fan, Z stepper nut M5 x 15, Herringbone gears, Z-axis bearing at top, spring loaded extruder with pneumatic fitting, Y belt axis tensioner
Ormerod 2: FW: 1.19-dc42 on Duet-WiFi. own build, modifications: GT2-belts, silicone heat-bed, different motors and so on. Printed parts: bed support, (PSU holder) and Y-feet.
Ormerod 1: FW: 1.15c-dc42 on 1k Duet-Board. Modifications: Aluminium bed-support, (nearly) all parts reprinted in PLA/ ABS, and so on.
Re: Switches for x,y,z
November 18, 2015 07:15AM
Quote
Treito
Thanks for the answer. I wanted to be sure as I was not aware of it until then. I saw it of course but I did not noticed it. Normally you switch with the positive voltage except for the Atmel processors. grinning smiley But I like the idea. And I also fully support that normally the NC contact is used.

The most common way of providing a digital input from a switch or jumper is to put a pullup resistor on the board, and wire the switch or jumper between the input and ground - this has been the case since before CPU IC's existed. A capacitor is often also placed on the board between the signal and ground both to debounce and also decouple any noise if the application requires. This is especially convenient for boards that have mixed voltage I/O (e.g. 5V and 3.3V), because all switches can share the common ground even if the inputs need pulling up to different voltages. A thermistor/resettable fuse and zener can be fitted to each input to protect against accidental over-voltage on the input (the most common cause of Duet damage!)

Dave
Re: Switches for x,y,z
November 18, 2015 09:19AM
Hello Dave,

there is one simply reason for doing this for Atmel processors: They have an internal pullup resistor so if you use GND as switch contact you do not need an external pullup or pulldown resistor. I also prefer switching GND if I use an Atmel processor for that eason. You only have to think of inverting the input inside the software (at least if you are using C) as an open contact means high input or 1-signal and a closed contact 0-signal.

As suggested the tilt switch is not working in any way as the dead zone is too big. So the only way I see is to allow the nozzle to lift itself when touching the bed (or in my case the nozzle including the cooler) and to use that to trigger a MS. Maybe a FSR can get this but the mounting of this device would be difficult. It may work but I am in doubt that this would be really practicable.

So regarding ABL it looks really good for dc42's sensor board, but I have to redesign my nozzle holder for the last MS test. Are there any other ideas?

Edited 1 time(s). Last edit at 11/18/2015 09:20AM by Treito.


Slicer: Simplify3D 4.0; sometimes CraftWare 1.14 or Cura 2.7
Delta with Duet-WiFi, FW: 1.20.1RC2; mini-sensor board by dc42 for auto-leveling
Ormerod common modifications: Mini-sensor board by dc42, aluminum X-arm, 0.4 mm nozzle E3D like, 2nd fan, Z stepper nut M5 x 15, Herringbone gears, Z-axis bearing at top, spring loaded extruder with pneumatic fitting, Y belt axis tensioner
Ormerod 2: FW: 1.19-dc42 on Duet-WiFi. own build, modifications: GT2-belts, silicone heat-bed, different motors and so on. Printed parts: bed support, (PSU holder) and Y-feet.
Ormerod 1: FW: 1.15c-dc42 on 1k Duet-Board. Modifications: Aluminium bed-support, (nearly) all parts reprinted in PLA/ ABS, and so on.
Re: Switches for x,y,z
November 18, 2015 12:54PM
Quote
Treito
Hello Dave,

there is one simply reason for doing this for Atmel processors: They have an internal pullup resistor so if you use GND as switch contact you do not need an external pullup or pulldown resistor.

Not true in general - the PIO pads of the Atmel CPUs I have worked with (e.g. SAMA5D3x) can be programmed to have a pullup, pulldown or neither. The SAM3X8E used on the Duet only has (programmable) pullup capability. While OK to rely on the internal pullups for on-board jumpers, switches and wire-anded devices, I prefer to fit a stronger (lower resistance) external pullup for inputs that are going to go off-board so that they have better noise immunity, and in the case of the Duet, the endstop switches do have strong (680 ohm) external pullups via the indicator LED's so do not require the CPU pullup to be active.

What logic level should correspond to an open switch is entirely arbitrary. At the end of the day it makes no difference - the firmware is written to perform the appropriate action for a particular input value. In this case a logic "1" means that the end-stop is active, and a logic "0" means it is not active - it makes no difference to the programmer whether that was achieved by opening a switch that grounds a pin, or closing a switch that connects the pin to Vdd.

Dave
Re: Switches for x,y,z
November 18, 2015 01:08PM
Maybe not for the programmer directly, but at the industry it is common to use a broken wire safe connection. Imagine the wired connection is broken and you have a big machine which is driving alone which has a weight of some tons and is not slowly and crashes into an safety emergency end stop only because the wire is broken and therefore the endstop is not working. For this it is more safe to do not allow this machine to drive anywhere.

I am unsure if I can allow the nozzle to freely move up the z-axis by 1mm to allow a switch to be triggered. I am afraid that this could affect the print negatively.


Slicer: Simplify3D 4.0; sometimes CraftWare 1.14 or Cura 2.7
Delta with Duet-WiFi, FW: 1.20.1RC2; mini-sensor board by dc42 for auto-leveling
Ormerod common modifications: Mini-sensor board by dc42, aluminum X-arm, 0.4 mm nozzle E3D like, 2nd fan, Z stepper nut M5 x 15, Herringbone gears, Z-axis bearing at top, spring loaded extruder with pneumatic fitting, Y belt axis tensioner
Ormerod 2: FW: 1.19-dc42 on Duet-WiFi. own build, modifications: GT2-belts, silicone heat-bed, different motors and so on. Printed parts: bed support, (PSU holder) and Y-feet.
Ormerod 1: FW: 1.15c-dc42 on 1k Duet-Board. Modifications: Aluminium bed-support, (nearly) all parts reprinted in PLA/ ABS, and so on.
Re: Switches for x,y,z
November 22, 2015 06:00PM
I know that my bed is not even as this was my pure intention (and I have to fix the bed support first sad smiley )

But: It is alive!

Running the tests and the following values I would say this is repeatable! I cannot tell yet, how accurate these values are as I cannot do a print as it is about midnight and it is too late for today. sad smiley

23:42:39
G32
Bed equation fits points [50.0, 40.0, -0.060] [50.0, 185.0, -1.055] [195.0, 185.0, -2.194] [195.0, 40.0, 0.637]
23:41:48
G32
Bed equation fits points [50.0, 40.0, -0.051] [50.0, 185.0, -1.063] [195.0, 185.0, -2.181] [195.0, 40.0, 0.661]
23:40:38
G32
Bed equation fits points [50.0, 40.0, -0.049] [50.0, 185.0, -1.066] [195.0, 185.0, -2.186] [195.0, 40.0, 0.660]

Okay the design is not perfect and I had to print the holder in HIPS as ABS always warped sad smiley . Here are some pictures:




Edited 1 time(s). Last edit at 11/22/2015 06:01PM by Treito.


Slicer: Simplify3D 4.0; sometimes CraftWare 1.14 or Cura 2.7
Delta with Duet-WiFi, FW: 1.20.1RC2; mini-sensor board by dc42 for auto-leveling
Ormerod common modifications: Mini-sensor board by dc42, aluminum X-arm, 0.4 mm nozzle E3D like, 2nd fan, Z stepper nut M5 x 15, Herringbone gears, Z-axis bearing at top, spring loaded extruder with pneumatic fitting, Y belt axis tensioner
Ormerod 2: FW: 1.19-dc42 on Duet-WiFi. own build, modifications: GT2-belts, silicone heat-bed, different motors and so on. Printed parts: bed support, (PSU holder) and Y-feet.
Ormerod 1: FW: 1.15c-dc42 on 1k Duet-Board. Modifications: Aluminium bed-support, (nearly) all parts reprinted in PLA/ ABS, and so on.

Re: Switches for x,y,z
November 23, 2015 04:35PM
It is indeed working and it is accurate. I cannot believe it. I have to slightly change the design as I have to allow the nozzle to rotate otherwise the triggering may get stuck. As the messing surface is a really blank surface I did not expect this behavior. The side effect is that the heated block of the nozzle only touches one very small area of the trigger of the switch. But I do not want to use a lever because I want to keep the allowed movement upwards as short as possible. So I have no idea.

The second problem is that I need to add a further microswitch and a suitable trigger for the X-axis-homing. Switching between the sensors for the x- and z-axis (M558 P2 and M558 P4) does not work because the Z value (height) of the G31 parameter gets lost when I switch using the M558 parameter.


Slicer: Simplify3D 4.0; sometimes CraftWare 1.14 or Cura 2.7
Delta with Duet-WiFi, FW: 1.20.1RC2; mini-sensor board by dc42 for auto-leveling
Ormerod common modifications: Mini-sensor board by dc42, aluminum X-arm, 0.4 mm nozzle E3D like, 2nd fan, Z stepper nut M5 x 15, Herringbone gears, Z-axis bearing at top, spring loaded extruder with pneumatic fitting, Y belt axis tensioner
Ormerod 2: FW: 1.19-dc42 on Duet-WiFi. own build, modifications: GT2-belts, silicone heat-bed, different motors and so on. Printed parts: bed support, (PSU holder) and Y-feet.
Ormerod 1: FW: 1.15c-dc42 on 1k Duet-Board. Modifications: Aluminium bed-support, (nearly) all parts reprinted in PLA/ ABS, and so on.
Sorry, only registered users may post in this forum.

Click here to login