NXT Drawbot
Overview
This project was the result of suddenly having large amounts of free time as the world initially shut down for COVID in 2020. Some people baked bread, I decided to build a robot. The NXT platform was what I had available at the time, and I built a cartesian gantry capable with a mount for a whiteboard pen.
The heart of the project was the code - I used NXC, a C based language and compiler built for the NXT, and wrote custom software to read G-code from a file and control the motion of the plotter. I used Fusion 360 to generate G-code, and the printer can handle nearly all of the commands commonly used by 3D printers.
PC Driver Program
In addition to the robot, I built a command line program to control the robot remotely, connecting over USB or bluetooth to stream G-Code files to the robot. This sped up testing by removing the need to upload G-code to the robot, and allowed for larger g-code files to be used. The NXT is fairly old hardware, and while just plaintext, G-code files can become rather large when drawing complex curves. I also wrote the driver program in C++, and made use of the NXT++ library to handle all communications with the NXT.
The code for the project is on Github:
And some additional example drawings are below: