Satellite-spotting Laser





Introduction: Satellite-spotting Laser

(FOR THE SAKE OF PEACE,  I GOT RID OF THE CANNON TITLE - I wonder if the number of viewers will reduce drastically :)
(Credits for picture and video -
This is a laser mounted on a cannon-like structure made for a single purpose: Point to the sky and trace the position of a satellite. It gets data form a small program via Serial port and shoots to the infinity. It's not easy if you haven't done anything with electronics, but if you learn a couple of things, it's pretty basic. The design has two major drawbacks, that could be improved later:

• The code works but the movement is Jaggy when tracking in realtime. Converting angles expressed in doubles (A decimal point number with a lot of digits like 225.365844E) to the limited steps of a motor is just impossible. Possible gearing and fine-tuning to make movement smoother on slow tracking situations are still lacking

• The cabling is still cumbersome and  it won't allow fluid 360° movement in the Base (Azimuth) axis. So when passing from 359.9° to 0° the motor will have to go a whole revolution back in order to keep the track.

Being warned, we can start:

Step 1: Find the Components

1 Arduino, (The bluetooth version would spare the need for a BT module, but wireless control is optional)

1 Adafruit Motorshield,  You can look on the site to get a distributor and will need to assemble the thing yourself (DIY from the very beginning). Making it is good for your self esteem.

1 Green Laser pointer, Depending on your country this may get hard to get on a store, but you can always trust in Ebay where they are cheap and easy to find.

1 Stepper Motor Recommended to buy a standard Stepper like the linked one from Sparkfun. I chose this for the base (azimuth) that needs to fully rotate 360°, because it has a decent step "resolution" and it's also a lot easier to control than a 360° servo.

1 Servo Motor  Standard servomotors are the easiest motors to control and they are light to mount in different orientations. They also have an absolute 0° position so you know it will always go back to the same position after you reset. For the elevation rotor this is ideal and their 180° range is more than enough.

1 Pan/Tilt BracketThis is useful to mount the laser on the Servo.

1 Lithium Batteryor external power source. Depending on your stepper motor, this should give you between 7.4V and 12V with 600mAh - 1000mAh. The link shows the battery I used, but it discharged quite quickly and chargers aren't cheap. My household tip is to use your Video camera battery. That saved me in one presentation and the battery didn't even noticed it. Warning: A standard 9V Battery you'd use for prototyping will not offer you enough current to move the Motor flawlessly, so don't try too much with it else the stepper will behave erratically.

1 Bluetooth modem(Optional) If you work with a non BT Arduino and want to incorporate wireless communication, then let's try this.

1 Accelerometer compass(Optional and experimental) This gives you the chance to tell your cannon where the north is located, so it is more precise. But there are some issues to it and you're not really trying to shoot the sat down, so it's all up to you wether you want precision or not.

Prototyping wires (Jumper) A bag of 30cm-long and one of 15cm-long capped wires will be ok. These help keep things in place and some order. Yo'd like to have also a couple of wire rolls, just to patch something else or build the circuit for the laser.

1 Mounting hub for stepper Motor and some L Servo Brackets to assemble them motors...

1 Custom laser holder. This was self made and printed in a hacklab in Berlin, You might want to find a solution with some other holder or download the .stl find a 3D printer near you

4 acrylic plates of approx. 10x10 cm or bigger for the case

Bolts and nuts + steel angles + a driller and a screwdriver (See pictures in step 4 if this is not clear)

A silicon gun or a cold-silicon tube.

Step 2: Motors

1. Check electronics: Plug your arduino and test it with a basic example and check/assemble your Motor Shield. All necessary steps for soldering and testing it are provided here.

2. Connect your Motorshield to the Arduino and test your Motors:
 2.1. Plug the Stepper Motor to the stepper Motor terminal on the left of your Shield (M1 and M2), and plug the Servo to the second Servo port (See graphic)
 2.2. Plug the arduino to your Battery / External power source
 2.3. Open the MotorParty example and upload it to the Arduino. Both Motors should move now. If not, check the Power or go back to the check Electronics step!

Step 3: Laser

0. Grab the laser pointer and unscrew it in half. Take the laser part and look for the Spring coming out of it.

1. Take a short jumper cable and solder it to that spring (-).

2. Take another jumper cable with a different color and solder it to the outer ring that screws this part to the other (+).

3. Fold some tape around the button and make sure that it remains pressed, so the pointer is always in ON mode.

4. Build the circuit you see in the second picture. This is just a transistor (C33725) and a resistor (680 Ohm) which amplify the current of Arduino's 3V. For schematics see pic or just download the attached Fritzing file (.zip). You should have the Arduino and the Motor shield plugged by now. The idea to complete the circuit in the picture is to use the extension pins on top of the motor shield, but I show you just the arduino for the sake of clarity.

5. To test your laser, upload the arduino example BlinkWithoutDelay.* Change the ledPin to be 10 and to use that same pin on your board. 13 is the default pin for the arduino internal led that lights up and down on input, so it might interfere with your code in more complex setups.

This is basically it. The next is how to mount this (case and cannon assembly)

*TIP of the week: If uploading falis i.e. you get an "timeOut() error", disconnect briefly the Motor Shield from the arduino, upload and plug it again. That happened a lot to me...

Step 4: Assembly a - Base

So now you need to put this all together, and it is somehow up to you to decide the final look. I'll just explain the solution I designed:

1. Take two of the Acrylic plates and open 2 holes at 3cm from the top, one at 2cm from the side you first choose and one at 2cm from the opposite side.
 1.1. Open two more holes at 8cm from the top, one at 2cm from the side you first choose and one at 2cm from the opposite side.

2. install the angles, all pointing in the same direction. Then take the two remaining plates and open holes accodingly, so they match the position of the angle's holes...

3. Take one of the latter plates and open holes that match your arduino's fixing holes. Screw the Arduino along with the mounted motorshield to it.

4. Fix this plate between the plates with the angles at the lowest level and screw it.

5. Take the last plate and open a hole of around 1cm in diameter. This will be to pass the cables to the upper level.

6. Pass the cables from the Arduino through the big hole on the loose plate, and in case of the motor cables, briefly disconnect element by element from your arduino, pass the cables through the hole and plug them again.

7. If everything is well connected and you checked the motors are moving and the laser is turning on and off, fix the loose plate to the upper level of our case. That gives you a solid base where to install the cannon...

Step 5: Assembly B - Cannon

(ATTENTION, the red circuit you see on the pictures is a Bluetooth Modem. It's optional so I don't include it in the instructions. Plugging it to the arduino is really easy with the instructions from the seller, you don't even need to add anything to the code)

1. Glue the Stepper Motor to the upper plate of the base. I didn't use hot glue for that but some kind of silicon that I cannot precisely recall. But I guess the hot one should be ok. Place the Aluminum Hub on top. Screw the Servo to it with the help of a Servo L Bracket. Keep the servo in a horizontal position.

2. Install a Tilt bracket on the servo, be sure that it's on its 0° Position (facing up because the motor is lying on its side - we'll invert this in the code so it works properly) See picture. After powering the cannon up you might need to fix this so don't worry now

3. Glue the laser circuit to the servo using hot glue.

4. The custom laser holder that you should 3D-print comes now handy. Remember to measure your laser and modify the mouth's inner diameter in case it varies from the model's. You just need to screw its base on the center of the upper part of the tilt bracket, pass the cables through the hole and continue pressing the laser through the holding mouth all the way to the bottom. If the diameter is the same, the laser should hold perfectly.

5. Connect the laser wires to the circuit mounted on the servo. Try to keep it centered and that all the cables going to the laser are free and on the same path and not entangled with something.

That's it from the construction side.

Step 6: Code

(Before starting: If you don't care about the satellite tracking or you want to first test the thing, you can forget the Processing part and just send serial commands to the cannon via the arduino serial monitor)

1. Download Arduino if you don't still have it.
1.1 Download Processing if you don't still have it.

2. Download the Cannon Code from here ad save it to your project's folder.
3. Download and install the satelistica library for processing from here:

4. Open the .pde file with processing and open the .ino file with arduino.

5. If you have a bluetooth Arduino or module installed, it's time to sync it with your computer.

6. Plug the battery or power surce to your Arduino board, and upload the code to it via USB. If you have BT you can unplug the USB after the upload and switch the serial port to be BT. Then press cmmd+shift+m (ctrl+shift+m on WIN - Linux) to open the Serial Monitor. Set it to 57600 Baud or the serial speed specified on the code (might be 115200).

7. Manually position your cannon pointing to the North. Compass calibration is the next obligated step because of precision. the code isn't still perfect though.

8. Run the processing file and check the visualization. If all went well you'll see which sats are over your head and the cannon should fire a green beam in the direction of the highest one!

9. If you haven't configured the Processing part, you can simply type the angles preceded by letters on the Serial monitor. If you type

A220 (any number from 0 to 360) -  stands for Azimuth = 220°
E24 (any number from 0 to 90) - stands for Elevation = 24°
F1 - is for FIRE the laser.
F0 - is for turning the laser off.

And that would be it. Explore it and take it out some night and watch the sky, there's pretty much to see up there.

*Again: If uploading falis i.e. you get an "timeOut() error", disconnect briefly the Motor Shield from the arduino, upload and plug it again.



    • Oil Contest

      Oil Contest
    • Water Contest

      Water Contest
    • Creative Misuse Contest

      Creative Misuse Contest

    90 Discussions


    Question 5 months ago

    is it illegal to point lasers into the sky without government approval

    There are a lot of heated emotions and unhelpful wild speculation here. Many of these laws are posted online. Cornell was kind enough to post the primary U.S. Federal law on this subject here:

    Many states have their own laws. And surely other countries are likely to have similar laws.

    It doesn't do anyone any good to speculate. And let's try to help each other, not get angry about it.

    And in many places, if you don't like the law, there is a process for changing it!

    Hey, have fun, and let's try not to hurt each other. :)

    1 reply

    I would just like to thank you for your intelligent comment in a sea of irrational and factually incorrect comments. People claiming to have knowledge about a subject that they truly know nothing about annoys me. So thank you.

    Awesome project but unless if you are from outside of the US I was told that it is illegal to point a laser into the sky.

    1 reply

    In Oklahoma it is illegal to look at the night sky or the stars without the proper license. They conflict with the teachings of Genesis and are liberal conspiracy according to the Oklahoma state legislature.


    2 years ago

    hmm lithium ion 7.2 to 12 volt . I think with a regulator a lead acid battery (car battery) would give a huge runtime.

    also it there any chance it could hit a plane and piss off the piolet

    Could you modify this to track a star? As in, input the azi/alt or RA/Dec of a star, and the mount slews the pointer to point there? That would be awesome!

    1 reply

    you would have to study the movement of that star from a reference point, then build your machine on that point. its not tracking the star, it just pointing the laser were it is. that would mean you don't need blue tooth

    Great ible! As far as all the people complaining about pointing this at planes, please remember that it is pointing and tracking at an object very far away, thus barely moving. An aircraft is far closer to the source and will pass through the beam in a split second. In the very rare chance that the actual cockpit was in line with one if these, it would pass through before the pilot had a chance to realize it had. Again, great ible! Kudos

    I really love Instructables; I think there's a lot of creativity and innovation that is expressed here, even if that includes spud guns or catapults that might inflict some minor local damage which might be mitigated by personal liability insurance. Or laser-printed fingernail tats ,,,

    And I understand that some authors believe they are protected by their liability disclaimers.

    But makers who discount the hazards of their expressions by saying, essentially, "Well, maybe your laws would punish this to protect human life, but this might be legal somewhere ... maybe ...", gotta say: "Get Real!" "

    Would Instructables publish a post about "How to enliven a party by piercing a propane tank with an incindiary 30.06 round?"

    No more blinding Instructable posts, please

    8 replies

    A 5mW laser isn't going to blind any pilots, and it certainly won't disable any satellites. Everyone who is posting otherwise needs to do the math on diffraction-limited laser divergence; last equation on this page:

    Even a PERFECTLY focused laser pointer beam will be spread over a spot several meters wide at airliner heights. To do the math yourself: green light wavelength is about 500E-9 m, and a laser pointer aperture is less than 1E-3 meters diameter, and planes fly at 10000 meters.

    This yields at least a 1.5m radius spot, and probably much more given that laser pointers have far from perfect optics. Moonlight is around 1mW per square meter, so the illuminated spot is guaranteed to be dimmer than moonlight, which makes blinding rather unlikely. Not to mention that the chance of just randomly hitting a plane is approximately zero. The only true danger from laser pointers distracting pilots is during takeoff/landing at an airport.

    No more uninformed criticism of projects, please.

    Lets take your math as a starting point: 1.5 m radius at 10,000 m altitude, so 0.015m radius at 1 kilometer, right? And 100 times the intensity, your own math would indicate. Right? One tenth the diameter, one-hundred times the intensity? Because Pie are square? Ouch! That's gonna sting! And a jet traveling at pre-landing approach speed ain't' cruisin' at 17 kph! And is at a much vulenerable point in flight than when at stratospheric altitude. How about creating an instructable that interfaces a GPS with one of those computer-aimed telescopes to provide the same result with less dazzling impact?

    Military pilots have reported routinely carrying their "death ray" shields... a pair of sunglasses.

    Engineers know the most common keychain pointers of 1mw and less are NOT ILLEGAL and NOT DAMAGING. Lasers come in Class 1, 2, 3, etc. A check of the laws (and the math) makes it obvious when a laser is a problem, and, when it's just silly to scream like Chicken Little. Hysteria is for those without a factual knowledge of science. (Some people are afraid of pure DiHydrogenMonOxide!)

    DiHydrogenMonoxide is a commonly used industrial solvent which forms a large part of acid rain, can induce severe burns in its gaseous state and has been found in malignant tumors. and yet, it is still used in practically all food production. Only some companys are invested in reducing the concentrations in their produce. there are probably several sites on the evils of this particular chemical, and several petitions to have it banned. Everyone should conduct extensive research into this deadly chemical, then inform their senator/political representative/mayor/... to gauge their true intrest in public health ;)

    Excellent description of H2O, can I quote your words? It's so hype-notizing! ;)

    You can get more facts on DHMO at For example, high levels of DHMO have been detected in many rivers and streams in the U.S.

    Thanks for reminding me about that site, that's where I got my facts, but I couldn't remember the name

    No, it's not gonna sting. Again, please don't post wild guesses about safety. 5mW / pi*.15^2 = .07 W/m, which is less than 1/10000th the intensity of sunlight and will not cause pain. And again, my numbers were conservative so it will probably be far less. As I said, it's enough to be visible and could be a distraction during landing, but we can probably assume that people are not doing stargazing at the end of a runway, so the chance of accidentally distracting a landing pilot is less than from just turning on an outside light, for example.

    A computer-aimed telescope is much more expensive than this project, it can't point out satellites to a crowd of people, and it already comes with tracking software. Lasers are a very commonly-used tool of astronomy.