ToyREP 3D Printer

by thorgal, published

ToyREP 3D Printer by thorgal Jul 28, 2015
21 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


Design Tools



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

107879Views 14440Downloads Found in 3D Printers


ToyREP is a tiny and inexpensive FFD 3D printer designed mostly as a technology demonstrator or child's toy. The print volume is 100x100x100mm (125x125x100mm with some upgrades) with a cold bed made of polyacrylate. Hot end is a E3D clone for 1.75 PLA or ABS filament with 0.4mm noozle. Using very cheap 28BYJ-48 stepper motors (with Bi-polar hack) in all axis and geared extruder, Arduino Mega 2560 with Ramps 1.4, DRV8825 and modular RepRap construction based on Mendel, Printerbot, Cherry, Prusa i3 and CARP Box ideas. It is designed to use 12V PSU for LED lights that should fit under bed. Power consumption is currently ca 40W when heating just hotend and 15W-20W when printing on polycarbonate bed. Or with 100x100mm PCB heatbed it will consume 75-85W when preheating and 30-45W in total when printing.

On video http://youtu.be/rhNdqjVxz4o, bridge test calibration model is printed. During this particular print it is reaching top speeds 30mm/s in X and Y axis, 0.35mm/s in Z axis and extruder can push filament up to 4mm/s. But such speeds requires higher current, so the motors are overheating and eventually the internal gear box or coils of 28BYJ-48 may got damaged.

For a reliable long term print, printer should not exceed 12.5/s in X and Y axis and 1mm/s on extruder with as low current as possible so the real speed will be close to the first layer on the video. Also usage of coolers above stepper motors is highly recommended. You can find such solution among improvements. Despite this precaution I've already burned two motors in extruder so consider this until the reason will be found.

More up to date video from October 2015 https://youtu.be/UwSxXt_PTyk of ToyREP was captured when Marvin Key Chain was made. Printer is reaching speeds 16mm/s, on X, Y and E motors are fans, DRV8825 stepper drivers are tweaked for precise current control and it is equiped with heatbed. This 11 minute long time laps is showing complete 1h41m long print and is probably most accurate example of printer's performance.

Other Print Examples

Calibration Box
Bridge Test


All of the information provided about ToyREP 3D Printer is provided as-is and with no warranties. Author assumes or undertakes no liability for any loss or damage suffered as a result of the use, misuse or reliance on the information and content on this project.


ToyREP, although proved working, is still experimental. The whole idea is based on 28BYJ-48 stepper motors, that are capable of driving 3D printer, but their longevity is not tested thoroughly. In two months of usage I've burned two motors. Keep that in mind when building it.

To make them last as long as possible:

  • Be very careful when disassembling the motors. Even slight shift of the PCB under the plastic cap can damage tiny wires from coils. You are doing the bipolar hack at your own risk.
  • Set the current as per the specification of the manufacturer.
  • Keep the timing belts as loose as possible. Tight belts would put side stress to the motor shaft. This is very harmful for this tiny motor.
  • Keep the working temperature of motors within manufacturers limits.


Please follow the CC-BY-SA terms.

  • Share freely but give credit or link to the source.
  • You can alter this design with attribution to the original. All subsequent designs have to be released under the same license.
  • Commercial use only with the consent of author.


  1. LED PSU mount and cover with switch for size 111x78x36mm and 129x99x38mm
  2. Frog for print area 125x125mm - uploaded to ToyREP.
  3. Bowden extruder mount - uploaded to ToyREP.
  4. ZMAX without 608ZZ bearings (to prevent wobbling) - uploaded to ToyREP.
  5. Coolers for stepper motors and different motor mount - Use them instead of X1, Y1, Z1&2 and Extruder parts uploaded here
  6. X1_M8 and X2_M8 for quicker z movement - Use them instead of X1 and X2 parts uploaded here
  7. 100x100mm PCB Heatbed by kolardan - Use it instead of polycarbonate plate
  8. 28BYJ-48 Plastic Cap - Use this cover if you want to customize the colour or you break it when disassembling steppers.
  9. Additional extruder gears for hobbed bolts with different spacing between groove and hexagonal head - uploaded to ToyREP
  10. Pulleys for T2.5 and GT2 timing belts of width up to 7mm uploaded to ToyREP files. These Rev2 parts are experimental. Use them only if (for some strange reason) you don't like original T2.5 pulley.
  11. 120x120mm PCB Heatbed by kolardan - Use it instead of polycarbonate plate
  12. 50mm Long Legs by sobo84 - print it instead of legs placed here.
  13. 3 point levelling for 100x100mm bed by timbologist.
  14. Frog for 120x120mm Aluminum Heatbed with mounting holes 112x112mm apart - uploaded to ToyREP
  15. Remixed extruder with servo for auto bed levelling BranJaq S1 by Branez
  16. Hotend Fan Duct - Use this additional cooler if you want to print PLA
  17. Geared Extruder for 3mm Fillament by TouchWARE - rest of the extruder uses the same vitamins (except for the 3mm hotend)

Planned improvements (no promises :D):

  1. 40 teeth T2.5 pulleys (require also major changes in frog, carriage, X1 and X2) to achieve higher print speeds (around 25mm/s)
  2. Adjustable legs
  3. Direct drive extruder
  4. Fan mount to cool stepper drivers
  5. Mount compatible with Prusa Mendel vertical carriage

Change log


  • Published 3mm Geared Extruder - See Improvement No.17


  • Hotend nozzle cooler published - See Improvement No.16


  • Remixed extruder with servo driven auto bed levelling - See Improvement No.15


  • Frog for commercially available 120x120mm Aluminum Heatbed - See Improvement No.14


  • Added 3 point bed levelling upgrade - See Improvement No.13


  • Printed another example - Marvin Key Chain.
  • Replaced drivers with tweaked DRV8825 with 2R2 reference resistors for better current control. Current lowered down to 100-105mA per coil to reduce overheating.


  • Added 120x120mm heatbed and 50m long legs - See Improvements No.11 and 12.


  • Changed BoM due to fact, that RAMPS 1.4 have to be adjusted from power plugs to screw terminals. Also made minor changes in Instructions and http://reprap.org/wiki/ToyREP
  • I've burned second motor in extruder. Looking for the reason.


  • Prepared pulleys for wider timing belts. See Improvement No.10.


  • The distance of mounting holes on micro switches was corrected. Holes should be 9.5mm apart (not 11mm). BoM re-uploaded.


  • Added two more extruder gears for different hobbed bolts - See Improvement No.9.


  • Added model of plastic cap for 28BYJ-48 - See Improvement No.8.


  • With Courtesy of my friend Dan Kolar PCB Heatbed was published as another upgrade - See Improvement No.7.
  • Minor changes in Description and Instructions related to heatbed


  • Prepared X1 and X2 models using M8 threaded rods for Z movement - see Improvement No.6.


  • Prepared models for motors with four mounting holes - see Improvement No.5.


  • As I already found copies of ToyREP source files on chinese servers, Warning, Disclaimer and Licence Agreement had to be added.


  • Published fan mounts above X, Y and E stepper motor - see Improvement No.5.


  • Added some examples of print quality - see chapter Thing Info - Print Examples.


  • Frog for 125x125mm print area, Z max without 608ZZ bearing, PCB2-1 + PCB2-2 for 129x99x38mm PSU (PSU2) and Bowden extruder fan mount uploaded.
  • Minor changes in Instructions


  • New revision of extruder uploaded as the older one was colliding with some of the blue caps on 28BYJ-48 motors.
  • Prepared instruction how to set up firmware
  • Added LED PSU cover for sizes 111x78x36mm.

Print Settings


Doesn't Matter




0.5mm nozzle, 0.25mm layer


30% hexagonal


ABS is highly recommended


This page is mostly for the overview. For detailed instructions see the build manual at: http://reprap.org/wiki/ToyREP_Build_Manual



Made for 28BYJ-48 stepper motors with bi-polar hack: http://www.electronicsmayhem.com/?p=13
Further reading about this small motor with geared extruder is here: http://grahamwideman.wikispaces.com/Motors-+28BYJ-48+Stepper+motor+notes


Arduino Mega 2560 with adjusted RAMPS 1.4 can be embedded into the printer, as well as small 12V 40W+ PSU for LED lights (for 78x111x36mm and 129x99x38mm big PSU now) motors are driven with common stepper driver A4988 or DRV8825 with current set to minimum! You can use 1/8, 1/16 or even 1/32 microstepping - not for precision but better current control. Power plugs have to be changed to screw terminals on RAMPS as plugs cannot be installed in tiny space between Z1 and Z2.


Extruder is geared for better precision and to reduce speed as direct drive would be too quick for the movement speeds this machine can perform. Also to avoid side stress on motors shaft. M8 hobbed bolt is used to drive the filament. Pushed through 608ZZ bearing and in idler also another 608ZZ is used. The motor have power to drive 1.75mm filaments only (but there is also an alternative version for 3mm filament available in improvements).

Although this extruder was designed for Hyena hobbed bolt, it can be used also with common hobbed bolt with hexagonal head with spacing 23, 26 and 30 mm between groove and hexagonal head. Basic gear is designed for 23mm, others are distinguished by spacing dimension in the model name.


Chines E3D v5 clone is used as a hot end (it have a little bit longer cold end compared to up-to-date v6 original). It is secured to the carriage by fan mount. 12V 40W Ceramics cartridge is used as a heat source with some 100k Ohm thermistor. Cooling fan 40x40x10mm have to be used. It is powered directly by 5V from Arduino or 12V from PSU.

Movable parts

For linear movement LM8UU bearing on 8mm precision rods are used although printed replacement for LM8UU can be used to reduce the price further. My favourite design is this: http://www.thingiverse.com/thing:97041 although I do not have any long term test of them. Models are prepared for T2.5 timing belts as GT2 are harder to print. Pulley have 20 teeth (50mm per turn). The opposite side of the belt is turned around 624ZZ bearing with bigger M6 washer preventing belt to slide off the bearing.
Z axis is pushed by M5 threaded rod. To release stress from motors, threaded rod is suspended from the top, pushed through 608ZZ while centred by 8mm long piece of PVC tube 5/8mm dia tightened from both sides by nuts and washers. Threaded rod is joined with 28BYJ-48 motor by the same PVC tube and tightened by printed Z-joint. M8 threaded rod can be used to speed up Z movement but this design is experimental.

Lengths of smooth rods are listed bellow and in BoQ along witch threaded rods for printer frame.


Endstops are mechanical with flat lever and 2.5mm dia. mounting holes 9.5mm apart. In X and Y axis push pin is already printed on carriage and frog. In Z axis ca 85mm long piece of M3 threaded rod have to be used so the distance of the nozzle from bed can be adjusted.

Print area

Use either 120x120x3mm piece of polycarbonate with mounting holes 105mm apart in each corner as a coldbed or 40W PCB heatbed with 3mm glass sheet designed by Dan Kolar. Mounting of the bed is the same in both cases. For glass you will need additional clamps.


Construction is mostly done of M8 threaded rods. Their lengths are as follows:


  • threaded rod M8x170mm - 4 pcs - in the front and rear frame

X axis

  • threaded rod M8x255mm - 3 pcs - those are parallel with X axis
  • smooth rod 8x245mm - 2 pcs - for X axis

Y axis

  • threaded rod M8x245mm - 2 pcs - those are parallel with Y axis
  • smooth rod 8x225mm - 2 pcs - for Y axis

Z axis

  • smooth rod 8x290mm - 2 pcs - for Z axis
  • threaded rod M5x250mm - 2 pcs - for Z axis movement
  • threaded rod M3x90mm - 1 pc - for Z endstop

This is default/recommended setup for printer with embedded PSU 111x78x36mm and Arduino but without filament spool placed on top of the printer.

If anybody would like to place spool on top of the printer than I would recommend to prolong Z axis smooth rods by a radius of your spool + 20mm and make one additional threaded rod for X axis, which will hold the spool.

I've got another slightly bigger PSU at home of size129x99x38. Seems to me, this kind is more common but will also make the printer much bigger. For this one, rods would have to be 10mm longer in X axis and legs, also 20mm longer in Y axis. Print area may then grow up to 125x125 instead of 100x100mm.

The last option is to make entirely plain printer without PSU and Arduino embedded and with print area 100x100mm. For that you may use 15mm shorter rods in X and Y axis direction. It would give you the smallest ToyREP possible.

Otherwise M3, M4 screws and nuts are used. Motors are attached by 3x13 wood screws and endstops are attached by 2,5x10 wood screws.


The only crucial measurement during the construction of ToyREP is distance between Z1, 2 and between legs in X and Y axis direction. The rest is usually placed centred, on the edge of the rod or in such way, that something like Arduino have to fit in between two parts.

For machine with 111x78x36 PSU and/or 100x100mm print area is the distance between Z1 and Z2 120mm. The distance between Z1,2 and front legs is 103mm.

For machine with 129x99x38 PSU and/or 125x125 mm print area is the distance between Z1 and Z2 130mm. The distance between Z1,2 and front legs is 128mm.

Machine without PSU and Arduino and with only 100x100mm print area have the distance 105mm between Z1 and Z2. The distance between Z1,2 and front legs is 103mm.

Putting into operation

Wire Ramps as per the schematic you will find on internet. If You are not using heatbed, than 11A power supply is not used as well as heatbed D08 and heatbed thermistor T1. Keep in mind that ends stops are (from left to right) X_min, X_max, Y_min, Y_max, Z_min, Z_max and last one is I2C bus. You will use X_max, Y_max and Z_min. Before you will try to move the printer, set at least the micro stepping to 1/16 and current from 90 to max. 150mA on the stepper drivers!

Following part is a bit of calibration and testing. Read it first, than set basic values to firmware and load it to Arduino. Than return to the points where it is required, measure, recalculate and load again and again until all the steps are completed. For Marlin 1.0.2 firmware change the lines as follows (For other firmwares this may be a bit different).


For Arduino Mega 2560 with Ramps 1.4 - one extruder and no heatbed, I am using MOTHERBOARD 33 as the PWM fan may be useful. But you can use different electronics so set it accordingly.

#define MOTHERBOARD 33 // (Power outputs: Extruder, Fan, Bed)  
#define EXTRUDERS 1  

With Marlin 1.1.0+ consult boards.h file to pick the right type of electronics. Instead of MOTHERBOARD 33 it will look like this:



Unless you want to use redundant heat sensor there will be only one thermistor on position T0 for extruder.

#define TEMP_SENSOR_0 1  
#define TEMP_SENSOR_1 0  
#define TEMP_SENSOR_2 0  
#define TEMP_SENSOR_BED 0  

Eventually if using also heatbed change the last line to:

#define TEMP_SENSOR_BED 1   

Some versions of Marlin can show actual power consumption of hotend. Measure the voltage of your PSU under load an put it into equation instead of both 12.0V. 40W Heat cartridge have resistance 3.6 Ohm. Again, you can measure ours precisely with multimeter. Don't forget that multimeter have internal resistance that you have to measure separately an deduce from measured value.

#define EXTRUDER_WATTS (12.0*12.0/3.6) //  P=I^2/R  

For heatbed uncomment also next line. The resistivity may vary from 3.6-4.8 OHM

#define BED_WATTS (12.0*12.0/4.8)      // P=I^2/R  

If your firmware supports PID for thermal control, than for Chinese extruders with ceramics heat cartridges you can use following numbers. Latter you can use code M303 S200 in Pronterface to find your numbers and place them there instead.

