Added FSM for keyboard comms