this is my first post here. I'm a software engineer by trade, but I have a 3d printer so that makes me a mechanical engineer, right?

Clearly not. However I do have some rudimentary skills and have built some basic things. This project is my most ambitious to date. I have a design in mind that I think is relatively simple, and I wanted some feedback on it.

First, the concept: an array of 8 laser pointers mounted into a device on the ceiling, which will point to the locations we need to place balls for various games (because he doesn't want to mark up his very nice felt on his very nice table). We play snooker, cowboy pool, and other games that have frequent ball-placement in spots that we have to eyeball, and it would be a lot easier (and cooler) if we had a laser pointer to mark the exact spot for each ball.

Well I've been getting into 3d printing and hobby electronics like Arduino etc, so I think this is a doable project, and I have a design already in mind for this device. Like I said, it's very simple (but also, very complex, depending on how you look at it).

The design (I'm not great with drawing so I will describe the design carefully, but I can illustrate anything people have trouble visualising):

8 laser "modules" that pop into a central device. Each module has 2 bearings, one on the side (perpendicular to the table), and one on the bottom (parallel with the table). The bearings each have a gear attached to them. The bottom gear/bearing turns the whole laser module in a circular motion. The side gear/bearing has an axle which goes through (or attaches to) the center of the laser pointer, and can move the laser pointer linearly.

So each laser platform can be turned on an axis perpendicular to the table to do a "circular sweep" by turning the bottom gear, and the laser can be moved in a "linear sweep" using the side-gear (with an axis parallel to the table). Essentially it's just 8 little robots inside of a housing structure. The housing structure is responsible for engaging the circular sweep of each module, so it has 8 gears in it, to one for each laser module.

The modules have the linear sweep "built-in" or in other words, controlled separately. So the central unit is responsible for turning the laser modules, but they do the linear sweep independently of the main unit.

Here's my first question - the only way I can think of to make this work is to have independent servos on the linear sweep of each laser, that way the module can be moved with the circular sweep without having to worry what direction the linear sweep drive motor is oriented. In other words, I'm planning to have 16 RC servos. 2 for each laser module. Each module has one servo for the circular sweep drive, and one servo for the linear sweep drive.

Yes, it's a lot of parts that can fail, but RC servos are really cheap, the idea is that all the parts I use will be cheap parts, and we can just snap in new ones if they break. But maybe there is a simpler design that's within my design skills that I haven't thought of, because I'm not a mechanical engineer. I'm very open to suggestions.

The next part of my question is a very naive and kinda technical one. My idea for saving the positions of the lasers for particular games is this:

On the other end of each drive axle, I was thinking I will place a potentiometer. The orientation of the potentiometer for a particular game can be saved by the device to storage, SD or something, I'll need to write the code for it, obviously, but the basic idea is to orient the lasers manually once, save the position using software, and then when we want to play Snooker we just hit the Snooker button and the lasers orient themselves in place.

My question here is, given the level of accuracy I will need to have in order to save/load a position of the lasers, and re-orient them in software when we change the game, can saving and reloading the locations using a potentiometer measurement be accurate enough? Will I need expensive pots? Or should I consider a different approach from the start? I don't think a pure mathematical solution would work, the amount of skill it would take to mount the device on the ceiling "perfectly" to support a 100% math-driven approach is out of my reach, and besides, stuff moves over time, even pool tables, floors and ceilings. So I think saving and loading of positions using sensors is the way to go.

Any and all ideas are welcome. Thanks for your time!

  • $\begingroup$ these may give you some ideas about connecting servos together ... dxydas.files.wordpress.com/2012/08/wip_legs11.png ... cdn-reichelt.de/bilder/web/xxl_ws/C160/SERVO_LEG_2_01.png $\endgroup$
    – jsotola
    Mar 14, 2023 at 3:27
  • $\begingroup$ Rather than an array of laser pointers have you considered a normal lamp shining through a paper sheet with holes cut? To draw symbols you can use plastic windows and draw on them. $\endgroup$ Mar 16, 2023 at 0:36
  • $\begingroup$ @user253751 I didn't, really, I kind of doubt that I can get a point of light of such precision that we can use it to place the balls. Also, that sounds like a solution where it will need to be constantly fiddled with by climbing up on a ladder or something if the floor shifts or the slideshow mechanism isn't just right, etc. And also it would require me to know all the games we will ever play in advance somehow, or have some mechanism to add slides to it. $\endgroup$
    – neural
    Mar 17, 2023 at 22:13
  • $\begingroup$ I see, it sounded simpler and cheaper. $\endgroup$ Mar 18, 2023 at 22:27
  • $\begingroup$ There is also the possibility of a laser projector. It shines a laser pointer through a pair of X/Y mirrors that can twist slightly to aim the laser. Because the mirrors adjust very quickly you can go through all the points faster than a human eye reacts and you see them all at once, just like how a computer screen works. I don't know else much about them like what kind of input signal is used. Google suggests a small one costs less than $200, which could be worth it compared to making a whole bunch of pan/tilt platforms. Or you can try to DIY a laser projector of course. $\endgroup$ Mar 18, 2023 at 22:31

2 Answers 2


It's probably cheaper for you to get a crapload of laser pointers for every position you want rather than to build gearmotors and all that. Definitely easier to engineer but I can see why you might not want to since the end-result is cumbersome.

With regards to your proposed gimbaled approach, rather than eight separate laser pointers on gimbals and rails, might I suggest just one laser pointer pointing into a spinning mirror to scan the entire table and you instead turn the laser on whenever it points at a position you want to light up? The design and hardware involved is more complex but there is ultimately less hardware involved. If you have the means to get such a thing machined and the mathematical prowess, you might be able to design a mirror where rotation about one axis scans the laser across the entire table in a spiral. If you hook it up to a motor with encoder it mostly becomes straightforward programming problem.

This is the sexiest approach in the most compact package and could be augmented with vision for calbration or position sensing rather than relying on blind motor coordinates. That said, I can understand if you feel it is beyond you

But the more conventionally approach would probably be two motors each spinning for a mirror for the X and Y axis respectively with one mirror re-directing the laser into the other.

RC servos aren't the most accurate devices. Linearity of input signal vs position isn't exactly the most important for the applications they were designed for and the position vs input signal will also vary from servo to servo. You're going to have to calibrate each servo at minimum due to repeatability between devices, or outright set custom coordinates for each position if the linearity is bad enough. And they may not stay constant with age either. With 16 servos you would likely might be fiddling with the system all the time.

There are servos that use encoders which are more precise and should be more repeatable between devices. These look similar to RC servos and often accept things like serial inputs. They are targeted towards the hobbiest robotics market. They also cost more like high-end RC servos. Sometimes a lot more than the highest end RC servos. So if you need 16 of them this is probably not an option.

In short, I do not recommend you rely on rotary position encoders as a primary method of positioning your laser.

Let's split this into actuators vs position sensors now:


If you are adding external position sensing anyways, then you might as well go for nicer solution: Brushless gimbals. These are targeted towards camera platforms for hobby UAVs. They will be smoother and quieter than RC servos. They have less torque but that doesn't really matter for your application as long as you design the gimbal so that the load is rotated around the COG so there isn't always a cantilever constantly applying load to the motor. The motor torque is just there to accelerate and decelerate the load into position.


Brushless gimbals, by nature of their intended application tend to use gyroscopes and accelerometers on their control board for holding position and motion stabilization. You could surely finagle accelerometers for use as attitude (tilt, such as yaw and roll) sensors but the heading is an issue. You probably don't want to use a compass or light beacon or anything similar for heading. That said, it may be useful to mount accelerometers and gyros on each gimbal to track the motion of the gimbal itself. In your application, you would need accelerometers for pitch and roll and gyros for yaw. Best results would come from gyros and accelerometers for all 3-axis but this would likely be excessive for your application is rather static. However, this would be more motion control and not position sensing.

For positionin sensing, consider using machine vision. Hobbiest level devices like CMUCam exist with onboard processing hardware and object detection and analysis libraries which should expedite this process. You use the camera to calibrate your lasers or outright position them. An empty green pool table is rather ideal for this kind of thing. It enables you to use just one camera as a position sensor for all motors and makes mounting accuracy of those motors almost irrelevant. You can try to get the camera to calibrate to the four corners of the table or fix four light beacons to the table or lasers to shine at four points on the table as calibration points for the camera.

You could use a camera with the RC servos too, but there's not much point except as maybe a stepping stone.

In any case, whatever gimbal you use, make sure it's designed such at the gimbal motor's load is rotating around the COG, not as a cantilever constantly applying load to the motor.

  • $\begingroup$ Thanks for the detailed reply! No, I definitely don't have the skills to design a spinning mirror solution, I'm just a programmer with a 3d-printer and some arduino experience. I did find the plans for a crystal laser projector, and I can build from schematics but I wouldn't understand what I was building. Hence my clunky solution with individual laser pointers. I'd rather build something clunky that I fully understand than a black box that I don't. I don't need a moving image. Just dots on the felt, so gyros seems like overkill. I could theoretically do it with math and gear ratios. (cont) $\endgroup$
    – neural
    Mar 14, 2023 at 20:02
  • $\begingroup$ Are there any other kind of simple positional sensors that you can think of that I might consider? I did of course consider an AI/visual approach, but the amount of coding that will be involved in that will be immense. Perhaps that is what I will have to do, if I can't figure out a reproducible way to position the lasers with sensors. $\endgroup$
    – neural
    Mar 14, 2023 at 20:05
  • $\begingroup$ @neural Get a CMU Cam and give it a try. Or read the library datasheet. It already has object detection algorithms in the libraries. It will help you judge the programming required. You wouldn't be scanning pixel by pixel, although I guess if you really wanted to you could. $\endgroup$
    – DKNguyen
    Mar 14, 2023 at 20:19
  • $\begingroup$ @neural There are photodiodes or phototransistors that you can use as a single pixel eye to blindly hunt for the calibration points. One would be mounted next to each laser and sighted like a laser sight on a gun. The problem is finding narrow field optics and you would want a quadrant photodiode and both are expensive. You would basically blindly hunt for the calibration laser dots or beacons at the approximate locations until you find it. $\endgroup$
    – DKNguyen
    Mar 14, 2023 at 20:50
  • $\begingroup$ You've convinced me, I need to get a CMU cam and play with it, maybe it will be easier than I suspect $\endgroup$
    – neural
    Mar 14, 2023 at 23:04

Not to dissuade you from your original project idea, but one might consider a short throw LED video projector mounted on the ceiling. With appropriate adjustment of the angles and keystoning, you'd be able to build various slides (as in slideshows) for placement of the balls. One box on the ceiling and some means of input (flash drive?) and a remote to change the slide as needed.

With respect to your potentiometer added to the servo, one should consider that a servo is a motor with a pot inside. It compares commanded position (in a manner of speaking) to current position and adjusts accordingly. There will be variation in precision from servo product to servo product, and the low-cost ones may not meet your requirements.

  • $\begingroup$ Thanks, good point, I may just use a geared motor instead, with my own potentiometer on the other end of the axle. I was just gonna get some cheap ones and play with them, but I wanted to get some feedback first for ideas I might not be considering. An off-the-shelf LED projector is something I thought about, but this is a gift and also a contribution to the game room we both built. RE - the pot, I guess what I'm asking is in rough orders of magnitude, if I want enough precision to point a laser at something about 5-6 feet away, will I need really expensive sensors? $\endgroup$
    – neural
    Mar 13, 2023 at 21:14
  • $\begingroup$ You know, I dismissed this originally but I've looked into short throw projectors. It's a really good idea. Mainly I didn't like it because I wanted to build something, but there are a couple projectors that look plausible for this, small and lightweight with a good image size. I'll need to do some more research and some math but we might go with this. $\endgroup$
    – neural
    Mar 17, 2023 at 22:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.