#define PIDTEMP  
#define BANG_MAX 255  
#define PID_MAX 255  

#ifdef PIDTEMP  
  #define PID_FUNCTIONAL_RANGE 100   
  #define  DEFAULT_Kp 16.51  
  #define  DEFAULT_Ki 0.87  
  #define  DEFAULT_Kd 78.47  
#endif // PIDTEMP  

With heatbed you can also uncomment PIDTEMPBED. For ToyREP's 30W 100x100 PCB heatbed use following numbers. Eventually you can find your own PID with code M303 E-1 C8 S90 in Pronterface

  #define  DEFAULT_bedKp 377.26  
  #define  DEFAULT_bedKi 74.27  
  #define  DEFAULT_bedKd 479.07  


When setting up the printer keep in mind that you have endstops in X max, Y max and Z min.



You should disable steppers when the axis is not moving to prevent overheating.

#define DISABLE_X true  
#define DISABLE_Y true  
#define DISABLE_Z true  
#define DISABLE_E true  

Stepper in Y axis have inverted direction compared to X, Z and E motors.

#define INVERT_X_DIR true   
#define INVERT_Y_DIR false   
#define INVERT_Z_DIR true   
#define INVERT_E0_DIR true  

Also the homing direction is positive in X and Y axis and negative in Z.

#define X_HOME_DIR 1  
#define Y_HOME_DIR 1  
#define Z_HOME_DIR -1  

Print area

The build volume is 100x100x100mm. To begin with, set the printer as follows, but keep in mind this will not align hot end and print area yet:

#define X_MAX_POS 100  
#define X_MIN_POS 0  
#define Y_MAX_POS 100  
#define Y_MIN_POS 0  
#define Z_MAX_POS 100   
#define Z_MIN_POS 0   

#define MANUAL_X_HOME_POS 100  
#define MANUAL_Y_HOME_POS 100  
#define MANUAL_Z_HOME_POS 0  

After the movement is calibrated you will have to return back to this and measure real coordinates of hot end and print area. You will probably have X, Y homing position somewhere around coordinates 108,101mm:

#define X_MAX_POS 108  
#define X_MIN_POS 8  
#define Y_MAX_POS 101  
#define Y_MIN_POS 1  
#define Z_MAX_POS 100  
#define Z_MIN_POS 0  

Homing position is outside the printing area so:

#define MANUAL_X_HOME_POS 108  
#define MANUAL_Y_HOME_POS 101  
#define MANUAL_Z_HOME_POS 0  

Speeds and units

Now speeds, steps per unit and acceleration needs a bit of math and testing.
Motors have 32 steps per turn, the gear is not exactly 1:64, but for the first run and tests it will be OK. I recommend using 1/16 micro stepping. 20 teeth T2.5 pulleys have ca 50mm circumference. M5 have pitch 0.8mm (M8 have 1.25mm). The gear on extruder is 1:4 and hobbed bolt have usually 6.0mm dia. Each 28BYJ-48 motor should be able to do 15RPM for sure. So:

In X and Y it should be capable of = 15x50 = 750 mm/min
In Z = 15x0.8 = 12 mm/min

#define HOMING_FEEDRATE   {750, 750, 12, 0}  

Use these numbers in Pronterface until you will find quicker ones when steps per unit is calibrated precisely.

In X and Y set default steps per unit = (32x64x16)/50 = 655.36 microsteps/mm
In Z = (32x64x16)/0,8 = 40960 microsteps/mm
In E = (32x64x16x4)/(6x3,1415) =6953.59 microsteps/mm

#define DEFAULT_AXIS_STEPS_PER_UNIT   {655.36, 655.36, 40960, 6953,59}  

Later on, you will move the motor in each axis, measure the distance with calliper and adjust the numbers. For eg. if you move the X carriage 100mm in Pronterface, but you measure 99.7mm, or mark 100mm on filament, extrude 100mm and end up with 1mm leftover then:
X = 655.36/99.7x100 = 657.33
E = 6953.59/(100-1)x100 = 7024.20

Do it for X and Y axis separately. You will probably end up with two slightly different numbers. Although pitch on threaded rods is quite precise, there will be the difference due to motor gearbox, so you have to measure Z axis too. You will end up with something like:

#define DEFAULT_AXIS_STEPS_PER_UNIT   {657.33, 657.10, 40757.73, 7024.20}  

Initially set the maximal movement speed to numbers bellow. It is way to much, but will give you a headroom for some experiments. The values represent movement speeds in mm/s.

#define DEFAULT_MAX_FEEDRATE   {50, 50, 1, 5}  

When default axis steps per unit is calibrated you can test the maximal speeds In Pronterface. Slightly rise the mm/min value and move the motor for 100mm in X, Y or 10mm in Z. Repeat this up to the point when the motor do not have enough torque to move. Then return 10% back from the last working value to be sure and use it from now on. There is only one value for X and Y axis, so pick the lower one.

You will end up with something like 2200mm/min in X, 2000mm/min in Y, 21mm/min in Z and 250mm/min on extruder. Divide these numbers with 60 seconds and put them to firmware to prevent future failure.

#define DEFAULT_MAX_FEEDRATE   {30, 30, 0.35, 4.17}  


Acceleration is way different from common NEMA17 motors. I did not find any easy way how to measure or calculate the values. I only have a simple equation. If you are going to move in axis X 100mm, with top speed 30mm/s, it should finish in 100/30= 3.33 seconds. If the maximal acceleration of the printer would be (100x30)/(100/30) = 900, the printer would not almost use it and that is wrong. This machine can do safely 750mm/min in X axis = 12.5mm/s so 100x12.5/(100/12.5) = 156.25. That may be to low, so you will have to elaborate a bit and find your numbers within these limits. For Z and E the numbers are coming out really low with this method, so you will and up doing it try-and-error anyway.

#define DEFAULT_MAX_ACCELERATION   {300, 300, 1, 17}  


It is good idea to force the acceleration whenever the printer is moving, but it gets too slow. The values bellow should be enough.

#define DEFAULT_XYJERK   5.0  
#define DEFAULT_ZJERK   0.01  
#define DEFAULT_EJERK   0.1  

That is mostly it. There is also my working Configuration.h for Marlin 1.0.2 among the thing files for your inspiration. Keep in mind, that your printer may have different limits, so it is really better to set it for your machine.

Required Parts

To keep the price as low as possible, most of the parts are ordered from China with free shipping or bought in local store. BoM is available at: http://reprap.org/wiki/ToyREP_Buyers_Guide
Here on Thingiverse is also uploaded version of BoM with prices. They are counted with duty tax and VAT valid for Czech Republic. If this do not apply to your orders from China, you can get somewhere around 75-85 EUR for complete and brand new printer. Even less if using some leftovers from previous projects.

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

Hello! I've solved all the problems I had, but there is one that appeared recently : when I want to put a filament in the extruder, it doesn't go trhough : the problem is it seems that my hobbed bolt is covering the bottom hole leading to the coldend/hotend. Maybe the hobbed part is'nt deep enough ?

I don't know if you see what I mean about the problem ? Or if you have any solution about it ?

Thank you very much !

I understand. It is done on purpose so the hobbed bolt will stay on its position held just by the filament - no need to secure it by nut on the other end. Deeper groove is better for this concept (like hyena hobbed bolt have). With shallow black bolts from China the simplest solution is to open the idler, help to guide the filament down to the hotend, than close idler and fix it by compression springs.
Hope it will help.

Ah ok I see, I wasn't used to this with another printer.. Thank you !

Now the thing is the extruder, when I hit it the button to extrude 100mm will randomly stop and won't answer anymore until I restart the connection... I suppose there is a problem in the firmware like speed or I don't know ?

Thank tou again, and sorry for all those questions :/

5 days ago - Modified 5 days ago
thorgal - in reply to Thibextra

Don't worry. Your question are appreciated as with such good feedback I will learn a lot too.
Now this is a bit more complicated. What speed you set in software you use to control the printer and what are the values you set in firmware?
My working values are around 4mm/s (240mm/min) for maximal extrusion speed and 17mm/s^2 for acceleration and retraction. With 1/16 microstepping I have 7026.994 microsteps/mm on extruder. You will probably have slightly different number as my hobbed bolt diameter is around 6mm. With shallower groove it may closer to 6000 microsteps/mm.

Also check my conversation with Eddiie: http://www.thingiverse.com/thing:945156/#comment-1191875, where are some more things explained. (you will have to copy paste the link)

ToyREP 3D Printer
by thorgal

Yes I figured out it was related with those parameters, I set the speed a bit lower while I will do all the parameters correct... Thank you very much for your help !

That's not so common for a maker do answer that much to the comments, really appreciated though ! :)

I saw on the manual about the acceleration settings, and I have to say I don't know if I should touch it or leave it this way... ? Thanks :)

If you are asking about DEFAULT_MAX_ACCELERATION {300, 300, 1, 17} than this is the basic setup. You can rise these numbers a bit while the motors are still not chopping.

Will you make version with nema 17 support?

Mar 16, 2017 - Modified Mar 16, 2017
thorgal - in reply to svobpata

Sorry, I've decided not to. It would confuse a lot of people.

Hi Thorgal, I've some questions about "Y Axis Completion" step:

1) The frog has a friction while is moving on smooth rods, I've to push the frog to feel less fricion... Is it ok? Or I've got bad lm88u bearings? Or I've to grease them?

2)I didn't understand how to get 113mm and 47mm from Z to legs. Should I unscrew Y axis, so move z axis and then thight everything keeping in mind to get 197mm between the legs as mentioned on "Y Axis" step?

Thank you in advance, and thank you for sharing this amazing project!

1, LM8UU will always have some reasonable friction. You will have to grease them for sure. Yet if it is still too different from four bearings on one rod, than something is probably misaligned. Check if the precision rods are going straight and the frog is sitting well on the bearings. But don't worry too much about it. The motors are strong enough to overcome the friction.
2, I suppose you are referring to these measurements:
197mm ... http://reprap.org/wiki/File:ToyREP-27-Distance_Between_Front_And_Rear_Frame.jpg
113mm ... http://reprap.org/wiki/File:ToyREP-38-Adjusting_Y_Frame_Distance.jpg
47mm ... http://reprap.org/wiki/File:ToyREP-39-Space_For_Arduino.jpg
The distance between inner flat surfaces of legs is supposed to be 197mm. This distance can be tightened so you have a rigid and square (perpendicular) Y frame. Then you will insert RAMPS with Arduino and push the Y frame toward Z motor mounts so the electronics is fixed in grooves between Rear Y Frame and Bottom Z Frame (PSU mounts). For this you will have to loosen nuts around Z motor mounts, move the Z frame and tighten them it on correct position. When you will do this you will get ca. 47mm distance between inner flat surface of Rear Y frame legs and Z motor mounts and 113mm between Front Y Frame and Z motor mounts. These two measurements are there only for reference to make sure Y Frame is perpendicular to Z Frame - this can be also checked by steel square, but you will have hard time to squeeze it somewhere.

Thank you very much!

Comments deleted.

I have big problems with heat creep...

I have already conquered a lot of problems, but i'm afraid this will be my end..

I am trying to print the calibration cube in PLA 1.75, but despite different settings, i will stop after approximately 15 seconds.

I have tried following settings:
220 degrees celcius
Speed from 1mm/s to 12mm/s. (Eventhough he said not higher than 1mm/s)
Tried different heights so i wasn't because filament couldn't come out.
2 fans blowing on the part clossest to the hotend

When i do it in air with pronterface 150mm/min it is no problem. But when it starts to print suddenly it is..

In the beginning it will extrude a normal amount and very quickly it becomes less and less that gets extruded out. And then it is just small drops sometimes, getting out.

When i pull it out, while it is still hot, there will be this really thick end coming out. So my guess is that this is heat creep?

What can i do? i am totally lost here.
I'm afraid the low speed is causing this behaviour, can i change it somehow?

I think it is the same problem as had Eddiie. Please see my reply four days ago.

Hello, I've just finished setting everything up, but when I try to move any axis with repetier, I hear for example the X axis like vibrating but not moving at all...

It is set to 1/32 microstepping and with 56mV on the stepper...

Otherwise I followed everything, but I can't get from where it wouldn't work ?

Thank you in advance, awesome project :)

I figured out what was the problem, the belt is getting out of the pulley and makes friction with the support. Then why is the belt going away ? Is it to tight ?

The problem when belt is going out of the pulley is caused by a slight tilt of shaft either on the side of the motor or ball bearing. That is the reason why is there the washer and why the printed pulley on the stepper motor have flat sides. If possible use washers on both sides of the ball bearing so the belt won't slide down to the rough surface of the plastic part, but will run on flat surface of the iron washer.

Also try to set lower microstepping. You should be fine with 1/8 concerning the precision and the motor will gain a bit of torque.

Ah thank you, but the belt slides on the motor side, on the pulley... And there isn't place enough within the X carriage part to put a washer on the pulley :/

Thanks for tha anwser anyways :)

That is bad. Try to put the pulley to the same position as the carriage and the ball bearing on the other side, so the belt is going in one straight line. And possibly replace the motor as it is probably badly assembled.

Ok thank you very much ! I'll try everyhting and keep you in touch :)

Also, in repetier, I found out that when I ask my Y axis to move 50 mm in one direction, it works, but another 50mm, it goes backward... One time out of two is the right direction... Strange ?

And now, when I ask the extruder to go backward, the Z motors will go up, and the heat cartridge won't be regulated anymore !
I don't know what's happening with this card, but it scares me for sure ! never did that to me on my prusa :o

Both seems to me as firmware related problems.
Thermal regulation went crazy when I messed up with thermal runaway protection.
Strange behaviour of steppers is mostly due to some wrong settings, or missing/malfunctioning endstops. You should home the printer before any test movement.

Ok I changed to Simplify 3D instead of repetier, and it works much better, just still has to wonder about this pulley problem :/

Thank you very much !!!

Feb 14, 2017 - Modified Feb 14, 2017

Woo!! Got my motors in (12vdc ones) those should work ok with the bipolar mod right?
Ok...a crazy question
These steppers are geared, they are built inside for up to 32 steps per rotation using full steps
With gearing and then 1/2 stepping, or lower stepping it's capable of getting what 32x64=2048
If we were to go full stepping instead of microstepping, would it keep the motors from overheating?
Is this printer (due to gearing and backlash) even capable of such accuracy with so many steps?
Would setting the firmware in ramps to use full stepping fix the overheating without really killing accuracy?



OH! 12V 28BYJ-48 are not good choice as you will need at least 24V PSU to make them move with bipolar hack.
Otherwise you are right that 1/2 microstepping will be just fine. You will have 23264/50 = 81.92 microspteps per mm of movement in X and Y axis. But that will not have influence on overheating as that is dependent on the current you will set on drivers and speed of the motor you will use to move them.

Hi, unfortunately I've read about "5v steppers" after have buyed 12v version... I've just placed a new order for the right ones.
But... I understood I could use hacked 12v steppers with a 24v psu, but what's will happen using hacked 12v stepper with 12v PSU?
May them drive to slow? May them don't drive at all?

If you will dig deep in the comments, you will find out that Sobo84 already had this issue. It is called inductance, and it is not that simple as going from 12V to 24V as actually the voltage of the motor have nothing in common with PSU voltage.

For eg. Nema17 motors have some rated voltage of around 2.5-5.0V but they are perfectly capable of 12V, 24V, 36V and even more, if your electronics, especially stepper drivers can survive it. Actually more volts, the better, as you can utilise more amps and thanks to it, get more speed, torque and that means better precision with higher and stable microstepping. And it is the property of coil inductance. It have a drawback though and that is the resistance that causes heating of motor. While Nemas can be cooled quite well with 28BYJ-48 it is not that simple.

Now the properties of 5V and 12V 28BYJ-48 are way different. The inductance and resistance of 12V version makes it hardly usable. You can try higher voltage but there is no guarantee it will work well.

Feb 10, 2017 - Modified Feb 10, 2017

Hi! Very nice project, I've already started to print parts... I've a question about BoM: Why there are 5 stepper and 4 drivers? Am I misunderstanding something?

I've also a question about hotend because I'm quite confused on what to choose. :-(
Can you explain me the difference beetwen the following items, and which would fit on toyrep?
Thank you in advance.

1) "E3D v5 direct" - http://www.ebay.it/itm/Estrusore-E3D-V5-all-metal-Hot-end-j-head-kit-Prusa-RepRap-DIRECT-Extruder-/262814443384?hash=item3d30f62778:g:gjsAAOSw5cNYgKeLhttp://www.ebay.it/itm/Estrusore-E3D-V5-all-metal-Hot-end-j-head-kit-Prusa-RepRap-DIRECT-Extruder-/262814443384?hash=item3d30f62778:g:gjsAAOSw5cNYgKeL

2) "short range" - http://www.ebay.it/itm/J-Head-Hotend-0-4mm-Nozzle-1-75mm-Short-Range-3D-Printer-Makerbot-Extruder-BI94-/192069129027?hash=item2cb8365343:g:lzMAAOSwUKxYa-dO

3) "short distance", I've seen a difference on the top hole in comparison with 2) - http://www.ebay.it/itm/3D-New-Metal-J-head-Extruder-Kit-Short-Distance-per-3D-printer-with-wire-TE429-/172521890903?hash=item282b1b2457:g:iJAAAOSwjDZYm1tW

From all of the above I think number 2, is suitable.
Number 1 and 3 are in fact (per pictures) E3D V6 clones. They have different number of ribs on the cooled and are equiped with v6 heat block. No. 3 is probably threaded on top = prepared to be used with pneufit fiting for bowden extruder. No. 1 have also v6 throat and size of the cooler is big enough just for 30mm fan = won't fit in ToyREP as it needs cooler longer to fit under 40mm fan.
Unfortunately non of the hotends have any measurements in description, so I would suggest to ask the vendor for some measurements if possible.

Thank you Martin!

Feb 10, 2017 - Modified Feb 18, 2017
Eddiie - in reply to thorgal

I have the hotend similar to the one listed in number 1. It sucks. The filament gets jammed with constant retraction gets bloated at the end and causes slipping/grinding/fail. Maybe it is the nozzle. Granted I ran the printer so many times without filament working out bugs with the steppers that maybe the inside got cooked. So, I ordered another hotend that looked good to me from folger tech ( https://folgertech.com/collections/hot-ends/products/all-metal-hotend-for-abs-pla-for-e3d-or-j-head-type-filament-extruder-1-75mm <-- THIS DID NOT FIT). Will use the throat, heat block, and nozzle. I had a hard time finding the correct top-part of the hot end to fit the printed parts, but finally got the right one after the 3 or 4th try.

Why this extruder doesn't fit? It seems to be the same used on this toyrap... And I've bought the same...

There are two issues.

1, PLA have very high friction on bare metal. The hole for filament is not exactly 1.75mm but rather around 2mm. When it get warmer and is under pressure (as it do above heatblock on the bottom of cooler) it will expand, stick to the inner sides of the metal throat, and stuck there. This will not show unless you try to print. When you extrude filament into free air, you usually extrude quickly, so the fillament don't have time to expand. Troubles starts when you print slowly.

2, The Chines clones of E3D v5 have a gap above throat in the aluminum cooler. You can check it by caliper. The threaded part of throat that is inside of the cooler is typicaly 20mm, but when you measure the hole for throat, it is around 23-24mm. Throat won't go deeper because the thread is not made all the way down (it is not fault of Chinese, it can't be technicaly done). For this reason E3D v6 have a teflon tube 4/2mm (OD/ID) going through cooler to the upper part of throat. And for the very same reason throat of v6 have M7 thread filled flat on the top.

To prevent filament jamming try to use throat with teflon tube inside and if it is possible drill bigger hole in cooler too, so this teflon tube can go through the whole aluminium cooler and throat in one piece and guide filament all the way down to the nozzle.

Comments deleted.

The reason for this is that you need 2 steppers for the Z Axis.


X-Axis = 1 Driver, 1 Stepper
Y-Axis = 1 Driver, 1 Stepper
Z-Axis = 1 Driver, 2 Stepper
Extruder = 1 Driver, 1 Stepper

Thank you so much!

Hi, i am building the toyrep, and i have a e3d v6 hotend, can i use it in the toyrep?? what should i modify for fitting in??


That will be a problem. E3D v6 is a bit shorter than v5 that is used in ToyREP. Fan, Extruder and Carriage models would have to be changed.

okkey Thanks, if i finally get it, i will tell you. Thanks for the toyREP design, it is a very good job!!! :)

Comments deleted.


I've bought similar one year ago: https://www.aliexpress.com/snapshot/7229641759.html?orderId=72075492388935&productId=32518167514

Did not tested them yet though. Not sure how will perform with microstepping as they may have quite high induction. Still, I'm saving them for a different kind of printer as they would not fit into ToyREP.

Dec 27, 2016 - Modified Dec 27, 2016

After months of printing, getting parts, fitting together, starting with small power supply then deciding to upgrade to bigger power supply (START WITH THE BIGGER POWER SUPPLY - Don't even bother with the smaller one. As noted, changing the power supply later in the build is a freaking nightmare). Anyway, the printer is DONE! I have not gotten past Homing and am having trouble with the Z motors.

I've replaced about 3 Z motors on the left side, the one on the right seems to be fine. The motor on the left just stops turning after awhile and the motor on the right goes fine. Increasing the amps on the driver seems to make it worse. It seems the gears inside the motor give out. One complete movement from Z Home to Z Max and Home again will kill the motor.

I added much oil, too much oil and it has made the nuts come free on the Z parts. Gone through about 10 motors in various parts of the build, have more coming in the mail.

Questions if anyone can please help -
1) Why is one side of the Z axis always harder on the motor than the other side? Suggested solution? Moving the carriage up and down by hand seems to have no binding that would cause stress, something when the threaded rod is added in... Latest version of Marlin now supports dual Z motors, would this help?

2) I used super glue and JB Weld to hold the nuts in place on the Z axis, oil has made the glue from free. Is there a better way to secure the nuts to the Z parts?

3) Any chance of a remix on the Z motor parts to use NEMA 17 motors? :)

Thank You for feedback. Honestly I am a bit clueless, but I will try my best.

Add 1, I am aware of the fact, that for each and every stepper motor you should have one dedicated stepper driver. BUT ... one driver for two motors is working for NEMA17 and also with hacked 28BYJ-48 on other set-ups. So this should not be the case especially when both motors together need few mA only. Although you won't loose much trying Marlin with dual Z drivers.

Add 2, I use hot melt glue to attach M5 nuts to their position.

Add 3, Already sent source models to few people who wanted to do NEMA17 remix, but so far no one published the result.

I have few more questions for you
1, What drivers are you using? What is the value of sensing resistor on it? What is the reference voltage set for your motors?
2, Do both Z motors spin when not attached to the threaded rods? Is their movement fluent without chopping?
3, How are Z motors connected to RAMPS as there is not enough space to use the original connectors?
4, What values you have set in firmware concerning Z movement - max. speed, acceleration, etc.?

Feb 3, 2017 - Modified Feb 3, 2017
WarHawk8080 - in reply to thorgal

You can do NEMA11 or NEMA14's
Same steppers they put on the Tinyboy (hobbyking Fabrikator Mini)

Getting NEMAs to ToyREP is not that easy. It was never designed for this and such upgrade would require many new plastic parts (almost all of them).

It is probably too soon to shout this loud, but there will be (probably, one day) a new version of ToyREP 2, that will be able to use 28BYJ-48, NEMA 17 and probably NEMA 14 too. I am still skeptical about NEMA 11 and smaller, as it is too weak to drive 3D printer (but with new version such upgrade would be possible to). I am waiting for some part from China right now so I can continue on this project.

Jan 3, 2017 - Modified Jan 3, 2017
Eddiie - in reply to thorgal

THOR - thank you.

I found problems on z axis, fixed them, replaced motors and they work great.
This allowed me to work out all the other kinks in my build.

I go to print my first test print............................. (drum roll) Heat bed warms up. Hot end heats up. Nice new smell.
Printer homes, X and Y move to about the center of the print bed and .......................... STOP. The arduino locks up. Everything stops. It was late and I go to bed.

I suspect my values are wrong in firmware.

Marlin RC6

configuration.h items of interest -
#define HOMING_FEEDRATE {750, 750, 12, 0}
#define DEFAULT_AXIS_STEPS_PER_UNIT {655.36, 655.36, 40960, 6953,59} // ToyREP
#define DEFAULT_MAX_FEEDRATE {30, 30, 1, 5}
#define DEFAULT_MAX_ACCELERATION {300, 300, 1, 17}

#define DEFAULT_XYJERK 5.0
#define DEFAULT_ZJERK 0.01
#define DEFAULT_EJERK 0.1

I also added inductive Z probe for bed leveling, this is the first time I have added this, so maybe something there too?

The printer is close enough to post make pictures, however. It looks cool.

Jan 4, 2017 - Modified Jan 4, 2017
thorgal - in reply to Eddiie

Hi Eddiie,
You have beautiful build!
I see only one mistake in line:
define DEFAULT_AXIS_STEPS_PER_UNIT {655.36, 655.36, 40960, 6953,59} // ToyREP
There should be 6953.59 at the end of the line instead of 6953,59 - the comma in the last number should be replaced with dot.
Rest of it I will check later.

I made the typo fix to DEFAULT_AXIS_STEPS_PER_UNIT and it has no impact.

Maybe it is the slicer settings.

Jan 8, 2017 - Modified Jan 9, 2017
thorgal - in reply to Eddiie

It may be also slicer, but this seems to me as firmaware related thing or overcurrent protection in PSU.

Do you use Pronterface? If yes, please turn on Debug communication in Settings menu. Next time when you will try to print, it will write you why it stopped in the text console. If you don't see text console, then in Settings/Options/User interface set Interface mode to Standard or Compact and restart Pronterface.

Second question, did you do the PID calibration on both heatbed and extruder?

If you want to rule out the Slic3r, in Filament Settings set temperature on Extruder and Bed to 0°C. It will than use the temperatures you set in Pronterface and won't wait for heaters to reach any preset value.

And please send me PM with your email. I would like to see the whole configuration.h of your firmware.

Update: What is the real resistance of the 120x120mm heatbed? If it is around 1.0Ohm as I found somewhere on internet, then it would consume about 144W! Can your PSU deliver such power? If this is the case you have to set #define MAX_BED_POWER 128 or so (instead of 255). It will heat up much slower but should not crash when more things like extruder and motors will start running.

Jan 11, 2017 - Modified Jan 11, 2017
Eddiie - in reply to thorgal


Here is the output from ponterface, debug communications.
I resliced using Slic3r and no difference, still locks up.

Yes, I did the PID calibration, that all works fine, I have an amp meter on the PSU, there is plenty of power/amps available.

I also have inductive Z probe, this is my first probe, maybe I disconnect and disable in firmware.

Perhaps output below has clues......

RECV: echo:busy: processing
RECV: echo:busy: processing
RECV: echo:busy: processing
RECV: echo:busy: processing
RECV: echo:busy: processing
RECV: X:120.00 Y:120.00 Z:0.00 E:0.00 Count X: 78643 Y:78643 Z:0
RECV: ok
SENT: M105
RECV: ok T:207.3 /208.0 B:48.2 /48.0 B@:33.45W @:101
SENT: M105
RECV: ok T:207.3 /208.0 B:48.2 /48.0 B@:33.45W @:101
SENT: N4 G1 Z5 F50000
RECV: ok
SENT: N5 M109 S208
RECV: T:207.5 /208.0 B:48.2 /48.0 B@:
RECV: 32.44W @:98 W:?

The last SENT: command is not pasting correctly. there is an asterisks between S208 and 103
Can someone please PM me their configuration.h for their printer? Marlin 1.1.0 RC6

In the meantime, I will review settings.

This is not as complete as I was hoping for, but better than nothing.
The temperatures were set to 208°C on extruder and 48°C on Heatbed. For heating you are drawing 135W. The printer got past homing, lifting Z 5mm heigh and crashed when waiting for extruder to reach and stay on 208°C, right?

Multimeters are not measuring peak values, especially on switching PSU. Your PSU is rated for more than 11.25A = 135W?

You managed to home somehow or atleast your printer think so. Do you have only z-probe or also endstop?

Jan 12, 2017 - Modified Jan 12, 2017
Eddiie - in reply to thorgal

No, PSU rated for 8.4 amps. Volt/amp meter hits 7.2 amps max when heatbed and hotend are on. I am 99.999% sure it is not PSU.
I can move everything around using manual controls with the heat bed on, hotend on, homing, 7.2 amps max.

Still, I can disable the heatbed as a test, that should be easy enough.

I have Z probe AND endstop. Funny, it seems all mendel type printers would have Z min end stop. Connecting a Z probe should be no different than any other type printer. (I am new to Z probes)

I think the next thing to do would be to start over with a new marlin folder, new configuration.h, and retest using settings from wiki without Z probe stuff, just follow wiki, disconnect z probe. This is what I will do now.

Jan 12, 2017 - Modified Feb 15, 2017
Eddiie - in reply to Eddiie

Hmm, same result with Marlin RC8.

Here is full log -

echo:Marlin 1.1.0-RC8

echo: Last Updated: 2016-12-06 12:00 | Author: (none, default config)
Compiled: Jan 11 2017
echo: Free Memory: 3529 PlannerBufferBytes: 1168
echo:Hardcoded Default Settings Loaded
echo:Steps per unit:
echo: M92 X655.36 Y655.36 Z40960.00 E6953.59
echo:Maximum feedrates (mm/s):
echo: M203 X50.00 Y50.00 Z1.00 E5.00
echo:Maximum Acceleration (mm/s2):
echo: M201 X300 Y300 Z1 E17
echo:Accelerations: P=printing, R=retract and T=travel
echo: M204 P150.00 R17.00 T300.00
echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s), Z=maximum Z jerk (mm/s), E=maximum E jerk (mm/s)
echo: M205 S0.00 T0.00 B20000 X5.00 Y5.00 Z0.01 E0.10
echo:Home offset (mm)
echo: M206 X0.00 Y0.00 Z0.00
echo:Material heatup parameters:
echo: M145 S0 H180 B42 F0
M145 S1 H180 B42 F0
echo:PID settings:
echo: M301 P25.35 I2.22 D72.27
echo: M304 P155.27 I30.36 D198.53
echo:Filament settings: Disabled
echo: M200 D3.00
echo: M200 D0
echo:SD card ok
echo:SD card ok
echo:enqueueing "M23 3dbenc~1.gco"
echo:enqueueing "M24"
echo:Now fresh file: 3dbenc~1.gco
File opened: 3dbenc~1.gco Size: 4697928
File selected
T:141.1 /0.0 B:35.0 /42.0 @:0 B@:0 W:?
T:139.9 /0.0 B:34.8 /42.0 @:0 B@:127 W:?
T:138.8 /0.0 B:35.0 /42.0 @:0 B@:127 W:?
T:137.7 /0.0 B:35.3 /42.0 @:0 B@:127 W:?
T:136.6 /0.0 B:35.7 /42.0 @:0 B@:127 W:?
T:135.4 /0.0 B:36.3 /42.0 @:0 B@:127 W:?
T:209.1 /208.0 B:42.1 /42.0 @:73 B@:33 W:0
echo:busy: processing
X:120.00 Y:120.00 Z:5.00 E:0.00 Count X: 78643 Y:78643 Z:204800
X:120.00 Y:120.00 Z:0.00 E:0.00 Count X: 78643 Y:78643 Z:0
X:120.00 Y:120.00 Z:15.00 E:0.00 Count X: 78643 Y:78643 Z:2
X:120.00 Y:120.00 Z:15.00 E:0.00 Count X: 78643 Y:78643 Z:8
...Arduino locks up...

I just tried again with no heatbed, lockup.
Printing from SD card, printing from Pronterface, same difference.

Try a different arduino? Maybe move to Marlin forum.

Maybe a different firmware?

With Repetier firmware, everything works, except extruder at the moment. Physical problem, not related to firmware.

Strange that Marlin locks things up. (EEPROM is/was disabled by the way)

Cool to see it move around!

Good to hear it was firmware related problem and have a solution. Congrats!

Just out of my curiosity, what was the voltage on PSU when you measured 7.2A with everything running?

11.6v @ 7.44a

Ok, so I spend some time this weekend on printer. After tinkering with Repetier, I took the settings and applied to Marlin, and printer worked! So I am back on Marlin (RC8).

Settings that are working for me:

#define DEFAULT_Kp 25.35
#define DEFAULT_Ki 2.22
#define DEFAULT_Kd 72.27

#define DEFAULT_bedKp 155.27
#define DEFAULT_bedKi 30.36
#define DEFAULT_bedKd 198.53

#define DEFAULT_AXIS_STEPS_PER_UNIT {655.36, 655.36, 40757.73, 7024.20}
#define DEFAULT_MAX_FEEDRATE {30, 30, 0.350, 4.17}
#define DEFAULT_MAX_ACCELERATION {30, 30, 10, 17}

Changed in RC8 (RC7?)
#define HOMING_FEEDRATE_XY (750)
#define HOMING_FEEDRATE_Z (12)

Still have not printed anything, but I am getting close!

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

Brother Thorgal,
The printer works!! I printed a 3d benchy and it came out pretty nice! (4 hour print!) The picture has been added to my Made page - http://www.thingiverse.com/make:283877 (last picture)

However, the movement is SO SLOW, I know from tweaking with this thing over the months that the movement is capable of faster moves than what I have defined. Yet, I am not sure what settings to tweak to make things faster.

Here are current settings, which one's should I change to make the movement faster? Note, I am pretty happy with the speed of Z. It is X and Y that I'd like to improve.

#define DEFAULT_AXIS_STEPS_PER_UNIT {655.36, 655.36, 40757.73, 7024.20}

#define DEFAULT_MAX_FEEDRATE {30, 30, 0.350, 4.17}
#define DEFAULT_MAX_ACCELERATION {30, 30, 12, 17}


What settings have others dialed in?

ToyREP 3D Printer
by Eddiie
Feb 11, 2017 - Modified Feb 11, 2017
thorgal - in reply to Eddiie

Hi Eddiie,
Great job and nice pictures. Thank you for sharing!

Speaking about speeds, did you try to find the highest speed possible for your machine? Check: http://reprap.org/wiki/ToyREP_User_Manual#Speeds_and_units Just please be aware you may burn few motors while trying!

Also your X and Y axis default_max_acceleration, default_acceleration and default_travel_acceleration is quite low (only 30). Do you have a reason for this? I would try something around 150-300 (and if you want higher speeds maybe even up to 900-1000).

Thing is, that although you set 30 mm/s as a maximal speed in X and Y axis, with default_max_acceleration set to 30 in X and Y axis you will never reach more that 5,5mm/s on 100mm distance of such small heatbed (To make it simple, think about maximal reached speed as a square root of maximal acceleration, although in real it is not that simple).

On contrary Z (12) is quite high value and shall be around 1. Your acceleration of Extruder is fain.

Feb 11, 2017 - Modified Feb 11, 2017
Eddiie - in reply to thorgal

Hey - newer versions of Marlin (I am using RC8) have different format for #define HOMING_FEEDRATE (750, 750, 12, 0)

#define HOMING_FEEDRATE_XY (750)
#define HOMING_FEEDRATE_Z (12)

They also change #define DEFAULT_XYJERK to
#define XJERK
#define YJERK

Mine is currently at 30, it move the carriage up/down so much faster. It is a hack because I have not properly calibrated the steps and stuff as you linked above. I will do this today. I've replaced so many motors already on every axis, the threads on the retaining screw holes are stripping out.

I was hoping my settings we too (s)low. That is hopefully the cause of my filament clogging (as you exactly described in another reply).

Will update this when done with calibration.

Question: Do you still use your ToyRep?

Thank you!

Feb 11, 2017 - Modified Feb 11, 2017
thorgal - in reply to Eddiie

ToyREP is able to move and print around 30-35mm/s in X and Y axis with hand picked motors that are capable of high speeds. But with speeds above 12.5mm/s the motors are overload and overheated and in my experience will last only few months of occasional prints.

Honestly, I did not use ToyREP for a year. Reason is that for more than year now, I'm printing at work almost every day. I have to use 4 years old semi-profesional piece of crap-rap. Even my CARP Box is better, so it stays at work too (as a backup). And back at home, where I'm left with ToyREP and Scoobydoo (my first full metal printer I've ever build after Mendel) I don't have a mood to print anything else.

Good stuff.

I begin calibration now. Too much stuff in the way to make dot, move, make new dot, and measure the distance - I printed a bar that was 100mm in X, another 100mm in Y, and 50mm in Z.

My results -
X = 94.72mm
Y = 99.65mm
Z = There is no mention of Z calibration on the wiki?

When calibrating extruder, am I measuring the output of the extruder or the input? I guess it is the output.

Math -
X steps are currently 655.36, the measurement was 94.72, Wiki says ... 655.36 / 94.72 X 100 = 691.891 (new steps/mm)
Y steps are currently 655.36, the measurement was 99.65, Wiki says.... 655.26 / 99.65 X 100 = 657.6618163572504 (new steps/mm)
Z - I will circle back on this, but it seems OK
E - Waiting to hear back from Lord Throgal

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

Hi Eddiie,
for Z axis there is mechanical calibration described in chapter: http://reprap.org/wiki/ToyREP_Build_Manual#Print_Surface
It is the very basic way and you can do it differently, like start with measuring the height of X axis rod from table on both ends and than level the heatbed surface by driving the hotend into corners and using the piece of paper method.
In firmware, the calculation of microsteps per mm is in: http://reprap.org/wiki/ToyREP_User_Manual#Speeds_and_units
It is motor_steps_per_turn x gear_box_reduction * microstepping / pitch of the threaded rod. in case of 28BYJ-48 with bipolar hack, with 1/4 microspepping and M5 threaded rod = 32 x 64 x 4 / 0.8 = 10240 microsteps per mm (or as in the example with 1/16 microstepping 32 x 64 x 16 / 0,8 = 40960). You will have to print few layers of known height and measure the overall height of printed model, than use the same formula from Wiki

Your recalculation of X and Y seems correct. Keep in mind, that this is influenced by size of printed pulley and tension of belt, so it is perfectly OK that these two numbers are not the same.

In Z axis where is no tension or printed part involved, the basic calculation is usually correct unless you have for eg. motor that do not have gear box with 1:64 but some odd number like 1:63.68395. Keep in mind that if you print for eg. the 10mm heigh calibration box, and slice it with 0.3mm layer thickness, the height won't be exactly 10mm but rather multiplication of either 33 or 34 layers, means 9.9 or 10.2mm. Pronterface will write the actual hight in the status bar on the bottom of the window. For better results, You will have to print something taller than the calibration box in all four corners of heatbed (it do not have to have infill and top layers to save filament and time). Chose one corner as the reference, calculate the difference between corners and make this correction by the M3 screews in corners. One full turn of M3 screw should do 0.5mm height difference. Than use the reference corner height to change the microsteps per mm in firmware and you will be good to go.

For extruder, you have to measure the length of filament, that is coming INTO the extruder, so mark like 50mm and 100mm on filament above the extruder (for eg. measure from top of the extruder) then extrude 50mm in Pronterface (or other software) and measure the length to the second mark. If you will measure for eg. that 53.5mm is left to second mark, than you extruded only 46.5mm. Put this number into the equation and you will get the right number of microsteps per mm. Make new marks and recheck, It should be better but probably not perfect. Some deviance will be always there due to the precision of printed extruder gears.

Later on you will set extrusion multiplier in Slic3r (or Cura) settings. This is to correct the heat expansion and flow of the plastic when printed. For PLA I use something between 0.9-0.95 (90-95%) and for ABS 0.975-1.0 (97.5-100%). These numbers are very dependent on plastic properties, that are very different for every manufacturer and even colour of the filament. You will have to tweak it depending on the print results you will get with the particular filament. For eg. if holes will be printed smaller then required it is probably due to overflow so the multiplier needs to be a bit lower. On contrary if layers on surface seems to have occasional space in between go a bit higher.

Comments deleted.

Nema 14 would be interesting...great Project

You may be right but in my point of view Nema 14 is not enough smaller nor cheaper than Nema 16 and 17. Nema 11 and 8 are noticably smaller but way more expensive and much weaker (also have problems with microstepping, atleast Nema 8 do, due to inductance).
I would rather use Nema17 20mm tall, than Nema14 28mm tall with the same 1kg-cm. In the end it would make reasonably small, cheaper and more reliable machine (in terms of compatibility with common stepper drivers).

Comments deleted.

I don't think, this will let you use 28BYJ-48 without the bipolar hack as the output have only 4 pins. For unipolar motor you need at least 5 or 6 pins.

I'm having trouble wiring the 28BYJ-48 stepper motor to the RAMPS 1.4. My main concern is, you never put what kind of connector it is your using. The connectors that came on my motor are too thick and in the wrong color pattern. So what is the name of the connector I can put into google/amazon?

Also, I accidently order the 12v motors. I noticed the buyer's guide doesn't mention which way to go. You should put a note on the motors that if you're going with the 12v power not to go with 12v motor. I personally read some of the notes then weeks later started buying everything; so I forgot.

With regards to connectors, I used DuPont connectors, like these here:


What you need are the plugs as well as female connectors. They fit snuggly to the connectors on the RAMPS board. You normally would also need something called a crimping tool to fit the female connectors onto the wires, but you can also just use a small wrench; there are plenty of instructions online of how to do this without said crimping tool.

Thank you. The only thing I could find was a JST connector, but even that was coming back with different products.

hello i'm having layershifting , i'm using a GT2 belt and maybe :) (i dont know anymore) i'm using a GT2.5 Pulley could this be the cause of the problems ? at every layer the printhead is moving about 5 mm to the left, i have increased the Vref and checked for overheating, but everything else seems fine

That's exactly the cause

T2.5 pulley with GT2 belt would do no good, but won't cause regular shift either.
Typically such shift is matter of undercurrent or too high movement speed. In both cases, the motor is not able to stay on microstepping and/or do the required amount of microsteps. But that is mostly the case of Nema17, not 28BYJ-48 due to the internal gearbox.

First, check if the pulley is correct for the belt you are using. Than try to print at half of the speed you are using now. If the problem still remains change the motor. Some teeth may be missing in the gearbox.

Comments deleted.

What power supply are you using????

It was discussed so many times. Please read manual and comments. If you want to embed it into the printer, you need 12V, 40-120W LED PSU of sizes mentioned in build manual. Don't ask me for some particular model or brand. It depends on what is available for eg. in you local electro shop. Otherwise any 12W 40-120W notebook PSU can be used too, but you will have to find a way how to unplug it.

Power depends on the overall consumption of the printer. Measure the resistivity of all your heaters and calculate the consumption by OHM law. Find PSU with wattage that is bigger than the requirement. For eg. my machine have 3.6Ohm heater and 4.8Ohm heatbed. PSU is 12V so the total consumption is 12x12/3.6 + 12x12/4.8 = 70W, you can add 1W per every fan and 1W for electronics, if want to be really sure.

Suggestion is also to use an ATX powersupply, it has 12vdc rail, and a 5vdc rail, even old anemic throw away powersupplies run 250 watts or more, they are larger than the small 70 watter for sure, but they should supply ample power with no problems

You mention using a notebook PSU. Could I plug that directly into the mega board (since it already has the female plug.). I'm hoping that since the RAMPS 1.4 and everything else is attached that I could pull the full 120W. I've never actually dealt with wiring my own electronics before this so my knowledge is ver low.

Oct 25, 2016 - Modified Oct 25, 2016
thorgal - in reply to GamesDay

No. That way you would power Arduino Mega only.

When using 12V notebook PSU you can attach some female plug on RAMPS screw terminals and power up Arduino through it. That was my suggestion. Mind the polarity though.

Sep 22, 2016 - Modified Sep 22, 2016

Hi Thorgal,

first of all, thanks a lot for designing this printer! I have no prior experience to 3D printing, so I have used this printer as an introduction in how 3D printers work and it was really a lot of fun building it (pictures of the build to follow).

I have finished building the printer and got everything working smoothly so far and the first few prints come out quite nicely. I just was wondering about one thing and thought someone from the community might advise on this.

For the default feedrates I have currently the following settings:

define DEFAULT_MAX_FEEDRATE {20, 20, 0.15, 3}

Everything is working fine like this, however, if I increase the feedrate for the Z axis (as I thought that is really was quite slow) even to only 0.2 and test Z axis movement in prontrface, the motors start to jitter and I do not get any reliable movement of the axis anymore, i.e. sometimes it moves, sometimes it doesn't. My Vref for the DRV8825 steppers that I have is set to 0.05V, and I have already replaced the motors (I have the 5V version), as I thought they might be the issue, but to no effect. It does seem to me that even at a max feedrate of 0.2 the motors do not seem to have enough torque anymore to move the Z axis. Is this low feedrate of 0.15 normal and do other people experience the same? If not - does anybody have an idea of what the issue might be?

Thanks a a lot and thanks again very much for all the work Thorgal!

Hi Hubert,
Thanks for kind words and feedback.

1) What microstepping did you set by jumpers? For Z axis I would recommend something like 1/4, 1/2 or even fullstep. It will give you a bit more torque. You will have to change DEFAULT_AXIS_STEPS_PER_UNIT accordingly. (For X and Y keep 1/16 or even 1/32 for better precision)

2) what is the acceleration set in firmware? it should be really low, like
where 1 is for Z axis. And set also
to enforce acceleration whenever the axis moves.

3) lubricate the threaded rods in Z axis really well. That will increase friction and reduce torque required to move in Z. Try to move the Z axis all the way up and down few times. It will take a lot of time time, but will pay off in the future.

4) what threaded rod do you use - M5 or M8? With all this you should be able to get somewhere to 0.35mm/s in Z axis on M5. I have no personal experience with M8, but in theory it should be 2.5 times quicker.

5) also try to buy brass or nylon nuts instead of common nickel plated iron.

