Introduction: 4-Wire Horizontal Plotter

About: 55+ years in electronics, computers, and teaching ... now retired.

This instructable explains how to make a 4-wire plotter using the wheel-rims from a toy car, four stepping motors, a scrap of sheet aluminium, some pulleys, and an Arduino UNO R3.

Unlike 2-wire vertical plotters the drawing surface for this plotter is horizontal.

Construction is simple:

  • the “base” requires a ruler, a few drills and a saw.
  • the “gondola” requires an electric drill, a set of circle cutters, and a sharp knife.

Features include:

  • an on-board interpreter that recognizes the g-code output from “Inkscape”.
  • accurate ... approximately 1mm with nylon
  • scaleable ... just increase the cable lengths
  • easy to make
  • low cost

The estimated cost of parts, excluding the power supply, is less than $100.

Images

  • Photo 1 shows a close-up of the plotter
  • The video shows the plotter in action

Step 1: Parts List

The following parts were obtained from https://www.aliexpress.com/

  • 1 only Arduino UNO R3 + USB cable
  • 1 only SG90 servo
  • 4 only 12VDC Nema17 17HS3430 stepping motors
  • 4 only NEMA 17 Motor L-mount stepping motor brackets with screws
  • 4 only 2A per phase Big Easy Driver v1.2 A4988 stepper motor driver board
  • 4 only 65mm RC Car wheels with tyres on 50mm drums (see photo 1)
  • 4 only hexagonal brass couplings with 5mm bore to fit the motor shafts and a 4mm hole for attaching the wheels. The short ones in photo 1 are satisfactory.
  • 4 only miniature V624ZZ pulleys with V-groove size 4*13*6mm

Optional:

  • 1 only CPS-3205 Compact Mini Variable Adjustable DC Power Supply 0-32V 0-5A AC110-240V (not required if you already have a 12 volt 2 amp DC power source)

The following parts were obtained locally:

  • 1 only sheet of 6mm composition board approx. 800mm x 600mm
  • 1 only length 60mm x 20mm timber for corner supports
  • 1 only reel of 0.5mm diameter nylon fishing line
  • 1 only switch
  • 1 only MBR735 diode for reverse voltage protection
  • 1 only pkt of assorted Arduino jumper cables
  • 1 only scrap of thin acrylic sheet for gondola annular ring
  • 4 only M3 threaded Nylon spacers for supporting the acrylic annular ring
  • 1 only scrap of thin sheet aluminium for pulley mounts
  • 4 only M3 x 9mm tubular spacers for pulleys
  • 12 only wood screws for assembling corner supports
  • assorted M4 nuts and bolts to suit your particular build
  • assorted M4 nuts and biolts to suit your particular build

The estimated cost of parts, excluding the power supply, is less than $100.

Step 2: Circuit Diagram

Photo 1 shows the circuit diagram of the 4-wire plotter.

The Big Easy Driver “direction” lines are on Arduino PORTC pins A0, A1, A2, and A3

The Big Easy Driver “step” lines are on Arduino PORTB pins D8, D9, D10, and D11

The SG90 servo “control” wire is connected to pin D3

The MBR735 diode provides reverse voltage protection.

Motor Wiring

It may be necessary to reverse the two center wires from each of the 17HS3430 Nema17 12 volt stepper motors as the Big Easy Driver v1.2 A4988 stepper motor driver boards expect the wires from each of the coil-windings to be adjacent.

The default color sequence for the 17HS3430 cables (for my motors) is red, blue, green, black. The color-sequence following the modification is red, green, blue, black.

The red, green winding is connected to the “A” terminals of the Big Easy Driver.

The blue, black winding is attached to the “B” terminals of the Big Easy Driver.

Big Easy Driver Current Limits

The current-limit on each of the Big Easy Driver must be set to 400mA (milli-amperes) .

To achieve this:

  • Switch off the power [1]
  • Unplug your Arduino
  • Unplug all motor cables
  • Turn each of the current-limit potentiometers on the A4988 Big Easy Driver Boards fully clockwise
  • Insert a motor cable into its designated Big Easy Driver
  • Apply 12 volts to the Big Easy Driver
  • Rotate the current-limit potentiometer counter - clockwise until the supply current reads 400mA .
  • Turn off the 12 volt supply [1]
  • Remove the Motor cable.
  • Repeat the above steps for each of the remaining motors
  • Plug all motor cables in to their respective controllers.
  • The total supply current will be approximately 1.6 amps when power is applied

Note

[1]

NEVER plug, or unplug, a stepping motor with the power applied. The inductive “kick” (voltage spike) is likely to damage the controllers.

Step 3: Theory

Photo 1 shows the general equations for a 4-wire plotter.

The white square represents a sheet of paper with dimensions x,y. The Inkscape (0,0) coordinate is shown as (0,0)

M1, M2, M3, M4 represent four motors ... one at each corner of a (virtual) box. The motors are offset from the sheet of paper to maintain a pulling force on the pen at all times.

D1, D2, D3, and D4 represent the cables from each motor to the diagonally opposite corner of each (virtual) box to meet at Inkscape coordinate (x,y).

If a line is drawn from the (x,y) coordinate to the point immediately below each motor we get four vertical right-angle triangles. The hypotenuse of each triangle represents each cable length and may be calculated using the 3D formula for Pythagoras.

hypotenuse = sqrt (X^2 + Y^2 + Z^2 )

The formulas for distances D1, D2, D3, D4 are given in photo 1.

The cables need not meet at the pen if we reduce the Z-axis to zero and attach them to pulleys free to run around an annular ring as shown in photo 2.

Nylon cable has a small amount of stretch which, when the Zoffset is zero, provides strain relief should a cable wind unevenly on a drum.

Alternately a small amount of Zoffset will provide strain relief in the form of a lifting force.

Calibration is explained further on.

Step 4: Gondola Construction

Images

  • Photo 1 shows the assembled gondola
  • Photo 2 is a close-up of the annular rings and pulleys
  • Photo 3 shows a side-view of the pen-lift
  • Photo 4 shows is a close-up of the plastic pen attachment
  • Photo 5 shows the concentric circle cutters

Annular Rings

Two discs were cut using a set of concentric circle-cutters (photo 5). The actual disc sizes are not critical ... mine are 100mm.

The annular ring was cut from a sheet of white acrylic ... the base was cut from 6mm composition board.

Before drilling, attach your material to a piece of wood using two wood screws close to the drill-hole. This will prevent your work from spinning. The wood must be larger than the diameter of your discs.

Cut the outside diameters first, change blades, then make the inner cut. The rings will spin when the final cut is completely through. Don’t be alarmed ... they can’t come off.

Pulleys

Cut some 10mm strips from a scrap of aluminium sheet using the method described in https://www.instructables.com/How-to-Cut-Fold-She...

Press lightly downwards with the knife and cut away from your body when scoring the metal. Watch that your fingers don’t protrude over the edge of your steel rule !!!

The pulley holes are 4mm in diameter

The holes for the tubular spacers are 3mm

I drilled one set of 3mm and 4mm holes then folded the aluminium strip around the edge of a scrap of 6mm composition board using finger pressure. The strip was then placed in a vice and the 3mm and 4mm holes used as “templates” for drilling the others.

The Pen-lift

The pen-lift in photo 3 and photo 4 was fashioned from a 25mm strip of aluminium. The strip should be long enough so the bends fit your gondola.

Drill the two pen-holes and the two 3mm mounting holes before bending.

Mark 5mm from the edge of one pen-hole towards the other and repeat for the other.

Use the edge of a vice and finger pressure to bend the aluminium at each of these marks ... your pen will now stand vertical.

The measurements are not critical apart from the pen-holes which should be a sliding fit. A round file, or taper reamer, is helpful if your pen diameter is not a standard drill size.

Use a pencil to mark the mounting hole positions on the gondola base when the pen-tip is centered

The pen is raised when the SG90 servo horn makes contact with a plastic disc attached to the pen.

