Using the RepRapFirmware Configuration Tool



  • Hi

    Hope I'm posting this in the right section. I'm converting an old K8400 to run Duet Wifi (and later to use e3d chimera / nimble zesty combo). The board is plugged in and connected, but I'm not sure about the next stage.

    I'm wondering if someone would mind walking me through the RepRapFirmware Configuration Tool.

    There are lots of settings in there, and despite the lengthy explanations in the Duet wiki I still not much wiser on what is the right value for my printer!

    Obviously there are some values in the example K8400 Configuration.h file in the Marlin github. But should I be using those or not? Is there an existing configuration I can use somewhere?


  • administrators

    You can start from the values in the Marlin sample config, just bear in mind that all speeds in RRF are in mm/min whereas some in Marlin are mm/sec.



  • OK, so I literally get stuck on the second page!

    So in the Configuration.h for the K8400 I have:

    [[language]]
    #define INVERT_X_DIR false
    #define INVERT_Y_DIR true
    #define INVERT_Z_DIR true
    
    ```On the configurator second page, it states 'Axis Direction' as forwards / backwards. I'm guessing here that I leave X as it is, but Y and Z as backwards?


  • The next part I have difficulty with is the motor driver (last column, 2nd page). Where do I find this out? Is it in the Configuration.h file?


  • administrators

    @biscuitlad:

    OK, so I literally get stuck on the second page!

    So in the Configuration.h for the K8400 I have:

    [[language]]
    #define INVERT_X_DIR false
    #define INVERT_Y_DIR true
    #define INVERT_Z_DIR true
    
    ```On the configurator second page, it states 'Axis Direction' as forwards / backwards. I'm guessing here that I leave X as it is, but Y and Z as backwards?
    

    Try that, you can always change it if some of the motors run backwards.


  • administrators

    @biscuitlad:

    The next part I have difficulty with is the motor driver (last column, 2nd page). Where do I find this out? Is it in the Configuration.h file?

    Leave it as the default: X0, Y1, Z1, E0-2, E1-4.



  • OK, thanks! Now for the endstops. I really can't find any information about them, either in the Configuration.h file or from Velleman. How can I find out the right values?

    The Marlin file has:

    [[language]]
    #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 true  // set to true to invert the logic of the endstop.
    #define Y_MAX_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
    #define Z_MAX_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
    #define Z_MIN_PROBE_ENDSTOP_INVERTING true 
    
    #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
    
    // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
    // :{ 0:'Low', 1:'High' }
    #define X_ENABLE_ON 0
    #define Y_ENABLE_ON 0
    #define Z_ENABLE_ON 0
    #define E_ENABLE_ON 0 // For all extruders
    
    // 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
    
    

    My problem is that I really don't know how all that translates to the configurator options: Endstop type & Endstop location


  • administrators

    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?


  • administrators

    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?

  • administrators

    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


  • administrators

    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 stopped

    So 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.jpg

    Note 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.


  • administrators

    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?


  • administrators

    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?


  • administrators

    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.


Log in to reply