Introduction: Configuring MKS Sbase V1.x 32-bit Controller Basics and Intro to Smoothieware.


I'm really pleased to see how this basic intro into Smoothieware and the MKS Sbase 1.x controller have gotten so much attention, and really hope it's going to help people get started or decide not to.

What this is about:

This Instructables is about finding our way around and Configuring the MKS Sbase 1.x 32-bit controller Card basics and intro to Smoothieware. It can be used for Smoothieboards as well in most regards.

I am going to explain and set it up to work as a new controller in my Ultimaker 2 clone with a single extruder.

What this is not going to be:

I am not going to go into the hardware of the board, aside from the need to connect relevant cables.

I am not going to do anything advanced in the firmware/configuration

Table Of Contents:

  1. Connect and install
    1. Connecting USB
    2. Installing firmware
  2. Configuring Smoothieware compared to Marlin
  3. Obvious difference from Marlin
    1. Less obvious differneces
    2. Firmware and Config file(s)
    3. Configuring firmware
  4. Firmware Step 1: Default feed rate
    1. 1/32 Multistepping
    2. Connecting Motors
    3. External Motor Controllers
  5. Firmware Step 2: Cartesian axis speed limits, pins and current
    1. Pins
    2. Current
  6. Firmware Step 3: LCD, SD and Extruder
    1. LCD and SD
    2. Extruder Setup
    3. Delta driver current
  7. Firmware Step 4: Hotend temperature control configuration
    1. Thermistor Type
    2. PID Tuning
    3. Hotend Thermistor - Physical Layout
    4. Hotend Heater Pins - Physical Layout
  8. Firmware Step 5: Heated bed temperature control configuration
    1. Thermistor Type
    2. Temperature Control Bed BANG-BANG
    3. Heated bed thermistor - Physical Layout
    4. Heated bed heater pins - Physical Layout
  9. Firmware Step 6: Configuring Endstops
    1. Homing direction
    2. Disable unused endstops
    3. Define axes size
    4. Reversing endstop output
    5. Fast and slow homing rates
  10. Firmware step 7: Network Settings
  11. Step 8: What's next?
    1. More advanced setup?
    2. Using Switches

Step 1: Connect and Install

In order to install the drivers for MKS Sbase v1.x (opens shop on Aliexpress) board on our computer we first need to go and download the necessary drivers from the makerbase makerbase-mks on

Note: You do not want to use MKS firmware as it is redacted. Always use firmware from Smoothieware. If confused about the name "Repository", then just look at it as a folder of files.

Click the file and click the Download in Github and save it somewhere on your computer, then extract it to a folder.

Conencting USB

Plug in USB to the board and look at the LEDs at the upper left corner.
Immediately the D7 led lights up. After a bit D1 also starts lightning while D2 and D3 blinks rapidly.

Open device manager and update drivers for the new Smoothie/Seriel USB device with the signed drivers you just downloaded from Github located in the easy to find folder:

Mine installed fine on Windows 10 x64 pro.

Installing firmware

  1. Firmware from MKS are just and old copy of Smoothieware, so we always just want to use the newest version from Smoothieware.
    1. In other words: always use firmware from Smoothieware.
    2. If you can't find config.txt file from original smoothieware, just use the one from MKS.
  2. Download official firmware from Smoothiewares firmware page which is a subpage on their own Github page (you might want to download their full github repository (folder) in order to find their config.txt file)
    1. Start by using the Stable version. When everything is working fine, you can use the Nightly version instead. It is the newest version, but not fully tested yet, and considered as beta/test.
  3. Insert the SD Card into the MKS Sbase board and plug in the USB Cable. Your SD Card is now going to show in your file-Explorer.
    1. If not, you need to make sure you have the Drivers installed.
  4. If you can't find the config.txt file from Smoothieware, just locate the config.txt in \MKS Sbase\MKS-SBASE-master\MKSSBase-firmware and copy it to your SD Card.
    1. Smoothieware suggest disabling auto-Mount on the SD when connecting to USB. Especially when using a MAC, as MAC OSX tends to do funky stuff at strange times.
    2. I have changed nothing on my win10. And nothing bad has happened the past year.
  5. The D7 lights up, shortly after D1 follows. D2, D3, D4 blinks and then D4 turns steady while D2 and D3 continues blinking.
    1. At this point, the firmware.binchanged had changed to firmware.cur file on the SD card
  6. After successful updated, the file name will turn into firmware.cur.

