In this project we’re building a cricket powered paddle wheel rover.


This simple water bot is 3d printed and features a tripod mount for capturing underwater photography.


The rover stays afloat with the help of pool noodles that are mounted to the 3d printed enclosure.


We used NinjaFlex filament to 3d print watertight mounts for the motors and components!



You can find the list of all parts used to make this project linked below!


We used MakeCode and programed our water bot to maneuver around obstacles. You can use the on-board sensors to make it interactive!


3D Printed Parts


These flexible motor mounts press fit together to help prevent water from getting into the components. 

Prerequisite Guides

There's resources in these guides that go beyond what's covered in this tutorial. MakeCode guide is all about setting up your Circuit Playground Express board. TheCircuit Playground Express introduction guide walks you through all of the pinouts, sensors and everything you need to know.

Top down view of a Adafruit CRICKIT for Circuit Playground Express with a circular board connected.
Sometimes we wonder if robotics engineers ever watch movies. If they did, they'd know that making robots into servants always ends up in a robot rebellion. Why even go down that...
In Stock
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
DC Toy Hobby Motor
These are standard '130 size' DC hobby motors. They come with a wider operating range than most toy motors: from 4.5 to 9VDC instead of 1.5-4.5V. This range makes them perfect...
In Stock
Angled shot of black 3 x AA waterproof battery holder with plain wires.
Keep your power source safe and toasty in these waterproof 3xAA battery holders. They're just like classic switched battery holders, but designed for survival! The case has a rubber...
In Stock
2-Pin Wire Joints connecting two sets of power wires
These are the easiest way possible to connect two wires - no if's, and's, or butt's! Well, actually, these are often referred to as wire butts 'cause you...
In Stock
Camera and Tripod 3/8 to 1/4 Adapter Screw
Whaddya got a screw loose or something?This 3/8" to 1/4" Adapter Screw is super handy if you're building projects that...
In Stock
1/4 to 1/4 Screw Adapter with thumb-ring
"Simplicity is the ultimate sophistication" - Leonardo da VinciThis 1/4" screw to...
In Stock
Swivel-Head Pan Tilt Shoe Mount Adapter
This Swivel-Head Pan-Tilt (PTZ) Shoe Mount Adapter allows you to attach something with standard 1/4" machine screw mount to a camera's shoe...
In Stock
4 x Motor housing
12 x CPX to Crickit
M3 x 7mm
4 x Crickit to Case
M3 x 6mm
1 x 60mm diameter pool noodle
60mm diameter pool noodle

We found the pool noodles have enough support for gopro session, but a slightly larger one like a GoPro hero should hold up. You can adjust the position of mini ball head to adapter for different water depths!

Take a moment to review the components in the circuit diagram. This illustration is meant for referencing wired connections - The length of wire, position and size of components are not exact.



We connected the motors to the Drive Terminal: 

  • 5V is shared through a Wire Joint
  • The ground (black wires) connect to the 1 and 2 terminals


You can also use the motor terminal if you need to program different movements:


Black and Red wires will connect to either side of the 1 or 2 labeled terminals 


The Water Proof 3xAA battery case connects to the barrel port on the Crickit and is mounted to the printed lid.

Motor wire length:

  • Left: 280mm
  • Right 240mm




  • Four M2x8mm
  • Prop set screw: One each M2x5

CPX to Crickit:

  • Six M3x6mm

Crickit to enclosure:

  • Four M3x6mm

Noodle holder:

  • Two M2x5mm for each holder

60mm diameter pool noodle

Camera Parts:

  • ¾ to 1/4-20 tripod screw
  • 1/4-20 to 1/4-20 adapter

MakeCode for CRICKIT // Circuit Playground Express

MakeCode is this programming editor that runs in the Google Chrome web browser. It’s has an intuitive interface that’s both block based and text editor.

It works with Adafruit's CRICKIT and Circuit Playground Express so you can make interactive projects with the on-board sensors and components. You can drag & drop blocks to make interactive programs using lights and sounds without having to solder or learning a new syntax.

You can upload code directly to the Circuit Playground Express with WebUSB, see this guide page on the steps to do that.

Setup Circuit Playground Express for MakeCode

To get started, we'll need to head over to the Adafruit MakeCode website and follow the steps below.

  1. Plug in your Circuit Playground Express with a USB Cable
  2. Press the RESET button. Green light means you're ready to MakeCode
  3. Download the UF2 file and drop it onto CPLAYBOOT.

Install CRICKIT Extension for MakeCode


On the MakeCode site, click on New Project. In the list of blocks, select ADVANCED and then EXTENSIONS. Click on the Crickit block that shows up and install Crickit support! You will now have a new CRICKIT bin of blocks you can use! Continue on to learn how to use these blocks. Read the full guide here for more info.

Upload and Test Code

Once you have your CPX setup with the makecode UF2, try testing it out by uploading the code to the board. Click the link below to open up the program in MakeCode. Click on the pink edit icon near the top of the title to open the code. This will create a project in MakeCode and allow you to edit, modify and upload the code to the board. 



Makecode can also pair with your Circuit Playground Express through a Chrome web browser by following the info on this guide page.


Open the project here:


With WebUSB, the code edit will upload directly to the Circuit Playground Express without the need to drag and drop file onto it!


Follow the instruction to set up your board and you'll be able to quickly send code to Circuit Playground Express! 

What If I Don't Have A 3D Printer?

Not to worry! You can use a 3D printing service such as 3DHubs or MakeXYZ to have a local 3D printer operator 3D print and ship you parts to you. This is a great way to get your parts 3D printed by local makers. You could also try checking out your local Library or search for a Maker Space.

Slice Settings

These settings are for a 0.4mm and 0.8mm nozzle profiles using CURA 3.4.1. Optimized for the Ultimaker 2/3. 

  • Nozzle .4mm or
  • Layer Height .2mm or 0.3mm
  • Line Width .38 or 0.77mm
  • Print Speed 70mm/s or 50mm/s 
  • Retraction 6.5mm
  • Build plate adhesion type – skirt
  • Bed 60c
  • No supports

Fusion 360 files 

Below are links to modify the design of the enclosure, noodle size and motor parts to fine tune them to adjust to your printer tolerances.

Design Source Files

The enclosure assembly was designed in Fusion 360. This can be downloaded in different formats like STEP, SAT and more. Electronic components like the board, displays, connectors and more can be downloaded from our Fusion 360 CAD parts github repo.

Motor Assembly


First, we'll need to extend the wire lengths for both motors. We can add to the existing wires and use heat shrink or or cut new pieces of wires. We used silicone wire to make it easier to flex around parts.   


Motor wire length for Left motor is 280mm and the Right motor is 240mm. Differences in the left and right are to account for the position of the terminals on the Circkit


Motor housing


Each motor is then housed inside the Motor Cap and Motor Case parts. Follow the picture on the side to reference how each parts press fit into each other.  

Check Prop


Insert the prop into the motor shaft and turn it to ensure the prop spins without any friction or wobbles. 


To keep the propeller in place, we'll use a M2x5mm long screw for each propeller. 


First, we'll want to create the threads on the propeller before we mount it on the shaft.


Carefully fasten the screw into the propeller hole and then install on the motor shaft. 

Motor Frames


Align the mount holes on the Motor Cap to the screws holes on the Noodle Holder part as shown in the picture. 


Use four M2x8mm long screws to secure each motor to the mounts on the Noodle Holder part. 

Bottom insert


The bottom part for the Crickit case is modular, so we can swap this part out if need. For this build we used the Crickit Tripod Mount part. 


First we'll align the tabs on the sides of the lid to the cavities inside the case.


Press fit one side and then use a flat tool like a spludger to pry the other side into place as shown in the animated gif.

Attach screw


Next we went ahead and installed the 3/8" to 1/4" Adapter Screw to mount on the Crickit Tripod Mount part. Position the screw over the mount and use a flat head screw driver or the ends of tweezers to fasten the adapter into place.


Add Lid


Align the wire opening on the Lid to the power barrel on the Crickit. Insert the lid at an angle and then apply force on the opposite side to snap fit the lid on to the case.



We used a simple pool noodle to help keep the case afloat. The cheaper dollar store noodles have a 60mm diameter, but you can easy modify the sketch to fit a different size noodle. 


Press the noodle inside one end of the holder part and then mark and cut to size.  We used a cardboard box cutter to divide up noodle. 

Connect motor frames


Now we can align both Noodle Holder assemblies on the bottom of the Crickit case. 


Use two M2x5mm for each Noodle Holder. 


Insert wires


Next, we'll need to thread the four motor cables through the opening of the lid. Carefully pass each one through.


Remove the lid and continue to pull wires until each can reach the Drive or Motor terminals on the Crickit. 

Wire Joints


The 5v terminal will connect both of the motor power cables. To avoid soldering, we used a 2-pin wire joint  to build a y-cable. One end will connect to the 5v terminal. The other side will connect both of the motor power cables.  


Connect motors


Now we can connect all of the motor wires to each terminal. Start by making sure the terminals are unscrewed. Insert each wire into the terminal at an angle. Use tweezers and bend the ends of the wire to make fitting them into the terminals easier. 


Tuck wire joint


After each wire is connected, we'll need to tuck the wire joint to one side of the case and then reattach the lid.

Mount battery case


The waterproof battery case mounts to the top of the lid with two M2x5mm screws. First, create the threads by fastening a screw into each mounting hole.


Threaded Insert


The lid is thick enough to insert metal threaded inserts. You can enlarge the mounting holes and then use the tip of a soldering iron to help press the insert into the mounting holes. 


Next, align the battery case and fasten both screws into the lid.

DC seal


The power barrel is protected by Ninjaflex seal around it. We can insert three of the cornerd into the port opening and then use force to press fit the fourth into the case.


Now we can go ahead and insert the battery barrel into Crickit.

Camera Parts


The last thing is to attach the camera parts. First we use a 1/4 to 1/4 screw adapter to connect a swivel ball head.


Rotate the ball head to the opposite side of the case (opposite of the barrel port) to help balance the case. And finally we can screw a gopro case using a knuckle to tripod adapter.

While the enclosure can shield the components from water, we don’t recommend ducking it under water. Although we did find that a couple of accidental dips in the water showed the enclosure was able to keep the boards dry.   

And that its, a simple customized camera water bot! Lots of uses in using a raspberry pi to detect things in the water, clean up and more!

This guide was first published on Aug 01, 2018. It was last updated on Jul 29, 2018.