To accomplish this, I took three old optical disk drives apart and used their stepper motors to create what would be the X, Y, and Z axes. The stepper motors and their respective pins were connected to a RAMPS shield which was also attached to an Arduino Mega. I used Visual Studio Code to modify the open source firmware Marlin and uploaded this to the Arduino. At the end of the project, my carriage design was too heavy to hold the hotend of the 3D printer and would only be able to extrude melted filament. The project was a still a success due to how much I learned in the process.
In addition to being familiar with the marlin firmware (what I would later use when modifying my Ender 3), some key takeaways from the project included how a stepper motor works and the purpose of an H-bridge, how a Cartesian printer works in 3D space, how to utilize slicers to create GCode, how the components of the hotend are used to melt and keep the filament at a certain temperature, and the practical usage of tools (soldering, dupont crimpers, and a hand drill for holes).