Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!

MPSCARA: Mostly Printed SCARA Robot

by Williaty, published

MPSCARA: Mostly Printed SCARA Robot by Williaty Sep 22, 2017
1 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps

Design Tools

Fusion 360 Rhino

Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag


Thing Statistics

6978Views 1546Downloads Found in 3D Printers


Introducing the MPSCARA!

WARNING: This project is still a work in progress, we cannot promise that it will run as well as intended, but are committed to helping everyone get their machines operating as smoothly as possible. It still requires a lot of polish, but we will be continuing with our updates as we produce them. Thank you for your patience, please comment or message with any issues you run into while building/using your MPSCARA and we will do our best to help!

This is a SCARA robotic arm designed to be a cheap, compact, and easy-to-build 3D printer. It can also be equipped with a marker (An older version of the MPSCARA using the marker can be found here), with further tools potentially on the way. It is heavily based off Idegraaf's design, with some quality-of-life updates added in.

If you are interested in building one yourself, download the V1_MPSCARA.zip file and crack it open. It contains...

  • V1.X Marlin - Preconfigured marlin firmware for your MPSCARA V1
  • V1.X Software - A Python-based gcode conversion script, complete with usage instructions and comments.
  • V1.X STL Files - A full repository of STL files needed to build your very own MPSCARA V1
  • Bill of Materials V1.X - In excel and pdf formats, complete with prices and links to where the components may be purchased. Note: Most hardware will be available at nearby hardware stores, and likely sold in lower bulk than online, I strongly suggest you check those locations first to get better deals.
  • MPSCARA Instructions V1.X - Also known as a process plan or construction instructions, this tells you exactly how to build, wire up, and install the firmware onto your MPSCARA.

As the file names imply, this is the first iteration of all these distinct components. If any issues are encountered, or any clarifying questions arise, the files will be updated along with notes on this page to indicate what was changed and why (Along with version increments on the related files). That being said, please comment on here or PM me with questions or suggestions for this project.

Special thanks to Professor Mark Ganter for guidance, Ashley Pigott for testing and proof-reading, and Molly Carton for advice.

The MPSCARA was designed, built, and tested in the Solheim Additive Manufacturing Lab at the University of Washington.

Print Settings

Printer Brand:












Used 3 perimeters and 4 layers top and bottom. None of the printed parts seemed particularly flimsy using those settings. Used PLA filament.


How to Get the BEST out of your MPSCARA Construction Experience

Depending on your printer, some pieces may be printed with slight lips at the bottoms. In order to save frustration, it is suggested that those are gently filed off, especially on the following pieces:

  • Linear_Bearing_V1.stl
  • Upper_Upper_Arm_V1.stl
  • Forearm_V1.stl

Otherwise, be sure to carefully follow the process plan included in the zip file. Most of the machine is fairly straight-forward, but there are some little tricks in there that help quite a bit.

Design History


Released on 10/2/2017
-Accidentally uploaded wrong Linear Bearing file, V1.1 now has the notch mentioned in the instructions. If you already printed the V1 of this part 3 times, you only need to print one of the V1.1s for use on the bearing that connects to the Endstop Clip. The notch helps keep the clip from rotating
-Increased height of the Baseplate file in order to increase stability of the 8mm rods.
-Added more comments to the software to give more detailed error messages.

Quality of Life
-Uploading the major components separately as well as in the combined ZIP file. (Software, STLs, and Marlin are in their own files so you don't need to download the entire new file if you only need to do partial updates.)

-Uploaded wrong file for Z Carriage Bottom, new file specifies that the 'Y' wires are on that piece. No structural/functional changes, simply changed for ease of wiring/assembly.


Released on 9/22/2017

More from 3D Printers

view more

File Name



All Apps

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Treatstock is an online platform that offers decentralized manufacturing services such as 3D printing and CNC machining for clients all over the world. We offer free and instant access to comparati...

App Info Launch App

3D print your favourite design with NinjaPrototype, a professional 3D manufacture with consistent quality and speed.

App Info Launch App

Hello, looking at your project, I thought maybe, could have interested in what I'm dealing with, it's a lamp printer.
maybe you can like it

hi! faced with the problem Code Translator it all layers into a single layer prints(tried to draw with a pen), and draws incorrect

Hi :) I just built mine but i encountered a problem with the GCode-Translator Script.

