Lab Shakers for Agitation

3D printing with water soluble material is a great way to produce objects with complex geometry and overhangs. 3D printed PVA support material can take many hours to dissolve in water. An orbital shaker can help speed up the process and reduce clean up.

A Crickit Powered Lab Shaker


This DIY shaker uses an Adafruit Crickit, Circuit Playground Express and DC motor. The speed is adjustable with a potentiometer. MicroUSB port is accessible for programming. The unit is powered by a power supply for constant usage. With 3D printed parts, electronics and hardware, you can create a lab shaker agitator.

Parts & Components

The parts used in this project are linked below. The Circuit Playground Express and Crickit are sold separately. Additional Jumper wires are used to create modular connections between components.

1 x Right-Angled 2.1 Barrel Plug
10 x DC Power Right Angle Barrel Male Jack Plug with Wire 5.5 x 2.1mm
1 x Panel Mount 10K Potentiometer w/ On-Off Switch
Panel Mount 10K Log Potentiometer w/ On-Off Switch - 10K Log w/ Switch
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...
Out of 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 Gearbox Motor - TT Motor with two long wires and yellow body
Perhaps you've been assembling a new robot friend, adding a computer for a brain and other fun personality touches. Now the time has come to let it leave the nest and fly on...
In Stock
5V 2A Wall Wart switching power supply
This is an FCC/CE certified and UL listed power supply. Need a lot of 5V power? This switching supply gives a clean regulated 5V output at up to 2000mA. 110 or 240 input, so it works...
In Stock
Panel Mount Extension USB Cable - Micro B Male to Micro B Female
Check out this handy MicroUSB extension cable, which will make it easy for you to enclose a device that has a B type (micro USB host) port. Great if you need to extend the USB...
In Stock
Panel Mount 10K Log Potentiometer with On-Off Switch
This potentiometer is a two-in-one: it's a log taper 10K ohm potentiometer, with a grippy shaft and it comes with an on-off...
In Stock


You'll need some additional hardware like screws and nuts to assemble this project. Note the different screw head types used. Mostly using metric M3 size screws. Flat head screws are used for creating flush joinery. Ball bearings are used to create the pivoting platform. Source them from your local hardware store or purchase online.

5 x 10x15x4mm Bearings
10pcs. 10x15x4mm Precision Ball Bearings Steel ABEC 1 Rubber Seals
2 x M3 x 25mm Machine Screws
Pan Head – Used for TT Motor
4 x M3 x 4mm Machine Screws
Pan Head – Used for CRICKIT
3 x M3 x 6mm Machine Screws
Pan Head – Used for platform
3 x M3 x 8mm Machine Screws
Flat Head – Used for container holder
3 x M3 Metric Hex Jam Nuts
Used for securing platform assembly
1 x Silver Metal Knob for Potentiometer
Knurled Machined Aluminum


A list of helpful tools used to make this project.

1 x M3 Screw Tap
Metric M3 x 0.5 Threaded Taper Tap
1 x Third Helping Hands
Good for holding wires, boards and small stuff
1 x Panavise Jr.
Mini vise good for holding medium size things.
1 x Precision Flat Pliers
Helps pull stuff apart with needle nose
1 x Wire Strippers
Hakko 20-30 AWG Wire Strippers
1 x Soldering Iron
A few good ones to choose from
1 x Ultimaker's PVA FIlament
350g water-soluble support material for multi-extrusion 3D printing

Prerequisite Guides

If you're new to Adafruit CRICKIT, Circuit Python and soldering, take a moment to walk through the following guides to get you started.

Circuit Diagram

This provides a visual reference for wiring of the components. They aren't true to scale, just meant to be used as reference. The microUSB panel mounted cable isn't displayed in this diagram but it is used in the project to extent the connection for better access.

Wired Connections

