Tractor Beams are mysterious waves that can attract particles towards the source. Here, we will show you how to build an Acoustic Tractor Beam with components that can be bought directly on the Internet for less than 75$.

With this Instructable you will be able to get in your hands a device that it was only seen on SciFi movies such as Star Wars or Star Trek.

If you want more scientific background on Acoustic Tractor Beams, you can check our Open Access research papers:

Do not forget to watch the attached video in this Instructables.

Step 1: Gather the Parts and Tools

We present a list of the necessary components. I have tried to place links for different countries. However, the same parts can be found all around the world, some useful websites are http://www.findchips.com/ http://www.dx.com/ http://www.miniinthebox.com/http://www.lightinthebox.com/http://www.banggood.com/

The circuit is not complicated. Basically, an Arduino will generate 4 half-square signals at 5Vpp 40kHz with different phases. These signals get amplified to 25Vpp by the Motor Driver and fed into the transducers. A button pad can be used to change the phases so that the particle moves up and down. A battery (7.3V) powers the Arduino and the logic part of the Motor Driver. A DC-DC Converter steps-up the 7.3V to 25V for the Motor Driver.


  • 30x 16mm 40kHz Transducers The MSO-A1640H10T are the best but minimum order is 500, they are good so perhaps you can save them for future ultrasonic projects. Alternatively, others 16mm 40kHz transducers will serve (emitters and receivers are pretty much the same) for instance the MCUSD16P40B12RO.

Necessary Tools:

  • 3D printer -> you can use an online service
  • Soldering Iron, Tin and Flux.

  • Drill

  • Hot-glue gun

  • Multimeter

  • Cable Peeler

  • Screwdriver and Pliers.

Step 2: 3D Print the Bowl

The transducers will be mounted in this bowl. This shape allows to naturally focus the beam.

We used an Ultimaker Extended 2+ with a 0.4mm nozzle and the Normal settings. No support, only brim. It does not need to have a perfect finish so any regular printer should work.

Step 3: Solder Arduino Headers (upwards If Possible)

Step 4: Program Arduino

Upload the attached program in the Arduino Nano. If you are using a cheap Nano (totally recommendable) you will need to install new drivers, there are usually links in the webpage where you bought it.

Step 5: Charge the Battery

This way when you finish the project it will be at full charge.

Step 6: Cut the Handler

300x45x15mm rectangular piece of wood.

Step 7: Redrill the Bowl

Sometimes the holes are not perfect and are a little bit clogged, re-drill them if it were necessary.

Step 8: Attach the Bowl to the Handler

Drill an initial hole in the handler, attach the central screw and then you will be able to drill the two holes at the sides.

Deattach the bowl, it is more comfortable to attach and test all the components without the bowl. At the end of the Instructables we will reattach it.

Step 9: Screw the DCConverter and the Driver

Close the the drilled holes for the bowl we will place the DC-DC converter at one side and the Driver at the other. Put them and mark with a pen to drill later. Then pass a screw and a nut through the holes of the devices for being able to attach them properly to the wood.

It is very important to leave the OUT side of the Converter closer to the bowl.

Remove the indicated jumper of the Driver and keep it for later.

Step 10: Stick the Arduino

With Velcro tape, double sided tape or just hotglue stick the Arduino below the Driver with the USB port pointing to the right.

Put the jumper between the D10 and D11 pins.

Step 11: Drill Through Holes

Drill two through holes above the Driver.

Drill tree through holes below the Arduino.

We will pass wires through these holes.

Step 12: Solder Wires to the Power Switch

The central pins provides the current to the circuit, the right pins go to the DC barrel and the left ones to the battery connector pins.

Try to use red wires for (+) and black for ground (-) to keep things ordered. Pay attention to where the + and - of the DC barrel go and solder it appropriately.

For the battery connector pins we can use pin headers and a tiny piece of strip-board. Be sure that the wires are not touching each other (use a multimeter), and even put hotglue between them to make them safer.

The power switch provides current to the circuit either from a DC barrel or from the battery.

We can use any DC adaptor between 9V and 12V that can provide at least 2A if you do not want to use a battery.

Step 13: Stick the Battery