The Error message is:
File ".\Gcode_Translator.py", line 158, in <module>
    z_new = float(coord[1:].strip())
ValueError: could not convert string to float:

It fails in the first lines of the gcode, where it should read the acceleration.
Further filewriting is aborted, so the gcode just breaks :/

Sample GCode:
M117 Starting...
M107          ;Laser/Fan OFF
G21           ;Metric Values
G17           ;Plane XY
G90           ;Absolute Positioning
G92 X0 Y0 Z0  ;Set XYZ Positions
G0 F2500
G0 Z2 F300    ;Position Z

M117 Projektion2
G0 X-72.648 Y20.979 F2500
G0 Z2 F300
G0 Z0
G1 X-72.954 Y32.716 F1500
; ...
Complete Sample Translated GCode:
M117 Starting...
M107          ;Laser/Fan OFF
G21           ;Metric Values
G17           ;Plane XY
G90           ;Absolute Positioning
G92 X0 Y0 Z0  ;Set XYZ Positions
G0 F2500.000000

Maybe you can take a look at it :) Thanks in advance.

The could not convert string to float Error was gone after i removed the comments in the gcode lines. (Everything after a semicolon, including the special character itself)

Next Error: Translator Script expects X AND Y Coordinates in each GCode Line
File ".\Gcode_Translator.py", line 184, in <module>
    movement = math.sqrt((x_new-x_mid)**2+(y_new-y_mid)**2)
TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'

This occurs when your GCode's moves look like so:

G1 X20.197
G1 X20.299 Y52.243
G1 X20.375 Y52.241
G1 Y44.083

--> So the script doesn't know the new value for x or y, because none is given and this case doesn't seem handled.
I could fix that by changing in the script, line 180++:

From this code
                x_mid = x_old
                y_mid = y_old
                e_mid = e_old
To this code
                if x_new == None:
                    x_new = x_old
                if y_new == None:
                    y_new = y_old
                x_mid = x_old
                y_mid = y_old
                e_mid = e_old

Thank you for letting me know! I didn't think about those kinds of problems cropping up, was using mostly handwritten g-code and Slicer g-code for testing, had forgotten that some other slicers abbreviate when there are horizontal and vertical lines. I'll see what I can do to have it copy over comments properly. Great edit recommendations, by the way!

Hi I am having trouble with the script conversion. I use my print program(Repetier-Host) to slice with and then save the sliced file as gcode. It does not save as .g . When I run the script with default setting.txt and modifying targets.txt with the filename I get a file t"attempts to go outside of build area"

Hello Roko11,
Sorry to hear about that, the conversion software still needs some work to be more robust. Currently it's set up as a strict coordinate transformation and doesn't move things around to get the best print location. I'd try moving it around in the build volume so it's close to the origin and in the positive section of the Y axis. If that doesn't work, I'd try shrinking down the model a bit and repeating. The software doesn't know how to deal with things in the negative Y axis just yet, need to learn more about programming to incorporate that.

Thanx for the reply. I looked at the comments below and the solutions did not work out. Also I am Having trouble with the printing . I can home to the stops no problem,BUT I don't understand where 0,0 is from there. Are you looking at the bed from the tower closest to you? which puts 0,0 at the right of the tower .(endstops) That is completely the opposite of what I am used to with the other builds I have made.(Delta, CoreXY, Prusa derivative) The 0,0 was either center of bed (Delta) of left,front closest to me. In my minds eye the tower would be farthest away from me with 0,0 to my left-front. I tried a dry run with the 25mm test file and it wants to start in a place that does not make sense to me as far as coordinates displayed on screen and actual location. I also switched the X,Y motor and endstop connections which did not change anything. A labeled diagram as to what motor is what(X,Y) and a coordinate map layout would be good.I am not new to 3d printers but I am new to the SCARA iteration. Your input would be appreciated. Thanx.

