Using the RepRapFirmware Configuration Tool
-
It's hard to be sure without a higher resolution photo, but those look like optical endstops to me - can you confirm? In which case they are probably active high. In Marlin you have them configured as MIN endstops, which means they are at the low end.
If those endstops were designed for 5V operation then they may need modification to make them work reliably on 3.3V. Also be aware that the pin order of the endstop connectors is quite likely to be different from your old controller board. You can test the endstops as described at https://duet3d.dozuki.com/Wiki/Connecting_endstop_switches#Section_Test_endstop_switches.
-
Yes, they are optical endstops. I can't find out what their rating is, but it looks like 5V on the old board wiring schematic.
I've been assuming the values in the Marlin K8400 example config are correct. Is the reason to change them because the Duet treats them differently?
-
There is no need to change the values in the config from the equivalent Marlin values. The X_ENABLE and so on in your Marlin config refer to the stepper drivers, not the endstop inputs.
-
OK, I've set them all to active low. I've had a look at your instructions to 'fix' 5v to 3.3v for optical endstops and it looks hairy to me - plus I've not got any resistors! So I'm praying they work as is…
I'm sorry for so many questions - what about endstop location? How do I know if it's high/low end?
I'm also puzzled by the homing speeds. In the file I have:
[[language]] #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 // Homing speeds (mm/m) #define HOMING_FEEDRATE_XY (50*60) #define HOMING_FEEDRATE_Z (8*60) #define X_PROBE_OFFSET_FROM_EXTRUDER 10 // X offset: -left +right [of the nozzle] #define Y_PROBE_OFFSET_FROM_EXTRUDER 10 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle] // X and Y axis travel speed (mm/m) between probes #define XY_PROBE_SPEED 8000 // Speed for the first approach when double-probing (MULTIPLE_PROBING == 2) #define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z // Speed for the "accurate" probe of each point #define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2) ```But in the configurator, you're asked homing speeds first pass, second pass, etc. ? And what is z dive height?
-
This bit of your Marlin config:
// Direction of endstops when homing; 1=MAX, -1=MIN // :[-1,1] #define X_HOME_DIR -1 #define Y_HOME_DIR -1 #define Z_HOME_DIR -1
says they are low end.
-
Great, thanks! I would not be able to do this without your help…
Could you make head or tail of all the homing speed stuff?
In the meantime I have tried to test the optical endstops and they don't seem to register anything in the machine properties->endstop hit column. Guess that's not looking good for 3.3v? Dreading trying to scavenge caps / resistors off the old board. :-0
-
SMD resistors are readily available. Do you have a soldering iron? Can you post high-res photos of both sides of one of the endstops, so that I can better advise you?
-
I'll try! I do have a soldering iron, but that's a like saying my dog has an egg whisk…
If those are no good I can re-do them.
-
With the print head set mid X and bed low (not homed), I get:
M119
Endstops - X: at min stop, Y: at min stop, Z: at min stop, Z probe: not stoppedSo I'm assuming these optical end stops are no good or miswired?
-
In terms of the old board's wiring of the endstops:
-
Ah ha, all wired in reverse.
Tested Y endstop and it seems to work. The LED is lit and goes on and off when triggered. Likewise for the z endstop. These show up on the Duet machine properties.
But the x endstop LED is lit more faintly. This endstop does trigger (i.e. the LED goes out), but it doesn't register with the Duet. When I swap with the y endstop, the LED lights up fine (and vice versa, the Y endstop led goes faint if I put the x endstop on it).
I re-did all the x endstop connections and it seems fine but I'm a bit puzzled as to why there is a fainter glow on the LED than the others.
If a sensor was to fail / not work with 3.3V, is this what it does?
I read "some types of endstop (e.g. opto endstops designed for 5V operation) may pull the endstop input low enough to light the LED, but not low enough for the Duet to recognise that the input is in the LOW state". Is it likely this is just a bad sensor, and would it be worth buying another?
-
Schematic for the printehead PCB: http://i.imgur.com/loWDu1e.jpg
Schematic for the mainboard: http://images.velleman.eu/manuals/vertex/troubleshooting/03/001.jpg
Schematic for the endstops: http://images.velleman.eu/manuals/vertex/troubleshooting/03/003.jpgNote that the +15V seems to be directly connected to the LED anode but there is a series resistor on the mainboard to limit the LED current.
-
Er, not sure what means! I know really nothing about electronics. With a bit of luck, I can follow instructions though?
There's also a full pdf of everything, including all the resistor values:
https://www.velleman.eu/images/tmp/K8400%203D%20Printer%20Technical%20Doc.pdf
I was wondering if I could cannibalise the old board to get the resistors needed to fix the bad sensor? I have no idea how to do that, of course! Sadly a quick search of the pdf didn't reveal a 100 ohms resistor anywhere on that board.
-
Looking at those schematics, the positive feed to the endstops is meant to be through a current limiting resistor that is on the main board. These resistors are R52, R56 and R60, but no value for them is provided in the BOM.
The endstop itself has a visible LED in series with the IR LED inside the opto switch, but no current limiting resistor.
Here are two ways of making those endstops work reliably with a Duet:
1. Instead of connecting the positive feeds to the endstops to the +3.3v (centre) pins on the endstop connector, connect each one through a series resistor to either +5V or VIN.
2. Remove the visible LED from the endstop board and replace it by a resistor. A value of 180 ohms in a 0805 package should be about right.
-
Ok, the first looks easier for my limited abilities. What value should the in series resistor be?
-
If you feed them from 5V then I suggest a resistor of around 180 ohms.
-
OK, but R52, R56 and R60 were doing the job previously, maybe I could take a chance with those even though we don't know their value?
Could I possibly replace the LED on the sensor with one of R52 etc? I've never tried anything like this, so I don't know how take a component out of a board and solder back into place somewhere else. Is it hard?
-
If the voltage fed to the endstops through the resistors is +15V as implied by the schematic, then the values of R52/56/60 will be too high. OTOH there are several 330 ohm resistors listed in the BOM for that board. Those may well work in place of the LED on the sensor, and if they don't you can solder a second one on top of the first to use two of them in parallel giving 165 ohms.
-
OK, basic tutorial on the process. Heat up soldering iron, place on one side of resistor until it melts and pull off with a pair of tweezers? Never done anything this small before!
-
SMT can be de-soldered one end at a time, With patience and a fine tipped soldering iron.
Using a TINY screwdriver to move it up, wedge it up, just the smallest amount as each end is heated in turn. It won't even look like it is moving because the "other" end is still soldered. Eventually, it will pop loose.
Re-soldering a new one is relatively easy. One end at a time.
And… if you happen to own a "Temperature Controlled" soldering iron (station) already, it may be worth it to you to invest in "Solder Tweezers" that plug into your existing station. Depending on what station you already have, they can be fairly inexpensive. Examples: http://www.ebay.com/bhp/desoldering-tweezers