6) 5V motors are right choice but try to increase current in Z axis stepper driver. There are two motors so you need 0.18-0.30A in total. Vref on this driver should be 0.09-0.15V. (You can use even slightly more if motors in Z are not in break and if printer do not move in Z during retraction but only when changing layers. But check if they are not heating up too much.)

Hope that will help and please keep me posted about your progress.

Dear Thorgal,

thank you so much for replying so fast!

Concerning 2) I have these settings set as you described and as for 3) and 4) I am using a M5 rod which I have lubricated.

You were spot-on with the 6) Vref setting and the 1) microstepping - I had set the microstepping to 1/8 and the Vref was at 0.05V. I changed the microstepping to 1/4 and set the Vref to 0.12V, which did the trick. I completeley forgot that that the driver is powering two motors and therefore needs to pass on a higher voltage! Thank you very much for pointing this out!

At the moment I have the regular nickel plated iron bolts - I will try to replace them with Nylon nuts at some point!

I have uploaded some photos of my build, which now runs smoothly and a tad bit quicker thanks to your advice.

A really great little printer!

Thanks for posting pictures! I'm really happy we found a solution.
Just be careful with nylon nuts. They will help with friction, but as every plastics parts they will wear off after some time. Don't have personal experience with them, so can't tell how soon it will come and it will also depend on precision and smoothness of the thread on the M5 rods. If normal nuts are working for you now, there is probably no reason to change them any more because you probably hit the limit of your motors. But if you would like to experiment, I will be happy to hear about the results you achieved.


Can I use Octoprint to control the device?
How do you upload the g-code to the printer?
Is it possible to modify for dual extruder?

Octoprint works well on my printer. It's basically universal to all printers so it's just a matter of settings.
As for uploading gcode, most 3d printers use a computer program such as Pronterface or Octoprint to send the gcode over a USB cable. For beginners I would recommend a software called Repetier Host. Octoprint also does this job well too, but requires much more setup. Cura is also user friendly, but kind of assumes that you have an LCD so it seems to be missing some features.
Dual extruders are not entirely feasible on ToyREP because of its low price point and limited motors. Not to mention that adding a second extruder takes at least 20mm of space off the Y axis. In my opinion, if you want a dual extruder setup you should save up and build a prusa i3.

I really don't know if Octoprint works with RAMPS 1.4 and Marlin/Repetier firmware. That is a question for Octoprint support rather than for me.

Using Slic3r for generating g-code and Pronterface to print directly form PC. But that is mostly a case of running some test prints. I get best prints when printing directly from SD card.

In theory, it is possible to install two extruders on ToyREP but right now there are no printable parts to support this feature and no instructions for working setup.

Does anybody have any information about the electronics ? i blew my arduino by guessing how to put it together, i have everything printed and the whole printer build etc. but the project is stranded, how many jumpers do i use how do i put on the steppendrivers (can be both ways) i see that many people have similair problems, isn't there anybody who can post a few lines how things should be connected ?

Sorry to hear that.

Build manual for ToyRep, including wiring on Arduino Mega with RAMPS 1.4 and DRV8825 stepper drivers is here: http://reprap.org/wiki/ToyREP_Build_Manual

If you use A4899 stepper drivers remember they have to be installed other way around. See this page where is the correct orientation of both of them: http://reprap.org/wiki/A4988_vs_DRV8825_Chinese_Stepper_Driver_Boards
(green are A4899, purple DRV8825)

Correct microstepping set by jumpers under stepperdrivers is on this picture: http://doku.radds.org/wp-content/uploads/2015/02/MicroStepping_Modes_tbl.png
For Z motors 1/4 is just fine. For X and Y axis and extruder anything above 1/8 will give you enough resolution. If you put there all jumpers you will get 1/16 microstepping on A4899 and 1/32 on DRV8825. No problem with this setup, only you will lose a bit of torque in Z axis and the amount of microsteps for 1mm will be ridiculously high.

Complete wiring diagram of RAMPS 1.4 is here: http://reprap.org/wiki/RAMPS_1.4
The position of endstops and thermistors is much clearer there. Mind the polarity of 12V PSU too!!!

Don't forget to do the bipolar hack on 28BYJ-48 motors: http://www.electronicsmayhem.com/?p=13

Set the current on stepper drivers to minimum as described on this page: http://reprap.org/wiki/Pololu_stepper_driver_board
0.09-0.15A should be enough!

If any other query, just ask.

i have flashed the marlin firmware, but something goes wrong, i get a lot of rubish response, i use marlin 1.0.1-2 and the config file from here, am i using the correct marlin version ? i have tried repetier and i got normal response but still no movement.
i have set the Vref on the steppers(A4899 ) on 0.055v that should lead to 0.13a is that ok ?

Do you have at least correct readings from thermistors and extruder heater working? can you test the electronic with some nema 17 motor? Than this may be a problem of motor pinout. Try to measure which two wires belong to one coil of motor by ohmmeter.

i got movement today ! :D i came across the firmware for the cherry printer, and just uploaded it, and things started to happen (al the wrong way of course. so i think the electronics are ok, the motors looked underpowered so i'm going to raise the Vref . is it possible or is there a place where i can download the firmware for the Toyrep, so i know that is ok ? it would make troubleshooting a lot easier :D

Great! Send me content of Cherry printer's configuration.h firmware as a PM so we can walk through it together.

Great info tnx :) i have new steppers, but the ramps does nothing anymore, so i think i have to order a new one by our chinese friends ;) you should paste this info in the instructions, helps a lot. i also had a problem getting the right colourcoding for the stepperdrivers, i found some pictures from the cherry printer, an other 28BYJ-48 printer, where i copied it from, but i think some people would need this info :) thx for the fast reply

Hi.. How much material is used to print this in meters or grams?

You can easily print all the parts and not use anywhere near an entire KG of filament

Unfortunately I don't know. In BoM price includes electricity and I don't recall the printing time either to reverse the calculation.
Sorry. But you can slice it with your typical settings and Pronterface will show estimated printing time and length of filament when file is loaded.

do you have any electronics guide? like a ramps 1.4 wiring guide or similar???

especially how the pot meter on the pololu should go and the jumpers on the board???

I used the regular wiring diagram for RAMPS 1.4 with 1 extruder, 1 heatbed (may not be used) and 1 fan (also not required). Second stepper for extruder is not used. Thermistor for second extruder can be used for monitoring, as fail safe or not be attached at all. Connection is described in build manual: http://reprap.org/wiki/ToyREP_Build_Manual

does anybody know where i can find the right endstops ? the one's i have have the correct holes but the levers are to small, or is it possible to mount them somewhere else ? the one for the printbed seems the most tricky one, on the pictures it looks like the metal part slides against the belt. if i mount the ones that i have the switch is already closed. can i use a heatgun to mount them ? i'm afraid the would come loose

I have the same issue. I hot glued mine in place. It's really sketchy, but it works 95% of the time.

does anyone know if I can make the x y and zed(z) axis bigger?

Yes you can extend the length of the rods. Z is no problem at all, for X and Y you will have to make bigger frog extenders. Rest of the plastic parts will remain the same.

Feb 4, 2017 - Modified Feb 4, 2017
WarHawk8080 - in reply to thorgal

Do you extend them 25mm to get the full 125x125x125 or does it take a little bit longer 8mm smooth rod?
Disregard...found it in BOM...duh
X 2x - 230mm for 100mm, 255mm for 125mm bed
Y 2x - 220mm for 100mm, 245mm for 125mm bed
Z 2x - 295mm
Easy enough :)

okay thanks

yes you can. if you download the BOM there is examples of different lengths for bigger print surface otherwise you could also do a little calculation yourself and theoretically make it as big as you want.

when trying to compile i get the error message: missing binary operator before token "("

what does that mean???

nevermind fixed it

Does anybody know if it is possible to print the extruder in pla ? I read that you have to cool it, where should i place an extra fan ?

As I build this printer, I am running into problems with mounting the X and Y limit switches. They line up with the holes but when tightening the screws, the switch engages so it is always toggled. Need to move them back a bit, any suggestions? Has anyone else run into this?

I am about to build the extruder assembly now. I lose many motors hammering on pulleys.

Does that mean, that the switches operates normally until you screw them to the printer? You can always drill new holes in different position or stick the switch with hot melt glue.

If your printed models have too tight holes try to file them first. everything should fit precisely. No hammering required.

Yeah- some math errors on my mini kossel makes it print smaller.
Reprint on Prusa i3 and so much better. Not wanting to take it all apart and print new parts, I drilled new holes. the new holes work great. Hot glue, another idea I did not think of.

Very close to finishing up this printer.

I am having a hard time finding glass of this size in the US.
Can someone tell me where they got their's?

I go to the local glass shop, the ones that sell glass to fix windows (every town should have one) get a custom glass cut, I got a 8x8 in for my full size Anet A8 for $5, a 125mm one or 5x5 should be even cheaper

I found an eBay seller that sells 120 x 120 heated print bed, it arrived today and looks great, not yet installed.
Check it out -

Also got a 140x140 piece of glass, don't need it now.

You can use plywood and cover it with tape

how hot does the steppers go? will it be possible for me to print the parts in pla or does it have to be abs??? i struggle to print abs... so pla will be preffered...

Good afternoon. I use Cura app ver.15.04.5. Can somebody give me the settings for this app?

Nice work.
As I make my way through the instructions on the wiki I see errors. Some say use smooth rod when you have picture of threaded rod.
You have completed a huge undertaking by making this, publishing this, creating instructables, wiki, answering questions ... dang.

Can I help by fixing errors I find on the Wiki instructions as I work my way through it? or take notes? You have done enough, would like to help. Know what I mean?

Thanks, man.

Don't worry. I understand what you mean and appreciate Your offer.

Just If you mean assembling PSU cover, the smooh rod is actually correct. It is advisable to bend the wires around smooth rod, and than insert the threaded one. But you are right, it is not described well enough.

I think you can just register on reprap.org and that edit the build manual. Eventually I will have to approve your changes. But I have never undergo this, so maybe I got it totally wrong.

Thank You

email sent for an account today.
I see what you mean about smooth rod on power supply.
More later..

Good afternoon
First to thank thorgal for all content.
I mounted the printer and modified the Electronia, but consiguó not work properly.
The limit switches do not work properly and the engines either.
It is possible to file configuaracion to check if I have mistakes, I use 1.0.2 marlin

I accept suggestions, intentndo take two weeks to fix the problem.
And sorry for my English

Greetings and thank you

Hello! very interesting printer.
Could i ask for more information about correct electronics installation, about adjustment of the current driving the 28BYJ-48 Stepper Motors? What a nominal current for hacked steppers for works without overheating or missing steps?
I plan to use DRV8825 Stepper Drivers.

Apr 1, 2016 - Modified Apr 1, 2016

The motors are getting really hot, i have one of these motors for playing with my arduino kit. I think if you can cool them with a fan they will last a lot longer. I will build one maybe i'll try to add a cooler on the motors.

it is already done http://www.thingiverse.com/thing:981794
feel free to use these alternate models.

ToyREP Stepper Motor Cooling
by thorgal

Ok great! I think the extruder should be fitted with an Nema 17 like the Cherry printer has... maybe i can do that, but that is probably done as well but i cannot find it

No this was not done (yet), but there is possibility to use E3D v5 bowden hotend and any bowden extruder including Nema 17 driven ones. There are plenty of those on Thingiverse.

Hello! very cool printer. I have collected 5 pieces. Very satisfied that it is cheap.
Could you add the small screen to control your printer project. It would look very nice.

TinyOLED V1.0/V1.1 for RAMPS : 1.3" I2C OLED, TF Card Module, Rotary Encoder, Buzzer, Connector Board

Why don't you add it yourself. You could integrate it at the front.

Why don't you add it yourself. You could integrate it at the front.

I currently add their own. I made a proposal to improve the printer

Comments deleted.

If I get you correctly, You can use larger bed, but you would have to prepare bigger frog for it. The rest is matter of longer rods, no other plastic parts have to changed. Of course you need to adjust firmware for bigger print area.

Comments deleted.

Sorry, I cannot print it for you and I've already mentioned, it is not good idea, to have this printer as only one at home. Still the risk is up to you.

I'm writing this just to clarify that you cannot use GT2 aluminum pulleys shipped with belts due to fact that the 28BYJ-48 motors do not have shaft long enough to attach the pulley to the motor.

Mar 19, 2016 - Modified Mar 19, 2016
IrreHelios - in reply to thorgal

I read it a few times, still I don't have so much money and I like to build and try things...so I will build the toyrep as good as possible, with it I want to get better at 3d modeling and printing and than, if i still think its worth it, i will start buying more nema 17 and start building "better" printer...but for this I need in primis a "reproduction base" :) so thanks for the heads up and the info about the pulleys...I will have to buy gt2.5 belt :)

Hey, i wrote a message to you. Are you German? Have a look at the message center. You can have mine.

Mar 5, 2016 - Modified Mar 5, 2016

A great low coast way to acquire 8mm smooth rods is from old flatbed scanners or printers. The scanner I took apart had two 17" (~420mm) rods, and most HP printers have 8mm rods that are at least 14" (~200mm). Also, the stepper motors used in most scanners could be (theoretically) be used as an upgrade from the 28byj motors, but I have yet to test mine.
I couldn't find a 3mm threaded rod for the Z axis endstop, so I used a wood screw instead. It is harder to adjust, but it works OK.

Mar 3, 2016 - Modified Mar 3, 2016

Hi Thorgal,

First off, very good job! I'm impressed by your hard work and I appreciate that practically 90% of this is 3D printable...

I was just thinking about building one, but first I wanted to ask you: Have you re-calibrated it since your last update? How are the round prints/surfaces going now?

And mostly... why does Marvin come out "jagged" that way, and what can we do to fix/upgrade the situation?

Thank You for kind words.

If by re-calibration you mean uploading new firmware with changed values of steps per milimeter, than the answer is no. There was no need for it as cubic shapes comes out quite well and with reasonably low deviation. Problem with round shapes is probably in backslash of internal gearbox, although it was not proved to be true yet. Somebody also advised me to use Repetier with backslash compensation, but I do not have time for it either. Last thing I've printed on ToyREP was probably Marvin. Since than I made only few upgrades for ToyREP while working hard on second version, that will be mostly printed and with lesser amount of vitamins.

There is not much that can be done on your end, unless You will print one and by using it help me with development. The quality of prints is good enough considering the price of this machine, but as I said already to many other before you, consider this as a technology demonstrator (or a toy) and do not try to build it as your only printer.

Hello my friend,
I like your work and this was very cheap 3D Printer
I'm making one but I have a question about the programing
What firmware shall I upload to the arduino mega ??
where is it's files ??

The instructions are prepared for Marlin 1.0.0, but you can use newer one. The only change is in the way you declare electronics.
If you are using RAMPS 1.4 Instead of MOTHERBOARD 33 use MOTHERBOARD BOARD_RAMPS_13_EFB

You can download it form https://github.com/MarlinFirmware/Marlin/tags

This is so cool. About how much do the parts cost altogether?

In the Buyers guide I've posted in the comment bellow, or even here on Thingiverse is BoM with prices. It may change slightly, but roughly 100USD.

Hey Thorgal, now i had all parts printed but the BOM confuses me a little bit ^^ I want to build the 125 version but cant find a measurement for the Rods. Which lenghts does i need there ?

Tanks !

Please see the comments at http://reprap.org/wiki/ToyREP_Buyers_Guide - chapter Rods, Screws And Nuts. Hope that will help.

Thanks man !! I forgot this page... :-/ Too many projects running at the same time :-D

Could you send me one

Thank you for asking, but unfortunately for You, I am not selling these machines. That would ruin the whole idea of building your self or someone around you a cheap toy :D. If you would buy it you won't learn anything and in case it fails, you are doomed. I really do not recommend this should be a main printer of yours.

Hey Thorgal, really great work !! I´m Printing one for me :-) But im not shure what i should use as smooth rod ? Normal 8mm steel rods ? Have you done something to smooth it ? Or do you use Prezision rods ?

Thanks !

Sorry, for misleading term. Mine are 8mm dia. stainless steel precision rods.

Thanks ! No problem bro :-) I just thought you found a cheaper way to get working rods :-)

I did some smaller modification (holes for wires in some parts, mounting holes for zip ties etc.) I will upload it if it all works and fits :-D
I also did a google docs tabel for parts with links (the aliexpress Links) If all parts are here i will also publish it.

This is going to be an awesome small printer :-) Thanks a lot for Publishing it !!!

Great, Looking forward to see it!

I heard about using steel rods, polished with high grade sand paper and printed linear bearings as sliding LM8UU would cause scratches on it, but have no personal experience with this.

Hi thorgal,

Currently printing your files and I will try to stick to your detailed manual step by step. Looking forward for the finished machine.

Jan 16, 2016 - Modified Jan 16, 2016

Uhm, can't find the STL file: ToyREP-PSU1. It is mentioned in the build manual.

Disregard!! Found it as a thing on it's own :)

awesome;) bravo! i'll materialize that! it will take me some time but will build it, keep up the excellent work and let's build together:)


I would suggest this as the coupling for Z axis:

Hello :-) I have a question regarding the extrusion solution; Would the motors be strong enough if I take two of them, both with a MK8 Driver gear pulley, similar to the "dual pinch wheel" extruder?

Also, would it be advisable to take the 12v motors instead of the 5v motors if the price does not differ? Will it make a huge difference and can they handle a bit more speed, or will they just tend to live longer?

Thank you :-)

One motor is probably sufficient for direct drive extruder. Someone already wrote in comments under http://www.thingiverse.com/thing:200078 that he have dual motor direct drive extruder you described but I did not find the model for it yet.

With 12V version of 28BYJ-48 you will need at least 24V PSU (probably even 35V) due to resistance and inductance of the joined coils! Try to avoid 12V version at any cost.

Delta extruder with 28BYJ-48 stepper

Thank you for taking the time to reply to my questions!

Yes, I have seen the Delta extruder, but as there was little info on if and how good it works, and I did not see that coment! Thanks, I'll check it out.
I thought it may be better to use two 28byj (As they cost ~80 cents and I was considering a simple repstrap variant where two motors just sit next to each other with adjustable tension, and this would be easy to build.

Yikes, thanks for the heads up on the 12v version. I did a lot of reading regarding these motors and saw some tests where the 12v had more torque (https://grahamwideman.wikispaces.com/Motors-+28BYJ-48+Stepper+motor+notes), but it kind of makes sense that driving it at 12v after the uni/bi polar mod won't drive it at full potential.

I'm considering making a mashup of this and an Itopie (mdf based prusa frame) but using two steppers on the x and Y instead of the idlers. I was wondering though, why do you think you are limited to 10mm/s. Is it that the motors don't have enough strength to move the carriages faster than that or that the speed itself is the issue? My hope was if you made the printed GT2 pulley a larger diameter and used 2 steppers instead of one maybe we could get closer to a normal printing speeds goal is 40mm/s (your thoughts?)

Dec 30, 2015 - Modified Dec 30, 2015
thorgal - in reply to Humanisticnick

Already discussed this with madmike8. You will find it on the bottom of the comments.

These motors can do only 15RPM reliably. With 50mm circumference pulleys that are installed in ToyREP it is 12.5mm/s. Almost all of my 28BYJ-48 steppers can do 30RPM and some hand picked even up to 60RPM when overloaded, but without good cooling they were prone to die very soon. I was running the machine like this at the very beginning, on the first video you can see the machine doing 30mm/s in X and Y axis. The major problem is how to cool down the coils that are hidden inside the motor and barely touching the metal housing ... So trying to make them spin quicker is probably not good way to go.

I was also experimenting with bigger pulley circumference (on different machine as ToyREP is not designed for such pulleys), but 75mm is already dangerously close to the strength limit. With such pulley you can do 18.75mm/s. Two motors with 150mm circumference pulleys can possibly do 37,5mm/s but you have twice as big deviation caused by the internal gearbox and you have to imagine almost 50mm dia pulleys installed in the printer.

Edit: Maybe 35BYJ-46 is better way to go instead of two 28BYJ-48. They can be found fairly cheap too.

But if you use repetier-firmware, couldn't you use the backlash compensation? It works well with my crappy 28byj-48 that have lots of internal backlash.

Probably can, but I have no experience with this function yet. But the backslash is with bigger pulleys is so huge I doubt you can compensate it just by electronics. I am talking about 3-5mm of free movement in X and Y axis.

Hi all

Well things could not be better uploaded some more pics of my printer.
just finished the 20mm test cube and all is good. just a bit of tweaking.
and we are ready to rock and roll.
Thank you for such a nice design

Happy to hear that. I see You've mount optical endstops too ;)
Good luck and thanks for kind words.

Dec 18, 2015 - Modified Dec 18, 2015

I've got a problem, the motors 28BYJ-48 work in the same one direction. Who can help?

I think this may be related to endstops and software limits in firmware. If possible try to home first, than try to move motor CW and CCW or switch off movement limits in firmware.

Or you mean they are going the same direction no matter what direction you sent them? That would be truly strange.

endstops not installed, I took another firmware, everything moves, pick up the trial steps

I have a strange problem mainly to do with marlin I have version V1.0.0 rc2 and it won't accept the Z axis steps greater than 4 digits ie 9999 so when I put in the 40960 as in your documentation in the steps for the Z axis in the printer it just shows up as **9999 the first 2 chars are strange. so what version of Marlin are you using, is anybody else have this problem.

do not use EEPROM option
use EEPROM will limit to 9999

Now I am using Marlin 1.0.2, but also with previous 1.0.0 I never experienced such problem.

To elaborate on the problem it's actually in marlin in the display code it is set to show only 4 digits in front of decimal point as it has a mask of 9999 so it's only a problem when you try to edit the values on the lcd I have the full graphics display.

The values are stored correctly, it means you have to compile the values in the source or use repitier host to edit on the fly.

Doing my first test prints today all seems good, in general the way it runs. So I am very happy with it
But I seem to have trashed the y stepper it has got very sloppy in the gear train, has a bit of a delay before it does it's move, swap the x and y and it moves to the x axis. So it's in the stepper itself.

It may be because I have no fan on that motor and it gets a bit warm so may have melted something inside.

So job for when I get up tomorrow, put a fan on the y and replace the motor.

will keep you posted.

Dec 11, 2015 - Modified Dec 12, 2015

Hello! give another problem. I have always goes towards the axis Y. tried different settings and change the speed. Changed driver Drv8825 clocked at maximum capacity.


define HOMING_FEEDRATE {1200, 1200, 50, 0} // set the homing speeds (mm/min)
define DEFAULT_AXIS_STEPS_PER_UNIT {42, 42, 2500, 400}(3263.683958)/0.8, (3263.683951636)/(97*3.1415926)
define DEFAULT_MAX_FEEDRATE {22, 22, 0.25, 4.17}
define DEFAULT_MAX_ACCELERATION {300, 300, 1, 17}
define EXTRUDER_OFFSET_X {0.0, 20.00}
define DEFAULT_XYJERK 0.5 // (mm/sec)
define DEFAULT_ZJERK 0.01 // (mm/sec)
define DEFAULT_EJERK 0.1 // (mm/sec)

I think it's because of the backlash compensation on the motor 28BYJ-48. Where is it in the firmware onastraivaetsya?

Dec 12, 2015 - Modified Dec 12, 2015
thorgal - in reply to Lex-art

Did you tried to print something less complicated like the 20mm calibration box? How did it come out? Do it get right dimensions in X and Y axis?

This seems to me like motor missing steps due to overcurrent or overheating.

In the line with DEFAULT_AXIS_STEPS_PER_UNIT you are missing comment // before ( - that may cause some problems too.
Also, how is it possible that you have only 42 micro steps per mm in X, Y axis and 2560 in Z axis? Even without microstepping there should be something around {102, 102, 5120, 30.8}.

Thanks, all earned. I had a bad motor, changed the play and was gone. Who exactly prints !!

Dec 7, 2015 - Modified Dec 7, 2015
thorgal - in reply to Lex-art

You have to stick the hobbed bolt inside extruder the other way around.

Pick the right gear for your hobbed bolt from thing files per the distance of groove to hex head. Use washers to align filament and the groove. The filament will lock the position so there is no need for nut on the other side of the extruder and you will avoid this kind of collision.

realized. Thanks for the help!

Nov 18, 2015 - Modified Nov 18, 2015

This printer is really awesome. Thank you for designing it. I will build one over christmas (Or even sooner), but i have a question: Do i need 12 V or 5V motors? Also, where can i find a Bill of Materials (BOM) for a little shopping :) It would be great if someone could help me!

Thank You.
If you are going to use 12V PSU use 5V motors. For 24V PSU use 12V version of 28BYJ-48.
BoM is included here among thing files or on webpage: http://reprap.org/wiki/ToyREP_Buyers_Guide
Good luck.

Thank you very much! When my printer is finsished i will post a make!

UUUUUUUUU, maybe thats the point why i can´t get it to work...

You cannot move motors at all? With 12V PSU you should be able to move them at around 3-6mm/s instead of 12mm/s. If not, the problem is probably somewhere else.

Nov 9, 2015 - Modified Nov 9, 2015

Hi. Can you change the frog to mount heating bed 120x120 mm? I bought here http://www.aliexpress.com/item/Free-Shipping-1pcs-lot-3D-Printer-Aluminum-Plate-Hot-Bed-With-PCB-Heating-Bed-120-120mm/32496687064.html
Heating bed size is 120x120 mm, the distance between holes 112 mm. I can do it myself and put it here, if you share drawings of the mountings bed. Here is photos of the bed https://onedrive.live.com/redir?resid=F1E6EF158260DA0C!70611&authkey=!AF-KypcbMY1ANLg&ithint=folder%2cjpg

Nov 9, 2015 - Modified Nov 16, 2015
thorgal - in reply to z_ha_dum

Yes no issue, I will prepare it next week.

BTW. Great work!

Edit: Done and uploaded here.

Is it possible to use nema 14 steppers on the mounts??

No, they are way different from these small steppers.

Ahoj, do you have any picture with Bowden Extruder ??
Would like to try test this version...

Regards, Ondra

Sorry, I am not using bowden extruders, so I did not even bought bowden hotend to make pictures. Technically it is the same mount as for geared extruder. It is going to hold on carriage just the same.
Of course you need your own bowden extruder, probably the best with Nema17 motor to make it run and find some place to attach it to the printer. Be my guest and try it ;)

Hello I am very like the design of the printer. Is it possible to add a cooling Print PLA plastic
(small 30h30h10mm FAN)
roughly the

Fan Duct for Ultimaker
by Maurits
Hybrid annular fan duct
Nov 5, 2015 - Modified Jan 18, 2016
thorgal - in reply to Lex-art

With those two you mentioned would be problem with attachment. They have holes for horizontal mount (under the heatsink or carriage), but my hotend cooler is designed for fan and carriage placed vertically. You can still try to glue it on the right place, but I have no personal experience with such setup. Something to cool down printed PLA is still on my list of improvements, but do not expect it being ready and published before Christmas.

Edit: It took more than two months but fan duct is finished - http://www.thingiverse.com/thing:1276315

ToyREP Hotend Cooler
by thorgal

I love this little design. I was wondering if there is a chance for you to upload the orginal cad/3d files you used? I would like like to make a few changes, but it's a real pain to to get these into a proper cad format at times.

Sorry, I won't release full dwg publicly. But I can send you few parts you want to change if we will make mutual agreement. If you are still interested please write me PM with email.

I'm very interested by direct drive extruder, when will you do it ?

Sorry it takes so long. I am still working on direct drive dual motor extruder. The issue is that it is very dependent on size of vitamins. It would be best to make it parametric, but I have no skill in Openscad. Prototype should be ready in February.

ok, i will wait, thank's

You use 40 w power supply heating nozzle to 200 degrees Celsius to how much time?

The same as with any other stronger PSU. The ceramics heat cartridge is designed to draw 40W - 12V, 3.3A. As long as these requirements are covered there is no difference in its operation.

If you want to know how much time it takes to preheat hotend to 200°C (no matter what PSU is used) then I can measure it next time.

So with the longer legs, is it now possible to use an LCD screen?

Yes, I am able to use a LCD with the leg extension upgrade I made here: http://www.thingiverse.com/thing:1098421
The 50mm legs should be about the same offset as my extensions.

ToyREP Leg Extender

Yes I thing so, but it is not checked yet.

Oct 9, 2015 - Modified Oct 9, 2015


once more me. Currently I am fiddling around with the motors:

Could you please tell me (us) what cable color (from the motor) you connected to 1A 2A 1B 2B at the A4988. I did the hack -> turned down the voltage to absolute minimum. When going up with the voltage the humming gets "stronger" but somehow I cannot get the motor to move.

BTW: Maybe someone is interested: The "easydriver" wont move the BYJ28-5V motor at 12V you need to "step" down to 5V. If you use the A4988 it works with 12V (but as said above, currently I can not make the motor to move).


It should be blue-yellow-pink-orange on 2B-2A-1A-1B

Oct 9, 2015 - Modified Oct 9, 2015
cpbee - in reply to sobo84

Hmmm, strange, I tried your suggestion. But this is what I initially had. I found on the German RepRap Forum following suggestion that worked for me ...

2B => blue
2A => yellow
1A => PINK

Do not ask me why this is working :) but the thing turns like a dream now ...

Oct 12, 2015 - Modified Oct 12, 2015
sobo84 - in reply to cpbee

What you found on the RepRap forum is exactly what i wrote in the comment above?!?

Oct 14, 2015 - Modified Oct 14, 2015
cpbee - in reply to sobo84

Yes I know. I probably did a mistake while reading --- :) sorry for the confusion. The wheels are spinning now!

could you post a better picture of endstop wireing on Ramps? Isn´t it Ymin?

Try the build manual on reprap.org. The pictures are in quite big resolution if you open them separately. And it have to be Ymax no matter what would be shown on the picture.

Sep 28, 2015 - Modified Sep 28, 2015

Could anyone suggest somewhere (in the UK) to get the parts printed cheap? as I don't have a 3D or have access to one and I can't afford the £100+ most places are quoting : (

Also thank you Thorgal for this project I can't wait to make it! : D

It looks like your designed supports are 0.38mm wide which is less than most peoples nozzle diameter. Rather than print all the parts at less than nominal settings, can you provide the STL's without any pre-designed support material? Thanks.

I will, but please hold on for few days. During weekend I've burned motor on extruder. It is second one since ToyREP was published. I have to check up what's wrong.

Thanks. Maybe you have the current set too high?

Motors came in today... Time to Print it. My nephews have been wanting a printer, so I'm going to give this one a shot for them.

Glad to hear that. Good luck and keep us posted. I hope they will be satisfied, but beware as we've got a saying in Czech: With food grows the taste :)

Morning. Could you do a pulley for 2GT belt?

I see You've been busy last night :)

I can, but question is if you can print it as it will have very fine teeth?

I would like to give it a try if its not too much work for you.

Ok. Only it will be prepared after weekend if you don't mind.

How wide is your belt?

all my belts are 6mm wide

The files with wider T2.5 and GT2 pulleys are ready. They are uploaded here. You should find them at the end of thing files.


Next Question: Why did you use so many washers. $Washers/Nuts would also work in step 2 on the PSU!?

Because in between Z2 and PCB1-1, you would not even fit nut. So there are just 3-4 washers. With PCB2-1, there may be a bit more space but still it would be quite hard to manipulate the nut.

On the other side between Z1 and PCBX-2 there can be two nuts and washers instead of so many washers, but I found it easier for tightening when setting the correct distance between Z1 and Z2.

Anyway. Anybody can do it as he likes.

What about the 5VDC motor in your x setup? Are you working with that type?

5VDC motor? What for?

Sep 23, 2015 - Modified Sep 23, 2015
sobo84 - in reply to thorgal

In your pictures there is a 5VDC motor as X axis motor...

AHA. Well that is not DC motor but my 28BYJ-48 stepper motor with 1:64 gearbox rated 5V when unipolar. All of them are the same and have the same stupid misleading sticker. :D

Thanks a lot for all your work. I´ll post my results soon. Have you thought about a fan for filament cooling yet?

I am looking forward to see it!

Fan for printed filament is on my improvement list. But I did not decided yet if I want to use hotend fan also for filament or a separate one.

Do you think it is possible to connect all the fan wires to the same power connector on RAMPS (where the PSU is connected)?

You are reading my mind, right? :D

I had it this way. Respectively, cables from PSU to 5A clamp on RAMPS, then from this 5A clamp to 11A clamp and from 11A clamp to fans. It was working great, but it is not good solution for PCB heatbed. With all fans (I have 4 mounted on the machine) connected to 5V USB charger I was able to get 106-110°C, but when they were connected to 12V from PSU, it was barely 90°C. Although my fans are only 7 CFM, they are moving air way too much around heatbed.

Did it this weekend, because I wanted to get rid of the USB charger. Now I am going to do some measurements, if all of them can be actually connected to 5V for endstops on RAMPS or what resistors are needed to reduce voltage from 12V.

Maybe you can adjust the voltage a little bit higher on the PSU? On my MKS 1.1 it affects the heating temperature and speed.


Just a minor question: What micro switches do you use (I am not sure with the 11mm hole spacings): Will KW11 switches match?


Sep 22, 2015 - Modified Sep 22, 2015
thorgal - in reply to cpbee

Thank you very much for pointing this out. I am sorry, there should be 9.5mm instead of 11mm.

I am unaware of the type of mine but KW11-3Z-3B or KW11-3Z-3C should work with no issue.

Edit: Size corrected in Instructions and BoM.

Hi, I am just wondering about the 28BYJ 48

Am I right that you are using the 5V version? How do you step down from 12V to 5V? I am currently trying to move my 5V stepper with an easydriver module. If I connect it to 5V there is no problem in moving that thing. However, if I connect the easydriver to 12V and turn down the current to lowest as possible it wont budge (not even a glitch). Also no help increasing the current :(

Am I missing something here?

I am not going down from 12V with 28BYJ-48. When running bipolar you joined two coils together, so it have twice that big resistance. Means it should run at 10V instead of 5V and 12V is not too far from it.

What you describes may be caused by uninterrupted trace at the PCB of 28BYJ-48 when doing the bipolar hack. At 5V the motor is still somehow running, but at higher voltage, this short start to throw over current fuses of the stepper driver.

Hi, thanks for your answer. I think the problem is the Easydriver itself. At 12 V I can not downregulate the current to a reasonable level. However, as soon as I put a LM317 and go down to somethinh like 5.1V for input voltage I can run the motor at very good rate.

I think your drivers have finer voltage (and current) regulations? A shortage is almost impossible because I nearly cut the PCB at ca. 1mm ( are there any connections at the back of the PCB that could lead to shortages)?

Just for confirmation: After the "hack" I do have 65 Ohms between the wires for each coil - do you red similar values?


No, there are no traces on the back side as far as I know. If we rule out the PCB than I am clueless.

And yes, each one of the four coils should be around 60-65 Ohms.

I've tried this motor on Chinese clone of DRV8825. Its regulation is tragic - especially for low current. EasyDriver should be much more suitable for this small motor.

It is strange that it is so much dependent on voltage as stepper driver is supposed to controlling current independently on voltage. There should be two voltages delivered to the stepper drivers. One Vref for logic of the driver 3.0-5.5V and another Vbb for the motor. Easydriver have its own voltage regulation so it can prepare voltage for logic side from load power supply, but also have pins to connect own 3 or 5V separately and some pads to switch between different scenarios. I think that for some strange reason your driver is feeding load power supply to logic part of A3967 chip, so it won't work above 5.5V as it gets overvolted. Strange it did not get burned yet when hooked to 12V. :D

Hey guys...I was just wondering is there link or download file of a breakdown sheet on how many parts of a certain part? Thanks

Please see the page: http://reprap.org/wiki/ToyREP_Buyers_Guide

And also here, among thing files, is uploaded BoM.

Sep 17, 2015 - Modified Sep 17, 2015

The built-in supports on the X ends and extruder didnt work with cura 15.04.Anyone else have this problem?
Ive got most of the plastic parts printed just waiting on some bits and pieces.love the design.

Yeah, same problem here. I was able to print the carriages fine without support, but the extruder I had to re-design in sketchup.

Sorry to hear that. They are only 0.35mm thick, maybe that is the problem, although Slic3r don't have any issue printing sub nozzle single walls. I can either upload models with thicker supports or models without them. Unfortunately I have no experience with Cura. What you thing will be better way to go?

I removed the supports in sketch up and printed them with cura's support. X carriages came out fine.

Sep 16, 2015 - Modified Sep 16, 2015

Hi, I found the Hobbed bolt, https://goo.gl/photos/fjMrJjG1YH2CtMGY6, and https://goo.gl/photos/ce1FyTHrzu95du4u8, can you tell me which one is best? Thanks.

23mm from centre of filament to inner side of the hexagonal head is the right size.

Thank you!

I found you had updated many parts after I had printed the extruder v1, can I use the extruder V1 with the new X1, X2 parts?

That is a bit more complicated. You need the most recent files if you want to use stepper motors with four mounting holes or 40mm fans to cool the steppers. Other that that there is no difference, you can combine them as you want.

I can't find the 28BYJ-48 stepper motor have 4 mounting holes, and can you show me? Thanks.

Please see the last picture in the gallery. There is drawing showing the difference between common 28BYJ-48 and the one with four mounting holes.

There is also sobo84's comment from 28 August with link to Aliexpress.

If you have such motors you will have to print revised models. Judging by the way you are asking, you do not have this problem so it is only a matter of fan installation - if you want to cool the steppers or not.

Ok, I got it, I will use the 2 mounting holds motor, it is easy to be found here. I have printed some parts, https://goo.gl/photos/YGSpDcByLizAM6iU6, I think it will take about 2-3 weeks to print the all parts. I will keep reporting my progress.

Thank you again for your design.

You are welcome and I am looking forward to see more pictures and hear about your experiences with ToyREP.
Good Luck

I am using your updated file for X1 and X2 that using M8 threaded rod, but it seems the M8 threaded rot can't be installed to Z-joint, do you think that is OK?

It should fit. Inner diameter of Z-joint is exactly 8mm and M8 Threaded Rod is actually a bit smaller than 8mm. Try to open the Z-joint wider or file the hole.

Yes, I printed them today, and I have printed many parts today, you can see them in my MAKES.


That is a very great design, and thank you for sharing. I want to make one following your instructions. What is the design software do you use for this project?

Thank You. It is based messy hand sketches and then drawn in AutoCAD. I am used to this.

Is there any way that a dual extruder could be used with this printer?

Technically it is possible. But without hotend like Cyclops from E3D, you will lose a lot of print area. With two common E3D v5 clones I would suggest 50mm longer rods in Y axis direction and to place two bowden hotends one on a other. Their fan mounts have to be tightened together by M3 threaded rods as such length of M3 screw is not available. Only one 40mm fan will be used, it will be common for both hotends. You will have to figure out where to put extruders and eventually make an insert for bowden fitting that will change 28BYJ-48 short distance extruder into bowden extruder.

How hot does the extruded get?

I don't have any means to measure it. But judging by the fact, that the carriage did not melt so far, even with 40mm fan at 5V it have to be way under 100°C.

I cb at find a PSU the correct voltage anywhere. Where did you get yours?

Mine is coming from one Czech eshop called t-led.cz, but they are not shipping abroad. Please see my reply to bobaxx 6 days ago or Tempest815 from from 8th August. One link is to ebay and other to aliexpress. Hope that will help.

Hey, just one more thing-- The hobbed bolts I'm finding ( http://www.aliexpress.com/item/3D-printer-accessory-Wade-s-extruder-hobbed-bolt-reprap-M8-wire-feed-teeth-space-1mm-for/32387428107.html ) aren't like the one in your pictures. I saw one on eBay, but it was $10. Can you post a link to the one you bought, or will those work?

Aug 31, 2015 - Modified Sep 23, 2015
thorgal - in reply to Zakattacks

I know. My hobbed bolt is one of few other things I exploited from previous printers. The design is called Hyena and is quite expensive. I bought it on RepRapWorld few years ago.

But the one you are referring to should be just fine. The only thing that is important is that the hobbing have to make a slight groove. This will prevent the bolt from sliding out of the extruder as it do not have any nut on the other side.
The distance from centre of hobbing to inner side of the hexagonal head should be roughly 21-23mm. Either you will use the head of the hobbed bolt or you cut the hexagonal head off and place nylock hex nut or two hexagonal flat nuts on the threaded side.

Or If you don't want to cut anything, please measure the distance between centre of hobbing to the inner side of the head and I will upload another gear that will use the head without any other adjustments. That is probably the best solution, unfortunately as they are not providing any datasheet I cannot do it right away.

Edit: zhangzq71 provided 3 most common hobbed bolt spacings from centre of the groove to inner side of hexagonal head. They are 23, 26 and 30 mm. New extruder gears are uploaded to ToyREP files, so there is no need to cut anything.

I'm on an issue to make it foldable but i'm stuck with the fixation on the chassis.

ToyREP is not foldable. If you are talking about the article at 3Dprint.com, originally there was this intention, but this feature was removed from final version for very good reasons.

If you would like to redesign ToyREP to become foldable, be my guest. I gave up on this.

Aug 30, 2015 - Modified Aug 30, 2015
bobaxx - in reply to thorgal

I know that it's not foldable with this setup but i'm sure I could make it with only few changes. I did'nt see the article, i gotta take a look on it.
I'm already working on it and I'll let you know as soon as it's done :)

In the article is nothing important, but it was the only place where I mentioned that ToyREP started as a foldable Printrbot. :D

I'm really interested in your solution. My approach with bearings was way too complicated ...

Do you need some support from my side?

I was thinking to bearings too, but I gave up because it was too complicated and it should have too much mechanical slack.
I tried on a 3d model with an alternative of your Z parts divided in two to create a pivot with threated rods. If i'm stuck with it I'll let you know but I guess it will work :) Just need to work a little bit on those alternative Z parts.

Hey ! Here are my first experiments, it works great :D
I don't have all the parts yet, but it seems to be awesome !!! Just have to change a bit to lock the printer in "folded" mode.
No mechanical slack. Here are the photos :

Great! Thank you for photos. I'm looking forward to see it working.

Just one question. Is it possible to bend the Z frame to the other side too? Because eventually you will have X motor and whole extruder mounted there, where it lays flat on the table now. I know it is not important while carrying the printer, It is just for the case you would like to store it folded.

Anyway very good job.

Thanks mate. Yes it's possible to do it. The extruder isn't mounted yet but i did some tests on a 3D sketchup model and i'm pretty sure it will work. Maybe it will be necessary to make the legs a bit longer, I'll let you know as soon as I can mount it.
I'll update with some photos later !

Did you ever get that working?

Is there any way to connect an LCD screen to the printer?

Depends on electronics you use. For eg. Arduino Mega with RAMPS can use LCD and SD card reader. But with ToyREP there are few issues. First, you will need at least 5-6mm longer legs to hook up LCD cables. Right now, there is not enough space under the printer. This is on my list already. Second, you would have to make/download/adjust some enclosure. I may prepare box for LCD module with display 12864 (because this one I have at home), but it is not on my priority list.

What about this one:
No idea how it interfaces with the firmware, but it claims to be completely headless including the calibration.

I think it is clone of SainSmart LCD 2004 Controller: http://www.sainsmart.com/sainsmart-smart-lcd2004-controller-with-adapter-for-reprap-ramps-1-4-3d-printer.html. It should be supported by Marlin firmware. It will let you set temperatures, home the machine and chose gcode file from SD card to print.

It have the same connector to RAMPS as my LCD, so the same issue with length of legs applies here. Other than that, just find your self some holder here on Thingiverse and you are all set for autonomous printing. ;)

I've uploaded some schematic drawing. There are actually two types of 28BYJ-48 motors. They are almost identical, except the mounting holes: http://thingiverse-production-new.s3.amazonaws.com/renders/6d/99/73/f6/cf/28BYJ-48_preview_featured.jpg

In blue is the more common motor with only two mounting holes, in black yours with four mounting holes. I can adjust the models so you can mount both types, but it will take me some time, and as I don't have them home, I am not sure about the result. Sorry for inconvenience.

Or you can drill two more holes in the position mentioned in blue. They don't have to be 4.2mm dia. 3mm would be enough. There would be just very little metal around the hole, but it should suffice. You will also have to put some washers under mounting holes of Z and Y motors.

A fix/adjustment would be great. I´ll print the other parts first. Thanks for your commitment.

Fixed parts are ready. See http://www.thingiverse.com/thing:981794 use them instead of the parts uploaded here.

For your motors use Extruder_Rev3 (Rev2 is for common type of motor with fan). This is quick and dirty fix. I will have to remodel the whole extruder body one day, to make it uniform. Other parts are compatible with both types of motors and fans altogether.

Please let me know how it worked.

ToyREP Stepper Motor Cooling
by thorgal

This is great. Its on my list now! Thanks for sharing!

Will an 1/8" polycarbonate plate work instead of a 3mm?

Sure, thickness or even material of the plate does not matter. It just have to be sturdy, flat and in case you want to print directly on it (without any glue), it have to have certain properties so ABS (or PLA) would stick to it.

Aug 27, 2015 - Modified Aug 27, 2015
Zakattacks - in reply to thorgal

Thanks! Any idea what kind of material would stick?

This is a question for a separate article. In short. Most of the plastics have two characteristic teperatures. Glass transition temperature (Tg) - when the plastic becomes sort of elastic, but do not flow yet. And melting point temperature (Tm) - when it starts to flow.

Glass transition is used when printing on heat bed - it have to be preheated above this temperature. For PLA this is around 65°C and for ABS 105°C.

Melting point temperature is most commonly used as a hotend temperature. For crystalline PLA it is 175-180°C. With amorphous ABS it is a bit more complicated, depending on the pressure. Temperatures above 200°C have to be used in 3D printers. In both cases the hotend temperature actually have to be a bit higher. You have to heat the previous layer with the actually printed layer above the melting point temperature so they will bound together.

