2020 DRAWbot Drawing Robot

by wsolstice69 Jun 11, 2017
Download All Files

Thing Apps Enabled

Please Login to Comment

I don't think it matters, but the one I used looks like the I type.

I finally have everything working but having issues with the micro servo for the pen. I have the macros setup and the micro servo does go up and down. But the servo movement is very small and not enough to really raise the pen off the paper. Is there a way to increase the movement of the micro servo?

The second issue is that the servo I have does not have the torque to move the pen even the small amount of movement. Is there a recommended servo I should consider?

Yes, you can increase the servo angle in the MI Extension pop up window. See attached. I suggest changing from 30 to 60 degrees.

I am using M03 S090 for up and M05 for down and still getting very small movement. Changing the S# has no affect. I tried a second servo and that one does not work at all. I suspect I may have a wiring problem.

Update: I used a second Arduino to test my cable and my servos. Both work fine. I am connecting to the CNC shield's 5V and GND correctly and the servo signal pin is connected to Z+. I am still getting just a small movement in the servo (may a degree or two) when I use the C2 and C3 macros. Is there something in the firmware I need to configure?

Update: I am using grbl v1.1

I have been using "GRBL 0.9i with servo motor support" without an issue. Make sure that the (orange wire) is attached to the White Z+ pin and the red and brown are attached to the 5V and GND pins. Note M03 S090 will only move the servo a couple of degrees, try M03 S90 if you want it to move more.

Here is some more info that may be helpful, however I did not make any changes to these settings from the default.

GRBL 0.9i with servo motor support.

Use the PIN D11 to drive the servo.
Use the commands M03 Sxxx (xxx between 0 and 255) to rotate the servo between 0-180.
The command M05 turn the servo to zero degrees.

you can change the pulse duration in the file spindle_control.c:

define RC_SERVO_SHORT 15 // Timer ticks for 0.6ms pulse duration (9 for 0.6ms)

define RC_SERVO_LONG 32 // Timer ticks for 2.5 ms pulse duration (39 for 2.5ms)

//#define RC_SERVO_INVERT 1 // Uncomment to invert servo direction

If you want to have the servo working from 0 --> 180 degrees change RC_SERVO_SHORT and put 9, RC_SERVO_LONG and put 39
If you want invert the servo mouvement uncomment the line above.

Hurray! I have it working. Moving back to version 0.9i was what I needed to do and I needed to invert the servo. Everything is working great although the stepper movement is a bit slow. Thanks for your help and a great project. I made some minor modifications so I could use my idler pulleys and I will post my changes along with a video in the next few days.

Thanks for this Thingi!
My Drawbot works fine.
But i cant make an Gcode,
first i Trace the Bitmap and select Object to Path.
This works but MI Grbl makes no Gcode

Sorry for my bad English

I noticed your delay is "0,1" with a comma instead of a decimal place. You might try using a decimal place like this "0.1"
I suspect the GCode processor doesn't know what to do with that delay and is creating an error.

Thanks for your Answer,
but it doesn´t work.
It changed automatically from a decimal place to comma

Are you seeing any error messages? I also suspect that your language settings may need to be set to use "." rather than ",".

I see no error message only the popup "servo controller working please wait"
Language is now in English but have the same problem

Have you been able to use any other drawings? Send me your drawing and I will attempt to recreate the issue.

I try many Drawings with the same results.

Now I Tested it with my Old Windows Xp Notebook and it works fine.

Hi and thanks for this awesome thing! :)
I managed to get it working but I have a problem with the size it draws.
When I set up an A4 sized document in Inkscape it will draw something that's much smaller and in the wrong orientation.

Do you have any idea what I could change to fix this?

When I set the document size to A3 it doubles the size of the previous drawing on A4 but it's still only 1/6 the size of an A4 paper...

Make sure to edit the "$100 x steps/mm" and "$101 y steps/mm" under Settings/Firmware settings using the Universal Gcode Sender. The values that I am using are 80 steps/mm for both x and y (steppers 1.8deg 200 steps/rev, microstepping 1/16, pulley teeth 20). You may need to experiment depending on the capabilities of your stepper motors, the stepper drivers and the pulleys. You can use the calculator at https://www.prusaprinters.org/calculator/ to help.

Thanks for your fast answer. Steps and axis directions are correct and correspond to this image:
If I send 10mm to each axis it draws exactly 10mm for each axis in the right direction.

The problem is because of Inkscape. I analysed the generated gcode and if I create an A4 document in inkscape which has max. 297mm it generates a gcode file with max 62mm!

Do you have a template for inkscape in the size of an A4 paper which I could open and check the settings?

I attached the generated gcode of Inkscape in which you can clearly see that the output mismatches with my document settings.

I also had the problem with this particular Gcode file I sent, that it draws beyond my home point (x0y0) so the motors are blocking because it sends the axis to (x-5y-5) or similar.
Also the SourceRabbit Gcode Sender stops sending the gcode in the middle of the picture if it's a big one. Did you also have this problem?

When you create your drawing make sure that you draw it all above 0,0 in inkscape, this will prevent any negative values when creating the gcode.

I have not had any issues using Universal Gcode Sender, maybe it will work better for you for longer drawings.

As for Inkscape exporting a gcode file that is too small, I was able to confirm that this does happen with Inkscape 0.92, however I did not notice it with Inkscape 0.91. I will need to see if there is a solution for this other than just scaling your drawing before converting it to gcode.

Hello again. I have yet another problem. I managed to get the machine to work and I installed the 3 jumpers under each stepper driver. I have set the machine to move 10mm but it moves 3cm. Am I doing something wrong? Also, Inkscape does not work when I try to export the drawing using the MI GRBL plugin. I have tried different versions of Inkscape but none work. Do you know a work around for this? Maybe another plugin or program. Thank you.


Make sure to edit the "$100 x steps/mm" and "$101 y steps/mm" under Settings/Firmware settings using the Universal Gcode Sender. The values that I am using are 80 steps/mm for both x and y (steppers 1.8deg 200 steps/rev, microstepping 1/16, pulley teeth 20). You may need to experiment depending on the capabilities of your stepper motors, the stepper drivers and the pulleys. You can use the calculator at https://www.prusaprinters.org/calculator/ to help.

If you get an error when trying to export your gcode from inkscape there is apparently an error with newer versions of python. The fix is the edit the "servo.py", change the line 3085 to the following:

doc_height = self.unittouu(self.document.getroot().xpath('@height', namespaces=inkex.NSS)[0])

Thank you for resolving my problem! Another thing that I wanted to ask is if there is any way to add stoppers and make the machine find the origin on its own. Do you think the stoppers are necessary?

End stops do not really seem necessary, everything is drawn relative to the pen location at startup or wherever you reset the 0,0 in Universal Gcode Sender. You are more than welcome to try adding something if you want.

Alright. Glad I asked. I managed to get Inkscape to work, but I do not understand how the program exports the drawing. To explain, the program makes some marks (from 0 to 100) after the export is made. If I make a drawing that is 100x100 the side and the mark do not match. Hope you understand. For example I want to draw on a a4 page. How do I set up the workspace and make the export so that the drawing matches with the drawing in the workspace?

I also wanted to ask: how do I make the robot draw faster? When I export from Inkscape the max speed for the Y axis is 4000 and does not let me go up.

Caza, the settings for speed and acceleration you are looking for can be found under the Settings/Firmware settings using the Universal Gcode Sender.

As for Inkscape, check the Document Properties, make sure the document is set to mm and the paper size is set to a4 for example. Check the document under Thing Files for more instructions.

Alright. Will try and see how it works. Thank you

Comments deleted.

Hello , Happy new year,

I built it also and i have same Adisma problem " the movement on X,Y axis is very hard and with or without belt, axis movement are tight.
Is it possible to use any oil for lubricant ?
Is it any way or design to use the bearing for sliding the axis on 2020 profile ?

I used small 3mm wide strips of Polyethylene Film Tape (drawer glide tape) on the top and bottom sliding surfaces for the X carriage parts and on the front and back of the Y carriage. The X and Y carriages should slide easily if you push then by hand without the belts attached. If it is too hard to move, maybe you over tightened the screws holding the two halves of the sliding components together. It is possible that your printer Z height is slightly out of calibration. Maybe add a thin card stock spacer between the two halves. If they are still too tight you can file or sand down the inside edges until it slides easily. A dry teflon lubricant could also be used on the 2020 extrusions. Let me know if this helps.

Thank you for quick replay
I will try your idea step by step, if possible please send me a picture of polyethylene Film Tape (Drawer glide tape)!.

Hello, and happy new year.
I finally built it, but the movement on Y axis (the one on the axis with the pen) is really (really) hard to move once belts are tight.

Any idea how to solve it ?
Note that without belts, it's very easy to move.

There should be some resistance due to the stepper motors. If it is really hard make sure to tension both belts the same and the carriage is not binding. Also make sure that the pulleys all move freely.

Thanks, it was really hard. I replaced every pulley, it's now better. But I still have issues.

When I'm moving on X or Y with gcode sender, I have no problem, it moves smooth and accurate.
But whenever I'm trying to send gcode, belt jumps teeth on motor's pulleys. I put the same feed rate in gcode sender than in gcode file (F1000). How would you solve this ?

Thanks again

See my reply to khanahmadi, let me know if that helps.

I'll try Polyethylene Film Tape, because without belts everything slides very easily.

Hello! Could you please explain what you mean about the three jumpers beneath each stepper driver? My board didn't come with little jumpers for this and I'm concerned about powering this thing on without them. What is their purpose in this instance? Thanks so much.

The jumpers set the microstepping for the stepper drivers. It is OK not to use them, however you may need to adjust the x and y steps/mm values in the GRBL parameters. My may get smoother curves if you use the jumpers.

Thanks so much for the quick response! I will probably be back in touch once I start assembling and testing! Thanks, again!

Could you post a picture of the electronic please ? CNC shield mainly, and you connect everything together ?

Hello. I managed to get the machine to work, but the Z axis has a problem. When I press for ‘up’ it moves continuously and when I press ‘down’ it stops, meaning that it does not move one step up and one down as it should. I have attached a photo of the connections, just to clarify: the brown and red connections are one row of pins down from the orange connection. The Z motor is MG90S. What could cause this problem?


Make sure you are using the macro to control the Z axis. When you first setup the servo, do not install the servo horn, power up the drawbot and let the servo center it self. Test the servo motion using the macro's (see attached image), now install the horn and you should be good to go.

I am using the commands in Macro, as instructed. When I press C2, it moves continuously up and when I press C3, it stops.

Prints started.
External pieces ordered.

Wait and see !

Comments deleted.

Bro can you give me all parts.. And user manual i will pay

Sorry I am not set up to make kits, you should be able to find all the hardware on Amazon.

Hello. Regarding the A4988 stepper drivers, I have found two models. One is red and one is green. The difference between them is the resistance ( Ω ): red=0.2, green=0.1. Which ones should I buy?

I used the red ones.

Alright. Thank you, sir.

Hello. I have two problem. (Keep in mind that I have no knowledge of programming)

I managed to finish my machine but I do not know how to modify the config.h file in Arduino IDE and most importantly what.
I used this tutorial and managed to compile grbl. What I don't understand is what the second tutorial which says that is for reference (For windows) is for.

So the two problems are how and what to modify in the config.h file; and what is the second tutorial for.

Hope to hear from you soon.

