Minor Update 20/3/19:
Getting the filament smoothly into your extruder feeder is rather important. With the Ender 3 the spool holder is normally mounted on top, creating a steep angle of entry, and if left unchecked will wear a slot in the feeder arm. The filament also rubs on the lead screw at the bottom.
There are a number of solutions to the above already available - this is just my take on it.
Also fits CR-10 (without filament runout sensor).
I like to design things that don't need extra hardware but to do this properly you will need a skateboard bearing and a 4mm bolt. Printed bearings or changes that create friction/slop are not an option.
The roller guide is a secure push fit onto the top carriage and requires no hardware to mount. It wont fall off, the filament is captive so it can't pop out of the roller or jam up. and importantly, it gives the filament a good smooth path.
Print parts as orientated in the STLs, no problem printing all required pieces at once.
You will need to print:
1 - bracket,
1 - ring - (print ring.stl first, if it isn't tight enough then ring-sm.stl is slightly smaller inside).
2 - spacers
Plus you will need:
1 - 608 bearing (probably the most commonly available bearing, used for skateboard wheels and other things).
1 - M4 x 16mm bolt (spare part with my Ender 3, hopefully yours too).
Assembly (the photos will assist):
1) Lay the ring on a flat surface and press the bearing all the way in - if you feel it isn't on tight enough then print ring-sm and use that one.
2) Push a spacer into each side of the bearing
If you don't want to pull the filament out of your hotend do step 3 last.
3) Fit assembled bearing into bracket, insert and tighten bolt from the front - the back hole is smaller so the bolt can cut a thread as you wind it in.
4) Firmly push the bracket all the way onto the Z-axis carriage (the cutouts wrap around the axle spacer and nut).
5) Ensure filament isn't tangled from the spool then feed end through roller, then into extruder feeder as per normal.
Tutorial edit G-CODE
video test g-code M600