Anti-Drip Spinning Rack
by jarrettjamesjohansen in Workshop > Tools
621 Views, 4 Favorites, 0 Comments
Anti-Drip Spinning Rack
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
Downloads
Supplies
-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
There are 11 pieces you will need to 3d print:
- Base plate
- Back Plate
- Front Plate
- 2x Washers
- Small Spur Gear
- Large Spur Gear
- 2x Spacers
- Shaft
- Mounting Flange
I used a Prusa SL1S with Tough Prusa Orange resin.
Files are attached
Assemble the Print
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.
- Start by pressing the two bearings into their recesses on the back and front plates
- Press the Mounting Flange onto the Shaft
- Press the shaft through the front plate bearing
- Slide one of the washers onto the Shaft
- Slide the Large Spur Gear onto the Shaft
- Slide one of the washers onto the Shaft
- Insert the Small Spur Gear into the corresponding hole on the Front Plate so that it meshes with the Large Spur Gear
- Press the Shaft through the back plate bearing
- 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
- Align each Spacer between its corresponding mounting holes on both the Front and Back Plates
- Press an M3 Bolt through each mounting hole on the Front Plate
- 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
- Tighten a Nut onto each M3 Bolt
- Use Sticky Tape to attach both the ULN2003 Board and Breadboard onto the Base Plate
- Press the Potentiometer into its corresponding hole on the back of the Base Plate so that the nob faces outward
Wiring
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.
- Mount the Arduino Nano into the breadboard with the port facing outward
- In1 -> D5
- In2 -> D4
- In3 -> D3
- In4 -> D2
- Leftmost potentiometer pin -> 5v
- Middle potentiometer pin -> A0
- Rightmost potentiometer pin -> GND
- UNL2003 - -> GND
- UNL2003 + -> 5v
Program the Board
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.