top of page

NMR Tube Mechanical shaker

Hello Everyone,

This device can be used to dissolve polymers in NMR tubes, or sometimes to clean NMR tubes. If you are familiar with conventional NMR spectroscopy (excluding Solid NMR), then you would know that for NMR, the material is required to first dissolve in a deuterated solvent. Depending on the nature of the material being studied and the deuterated solvent, the dissolution process can be a little time taking process. Therefore, I decided to make a mechanical shaker for the NMR tubes. Although there are many types of mechanical shakers available in the market, none of them seemed useful for my purpose. NMR tubes are sleeky tubes made from special glass materials. These tubes are mostly 7 to 8 inches long and have a 5mm outer diameter. In this blog, I will take you through the steps that I followed to build this project.

First, I went to a website called to check if any design exists for NMR tubes. is an awesome place to showcase your creative skills and DIY hacks. You can find several cool projects. I highly recommend you to check this out. I indeed found one design from which could potentially solve my problem. So, inspired by this design, I decided to make my own model. I used Autodesk Fusion 360 CAD software for parametric modeling. I am not going to explain the details of the CAD modeling here. There are several you-tube videos on basic introduction to Fusion 360 for your reference. After finishing the modeling, I saved the design as an STL file and switched to the Creality software for generating the gcode. I adjusted the orientation of parts as per requirements, then I exported the gcode file to my creality CR10S pro V2 3D printer. Print settings are as follows:

1.75 mm PLA filament,

30% fill density,

60 deg. C bed temperature,

220 deg. C nozzle temperature,

RAFT platform adhesion,

print speed 50 mm/sec,

After a couple of failed attempts, I finally managed to print all the parts required for this project. I required an additional, three 8mm id ball bearings, one M8 nut and Bolt, and seven M3 nuts were also used. Assembling was pretty straightforward, and within no time the model was ready. After that, the installation of electronic circuitry was left to complete this project. I used the Arduino mega328 microcontroller board to drive this stepper motor. I programmed it to rotate at 10 rpm and 600 steps per revolution.

Stepper motor 28BYJ-48 to Arduino Mega 325 connection via ULN2003 driver

The required connection was made between the microcontroller, stepper motor, and the driver. Finally, I uploaded the sketch to the Arduino board, and wallahh.. the model started working. This model roughly weighs around 270 grams. In the future, I will be posting new version updates on this device.

#include <Stepper.h>

const int stepsPerRevolution = 600;  // change this to fit the number of steps per revolution
const int rolePerMinute = 10;         // Adjustable range of 28BYJ-48 stepper is 0~17 rpm

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
  myStepper.setSpeed(rolePerMinute);  // initialize the serial port:

void loop() {  
  // step one revolution  in one direction:


3 views0 comments

Recent Posts

See All
bottom of page