RAMPS alternative

This topic contains 17 replies, has 9 voices, and was last updated by Profile photo of James Schubert James Schubert 3 months, 1 week ago.

Viewing 18 posts - 1 through 18 (of 18 total)
  • Author
  • #3086
    Profile photo of RigoArevalo

    I am printing out my parts at the moment and am in the planning stages of my build. I am a little familiar with the RAMPS board since I have a 3D printer, my question is, will other controller boards work aside from the RAMPS board? Such as this board


    Or even this board which i was considering for a second 3d printer I was planning to build


    • This topic was modified 1 month, 3 weeks ago by Profile photo of Ryan Ryan.
    Profile photo of Anthony

    As far as I can tell, those are still set up as RAMPS boards, just integrated with aruduino into a single board.

    Profile photo of RigoArevalo

    Im still new and haven’t been able to do some full research on those other boards, from what I have read they look like they do the same thing I am just not sure

    Profile photo of Ryan

    Anthony is right. If you are looking for other boards for some reason all cnc boards will work. Start with the software you want to use and find the board it works best with. If you think ramps is missing something maybe I can clear that up for you, or let us know if you find a diamond in the rough.

    Profile photo of innkeeper

    I’m planning to use a Smoothieboard clone called MKS Sbase running smoothieware firmware.

    There are some advantages that led me to want to use a smoothieboard, and some advantages to this clone over the standard smoothieboard, certnaly mor ethen I could list here, but here is the short version.
    first, smothieboard was designed to work with cnc. Making changes doesn’t require recompiling, they are simply text file changes in a config file. So for hacking around and experimenting its great. also the board has built in sd card adapter, usb and Ethernet (has a web interface and telnet). I plan to ultimately use it though internet to reduce possible interference issues with usb. The clone board I am using uses DRV8825 so it can handle up to 2.5a steppers and 16 or 32 micro steps (jumper changeable). Also I can, and will set it up so I am using a dedicated driver per stepper. it also includes spindle control and rpm loopback option for accurate speed control, which id intend to use if I go to an er11 or something down the road. and there is more.. best to go to the smoothieware sight if your intrigued.

    I became aware of smootheboard / smoothiewear when I retrofitted a 3d printer with it, and found how well it worked and how flexable it is..
    downside is the actual smoothieboard is about 150 bucks for a 5 driver board, but the clone board I am using can be had for under 100 bucks, I got mine for around 60 bucks. ymmv

    Profile photo of Brenten

    So it would be possible to use the printboard of an ultimaker Original plus? The fan output of mine didn’t work properly so the company sent me a new one and i didn’t have to sent back the old and ‘broken’ one. everything on it works perfectly except the fan output. But ofcoarse i don’t need that for a cnc machine.

    Profile photo of Ryan

    Yes I don’t see any problems. You will need to edit the firmware to match the ones on the marlin page. https://www.vicious1.com/marlin-firmware/

    Profile photo of Martin DB
    Martin DB

    Hi Innkeeper, how is your experience with mpcnc and the mks sbase smoothieboard clone?
    I’m plannig to build a mpcnc (my first cnc machine) and run it with this board.

    Profile photo of Jason

    Interesting… That MKS sbase looks interesting only for the spindle control and rpm loopback. Integrated drivers do tend to be more reliable as (well better cooling due to larger board for heat dissipation). And simple accurate current setting.

    Profile photo of James Schubert
    James Schubert

    Well I tried the sainsmart 2in1 board. couldnt even get it to upload the firmware. had to download official ftdi drivers. Still no go. Read in the products description that the board is sold with an old bootloader and one needed to use arduino IDE older than 1.0.5 – ie 1.0.5 which is extremely ancient compared to current version 1.8.1. Tried to flash with ide 1.0.4 and still timed out on the upload.


    Profile photo of Kris

    InnKeeper can you share a link to this clone MKS Sbase ? Does it then run the same Marlin firmware? I am new to this and just getting started.

    Profile photo of Ryan

    You will be running smoothieware, on the sbase boards. There are a few that look similar, some run marlin, but the sbase runs smoothie.

    Profile photo of James Schubert
    James Schubert

    Ok. So i have the smoothieboard, mks v1.3, operating accurately.

    But i am having and issue with puddling i guess. Not sure which setting to change?

    I am thinking feed rate???

    See attached image. Any suggestions appreciated.

    Profile photo of James Schubert
    James Schubert

    I found that there was a few other settings that I needed to change – feedrate was one of them. Here is my current config file settings – seems to be doing very nicely.

    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.0 # Fixed length for line segments that divide arcs 0 to disable
    mm_max_arc_error 0.01 # The maximum error for line segments that divide arcs 0 to disable
    # note it is invalid for both the above be 0
    # if both are used, will use largest segment length based on radius

    # Arm solution configuration : Cartesian robot. Translates mm positions into stepper positions
    alpha_steps_per_mm 200 # Steps per mm for alpha stepper
    beta_steps_per_mm 150 # Steps per mm for beta stepper
    gamma_steps_per_mm 4535.44 # Steps per mm for gamma stepper

    # Planner module configuration : Look-ahead and acceleration configuration
    acceleration 500 # Acceleration in mm/second/second.
    z_acceleration 35 # Acceleration for Z only moves in mm/s^2, 0 uses acceleration which is the default.
    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

    # 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

    # Cartesian axis speed limits
    x_axis_max_speed 11000 # mm/min
    y_axis_max_speed 11000 # mm/min
    z_axis_max_speed 500 # 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.5 # X stepper motor current
    alpha_max_rate 11000.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.5 # Y stepper motor current
    beta_max_rate 11000.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.5 # Z stepper motor current
    gamma_max_rate 500.0 # mm/min

    ## System configuration
    # Serial communications configuration ( baud rate defaults to 9600 if undefined )
    uart0.baud_rate 115200 # Baud rate for the default hardware serial port
    second_usb_serial_enable false # 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

    # Kill button (used to be called pause) maybe assigned to a different pin, set to the onboard pin by default
    kill_button_enable true # 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)

    # Only needed on a smoothieboard
    currentcontrol_module_enable true #

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

    alpha_max_travel 10 # max travel in mm for alpha/X axis when homing
    beta_max_travel 10 # max travel in mm for beta/Y axis when homing
    gamma_max_travel 5 # max travel in mm for gamma/Z axis when homing

    # 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 true # set to true to enable X min and max limit switches
    beta_limit_enable true # set to true to enable Y min and max limit switches
    gamma_limit_enable true # 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 1 # ”

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

    ## Panel
    panel.enable true # set to true to enable the panel code

    # 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_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.encoder_resolution 4 #the number of pulses the encoder emits per detent/click
    # setup for external sd card on the GLCD which uses the onboard sdcard SPI port
    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.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 185 # temp to set hotend when preheat is selected
    #panel.bed_temperature 50 # temp to set bed when preheat is selected

    ## Custom menus : 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 false #
    custom_menu.power_on.name Power_on #
    custom_menu.power_on.command M80 #

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

    ## 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
    #network.hostname MPCNC
    # uncomment the 3 below to manually setup ip address
    #network.ip_address # the IP address

    #network.ip_mask # the ip mask
    #network.ip_gateway # the gateway address
    #network.mac_override xx.xx.xx.xx.xx.xx # override the mac address, only do this if you have a conflict

    # 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 140 # 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 50 # 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 # retract length in mm
    #extruder.hotend.retract_feedrate 45 # retract feedrate in mm/sec
    #extruder.hotend.retract_recover_length 0 # additional length for recover
    #extruder.hotend.retract_recover_feedrate 8 # 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 0.7 # First extruder stepper motor current

    # 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 13.7 # permanently set the PID values after an auto pid
    #temperature_control.hotend.i_factor 0.097 #
    #temperature_control.hotend.d_factor 24 #

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

    Profile photo of Ryan

    alpha and beta steps are different, are you using different pulleys on each axis?

    Profile photo of James Schubert
    James Schubert

    I had to adjust the beta from 200 to 150 to get the y axis corrected. It printed fine in x axis and z axis be the y axis was 5mm off.

    I have been using the same ones, LOL. I think I ordered them from Vicious1.
    Pulley 16 Tooth GT2 – 2/9/16 – but that was for just one.

    Not sure.

    Profile photo of James Schubert
    James Schubert

    Here is a close up of the pulley.

    Profile photo of James Schubert
    James Schubert
Viewing 18 posts - 1 through 18 (of 18 total)

You must be logged in to reply to this topic.