1. A controller for a multi-touch surface, the multi-touch surface having at least one drive electrode, at least one sense electrode, and at least one node disposed at an intersection of the at least one drive electrode and the at least one sense electrode, the controller comprising: output circuitry operatively connected to the at least one drive electrode, the output circuitry being configured to generate timing signals that may be used to generate drive waveforms for the multi-touch surface; and input circuitry operatively connected to the at least one sense electrode, the input circuitry being configured to determine proximity of an object at each node by measuring capacitive coupling of the drive waveforms from the drive electrode to the sense electrode; wherein the output circuitry and input circuitry are part of a single application specific integrated circuit.