Introduction: Acoustic Levitator

Picture of Acoustic Levitator

Use acoustic waves to hold in mid-air samples such as water, ants or tiny electric components. This technology has been previously restricted to a couple of research labs but now you can make it at your home.

If you want more background and details you can check our Open Access papers:

Do not forget to watch the attached video.

If you want to build other devices coming directly from the research lab subscribe or get in touch: Youtube:

Twitter: @AsierMarzo

Step 1: Gather the Components

Picture of Gather the Components


Now you can get all the components in this kit:

Individual components

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

  • 72x 10mm 40kHz transducers. Manorshi provides MSO-P1040H07T at a very good price, minimum order is 500 but they will ship with less at a higher price. Also Ningbo has good ones FBULS1007P-T
  • 1x 3D-printed TinyLev support. (STL file provided in Step 2)
  • 1x Arduino Nano (US UK)
  • 1x L298N Dual Motor Drive Board (US UK)
  • 1x 130x90mm sheet (wood or acrylic) for the base of the driver board.
  • 1x power switch
  • DC adaptor variable between 7V and 12V
  • DC female connector
  • Jumper wires
  • 12AWG black and red wire
  • 24AWG black and red wire
  • 24AWG exposed wire (UKUSA)
  • Some Expanded Polystyrene beads to levitate (between 1mm and 3mm diameter)
  • An acoustically transparent material: A metallic grid, very thin fabric or teabag paper.

Necessary Tools

  • 3D printer -> you can use an online service
  • Soldering Iron, Tin and Flux.
  • Hot-glue gun
  • Multimeter
  • Cable Peeler
  • Screwdriver and Pliers.
  • Drill
  • Oscilloscope with two probes (optional) -> you can get one for less than 50£

Step 2: 3D Print the Base

Picture of 3D Print the Base

3D print the STL file included in this step. We used a 0.4mm nozzle and brim but no support. It should be possible to print it in one piece.

Step 3: Clean the Base

Picture of Clean the Base

You may need to use a file to clean the edges around the levitator and clean the sockets. A Dremel will do the job faster. You may also want to drill a hole in the centre of each side, this will allow to insert a camera, a needle or evacuate liquids.

Step 4: Mark Polarity (Recommended Method)

Picture of Mark Polarity (Recommended Method)

The easiest way to mark the polarity is to use the Arduino itself. This method does not require an oscilloscope or to poke the transducers inside.

Install the code from this section into the Arduino. Connect one wire to A0 and another wire to GND.

While the Arduino is connected to the PC, run the Serial Plotter (Tools->Serial Plotter) and be sure that the speed is set to 115200.

When a transducer is connected between A0 and GND the signal will do one of the following things:

  • Signal goes down or remains at 0. Then, mark the leg connected to GND.
  • Signal goes up or remains at 1023. Then, Mark the leg connected to A0.
  • It is important to not touch the transducers leg or the wires while doing that or the values will reset.

If it is still not possible to detect the polarity, poke the inside of the transducer with a thin wire and check if the spike goes up or down (like in the obsolete method). Spike up -> mark A0 leg, spike down -> mark GND.

Step 5: Mark Polarity (Obsolete Method)

Picture of Mark Polarity (Obsolete Method)

The transducers have polarity and it is important to glue them in the base oriented with the same polarity. Do not trust the marks made by the manufacturer, they are not reliable at all. The easiest way is to connect a transducer to an oscilloscope and poke the inside with a thin wire. If the spike goes up, mark the leg connected to the positive part of the probe. If the spike goes down, mark the leg connected to ground. You can use two stripes of copper to make this process faster. After all, you will need to mark 72 transducers.

Step 6: Glue the Transducers

Picture of Glue the Transducers

Apply a little bit of hot glue on the side of the socket (if you apply glue near the holes for the legs, the legs will be covered in glue when you push the transducers through), push the transducer in and apply some pressure with your fingers to make it lay as flat as possible in the socket.

It is very important that all the marked legs are pointing towards the centre of the device (where the hole is).

Step 7: Wire the Transducers

Picture of Wire the Transducers

Wrap the exposed wire in six concentric rings around the legs of the transducers.

Step 8: Solder

Picture of Solder

Solder the pins to the wires.

Step 9: Prepare 4 Long Wires

Picture of Prepare 4 Long Wires

Now, we need to make the wires that connect the transducers to the driver board.

2 red wires and 2 black wires. They need to be around 1 meter. In one side there is only the tip exposed. On the other side there are 3 segments exposed, in the video it is shown how this can be done.

The side with 3 segments will go into the transducers rings and the side with only the tip will go into the driver board.

Step 10: Solder Long Wires

Picture of Solder Long Wires

Solder the long wires to the transducers. The side with the 3 segments exposed goes into the transducers, one segment for each ring. Each side of the levitator has a black and a red wire. You can use flux and tweezers to facilitate the soldering. Tin the other sides of the wires (the side that only has the tip exposed)

Step 11: Solder Arduino Headers

Picture of Solder Arduino Headers

Solder the headers of the Arduino, backwards if possible.

Step 12: Program the Arduino

Picture of Program the Arduino

Upload the code provided in this step into the Arduino Nano.

Step 13: Glue Arduino and Driver

Picture of Glue Arduino and Driver

Glue the Arduino Nano and the Driver into the base. It is important to use the positions and orientations of the figures.

Step 14: Create the DC Supply

Picture of Create the DC Supply

You will need to solder the DC female connector to the Switch and leave two wires prepared to supply power to the driver board.

Step 15: Glue DC and Wiring

Picture of Glue DC and Wiring

Glue the DC connector and the switch.

Connect the red wire from the supply into the 12V input of the driver.

Connect the ground from the supply into the middle connector of the driver, also insert a male-female jumper there.

Insert a male-female jumper into the 5V input of the Driver.

Connect the male-female jumpers that we connected to the driver into ground and 5V of the Arduino.

Connect 4 female jumpers from the Arduino (A0,A1,A2,A3) into the inputs of the driver (IN1,IN2,IN3,IN4).

Connect a female-male jumper into ground of the Arduino, this jumper can be connected to D2, D3 or D4 to move the particles up, down or reset them to their original position.

Step 16: Test the Driver

Picture of Test the Driver

When powered (always between 6V and 12V) the output signals of the driver (IN1&IN2 or IN3&IN4) should output a 40kHz square wave of twice the voltage provided to the circuit.

Step 17: Test for Shortcuts

Picture of Test for Shortcuts

Test that there are no shortcuts between the red and black wires of the levitator.

Step 18: Test the Transducers

Picture of Test the Transducers

Connect the levitator to the driver board and switch it on (always provide between 6V and 12V). For testing, 6V will be enough.

You will need two probes with transducers connected (pay attention to connect the marked leg into the positive part of the probe).

Transducers of the same array (side) should be in phase.

You can correct mistakes by cutting the exposed wire and bridging with wires.

Step 19: Test Optimum Resonance

Picture of Test Optimum Resonance

Connecting the wires as shown in the right should provide optimum performance and minimum power consumption. Otherwise, swap the red and black wire.

Step 20: Secure the Wires and Glue the Legs

Picture of Secure the Wires and Glue the Legs

Apply some hot-glue to glue the wires to the levitator for mechanical support.

You can now glue the legs.

Step 21: Levitating Solids

Picture of Levitating Solids

Provide up to 10V. You can use a tweezer to place the particles. Also a metallic grid or thin fabric (acoustically transparent) will be useful since the particles can be placed there and then introduced into the levitator.

Step 22: Levitating Liquids

Picture of Levitating Liquids

It is necessary to adjust the voltage to the type of liquid. Too high and the droplets will pop, too low and they will fall. For water around 9V is enough and for alcohol around 8V.

