top of page

2D Plotter

Video of DIY CNC Machine cutting a Dinosaur blockprint
00:00/00:00

Conception

Video of DIY CNC Machine cutting a Dinosaur blockprint
00:00/00:00

Through the process of developing this product, I hoped to gain a more cohesive understanding of the way different motor systems work, and to improve my abilities to design, code, and construct a system capable of being remotely controlled before progressing to a 3 dimensional cutter. The progression of this project furthered my understanding of the underlying processes necessary for large scale automation, by constructing a smaller scale design automated by controlled, predetermined actions generated by G-code. As a secondary project, I made it compatible with manual control via joystick.

Prototyping and Physical Components

The process of prototyping my design involved two main physical components: The drive systems, and the drawing system to demonstrate the necessary precision of the system. The drawing system in this case was more arbitrary and was later changed out for a more practical final product, when I redesigned this prototype into the 3DOF Cutter. The prototype drive system was primarily composed of two NEMA-17 stepper motors, with attached lead screws held in place by self aligning ball bearings. These lead screws each moved a respective lead screw nut, attached to foam platforms, which held separate components. One moved along the x axis over the other lead nut, and held the drawing system, while the other held a paper platform for y-axis control.

Electronics and Code Control

The system was capable of running via two different mechanism both controlled by a central MKS Base V1.6. For the remote control, where I focused on understanding the underlying systems of automation, this involved an existing Arduino IDE library to convert G-code to motor control, utilizing F-engrave to generate G-code from images, and running the G-code via Repetier-Host. The manual control utilized self written code to gain a better understanding of how to code in 3D space, and gain a more physical understanding of stepper motors and how lead screws convert their effects to linear motion. I coded this in C++ for the MKS Base V1.6 system, and was able to successfully control all motor systems via an attached joystick. 

IMG_9812.jpg
IMG_9813.jpg

Further Reading & Resources

Joystick Code Documentation: https://github.com/erispil/Joystick-Control-for-2D-Plotter-MKS-Base-V1.6.git

G-code Interpreter:  Marlin 3D Printer Firmware, https://github.com/MarlinFirmware/Marlin

bottom of page