Introduction: How to Make a Robotic Worm

As a maker, I often find myself turning to nature for inspiration for new projects. One day I found an earthworm while digging though the garden. I usually wouldn't think twice about this but on this day I was quiet captivated by the way it moved. The more I thought about and researched the motion I found it wouldn't be too hard to replicate, so I built a robotic earth worm.

Peristaltic Motion:

Peristaltic motion uses peristalsis, a sequential series of contractions, in order to induce movement. Examples in nature include the intestinal system and earth worms. In industry this principle is used in peristaltic pumps in order to move precise amounts of a fluid. Peristaltic robots are relatively novel but can be built using a variety of control methods. I have chosen pneumatic control as it lends itself to a truly "soft" robot that is compliant and rugged in addition to being waterproof when built as described.


NOTE: A Detailed BOM with source links can be found on the project GitHub


1. How to Solder(Optional you can breadboard it instead if you would like): Instructable

2. A good understanding of your printer

3. How to construct a circuit from a schematic: Breadboarding Instructable

4. How to use an Arduino Arduino Class


1. 3D Printer(Must be able to print NinjaFlex)

2. Jumper Wire

3. Dental Pick

4. Soldering Iron & Solder(Optional)

5. Wire Cutters and Strippers

6. Breadboard

7. Tubing Cutter (I used this one)

Hardware & Materials:

1. NinjaFlex Filament(~25g)

2. PVA Filament( ~50g)

3. 2mm ID x 4mm OD Silicone Tubing(5 ft)

4. 4mm ID x 6mm OD Silicone Tubing(1 ft)

5. Tape(anything that does not leave residue)

6. Small Zip Ties X 6 (Width less than 2mm works best)

7. Loctite Vinyl, Fabric & Plastic Flexible Adhesive(~2 ounce)[Amazon Link]


1. Arduino Uno R3

2. 12V Parker/Hargraves Mini Diaphragm Pump (Ubiquitous on the secondary market look for deals. Similar pumps can be used in place.) [Ebay Link]

3. 6V 2-Position 3-Way Mini Solenoid Valves X 6 (Also common on secondary market, usually marketed for use in eye massagers.)[Ebay Link]

4. 12 V 2A Power Supply

5. LM2596 adjustable buck converter module(these are everywhere just search amazon and pick one)

6. 1k Ohm Resistors X 7

7. BC337 NPN Transistor X6 (or equivalent)

8. TIP120 Transistor X1 (or equivalent)

9. 1N4001 Diodes X 7 (1N4001-1N4007 will work fine)

10. Optional: XH Connectors

Step 1: Printing the Segments

In order to print the segments make sure you have dialed in setting for obtaining an air tight NinjaFlex print, I have created another instructable to walk you through this process as well as printing your first actuator.

Step 2: Glueing the Segments

To assemble the segments place a dab(~10 mm in diameter) of Loctite adhesive in the center of the top of one segments and put another segment on top pushing down to ensure a good bond. Note that you only want the segments bonded together in the center, this will allow the segments to expand.

Once you have them all together use tape to hold them while the glue dries. The clamping does not have to be super tight, just enough to keep them together.

Once the glue is dry place the whole thing in warm water overnight to dissolve the PVA inserts. You may need to use a pick to make sure the hose port in the segments is not clogged.

Step 3: Electronics and Program

As a disclaimer I am not the greatest with electronics so this circuit can almost certainly be improved but it worked for me nonetheless.

A few notes about the schematic

1. The Arduino is shown as a chip so D1, D2, ...ect. correspond to digital pins 1, 2, ect.

2. The buck convertor module is shown as a chip as well, don't worry about the ON/OFF pin. Connect the input to the power adapter as well as the motor and the output to the 5 volt bus.


XH connectors for the solenoids and motor but you may use whatever connector you like, or no connector at all.

Step 4: Pneumatics

Next you will want to connect everything together with the tubing.

Follow the diagram in order to hook everything up. Use larger tubing to connect the motor and the smaller tubing for everything else.

In order to connect the bigger tubing to the smaller tubing either use an adapter or stuff the smaller tubing into the bigger tubing and it should fit snug. (A ziptie can be added if its not tight enough.)

Step 5: Try It Out!

Play around with the interval times in the program to see what results in the most movement, fastest movement, ect.

Have Fun!

Make it Move Contest 2020

Runner Up in the
Make it Move Contest 2020