1. A method of programming a control device comprising: receiving a control command from a remote control; operating in a programming mode upon receipt of the control command; providing programming information with text and images via a graphical programming interface after receipt of the control command; receiving an indication from the remote control that identifies a selected button for programming; displaying the selected button on a remote control image via the graphical programming interface; determining whether the selected button is successfully programmed; and indicating on the graphical programming interface whether the selected button is successfully programmed.