Oh yeah, that's fair. I have the endstops at their current position because that was the simplest to implement hardware-wise, and it required minimal angle-measurements to ensure that it was accurate initially. The machine interprets that as the (0,0) point, but the conversion software's (0,0) is placed differently. It should be the offset distance away from the front rail, as specified in the 'settings.txt' file, and 90 degrees counter-clockwise from the endstop positions. The main issue that you're running into is that the machine's coordinates are completely separate from the standard Cartesian (x,y) coordinates, and without tampering with Marlin (something I'm not good enough with arduinos to do just yet), I don't have an easy way to make the values displayed match up to the physical Cartesian coordinates. The ones on the readout should be the angles from the endstop to the upper arm as x and the endstop to the lower arm as y. I'll work on putting together a diagram to show where all the values come from.

Thanx for the input. I am trying to "self-educate" myself about SCARA geometry and appreciate the clarification.
BTW, I had trouble with the slide bearings *sticktion", so I subbed them with LM8UU bearings (stacked) on each rod and the mechanism slides much smoother.The 6002 bearings fit nicely. The drive belts I made by counting out the teeth and super-gluing a short piece of belt across the gap while holding it on the large gear to get the spacing right. That works fine while I wait for the endless belts to arrive There is no slack on the long belt.
I will definitely post "I made one" pics when I get farther along. I had a hot end mounted to set Z height and then removed it so I could mount a marker to draw with while I figure out the coordinates issue. I used my CoreXY (DIY FB2020+) to print the parts so I have a printer available to make parts as needed.

Thanks for the reply. I sliced the same 20mm stl file in 4 different locations on the bed. Here is an example of the error Thronny generated. The code stops after the first file.:

Traceback (most recent call last):
File "C:\Users\roko11\Documents\Downloads\MPSCARA_Mostly_Printed_SCARA_Robot_2487048\files\V1.1_Software\Gcode_Translator.py", line 91, in find_angles
thetaA = thetaC + h * math.acos((c2 + a2 - b*2)/(2c*a))
ValueError: math domain error

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\roko11\Documents\Downloads\MPSCARA_Mostly_Printed_SCARA_Robot_2487048\files\V1.1_Software\Gcode_Translator.py", line 172, in
[thetaA,thetaB] = find_angles(x_new,y_new,settings,gn)
File "C:\Users\roko11\Documents\Downloads\MPSCARA_Mostly_Printed_SCARA_Robot_2487048\files\V1.1_Software\Gcode_Translator.py", line 95, in find_angles

  • " please resize or rearrange and try again.")
    SystemExit: File '20mm_3.g' attempts to go outside of build area, please resize or rearrange and try again.

I tried removing the names one at a time from the targets.txt file with the same results on the first file in the list then the script stops.
I did try the example file you have listed in the earlier comments and it did try to run. I don't have my extruder wired yet so I did a "dry" run.
It did go although the machine did seem jerky to me.
Also I don't seem to be able to make the rod sleeves run smoothly enough so I substituted with a paIr of LM8UU bearings stacked for each rod. Everything fit well and the Z-axis is much smoother with no sticking.. I just used netfabb and cut the ear off of the e-stop mount and used that as a clamp for the other side. The side with the arm fit great, there was an offset so both bearings (LM8UU) fit inside the 6002 at their junction. The only other mod I will make is to the base to make it sturdier and support the rods stiffer vertically.

I got most of the parts printed out, but I noticed that my z-axis stepper won't fit in the baseplate because of the connector on the stepper.

Well that's certainly annoying.
Here's an edited version of the baseplate file that should have more room for the cable, hopefully it'll fix the issue with the stepper motor cable not quite fitting into the slot. As an immediate solution, I'd try filing down the plastic some to give it a bit more space. I'll incorporate the edit into the next version. Thank you for bringing it to my attention!

Thanks for the reply! I'll give your edited baseplate a try if grinding down the plastic don't work.

Just a quick comment: Thank you for taking the time not for just publishing the robot BUT ANSWERING questions and adding comments all the time. Someone deserves here a very happy 2018!

Thank you very much for the kind words! I'm doing my best to help out when I can, definitely a little spotty on response time sometimes, but I want everyone that tries to make one of these to end up with something they're happy with!
Here's to a 2018 filled with 3d printing!
Also, I love what you and your team is doing with the modifications, can't wait to see how it all wraps up, definitely keep me updated! It's great getting to see these ideas grow and evolve!

I had the same error and I found a solution:
Open andEdit the gcode_ translatior.py, just in the error put the complet name that the file that you want convert.
Old_g = open(" your file.g","r").
Try this.