Changing or Updating firmware

Just delete the firmware.cur file from your SD, or rename to firmware.cur.old or similar, and copy on the new firmware.bin file to your SD. Powercycle your printer (also unplug USB) and you can see your new firmware.cur file on your SD card.

Note:After making any changes to your config.txt file in the future, you need to power-cycle your controller, meaning disconnect both power (if in use) and USB. You can send a reset command, but only through true terminal use and not through Printrun/Pronterface or similar.

You can use the edge firmware which is eseentially a realease candidate, which has more features, but also might contain some errors. This goes beyound this Instructables.

Step 2: Configuring Smoothieware Compared to Marlin

I've been using Marlin firmware on Arduino+Ramps for a long while, same as the majority of 3D people, so I'll use Marlin as comparative source for configuring firmware.

Obvious difference from Marlin

Configuring Smoothieware is done in a single config.txt file which is saved directly to the SD card, using notepad instead of a big program like Arduino IDE. The firmware settings are updated by power-cycling the printer or sending a reset command to it. This compared to Marlin with a very large amount of sketches (files) we need to keep track of and modify - see Photo for settings the printer I'm actively upgrading here!

Less obvious differneces

There are some less obvious differences between Marlin and Smoothieware, where the most notable are:

  1. Speeds are rather confusingly listed as a scattering of mm/sec and mm/min in Smoothieware and Marlin, so have to be aware of this. No clear pattern is in place.
  2. The axes in Marlin are listed as XYZ and Extruder while the axes in Smoothieware is listed as Alpha, Beta, Gamma and Delta/E0 and E1

Firmware and Config file(s)

As you might have gathered, the Smoothieware firmware is based on 2 files. A firmware.bin and a config.txt file. There is a base config.txt file and a bunch of preconfigured configuration files present in the repository from MKS, located in a subfolder. The Config file can also be named without the .txt extension.

Note:This is a template and not just something to put in and use.

You can pick the one that most resemble your printer, like Delta or Cartesian. I'm just going with the basic Config.txt file.

Configuring firmware

First make a backup of your config.txt file, then open config.txt using notepad. Disable "Word wrap" as it might confuse you some.

Note: Smoothieware warns against Notepad++.

Also remember to take your microstepping multiplier into account. My setup here is based on 1/32 multistepping to take advantage of the build in DRV8825 drivers. Multistepping jumper is placed in upper right corner. (1)


You can make your own comments by writing # at the start of your line and then your text. This is very usefull to remember what something is about.

I'm adding a line to the start of the file: # Ultimaker 2

Step 3: Firmware Step 1: Default Feed Rate

I have 300mm/sec in Marlin, which translates to 18000mm/min, so I'll change the preconfigured 4000 to 18000. My Ultimaker is very well tuned, so you might have much lower setting - or higher if using a Delta.
Default_feed is translated to DEFAULT_MAX_FEEDRATE in Marlin.

alpha_steps_per_mm and beta_steps_per_mm needs to be changed to 160 while gamme_steps_per_mm is changed to 800.

acceleration is changed to 300 and z_acceleration to 80

1/32 multistepping

All of the above are 1/32 multistepping. In order to use 1/32 you also need to set the correct jumper on your Controller. It is located almost at the upper right corner with 16|32 next to it. The pins are named J3.

Note:Do not change any jumper with power on. Including connected USB cable

