Almost Entirely 3D-printed Pen Plotter

7.8K1209

Intro: Almost Entirely 3D-printed Pen Plotter

Recently I got really interested in CNC machines, those are unfortunately expensive and advanced so I wanted to explore the subject in a simpler and cheaper way. So I designed this BBC Micro:bit controlled, almost entirely 3D-printed drawing machine. It works almost like an etch-a-sketch but drawing with a pen on real paper. I really wanted to create something with cheap and easily accesible materials and easy to learn software to make this available to so many people as possible.

The motion of the lead screws is controlled by 2 micro servo motors, the user input is via a joystick and the brain of the organisation is the Micro:bit which is programmed using the code blocks editor.

This is the first time I use a Micro:bit and I chose that microcontroller because I wanted this project to be beginner friendly, which the micro:bit very much made sure of. Programming using code blocks was also SUPER simple once you get the hang of which blocks you want to use.

So let's get to makin it!

STEP 1: Slice and Print Parts

I sliced all the parts using Prusaslicer. My settings were 10% infill with a 0.4mm nozzle. I printed using my Prusa i3mk2.5 and AddNorth E-PLA. Make sure to print the sliders standing up, otherwise they wont slide as good on the rods.

STEP 2: Assemble

I printed out a 1:1 copy of the baseplate drawing and marked where the footers should be fastened to the baseplate and marked the positions (attached below). I then placed the sliders on the rods and the carriages on the lead screws. I then pushed the rods into the designated holes in the footers and then inserted the end of the lead screw (You may need to bore up these holes beforehand with the mentioned 8mm drill bit and the 5mm drill bit).

I then attached the footers to the base plate and then mounted the motors.

I got a bit caught up in the moment when I assembled everything so forgive me for not taking enough photos.

I will attach a model of the entire machine so you can hopefully use that for reference on how everything should be connected.

The joystick platform is optional but if you want to use it, mount the joystick with the spacers and then screw it to the baseboard at desired position.

STEP 3: Program the Micro:bit


There are great tutorials on youtube on how to get started with the Micro:bit, I recommend you watch some of these first to get a feel for how the code blocks work. This one from Sparkfun is way better at explaining how to get started with the Micro:bit than I could ever be, I suggest you watch it if you are new to the Micro:bit.

https://www.youtube.com/watch?v=kaNtg1HGXbY

When you are a bit comfortable, this is how you program the drawing machine:

Go to https://makecode.microbit.org/# and start a new project using the code blocks editor.

In the forever block, place 2 servo write pin blocks. I used Pin8 and Pin12 as my OUT pins (these will run the motors).

In the part of the block where you put the write value, place a map block.

The map block will take a range of numbers and map it to another range, in this case we will read the analog values from Pin1 and Pin2 and the values will shift from 0 to 1023 (the joystick all the way to one direction and all the way to the other direction) with varying joystick:ing resulting in values inbetween.

So place read analog pin blocks in the input section of the map block and select the pins Pin1 and Pin2 as shown in the picture.

The map block will output (to the write block) the corresponding value in the range 0 to 180 (the motor spinning full speed in one direction to full speed in the other direction).

This is really all there is to it, simple right?

When you are done, you want to upload the code to the micro:bit. Click the download button down to the left of the screen. Connect your micro:bit to your computer using the micro USB cable and the go the file explorer. In the downloads folder, you will have the code file, simply drag and drop it to the micro:bit which will appear as a device in the explorer.

Now the code will be ready to run everytime you power up the micro:bit, which you can do using the same micro USB cable.

STEP 4: Connect Everything

Reality is often disappointing, as Thanos said. My wiring was a little bit hard to follow so took a photo of each component and made this schematic, I hope it is clear how everything is wired, my bad if it is not.


Connect one of GND (0V) of the micro:bit to one of the - rows of the breadboard and the other GND to the other -row of the breadboard.

Connect the 3V of the micro:bit to one of the + rows of the breadboard.

Connect the GND pin of the joystick to one of the - rows of the breadboard. Connect the +5V of the joystick to the + row of the breadboard which has the 3V from the micro:bit connected. Connect the VRX pin of the joystick to Pin2 of the micro:bit and connect the VRY of the joystick to Pin1 of the micro:bit.

Connect the GND (brown wire) of one of the servo motors to one of the - rows of the breadboard. Connect the +V wire of the motor (red wire) to the +row of the breadboard which is connected to the micro:bit. Connect the signal wire (Orange wire) to Pin8 of the micro:bit.

Connect the other motors GND (brown wire) to the OTHER -row of the breadboard. Connect the +V wire (red wire) to the +row of the breadboard which has 3V from the micro:bit. Connect the signal wire (Orange wire) to Pin12 of the micro:bit.

The breakout board comes with 2 rows of 2 pins with Ground (GND or 0V). Make sure to connect the GND ends of the servo wires to DIFFERENT rows of 0V, I'm not skilled enough in the field of electronicws to explain why but I had some problems with interference if I had the wires connected to the same row. Maybe someone can explain this to me in a comment?


The only reason for the breadboard is because we need 3 wires with 3V, if you want to you can just connect 1 wire to 3V and split it to 3, to get rid of the breadboard.


Hook up the power to the micro:bit and you are done!

STEP 5: Attach Pen and Draw Something!


The pen holder with the outside threads is conical on the inside so slide it over a pen which will fit and screw it into the opposite pen holder until the pen touches the paper. I added the possibility to fasten the inner pen holder with a screw through the outer holder but it turned out the pen stayed safe in anyways.

Now the only thing stopping you is your creativity! (and perhaps time, the drawing machine is a bit slow...)

Draw something pretty and post the result in the comments. Happy making!

8 Comments

Thanks a lot for staring this wonderful project !
Hi, am I being dense ? Where are the links to all the parts please ?
Hi!
The links are embedded in the orange texts, if you click them you should be directed to the sites containing the parts :)
hello, I have ordered and received the Feetech servos and the Adafruit adapters as your parts descriptions suggest. I cannot get the adapters to slide onto the servo spline . The 3d printed screw works fine but not the part that is suppose to slide onto the servo spline. Did you have trouble with this? did you manage to get them together? Is there a trick? Any help would be appreciated.
Hi!
I am really happy to hear that you are doing the project!
Sorry about the troubles, I remember having to push fairly hard the first time to get the adapter on to the motor.
When I double checked the link to Adafruits site info about the adapter I noticed a disclaimer saying it is only guaranteed to work on the Tower Pro brand micro servos.
I am really sorry for not noticing this earlier, then I would have linked to those servos instead of just any (Feetech in this case).
I was able to use the adapters on a feetech servo so it shouldn't be impossible, perhaps I accidentally deformed the splines the first time I attached it without really noticing.
One way to go about it (if brute force don't succeed...) is to bore up the spline in the adapter with a 5mm drill bit and the glue it on to the servo, though that is a rather non-reversible action if you want to use the motor for something non-lego in the future.
Again, really sorry for linking to bad motor combination, will update the link so hopefully I won't trick anyone else.
Please keep me updated on how the project unfolds and if you could make it work.
Good luck!
thanks for quick reply. Into, saw the disclaimer. the adapters do fit on some HXT900 servos i have but they are not continuous servos so I have resorted to the glue it solution. I am about half way done so I will let you know when I finish.
Hello, cute little bot you made! Just wanted to comment your amazon links to sg-90s which are limited to 180 degrees but your project uses FS-90r continuous rotation servos.
Thank you!
And thank you for noticing the link was wrong, I appreciate it :)