I recently got a CR-10S and all I needed to do was:
* Assemble: loctite 243 on all bolts except the few involving plastic (forget off hand which ones), retighten all fasterners, make sure cables are free to move, ground the USB shield to a bolt on the chassis (it was very flaky without this as the shield isn't internally hooked up to the chassis or the mains earth prong). It also got a ferrite on the USB cable for good measure. Using the cable that came with it to hook up a rpi 3b+ running OctoPi.
* Update the firmware to Marlin 1.1.9, compiled with 25 point mesh leveling for the 300x300 bed
* Bed four corner knob leveling adjustment
* Bed 25 pt mesh leveling
* E steps/mm calibration
* Flow calibration in cura
* Verify X/Y/Z steps/mm values are accurate (they are, only E was wildly off)
* Heater PID calibration (6 cycles)
* Rebuild firmware with my printer's calibration and my temps (end 185˚, bed 43˚ measured to 40˚ using a FLIR gun, I suppose I should see if it has configurable thermistor calibration data) as default values
I did have to turn the Y jerk WAY down or it would shift when the bed is all the way back; the large bed with glass is pretty heavy and the belt likely slips is my best guess. I think I set X=10, Y=5, Z=0.5, E=10 or some such. Same with acceleration; I led it accelerate twice as fast in X as Y, there's much less weight on the X belt since it just moves the hotend.
I've only had to level the bed once since I went to 25 pt mesh leveling. I did have to add M420 S1 (if I recall) to the printer initialization in Cura to always enable the mesh for all print jobs. So I didn't bother replacing the knobs or anything. It prints reliably every time. I use hairspray on the bed, never wash it off, just scrape it to smooth with the scraper they kindly provided, then a very thin fresh layer and give it a minute to dry. Sticks like nobody's business without rafts or brims, although I do start with 2 rounds of skirt on all prints and clean off the nozzle with a pair of tweezers if it looks messy. I also made G28 (XY home) leave the mesh setting intact as a build option, but I'm not sure how well that works since all my gcode explicitly enables it anyway. The mesh leveling feature is pretty awesome; on my printer the X traversal is slightly bowed up at center, but no problems - it does however require 5x5 points for this size bed and bow shape, instead of the default 3x3.
Printing is using OctoPi (I enabled the M73 progress command and added the OctoPrint plugin).
Fusion 360 direct to Cura, direct to OctoPrint.
What can I say, it just works with the cheap HatchBox PLA 1.75 I buy off Amazon. (Haven't tried the Silk varieties yet.) No need to do any modding here really, other than updating the firmware... I did add a camera mount to one of the bed bolts, holding a C270. I also have an ultrabase on order, I think some poor guy is rowing it across the Pacific as I write this.
Anyway, it's my first 3D printer and I got it mainly to print custom enclosures, panels for aluminum cases, etc. But it has also been quite practical for other uses like instrument replacement feet, a case for the rpi, camera mount and some other odds and ends. Created and printed a replacement knob for our clothes dryer that broke a few years back. (Just the plastic knob broke.) No problems at all so far. Works fine as is, at least for my needs. Couldn't be happier with it - love the thing to death!
Edit: I forgot to mention another important setup step with the dual Z motors: checked the X beam (Z gantry I think it's technically called) with a right angle and manually raised the lower side by rotating its drive rod to level it so it's as equally perpendicular to the verticals on both ends as possible. This is how I discovered it's slightly (about 0.050mm) bowed up in the middle. Enough to make adhesion in the center a problem with only corner leveling. Height doesn't matter at this point, only that it's level and as perpendicular to both verticals as possible so it can move smoothly.