With double-sided or Velcro tape. Do not use hot-glue since it could damage the battery. Put it in the same orientation as the image.

Step 14: Connect the DCConverter With the Driver

These wires will pass the step-up voltage (25V usually) from the DCConverter to the Driver.

Step 15: Glue the Power Switch

Step 16: Connect Logic Supply

We will provide 7.4V to the DCConverter IN.

First connect the black ground wire (-) from the central pins of the Switch into the DCConverter IN(-), in the same hole connect the ground for the Arduino.

Then, connect the red (+) wire from the central pin of Switch into the DCConverter IN(+), in the same hole put the VIn of the Arduino and the logic supply for the converter (pins from where we removed the jumper, very important to connect it into the highlighted pin).

Tining the tips of the wires will facilitate putting several wires in the same hole.

It is also possible to get voltage for the Arduino from the DCConverter. Instead of connecting Converter.IN(+) to Arduino.VIn, we can use DCConverter(5V) to Arduino(V5).

Step 17: Connect Signal Wires

These four wires will transfer the signals from the Arduino into the Driver.

Connect Arduino.(A0,A1,A2,A3) to Driver.(IN1,IN2,IN3,IN4).

Step 18: Button Pad

The button pad is optional, but if you make one you will be able to levitate the particles up and down.

The idea is to have three button pads that when pressed they make contact with ground (the buttons are active low).

Get ground from the Arduino to the common terminal of the buttons. Then, connect each of the buttons to D2(up), D3(down) and D4 (reset position).

Step 19: Set the Voltage to 10V

First Connect the battery (be sure to use the right polarity).

Switch on the device.

Rotate the potentiometer counterclockwise until you see 10V in the display.

In the final device we will use 25V but it is safer for the test equipment to work at 10V. If you use X10 probes then it is alright to use 25V throughout the process.

Step 20: Test the Signals

This step is optional but it is about time to check that everything is working fine.

Get two probes and connect the grounds to a ground of the circuit, temporarily using the button pad ground is one of the easiest options. Remember to put it back when finished.

Before the driver the signals should be 5Vpp and after the driver 10Vpp.

Signals from the same side are in phase while signals from opposite sides should be out of phase.

Step 21: Mark the Transducers (hard Method)

The transducers have polarity and they need to be marked. Do not trust manufacturer marks since they can be wrong.

This method is the one contained in the video, but we have an alternative one that is much easier one in the next step.

First take ground and voltage from any of the Driver outputs. Connect them to a transducer and also connect one probe to the same transducer. This probe will capture the emitted signal.

Take another probe and connect it to the transducer that needs to be marked, this will be the received signal.

Put the transducers face to face and check the signals in the scope.

If the signals are in phase, mark the leg connected to ground. If they are out of phase, mark the other leg.

Mark all the transducers.

Step 22: Mark Transducers (Easy Method)

This method for marking transducers is much easier than the previous one.

Just connect one probe to the transducer.

With a metal wire poke gently and repeatedly the inside of the transducer. Check the signal in the scope, if the first spike goes up, mark the ground leg. If the spike goes down, mark the other leg.

Step 23: Mount the Transducers

Put the transducers in the sockets with the marked legs pointing upwards (towards the top).

You do not need to populate the bottom row.

Step 24: Wire the Transducers

We need to wire the transducers to deliver power into them.

Measure the needed length for the wire and give three extra hands for connecting it later.

With the cable peeler, partially peel at the correct distance, later these exposed parts will be twisted around the transducers legs.

Once that you have made the cuts with the peeler, redistribute the plastic to keep a uniform length of cooper exposed. Twist the cooper wires to make them more solid. Twist the exposed parts around the transducers legs, apply flux and solder.

Follow the pattern presented in the images. That is, all the grounds are connected together. The red wires of the same half go towards the same side.

Pay attention to the numbers, these numbers correspond to the driver numbers.

Step 25: Test the Transducers

This step is optional but it is convenient to check that all the transducers are connected correctly.

Connect the ground from the bowl into the driver ground (there will be another wire there).

Connect the 4 red wires from the bowl into the outputs of the Driver, respect the numbering.

Connect two extra marked transducers to the scope probes. Be sure to connect the ground into the marked leg (or at least connect the two transducers in the same way). With these transducers we can check the emitted signal of other transducers.

Transducers from the same half of the bowl should emit in phase. Transducers from opposite halves emit out of phase.

Transducers with the wrong polarity should be desoldered, rotated and resoldered.

Step 26: Set Voltage to 25v

Be sure to set the DC-DC converter to 25V using its potentiometer.

Step 27: Attach the Bowl

Now that all the components are in place, it is time to reattach the bowl into the handler.

Step 28: Connect the Wires

Connect the ground from the bowl into the driver ground (there is already another wire there).

Step 29: Switch on and Levitate

Switch on the device, you should be able to feel a little bit the sound, or hear it if you point it into a big chunk of expanded polystyrene or foam.

Using an acoustically transparent sheet or tweezers you can place particles in the centre of the bowl (above 1.8cm approx) and they will be levitated.

Push the buttons to move the particle up or down.

Depending on the size of the particle and how close it is to the bowl, you will be able to levitate it laterally or upside down. It is also possible to levitate particles that are resting on a surface.

Step 30: Building Other Sonic Devices (Optional)

We have presented how to build the most efficient device but there are others that require even less electronics although they are not as efficient in terms of levitation power to watts.

For the following devices you will need smaller transducers, wires and connectors, as well as a different version for the Arduino (that generates always a 40kHZ signal).

Step 31: Coils Device (Optional)

Print the attached STL file. The transducers are fit in the bottom holes and they are all driven with the same signal.

Step 32: Tubes Devices

Print the attached STL file. The transducers are fit in the bottom holes and they are all driven with the same signal.

Step 33: Miscellaneous Files

Raw design files (Inventor)

<p>I made it following the instructions one by one. Worked on the first time.</p><p>For sure I found some troubles afterwards: for those who get the step motor drive super hot, it is because the legs of the transducer is being shorted with the aluminium case. Do not bend the legs to avoid this problem. </p><p>I's running mine at 18V. </p><p>I made the body for 3D print and you can find it at <a href="https://www.myminifactory.com/object/acoustic-tractor-beam-38484" rel="nofollow">https://www.myminifactory.com/object/acoustic-trac...</a></p><p>Thanks for amazing project! </p>
Thanks to you Fred, that looks amazing.
<p>I used this Ultrasonic sensor transceiver from Aliexpress, seems to work.</p><p>https://de.aliexpress.com/item/Ultrasonic-sensor-transceiver-integrated-diameter-40KHZ-16MM/32767545603.html</p>
<p>Hi,</p><p>I got the same transducers but they do not fit properly into the bowl (see pictures). Did you modify the bowl in some way? The diameter of my transducers is 11.4 mm, height is 11.8, what was the original bowl designed for?</p><p>I am wondering whether it would be possible to leave out every second transducer in the upper row, how would this affect the performance? So far I did not manage to levitate anything and the object is always pushed out, probably because there is no proper focus.</p><p>I would appreciate your advice.</p><p>Best,</p><p>Moritz</p>
Hi Asier,<br>Sorry I meant the diameter is 16.4 mm not 11.4 mm. Maybe scaling the bowl up a little bit is the easiest solution.<br>Thanks,<br>Moritz
<p>Hi there</p><p>I didn't any modification of the stl file. I got the same problem as you but with some kindly force to my transducers I managed to properly fit them in. They may be under some little strain I gues but it works.</p><p>I also got some &quot;jumping&quot; of little things but i managed it with some little grid, to levitate it in the middle.</p><p>Hope I could help</p>
<p>Hi. The STL for the bowl is designed to support 16mm diameter transducers. Most of the transducers that I have seen are either 16mm or 10mm diameter. perhaps the easiest way is to scale down the bowl to fit the transducers.</p>
<p>Hi Asier,</p><p>I've got the problem that I'm just able to move objects down, up and reset button are not working. When I'm moving objects down, they won't stay in position, but will levitate back to start-position as soon as I let the button go. Do you have an idea how to solve this?<br>Best regards. Kris</p>
Sounds like a strange behaviour. Could you try to bypass the button pad (the problem may be in it) and directly connect GND to D2 (down), D3 (up) or D4 (reset) with a jumper wire to check if it works properly. Best Regards, Asier.
<p>Hey, thank you for your fast reply. Already tried that, still not working :/ I'll try another Arduino on Monday, if you got any other ideas let me know.<br>Best Regards, Kris</p>
<p>Replacing the Arduino fixed it :)</p>
<p>Hello<br>Can we use http://www.ebay.com/itm/2-Pairs-TCT40-16R-T-40KHZ-Ultrasonic-Transducer-Sensor-16mm-Ultrasonic-Probe-/131590233040?hash=item1ea3639bd0%3Ag%3AReQAAOSwGzlTv6iX instead of <a href="https://manorshi.en.alibaba.com/product/60175991283-800165597/Long_Range_15Meter_Aluminum_Plastic_Ultrasonic_Sensor_Detector_110dB_Sensor.html?spm=a2700.7803228.1998738836.186.LYgvHK" rel="nofollow">MSO-A1640H10T</a>???</p>
It is hard to say. The size and power seem ok but the problem may be the phase deviation, especially between the emitter and receiver. <br><br>Put all the Ts in one half and all the Rs in the other.<br><br>Best regards. Asier.
<p>Thanks for your response</p>
<p>We are currently low on budget so can we buy this or is there any other option on eBay or Amazon because minimal order in your description is 500 and its too much for us.<br>So is there any option on eBay or Amazon?</p>
<p>Hello Asier,</p><p>I am trying to learn as much as possible from your device, and I have noticed something i haven't seen before, since I didn't have a decent oscilloscope. My tractor beam works fine, I can move the object up and down without problem. But when I check the signal with the oscilloscope, I see that the reading from the analog pins looks perfectly square, but the amplified one is noisy. Is there a way to reduce this? What might be the cause?. I attach an image.</p><p>Thank you very much in advance!! </p><p>Regards, </p>
Hi Andrea, if there is no load at the output, it is common to see those spikes in the amplified signal. There should also be some spikes on the top but the scope may cap at 20Volts.<br><br>Also, in theory sinusoidal waves instead of half-square should be used for feeding the transducers but in practice the transducers are so narrow band that the output is still sinusoidal.<br><br>The important part is the output of the transducers. You can connect a transducer to the scope's probe and check the sound output. <br><br>
<p>Hi Asier, </p><p>I am an Undergrad student at Drexel University, a couple of students and I are trying to reproduce your project and combine it with MIDI note input. We have be successfully able to recreate the device but we are having issues understanding the inner workings of the Arduino code. Is there a way to alter the given Arduino code so that we can change the height of the the levitating particle from the Arduino itself? </p>
Hi Mayank, it could be hard to modify the arduino code without affecting the output frequency. What I would recommend is to reduce the variable BUTTON_SENS until the reponse is as fast as you need and use another arduino to control the D2 or D3 pins as needed (ground to activate them and 1 as default, remember that they are pulled-down to avoid accidental activation by noise).
<p>Hey Asier! <br><br>I would love to tell you that after going through all of the steps, hundreds of comments and both of your research papers (open access) I managed to make this work! It feels so good not only to see it floating but also to know the theory behind it (The article in Nature is very very well written) <br><br>I would like to now create the other types of traps to move the bead in a plane. I am guessing for precise control a linear structure with standing waves will be needed. <br><br>Here is a video of it working - </p><p><iframe allowfullscreen="" frameborder="0" height="281" src="//www.youtube.com/embed/MEKhf6q6kxI" width="500"></iframe></p>
<p>Hi evil_scientist, that is very good work, glad that you enjoy acoustic levitation. You are right for the other arrangements a phased array is required with at least 64 channel, I made a driver board based on arduino that we use for some of our current experiments. Of course, I am planning to release it but it will take some time to put it together. But in a couple of months we want to release a single-axis levitator capable of levitating liquids and ants, as well as a directional speaker. All these projects are based pretty much in the same hardware so I guess that you will enjoy it. Best, Asier.</p>
<p>Hi Asier,</p><p>Two questions:</p><p>I successfully made the tractor beam and everything seems to work fine, however I am getting a small ticking/popping sound from my transducers. Is this a sign of a short circuit or something similar?</p><p>Second, what are the important parameters here for scaling up this project (larger hemisphere)? Is spacing between the transducers important relative to sound wavelength?</p>
Hi Cole,<br>The noises should only be there when you move the bead. Getting popping noise could because not enough current can be provided or one the connections is a little bit loose, do the LEDs also blink with the noise?<br>High pitch sounds are because something is touching the pistons of the transducers, that happens a lot when beads get inside or if you are using metallic grid transducers, the grid is in contact with the piston. You can use a thin tweezer to pull the grid outwards.<br><br>I see three types of scaling:<br>- distance: a bigger bowl with more transducers.<br>- bigger objects: only way is using less frequency. Which is not feasible since 25kHz transducers are massively expensive.<br>- more dense materials (like liquids): I would suggest to go for a standing wave levitator. I am putting an instructables on this one, it can leviate liquids, ants and other interesting samples.<br><br>Best regards.<br>
<p>Hi Asier,</p><p>A group of undergraduates including myself are attempting to reproduce an acoustic tractor beam and we've found it to be fairly difficult. Our main question would be who is your targeted audience when it comes to replicating an acoustic tractor beam?</p>
This instructables is not easy: you will need soldering skills, medium knowledge of electronics and sound.<br><br>However, lot of people managed to build it when they can get the correct transducers. From undergrads to parents working with their kids.<br><br>I think it is a nice project to get into ultrasonics and acoustic levitation. There will be other coming soon.
<p>Hi Asier,</p><p>I have a very simple assembly question but I want to make sure I have it right. Is it correct that the ground legs of the transducers get connected to the red (positive) wires on the bowl? The directions indicate that the transducers should be inserted with the ground legs up which means the ground legs will be connected to the positive wires which in turn are connected to the four outputs. I could be missing something obvious so I want to check with you before I solder the transducers to the wiring.</p><p>Thanks,</p><p>-John (SwatBio)</p>
Hi John, whether the marked legs are pointing inwards or outwards is not relevant. What it is really important is to have all in the same way.
Okay, great. Thanks for your help!<br>-John
It should be possible to control the phase change through Bluetooth, I have done it with serial and the functioning is the same. If you have problems just use another Nano that read the bluetooth and puts ground into the pins of the other arduino.<br><br>Transducers for the upcoming levitator that can levitate liquids (and also for the directional speaker) and that are any of these:<br>Manorshi Black 10mm - 0.34$ - MSO-P1040H07T<br>Ningbo Black 10mm - 0.38$ - FBULS1007P-T<br>Murata Black 10mm - 1$<br>- manorshi https://manorshi.en.alibaba.com/<br>- ningbo https://bestgroup.en.alibaba.com/product/987365133-800848321/dog_repeller_ultrasonic_transducer_40khz_black_plastic_ultrasonic_sensor_ultrasonic_depth_sensor.html?spm=a2700.7803228.1998738836.187.TSqSlZ<br>- Murata provider http://www.hklihengic.com/english
<p>Hi Asier</p><p>That is an awsome project and i am trying to built it with my son for his sience fair.</p><p>I would like to know can you use the 16mm for the project that you stated to lavitate liquids? the reason I am asking is i just purchase from Alibaba 500 of them for the bowl type project. </p><p>and if it can be used what would need to be done diffrently?</p><p>Thanks</p>
<p>This project uses 16mm, I was using 10mm transducers for the levitator and directional speaker but I will try to put two versions: one for 10mm and another for 16mm.</p>
<p>Hi Asier, </p><p>I&acute;ve connected the bluetooth module in the same nano used for the device. However, all I can get is the ball jumping for a moment, and I guess it is just because of the interference. My code sets D2, D3 or D4 high or low depending on the virtual button I press (that as much as I got from the original code). I am sure I am missing something. Coudl you please give me some advice?</p><p>Regards, </p>
How many transducers should de get?
The water levitator uses 72 and the directional speaker around 150 I think.
<p>Dear Asier Marzo, thanks for your share. I have some questions that need the recommendation from you.</p><p>1/ I have built the device as in the clip but it has not levitated anything. I'm using the MA40S4S transducer. Whether the size of these affected the focal forces to levitate particles. I think that I will rebuild the bowl by changing the distance from the transducers, it that right?</p><p>2/ The Drivernano_tractor.ino file have included the code for control button to up or down pariticles? Can you explain overall about this, I read but I don't understand it.</p><p>3/ Can I instead of the material of particles by the different types?</p><p>Thanks you so much.</p>
Do not be to hard on him, it is a common mistake. Hope that everything goes alright and if you enjoy the project, stay in touch. I have some more similar projects coming: a directional speaker and a single-axis levitator capable of levitating water and live insects.
<p>Hello Asier,</p><p>I am building your acoustic tractor beam for a professor and student who hope to use it to catch and levitate drops of urine from hummingbirds -a very unusual application! After reading your comment yesterday about a new project capable of levitating water, I'm wondering if you think the acoustic tractor beam in these instructions is capable of doing what we intend.</p>
Dear SwatBio,<br><br>Unfortunately, the tractor beam will not be very useful.<br><br>I am working in a simple single-axis levitator that would easily levitate small droplets of urine. As long as you inject them with a pipette or syringe. It would be complicated to catch them in mid-air.<br><br>Is that a research work for an university or research center. I am quite use to collaborate with them. I would be very willing to help you.<br><br><br>Best regards,<br>Asier.
<p>Thank you, Asier. Yes, the project is for a college research project. I will, no doubt, seek your advice at some point. It's very generous of you to offer your help!</p><p>-John (SwatBio)</p>
<p>My friend and I made this for a school project and we did everything almost exactly the same as yours, switched it on and could hear a high pitched sound when we put foam over the top. But it would not levitate anything. We later narrowed this down to the fact that the DC-DC booster wasn't &quot;boosting&quot; as such, as when We tried to change the output, it would go down but not up. Did we do something wrong? </p>
Could you check the model of the DC-DC converter? There step-ups and step-down.
Yeah, I'm sorry, we checked everything today and discovered that we did purchase a step down converter (Shh it was my friend, blame it on him). I think that was about our only problem but if anything else goes wrong I'll ask you, or since we're nearly done, the next time might be pictures of the finished product
Some shortcut with the buttons. If they are not pressed the transducers should not click. Do any of the lights blink?
<p>The button panel was indeed shorting, and it has been fixed. The ball is still being thrown out though. The water bowl shows the pattern you described, but at a certain point (the point that the ball is thrown) the water ripples violently in a circular wave. Is there a possiblity of connecting something the wrong way around?</p>
Would there be any possibility of powering the device from a regulated DC just to check how much current it is consuming.<br>
<p>Hey Asier,</p><p>sorry if this is a duplicate comment, I had logging in issues.</p><p>We have completed your project but the ball is being thrown out rather than held in.</p><p>I'm guessing it's to do with waves being in/out of phase, but I have no idea!<br>I have no current access to an osciliscope, but if it requires one I can do that in future.</p><p>In the mean time, is there any likely problem?</p><p>Awesome project by the way!</p><p>Thanks</p>
A quick way of testing what is being emitted is to point the bowl into a water bowl. You should be able to see a dimple in the surface. If the trap is correct, it should be a dimple split in two.<br><br>It is possible to make quite a decent scope with an Arduino Nano (200Ks and 10bits), the tutorials that I have seen on that are a little bit crap so I will try to upload one.
Could you put a picture of the signals that you see?
<p>Hi Asier,</p><p>We've got the project working, and it's making sound, but we can't make anything levitate. We've spent a couple days testing the transducers with the oscilloscope, and sometimes we'll find that one is exactly in between in phase and out of phase. Is there a reason that you can think of for this? </p>
Sometimes the transducers are very poorly manufactured and have a lot of phase deviation between them. However, only one should not hinder the rest of the device. What is the amplitude of the received signal?

About This Instructable




Bio: Researcher at Bristol University interesting in Ultrasound and in general any effects that waves can produce.
More by Asier Marzo:Acoustic Tractor Beam 
Add instructable to: