This project will be completed in five parts, each part representing a certain step in the process of translating the knob movement into laser movement:
1) The user will calibrate the Etch-A-Sketch. This means that they will tell the 3D printer where the corners of their medium is on the print bed, and also set a certain distance in the Z direction (up/down) so the laser is the correct distance from the medium. This will all be done from a Raspberry Pi (think simple, mini-computer) in a terminal. I will probably complete this part last, it will just involve a bunch of coding once everything else is set up.
2) Using the knobs, the user will send information to the Raspberry Pi. The data in its simplest form will register as either a clockwise turn, counterclockwise turn, or if the knob was clicked.
3) The Raspberry Pi will interpret the user generated commands, and compile the information that will be sent to the laser engraver. It will store data regarding the laser's current position and on/off status. It will stop the laser if it is about to crash into the side of the gantry it is suspended on.
The Ender 3 3d printer after being taken out of storage. |
4) The information will then be sent to the laser engraver via Octoprint. This is a common software used to manage 3D printers manually from a Raspberry Pi, among other things. The laser engraver will still think it's a functional 3D printer the entire time, and in my research I determined that keeping it tricked and using Octoprint is the easiest way to engrave.
5) The engraver will turn on/off the laser and move!
I am completing the mechanical and electronics (steps two and five) first. Although I tried to order all of my parts in advance, there are always parts that don't work, parts that are the wrong type, and parts that I forgot to get. For step two, the only critical parts are wiring the two rotary encoders to the Raspberry Pi. Step five is a lot more complicated, however. It's basically doing all mechanical modifications to the 3D printer.
Progress with step two:
Today I unpacked my rotary encoders that will serve as the Etch-A-Sketch knobs and the on/off toggle. Before proceeding into the middle and late stages of my project, I wanted to make sure that they would work with my Raspberry Pi. Unfortunately, as I found quick enough, they did not work with the Raspberry Pi. I believe that the type I purchased "without breakout board" is supposed to be used for Arduinos (a data collection device, mostly) and not for the Pi. The picture below shows how the wiring was different from what I needed, I was only able to find decent Pi tutorials for the model "with breakout board." The new rotary encoders will arrive Saturday.
In the meantime, I was able to wire the rotary encoders I purchased to act as a normal button with the Raspberry Pi! I used a simple tutorial for the code, only I switched out the side of the button going to the 3.3 volt input to the "switch" rail in a breadboard. No need to worry about resistors, from what I read this model had them built in. This assumption was correct, I hope.
Turning the rotary encoder into a button. |
I'd like to take this moment to thank one of my teachers, Chris "Gramps" Border. Taking his class in Digital Instrumentation last year was extremely useful for step number two, as it covered wiring and programming devices for Arduinos very similar to this. Thank you, Gramps!
Progress with step five:
Step five started with researching the works of YouTuber Jon Schone. Schone is an engineer known for really cool 3D printer mods that are both practical and relatively simplistic. The inspiration for step five, converting the 3D printer into a laser engraver, came from one of his videos where he did exactly that. I downloaded his base and laser module attachment to print and install, however made a few modifications to them:
1) Instead of making the laser easily detachable from the base so it could be replaced with a different module (such as a hot end for actual 3D printing) I fused them together in CAD (3D modeling software). This will make everything more stable, even though the engraver won't be able to get converted back into a printer without taking everything apart. This is OK, however, the hot end already had some issues.
2) IMPORTANT: When I tried to install the 3D printed plastic onto the metal X gantry mount, I encountered an issue where two metal nubs stick out of the piece. Although the design I printed accounted for this by inserting a hole in the plastic that was aligned with these nubs, it was not deep enough and the piece I printed was not flush with the metal. This problem was fixed when I modified the hole to make it bigger in CAD.
Circled in blue, the nubs in the metal (right) and the hole in the 3D printed part |
3) Before the 3D printer I'm turning into an engraver broke, I installed and configured an auto bed leveler on it. Long story short, this is basically a probe that the printer uses to accurately calculate how high it is off the bed. I wanted to keep my auto bed leveler on the engraver, and inserted a hole in the 3D printed base that would allow it its cylindrical shape to slide in.
The Auto Bed Leveler, which probes the bed and tells the engraver its position in the up/down direction. |
Here's what the final rendering for the part looks like: It's printing right now, and I'll post photos of how it comes out in my next update.
Top view. The lines are an issue with the software, and won't come through in the final product. |
Side view, for good measure. |
Plans for the near future:
-Finish the laser engraver, or find out which parts I forgot to order and order them. Possibly do a few "test etches" and have some fun!
-Before the rotary encoders come Saturday, review skills in basic Python so I can code better.
Some fun facts about cell phone towers:
No, 5G cell technology does NOT cause cancer, autism, coronavirus, OR ANY OTHER MEDICAL ISSUE!!! Going down this rabbit hole has been one of the most unproductive things I have ever done, and promise to post some cell phone tower facts in the coming days that are more compelling. Just wanted to get all of that crap out of the way, first.