The potentiometer connects to channel 1 of the signal I/O section on Crickit. The switch pins from the pot wire inline with the voltage of the DC barrel plug and DC jack.

  • Ground pin from Pot to GND on Crickit ch 1 signal I/O 
  • VCC pin from Pot to 3.3V on Crickit ch 1 signal I/O
  • Signal pin from Pot to Signal on Crickit ch 1 signal I/O
  • Ground wire from DC Motor to GND on Crickit ch 1 motor
  • Voltage wire from DC Motor to 1 on Crickit ch 1 motor
  • Pin 1 from Pot Switch to voltage wire on DC Plug
  • Pin 2 from Pot Switch to voltage wire on DC Jack
  • Ground wire from DC Jack to DC Plug

3D Printed Parts


The enclosure and orbital platform is comprised of several 3d printed parts. Each part is listed below with a description. Parts with mounting holes and standoffs will need to be tapped with an M3 size screw tap – This creates precise threads needed for fastening screws. These parts are designed for FDM style 3D printers. 


Framing of the enclosure. Top/bottom covers snap fit.


The Crickit and CPX are mounted to standoffs.


Mounts motor. Snap fits to case.


Fits over the bearing base.


Mounts to the top cover. Pegs are fitted into bearings.


Mounts to bearing plate. Secures holder.


Secures container. Mounts to tray.


Press fit motor shaft and bearing. Requires supports.


Motion links for bearings. Requires supports. Print 2x.

CAD Assembly


The enclosure is designed to house all of the components. This CAD animation shows how all of the parts are assembled. Various hardware is used to secure parts. Ball bearings are used to create smooth rotational motion.


Panel mounted components include hardware and require tight tolerances for proper fittings. Wire lengths need to be considered and noted in this guide.

Dimensions & Build Volume

The parts should fit on a 3D printer with a minimum bed size of ~ 120mm x 120mm x 95mm. The case design is parametrically driven and can be modified by changing values in the user parameters. 

  • Enclosure: 94mm x 120mm x 30mm 
  • Tray: 118mm x 92mm x 6mm
  • Container: 8oz, 73mm diameter

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.

Generate Support


The motion links require support material in order to be properly 3D printed. Support structures are automatically generated in the Ultimaker CURA slicer. This is typically 3D printed in a single nozzle with PLA. Any overhanging geometry will be course and rough. To achieve a high quality surface finish, we employed a dual extruder setup with PLA and Ultimaker's Breakaway filament. 

Breakaway Support Material


The supports in the motion links are 3D printed with Ultimaker breakaway filament. This material is dual extruded and only used to print the support structures. Ultimaker CURA offers a slicing profile for breakaway material that works well with default settings. With an Ultimaker 3, Extruder 2 is loaded with breakaway filament and assigned in CURA to print supports. 

CURA Slicing


The rest of the parts do not require support material. Use the slice settings below as reference. Settings may need to be adjust for tolerances. Print parts independently for best results. Test fit parts before full assembly. Parts tested with PLA filament using an Ultimaker 3.


  • 0.4mm nozzle for standard quality
  • 0.2mm layer height
  • 0.38mm line width / 2 wall line count 
  • 60mm/s printing speeds

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.

MakeCode for CRICKIT // Circuit Playground Express

MakeCode is this programming editor that runs in a 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 is you follow this guide page for when you run MakeCode.

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.

Mapping Pot to Motor Speed


In the forever loop we can add a crickit run motor code block. Instead of entering a % value for motor speed, use a map code block to link values from a potentiometer to the motor block. Map blocks are found in the MATH category. Use a crickit analog read signal code block to assign a channel where the potentiometer is connected. From low to high, use 0 – 1023. For the second input set, use values 0 – 100%. You might need to tweak the map to run from 0 – 1023 to 25 – 100 since the first quarter of the motor doesn't really move. A pause block with 100ms is the minimum required delay. 

The code block pictured is actually a really long block so we broke it up into three parts. You can use Javascript mode to make it easier to copy and paste code.

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. 