I do not quite understand what you mean :(
if possible, can you show me by uploading pictures.?

Click left Buttom the gcode_translator.py and edit with text editor, look for the líne with old_g = open (gn+".g","r") and change (gn+".g") for the mame if tour file, for intance :
old_g=open ("nameofyourfile.g", "r")
That isvthe way that I get work the translator.

Hello Williaty

Everything is over but I get an error like this why
can you help me
you upload a video about this software youtube??

Oh, I see what the problem is, I used square brackets in the 'targets.txt' file to signify that what was in the brackets (including the brackets) should be removed. In actuality, since your file is just labeled CUP.g, you would only include CUP.g in your targets file instead of [CUP].g
I hope that clears it up. Sorry about the wait, been busy preparing for the holidays.

i put in arduino your firware,
my arm move, but only do the Z homming.
i not good with arduino, con you say me something that help me

i just do one.

stability is not good. I have made a piece for the top of the bars. I want to reinforce the bottom part. You can send me the original file to edit it.
i working for the Z axis. i change the original sentences

Can't promise that I'll be able to help, but I can give it a shot. Are you using a fresh version of Marlin and trying to copy over all the settings I've made in the version I've uploaded? I'd double-check that all the motors work first, could be faulty wiring. That one drove me up the wall for a few days when I was first putting this together. Try powering off and setting each motor to run from the Z axis port, swapping through them to make sure they all work when you tell Z to move. If that's not causing the issue, there might be something else in the code, I'd need to see it to give you a guess.

my endstop are in negative axi Z and in positiv axis ybut and x.
with the program Cura, that i use to my 3d printer, i move all axis in manual mode. when i push Z axis do a homing, go down and when toch endstop, put 0 in position axi Z.
When i push the other axis, don't move and put 0 in the axis X or Y position.

to move the axis, wich program you use?

good lucky in your exams. I can wait until you finish.

Sorry about the wait, things have been pretty hectic recently, done with all the tests now, though! Hm, well that is bizarre... Did things run properly when you used the original firmware and the original wiring diagram instead of the altered software/wiring methods? Or are you using your altered firmware because the original firmware wasn't working for you?
For direct axis movement, I use Pronterface, which comes in the printrun zip downloadable here: http://www.pronterface.com/#download

i begin again and i use your original soft and hardware.
in ramp 1.4 axi X is the uper motor, axi Y the other motor that move arms..
endstop conector.
1.- free
2.- concted, 3 cables end stop as your endstop.
i conect the nearest endstop to the motors
3.- free
4.-the far endstop of the arm
5.- Z end stop
6.- free
Using pronterface.
i push homing boton only do Z axis homming, the other axis not move
in lateral console "SCARA Theta:83.21 Psi+Theta:218.29"
movin axis with pronterface
Z+ go up, but not let me go down

Reporting endstop status
x_max: open
y_max: open
z_min: open

this is the status of end stop, when no one are activated
when i push it manualy
Reporting endstop status

thaks by your help

I would try swapping your X and Y endstops to the minimum configurations, pretty much leave the Z endstop in place and make sure that the other two are evenly spaced and hopefully that'll help out somewhat. Were you able to directly move the X and Y (Lower arm and forearm respectively) motors using pronterface?

ok. thamks. finaly we, your help and me made the homming of all axis.

Cool! Glad to hear that we got the axis all homing properly, a very important first step!

i use the marlin as you upload it first, them i change the sentence i say.
My motors X and Y, move, but don,t do the homming.
I use 3 cables endstop.
with which program you do your test at the begining of your proyect.
i send you my modifications.
can you send me a base file to [email protected]

Sorry about the wait, it's been a busy couple of days, I'm in Finals week at the moment. Did it run before you made those changes to the firmware? The firmware I uploaded here in the Marlin .zip folder should be operational. Could you also send an image of your circuit board? If the X and Y don't move when plugged into their ports on the board, then something may be wired incorrectly. When you say it doesn't home, does it not move at all? Sounds to me like there might be an issue with your stepper drivers, I'd double-check that those are plugged into their ports properly and the voltages are at the correct range.

Great job! I really love the design. Printing and ...."modifying" it a little :-D

Thank you for the kind words! Please post the modifications when you're done, I can provide Fusion or Inventor files if those would be easier for your modifications. I'm looking forward to seeing how it works out!

No. Thank you for sharing this SCARA robot. A very smart design :-)
Regarding the Inventor files. They will be very helpful. Is there a files repository we can access to? Or... could you send us the files to [email protected]?

We will try to add a Google blockly feature to control it and "control the robot from your smartphone" via WIFI

Thanks again!