Now when you are printing first layer on plastic cold bed you are using similar principle. The first layer have to be printed at a temperature that will just bound, so the printed model will hold on the plate, but not too high so it would let you remove the model from the plate when print is done! For this reason, Plexiglas (polyacrylate or rather polymethylmethacrylate) with melting point around 160°C or polycarbonate (PC) with melting point at around 155°C are commonly used as cold beds. You can use any other material, with similar melting point (for ABS it may be even a bit higher). Just check its datasheet.

Anyway, you will have to experiment to find the right temperature for the first layer with your printer. As you can see on my videos the cold bed surface get damaged over time.


I can not find stl for PSU.

Aug 25, 2015 - Modified Aug 29, 2015
thorgal - in reply to wooer

PSU covers are separate thing: http://www.thingiverse.com/thing:947676 . Please see Thing Info page, it is the first upgrade among Improvements.

ToyREP Power Supply Cover
by thorgal
Aug 25, 2015 - Modified Aug 25, 2015

This design is very interesting to go everywhere with your printer ! I'm already printing the parts with my first machine and I'll probably do some adjustments for a front LCD screen
. I'd like to install a 80W power supply for a hot bed, but after hours spent on internet, I can't find one small enough.
In fact, the minimal size I've found for a 80W PSU is 159x99x38.
By looking at the photos, I see that the Y motor is close to the PSU. Is there any place for those extra 3 cm or do I need to make some adjustments?

Thank You. I took mine for a walk already. Maybe I will add some legs with wheels to the to-do list :D. LCD would be great upgrade too!

It do not have to be strictly 40W or 80W ... Look for eg. here: http://www.ebay.com/itm/LED-Strip-Light-LED-Driver-Power-Supply-Transformer-AC-110-260V-DC-12V-/161769013165?var=&hash=item25aa2f3fad - see the Specifications in the middle of the page. The 60W, 100W and 120W PSU have the supported sizes. And this is not the only eshop that has them.

You can definitely manage, but I was trying to keep it as small as possible. For 159x99x38mm PSU you would have to use PSU2 setup (129x99x38mm version described in Instructions - Frame) and make all rods parallel with X axis 30mm longer. That means threaded rods for legs would have to be M8x210mm 4 pcs, X axis threaded rods M8x295mm 3 pcs and X axis smooth rods dia. 8mmx285mm 2 pcs. For Y axis it will remain the same - threaded rods M8x265mm 2 pcs and smooth rods dia. 8mmx245mm 2 pcs. The distance between Z1 and Z2 would be 160mm. The distance between Z1,2 and front legs will stay 128mm.

My only concern is about Arduino and RAMPS. I am not sure if such long PSU would have mounting holes close enough, so the PCB mounting can still hold electronics on place.

Thank you so much for the link :D
With this kind of supply, I guess I will be able to add easily some LED and a 100x100 hot bed (I already saw that size on an italian website).
Just bought the rods in a local warehouse. Still need some stuff to build this tiny/useful machine.
And btw, wheels and legs would be an awesome upgrade :p

You are welcome. Check the heatbed first. There are some 100x100mm beds that have significantly higher power consumption. I found 50W or even 70W. But with 100W PSU it should not be an issue. Also the mounting holes may be in different position.

Good luck and send pictures! I would like to see your upgrades.

Aug 29, 2015 - Modified Aug 29, 2015
thorgal - in reply to Zakattacks

Sorry, I think they just have wrong dimensions in the package description. MK1, MK2A and MK2B are only 200x200mm as fas as I know.

Can you post some test prints? Love to see what sort of quality this can produce.

Trying to put here some examples. My favorite so far is treefrog: http://www.thingiverse.com/make:155032
For more see the Thing Info page.

by thorgal

I will try later this week. Do you have any suggestion what shall I print?

Thorgal, Question for you. If I try a 40 tooth pulley (Diameter slightly less than 32mm) Is there room for it on the X axis? 30 Tooth would be about 22mm if i remember correctly, could be another option. It looks like the Y axis has room...

For 30T or even 40T pulley X1, X2, Y1, Y2, Carriage and Frog would have to be changed. I'm sorry, I left no room for such upgrade because I was trying to make everything in line and compact.

By end of August I will get 28BYJ-48 motors with 1/16 reduction gear instead of 1/64. I am going to test them and I will let you know about the result. That may solve the problem with speed and it is going to be much easier than changing so many parts.


I am building one of these for my classroom, it's a great design. I have a question about the motors. The 28BYJ-48 seems to come in two flavors, 5 volt or 12 volt. I would have guessed that you would use 12 volt, but I see there are other designs that use the 5 volt one. Does it matter? Which do you use?

In the video, you can read 5v on the X axis stepper.

I see. OK, but I still wonder if 12V would be better for perfrmance and longevity. From what I can see they cost the same.

I am using 5V but when changed to bilinear they are actually 10V. 12V 28BYJ-48 motor were quite expensive, when I was looking for them. 12V motors would require more current and are going to be stronger. In theory, they should run cooler, but as I never had chance to test them. I cannot tell for sure.

I might give them a shot. I can get either from Adafruit for the same price. I know I can do better on ebay, but I distrust the sources.

Aug 29, 2015 - Modified Aug 29, 2015
thorgal - in reply to mwalimu

Sobo84 ran into a problem that some 12V 28BYJ-48 have different mount with four holes. If this is also your case, please try use models from here http://www.thingiverse.com/thing:981794

ToyREP Stepper Motor Cooling
by thorgal

The Adafruit steppers are a perfect match for your original model. I have them all mounted and ready to be wired up. The only problems I am having are of my own making. I wanted to use gt2 pulleys, as I have an abundance of gt2 belt. The pulley I made for the Y axis works wonderfully, but not so much for the X axis. I think my efforts to refine the pulleis went to far and I have to try another. I'm also going to try this http://store.cutedigi.com/cnc-kit-for-arduino/ as a controller. I have to build a circut for the heater and thermistor, but that is not difficult.

However, Ischool has started and I have inherited some new responsibilities and my grand daughter is (as we speak) making her way into the world, so I'll have to put this aside for a bit.

Did you have to hack the Adafruit steppers? or did you leave them unipolar?

Hey, huge fan of the printer. I'm working on my own build now, I'm just having trouble sourcing some parts. The power supply most notably. Any tips for those of us stuck in Americaland?

I'm glad you like it ;)

I cannot help you with stuff available in your country, but the PSU I have is similar to this one: http://www.aliexpress.com/item/New-Arrival-AC110V-220V-to-for-DC-12V-3-2A-40W-Voltage-for-Transformer-Switch-Power/32305327778.html

It have different mounting holes, though. That I can adjust in few days. Just send me their position.

If you are not fond of stuff bought directly from China, try to look for 12V 40W LED PSU in US. If you will find anything that would fit somewhere between 111x78x36 and 129x99x38mm, send me the datasheet and I will prepare new cover, no issue.

The last possibility is to use common notebook PSU. For that I can prepare some socket mount. That would be also interesting upgrade in which I'm willing to participate.

This will fit in the printer, but it is smaller than what I used (if the size in description 90x70x35mm is correct). I am not sure about mounting holes and definitely there is no cover designed for such small PSU. But if you can do some adjustments to files that are available, this is possible to use.

You are welcome. This one should work fine. Don't forget to use the longer set of rods.

ok. Thank you.

Comments deleted.

I've got tons of notebook power supplies around. I think you said a theoretical heated bed would need 80W probably max 120? I'll look around, I might have something in that neighborhood.

For clarification:
My calculation was such, that if for 200x200mm headbed 144-166W is required to reach 110°C. Than for 100x100mm roughly 36-42W and for 125x125mm up to 64W should be just fine for possible future PCB heatbed, that is not designed yet.

Hotend is quite sure. It have consumption c. 40W at 12V when preheating (If you will use 6R8 resistor instead then at 12V 22W is be just fine) and just 9-16W when hot end is preheated and machine is printing.
As I would recommend 40mm fans to cool down the X, Y, E motor and hotend, 4W more should be good idea.
The motors have consumption 1.2-1.8W each and I think Arduino is runnig from USB power supply.

So 44W (or 40W PSU with voltage set to 11.5V) is just fine to preheat the hotend while fans are running. If you are impatient and want to move the motors while preheating, 10W more is good idea. Means total 54W in worst case scenario for the machine as it is now. It will consume only c. 30W when printing, so there is really no reason to look for bigger PSU.

And if anybody ever will make PCB heatbed (I'm pushing my friend, but need him for some other project right now), than the up most limit for printer with 100x100mm heatbed is somewhere around 96W and 125x125mm heatbed 120W at 12V. But If you will always preheat hotend first, than the PCB, and then start the print, you can go as low as 70W respectively 95W.

So make up your mind, what is the best set up for you.

You know about this? Might make it easier on gears.

28BYJ-48 - parametric timing pulley


28BYJ48 - timming puley

Thank You for this link. I am aware of the one for NEMA 17 motor not this one. Do You have personal experience with this?

I had tried using it to print gears for GT2 belts a while back, and the teeth didn't grip the belt well enough. T2.5 should work.

That is pity, but with GT2 it is sort of predictable result as the teeth are really small. It would require 0.25-0.30mm nozzle and very fine layers of PLA to print it. That is also the reason, why I did not even bother to prepare it. Mine T2.5 pulley is not parametric, but it is working (for me at least). It is designed with 0.15mm clearance for overflow (as all other parts). Definitely you can try the parametric one if mine would not work for you. Make it T2.5, 20T, 6.5mm for belt, 7.5mm total height with flanges and 2.25mm distance from pulley to motor to fit it into printer.

I was thinking about making this printer parametric, but have no skill in OpenSCAD yet, so rather chose the easier way for me. May be I will give it a try one day as speed upgrade with bigger pulley is on the todo list :D

First going to test stepper motors with 1:16 reduction gearbox. Already ordered them from China. Found source $1.3 each so even cheaper than the 1:64 I'm using now. If they will be strong enough, the printer can run up to 4 times faster as it is.

Keep us posted on the 1:16 gear steppers. How are your current steppers holding up? Extruder? I've been waiting to see if you solved the heat issues.

With 1:16 geared motor I was not successful. They are barely moving the printer. I did not find correct specifications, but what is stated on some web pages is not true. This motor do not have 30mN/m!

So 40T pulley along with all required changes is back in game.

Comments deleted.

Geared extruder is designed so the motor have similar turning speed as X,Y motors when printing (0.5mm nozzle, 0.35mm layer). I sort of solved the heat issue by reducing the X, Y speed to 12.5mm/s (15RPM), adjusting current and reducing acceleration to {150, 150, 1, 17} and rising jerk to 5.0, 0.01, 0.1. With that I was able to finish whistle in 1 hour and 45 minutes but still was not happy about the temperature (worth noting that interior temperature is here close to 30°C now). So I glued additional 40mm fans close to the X, Y and E motor, to be absolutely sure. Seems it is safe to print 15mm/s and move 25 mm/s because when I was looking for these speeds the machine was making calibration boxes for more than 6 hours in a row without an issue. Than I was busy with build manual so last week machine was disassembled and not printing at all.

I will try to rise the acceleration a bit, because it is quite funny to see the machine accelerating, decelerating and retracting now :D. Than l am going to feed it some really long print and make another crappy video of current setup with my cellphone. Any suggestions of a model to print?

1:16 motors should come somewhere around end of August / beginning of September.

Very, very, hot!
I made it !

Pictures please 8-).

This nice but can you upload the ardiuno config file also please

It is there (for some older version of Marlin), but use it with caution. Also made some comments in Instructions, because it is not as easy as just coping the Configuration.h. Each motor is behaving differently and will allow different speeds.

Thank you i know i have to make adjustments, but if i have the basic i can work with it to start. Thank you. Super great project.

I have bought same steppers and didn't succeed. Now with your files i can built my kid small printer. Thank you. !!! :)

You are the most welcome ;). I would like to see the result if possible.

Just sorry for the missing BoM. It will take me a bit more time. But if you are experienced, you can do without it.

Interesting -- I wonder how long the motors will keep up even under low speeds in the long run.

You can probably drop the two top bearings for the threaded rods without any problems. I hear having those generally cause any wobble in the rod to act on the X axis instead of just having the top of the rods wobble a bit.

Jul 28, 2015 - Modified Aug 2, 2015
thorgal - in reply to ZeAllan

Only time will tell. Fans should help too. I will try to fetch some more 40mm fans and do some stress testing.

Well, the wobble is quite visible, but still it is probably lesser evil than put the whole load of X axis and extruder on the shaft of this small motor. On the outside it looks like sturdy piece of metal with dia. 5mm but on the bottom is something as thick as a needle.

Edit: You were right. The print quality is better without the upper bearing. Not only because of the wobbling but cheap Chinese 608ZZ were pulling the Z axis up and down while turning. It will be the default setup from now on.

Actually you can probably have the best of both by putting a bearing above the motor, but below the x gantry. Then you could still take the weight off of the motor shaft, while not binding the threaded rod causing Z wobble.

Very good thinking. Unfortunately I found out that it were the 608ZZ bearings from china, that were causing not wobble but shifts up and down in Z axis on mine printer so I rather removed them completely.

Still for someone with better bearings this may be a solution worth preparing. I will put it on the list. Eventually you can use both bearings - above and under X gantry :D.

Good Job!

Instead of pulleys on the opposite end of the axis, have you thought of using another stepper there tied in parallel to axis driver?

Jul 28, 2015 - Modified Jul 28, 2015
thorgal - in reply to madmike8

Thank You.
Well I am not sure if I get your idea right. Two stepper motors on each axis running simultaneously the same belt? Well, ball bearing is still cheaper than 28BYJ-48 :D, and one stepper is strong enough to pull the carriage or frog and it won't have any benefit on maximal speed either.
If you mean one motor pulling the timing belt and another one pushing carriage on the timing belt, that would actually double the speed but half the precision and make twice that big deviation. Good idea, but never thought of it because I was trying to avoid motors sitting on carriage and frog. Instead, in next revision will be 40 teeth T2.5 pulley. It is easier and cheaper solution with same result and lesser deviation.
Edit: On a second thought, two parallel motors with 40 teeth pulleys may do 50mm/s without overheating ... interesting ]:-D

Yes, that's my thinking. running 2 per axis in push pull. I can get the motors @$1.50 each. Since you can't use the drivers full power with these motors. doubling them would double the power, reduce internal gear backlash, maybe reduce heat, and wear on motors. maybe even for the extruder.

I definitely want to see where you take this design.

Well, for direct drive extruder I was thinking about using two steppers going opposite directions, running the filament in between of them, to double the force and make them run colder. Somebody was already describing such solution in comments under delta extruder.

For movements though, I am really afraid that the precision will suffer. The printer needs to speed up, that's for sure. Maybe I will give it a try when the to-do list of improvements will be closed. Thanks for the suggestion anyway.

Well that makes the two of us :D Yesterday, when it was published I thought it is almost done :( Now after six more hours of printing with it I see, it was just a beginning. My priority now are fans for X, Y and E motor. That will help a lot - even to speed it up.

Great project! What steps does it work, 1/16?

The motors as bipolar have 32 steps per turn. My motors have exactly 1:64 reduction gearbox, so the total amount of steps per one turn of the motor shaft is 2048 steps. I am using DRV8825 stepper drivers set to 1/16 microstepping. It can even work with 1/32 microstepping but I was trying to do the instruction more universal.

Thanks for the Information.