The Adafruit Crickit and Cricuit Playground Express can run CircuitPython for programming fast and easy to read code. Use the special Crickit CPX build firmware and follow the learn guide for setting up the board. This special build includes libraries so it saves space and gets you quickly up and running. 

Upload Python Code


We recommend using the Mu editor for writing your python code. It's a simple Python editor for beginner programmers. Follow the Introductory Guide to CircuitPython to learn how to setup Mu.

import time
from adafruit_crickit import crickit

#setup seesaw
ss = crickit.seesaw

#pot connected to signal #1
pot = crickit.SIGNAL1

# make variables for motors
motor_1 = crickit.dc_motor_1

while True:
    print((ss.analog_read(pot),))  # log helper
    motor_1.throttle = ss.analog_read(pot) / 1023  # convert analog 0->1023 to 0->1.0

Prep the DC Plug


Starting with the power cable, we'll use the right angled DC plug to route the connection outside the enclosure. We'll install a female DC jack to the enclosure and wire that to our right angled DC plug. The cables are longer than necessary so we can shorten it down to about 17cm in length. Using wire strippers (or carefully with a knife), remove about an inch (25mm) of installation to expose the positive and negative wires. Then, remove about 5mm of insulation from the tips of those wires. 

Jumper Wires for DC Plug


In order to make our connections modular, we'll use extension jumper wires to make assembly easier. We'll need two male/female jumper wires, about 75mm in length – these are from this jumper wire pack. Use any two colors, matching with voltage/ground wires if possible. We'll use these two jumper wires for two different connections.

Removing Headers

Next we'll work on connecting the male jumper wires to the DC plug. I used an x-acto knife to lift the plastic tab from header and pulled out the housing. With the bare metal connector exposed we can use pliers to un-crimp them. The end of the male headers are wrapped around the PVA insulation. Wires can be pulled and removed from the headers.




Extracted Headers


I was able to remove the headers without damaging the metal from the bare connectors. It'll become difficult to reinstall the plastic housing if the connectors are not re-crimped and square – It will need to still fit inside the housing. I used these flat precision pliers to reshape the tabs and flatten out the metal.

Attach Wires to Headers

We'll need to connect the voltage and ground wires from the DC plug to the male jumper wire connectors. To do this, I soldered the wires to the ends of the connectors. Using third helping hands, the wires were held in place while tinning the exposed wires – this prevents stranded wires from fraying. Then, I propped up the connectors and tinned the ends. Place the tinned wire on top and heat up the solder to fuse the connections together. You might be able to just re-crimp the wires with a proper crimping tool.




Reinstall Headers


With the male jumper wire connectors now attached to the DC plug, it's time to reinstall the plastic housing. These provide the connectors with insulation so they won't short anything. If the wires are crimped and reshaped correctly, the headers ought to slip right over the connectors. If they don't quite fit, a bit of reshaping with pliers can tighten the crimping. Be sure to orient the plastic housing correctly.

Wired DC Plug w/ Jumpers


The DC plug is now ready to plug-n-play! We could have wired it directly to the female DC jack but that would make panel mounting difficult. With jumper leads, we can easily disconnect the wires and panel mount the components.

Jumper Wires


We'll use a potentiometer with a built-in on/off switch to control the speed of the motor and be able to turn on/off the circuit. We'll need four wired connections to achieve this. Going for modularity, again, we'll use jumper wires to make assembly easier. These female/male extension jumper wires are great, perfect wire length and good selection of colors to choose from.

Potentiometer Fix


Most pots have this little protruding nub near the top side of the metal bracket. It's probably meant for keying when panel mounting but for our project it actually gets in the way – remove it by snapping it off with pliers. If it's left on the knob cannot be flush with the enclosure thus making it difficult to secure. It's fairly easy to break off using needle nose pliers.

Female Headers


In order to plug the female connectors into the terminals on the pot switch, we'll need to remove the plastic housing. Using the same technique as before, I used an x-acto knife to lift the tabs and remove the headers. We won't need them for the rest of the build so you can discard them.

Tin Pot


The jumper wires will plug into the terminals but they won't hold very well. I tinned each of the terminals by adding a bit of solder to them. This made them thick enough for the jumper wires to grab hold. These connections can optionally be soldered for a more secure connection. I left them unsoldered – keeps it modular and easy to disconnect.

Connect Jumper Wires


The terminals on the potentiometer are far apart enough to not warrant insulating the bare metal. However, it would've been nice to add some heat shrink. Connections on this potentiometers, going from left to right, are the ground, signal, and voltage. 

On/Off Wire


We'll use the fourth extension jumper wire to hook up the on/off switch from the potentiometer. We'll cut it in half and connect the male and female ends to the two terminals separately. This allowed me to easily connect/disconnect the wiring when hooking it up to the DC jack.

Wire Setup


Cut the single jumper extension wire in half and use wire strippers to remove a bit of insulation from the tips. Then add a bit of solder to tin the exposed stranded wire. This will make it easier to solder onto the on/off terminals on the potentiometer. 

Wire Potentiometer


Now we can attach the two wires to the terminals – The two unused terminals are for the on/off mechanism built into the potentiometer. The terminals are mounted to a separate PCB. Securing the shaft to helping hands helps the potentiometer stay in place while soldering. I tinned the terminals with a bit of solder first and then attached the wires. Polarity doesn't matter much here.

Wired Pot


And now we have a wired potentiometer! Yay, its ready for plug-n-play adventures. What I like about this wiring is the ability to switch around the connections. I tend to mix the voltage and ground wires in my projects that use potentiometers, so it's nice to be able to easily switch them around. The on/off switch feature on this particular potentiometer is nice and makes one less component to worry about!

Jumper Wires for DC Jack


We'll use the jumper wires from the DC plug we wired up earlier. These are just the just a little too long so we can shorten them – about 8cm long. These wires have a female jumper connector so they'll connect perfectly onto the potentiometer (for on/off capabilities) and DC plug. Using wire strippers, remove a bit of insulation from the tips and tin them with a bit of solder.

Wiring Ground


There's three terminals on the back of the DC jack. We'll need to attach the jumper wires to just two, the voltage and ground. Depending on the colored wires, you'll want to use the appropriate one of your choosing. The terminal with the large right-angled metal plating is voltage, the other two are ground. I recommend tinning the terminals before attaching wires.

Wiring Voltage


I was able to prop up the DC jack with helping hands by clipping onto the barrel jack. It was not perfectly secure, but holds enough to keep it in place while soldering. Pieces of heat shrink tubing would have been nice here, optional of course. These terminals are too wide to fit into female jumpers so soldering is the best option. 

Wired DC Jack


And now we have a wired DC Jack! We're just about ready for plug-n-play action. Nows a good time to inspect wiring, make sure connections are solid Let's take a break and continue on with the assembly!

Wired Components


Let's take a moment to review the wiring in our components. We have three main components that required some soldering. The potentiometer switch will be wired in-line with the voltage wires from the DC jack and plug.

  • Voltage from DC plug connects to DC jack
  • Wire from DC jack connects to pot switch
  • Wire from pot switch connects to DC jack

Install Crickit


The Circkit board has to be orientated in this specific way in order for all the components to properly fit inside the case. There's four standoffs built into the bottom cover that are designed for securing the Crickit PCB. Reference the photo and position the PCB over the standoffs. They're designed to fit M3 sized machine screws. Insert and fasten 4x M3 x 4mm screws to secure the PCB.

Install Motor Wires


The DC motor comes with pre-soldered male jumper wires and connect directly into the screw block terminals. It becomes difficult to install the motor wires once the case is installed so we can do it now. The positive wire goes to the far side of channel 1, while ground goes near the middle. Stick with channel 1 for this project but optionally can choose either. Use a small Phillips screwdriver to tighten the screw block terminals.

Installed Motor


Using screw block terminals in this build is nice and saves us the extra step of soldering. The CRICKIT uses a lot of screw block terminals because it makes swapping out components much easier. If we wanted to use a different motor, no need to unsolder/solder wires. 

Install Potentiometer


Our first component to install into the case is the potentiometer. It's panel mounted to the side of the case, near the left corner. It's center with the height of the case and mounted to the far left using a washer and hex nut – these are included with the potentiometer.

Installed Potentiometer

Insert the shaft of the potentiometer through the hole and push it up against the wall until it's mounted. The threaded shaft should fit through the hole, use a filling tool if it's too tight. Install the washer and hex nut and fasten until fully tightened. I used the tip of my wire strippers to get a secure hold on the hex nut.




Install DC Jack


Next up is the DC jack. Mounting this one is similar to the potentiometer, just insert from the outside, in. So the jumper wires will need to be threaded through the hole. The mounting hole for the DC jack is on the opposite side of the potentiometer.

Installing DC Jack

The body of the jack is threaded a hex nut can be fastened onto it. Press the jack so the flange is flush with the surface of the case. Insert the hex nut through the wires and twist to fasten it onto the body of the jack. I used my needle nose pliers to grib onto the hex nut and tighten. You may want to adjust the orientation of the jack to your liking.




Install USB Panel Mount Cable


With the Crickit PCB embedded inside the case, the micro USB port isn't easily accessible. This USB cable is used to extend the microUSB connection so it's accessible on the side of the case. This is really handy for programming the Circuit Playground Express. It's just short enough to fit inside the case, along side the rest of the components. 

Installing the USB Cable

The cable comes with two long machine screws used for panel mounting. Insert and fasten these into the two mounting holes on the side of the case – It's the two holes with the small rectangle between them. Install the screws so the tip just barely protrudes through the case. Then, fit the USB cable into the rectangle cutout. Line up the screws with the mounting holes and fasten until fully tightened. 




Install DC Plug


The right angled DC plug connects directly into the female DC barrel jack on the Crickit. The connector can be adjust by rotating the plug. It'll fit best inside the case when it's orientated like in the photo.

Install Bottom Cover

OK, now that we have all of the components installed in the case and bottom cover, it's time to bring them together. The case needs to be oriented correctly in order to properly install onto the bottom cover. Start by passing the motor through the case. Then pick up the case and orient it with the bottom cover referencing the photo. Slowly place the case over the bottom cover, moving wires out of the way. The two parts will "click" when pressed together. Be cautious of the wiring and make sure they don't get kinked or damaged while installing.




Making Connections


With the two main assemblies now installed, we can make our connections and hook everything up. Since we employed jumper wires for most of the connections, it'll be easy to plug them up! 


Wiring Power

I started with hooking up the DC jack to the DC plug and pot switch. These components provide power from the power supply to the Crickit. The voltage wire from the DC jack plugs into one of the jumper wires connected to the pot switch. The ground wire from the DC jack plugs into the ground wire connected to the DC plug. The voltage wire from the DC jack plugs into the remaining jumper wire connected to the pot switch. The pot switch is wired in-line with the voltage connection.




Wired Power


Our circuit is now capable of receiving power. The connections here were a bit tricky to capture all in one photo because the depths of the wires vary. At this point, wire inspection ought to be conducted. A quick power on test also to see if the connections are solid.  

Connect Potentiometer


The three jumper wires on the potentiometer will need to connect to the signal i/o pins on the Crickit. Use channel 1 and plug in the jumper wires in this order, going from left to right. Signal, voltage and ground. The connections are labeled PCB as well. 

Connect USB


Let's get the microUSB stuff hooked up. The microUSB connector on the panel mount cable plugs into the Circuit Playground Express board, NOT the Crickit (thats one's for seesaw debugging).

Wired Connections


Just about finished with making the wired connections we can start to organize the wiring. Rearranging the wires so they can be tucked down into the case. This photo attempts to show all of the connections, before any organization. The extra slack in the wiring is intentional and should be able to be stuffed into the case without too much hassle.

Tidy Wires


The microUSB cable was single looped and tucked below slightly underneath the PCB. The jumper wires from the DC connectors are tucked inside the case and pressed down along the edge. The cable from the DC plug is underneath the USB cable.

Installing Cover Plate


The rotational mechanism employs a separate platform that attaches to the enclosure cover. These parts are separated to avoid printing overhanging geometry. The parts are secured together with three M3 x 6mm machine screws.

Secure Cover Plate

Place the plate over the enclosure cover and orient the parts so the mounting holes line up properly.  While holding the two together, insert and fasten the M3 x 6mm machine screws into them mounting holes. I found it easier to preinstall the screws into the plate first. Drive the screws until fully tightened. 



Mounting Motor


With the cover plate assembled, we can work on securing the DC motor to the cover. We'll need two M3 x 25mm long machine screws.

Trim Motor Parts


This particular motor features some elements that prevent it from fitting inside the case along side all of the various components. So we'll need to cut them off to remove them. This TT motor has two shafts, one on either side of the motor. In this project, we only need one so we can remove the other by clipping it with shears or cutting with a blade. The mounting tab on the top of the motor will also need to be removed – flush diagonal cutters does the job nicely. 

Motor Mounting Screws


The machine screws for the securing motor are inserted and fastened through the top of the enclosure cover. Drive the two until the shank of the screw comes through the other side. These mounting holes have built-in standoffs to lengthen the hold on the screw threading. 

Installing Motor

The motor features two mounting holes. These are have a slightly larger diameter than 3mm so it can be pressed into screws. The length of the screw provides a mechanical hold on the body of the motor. Make sure to orient the motor so the shaft can stick out through the hole in the cover. Line up the mounting holes with the screws and fit the motor over them. Press the motor down until it's flush with the standoffs in the cover. 




Installed Motor


The shaft of the motor should be slightly protruding through the hole in the cover and plate. With the motor secured to the cover we can start assembling the reset of the build. 

Install Cover


The cover is ready to be installed. The motor is positioned in between the DC jack and potentiometer switch. There's very little clearance between these components. With the USB cable, DC plug and jumper wires, the spacing gets a little tight. The wiring really needs to be positioned in a way where the motor can be fitted and the cover fitted over the case. I suggest taking time and effort to properly lay out the wiring.

Closing Cover


When the wiring has been optimized for the placement of the motor, the case should be able to easily shut closed. If it bulges out or won't quite close all the way, try readjusting the wires so they're away from the motor. I found trimming the third terminal from the DC jack and re-orienting the USB cable helped free up some space for the motor.

Snap Fit Case


The lip on the cover features indentations that allow tabs on the edge of the enclosure to snap fit and lock into place. These parts will "click" when press fitted together.

Install the Drive Hub

In order to get the platform rotating, we need to install a drive hub onto the shaft of the motor. This drive hub is press fitted over the shaft and should have a tight tolerance. The drive hub is keyed to the motor shaft and should rotate with the shaft of the motor.




Platform Parts


The rotating platform secures an 8oz container. It's comprised of three pieces, the tray, bearing mount plate and container holder. We'll use three M3 x 8mm flat head machine screws and hex nuts to secure these parts together. 

Assemble Platform

Start by stacking the parts together. The container holder goes over the tray while the bearing mount plate goes underneath. Orient the parts so the three mounting holes line up with each other. While holding the parts together, insert and fasten the machine screws into the holes. I'm using flat header screws here because they'll be flush with the surface when fully fastened. Drive the screws until they have fully tightened the parts together. Then insert and fasten hex nuts until fully tightened.




Install Ball Bearing


The ball bearings are press fitted into the round tubes on the bottom of the bearing mount plate. They should have a tight tolerance and hold in place.

Install Bearings

The two remaining ball bearings are press fitted onto pegs on the cover plate. These should have a right tolerance. Two pivoting caps are pressed fitted over the ball bearings. These caps should spin freely and have a tight hold on the ball bearings.




Install Platform


With the bearing installed we're ready wrap up the platform assembly. The pegs on the bearing caps are designed to be press fitted into the inner diameter of the ball bearings.

Installed Platform


Orient the pegs so they're all facing the same direction – This will make alignment and installation easier. The shape of the plate and position of the pegs are set in way where they can only be install in one direction. Start by press fitting the peg from the motor hub into one of the bearings. Then proceed to press fit bearings onto the remaining pegs making sure alignment is correct. The bearings should be mostly seated in the caps (they'll be slightly exposed). The platform should rotate freely.

Test Fittings


The tolerances in the parts holding the bearings ought to be fairly secure. If they're too loose, the platform could fly off the cover when in operation. Under heavy loads, the platform can wobble and become unbalanced if the bearings are fully seated. Quick solution to loose parts is to use a mounting tack around the pegs to tighten the hole – I'd avoid glues and adhesives as that could prevent the bearings from spinning freely. If the pegs are too tight, a few minutes of filing should be enough to loosen it up.

Final Assembly


One of the last things I did to the build was install a nicely machined knob to the potentiometer. I got this one from sparkfun, it's machined out of aluminum is has nice knurling. It press fits over the spline on the potentiometer. Just orient the knob so the marker is oriented to the desired position. It's totally optional but makes adjusting the dial more comfortable.

Testing Parts

In our test we printed two copies of the same object. Then we placed them in 8oz containers with water and let them dissolve for an hour. One was being agitated while the other sat stationary. After dissolving for an hour, the stationary print still had significant amounts of support material on the part.!

The motor speed can be tuned to get the part spinning, producing more agitation. Full power of the motor is a bit too intense and may unbalance the load which could get messy. Admittedly there's more testing to be done, agitator parts certainly seams to dissolve PVA material much faster than stationary bathing.

The container with the stationary part left behind a goopy mess. The PVA settles to the bottom of the jar and collectively becomes a sort of jello. It wasn't easily removal from the container as it becomes thick and sticky. However, the container with the agitated part did not have this PVA jello. The material dissolved into the water.

In our previous testing, we simply left parts in water over night, well over 8+ hours. Even still, tiny bits of PVA still remained on those parts. Agitating the part seams to break apart the PVA and better dissolves the material. 

Custom Containers

In our test, agitating PVA parts certainly speeds up the post-processing compared to non-agitated parts. The container used in this project is an 8oz jar with an outer diameter of 72mm (2.8in). This will only house parts that can fit within that volume. For agitating bigger parts, a new custom holder can be made to fit a larger container. The rotating tray measures out to 118mm x 92mm (4.6in x 3.6in) so it can support objects within that build space.

The Hilbert Cube

This model of a hilbert cube on thingiverse is a great demonstration print that we used to test our agitator. It also fitted nicely in our 8oz container. The hilbert cube is a cuboid with intertwining pipes and intricate overhanging geometry – Perfect for 3D printing with PVA support material. Credits and sources can be found in the thingiverse page. So how did we slice this thing anyway?

Slicing Hilbert Cube

We sliced the STL model using Ultimaker's CURA 3.x.  The part was 3D printed using an Ultimaker 3 with a stock AA 0.4mm PrintCore for PLA and a BB 0.4mm PrintCore for PVA. With this combo the nozzle loaded with PVA is set to print only the support material. The supports are automatically generated in CURA using the slice settings listed below. For more info on 3D printing PVA, check our out D20 guide.  

Slice Settings for PVA Supports

The settings below are for Ultimaker CURA 3.x using a PVA profile with 0.4mm BB printcore. Use a prime tower and increase the thickness and flow to create better quality support structures. Lower the retraction count will minimize grinding of the material. 

This guide was first published on Aug 28, 2018. It was last updated on Mar 08, 2024.