Edit the your "config.h" with a text editor such as notepad++ (On a Mac, Arduino libraries are located in ~/Documents/Arduino/libraries/. On Windows, it's in My Documents\Arduino\libraries) to enable CoreXY.

Instructions for compiling the grbl firmware https://github.com/grbl/grbl/wiki/Compiling-Grbl. Just use the first part of the tutorial steps 1-5. The other parts seem to be for someone that does not want to use the Arduino IDE software.

Hello. I am back after a problem I had with the Arduino and the CNC Shield. I mistakenly plugged the stepper drivers wrong in the shield and that lead to one of the black condensers to pop on the CNC Shield. Now I have a new Arduino UNO and a new CNC Shield. I managed to modify the config.h file to enable coreXY and succesfully upload the software onto the Arduino following the instructions in the link provided. Now I am in the G-Code Sender and was able to open and make to modifications in the Macros tab. The problem is that whatever I press it says "GRBL has not finished booting". I attached a picture of the connections on the CNC Shield and the config.h file that I have uploaded on the Arduino. What might be the problem? It is driving me nuts. Please respond as soon as possible. Thanks.

I managed to get it to work but only the Z axis is moving. I cannot make the other two work. Is it the wiring or am I missing something?

The wiring looks OK, check the specs for your stepper motors to see if you need to adjust the current output by the stepper drivers.

Hello. I am planning on building this robot but I have already bought some different components and would like to ask if they will work. Micro servo: MG90S, GT3 belt+GT3 pulley (25mm total diameter and 10mm hole diameter), Usongshine model:17hs2408 stepper motor. Thank you.

The servo should be OK. The stepper looks like it may not be tall enough, you could try printing some spacers/feet for them to make them taller. As for the belts and pulley's, I am not sure from your description of the pulley size. I am using 6mm width GT2 belts and matching GT2 pulleys with 20 teeth on the stepper motors.

Got it. Sorry for the confusion. The width of the GT3 belt is 10mm and the matching pulley has a total diameter (the top circle) of 25. I'm specifying this because I saw in the pictures that there is not a lot of space in the corner where the pulleys go and these ones seem to be a lot bigger then the GT2. I attached a photo showing pulley+motor. What I'm concerned is if the printed parts will work with wider belts (I'm pretty sure that some will not. Especially the printed pulleys). Hope everything is much clearer now.

That does look too big, also the 10mm wide belts will be too wide :-(

Alright. I decided to order GT2 pulleys and belts. One problem that I have with the software installation is that I cannot understand how to modify the config.h file. I managed to install the default GRBL on the Arduino with no problem. From here I am in unknown territory. Another one is calculating the size of the frame. I want it to be the size of an A2 sheet of paper (420 x 590).

The travel distance on the Y axis will be about 120mm less than the length of the Y axis frame length. The travel distance on the X axis is about 150mm less than the length of the X axis frame length. (420+120) X (590+150). You may want to add 10 or 20 mm to that just to give you a little margin as well.

You will need to add GRBL as a Library in the Arduino IDE, then edit the config.h in the Arduino libraries folder.

Nice. Now I understand except for the Y axis carriage. Is it 25mm less than the Y axis? Another question that I have is: Does the axis have to be that specific profile or can I use a normal one (square) and just drill the holes and use long screws with nuts on the other side? I feel like you used that one because it is easier to assemble but does not have a functional purpose. (Thank you for your help)

Bro, everything else is great except pulley... You showed teeth pulley in pic but plan pulley in design and there is no space for spacer after adding two pulleys... I cant go back from now having least experience and first trial of my life. Plz help. My id [email protected]

I think I used these printable GT2 Pulleys https://www.thingiverse.com/thing:1999234.

GT2 pulley 20T 3mm and 5mm bore
Comments deleted.

Hello wsolstice69,
Thank you for your wonderful Plotter design. I have finished install my plotter using your design (with bigger frame version). The manual test using Universal G Code Sender is working well, both Xand Y Motor are working with correct movement and also the servo is working using macro function in the G Code Sender App. However I got a problem printing with gcode file (either your attached gcode file or some my other gcode file). The plotter always stop in the middle of printing process ( printing could not be finalized and the G Code Sender App is freezing). I have tried with several gcode file with the same result (stop in the middle of the process).
I am using Application and firmware as suggested. I did not find any problem or error message during compiling and uploading the firmware (Grbl servo) as well as during the installation of Universal G Code Sender App. in my computer. I am using Mac with El Capitan Os X.
Do you have any advise to solve this problem?
Thank you for your help

It could be a number of things, either hardware or software. Try replacing the USB cable. Make sure that your power supply is giving 12VDC at at least 2A. Try another computer to see if there is a software issue. Try simple drawings like a box, then work up to more complex things to see if you can find the root cause.

Let me know if you still have issues.

Thank you for your advise. I have tried to draw simple think like a box and it is okey it could draw until finish. The power supply is also okey.
Now I am trying to reduce the baud rate and I could finished print one of your file (text drawing) in 4800 baud rate but your other file ( conbi picture) still not able to finalised in printing.
I will try with other computer and shorter USB cable ( now I am using about 1.5 meter USB cabel since the distance of my plotter with my desktop). Hopefully the problem will be solved with shorter USB cable, and will let you know.
Thank you.


After using another computer ( Windows OS) with also shorter usb cable, my plotter is working well now.
Thank you for your advise.

Hi wsolstice69,
I'm french , so sorry if my english is bad. I've beggining to print the parts, but i have a question about grbl-servo-master, how can i put that in the arduino software ? to compile in may arduino uno.
thanks for the help

Please check the instructions at https://github.com/grbl/grbl/wiki/Compiling-Grbl

Make sure to edit the your "config.h" in the /Arduino/libraries/grbl folder to enable CoreXY.

Let me know if this helps.

Hi wsolstice69,
Can you help me?
My plotter is printing in 45 degree angle? What is causing this can i solve it?
Thanks for the help.

Try flipping one of the servo motor connectors over. The X motor connector has black towards the middle of the board and the Y motor connector has blue toward the center in my setup, note the X motor is on the right side and the Y motor is on the left. I did not use any inversion in the GRBL settings, you may have set it to invert the X or Y. I usually orient the drawbot in landscape so both motors are on the left side, and set the lower left corner as 0,0.

Let me know if this helps.

Unfortunately I was not lucky. I've changed the steppers motors, but changing their linkage changes only the axis orientation.
When i changed the motor x and y position the same thing happened.
The sketch annexed shows the results.

Make sure to define CoreXY in the 'config.h' for the GRBL firmware. I have included the one I used as well as some updated pictures that may help you. (Note: Both motors are plugged in the same way, and I am using GRBL parameter $3 = 2 to invert the Y motor so it moves the correct direction)

Let me know if this helps.

I am attempting to figure out how to connect the micro-servo to the shield. From the shield picture it does not appear to be a simple plug-in and requires some special wiring. Would love any suggestions on how to connect the micro-servo. Also the the shield picture appears to indicate that the connectors for the X and Y motors are the same while the instructions on the main page indicates a different connection. Any feedback on this would also be appreciated.

I so dumb! LOL
It's my first time using arduino so i have so much to learn.
I just edited the config.h in the wrong location! This was the reason of the core xy arent not working.

Now it's woking fine.

wsolstice69, Thanks for this wonderful project and all help.

You are welcome. Please take some pictures and post them under the I Made One.

Comments deleted.

Did you remember to enable CoreXY in your config.h file?

This is the instruction from the description:
"Make sure to edit the your "config.h" in the /Arduino/libraries/grbl folder to enable CoreXY"

I just edited the wrong file. Now it's woking.

Great. Anything you have a problem with someone else will also run into so all comments are good.

If you’ve tried to use the modified Inkscape laser engraver plugin mentioned in this blog post about building an engraver, you may have run into an error trying to do the export. It’s something like “AttributeError: ‘module’ object has no attribute ‘unittouu’” or “unittouu not part of inkex module“. Here’s the fix.


Thanks kaoalex.

Apparently this is an issue in Inkscape version 92

The fix is the edit the "servo.py", change the line 3085 to the following:

doc_height = self.unittouu(self.document.getroot().xpath('@height', namespaces=inkex.NSS)[0])

Thanks for sharing this excellent project.
I just finish the hardware and will start the wiring and software.

I had some difficulty in stretching and locking the belts. To solve problem this i drew and printed this part. I hope this help someone.

Core X-Y Belt Tightener for 2020 DRAWbot
by kaoalex

The Thing Details of https://www.thingiverse.com/thing:2349232 were pretty helpful in setting up the electronics and software for my build of this.

Drawing Robot - Arduino Uno + CNC Shield + GRBL
Comments deleted.

Hi, i have build one, then I am looking for a holder for the Arduino.
Voila! There is one! (in the December Files)
Awesome. Thank you for the very good Description and Design and all..
When all is ready, i will post some Pictures!
Again many Thanks to you!
And a Happy New Year!

Thanks, hope you enjoy using your 2020Drawbot.

Do you still have the openscad files?

I am not planning on releasing the OpenSCAD files at this time, however if there is something you want to modify, you can use TinkerCAD or any of the many other cad programs to modify the STL files directly. If it is a minor change let me know and I can try to do it if it makes sense. If you do make a modification please post it as a remix.

Thanks for your interest in this design.

That's frustrating.

I really like the design, but my extrusions are 40mm high, which means changing most the things in a way that's not do-able by editing the generated renders. Probably doesn't come under "minor change" either :)

Ah well.

Unfortunately it wouldn't be an easy change even with the OpenSCAD files, I didn't make it all that parametric to begin with :(

Your PLA runs smoothly over the extrusion? Does your carriage loose tightness after a few "prints"?

I am not running the PLA directly against the 2020 extrusion, I use UHMW Polyethylene Film Tape (drawer glide tape) between the PLA and the extrusion. I have not seen any additional "looseness" over time so far.

Hey there! I am attempting use your configuration with custom software written for a different micro controller.
I was wondering if you had a build guide or any helpful info that I could use in my endeavor?

Thanks in advance!

The 2020DRAWBot frame should work with any micro controller capable of controlling a CoreXY gantry. What issues are you having I would be happy to help.

Alright. I'm having some minor issues at this point. In particular, the SG90 micro servo doesn't appear to have enough torque to hold up the pen spring on the metal rods. It will push it up, but when the servo gets turned off, the pen gets pushed back down onto the drawing surface by the force of the springs, pushing the unpowered servo back down. I've tried using different combinations of spring lengths without much success. Any ideas?

That is how it should work, however at the end of your drawing you should leave the servo powered with the pen in the up position, then you can either remove the pen and cap it or click the button on a ballpoint pen.

I'm not having any specific issues, as much as I was hoping that there was some sort of instructions on how to put the parts together. Specifically, the pen holder seems like it might be odd to figure out. That being said, I did read the .txt file you provided quite carefully and am just waiting on all of the parts to build this thing. Any additional build pictures you might have lying around would be super helpful.

I don't foresee any sort of incompatibilities with the microcontroller I'm going to be using (TI MSP Line) per se. It will just be a challenge to code something that interprets G-Code and controls the CoreXY gantry accordingly. Which is the main point of the project. In any case, I'm glad to see how active you are on your account.

Hi. Nice work. Where can i find the example in video? Can you post the gcode?
Thanks a lot

Thanks, I just uploaded the gcode for the VW. It was converted to an SVG then gcode from a line drawing I found on line, but can't seem to find the location of the original drawing to give credit to the artist.

Hi. Have you a link?

It's under Thing Files.

I plan to build this. But I'm a complete newbie on this.

Do you have any build instructions ? Thanks

I would like to see your build once it is complete. I have not written anything up yet, but let me give you some tips.

Print the required number of parts, see the Thing Details for this, I used PLA, with a 0.2mm layer height and 3 layers on the sides, top and bottom, 30% infill should be sufficient. You will probably need to use support on the carriage and xyjoiner parts. Obtain the hardware and electronics, steppers, micro servo etc.

Cut your 2020 extrusions to the correct size or order it cut to the size you want. It is important that the X rails are both the same size and that the Y rails are the same. This will ensure that the DRAWbot has square corners.

It is important to ensure that the carriage and xyjoiners slide easily along the rails, if not you can file or sand down the little pads so they do. To reduce friction, noise and wear, I used small strips (5-8mm wide) of low friction tape on the pads on the xyjoiner and carriage, see the Thing Details for more info on this and where to get it.

Attache the stepper motors to the motor mounts, mount one toothed pulley facing up and one facing down. I set the up facing one on the X motor and the down facing one on the Y motor side. Assemble the frame and ensure it is square, before attaching the belts make sure everything slides easily. The X motor belt goes on top, and the Y on the bottom.

See how far this gets you, let me know if you have any questions. Once you get this far let me know and I can give you more instruction.

Thanks for this.

I'll first try to get all not-printed parts and come back asap.

Excellent idea. I have a drawbot but the y axis goes up and down when moves. I think this is a good solution for making drawings in a real plane. Congratulations

nice things...
could you share video ?

Uploaded a couple videos

thank you, I want to make it for my laser engraving machine...I will try thanks again for share...

You are welcome, which laser are you planning on using?

I used this


it died my mistake drive more then 2 Ampers...but I order again... I planning 50cm x 50cm work area and I want to use core xy

I engraving wood for gift things..., cutting balsa, 3mm plywood for my RC airplane also cutting card board

Here are links to sources for many of the parts

Uno + CNC + Stepper Drivers + USB Cable $19

12V 2A Power Supply $8

Belt + Drive Pulleys (other pulleys are printed) $11

Stepper Motors (2) $26

Servo $5

2020 Aluminum extrusions and screws will add another $20. I also assume you have Prime free shipping. EBay has many of these items at similar prices.

Total is $89. I forgot to add the cost of extrusions and misc. hardware on my previous comment. I have plenty of hardware so I did not have to order any. Even if you have to order everything, you should be able to hit around $95. I updated the estimate on my original comment. I haven't received the above items so I can't speak to quality yet but will update everyone when I get my parts.

Here's one option for buying the extrusions which costs $25 including shipping

If you buy two 915 mm pieces and cut one into two 450 mm pieces. Cut the other 915 mm piece into two 300 mm and one 280 mm. These sizes reduce your print area a small amount but allow you to build the DrawBot with just two 915 mm extrusions. Otherwise you will need the following extrusions, 450 mm x 2, 350 mm x 2, and one 330 mm for the pen cross beam (this part is missing from the listed parts)

This extrusion has 5 mm slots so you will not be able to use T-Nuts designed for 6 mm slots. I'm going to see if 5 mm nuts will work OK which would reduce the cost.

Good tip, the center part can actually be 275mm. This will result in a work area of about 300mm X 180mm.

Excellent, thanks

Do you have an STL file for the toothed pulley?

GT2 pulley 20T 3mm and 5mm bore

I like it!! I'm printing the parts for mine right now. I also ordered all the parts. Parts for the whole DrawBot came to $95 and can be found on Amazon.com