Hi! Does it work?? No one has uploaded a "Made" one :) How is flex and backlash??

Hey! It does work for the most part! The Z axis can be a little finicky and we haven't figured out all the best slicing settings just yet, but most of that can be worked out through testing with the filament and extruder that you end up using.

Hello, great project! Any chance you can send me the original fusion 360 files. I primarily use Inventor, and i can convert the STL's, but there is some major loss of data compared to an IAM. / IPT. Also have you done any FEA on this? The individual joints could definitely benefit from some roller bearings at minimum and possibly tapered roller bearings if you can spare the weight. I understand the concept of using whats available and cheap, so i get why you wouldn't on the first version. have a few suggestions on the software side as well, mainly concepts for how to accurately go to polar coordinates without using floating point. Floating point always seems to be the killer on most micro-controllers. But not to ramble on, if you could send me those files id like to try to do a few changes in order to possibly improve a few things.Awesome project so far, Thanks!

Hello and thank you for the kind words! I think I can convert the parts to Inventor components and send them over, but I'll see what can be done. In our case, cost was the primary concern, we're planning on making about a dozen in a 3D printing class in the spring, hence the lack of roller bearings. We haven't done any FEA on this project, could be useful to find potential areas where additional material would be helpful. We've definitely got some changes in mind for when V2 rolls around, haven't started yet, but I should be getting more time and a budget to work on that in the near future.
Any upgrades you make to either the software or the parts themselves would be cool to see, please do share whatever you come up with!

I have a question or two about aspects of the design that i do not understand. The slit on the fore arm, what is its purpose? As well, why mount the limit switches where you did? My initial approach would to mount them directly on the Z carriage for the upper arm and then Zero the fore arm in the max position. The arm would essentially be folding up on one side.

The slit is there to assist in getting an accurate measurement of the length of the forearm, as the inner edge of the slit is in line with the center of the axis of rotation of the forearm. The limit switches were mounted that way to ease zeroing, as trying to get an exact angle measurement was proving difficult if one switch was mounted in the elbow, much easier to ensure that the arm is straight.
Hope that helps explain the design process and reasoning behind our decisions!

Hey, Just looking at the firmware and wondering if you could explain the steps per degree value?

The plastic gear is 62T, and if using a 20T drive gear, 400step motors and 16x microstepping, I get:
4001662/20 = 55.11 steps per degree, which doesn't match the 57.3476702 value you have.

Would it be possible if you could share how you got to 57 steps/deg ?

Okay, so, funny story... Your math is correct, and it's definitely the right way to go about calculating the steps per degree, and your number should be the one that's used in the firmware.
But, when I was testing it the first time, I had done a math error in some of my calculations. I did the gear ratio backwards, and ended up multiplying the result by ten to get a number that was reasonably correct. It worked perfectly for all my testing, and ended up in the final product as seen in the code. However, when I did a check-up on all the numbers to comment everything for the V1 release, I found the error and fixed it. Upon doing some testing with the new number, it was just slightly off, so I changed it back to the one that I knew worked and left it there.
Definitely give your values a try, but if they lead to discontinuities, try the 57 degrees again. Sorry I can't give you a better answer, but I hope that explains it!

Thanks for the quick reply! I'll try and print one out soon for testing, and check the values. Don't worry, I know a little about how reality tends to get in the way of perfect-CAD-land math!
Out of interest have you tried the SCARA branch of marlin?

I miss magic physics land, where nothing has friction and we can treat everything like rigid bodies... I wish you the best of luck with making your own, I think it makes for a fun project, but that might just be a defensive mechanism since I've had to work on it for so long...
We were experimenting with the SCARA Marlin options, but it was proving to be a pain to get it to work right/at all, so we did our own little work-around instead of trying to learn the intricacies of how Marlin runs.

Anyone have this working with smoothie firmware?

The project will be a very successful one.
It will be a small recipe...
Z_Carriage_Bottom_V1 - Z_Carriage_Top_V1 file T8 Leadscrew Nuts Can you update the new design...

Thank you very much for your efforts...
I am waiting for your answer by Williaty.... :)

Thank you very much for the encouraging words, I'm hoping it's successful as well!
I'm not entirely sure what you're asking for, could you try rephrasing it, please? Are you having problems getting the nuts for the Z axis to fit in the nut-traps in the Z carriage pieces, or am I completely off?

Thank you for the answer...
There is a motor in the following picture for the Z axis

