Build and Program an Arduino Drawbot




About: I am a teacher who sometimes makes videos.

This is a modification of an existing project, the Arduino Drawing Robot, that inspired me to modify, and create a set for my robotics class. These instructions have been created for my students to assemble and program their own Drawbots.

You will need the following tools:

  • Pliers
  • phillips head screwdriver
  • hair dryer or heat gun (optional)
  • drill (optional)

The following hardware is required: (it is possible these parts could be sourced elsewhere at lower cost and smaller quantity)

The following electronics are required: (most of these can be found cheaply on ebay)

  • 1x arduino compatible board, with short USB cable (12 in/ 30cm is ideal) (I used the uno r3)
  • 1x arduino prototype shield
  • 1x 100 uF electrolytic capacitor
  • 22 gauge jumper wire
  • 1x ULN2803 Motor driver
  • 2x 5v 28BYJ-48 stepper motors
  • Male header pins, preferably longer ones like this: 17mm header pins
  • 1 x SG90 servo motor - - this piece is optional, depending whether you want to be able to lift pen
  • 1x 5v power bank - the designs currently fit the power banks that are 5/8" (16mm) or less in thickness and 2.83" (72mm) or less in width. This is an example of one that should work: Elivebuy Power bank

The following 3d printed components are required:

Step 1: Prep Motor Mounts

For this step you will need:

  • 2x motor holders

You will notice that the holes on the side where the screws go through are a little messy after printing. Use the pliers to remove the excess plastic and clear it out. This will ensure the screws are able to fit through.

Step 2: Attach Motor Mounts to Chassis

For this step you will need:

  • 1x chassis
  • 2x motor mounts
  • 4x M3 8mm screw
  • 4x M3 hex nut

Attach the two motor mounts using the screw and hex nuts. You will notice that the motor mounts have holes that fit the hex nuts. You may want to press them in place using pliers.

As you secure the mounts in place, try to ensure edge of chassis and end of motor mount are aligned flush with each other.

Step 3: Prep Servo Mount

For this step you will need:

  • 1x pen holder/servo mount
  • 1x servo, with servo horn and screw

Prep servo mount:

  • Using pliers, break off the vertical support
  • Clean and hanging strands as shown in diagram, and clean any remains of vertical support

Attach servo horn - please follow instructions in the video to ensure it is attached correctly

Attach servo to servo mount

  • Push servo through back as shown in photo.
  • Tighten into place with the servo mounting screws. When tightening screws, be careful not to strip them as holes are tiny. If it is giving too much trouble, you could try opening them slightly using a drill.

Step 4: Attach Motors and Servo Mount

For this step you will need,

  • 6x M3 Screw
  • 6x M3 Hex Nut
  • 2x stepper motor
  • chassis + motor mount assembly
  • servo + mount assembly

Attach motors to motor mounts.

  • As you attach the motors, if you have trouble fitting screw through opening, you may need to clean it out a bit more.
  • Make sure motors are flush against the mounts.
  • Notice that the wires for the motors point upwards.
  • You may want to use pliers to hold hex nut in place as you tighten screw.

Attach servo+mount assembly to the chassis. The servo should hang off to the back of the Drawbot.

Step 5: Attach Battery Mount

For this step you will need:

  • 1x Battery mount
  • 4x M3 Screw
  • 4x M3 Hex Nut
  • Chassis Assembly

Attach Battery mount to the motor mounts. The hex nuts have fitted holes on the underside of the motor mount, you can press the hex nuts in place with the pliers.

Step 6: Prep Wheels and Bearing Holder

For this step you will need:

  • 2x wheels
  • 2x O-rings
  • 1x bearing holder
  • 1x bearing

Stretch O-rings to get them to fit into ridge on each wheel.

Push bearing and pop it into holder. Be careful not to snap PLA. If necessary, use a blow dryer or hot air gun to warm up plastic before popping bearing into place.

Step 7: Add Wheels and Bearing

For this step you will need:

  • 2x wheels with O-rings
  • 2x M3 Screw
  • 2x M3 Hex Nut
  • Bearing holder
  • Chassis assembly

Attach the bearing mount to the underside of the chassis. The hex nuts have fitted holes on the underside of the bearing mount, you can press the hex nuts in place with the pliers.

Press the wheels onto each motor axle, until they are as tight as possible.

Step 8: Prep Header Pins and Capacitor

For this step you will need:

  • long header pins
  • 1x100uF electrolytic capacitor

Use the pliers to break apart 2 sets of headers that are 5 pins long, and an additional set that is 3 pins long.

Trim the legs of the capacitor so that they are 1cm long.

Step 9: Assemble Electronics

For this step you will need:

  • Arduino Uno R3
  • Arduino prototype shield
  • 1x 100 uF electrolytic capacitor
  • 22 gauge jumper wire
  • 1x ULN2803 motor driver
  • 2x 5 pin male header pins
  • 1x 3 pin male header pin

Attach breadboard to prototype shield, and attach prototype shield to Arduino Uno.

Add ULN2803 driver and jumper wires to breadboard as shown in diagram.

  • ***IMPORTANT NOTE: On a breadboard, wires can be placed in any pin of the same row. Notice how in the image, the wires are placed in the same rows, but slightly different pins than the diagram.
  • If you connect the driver to slightly different pins on the arduino, it wont make a difference.
  • Make sure the three red wires on the left side of the diagram are in the correct spots, otherwise, something could potentially be damaged. Also, make sure the grey wire is connected to the ground pin.

Add header pins and capacitor as shown in the diagram.

  • Use the pliers to push the plastic part of the headers downward
  • Make sure the capacitor has the negative side (the side with the stripe) pointed downward.

Step 10: Add Electronics to Chassis

For this step you will need:

  • Drawbot Assembly
  • Electronics

Organize the wires as shown in the first image so they don't have as much excess wire.

  • Run each wire around the back to the opposite side it is attached to.

Attach arduino to battery mount.

  • It should slide from the top down into the arms sticking off the battery mount.
  • Move wires so they are not stuck beneath it.

Attach motors to arduino.

  • Notice that the top motor has the red wire facing upward, while the bottom motor has the red wire facing downward.
  • Based on this arrangement, the top motor is the left one, and the bottom motor is the right one. If you have wired it the same way as me, when you control it, the left motor is connected to pins 7-10, and the right motor is connected to pins 3-6.
  • Notice that for the servo, the yellow wire is facing upward and the brown (ground wire) is facing downward. The brown wire should connect to the same row as the negative side of the capacitor.
  • If wired the same as mine, the servo should be connected to pin 11 of the arduino.

Step 11: Finish Assembly

For this step you will need:

  • Drawbot Assembly
  • Battery

Slide the battery into the battery holder, and the assembly is complete!

I will add additional instructions on how to program the drawbot next.

Arduino Contest 2016

Runner Up in the
Arduino Contest 2016



  • IoT Challenge

    IoT Challenge
  • Colors of the Rainbow Contest

    Colors of the Rainbow Contest
  • Classroom Science Contest

    Classroom Science Contest

6 Discussions


1 year ago

Great job on the instructable, good pics, easy to understand. How long did it take your kids to complete the project?

1 reply
More Than the SumChristyI

Reply 1 year ago

Thanks! I think it took maybe 2 hour-long class periods to assemble. A few took longer. Programming took about a week for them to write the code to control it.

More Than the Sumjudejdp

Reply 2 years ago

Here are the instructions I made for my students: Eventually I plan to create an additional instructables about programming.


2 years ago

Great project! Most of the machines I have seen that can draw that precisely are all CNC.