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:

Trombone Drawing


House Drawing



Related Articles:

  • Cycloid Clock
  • Dual-Stage 3D Printing
  • Balance Bot
  • CAD - Hand
  • TSA - HS