Around the beginning of quarantine, I decided to get a new 3D printer to replace my aging 2012-era Solidoodle 2. I chose the Creality Ender 3 Pro, a ~$200 completely open-source printer. Choosing a 3D printer this inexpensive has a couple downsides, so I decided to strategically update the most important components.
Of course, the software makes as large a difference as the hardware. With some careful configuration tweaks, I've made the printer significantly more useful.
Enabling the BLTouch(opens new window), which required patching the board support files to correct the pinout of the E3 DIP
Switching to no-endstop homing (using the upgraded steppers' stall detection), and optimizing the homing procedure to reduce strain on the timing belts but run faster (including tuning the homing sensitivity)
Patching the build configuration to use the hidden extra 256k of flash storage on the SKR Mini E3 DIP
Switching to software PWM to reduce fan noise
Switching to an improved Z-leveling interface, which greatly simplifies bed leveling
Removing arc support, an unused GCODE feature only rarely relevant for other CNC machines. This frees up flash storage for more important things, like...
Enabling several onscreen games hidden inside the menus
Restoring powerloss recovery, which required patching a malformed ternary operator in Marlin
Increasing the max allowed acceleration (since vibration is less of an issue with TMC2209 drivers)
Switching to S-curve acceleration, which allows higher print speeds with the same print quality
Silencing all beeps
Improving pause behavior, and linking the onscreen controls to the networked Octoprint interface
Parsing print ETA and time to completion from GCode files and displaying live stats, accurate to within seconds
Adding support for individual-object cancellation (when printing many objects and one fails, this allows you to cancel just that object in realtime)
Enabling USB SD support (so you can browse the printer's internal SD card as a USB mass storage device)
As a consequence of this, enabling completely wireless firmware flashing over the local network
Modifying the automatic bed leveling to leave room for clips at the edge of the build plate
Significantly improving the speed and reliability of the automatic bed leveling
Adding a "You Wouldn't Download a Car" image bootscreen