I wanted to update the Z-axis parts according to the T8 Lead Screw

I want to share with you the end result ...
I can then ask for support again on the software :)))

Ah, okay, I see what you mean. Didn't think of using those kinds of lead screws, just grabbed what we had available at the lab. If you wanted to do the modeling for that and send me the file when you're done, I'd be happy to include it in the thing (With your name attached to it, of course). Best of luck with assembly and testing!

Impressive! A couple questions:
1) Total filament usage/cost?
2) Any way to use a heatbed?
3) Any idea what the approximate cost would be to just buy everything from the links in BOM? Like you say $0.07 for a washer but when I have to buy 100 of them the prices add up fast, and I can only have uses for so many spare washers :)

I'm very interested in this (especially after watching the RepRap helios fizzle out...) Good luck!

Those are definitely good questions, I'll look into getting you some exact answers. With classes starting up, I don't have as much time as I'd like to devote to this project for now, so I can't promise fast turn around, sorry about that. Here's some preliminary estimates:
1) I'm pretty sure it uses less than one roll/1kg of filament, but I'll do a spreadsheet with filament lengths and print times just to make sure.
2) You can definitely set up a heated bed. You'll need to wire it onto the board and do some edits to the Marlin firmware, but it's certainly possible. There's a decent number of resources online that show wiring diagrams for those if needed, and I can post the Marlin edits if people are interested. As a warning, heated beds will require a higher-amperage power supply, so if you're planning on doing a heated bed make sure you get one of those instead of the one suggested on the BoM. If there's interest, I can put together a 'Heated Bed' zip file with all the recommended changes and instructions.
3) Not sure there, unfortunately. I'd definitely suggest checking out local hardware stores for most of the nuts/bolts/washers, I haven't found anywhere good to go for small quantities of those kinds of fasteners online just yet. Most of them are pretty standard, so you shouldn't have too much trouble getting hold of them.

Alright. Good answers, thanks!

Of course, right after I say I'm busy I wind up with free time...
1) It takes approximately 920 g of filament for the whole machine, so one roll ought to cover it. Spreadsheet attached if you're curious. This is using 15% infill, 0.4 mm nozzle, 3 perimeters, and 4 layers top/bottom, which is what we used for our prototype, your mileage may vary.
2) Covered!
3) If you just get everything through Amazon, buying all the machine screws in the 100 packs and whatnot,the total comes out to about $350, not including shipping, those hundred-packs do definitely add up... I'd definitely look at local stores to see if they sell screws à-la-carte, or try to find a 'misc' collection of M3 machine screws, updated spreadsheet with calculations added for your convenience.

My total cost was <$100. Local hardware stores was a great tip.

As a printer or just SCARA arm?

hey, you listet 3 thin steppers in you bill of materials, but the thin ones are SUPER expensive - like twice as mutch as the usual ones. How thick can I max go for the steppers - does it depend on the way I build it? To me It looks like I have to use one thin one, and can get away with usual ones for the top motor, the extruder and the z axis. Am I right? Anyway AWESOME project I'm gonna build one just as a fucn little secondary printer.


Hello! We used two of the thin motors to minimize weight of the Z carriage and to allow for a larger range of Z motion. You could certainly try with just one of the thin motors for the 'Y' axis (bottom one), but you might need to have an elevated build surface as compared to the mounting base of the printer arm to make sure that the print-head can reach the build area. I don't think there would be any weight issues caused by the larger motor, but it is a possibility.

I wish you the best of luck with making your printer, please share pictures and provide feedback when you're done!

hey! Thanks for the fast answer!

I think it should work with just one flat motor, makes the whole thing like 20 bucks cheaper. Elevating the build area shouldn't be a problem, just making the holder for the hotend longer should work.Ill have a try!

And of course, as soon as the parts are here, and I finished building, I'll post some pics!

Would a Mega board with Ramps v1.4 be compatible? More specifically, what (if anything) would need to be changed in the firmware?

Yes, a RAMPS v1.4 board ought to work just fine. Obviously, you'll need to wire it differently from the diagram I've got for the MKS board, but there shouldn't be any firmware issues.

So... It's built and now I'm just having a little trouble with the software (Errno:2 "No Such File or Directory). I thought I was following the directions correctly, but I'm really confused at this point. I created a .gcode file in Cura, btw. Can you show me an example of what the targets.txt file should read?

I'm guessing you're having trouble getting the python script to work, right? If you're having trouble with that, make sure that you've got the script saved in the same folder as the two text files and the gcode file you're trying to convert. Attached is the targets.txt file for converting testfile3.gcode and testfile2.g, so you can model your own targets file after that. The two file types (.gcode and .g) are interchangeable, but Python gets confused if you call it testfile3.g but it's saved as testfile3.gcode.
I'm sorry you're running into issues, I'll update my instructions so that people can better understand what I meant. Thank you for bringing up your issue and for your patience, I wish you the best of luck!

I tried it that way, but I'm still getting the same error. Maybe I'm misunderstanding, so screenshots would be awesome. On the other hand, I'm in Washington too, so maybe I could PM you my number and FaceTime or something. Sorry, I'm not trying to take all of your time and treat you like a personal IT guy. Just excited to see this machine work :). Extremely easy to build and simple design, btw. I modded the base and made a top for stability, just in case. Anyway, here's a picture of my build so far.

Edit to add: another idea... if you could upload some working gcode (whatever... Benchy, calibration cube... anything), I could start working on other aspects while I figure this out. Just an idea.

Hrm, I sent you a PM to organize a method of communication and trouble-shooting. Attached are some copies of the gcode files we used for testing. The Husky file is intended for pen-drawing, so it wouldn't really do that great with the extruder set in, but if you detach that and just stick a sharpie or other marker in the gripper, it should work fine. Of note, these are customized for my arm lengths, so I can't promise that they'll come out properly scaled on every other printer (Should definitely be pretty close, though, arm section lengths don't really vary that much printer-to-printer).
Other than that, I'm wishing you the best of luck! Definitely looks like you put it together properly! We were doing some testing with a top right before I had to set the project down for a while, so I can't guarantee that it'll work out as you'd prefer. We were running into issues where the top and bottom were slightly differently sized from different printers, and that lead to 'pinching' along the guide rails, so your motors might struggle a little from that, depending on how accurate and consistent your printer is.

how can you slice the 3d models for this machine design? is cura ok for it?

Oh, wait, did you mean slicing models for the machine to print them? Our team tested it with Slic3r, but Cura ought to do the trick so long as you make sure to run the gcode file you sliced in either software through the conversion script (labeled 'Software' in the zip file) to convert it from the standard x-y-z coordinates to the angular coordinates used by the printer, the instructions are available in the Software folder.
Sorry about any confusion caused and the ~2 week wait for the (potential) correction!

Cura should be okay, I used FlashPrint for our FlashForge printers, but whatever works best for your printer/came from the same company as your printer ought to do the trick.

Impresive! I am going to build one, it is recommended to wait to v2 or the system is going to be in the basics the same?
Another questions, how are your print speeds? And his print area?
Thanks for sharing

Thank you for the kind words! Classes are starting up, so we will be slowing down testing and development for a while. We are still working on nailing down the best settings for printing, and it is likely that additional changes will be implemented before it will be at the top of its game. In theory, it would have a total print area of approximately 500 square centimeters in an arc shape around the base. I can't imagine that there will be major changes to the most expensive components of this printer (The stepper motors, controller board, and hotend/extruder). We haven't started work on the V2 yet, but updates will be coming in as we go through more development and testing! If you do decide to give building one a shot, please keep us updated on how the construction and testing process goes, we'd love to get some outside perspectives!

so amazingly simple...

Thank you! We worked very hard to try to make it user-friendly and easy to duplicate.

nice job! Especially providing a solution with firmware and software.

Thank you! I can't take all the credit for that aspect of it, the idea of converting the gcode files instead of trying to figure out the SCARA functionality of Marlin was suggested by Professor Ganter. For the curious, the MPSCARA is programmed to take in angles as an input instead of Cartesian XY coordinates. It allows for the software running on the Arduino board to be standard off-the-shelf Marlin code, as the complex reverse kinematics calculations are performed on the desktop computer.

Thanks for the detailed, complete information. Looking forward to v2... :)

Keep an eye on it, I'm sure with all the people trying to make their own I'll get plenty of complain-er, 'suggestions' for how to improve it for the next version!

My only suggestion, so far anyway, is please don't change the design too much! I don't want to have to use another KG to upgrade it later ;) (although it does seem to be well worth a KG of filament). I'm definitely a fan of the design.