Connecting Motors

There is really not much to it. You need to have some 4 pin XH 2.54 4-pin connectors. You can use dupont as well, but they tend to fall out.

The Controller board is clearly labeled X (Cm2_M2), Y (Cm3_M3), Z (Cm2_M4), E0 (Cm2_M1) and E1 (Cm3_m5).

External Motor Controllers

If you need to hook up some external motor controller, you can do it using the pins just below the big heatsink over the drivers.

The pin-outs are labeled Jc_M2, Jc_M3, Jc_M4, Jc_M1 and Jc_M5 listed in order of above motor conenctors.

Step 4: Firmware Step 2: Cartesian Axis Speed Limits, Pins and Current

Defaults are 10000mm/min which translates to 166mm/sec (to keep reference to Marlin users) which is enough for many printers. Note how I write down defaults/current value in notes after the setting. This is a good idea in case (when) you need to make changes.

I have 300mm/sec on my Ultimaker 2 though, so I'll put in 18000 for XY and 4800 for my Z axis.


I'm not changing any pins at the moment, but we have to type in the _max_rate for each axis, which on a cartesian printer i the same as _axis_max_speed. This is not the case for Delta printers.

So for alpha_max_rate and beta_max_rate I enter 18000 and for gamma_max_rate I enter 4800.

Take note of the ! listed after each _dir_pin - this denotes the direction of an axis, which means you can remove or add ! if your axes is going the wrong way.

Go back and modify this later as needed instead of swapping around the cables, which you can't do, if you use the proper connectors in any case.


My XYZ Nema motors are rated at 3.2 voltage and 1.7amp.

If I wanted to feed my motors max current, I'll set the _current to 1.7 amp, but the motors would run rather hot then, so I'll try out using the 1 instead which should be plenty.

I have set my Z-motor to 0.8 amp as it really isn't doing much Work, translating to: gamma_current 0.8

Step 5: Firmware Step 3: LCD, SD and Extruder

LCD and SD

I'm not going to change anything regarding LCD and SD.

Extruder setup

I am not using the original extruder, so my numbers will be different here!.

I have uncommented two settings here: extruder.hotend.retract_length and extruder.hotend.retract_feedrate but I must admit I do not know wheter this is necessary or not, since we configure this in our slizer in any case.

Delta driver current

One thing of note here is the current for our delta driver, which translates to our Extruder 01 motor.

My Extruder motor is rated at 2.5amp. I want to give it some juice, but not running it too hot, so I'll put it at 1.5amp. I am running a 5.1 geared extruder, so I do not really need to pressure it. 1.5amp is probably too much as well.

Step 6: Firmware Step 4: Hotend Temperature Control Configuration

I'm not changing the pins or connector we use, but stick to the default.

Thermistor type

I do change the type of thermistor used. I am using E3D hotend, which comes with a Semitec thermistor, so I need to change that.

To find the correct thermistor, we look at:

PID tuning

We do need to configure this, but we cant really do it at this stage since we need everything setup first.

When you are ready to do it, the command is slightly different than with Marlin firmware.

In Smoothiware the command is M303 E0 S60 to test at 60c. I did a test at 60 and then Again at 200 with new values.

Hotend thermistor - physical layout

In order to actually connect our thermistor we take a look at our pins image to figure out where we connect it.

Default connector for hotend thermistor is the one named TH2 on the board.

  1. TH1 is P0.23 - Heated bed
  2. TH2 is P0.24 - Hotend
  3. TH3 is P0.25 - Unassigned
  4. TH4 is P0.26 - Unassigned

I have made a small comment in the config.txt file to remind me that 0.24 is TH2

Hotend heater pins - physical layout 2.7 is the screw-terminals labeled Heater1 on the board

Below chart looks rather unorderly, but is listed as left to right on the controller-board. It is listed on the board itself, which makes it not as bad as it might seem.

  1. Hot-bed is P2.5 - Heated bed
  2. Heater1 is P2.7 - Hotend01
  3. Heater2 is P2.6 - Hotend02
  4. FAN is P2.4 - FAN

Step 7: Firmware Step 5: Heated Bed Temperature Control Configuration

There was no comment to clearly state the start of the heated bed section, so I made a start comment #Heated bed temperature control configuration to match the start of hotend section.

Thermistor Type

You might need to change the Thermistor to the appropriate type for your setup. Nothing else to it really.

To find the correct thermistor, we look at:

Temperature Control Bed BANG-BANG

I am running my heated bed through a SSR (Solid State Relay) which is not very good at handling PID, which uses higher PWM signals. I could do it by turning signals down to 20 (according to smoothiewares site), but I honestly don't know how to do a PID tuning of my Heated-bed?

If I wanted to specify my frequency for the bed, it would be like this:

temperature_control.bed.pwm_frequency            20

I uncomment and change the setting for temperature_control.bed.bang_bang to true and also uncomment the next line temperature_control.bed.hysteresis

Heated bed thermistor - Physical Layout

Here we once Again take a look at our pins image to figure out where we connect the thermistor.

Default connector for heated bed thermistor is the one named TH1 on the board.

  • TH1 is P0.23 - Hot-bed
  • TH2 is P0.24 - Hotend
  • TH3 is P0.25 - Unassigned
  • TH4 is P0.26 - Unassigned

I have made a small comment in the config.txt file to remind me that 0.23 is TH1

To find the correct thermistor, we look at:

Heated bed heater pins - Physical Layout

temperature_control.bed.heater_pin 2.5 is the HOT-BED screw-terminals. This is the large screw-terminal right next to power input.

Below chart looks rather unorderly, but is listed as left to right on the controller-board

  1. Hot-bed is P2.5 - Heated bed
  2. Heater1 is P2.7 - Hotend01
  3. Heater2 is P2.6 - Hotend02
  4. FAN is P2.4 - FAN

Heated bed is default set as bang_bang which is fine for large areas like a heated bed.

Step 8: Firmware Step 6: Configuring Endstops

This sections looks very confusing at first glance, but it really not bad, when you first figure out how it is ordered.

Smoothieware source:

Homing direction

Lets setup homing direction for our Ultimaker style printer. We know it homes to X min, Y max and Z max. This translates to:

  • alpha_homing_direction home_to_min
  • beta_homing_direction home_to_max
  • gamma_homing_direction home_to_max

Disable unused endstops

We do not use X max, Y min and Z min endstops, so lets disable those, by typing nc, which translates to Not Connected.

  • alpha_max_endstop nc
  • beta_min_endstop nc
  • gamma_min_endstop nc

Define axes size

We need to define the size of our printer. This translates to Software endstops in Marlin.

  • alpha_max 213
  • beta_max 179
  • gamma_max 195.8

Reversing endstop output

Test output by issuing a M119 command to it. This looks different than when using Marlin, so instead of triggered, you get an 1 if the endstop is signalling a hit.

If you get a false positive you need to revert the endstop signal by adding an ! after the pin number.

You can see how I removed the ! from my alpha_min_endstop and how it changed the output when issuing M119 command.

Hint: Just don't focus on 1.24, 1.27 or 1.29 which are the pin numbers, but just look at the !

Fast and slow homing rates

Homing rate transfers directly to move speed mm/sec.

I upped the _fast_homing_rate for X and Y to 100 and Z to 20. The Ultimaker 2 homes to Z max and it really just takes ages for it to home if you keep it at its default.

I actually had double this in Marlin, but want to test it out a bit, before raising it, since I just changed my heated bed to something heavier.

When hitting the endstop the axes retracts a bit, where the distance i defined in _homing_retract_mm, and then moves slowly back. This is defined by _slow_homing_rate some. I upped these well, especially for my Z axes.

Step 9: Firmware Step 7: Network Settings

If you are going to use the networked option you can go with automatic setup, where you enabled DHCP and your printer is given an IP from your router/DNS server.

If you want to configure your printer with a static address instead, you simply type in the IP address and subnet mask here.

I have changed it to something fitting for my subnet. Yours might be looking different.

I can now connecto to the printer using both a standard internet browser or using Pronterface.

Using an Explorer we get a simplified Pronterface GUI for our use.

I have kept telnet enabled as I want to see what options it gives me.

Note: Do disable any networking service you do not use, aa it will open a security breach where people might take over your machine. Especially disable Telnet if you do not use it.

Step 10: What's Next?

This is it for now!

I hoped it helped you get started, or helped you decide wheter to make the leap for Smoothie-type boards and Smoothieware or stay away.

I believe I have fullfilled the purpose of this Instructables by getting started using the Sbase 1.2 controller and using Smoothieware.

We should by now have a functional printer, albit some tuning is stillneeded.

More advanced setup?

I allready did setup a Hotend Temperature and -fanswitch (2 switches), which I will cover in an upcoming Instructables.

Using switches

1) Fanswitch :: Be able to turn on/off my fan used to cool my hotend heatsink - I do not want it ON all the time unless it is needed, as it can be rather noisy.

2) A switch that polls the temperature for our hotend and then use the fanswitch to turn on the fan at temperatures at or above 50c and then off again, when temperature gets below 50.


DavidH641 made it!(author)2017-06-29

please do a instructable on hooking up a NPN or PNP senor to the mks sbase 1.xx for bed leveling thanks

DavidH641 made it!(author)2017-07-03

thanks for your help and advice

dintid made it!(author)2017-06-30

I do not use sensors.
I'll recommend you make your printer more rigid to remove the need for sensors.


TIGERblank made it!(author)2017-06-20


I found your instructable
very successful and I think it has encouraged many to opt for
smoothieboard when it comes to making your printer, among them I too.
have encountered a problem that I do not know if someone has been asked
because I use the corexy machine model, checking the configuration
indicated on the smoothieboard website for the machine to work
kinematically as such, it must be indicated in the file Config the following "Arm_solution corexy". When
connecting to the software to send the corresponding command when
moving the X axis only the X axis moves, and when moving the Y axis only
moves the Y, being a corexy system should both engines move when I try
to move in one of these Axes.
Does anyone know why this is not working properly?


dintid made it!(author)2017-06-21

Might find this thread usefull as well:

dintid made it!(author)2017-06-21

Thank you.
Have you looked at the page on Smoothieware for this? They call it H-bot for some reason:

AndiH19 made it!(author)2017-06-20

hey :)
I have an mks sbase and i have some problems..
I use pronterface with tcp connection so if i want to print something it heats extruder 1 to the set temp and then also extruder 2! before it starts printing.. im very confused why it does that because in slic3r and cura i have set that my printer has only 1 extruder..Anyone some idea what could be wrong there?

Second Problem: Once my second Extruder is connected.. it heats up till it gets some Temp Runaway Error Delta=49°.. I measured the Resistance after that and it was like only 5kOhms so i guess the second extruder did overheat somehow =/ Any ideas on that problem? It seems to me that somehow Extruder 2 PWM is set to 255 when its plugged there some way to change that in the config?

dintid made it!(author)2017-06-21

For the heater problem you propably need to define your heater 2 with the correct pins - meaning other pins than you use for heater 1.

After you have defined the pins correctly, you should do the mandatory PID tuning of the heater :)

JoshuaJ56 made it!(author)2017-06-11

is there a way to clone two steppers on this? can you config e0 to match x,y, or z?

dintid made it!(author)2017-06-12

I'm actually not sure, but I have been asked this before.

I personally used an external driver board and driver connected to the pins on the driver I wanted to "clone".

This way they are given the exact same instructions.

java402000 made it!(author)2017-03-26

Hello everyone

I have a Tronxy 3x and the melzi board stopped working. I got the mks 1.5 with the tft 32. Evey thing is working but cant print stand alone. Prints fine using pc. I can find the g code on the tft 32 It goes to the print screen then it counts down time and sits there doing nothing. All other controls works fine preheat, auto leveling and all movements, just will not print stand alone. Anyone have an ideal what might be wrong .


dintid made it!(author)2017-03-26

Have you tried with different Gcode files? Made sure the baudrate is the same on display and in firmware? (It must be since you can move it, but just to be sure).
Try updating firmware on both.

The MKS Base 1.5 is not smoothieware but normal 8bit marlin

Newest 32bit Smoothiewaere is MKS Sbase 1,3

Notice how smoothieware is Sbase, and the other is Base


java402000 made it!(author)2017-03-28

Thanks Morten
I visited Aliexpress, The 1.4 board must be different then the mks 1.5.
Aliexpress tell me to use marlin, but if you think it will work I'll give it a try. I want to get the computer out of the loop.

dintid made it!(author)2017-06-01

MKS 1.5 is NOT 32bit, unless it is a counterfit model with wrong numbering. 1.5 is arduino, so marlin is the right one.

amorris00 made it!(author)2017-04-12

I cant believe I have only just seen this guide! Great read and some very useful info that I missed when setting my own up so thank you. I am wondering if you have had any luck with using an IR height sensor? Such as the one from Escher 3D? And if so, what pins have you connected everything to? Kind regards.

dintid made it!(author)2017-06-01

Hello Amorris00. I do not use height sensors. I can recommend using very strong springs for the bed and 3 fingerscrews for easy adjustment. Look at how the Ultimaker 2 is doing this. :)

RBeaubien made it!(author)2017-05-31

I'm trying to use the fan output to run my parts cooling fan, but the output of that port seems to be a pwm signal, not a pwm regulated 12v to power the fan. Are there any specific config settings I need to make to have this work? I have the SBase v1.3. Thanx.

dintid made it!(author)2017-06-01

I must admit I do not entirely follow what you said and what is the result?

CharleW made it!(author)2017-03-15

Going through the tutorial so far and it has great knowledge. I am having difficult trying to turn on the LCD 12864 panel. I am not sure why it ain't turning on. It is hooked up correctly. Also How do I set that up on the config file?

dintid made it!(author)2017-03-16

Hello CharleW
Thank you for your feedback. In order to use the LCD12864 you need to scroll down in the configuration.h file and uncomment the:

It is not:

You can get more info on your LCD here:

Hope it helps

CharleW made it!(author)2017-03-16

For the MKS Sbase smoothieboard? I thought Marlin code is different from Smoothieware?

dintid made it!(author)2017-03-17

Doh, sorry. Don't know where I had my head.

I don't know about the LCD12864, but I know they have written a small guide on their webshop on Aliexpress.

Brucew85 made it!(author)2017-03-13

I have the sbase 1.3 and the 3.2 tft and they are all configured. The display seems to function when I press buttons. If I try to use the tft to heat the bed or move the motors, nothing happens. If I plug into the computer and use pronterface, the motors move and the bed heats. Why would the tft not be able to control? Please assist. Thanks!

dintid made it!(author)2017-03-14

It's most likely because the baudrate on tft is not the same as on the controller.
They need to be the same :)

DannyD77 made it!(author)2016-12-26

is the hotend 24 volts or 12

dintid made it!(author)2016-12-27

I'm using 24v, but if you use a 12v psu the hotend is 12v.

If you want to use a 24v psu but 12v hotend for some reason, you can use some external mosfet board to accomplish this.

mshievitz made it!(author)2017-03-07

when using the 12v rated gear on a 24v supply, set max pwm to 64 on the configuration section for the 12v piece of gear. This allows you to upgrade to smoothie and 24v for motors, but allow you to retain 12v rated heated beds or extruder cartridge heaters until such time as you want/need the 24v performance offered by upgrading that piece of gear.

Here is an example:

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

dintid made it!(author)2017-03-07

Heya mshievitz. It's stable now? Asking as I played a bit with it (not overly much), but had some issues with the fans I use to cool the printed objects.
Can't rule out wheter it was just the fans though :)

Nice input :)

HIM+Design made it!(author)2017-02-24

First of, thank you for this great tutorial! I was wondering would this also count for a MKS Gen 1.4 board?

dintid made it!(author)2017-02-24

Hello HIM,
I do not own an MKS Gen 1,4 board.
You are welcome to contact MKS and ask for it, as they might want me to make an instructables, if enough people are asking for it.

The Gen 1,4 is working as Ramps 1.4 but with a bit different layout.

cmoegele made it!(author)2017-02-19

Thx for this very good an detaild instruction!
Yesterday I tried to get my MKS-Sbasev1.3 working with a diy corexy. Tried different versions of the new smoothieware. After install and reboot everything is working as expected until I try the homing function. The axis moves to endstop (3wire with VGS) and when it first hits it does not do correct second homing and evertime i try to move axis manually there is some squeezy noise from the steppers until I reset the electronics. After hours of searching in config and web. I finally tried the firmware provided on the github and with this homing works as expected, but I compare the binaries, and there is a big difference in size against the actual edge.( even the source packages are pretty old)... Any idea of this missbehaviour?

dintid made it!(author)2017-02-21

I have no experience using smoothieware on corexy, but I guess it should work fine.
I do not know if second homing works differently on CoreXY. Is it important for you it moves out and back in?

Firmware from is just a really old version of the original firmware, so I'll not recommend using that.

I'll recommend you go back to new firmware and check your endstops are working.

Reason for the "noise from steppers untill reset" is because they are powered on. You can issue the Gcode M18 to turn motors off. This will remove the noise and make steppers easy to move.
You should not move the steppers/axes manually with motors engaged. Worst case you can ruin the drivers on the controller board.

Andr%C3%A9F96 made it!(author)2017-02-20

Where can I buy in Europe?

dintid made it!(author)2017-02-21

It's much cheaper to buy directly from the manufacturer. Even though you have to pay import taxes and vat etc.

But we have a few sellers in Denmark. I don't know about their shipping policy or pricing though.


kzinty made it!(author)2017-02-08

I have followed you wonderful instruction and have a view questions. Why not mention that we need to run the win_install.cmd to get the firmware into the board.

I can't get the TFT32 to even light up (connected as per No other connection made at the moment. I do get communication with Pronterface.

. Do I need 5v on the Sbase or do I need to wire in the 12 vdc to power the TFT32. Copying the tft config as they say does nothing from the micro SD on the smoothie board. There must be something that triggers it to open the tft config but did I erase that ability by putting the official smoothieware on the board?

kzinty made it!(author)2017-02-08

It does need 12 volts. I connected 12 volts and the display works great.

kzinty made it!(author)2017-02-09

My TFT32 powers up and works like it is connected but I do not get any temp readings nor can I move the machine. Anyone now how to get this communication working? I have the BAUD rate in the TFT set to 250000.

dintid made it!(author)2017-02-10

I said check config.txt but you can also just change baud in TFT and see if it doesn't fix it.

dintid made it!(author)2017-02-10

Also baud rate in controller firmware set to 250000? I believe it's standard at 128000, but check your config.txt file.

dintid made it!(author)2017-02-08

Win_install.cmd is only if you want to compile your own firmware - we don't want to do that. At least not in my instructables, where we use the pre-compiled firmware.bin files

Not entirely sure what you mean about config file, but I think you have misunderstodd how the firmware works.

1) You do not want/need to use the win_install.cmd to compile your own firmware.
2) You copy over the firmware.bin file from smoothiewares github (I link directly to it)
3) You copy over your config.txt file
4) You power off - including remove USB.
5) Reconnect USB and the card flashes (reads) the firmware to the card.
6) The firmware.bin file is automatically renamed firmware.cur

Regarding 12v. Might be because your 5v through USB isn't high enough amperage.

DuaneM18 made it!(author)2017-02-03

Anyone get this working with a BL Touch, or know anyone who has?

johnadiamond made it!(author)2016-11-25

I recently acquired an MKS Sbase v1.3 and am using it with a TFT32 touch panel on a Prusa i3 derivative that I'm designing. I initially installed the latest Edge version of Smoothiware and adjusted the config.txt per your excellent guide. The touch panel is working and so are all the motors and endstops. I seem to be having a problem with both the hotend and bed thermistors. The hotend is an E3D v6 with a Semitec thermistor so that's the setting I used for it. I've not yet identified the bed thermistor so I left it default. The voltage across the TH1 and TH2 connector pins is 3.25V on both at room temperature so it looks as though the wiring is plausibly sound. When I enter M105 I get "ok T:inf /0.0 @0 B:inf /0.0 @0" which I'm interpreting as a faulty temperature reading from both thermistors. I've also installed the Master version and power cycled the printer (without the USB plugged in) but the result was unchanged. Note that the FIRMWARE.CUR did adjust to become the expected file length. Any advice would be much appreciated.

dintid made it!(author)2016-11-26

Firstly: Thank you for interest and feedback. Always nice hearing from people using the instructables. :)

Could you copy/paste your section with the temperature settings from your config file please?
I would like to see the pin-assignments for the sensors.

Which client program do you use for issuing Gcodes? I prefer Pronterface as it loads really fast, so nice for troubleshooting.

johnadiamond made it!(author)2016-11-26

Thank you for your swift reply. Here are the sections of config.txt that apply to the hotend and bed temperature control. I have the bed thermistor attached to TH1 and the hotend to TH2:


# 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 Semitec # see

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


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

#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.bang_bang true # 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


I've been using Pronterface, telnet and the web UI to launch GCODE commands and all deliver the same results.

johnadiamond made it!(author)2016-11-28

Problem solved. It was my wiring after all! I must have had at least two bad crimp connections on the thermistor wiring. I'd erroneously assumed that they pull-up resistors were connected to the 5V rail but they were actually pulling up to 3.3V .

hygy made it!(author)2017-02-01

johnadiamond can U please provide test prints with the ramps, and than the same with the upgraded smoothie (using prusa i3).

dintid made it!(author)2016-11-29

Awesome. Glad you found the problem. I've been rather busy with my new Extruder , so havn't had time to look it up myself.

I must admit I'm totally at a loss when people say "pull-up" but I know you can shift a jumper to decide wheter the voltage on endstops are 3.3 or 5v

titeuf007 made it!(author)2017-01-30

great reviews

i hope you will add more feedback and tune(for ex how to add auto bed sensor)

dintid made it!(author)2017-01-30

Hello titeuf.
Thanks, but I no longer use these :)

dintid made it!(author)2017-01-19

Edited the section regarding drivers and firmware in an attempt to make it more clear to use MKS drivers and firmware from Smoothieware.

I removed some links directed at MKS, as they removed the info I linked to. They have changed some on their Github, but I'm trying to find out why and what. (asking them)

Remember the "nice comment policy" people. In the past days we have had an unfortunate individual trolling in here, which is rather sad all considering.

About This Instructable




Bio: I'm blogging about my projects before they make it to Once I've finished a subject on my blog, I'll put ... More »
More by dintid:Ultimaker 2 – Use 5v controlled fan to also get a 24v controlled fan.Duex5 - Use Build in 12v Switching Regulator on 24v SystemSbase/Smoothieware - Use a Free PWM Pin and Power Expander or SSR to Control Fans.
Add instructable to: