Skip to main content
Version: ACS CC

Pen Plotter

A machine that draws an user defined image using a pen.

info

Author: Andrei Stan
GitHub Project Link: https://github.com/UPB-PMRust-Students/proiect-andreistan26

Description

A pen plotter is similar to any 2.5-3 axis machine like a CNC or a 3D printer, it works by moving a pen in cartesian coordiantes in order draw something on a piece of paper.

Motivation

I thought this would be a challenging, yet fun project that requires different skills to pull of, it has software, electrical and mechanical complexities. It would also make me do more CAD work.

Architecture

image

Log

Week 20 - 27 April

  • started making the CAD and looking for online resources
  • started to order the mechanical components and 3D printed some prototypes
  • tested the electronic components like the power supply, voltage regulator and stepper motors

Week 28 - 4 May

  • tested the 3D printed parts and iterated on them
  • finished the documentation

Week 5 - 11 May

Week 12 - 18 May

Week 19 - 25 May

Hardware

  • Mechanical:

    • Steel 8mm rods
    • GT2 Timing belt
    • Tooth timing pulleys and idler pulleys
    • 3D printed parts
  • Electronics:

    • AC-DC Power Supply 12v 10A
    • DC-DC Voltage regulator 12v-5v
    • SG90 Servo Motor
    • 2 x Nema-17 Stepper motor
    • 2 x DRV8825 Stepper Motor Driver
    • R-PI Pico 2
    • LCD Display
    • Other small components (capacitors, etc.)

Schematics

image

Bill of Materials

DeviceUsagePrice/Unit
Raspberry Pi Pico 2WMicrocontroller39.66
2 x DRV8825 Stepper Motor DriverDriver for the stepper motor14.49
2 x Stepper Motor 17HS8401SStepper motor driving each axis linear system34.99
LM2596 Voltage RegulatorConverting the ouput of the power supply (12V) to 5V16.49
TFT-LCD Display 1.44"LCD Display for displaying information about the plotter29.99
SG90 ServoServo that lifts the pen on the Z axis11.99
Power Supply 12V 10APower supply for the porject41.6
8 x Linear Bearing 8mmLinear bearings for sliding the gantry4.07
2 x GT2 Timing BeltBelt for moving the gantry3.96
2 x Tooth timing pulleyTransmits power from the motor shaft to the belt4.50
2 x Smooth pulleyGuides the timing belt and keeps tension on the timing belt9.32
1.5 x 8mm Steel RodThe gantry will slide on it49.00

Software

LibraryDescriptionUsage
embassy-*Async framework for embedded systems in RustFramework used for the whole system including rp235x specific drivers
mipidsiDisplay driver for ST7735Used for the display for the Pico Explorer Base
embedded-graphics2D graphics libraryUsed for drawing to the display
defmtDeffered loggingLogging for the plotter during testing
heaplessStatic allocated containersAllocate data structures for holding text
  1. Where I took the starting 3D models
  2. Lab resources