RAMPS alternative

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


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

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

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.

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

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.

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

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.

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.

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.


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.

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

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.

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

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

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.

Here is a close up of the pulley.

Here is a link to my blogspot - from January 16th 2016

image of the pulleys - http://2.bp.blogspot.com/--PyD2vMHVSE/VtY2uepET_I/AAAAAAAABGs/S2t82Gzeyuc/s1600/20160116_164327.jpg