The brass center in my disc (photo 4) is from a radio knob that has been drilled out. The grub-screw prevents the disc from sliding up and down the pen.

Step 5: Base Construction

The baseboard

  • Mark a rectangle out on a sheet of 6mm composition board. The dimensions are not critcal ... mine were 600mm x 500mm.
  • Drill a 1mm diameter hole in each corner.
  • Position your drawing paper in the center of the rectangle and mark the X-axis and y-axis edges.
  • Record your XMS, YMS, Xoffset, and Yoffset distances ... we will use these later

The support legs

The legs were made from eight pieces of 60mm x 20mm timber ... two pieces for each leg. The lengths are not critical.

The legs are attached the baseboard using three wood screws as shown in photo 2.

The motor mounts

The L-shaped motor brackets shown in photo 3 are mounted beneath the baseboard

Each motor is positioned such that a nylon cable passed through the 1mm corner holes winds onto the center of each wheel-rim.

Step 6: Assembling the Plotter

  • Pass a length of 0.5mm diameter nylon through one of the baseboard corner holes and through the hole that is in the center of each wheel-rim.
  • Tie the nylon end to a 3mm nut using any fishing knot that won’t unravel.
  • Attach a hexagonal wheel coupler to the motor.
  • Attach the wheel-rim to the hexagonal wheel coupler.
  • Pull the nylon tight and stretch it past the opposite corner by approximately 300mm before cutting.
  • Tie this free end to the closest gondola pulley using a fishing knot.
  • Position the gondola over the (0,0) coordinate
  • Now wind the nylon on to the wheel-rim by rotating the wheel-rim such that the nylon winds on to the side of the wheel-rim furthest from the baseboard as shown in photo 1. Apply a slight tension to the nylon while doing this.
  • Repeat for all motors.

Step 7: Software

  • Download the attached file “four_wire_horizontal_plotter_V2.ino”
  • Copy the file contents into a new Arduino sketch.
  • Enter the XMS, YMS, Xoffset, Yoffset, and Zoffset dimensions into the software header [1]
  • Save your sketch as “four_wire_horizontal_plotter_V2” without the quotation marks and upload it to your Arduino.

Note

[1]

The Zoffset is the point you see on your pen when you look along the nylon from the corner-hole in the base.

Software Update 19 May 2021

The attached file "four_wire_motors_above_v3.ino" is compatible with this plotter and produces higher resolution plots

Sample plots are shown in Step 5 and Step 7 of https://www.instructables.com/4-Wire-Horizontal-Pl...

Step 8: Calibrating

Calibration is fairly simple.

  • Place a sheet of A4 paper at the (0,0) coordinate
  • Position the gondola over the (0,0) coordinate
  • Set your Arduino Serial Monitor to 9600 bauds
  • Tension the cables using menu option T4
  • Now send the following commands:
  • G00 X50 Y50
  • G01 X50 Y200
  • G00 X0 Y0
  • Measure the resulting line
  • Change your K value in the Arduino header to read 150/measured-length
  • Recompile and upload your software

Step 9: Sample Plots

Photo 1 shows a 100mm square target using menu option T5. The slight trapezoid is due to my camera angle.

Large file handling

A scribble image (photo 3) was sent to the 4-wire plotter using CoolTerm.exe available from https://freeware.the-meiers.org/

Some 27000+ coordinates later I got the image shown in photo 4 which, when viewed at a distance (photo 5) looks remarkably similar to the original image (photo 1).

When this plot finished the cables still had the same tension and the pen was back over the (0,0) coordinate.

Step 10: Summary

This instructable explains how to make a 4-wire plotter.

The plotter is able to handle large files

Features include:

  • an on-board interpreter that recognizes the g-code output from “Inkscape”.
  • accurate ... approximately 1mm with nylon
  • scaleable ... just increase the cable lengths
  • easy to make
  • low cost

The estimated cost of parts, excluding the power supply, is less than $100.

  Click here   to view my other instructables.

Anything Goes Contest

Runner Up in the
Anything Goes Contest