You are browsing as a guest. Sign up (or log in) to start making projects!

thecatsmeow

@thecatsmeow

Joined June 5th, 2026

  • 1Devlogs
  • 1Projects
  • 1Ships
  • 0Votes
Ship Changes requested

This project runs on an ESP8266 and hosts a web server where users can upload SVG files. The laser pointer then traces them out on the ground, or whatever surface it is sitting on. Since the laser pointer can draw out shapes from the file in real size if the file is prepared correctly, it could be useful for visualizing digital files. For example, if you really wanted to know what a parallelogram with a base of 30cm, a height of 20cm, and two 65-degree angles looks like, this could show you. I learned FreeCAD to design and 3D-print the mounts for the servos; I manually tuned the servos to get precise angles; and I made code for the ESP to accept an SVG file, parse it, and calculate where the servos needed to go to point to it. Overall, this project was a good learning experience, and I am glad to have done it even if a video can't fully capture its depth.

  • 1 devlog
  • 0h build
Video of Project → See source code →
Open comments for this post

12h 0m 14s logged

I got a bit caught up in making the project and neglected to write any devlogs, so here’s a summary. I started by designing the servo mounts for 3D printing, which took a while since I was learning FreeCAD and professional CAD in general as I went. My first 3D print was somewhat functional, but I hadn’t fully taken the servo wires into account, so I had to reposition the small gear. It also later turned out that the small gear wasn’t tall enough, so I also had to change that. Then, with some functional 3D printing, I turned to the code and started with a simple ESP web server that would save a file upload to a string. Once I got that, I made a simple SVG parser that would just take the points from the first polyline element and used trigonometry to determine where the servos should point based on 2D Cartesian coordinates. After further investigation of the servo mount, I also decreased some clearances and made the laser pointer mount thinner to allow it to bend. Next, with the full thing assembled, I had to do some minor debugging, including switching from atan to atan2. One of the servos also abruptly stopped working and refused to give any sort of accurate angles until I manually gave it a custom PWM range, so that was fun. After that, I did some experimentation in Illustrator and found that I could consistently get real-world units drawn by using a conversion of 0.353 mm/pt. My last two real features were adding a redo button that ran another trace with the previously uploaded file and breaking each edge into 20 smaller segments to allow a more accurate path between points. 

0
0
2

Followers

Loading…