Reprap Morgan build

Viewing 4 reply threads
  • Author
    Posts
    • #6438
      crow
      Participant

      Hi,
      I have taken the plunge and built a morgan. It has taken some time to get it functional. printed most of the parts on a prusa I3.
      I must say the morgan is a interesting piece of hardware coming from a I3. Accolades to you Quentin.

      I thought I had built everything to spec but I am struggling to get good calibration. I am using smoothieware and following the smoothie cal on this site.

      I notice that m360 calibrates the Theta arm and I suspect everything being equal that if the Theta arm is Calibrated the Psi should be as well.

      I tried M362 to check the psi arm but with no response.
      Is M362 and M363 not enables or and I missing something on its use?

      I try printing the calibration stl and after the calibration the theta curved length is 100 but x is 105.
      Psi curve is 98 and y is 97.

      I am not sure how to proceed to fix. I thought by using M362 I would be able to acquire the correct stepping/degree for the psi arm.

      any thought would be greatly recieved.

      regards
      Trevor

    • #6439
      Quentin Harley
      Keymaster

      Hi Crow,

      Drop us a copy of the config and config-overide files here.

      The dimensions above are for the latest calibration STL you printed right?

    • #6440
      crow
      Participant

      Hi Quentin, yes that is the details for the last print.
      I did not have a config override. so the print was from just the config.
      I have done another calibration procedure and included that config overide.
      the major difference is that the configure procedure sets a global steps/degree for both theta and psi.

      config.
      # NOTE Lines must not exceed 132 characters
      # Robot module configurations : general handling of movement G-codes and slicing into moves
      default_feed_rate 4000 # Default rate ( mm/minute ) for G1/G2/G3 moves
      default_seek_rate 4000 # Default rate ( mm/minute ) for G0 moves
      mm_per_arc_segment 0.5 # Arcs are cut into segments ( lines ), this is the length for
      # these segments. Smaller values mean more resolution,
      # higher values mean faster computation
      #mm_per_line_segment 0.5 # Lines can be cut into segments ( not usefull with cartesian
      # coordinates robots ).
      delta_segments_per_second 200 # for deltas only same as in Marlin/Delta, set to 0 to disable
      # and use mm_per_line_segment

      # Arm solution configuration : SCARA robot. Translates mm positions into stepper positions
      arm_solution morgan # selects the morgan arm solution
      alpha_steps_per_mm 131.36000 # Steps per mm for alpha stepper
      beta_steps_per_mm 133.17000 # Steps per mm for beta stepper
      gamma_steps_per_mm 400.00000 # Steps per mm for gamma stepper

      arm1_length 150.00 # this is the length of an arm1 (inner) from hinge to hinge
      arm2_length 150.00 # this is the length of an arm2 (outer) from hinge to hinge
      morgan_offset_x 90.0 # tower offset from bed 0:0 default 100.0
      morgan_offset_y -65.0 # tower offset from bed 0:0 default -65.0
      morgan_undefined_min 0.95 # Defines undefined SCARA ratio: default 0.95
      morgan_undefined_max 0.90 # Defines undefined SCARA ratio: default 0.95
      axis_scaling_x 0.957 # In the case of a morgan arm solution, scaling in the X axis
      axis_scaling_y 1.022 # In the case of a morgan arm solution, scaling in the y axis
      scara_homing true # always home XY together

      # Planner module configuration : Look-ahead and acceleration configuration
      planner_queue_size 32 # DO NOT CHANGE THIS UNLESS YOU KNOW EXACTLY WHAT YOU ARE DOING
      acceleration 600 # Acceleration in mm/second/second.
      z_acceleration 60 # Acceleration for Z only moves in mm/s^2, 0 uses acceleration which is the default. DO NOT SET ON A DELTA
      acceleration_ticks_per_second 1000 # Number of times per second the speed is updated
      junction_deviation 0.05 # Similar to the old “max_jerk”, in millimeters,
      # see https://github.com/grbl/grbl/blob/master/planner.c
      # and https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.8
      # Lower values mean being more careful, higher values means being
      # faster and have more jerk
      #z_junction_deviation 0.0 # for Z only moves, -1 uses junction_deviation, zero disables junction_deviation on z moves DO NOT SET ON A DELTA
      #minimum_planner_speed 0.0 # sets the minimum planner speed in mm/sec

      # Stepper module configuration
      microseconds_per_step_pulse 1 # Duration of step pulses to stepper drivers, in microseconds
      base_stepping_frequency 100000 # Base frequency for stepping, higher gives smoother movement

      # Cartesian axis speed limits
      x_axis_max_speed 10000 # mm/min
      y_axis_max_speed 10000 # mm/min
      z_axis_max_speed 600 # mm/min

      # Stepper module pins ( ports, and pin numbers, appending “!” to the number will invert a pin )
      alpha_step_pin 2.0 # Pin for alpha stepper step signal
      alpha_dir_pin 0.5 # Pin for alpha stepper direction
      alpha_en_pin 0.4 # Pin for alpha enable pin
      alpha_current 1.2 # X stepper motor current
      alpha_max_rate 10000.0 # mm/min

      beta_step_pin 2.1 # Pin for beta stepper step signal
      beta_dir_pin 0.11 # Pin for beta stepper direction
      beta_en_pin 0.10 # Pin for beta enable
      beta_current 1.2 # Y stepper motor current
      beta_max_rate 10000.0 # mm/min

      gamma_step_pin 2.2 # Pin for gamma stepper step signal
      gamma_dir_pin 0.20! # Pin for gamma stepper direction
      gamma_en_pin 0.19 # Pin for gamma enable
      gamma_current 1.4 # Z stepper motor current
      gamma_max_rate 600.0 # mm/min

      # Serial communications configuration ( baud rate default to 9600 if undefined )
      uart0.baud_rate 115200 # Baud rate for the default hardware serial port
      second_usb_serial_enable true # This enables a second usb serial port (to have both pronterface
      # and a terminal connected)
      #leds_disable true # disable using leds after config loaded
      #play_led_disable true # disable the play led
      pause_button_enable true # Pause button enable
      #pause_button_pin 2.12 # pause button pin. default is P2.12
      #kill_button_enable false # set to true to enable a kill button
      #kill_button_pin 2.12 # kill button pin. default is same as pause button 2.12 (2.11 is another good choice)
      #msd_disable false # disable the MSD (USB SDCARD) when set to true (needs special binary)
      #dfu_enable false # for linux developers, set to true to enable DFU

      # Extruder module configuration
      extruder.hotend.enable true # Whether to activate the extruder module at all. All configuration is ignored if false
      extruder.hotend.steps_per_mm 147.155 # Steps per mm for extruder stepper
      extruder.hotend.default_feed_rate 600 # Default rate ( mm/minute ) for moves where only the extruder moves
      extruder.hotend.acceleration 500 # Acceleration for the stepper motor, as of 0.6, arbitrary ratio
      extruder.hotend.max_speed 100 # mm/s

      extruder.hotend.step_pin 2.3 # Pin for extruder step signal
      extruder.hotend.dir_pin 0.22 # Pin for extruder dir signal
      extruder.hotend.en_pin 0.21 # Pin for extruder enable signal

      # extruder offset
      #extruder.hotend.x_offset 0 # x offset from origin in mm
      #extruder.hotend.y_offset 0 # y offset from origin in mm
      #extruder.hotend.z_offset 0 # z offset from origin in mm

      # firmware retract settings when using G10/G11, these are the defaults if not defined, must be defined for each extruder if not using the defaults
      #extruder.hotend.retract_length 3.7 # retract length in mm
      #extruder.hotend.retract_feedrate 100 # retract feedrate in mm/sec
      #extruder.hotend.retract_recover_length 0 # additional length for recover
      #extruder.hotend.retract_recover_feedrate 50 # recover feedrate in mm/sec (should be less than retract feedrate)
      #extruder.hotend.retract_zlift_length 0 # zlift on retract in mm, 0 disables
      #extruder.hotend.retract_zlift_feedrate 6000 # zlift feedrate in mm/min (Note mm/min NOT mm/sec)

      delta_current 1.4 # First extruder stepper motor current

      # Second extruder module configuration
      #extruder.hotend2.enable true # Whether to activate the extruder module at all. All configuration is ignored if false
      #extruder.hotend2.steps_per_mm 140 # Steps per mm for extruder stepper
      #extruder.hotend2.default_feed_rate 600 # Default rate ( mm/minute ) for moves where only the extruder moves
      #extruder.hotend2.acceleration 500 # Acceleration for the stepper motor, as of 0.6, arbitrary ratio
      #extruder.hotend2.max_speed 50 # mm/s

      #extruder.hotend2.step_pin 2.8 # Pin for extruder step signal
      #extruder.hotend2.dir_pin 2.13 # Pin for extruder dir signal
      #extruder.hotend2.en_pin 4.29 # Pin for extruder enable signal

      #extruder.hotend2.x_offset 0 # x offset from origin in mm
      #extruder.hotend2.y_offset 25.0 # y offset from origin in mm
      #extruder.hotend2.z_offset 0 # z offset from origin in mm
      #epsilon_current 1.5 # Second extruder stepper motor current

      # Laser module configuration
      laser_module_enable false # Whether to activate the laser module at all. All configuration is
      # ignored if false.
      #laser_module_pin 2.5 # this pin will be PWMed to control the laser. Only P2.0 – P2.5, P1.18, P1.20, P1.21, P1.23, P1.24, P1.26, P3.25, P3.26
      # can be used since laser requires hardware PWM
      #laser_module_max_power 0.8 # this is the maximum duty cycle that will be applied to the laser
      #laser_module_tickle_power 0.0 # this duty cycle will be used for travel moves to keep the laser
      # active without actually burning
      #laser_module_pwm_period 20 # this sets the pwm frequency as the period in microseconds

      # Hotend temperature control configuration
      temperature_control.hotend.enable true # Whether to activate this ( “hotend” ) module at all.
      # All configuration is ignored if false.
      temperature_control.hotend.thermistor_pin 0.24 # Pin for the thermistor to read
      temperature_control.hotend.heater_pin 2.7 # Pin that controls the heater, set to nc if a readonly thermistor is being defined 2.7
      temperature_control.hotend.thermistor RRRF100K # see http://smoothieware.org/temperaturecontrol#toc5
      #temperature_control.hotend.beta 3960 # or set the beta value
      temperature_control.hotend.set_m_code 104 #
      temperature_control.hotend.set_and_wait_m_code 109 #
      temperature_control.hotend.designator T #

      #temperature_control.hotend.p_factor 47.7 # permanently set the PID values after an auto pid
      #temperature_control.hotend.i_factor 4.620 #
      #temperature_control.hotend.d_factor 123 #

      #temperature_control.hotend.max_pwm 255 # max pwm, 64 is a good value if driving a 12v resistor with 24v.

      # Hotend2 temperature control configuration
      #temperature_control.hotend2.enable true # Whether to activate this ( “hotend” ) module at all.
      # All configuration is ignored if false.

      #temperature_control.hotend2.thermistor_pin 0.25 # Pin for the thermistor to read
      #temperature_control.hotend2.heater_pin 1.23 # Pin that controls the heater
      #temperature_control.hotend2.thermistor RRRF100K # see http://smoothieware.org/temperaturecontrol#toc5
      ##temperature_control.hotend2.beta 4066 # or set the beta value
      #temperature_control.hotend2.set_m_code 884 #
      #temperature_control.hotend2.set_and_wait_m_code 889 #
      #temperature_control.hotend2.designator T1 #

      #temperature_control.hotend2.p_factor 13.7 # permanently set the PID values after an auto pid
      #temperature_control.hotend2.i_factor 0.097 #
      #temperature_control.hotend2.d_factor 24 #

      #temperature_control.hotend2.max_pwm 64 # max pwm, 64 is a good value if driving a 12v resistor with 24v.

      temperature_control.bed.enable true #
      temperature_control.bed.thermistor_pin 0.23 #
      temperature_control.bed.heater_pin 2.5 # 2.5
      temperature_control.bed.thermistor RRRF100K # see http://smoothieware.org/temperaturecontrol#toc5
      #temperature_control.bed.beta 3960 # or set the beta value

      temperature_control.bed.set_m_code 140 #
      temperature_control.bed.set_and_wait_m_code 190 #
      temperature_control.bed.designator B #

      temperature_control.bed.p_factor 201.0 # permanently set the PID values after an auto pid
      temperature_control.bed.i_factor 8.965 #
      temperature_control.bed.d_factor 1127 #

      #temperature_control.bed.bang_bang false # set to true to use bang bang control rather than PID
      #temperature_control.bed.hysteresis 2.0 # set to the temperature in degrees C to use as hysteresis
      # when using bang bang

      # Switch module for fan control
      switch.fan.enable true #
      switch.fan.input_on_command M106 #
      switch.fan.input_off_command M107 #
      switch.fan.output_pin 2.4 #
      switch.fan.output_type pwm # pwm output settable with S parameter in the input_on_comand
      #switch.fan.max_pwm 255 # set max pwm for the pin default is 255

      #switch.misc.enable true #
      #switch.misc.input_on_command M42 #
      #switch.misc.input_off_command M43 #
      #switch.misc.output_pin 2.4 #
      #switch.misc.output_type digital # just an on or off pin

      # automatically toggle a switch at a specified temperature. Different ones of these may be defined to monitor different temperatures and switch different swithxes
      # useful to turn on a fan or water pump to cool the hotend
      #temperatureswitch.hotend.enable true #
      #temperatureswitch.hotend.designator T # first character of the temperature control designator to use as the temperature sensor to monitor
      #temperatureswitch.hotend.switch misc # select which switch to use, matches the name of the defined switch
      #temperatureswitch.hotend.threshold_temp 60.0 # temperature to turn on (if rising) or off the switch
      #temperatureswitch.hotend.heatup_poll 15 # poll heatup at 15 sec intervals
      #temperatureswitch.hotend.cooldown_poll 60 # poll cooldown at 60 sec intervals

      # Switch module for spindle control
      #switch.spindle.enable false #

      # Endstops
      endstops_enable true # the endstop module is enabled by default and can be disabled here
      #corexy_homing false # set to true if homing on a hbit or corexy
      alpha_min_endstop 1.24^ # add a ! to invert if endstop is NO connected to ground
      alpha_max_endstop 1.25^! # NOTE set to nc if this is not installed
      alpha_homing_direction home_to_max # or set to home_to_max and set alpha_max
      alpha_min 0 # this gets loaded after homing when home_to_min is set
      alpha_max -80 # this gets loaded after homing when home_to_max is set
      beta_min_endstop 1.26^ #
      beta_max_endstop 1.27^! #
      beta_homing_direction home_to_max #
      beta_min 0 #
      beta_max -137 #
      gamma_min_endstop 1.28^ #
      gamma_max_endstop 1.29^ #
      gamma_homing_direction home_to_min #
      gamma_min 0 #
      gamma_max 180 #

      # optional order in which axis will home, default is they all home at the same time,
      # if this is set it will force each axis to home one at a time in the specified order
      #homing_order XYZ # x axis followed by y then z last

      # optional enable limit switches, actions will stop if any enabled limit switch is triggered
      #alpha_limit_enable false # set to true to enable X min and max limit switches
      #beta_limit_enable false # set to true to enable Y min and max limit switches
      #gamma_limit_enable false # set to true to enable Z min and max limit switches

      alpha_fast_homing_rate_mm_s 50 # feedrates in mm/second
      beta_fast_homing_rate_mm_s 50 # ”
      gamma_fast_homing_rate_mm_s 4 # ”
      alpha_slow_homing_rate_mm_s 25 # ”
      beta_slow_homing_rate_mm_s 25 # ”
      gamma_slow_homing_rate_mm_s 2 # ”

      alpha_homing_retract_mm 5 # distance in mm
      beta_homing_retract_mm 5 # ”
      gamma_homing_retract_mm 5 # ”

      endstop_debounce_count 100 # uncomment if you get noise on your endstops, default is 100

      # optional Z probe
      zprobe.enable false # set to true to enable a zprobe
      zprobe.probe_pin 1.28!^ # pin probe is attached to if NC remove the !
      zprobe.slow_feedrate 5 # mm/sec probe feed rate
      #zprobe.debounce_count 100 # set if noisy
      zprobe.fast_feedrate 100 # move feedrate mm/sec
      zprobe.probe_height 5 # how much above bed to start probe
      #gamma_min_endstop nc # normally 1.28. Change to nc to prevent conflict,

      # associated with zprobe the leveling strategy to use
      #leveling-strategy.three-point-leveling.enable true # a leveling strategy that probes three points to define a plane and keeps the Z parallel to that plane
      #leveling-strategy.three-point-leveling.point1 100.0,0.0 # the first probe point (x,y) optional may be defined with M557
      #leveling-strategy.three-point-leveling.point2 200.0,200.0 # the second probe point (x,y)
      #leveling-strategy.three-point-leveling.point3 0.0,200.0 # the third probe point (x,y)
      #leveling-strategy.three-point-leveling.home_first true # home the XY axis before probing
      #leveling-strategy.three-point-leveling.tolerance 0.03 # the probe tolerance in mm, anything less that this will be ignored, default is 0.03mm
      #leveling-strategy.three-point-leveling.probe_offsets 0,0,0 # the probe offsets from nozzle, must be x,y,z, default is no offset
      #leveling-strategy.three-point-leveling.save_plane false # set to true to allow the bed plane to be saved with M500 default is false

      # optional SCARAcal (highly recommended for Morgan)
      scaracal.enable true
      scaracal.slow_feedrate 20 # slow enough not to slip, fast enough not to frustrate the user
      scaracal.z_move 20 # Move -20 relative to Z-home in order to prevent bed running down from home position

      # Panel
      panel.enable true # set to true to enable the panel code
      #panel.lcd smoothiepanel # set type of panel
      #panel.encoder_a_pin 3.25!^ # encoder pin
      #panel.encoder_b_pin 3.26!^ # encoder pin

      # Example for reprap discount GLCD
      # on glcd EXP1 is to left and EXP2 is to right, pin 1 is bottom left, pin 2 is top left etc.
      # +5v is EXP1 pin 10, Gnd is EXP1 pin 9
      panel.lcd reprap_discount_glcd #
      panel.spi_channel 0 # spi channel to use ; GLCD EXP1 Pins 3,5 (MOSI, SCLK)
      panel.spi_cs_pin 0.16 # spi chip select ; GLCD EXP1 Pin 4
      panel.encoder_a_pin 3.25!^ # encoder pin ; GLCD EXP2 Pin 3
      panel.encoder_b_pin 3.26!^ # encoder pin ; GLCD EXP2 Pin 5
      panel.click_button_pin 1.30!^ # click button ; GLCD EXP1 Pin 2
      panel.buzz_pin 1.31 # pin for buzzer ; GLCD EXP1 Pin 1
      panel.back_button_pin 2.11!^ # back button ; GLCD EXP2 Pin 8
      panel.external_sd true # set to true if there is an extrernal sdcard on the panel
      panel.external_sd.spi_channel 1 # set spi channel the sdcard is on
      panel.external_sd.spi_cs_pin 0.28 # set spi chip select for the sdcard (or any spare pin)
      panel.external_sd.sdcd_pin 0.27!^ # sd detect signal (set to nc if no sdcard detect) (or any spare pin)
      panel.encoder_resolution 3 # pulses per indent

      # pins used with other panels
      #panel.up_button_pin 0.1! # up button if used
      #panel.down_button_pin 0.0! # down button if used
      #panel.click_button_pin 0.18! # click button if used

      panel.menu_offset 0 # some panels will need 1 here

      panel.alpha_jog_feedrate 6000 # x jogging feedrate in mm/min
      panel.beta_jog_feedrate 6000 # y jogging feedrate in mm/min
      panel.gamma_jog_feedrate 200 # z jogging feedrate in mm/min

      panel.hotend_temperature 195 # temp to set hotend when preheat is selected
      panel.bed_temperature 70 # temp to set bed when preheat is selected

      # Example of a custom menu entry, which will show up in the Custom entry.
      # NOTE _ gets converted to space in the menu and commands, | is used to separate multiple commands
      custom_menu.power_on.enable true #
      custom_menu.power_on.name Power_on #
      custom_menu.power_on.command M80 #

      custom_menu.power_off.enable true #
      custom_menu.power_off.name Power_off #
      custom_menu.power_off.command M81 #

      # Only needed on a smoothieboard
      currentcontrol_module_enable true #

      return_error_on_unhandled_gcode false #

      # network settings
      network.enable true # enable the ethernet network services
      network.webserver.enable true # enable the webserver
      network.telnet.enable true # enable the telnet server
      #network.ip_address auto # use dhcp to get ip address
      # uncomment the 3 below to manually setup ip address
      network.ip_address 192.168.3.221 # the IP address
      network.ip_mask 255.255.255.0 # the ip mask
      network.ip_gateway 192.168.3.1 # the gateway address
      #network.mac_override xx.xx.xx.xx.xx.xx # override the mac address, only do this if you have a conflict

      config override.
      ; DO NOT EDIT THIS FILE
      ;Steps per unit:
      M92 X132.73172 Y132.73172 Z400.00000
      ;Acceleration mm/sec^2:
      M204 S600.00000 Z60.00000
      ;X- Junction Deviation, Z- Z junction deviation, S – Minimum Planner speed mm/sec:
      M205 X0.05000 Z-1.00000 S0.00000
      ;Max feedrates in mm/sec, XYZ cartesian, ABC actuator:
      M203 X166.66667 Y166.66667 Z10.00000 A761.00000 B750.00000 C250.00000
      ;Optional arm solution specific settings:
      M665 A1.0000 B1.0000 D0.9500 E0.9000 P150.0000 T150.0000 X90.0000 Y-65.0000
      ;WCS settings
      G54
      ;Digipot Motor currents:
      M907 X1.20000 Y1.20000 Z1.40000 E1.40000
      ;Home offset (mm):
      M206 X4.78 Y-1.29 Z0.00
      ;Trim (mm):
      M666 X0.000 Y0.000 Z0.000
      ;Max Z
      M665 Z0.000
      ;E Steps per mm:
      M92 E147.1550 P57988
      ;E Filament diameter:
      M200 D0.0000 P57988
      ;E retract length, feedrate:
      M207 S3.0000 F2700.0000 Z0.0000 Q6000.0000 P57988
      ;E retract recover length, feedrate:
      M208 S0.0000 F480.0000 P57988
      ;E acceleration mm/sec²:
      M204 E500.0000 P57988
      ;E max feed rate mm/sec:
      M203 E100.0000 P57988
      ;PID settings:
      M301 S0 P10.0000 I0.3000 D200.0000 X255.0000 Y255
      ;Max temperature setting:
      M143 S0 P300.0000
      ;PID settings:
      M301 S1 P201.0000 I8.9650 D1127.0000 X255.0000 Y255
      ;Max temperature setting:
      M143 S1 P300.0000

    • #6441
      crow
      Participant

      I have shared a pic of the cal stl ….on the x the left arm is 4.54mm the right arm of x is 5.46mm

      https://onedrive.live.com/redir?resid=FC902E3DF7255022!18445&authkey=!AB6h7870sKaEREw&v=3&ithint=photo%2cjpg

    • #6442
      crow
      Participant
Viewing 4 reply threads
  • You must be logged in to reply to this topic.