Launched in 2009, Keck Observatory’s Telescope Control System Upgrade (TCSU) project set out to improve Keck’s telescope pointing, tracking, and offsetting performance as well as increase maintainability and reliability. The project went online full time on the Keck 2 telescope in October 2017 and on the Keck 1 telescope in March 2018 after a notable delay due to a re-design of the azimuth and elevation encoder mounting systems. This paper discusses the details and challenges of implementing this large and complicated system while never requiring a shutdown of either telescope. The TCSU project replaced all of the major elements of the telescope controls, rotator and secondary mirror controls, and safety system. National Instrument’s reconfigurable I/O technology (i.e. NI RIO), with their embedded field programmable gate arrays (FPGAs), are used as the core of the telescope’s digital velocity control loop, structural filter, and tachometer filter. They were also used to create a monitoring and safety system for the rotator velocity controller as well as reading the newly installed tilt meters used to greatly improve pointing performance. Delta Tau’s family of “Brick” programmable multi-axis controllers, i.e. PMAC or BRICK, are used to control the rotator and secondary mirror. They enable better tuning and faster slew speeds for these subsystems. An Allen Bradley’s ControlLogix® controller and the family of FLEX™ Input/Output (IO) modules were used to create a distributed safety system able to handle a wide variety of signal types. This technology refresh based on commercial off the shelf equipment replaced much of our obsolete and custom equipment. A significant part of the project was the installation of new telescope azimuth and elevation position encoders based on Heidenhain’s 40 micron grading tape scales. Interpolated to a 10 nanometer resolution, the new encoders provide true 4 mas resolution in azimuth and 1 mas resolution in elevation. This is a big improvement to Keck’s position sensing when compared to the old rotary incremental encoders. The installation required a significant amount of mechanical infrastructure to house them. Additionally, two tilt meters were installed to sense the telescope’s varying vertical angle as a function of azimuth, mainly due to the azimuth bearing’s axial runout. The encoders and tilt meters are the primary reason for achieving the greatly improved pointing and tracking performance . Finally, a switching solution using solid state relays and dual network switches was installed to provide seamless and rapid switching between the old and new control systems during commissioning. Although this component is a simple design and does not boast of any new technology, it is one of the key components that enabled the successful testing of the new equipment while keeping the old system operational as a backup for night time observing as well as for baseline performance comparisons. It allowed us to switch a variety of signal types and was very cost effective when compared to available products.