It is important to place a thin fabric on the bottom to absorb falling droplets, they can damage the transducers.

Place a particle to have a guidance of where to inject the droplets.

A syringe with a bent needle and the tip removed is the best option.

Step 23: BIGLev (optional Device)

Picture of BIGLev (optional Device)

If you want a more powerful levitator you can use the 16mm transducers. The process is exactly the same but you will need to 3d-print the levitator base in 2 part and glue them together (one half is attached in this step). This levitator can take up to 20V in the driver board (40Vpp) and levitate solids of up to 6g/cm3 but it is not as easy to use for liquids.

Step 24: Mid-Lev (Optional Device)

Picture of Mid-Lev (Optional Device)

If you want to use 16mm diameter transducers but BIGLev is too big, you can use MidLev. It uses 16mm diameter transducers but it will fit most of the printers.

Step 25: MiniLev (Optional Ultra Low-budget Device)

Picture of MiniLev (Optional Ultra Low-budget Device)

This solution only requieres an Arduino Nano and two transducers. You can desolder the transducers from a cheap Range Finder HC-SR04.

Install the provided Arduino Code from Step 12. Connect pin D10 to D11. Connect one transducer to A0 and A1; and another transducer to A2 and A3.

Put the transducers opposite to each other to levitate a particle between them, it is easier to place the particle with a metallic grid.


collinleo25 (author)2017-12-07

Hi, I just wanted to know how much volts actually go on both outputs of the motor drive board to the top and bottom arrays. I can't get the device to levitate anything, styrofoam just bounces around.

Asier Marzo (author)collinleo252017-12-08

Hi, you put anything between 5V and 12V into the board. The board works in push-pull so the transducers see double the voltage that you put in, i.e. for a 7V input you get 14Vpp into the transducers, which should be more than enough for levitating styrofoam. Check the video for the particle sizes and how to put them in. Best.

klettervirus (author)2017-12-06

I made it and designed a simple clip-on foot. I do not want to violate any rights, would it be ok to post the *.stl file somewhere? Would use thingiverse... Its an easy print, ~1hr.

I can send it to you, so you can use it!

NagyD1 made it! (author)2017-12-06

Amazing tutorial. Thanks

benedic2 (author)2017-11-30

Hello, I built the tinylev and it can levitate multiple styrofoam particles, but will not levitate fluids no matter what I try. Any thoughts?

Jakub_Nagy (author)benedic22017-12-03


levitating fluids is a very hard task. I could not get it working the first two weeks, but after some practise, I did it. The key two things when levitating droplets are:

1) The angle of the needle

2) The voltage you put into the levitator

Also, levitating small droplets at high voltage is a lot easier than levitating big at lower voltage. That's because with small droplets, you don't have to care about surface tension. When you put a big droplet inside levitator when voltage is about 12V, the big droplet will immediately break down into hundreds of smaller droplets, and some of them will stay levitating.

Hope that this will help you

BoianM (author)2017-11-28

Thank you!

Just received probably the very first Acoustic Levitation KIT :-)

Hope to start potting it together soon!

Asier Marzo (author)BoianM2017-11-29

Very good luck

Jakub_Nagy made it! (author)2017-11-15


I build a case for the levitator using laser cut MDF. It's very robust and it hides all the electronics inside. It also serves as a stand because of it's rectangular shape. It also has a control panel where a switch can be placed and I also plan to add there a DC-DC step up module with display. I added two LEDs so others can see tiny particles levitating even in dark enviroment. I realy recommend this if you want your levitator to be nice and safe. If you want it to look more futuristic, you can cut it from acrylic, so you can see what's inside. But I like the mdf design more. Here are some pics:

Jakub_Nagy made it! (author)Jakub_Nagy2017-11-24


I'm preparing version 3.0. In this version, I want do add LM2577 (variable step-up converter), li-ion battery and charging module, so it'll gonna run on rechargable batteries. I'll post a separate instructable about how to make this nice little case. Some process pics:

