Anti-Drip Spinning Rack

by jarrettjamesjohansen in Workshop > Tools

621 Views, 4 Favorites, 0 Comments

Anti-Drip Spinning Rack

IMG_0370.jpg

I have always struggled when coating small objects in either paint or epoxy without them dripping all over the place. I usually end up spinning the item in my hand to keep it from dripping which always takes forever. So the idea of a speed controlled plate that could hold the said item was born.

This anti-drip spinning rack is designed to rotate a small object while not needing attention from you. It is meant to hang over a ledge or over a drip tray while holding the said object to be coated. Ideally this will produce a smooth and even coating with no high or low points.

You will need 3d printed parts and several electrical components. Most basic Arduino kits will have the necessary parts (links to individual parts will be included). Refer to the Tinkercad images for construction guidelines.

Tinkercad link: https://www.tinkercad.com/things/dRdoZ3ICQae-spinning-dripless-drying-rack

Supplies

Screenshot 2025-09-30 000616.png

-1x 28BYJ-48 Stepper Motor & ULN2003 Driver

https://www.ebay.com/itm/185760227689?_skw=ULN2003+stepper+motor+driver&itmmeta=01K6CGWTADHZJNV8VKYJ8RJ8Z7&hash=item2b402c2169:g:s2gAAOSwqBBj2wBA&itmprp=enc%3AAQAKAAAA8FkggFvd1GGDu0w3yXCmi1fqAmhNncDaiP9oZ%2BPs%2FtzeE5TTJrdFj10V0%2FuT0887RwMc5NX7sg8CqtKs6TDdtUhUxEcozCu%2FwE9G0z5Vt4KOP2yuEsvsgjTFv%2FXezp8RJ0aJ6A87MCx0pIOxkYeySiVFtRG6b4z1b8aqZq3wDtzEHWemjIw8M2lRJcIDNOY9MTh%2BkxGh3an295lp7wOinAfvCQo8qSwLLieZV1gSCj1i2RJ%2FXXQhKZLkRzIxoeC%2BZp%2FVkMNEs9b3Lkv92fgUHwzlGs%2B4s1OoIzVf23hmdmIei5evwLywZNxvmk0PykQZaw%3D%3D%7Ctkp%3ABFBMgqbzkLNm

-1x Arduino Nano

https://www.ebay.com/itm/225280785369?_skw=arduino+nano&itmmeta=01K6CHDF1T91D2Q6PD72TRX852&hash=item3473c7fbd9:g:a6sAAeSwZ1Noy08R&itmprp=enc%3AAQAKAAAA4FkggFvd1GGDu0w3yXCmi1dhfIDtdTxfiuKpq5GmFzuila%2B7y9GsUsFs%2B2SPiAoUmYQDk6uOitzTWcosAW4r%2B2OijzqzFiXMhWXYya2C9L3iFOhWrrcVLZGas%2B%2BLCYz9FfsUlyt%2FegsxiEksfl3Q7iEYMzsQwyeg1LB09YX9%2FbSTNa1zxyiMPRl5BYZjGIFvSu3Cqb7n9LLRY%2FTIvU%2FSidpEUzfy4Xx%2F9EvvYXGGPSdp9zqrV6KsvyH0oJhJyZe7ZeeTDAGPA3KIgBmLp48erwW%2FTYDje9wP0aijPTzz2mCx%7Ctkp%3ABFBMivG1kbNm

-1x SYB-170 Mini Breadboard Board

https://www.ebay.com/itm/253061339251?_trkparms=amclksrc%3DITM%26aid%3D1110006%26algo%3DHOMESPLICE.SIM%26ao%3D1%26asc%3D20220405142716%26meid%3D907bddb0a1944007a2e5b913d72cebbf%26pid%3D101506%26rk%3D8%26rkt%3D10%26sd%3D186450362345%26itm%3D253061339251%26pmt%3D1%26noa%3D1%26pg%3D4481478%26algv%3DDefaultOrganicWebWithV11WebTrimmedV3VisualRankerWithKnnV3AndUltBRecallAndCassiniEmbRecall%26brand%3DUnbranded&_trksid=p4481478.c101506.m1851

-1x 10k Ohm Potentiometer

https://www.digikey.com/en/products/detail/bourns-inc/3386P-1-103TLF/1232547?gclsrc=aw.ds&gad_source=1&gad_campaignid=20504615262&gbraid=0AAAAADrbLliSe7-MyivUt49VRXRgvobXy&gclid=Cj0KCQjw3OjGBhDYARIsADd-uX7N5TpRDFDlftRNEqm2AdlgPJ5IiwErzqsvlk2Esix1Q5FCnZGYR3MaAt8TEALw_wcB

-2x 608 Bearing

https://www.ebay.com/itm/375362812235?_skw=608+bearing&itmmeta=01K6CHP5HVKJJG7BZS82KZKE1T&hash=item57655df94b:g:YywAAOSwqgJnkAPl&itmprp=enc%3AAQAKAAAA0FkggFvd1GGDu0w3yXCmi1fdsaHpvtv77QtZp2BQ46nSA2asxguz9YP1r4C7jQ8UX5UMmtXb4qo2HT%2FOwulWpjmBlJiuIx16m3myMisLy%2FaAbVu23fYBm3eNhYn2%2BuSY%2FplxkAyzfhSUAkwPXtXoo0hm2LusHP8t4M2WfEhUMb%2BFPU7YESI4ugy1XFN%2B%2BCPkN3srYvRvQhL1%2FHPD38%2Bpj8rZfx9eKXtwZCIpuRficss2bGu7imSsnvVkkzMtl5nVvOQlT%2FKSe%2BIjfhRJRk3nOqU%3D%7Ctkp%3ABk9SR4bZ2JGzZg

-4x M3*18mm bolt and nut

https://www.amazon.com/HVAKHVA-M3-Socket-Assortment-Stainless/dp/B0DRVD2KLQ/ref=sr_1_3?dib=eyJ2IjoiMSJ9.dsI9QHXXjio4zN-NOmkSGUFNGzWaoDf4Sd6CwzmfFT0QEIBEvzgRZprNtKymRVhJ9XpxKl0LL8dP0clcAMn6qloM9EVyFO8Q3K_BZYAMOYqu78-ZyZZySK4SqOfXfsEYuEdeEOBCQx---R8HCuCP7hsgVhfw_vlzc0oKxDrcBO426fKeZZELAArbc66R9sRH6YNinLZLFJOcvkMHm_f6lLa2z7cROdleQhiXzwPVBaY.IKqLXBlyg9AbZlZcL9pdaWAPnkI0XSoo2r317zCxZ4k&dib_tag=se&keywords=m3*18%2Bbolt%2Band%2Bnut&qid=1759210465&sr=8-3&th=1

-1x 18inch Bell Wire

https://www.amazon.com/Southwire-64267101-White-Bell-Wire/dp/B075TSZRSL/ref=sr_1_6?crid=295H57KFFMCM4&dib=eyJ2IjoiMSJ9.5xnXyCguyrjXk1HVVJIjaeZhizx_LTmZtwEArpF9_duRPygy3IVJwXxRAXrl4trom5NKJ2F_FtzEQMfhSrhF0ZzP-nJFQJ4o9X9Oc0zN2updS0HsU1xF-4Sn1sqf7v3MVjsqCQFSiyWL6UZzk1-Q8tJ3MJdr20vqcsPgYLR1RbLnR4M-VdQI6TYyUf46ZEYaRHd_LxCBi0Oc6CwzRSV8SWiZSchykCb9VeAllcIqfI1bTrdLZQkn7XYgBY-mHdU56T1mqsDzs34KYONsDuXwr7cV_CrLhOteIeesD2NgEq0.zoGUb1Tz3Jd8GIc2aLNt3ogrJ3vVdObpWcN0n0lvHE4&dib_tag=se&keywords=bell+wire&qid=1759210518&sprefix=bell+wire%2Caps%2C164&sr=8-6

- Mounting tape

https://www.amazon.com/Urethane-Adhesion-Polyurethane-Attaching-Nameplates/dp/B0D128W9B1/ref=sr_1_27?crid=21OHG3BH5SDSY&dib=eyJ2IjoiMSJ9.m8d7r0ATUj32BWzTmUaZ41isy1fKX-XzbZaetEBR7cFU9jyEowmoxffMdxM13b4VXiMc6VeFpHYly_rn56wmMM8Ok8oep537XmM2DEauEDcC3jGyS-NYXr6ml28fIbx0vBAtYj3BPlgRHNWIezVKlhURn-b_4czlAYi-luVIbD8ygi5Lt6CO1u7xNFQKIwdV3Pmd0eS8qcV2zsTpyErWn1aFVpAxZoLhsUu0sFQvWT8EVBOKjRTX66zbanJjpq2jecV9h8qvhNl5m96Yqz68JOjDweaiIzqf3nP_5hfME2A.0vBi-YHKmVZv4ZxdyJyFeghTDrrJLiXTDVEY00Q2SyI&dib_tag=se&keywords=mounting%2Btape&qid=1759210584&sprefix=mounting%2Caps%2C162&sr=8-27&th=1

- Access to a 3D printer

Print the Parts

Screenshot 2025-09-30 000900.png

There are 11 pieces you will need to 3d print:

  1. Base plate
  2. Back Plate
  3. Front Plate
  4. 2x Washers
  5. Small Spur Gear
  6. Large Spur Gear
  7. 2x Spacers
  8. Shaft
  9. Mounting Flange

I used a Prusa SL1S with Tough Prusa Orange resin.

Files are attached

Assemble the Print

Screenshot 2025-09-30 000727.png

When the parts came off the printer I needed to file some sides down and widen the bolt holes slightly with a drill. Be ready to work on any printed parts.

  1. Start by pressing the two bearings into their recesses on the back and front plates
  2. Press the Mounting Flange onto the Shaft
  3. Press the shaft through the front plate bearing
  4. Slide one of the washers onto the Shaft
  5. Slide the Large Spur Gear onto the Shaft
  6. Slide one of the washers onto the Shaft
  7. Insert the Small Spur Gear into the corresponding hole on the Front Plate so that it meshes with the Large Spur Gear
  8. Press the Shaft through the back plate bearing
  9. Press the assembly onto the two raised holes on the base plate making sure to line up the holes on the assembly with those on the raised holes
  10. Align each Spacer between its corresponding mounting holes on both the Front and Back Plates
  11. Press an M3 Bolt through each mounting hole on the Front Plate
  12. Press the Stepper Motor into the access hole onto the Back Plate so that it also presses into the hole on the Small Spur Gear
  13. Tighten a Nut onto each M3 Bolt
  14. Use Sticky Tape to attach both the ULN2003 Board and Breadboard onto the Base Plate
  15. Press the Potentiometer into its corresponding hole on the back of the Base Plate so that the nob faces outward

Wiring

IMG_0372.jpg
IMG_0373.jpg

Follow the wiring as seen in each of the above photos. I used a soldering iron and bell wire to make all the connections. Make sure to press the white clip into the UNL2003 board. If there is any additional confusion refer to the code in step four.

  1. Mount the Arduino Nano into the breadboard with the port facing outward
  2. In1 -> D5
  3. In2 -> D4
  4. In3 -> D3
  5. In4 -> D2
  6. Leftmost potentiometer pin -> 5v
  7. Middle potentiometer pin -> A0
  8. Rightmost potentiometer pin -> GND
  9. UNL2003 - -> GND
  10. UNL2003 + -> 5v

Program the Board

Screenshot 2025-09-30 002320.png

The Below code is what I used for this project though you of course could make your own code. I'm sure it could be more efficient but it's not a very complicated application.

Just copy and paste the below code into the Arduino IDE.

Upload it and verify it works.




// Stepper motor control with potentiometer speed adjustment


// Define motor pins

const int motorPin1 = 2;

const int motorPin2 = 3;

const int motorPin3 = 4;

const int motorPin4 = 5;


// Stepper motor step sequence (half-stepping for smoother motion)

const int steps[8][4] = {

{1, 0, 0, 0},

{1, 1, 0, 0},

{0, 1, 0, 0},

{0, 1, 1, 0},

{0, 0, 1, 0},

{0, 0, 1, 1},

{0, 0, 0, 1},

{1, 0, 0, 1}

};


int stepIndex = 0; // Current step

unsigned long lastStepTime = 0; // Last step timestamp

int delayTime = 5; // Delay between steps (ms)


// Potentiometer input pin

const int potPin = A0;


void setup() {

// Set motor pins as outputs

pinMode(motorPin1, OUTPUT);

pinMode(motorPin2, OUTPUT);

pinMode(motorPin3, OUTPUT);

pinMode(motorPin4, OUTPUT);

}


void loop() {

// Read potentiometer value (0 - 1023)

int potValue = analogRead(potPin);


// Map potentiometer value to a step delay (1 to 15 ms)

// Lower value = faster speed

delayTime = map(potValue, 0, 1023, 1, 15);


// Time to step?

if (millis() - lastStepTime >= delayTime) {

stepMotor(stepIndex);

stepIndex = (stepIndex + 1) % 8; // Loop through step sequence

lastStepTime = millis();

}

}


// Function to energize coils

void stepMotor(int index) {

digitalWrite(motorPin1, steps[index][0]);

digitalWrite(motorPin2, steps[index][1]);

digitalWrite(motorPin3, steps[index][2]);

digitalWrite(motorPin4, steps[index][3]);

}

Get to Coating!

I use sticky foam mounting tape to attach my items to the Mounting Flange though you can design your own methods of attaching!

Just plug in the Arduino into a usb outlet and adjust the speed of rotation with the potentiometer knob.