DISCLAIMER: My English is not very good, so please bear with me.
I had some problems with underextrusions and lines on my prints. I narrowed the cause of the issue to the stock spool holder on my Ender 3. So it was time to look for a new spool holder. However, unfortunately I have not found anything that I would like. There I decided to make my own using Autodesk Inventor and also I decided to share it, just for fun.
This holder has 2 types of bearings inside so the filament just rolls of it very smoothly. (Sometimes it also can be a problem, so you may want to introduce some drag to it).
It can be put on the stock Creality spool holder instead of that tube it comes with.
In the File tab you can find not only STLs, but also IPT files for Autodesk Inventor 2016, which you can freely customize(and please share your makes/remixes). Only IPT you will not find there is for bearing, which is a remix of Gear Bearing by Emmett(https://www.thingiverse.com/thing:53451) with custom dimensions(as my other Thing) and a little brace(like a step) close to the outer edge(look at the pictures).
This version of the spool holder will fit 80mm wide spools with 50mm ID hole. You can fit wider or narrower spools by just scalling the printed "rod" in your slicer to desired length. Formula for length of rod is :
Width_of_spool(in mm) - 36mm(2x18mm) + 1mm(offset - safe measure).
Things you will need(not printed):
M6 threaded rod (sold by 1m, so you need to cut it to your desired lenght, I cut mine to around 20cm)
M6 nuts - 13x (+1 nut or nyloc)
626ZZ bearings - 2x
M3 nuts - 3x
M3 x 50(mm) screws - 3x
One of each file, except (printed) bearing, of which you will need two.
After you print everything you need to insert those M3 nuts into the "holder_nut". I had to slightly bang them into the hexagonal holes with hammer.
Next insert one of the 626ZZ bearing into one side of the "holder_back"(also you can use hammer).
Then you need to screw 7 M6 nuts onto the M6 threaded rod, so that they will be aprox. 25mm from the end of it.
Insert threaded rod into "holder_back" so those 7 nuts will be inside of it and put second 626ZZ bearing from another side.
Secure both bearings of "holder_back" with two M6 nuts on each side of it.
Put one M6 nut(or nyloc) inside "back_wheel" and screw it onto the shorter end of threaded rod(very tightly, but don't break that wheel).
From the other side of the rod you can now insert metal bracket of stock spool holder, then "holder_nut", which you need to secure by adding those 50mm M3 screws from the other side of "holder_back".
Then on the side of "holder_nut" put onto the threaded rod one printed bearing, then printed rod and after that second printed bearing.
Last thing to do is to insert two(or you can just go with one, it works both ways) M6 nuts into "end_nut" from both sides and screw it onto the threaded rod.
walls, top/bottom layers atleast 2mm(espacially important for bottom and top layers)
PLA is pretty sufficiant for this thing, but you can print it also with PETG or ABS(if you do, let me know how does it do)
rod, end_nut, back_wheel :
supports - no
infill - 20%
supports - yes
infill - 20%
supports - yes
infill - >=30%