Yokostarling (author)Jakub_Nagy2017-11-22

Would you be able to post a pattern of your case? With dimensions etc of the pieces? I am very interested in creating this for our levitator as well.

Jakub_Nagy (author)Yokostarling2017-11-23

OK. Give me your email adress. But there are some mistakes and I can't fix them because my trial version of corel draw already expired. But I'll try to redraw it in some other program.

Asier Marzo (author)Jakub_Nagy2017-11-15

That is amazing work. One cool option could be to use UV paint (or just highligther) and use UV LEDs. Best, Asier.

Jakub_Nagy (author)Asier Marzo2017-11-15

Did you meant the UV paint for the case or for the particles?

Asier Marzo made it! (author)Jakub_Nagy2017-11-16

The particles

Jakub_Nagy (author)Asier Marzo2017-11-16

That looks very cool. Where did you get the UV paint?

Asier Marzo (author)Jakub_Nagy2017-11-16

Any fluorescent paint does the job. Regular yellow highligther is also fluorescent.

Jakub_Nagy (author)Asier Marzo2017-11-16

Ok. What's the device under the particles? Is it something new? Why are the transducers aranged in such shape?

Asier Marzo (author)Jakub_Nagy2017-11-18

It is a 8x8 flat array, I will publish soon an Instructables about it (it needs a 64-channel board to be controlled). In a tractor beam, when you put several particles they stick to each other in a vertical formation. In the standing wave if you try to put several particles in the same node they will be in a horizontal formation.

bob8898 (author)Jakub_Nagy2017-11-15

looks awesome

bob8898 (author)2017-10-05

Hey Asier! Thanks so much for all of your help, I have all the supplies and have started building. I was wondering how you designed these levitators? I was hoping I could design a small one of my own using only 2 of the transducers.

Asier Marzo (author)bob88982017-10-06

I used the approach described in this paper:

If you put just 2 transducers opposite to each other it will work as long as they are not separated more than 5cm or so.

bob8898 (author)Asier Marzo2017-11-02

So as I start thinking about making a mini version, I am wondering about power. Do I still need to drive the 2 transducers with the big motor driver @ 6 volts?

Asier Marzo (author)bob88982017-11-15

I have added a step at the end that shows levitation with 2 transducers directly driven from the Arduino.

bob8898 (author)Asier Marzo2017-11-15

I was hoping you could leave it as the bare minimum (Like you have here) And create my own instructable with a nice little case and include creadit to you there.

bob8898 (author)Asier Marzo2017-11-15


Asier Marzo (author)bob88982017-11-02

I will test to drive 2 transducers directly from the Arduino (10Vpp max) and report the results.

RobertC97 made it! (author)2017-11-10

I made the tiny version, but am having trouble getting it to levitate. I have tried a 12v 1 amp PS and a 9v 500 mA PS. The foam bounces around but will not levitate. I only get the same voltage from the driver that I am supplying as well. Any help would be appreciated.

Asier Marzo (author)RobertC972017-11-11

You do not need to keep connected GND to D2. It is only when you want to move the particles up. There should be a wire connecting D10 to D11.

RobertC97 (author)Asier Marzo2017-11-11

I removed the green jumper wire, there is a jumper between D10 and D11. I put 12V but I cannot find the levitation point. Is 12v too high? Is 500 ma too low for 9v?

Asier Marzo (author)RobertC972017-11-12

with 7V should be more than enough to levitate styrofoam. Take tiny particles and put in the center like at the end of the video.

0mb60 (author)2017-11-10

in the tiny_nanolev code im trying to add movement in the horizontal direction, aswell as the vertical direction. i need therefore i need 4 zones (2 on top and 2 on bottom)
if i were to move it in diagonal direction id need a +2 phase shift on one of the zones, +1 phase shift on 2 zones and no phase shift on one zone.

i cant find where the code outputs to the analog ports

My question is ,how do i use the emitting pointer & output wave vectors to output a second signal ( even if i were to use a second motor driver)

Asier Marzo (author)0mb602017-11-11

You have some constants 0x that are used to define the waves in terms of phase for each channel. It should be possible left and right but not the other directions. If you want full movement you will need a driver board with more channels. Soon I will put an instructables for it: although it is quite a complicated project.

DavidR885 (author)2017-10-17

Hi Asier,

I did not use a oscilloscope, I used a multimeter instead. As I pushed the transducer with a fine object, the voltage either went positive or negative, then went the opposite way when I released it. I then trimmed the positive leg shorter by about 2mm with wire cutters to identify it.

I have a student who will build this as an extension activity during science class, starting today!

Jakub_Nagy (author)DavidR8852017-10-31

Hi David,

I used the same method for mrking polarity as you, except I did not poke something into transducer I did blow some air to the transducer. I was suprised that all my 72 transducers were marked corectly. I think this method is better than using osciloscope. BTW I'm seventh grade student at elementary school.

DavidR885 (author)Jakub_Nagy2017-10-31

Wow, 7th grade and doing a project like this! Well done.

Air is a great idea to avoid possible damage.

bob8898 (author)DavidR8852017-11-06

Don't be so surprised!

bob8898 (author)Jakub_Nagy2017-11-02

Hey Same! (8th grade)

Jakub_Nagy (author)bob88982017-11-02

That's great. It's good to know that I'm not the only one at this age here. How far are you now (what part are you building)? I'm now wondering about making some armour from plexiglass for the levitator to make it more durable and I also added some LEDs so you can see the tiny particle levitating even in dark enviroment. I'll post photos later.

bob8898 (author)Jakub_Nagy2017-11-05

I'm done, didn't add the LEDs like you, but made a nice little case for it in fusion 360 and 3d printed it... Stands up on its on instead of those not so good looking stubby little chunks of wood. You want a high tech device to look cool, not like a piece of junk. Anyways its pretty durable so I wouldn't worry about the plexiglass... Ill share my keychain levitator plans with you when I can. (And they work)

Jakub_Nagy (author)bob88982017-11-05

I think that 3D printing is litte more expensive and it will take more time to print. But it can be interesting and it can fit more to the curvature. Do your case cover the conections? Could you send me a STL file of the case to my mail: ? When I will draw plans for the plexiglass case I can send it to you. But maybe I will like your idea so much that i will just 3D print it. I don't know what to do now. Thanks.

bob8898 (author)Jakub_Nagy2017-11-06

Alright! (It's a little big and there are a few gaps) Had to file out the hole for the LED seven segment display after printing to get the display to fit.I can fill all the holes in if you want. I'm pretty good at 3d design in fusion 360 so yeah.

Asier Marzo (author)DavidR8852017-10-18

That sounds great. Good luck with it.

grahamgamer2447 made it! (author)Asier Marzo2017-10-24


Are all the lights on (driver and Arduino)? When you put particles in the levitator do they at least move a little bit? What power supply are you using (volts and maximum current)? Do you access to an oscilloscope?

Yes the lights are on. No they do not appear to do so. And I am supplying about 5V but am trying to float an extremely small piece of paper. And no I do not have access to an oscilloscope. Any ideas?

Do you have a power supply with at least 6v and 600ma? If you could provide 9v and 1a that would be perfect. most dc adaptors will do that.

Yes I do have one would that be enough I made the BIG LEV???

Help me I made sure that I have everything correct but I might have missed something here is my setup.

This is for the big lev

About This Instructable




Bio: Do you want to build your own cutting-edge devices? Directly from the research lab. Ultrasonics, Electromagnetism and more. Researcher at Bristol University interesting in Ultrasound ... More »
More by Asier Marzo:Acoustic LevitatorAcoustic Tractor Beam
Add instructable to: