I got my Creality CR-10 in October 2019. It has a 300-300mm build plate and height of 400mm.
Leveling the build plate is a huge pain, and I wanted to install a BLTouch system. A BLTouch is a bed leveling system which deploys a probe and lowers the gantry until it reaches the bed. It probes many points in a grid to create a mesh of the bed. To take advantage of this even more, I needed a remote interface for the printer which can be accomplished by using a Raspberry Pi. The Raspberry Pi would enable the printer to be internet connected and thus able to send prints online, as well as remote monitoring with a camera.
Next I wanted to get rid of this terrible control box. I found instructions online about a combined control box that sat under the printer
I also bought a new motherboard
The next upgrade I did was change the firmware from Marlin to Klipper. This can be thought of as going from Windows to Linux. In Klipper, you can change every possible setting and control every part of the printer in a very simplified way. Klipper also utilizes the Raspberry Pi, as the complex computations are performed by the Pi and the quick actions are performed by the printer motherboard.