A little while ago I needed, at short notice, an orbital shaker to go inside a cell culture incubator. OpenOrbital was the resulting prototype. It worked well until the expensive shaker the lab had ordered arrived.
The shaker has an Arduino control panel allowing speed control, which is intended to sit outside the incubator, and is powered by a stepper motor which is fed with a thin ribbon cable which can be trapped by the incubator door. It can carry low to moderate loads of culture flasks.
The SCAD file can be downloaded here.
If you want to make your own OpenOrbital shaker you need:
1x stepper motor
8x sealed bearings (mine were 10x15mm but you can tweak this in the .scad file)
Arduino UNO with keypad shield
DC power supply
3D printed components
4x spindles (in SCAD file)
4x joiners (in SCAD file)
1x spindle cog
1x motor cog
Planar (laser-cut or saw from acrylic or similar)
2x lower plates
1x upper plate
You will also need some sort of spacers to go between the lower plates, as you can see I cut pillars of acrylic but you can use almost anything for this. And you will need to attach the stepper motor to the base plate. I simply glued on some acrylic to contain mine but you could drill holes and bolt the motor down.
If you have more questions about how to go about putting together the shaker just let me know in the comments and I’ll do my best to help.