Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!

DIYbio Orbital Shaker V 1.0

by ProgressTH, published

DIYbio Orbital Shaker V 1.0 by ProgressTH Nov 8, 2017
0 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


Design Tools


Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

193Views 63Downloads Found in Biology


EDIT: Now includes a draft of the assembly instructions. Wiring diagram still to come.

This is our first attempt at a DIYbio orbital shaker.
A video demo is available here: https://www.youtube.com/watch?v=TnfxUq-xGas

Using 608ZZ bearings, the motion control is smooth, reliable, and quiet. Wiring diagram and assembly instructions coming soon. The files are here for those that want to take a crack at it or begin modifying the design.

The SketchUp file is also included.


12V stepper motor
Pololu DRV8825 stepper driver
Arduino Micro Pro
Rocker Switch
DC Adapter (Female)
608ZZ bearings (x6)
3mm bolts (x3)
3mm nuts (x3)
3mm screws (x3)

We used a combination of friction welding and hot glue to assemble the motion system. Hot glue is used to connect the pegs and holders around and inside the bearings. Everything else is friction welded.

Arduino sketch used:

// Simple Stepper Motor Control
// by Achim pieters, www.studiopieters.nl

// Defines pins numbers
const int stepPin = 7;
const int dirPin = 8;

int customDelay,customDelayMapped; // Defines variables

void setup() {
// Sets the two pins as Outputs

digitalWrite(dirPin,HIGH); //Enables the motor to move in a particular direction
void loop() {

customDelayMapped = speedUp(); // Gets custom delay values from the custom speedUp function
// Makes pules with custom delay, depending on the Potentiometer, from which the speed of the motor depends
digitalWrite(stepPin, HIGH);
digitalWrite(stepPin, LOW);
// Function for reading the Potentiometer
int speedUp() {
int customDelay = analogRead(A0); // Reads the potentiometer
int newCustom = map(customDelay, 0, 1023, 300,4000); // Convrests the read values of the potentiometer from 0 to 1023 into desireded delay values (300 to 4000)
return newCustom;

Print Settings


ExtraBot 3020








Some support is necessary (for the housing and some other parts). Check everything in your slicer before printing.

More from Biology

view more

All Apps

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

3D Print a wide range of designs with Treatstock. Easy to use tools to get the perfect result. The global 3D printing network that connects you with high-quality and fast working print services nea...

App Info Launch App

Amazing! next project for me. Thanks!