This unique boat design employs two Archimedean screws to move and turn, and is controlled by a Circuit Playground Express, Adafruit's powerful and highly adaptable programming platform.

This project uses easily available household materials and serves as a great introduction to basic engineering concepts as well as MakeCode's block coding system, a web-based code editor similar to Scratch or

Archimedes' screw has been used to pump and lift water since antiquity. In this project two water screws are used to propel a boat through water, and can be programmed with MakeCode to navigate a bathtub's open seas.

Archimedes' screw was first successfully demonstrated as a method of ship propulsion on the SS Archimedes in 1838. 


A Black woman's manicured hand holds a round microcontroller with lit up LEDs.
Circuit Playground Express is the next step towards a perfect introduction to electronics and programming. We've taken the original Circuit Playground Classic and...
In Stock
Continuous Rotation Micro Servo spinning around
Need to make a tiny robot? This little micro servo rotates 360 degrees fully forward or backward, instead of moving to a single position. You can use any servo code, hardware,...
In Stock
Group of Small Alligator Clip to Male Jumper Wires
When working with unusual non-header-friendly surfaces, these handy cables will be your best friends! No longer will you have long, cumbersome strands of alligator clips. These...
In Stock
USB cable - USB A to Micro-B - 3 foot long
This here is your standard A to micro-B USB cable, for USB 1.1 or 2.0. Perfect for connecting a PC to your Metro, Feather, Raspberry Pi or other dev-board or...
In Stock


In addition to the electronics, for this project you will also need:

This project uses two continuous servo motors, powered and controlled via a Circuit Playground Express.

The Vout pad on Circuit Playground Express (CPX) is connected to each servos' red wire, the A1 and A2 pads to the yellow wires, and the two GND pads to the servos' brown wire. 

The alligator clip-to-male jumper wire connectors are great for connecting servo motors to CPX.

Powering your Boat

Circuit Playground Express can use a variety of power sources, anywhere between 3V-5V is safe. These compact 400mAh lithium ion polymer batteries are excellent for powering small projects like this. 

A set of 3 AAA batteries also provides ample power, if that option is more convenient. If you're using a AAAx3 battery pack, check that the switch on the battery pack is set to "ON" when you want to power the boat.

Slim Lithium Ion Polymer Battery 3.7v 400mAh with JST 2-PH connector and short cable
Lithium-ion polymer (also known as 'lipo' or 'lipoly') batteries are thin, light, and powerful. The output ranges from 4.2V when completely charged to 3.7V. This...
Out of Stock
Top view of Adafruit Micro Lipo - USB LiIon/LiPoly charger - v1 above a 2-pin JST cable.
Oh so adorable, this is the tiniest little lipo charger, so handy you can keep it any project box! Its also easy to use. Simply plug in the gold plated contacts into any USB port and a...
In Stock

- or -

Front angled shot of 3 x AAA battery holder with on-off switch and 2-pin JST PH connector.
This battery holder connects 3 AAA batteries together in series for powering all kinds of projects. We spec'd these out because the box is slim, and 3 AAA's add up to about...
In Stock
Angled shot of 3 PKcell AAA batteries.
Battery power for your portable project! These batteries are good quality at a good price, and work fantastic with any of the kits or projects in the shop that use AAA's. This is a...
In Stock

Getting Familiar

Microsoft MakeCode for Adafruit is a web-based code editor that provides a block editor, similar to Scratch or, and also a JavaScript editor for more advanced users.

If you've never used the Circuit Playground Express with MakeCode before, this guide is a good place to start.

How to Upload Code

To upload code to Circuit Playground Express, follow these instructions:

1) Connect your Circuit Playground Express to your computer using a micro USB cable and press the small reset button in the center of the board. All the LEDs will flash red briefly, then turn green. Your computer should now show a removable drive called CPLAYBOOT. 

2) Click the Download button in the code window below to download the .UF2 file to your computer.

3) Now drag and drop the .UF2 file onto the CPLAYBOOT drive in your computer's file explorer or finder.

Once the file is dragged onto CPLAYBOOT the drive will automatically eject itself (your computer may give you a "failed to eject drive correctly" error, you can ignore this). The code is now on your Circuit Playground Express and ready to run!

Note: If you get a drive named CIRCUITPY, no worries! Press the reset button twice to get a flash drive named CPLAYBOOT. The project will not run if copied onto the CIRCUITPY drive as it is for CircuitPython.

Editing the Code

If you'd like to play with this code, click Edit in MakeCode and a new window will open in which you can create your own version.

MakeCode is fun to work with and easy to customize, allowing you to get some great results with just a little trial-and-error.

If you'd like to program your boat to swim longer or in different patterns, you can change the length of time that each function is active by click on the pause block and typing in a new millisecond value (1000 ms = 1 second).

You can also edit or add new functions by clicking on FUNCTIONS and then clicking Make a Function

This boat combines an empty quart container, which serves as our watertight vessel, and a bit of scrap cardboard to hold the electronics and position the water screws. 

The Vessel


To begin, find an empty quart container (either cardboard or plastic will do). Be sure to give it a good rinse.


Slice the top off the quart container, creating a deep, open boat. Your vessel is ready for the high seas!

Please be careful in using sharp objects to cut items and adults should assist younger makers.

Cut a "T" shape out of cardboard.

The body of the T should be just wide enough to fit in the boat, and the arms should extend about 1 inch off each side.

Prep Servo


Find the circular disc that comes with the servo motor and connect it to the servo horn.

Make sure to use the small screw supplied with the motor to hold the mount in place! This will ensure the propellors stay attached when powering the boat through the water.

Attach Motors


Use double sided tape or hot glue to attach each servo to the cardboard arms, ensuring the circular discs point towards the back of the boat.



Create a small platform for the Circuit Playground Express to sit on using of two small rectangles of cardboard with pieces of double sided tape of each side.

Hot Glue Propellers


Create each propeller by drawing a spiral of hot glue around a wooden skewer.


Gradually build up layer upon layer of hot glue to create a wide spiral.


Hot glue can burn skin and should not be used such that it might create a fire hazard. Please assist younger Makers with this step.

This time lapse shows the process of creating a hot glue Archimedean screw by adding layer after layer of hot glue in a spiral pattern around a wooden skewer.

Create two of these Archimedean screws, trying to keep them both as symmetrical as possible.

Propeller Mount


Trim the pointy end off of the skewer.


Cut a cardboard disc and use the trimmed pointy bit to poke a hole through it.


Secure the mounting disc to the end of the skewer with a large dab of hot glue.

Attach Propellers


Use hot glue to attach each propeller to the circular disc on each continuous rotation servo.

Your electronics and propeller package should now be able to sit comfortably in your boat.

You can increase or decrease the angle that the propellers sit in the water by creating adjusting a crease in the cardboard platform. 

Motor Speed Adjustment


If you find your motors aren't spinning at exactly the same speed, or don't come to a full stop, you can fix this by making tiny adjustments to the potentiometer on the bottom of the motor.


Problem: My motors aren't spinning!

Solution: Make sure that your Circuit Playground Express is connected to a power source (anywhere between 3V-5V is safe). If you're using a AAAx3 battery pack, check that the switch on the battery pack is set to "ON". If using a LiPo battery, please make sure it is charged.

Problem: My Circuit Playground Express doesn't show up as CPLAYBOOT


  • Be sure you have a Circuit Playground Express.  The Classic will not work with MakeCode.
  • Some USB cables are "charge-only" and won't pass data. Try using a different USB cable and try using a different USB port on your computer.  
  • With the Circuit Playground plugged into your computer with a micro USB cable, click the small reset button in the center of the board. The lights should all turn green. If they don't, try double-clicking the reset button.

If things still aren't working, head over to the Intro to Circuit Playground Express guide for more suggestions.

This guide was first published on May 14, 2019. It was last updated on Mar 08, 2024.