by Stargrove1, published

MicroCube by Stargrove1 Dec 4, 2016
4 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps



Use This Project

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

5384Views 1109Downloads Found in 3D Printers


The MicroCube is a small, inexpensive 3D printer, designed around the cheap 28BYJ-48 stepper motors (files for Nema17 included except Z axis). The structure of the printer is based on an exoskeleton, which also serves as the smooth rods for the y-axis. The printer type is an H-bot style printer using a fishing line. In order to provide enough torque for the extruder, two steppers are used in series (or single Nema17 version). Due to the limitations of the 28BYJ-48 steppers, the precision is limited as well as the print speed (2-3 times slower than a standard printer).

Video of print: https://youtu.be/JlPdN9ktdqY


  • Low cost ~100€
  • Easy to build
  • Printable Area of 120mm x 115mm x 95mm
  • Small footprint 220mm x 220mm
  • Low noise during print (with 28BYJ-48 steppers ~50dB, with Nema17 ~60dB)
  • Upgradeable with Nema17 motors for higher speed and precision


2016/12/03 Version 1.0 Initial Version
2016/12/07 Video added
2016/12/18 Added Nema17 extruder and X/Y axis components incl. diagonal stabilizer
2016/12/27 Added assembly guide to the files
2016/12/28 Added part cooling fan, increased print quality
2017/04/02 Edited corner Nema17 mounts to also hold Nema14 motors

Print Settings

Printer Brand:

Robo 3D


R1 ABS + PLA Model


Doesn't Matter


Doesn't Matter





Custom Section



Printed parts:

4 x Corner parts bottom (Corner_bottom.STL)
1 x RAMPS holder (Ramps_holder.STL)
1 x LCD controller bracket, bottom (optional) (LCD_holder_bottom.STL)
2 x LCD controller bracket, side (optional) (LCD_holder_side.STL)
1 x z-axis bottom (z_axis_motor_mount_rod.STL)
1 x z-axis top (z_axis_bearing_mount_rod.STL)
2 x z-axis motor coupler (z_motorshaft_shaft_coupler.STL)
1 x z-axis bed platform (Z_axis_platform_mount.STL)
2 x z-axis bed holder (Bed_Lever.STL)
2 x End switch holder (Limit_switch.STL)
1 x Corner part front left (Corner_l.STL)
1 x Corner part front right (Corner_r.STL)
2 x Corner part motor (Motor_corner.STL)
1 x Motor mount left (Motor_mount_l.STL)
1 x Motor mount right (Motor_mount_r.STL)
2 x Motor pulley (Pulley_15mm.STL)
2 x y-axis carriage (y_carriage.STL)
1 x y-axis end stop trigger (y_carriage_endstop_trigger.STL)
1 x x-axis carriage (x-carriage.STL)
1 x x-axis wire holder (Wire_holder.STL)
1 x x-axis fan holder (Fan_holder.STL)
1 x x-axis carriage tensioner (x-carriage_tensioner.STL)
1 x hotend fan duct (Hotend_duct.STL)
1 x Extruder base (Extruder.STL)
1 x Extruder lever (Extruder_Lever.STL)
Cable clips small/big as required (Cable_Clip.STL/Cable_Clip_big.STL)

Nema17 upgrade:
1 x Extruder_Nem17_axis.STL
1 x Extruder_Nem17_Mount.STL or Extruder_Nem17_Mount_strip.STL
1 x Extruder_Nema17.STL
1 x Extruder_Nema17_Lever.STL
4 x Corner_stabilizer.STL


5 x Stepper motor 28BYJ-48 5V (bipolar hack required)
3 x Nema17 motors (optional)
1 x 12V / 80W or more power supply (Laptop charger or for LED stripes )
1 x Arduino Mega
1 x RAMPs 1.4 Board
1 x LCD Controller (optional)
3 x 5S-5GL microswitches
1 x 30mm fan 12V
1 x E3D V6 hotend or China clone
1 x USB cable
1 x Power supply power cord
Ribbon cable to extend motor wires

Metal parts:

2 x Direct drive gear 11mm
6 x Smooth rod 8mm x 200mm
10 x Aluminium tubes 8mm x 200mm (or other material)
8 x LM8UU linear bearings
2 x Springs for extruder (7mm x 30mm, strong)
4 x Springs for bed leveling (7mm x 20mm)
1 x Ball bearing 605 (14mm outer, 5mm hole, 5mm thick)
8 x U grooved ball bearing 604uu (13mm outer, 11mm inner, 4mm hole, 4mm thick for 1.75mm filament)
1 x M5 threaded rod ca. 160mm + M5 nut
6 x M2 x 12mm
1 x push fit tube mount M5
M3 and M4 screws and nuts

Nema17 upgrade:
2 x 8mm aluminium tube 230mm


Zip ties 200mm x 3.6mm or comparable
shrinking tube
wires, pinheads
Print bed 4mm polycarbonat 150mm x 150mm
Pneumatic pushfit M5
Pneumatic tube ca. 400mm
~1.5m fishing line


For the use of the 28BYJ-48, the bipolar hack is required. A description how this can be done is available at http://www.electronicsmayhem.com/?p=13 , all 5 motors must be prepared as described. The wires of the motors are quite short and need to be extended, at this point, the connector could also be set in the correct sequence to match the RAMPs connector:

2B = yellow * (pin1)
2A = blue
1A = pink
1B = orange

At the RAMPs board, the current limit needs to be set before powering it the first time, following values could be used as Vref, fine tuning will be required due to production tolerances of the motors. During testing, X/Y/Z steppers didn’t lose any step, but they heated up slightly.

X/Y/Z driver = 75mV
E driver = 150mV


The printer is designed as an H bot, due to the small size, a fishing line is used along with ball bearings which are usually used in the extruder to guide the fishing line.
The extruder with two motors instead of one is used in order to provide enough torque for a direct drive bowden setup, the tension of the spring must be balanced not to harm the motors or gears but also to provide enough force for extrusion.


Firmware used for the MicroCube is Marlin 1.1.0 RC7, the configuration.h is provided along the files as a starting point to get the printer setup quickly. Here are some informations about the set values for the MicroCube:

Since Arduino Mega with RAMPs is used, Motherboard must be set to:


Mechanical settings sections holds the information about the kinematics, in case of the MicroCube setup following line must be set:

define COREXY

To match the mechanical setup with 200mm rods, the print area is set to:

define X_MIN_POS 0
define Y_MIN_POS 0
define Z_MIN_POS 0
define X_MAX_POS 120
define Y_MAX_POS 115
define Z_MAX_POS 95

Motor speed settings (28BYJ-48):

define DEFAULT_AXIS_STEPS_PER_UNIT {685,685,40758,1000}
define DEFAULT_MAX_FEEDRATE {30, 30, 0.25, 5}
define DEFAULT_MAX_ACCELERATION {300,300,1,10}


define DEFAULT_XYJERK 5.0 // (mm/sec)
define DEFAULT_ZJERK 0.01 // (mm/sec)
define DEFAULT_EJERK 1.0 // (mm/sec)

Motor speed settings (Nema17 version):

define DEFAULT_AXIS_STEPS_PER_UNIT {66.5,66.5,40758,96.1}
define DEFAULT_MAX_FEEDRATE {120, 120, 0.2, 10}
define DEFAULT_MAX_ACCELERATION {300,300,1,20}


define DEFAULT_XYJERK 5.0 // (mm/sec)
define DEFAULT_ZJERK 0.01 // (mm/sec)
define DEFAULT_EJERK 1.0 // (mm/sec)


Assembly guide added as PDF to the files (MicroCube assembly guide.pdf)

Sample prints

After setting up the printer and basic adjustment of the axis, 3DBenchy was printed as reliability test for the printer. The result was surprisingly good, picture of the first print along the picture section.


  • Nema17 holders (including additional frame parts for more stiffness) done
  • Improved extruder
  • Include power supply (enough space available besides RAMPS)
  • Setup guide done
  • Endurance test
  • Part cooling fan

More from 3D Printers

view more

File Name



All Apps

3D Print your file with 3D Hubs, the world’s largest online marketplace for 3D printing services.

App Info Launch App

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

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

3D Print a wide range of designs with Treatstock. Easy to use tools to get the perfect result. The global 3D printing network that connects you with high-quality and fast working print services nea...

App Info Launch App

Awwww its so cute!!! I might have to make on but make the Z axis taller.

Apr 1, 2017 - Modified Apr 2, 2017
Stargrove1 - in reply to MINTEMP_ERRO

Extending Z axis should be no big deal, simply extend the length of the vertical rods. But don't extend too much, rigidy is based on the small size.

yes i know, I'm keeping that in mind .

What size are you aiming for?

Z of about 175 or 200, i know that might cause some structural issues but ill think of a way to brace it.

I wish you did something for nema14

I thought of using Nema14, but they were quite expensive to get here in Germany. But if you like, I could add a bracket for the X/Y motion system, its pretty simple.

Apr 2, 2017 - Modified Apr 2, 2017
Stargrove1 - in reply to Stargrove1

I edited the Nema17 holders, I added the holes for Nema14 motor, now you are to mount both motors on the bracket, you can even exchange them without cutting a new fishing line. Please let me know if you give it a try, I am interested in the result since I thought of using the Nema14 myself

Thank you that would be very nice

Feb 20, 2017 - Modified Feb 20, 2017

Hi I have access to aluminium shaft (it's not hollow), can I use it? I asked because I saw a hole in the corners that seems to go straight into the tube, what is it for? Mounting the motor?

EDIT: Nvm, it's for the top bearing, so I guess the motor and bearing mount doesn't have nut trap?

Hi, yes you could use solid material as well as a hollow tube.
For the z motor no nut trap is used since the force is quite low to keep it in place. The bearing is held in place by the same screws + nuts which are used for z-axis rods.

Feb 20, 2017 - Modified Feb 20, 2017

I thought of lowering the price by using uno, cnc shield and relay for hotend. Do you think that it's possible?

Marlin is not compatible with the UNO, however there is a firmware which is designed to run on an Uno (and other controllers) https://github.com/Traumflug/Teacup_Firmware.
So yes, should be possible, but a little additional hardware needs to be added because the CNC shield does not provide a driver for the hotend.

Very cool. I will make this soon.

On the parts list you say -

6 x Smooth rod 8mm x 200mm
10 x Aluminium tubes 8mm x 200mm (or other material)

I have smooth rod, but what is the tubes? Where are they used and can you provide a source (aliexpress?) for them?

Thank you,

Feb 15, 2017 - Modified Feb 15, 2017
OkurRo - in reply to Eddiie

The tubes are used for frame. It can be any 8mm pipe. Alumminum are better for frame so just try hardware store, or some store for house and garden.

The smooth rods are used as part of the frame as well as for the linear motion of the x/y/z axis, for the other frame parts, I used cheap aluminium tubes with 8mm outer dimension from a local hardware store, but you could use any material you want (aluminium, steel, carbon fibre, etc.), solid or tube. Amazon link: https://www.amazon.de/gp/product/B00ZXPJ0QC/ref=ox_sc_act_title_1?ie=UTF8&psc=1&smid=A1P3ZJ39C3CUTD

Thanks. I am in the US. 8mm kind of hard to get. I look for conversion and looks like 5/16 is pretty close.
I will keep looking for 8mm.

As I am from Germany, metric system was used. But I think the 5/16 should work well, there is enough tolerance, the corners are like clamps tightened by the screws. If it should not work, use some kapton tape around the rod to fill the gap.

Feb 16, 2017 - Modified Feb 16, 2017
Eddiie - in reply to Stargrove1

I wish we would switch to the metric system....

Think I found something, I'll get these - http://www.ebay.com/itm/271607850532

Tubes are almost here, time to start printing the parts!

Mar 3, 2017 - Modified Mar 3, 2017
Eddiie - in reply to Eddiie

Printing last part now.. Looking over the instructions, are you consistent with your use of Tube versus Rod or did you mix the two?
For example, step 1, assembling the frame, 4 x Aluminum rod 200mm. Then it jumps to talking about Z axis rod, which should be smooth rod. I want the frame to be tube.

I did a search for Tube in the instructions and found something around step 12 or 13 and 16 only.

I can probably finger it out but thought I'd ask for clarification.

All parts of the frame which are not used as a linear guide, are made of aluminium tube. The linear guide requires smooth rods. Have a look at the pictures, you can see the difference between the two types.

Printer is coming together. Need to wait for more parts (bearings) to arrive. This is a nice and simple design, really happy with how easy it is coming together.

I broke the X carriage applying the zip ties on one side but not the other.

Couple questions:
Any sources for the print bed?
Regarding fishing line, it has been many many many years since I have been fishing, It seems that kite string might also work for this. I had some of that around here somewhere. In the event I can't find it, what type fishing line did you use?

There is nothing special about the printbed, I used a piece of polycarbonate, other material are fine too, I got it from the local hardware store.
I just ordered a fishing line from Amazon, I guess kite string would be good too, it is just important that the material is not flexible to achieve precise positioning.


Apr 10, 2017 - Modified Apr 10, 2017
Eddiie - in reply to Eddiie

MADE!!! I posted a make. This was a fun build and everything was working GREAT even dimensional accuracy, THEN I HIT RESTORE FAILSAFE SETTINGS in Marlin firmware and now the extruder does not seem to extrude enough material. Can someone help? I am using the NEMA17, 26t pinion. Using values documented in PDF file, Motor speed settings (Nema17 version):

#define DEFAULT_AXIS_STEPS_PER_UNIT {66.5,66.5,40758,96.1}
#define DEFAULT_MAX_FEEDRATE {120, 120, 0.2, 10}
#define DEFAULT_MAX_ACCELERATION {300,300,1,20}
#define DEFAULT_AXIS_STEPS_PER_UNIT {66.5,66.5,40758,96.1}
#define DEFAULT_MAX_FEEDRATE {120, 120, 0.2, 10}
#define DEFAULT_MAX_ACCELERATION {300,300,1,20}
#define DEFAULT_XYJERK 5.0 // (mm/sec)
#define DEFAULT_ZJERK 0.01 // (mm/sec)
#define DEFAULT_EJERK 1.0 // (mm/sec)

These values also appear when I look at the EEPROM, everything matches, wish I backed them up before I overwrote them. hehe

Fixed extruder by setting steps/mm to 100.00, after calibrating.

Still one thing that is wonky -

I have max X and Y set to 150mm.
In Cura (have not tested anything else yet), I have print bed set to 150 x 150.

When I save gcode and print the file, the output is not centered on the bed, but basically Y min and X min (top-right corner, opposite home).

See my make!

I don't know why the extruder setting stopped you printer from working, but I'm glad you solved it.

About the print bed center, I don't know which picture you mean, but I think the reason might be that the printer is only capable of printing at an area of 120mm x 115mm. If you set 150mm square, the calculated center will be off the actual center. Try to set the actual values of the printable area and check again.

Did the benchy test print work fine?

I thought of Nema Z axis as well, I bought an flat Nema17 already, but didn't find the time to implement yet

oh a pancake stepper, of course.

I will use 120x115 dimensions are retest.

The benchy prints GREAT on this printer. See my Make.

I tried printing a bigger object and the printer drifts to the right. Is there a bug in Marlin RC8 Bugfix?

I think I saw you were using RC6, maybe I will switch to this. Can you confirm what version you are on?

Actually it'S RC5 of Marlin, I also realized this shift, I increased the tension of the fishing line a bit, this reduced the shift. I suspect a slight slip at pulleys, maybe it would be better to use more loops at the pulley, it's also possible that the chamfer was no good idea. Still need to do some testing, but at the moment I focus on other things like finishing the MPCNC in the basement ;-)

Very good project! I love small 3d printer
Is the h-bot sistem good? I read on internet that someone have problem with this configuration, but I think if you print slow there is no problem.
I will made this project with this cheap stepper https://www.aliexpress.com/item/2-Phase-4-Wire-35-Stepper-Motor-0-9-degree-20mm-3D-printer-Stepping-Motor-35H20HM/32677700359.html ( 4 of this cost only 20$ ), Do you think that they are good?

Thanks for sharing this project!

Thank you. I haven't had issues with the h-bot style, I also think the combination of slow speed and the small size makes it less vulnerable.

The steppers look good for x/y, but for the direct drive extruder it will be to weak. But perhaps you could use a different geared extruder, then it might work.

I'd love to see your result in the made section and also a comment about the small Nema17 motor performance

Feb 3, 2017 - Modified Feb 3, 2017

Hi, I have done the bipolar hack with steppers but only one is working rightly. Most of others are now moving only in one direction and moving only every third/secong step. The other one is moving right and left without me changing direction, but only in about 20 degrees. Did anything similar happened to you?

Hello, I didn't have such issues. I have done the hack with five motors and they all worked fine.

Try to check the following points:

  • Is the connection completely interrupted? Do you have a multi meter to check?
  • Are the coils connected correctly? Compare the wiring with the working one.
  • Have you flashed a firmware with correct steps/mm, to fast might end in unexpected movement
  • Have you set the current of the drivers to the values as described?

I hope this helps in finding the root cause.

Thank you, it was wiring and damaged driver.

Glad to hear that you fixed the issue. How far is your built? Is the guide detailed enough for setting up the printer?

I have added video of first tests.

Yes it's detailed enough. I'm still waiting for delivery of endstops and i don't have the buildplate yet. Right now i am placing fishing line.

im building a micro cube just wondering Motor_mount_Nema17_r file is there a left hand file as well or do i just use this one twice


I forgot to add to left one, please check the files, I added the second holder. You would to mirror the part, but they are not the same due to the mount holes. Thank you
I'd love to see your printer at the made section

What an incredibly engineered little bot! Thanks for sharing

Thank you for your kind words

Hi, could you please add some scheme about wiring of fishing line? And how come the fishing line isn't sliding freely around the motor wheel? Is there any specific one which is sticky or something?

Dec 26, 2016 - Modified Dec 27, 2016
Stargrove1 - in reply to OkurRo

Hi, I am about to write the setup guide, the assembly will include a step about it. The scheme is quite standard H-bot, you can find a lot of examples in the net. It's a standard fishing line, I simply wrap it one and a half time around the coupler and with the required tensioning it does not slip at all.

Edit 2016/12/27:
Have a look at the assembly guide, you can find the scheme of the fishing line in the description.

Dec 25, 2016 - Modified Dec 25, 2016

Hello, do you think it would be possible to NOT hack the 28BYJ-48 motor, but instead use drivers meant for this motor? http://www.ebay.com/itm/1Pc-ULN2003-chip-Module-Stepper-Motor-Driver-Board-Test-Board-For-Arduino-NEW-/272462871114?hash=item3f700d7a4a:g:ThMAAOSw5cNYOG0F
And if yes, do you know how to wire it into RAMPS 1,4?

Hi OkurRo,

I am afraid this will not work, there are two issues, first the stepper driver of RAMPs is designed for bipolar steppers only (motor is a unipolar model with a simple transistor driver, the ULN2003). The other issue is the fact that the stepper motors will not have enough torque, in unipolar mode, only half of the coil is used, while bipolar mode uses the whole coil by inverting the voltage. If you are afraid of hacking the motors, you don't have to, all you have to do is cut the connection between the two coils. It is very simple.

Comments deleted.

you could use acrylic sheet in the 3d printer as in enclosure and it will make it stronger

Yes you are right, but when I designed the printer, I tried to use only printable or easy to source parts to make it easy to build, acrylic parts should be cut on a cnc or laser cutter, I don't have access to like many others. I will try to add additional diagonal rods for the Nema17 version.to have more stability.

hay what is the name of the Ball bearings, 13mm outer, 11mm inner, 4mm hole, 4mm thick or from where you buy it

Hi, the bearing code is 604uu, I added the names of the bearings to the list. I found them in a German 3D printer online store, but you will find several stores in the internet selling them.

Dec 11, 2016 - Modified Dec 11, 2016
Stargrove1 - in reply to mohyah2014

Thank you for providing the links, but the second one with flange are different, can you edit your comment to avoid ordering the wrong parts for others? Here is the correct link:

Hey, nice work! I don't know the limitations of these steppers but I guess that some lateral / back / bottom crossbeams would increase stiffness a lot and, maybe, allow some more speed.

+1 for video(s)

Thank you, the steppers are very slow because of a gear ratio of 65:1 they are already at their limit. For this speed the structure is well enough. But you are right, when I add the Nema17 upgrade, I will have to check the influence of the frame at higher speeds.

required nema 17 fixation and gt 2 belt fixation.
i m sorry bed english

As described, I will add a set of holders for the Nema17 for the XY axis. Belt would require a bigger rework which is not planned by me, I am not sure if the structure is strong enough, have a look at one of the existing core xy printers, they already offer the belt Nema17 combination.

Could you add a video showing the printer in action ?

Yes I will add a video along with some more information about how to setup the printer.