A driver circuit for an electric vehicle, comprising: a first voltage driver having a first input line, a first output line, and a first voltage sense line; the first input line coupled to both the first voltage driver and a microprocessor, the first output line coupled to a first side of a contactor coil of a contactor, the first voltage sense line coupled to both the first output line and to the microprocessor; a second voltage driver having a second input line, a second output line, and a second voltage sense line; the second input line coupled to the microprocessor, the second output line coupled to a second side of the contactor coil, the second voltage sense line coupled to the microprocessor; the microprocessor configured to generate a first pulse width modulated signal on the first input line to induce the first voltage driver to output a second pulse width modulated signal on the first output line that is received by the first side of the contactor coil to energize the contactor coil; the microprocessor further configured to iteratively measure a voltage on the first voltage sense line over time to obtain a first plurality of voltage values when the microprocessor is generating the first pulse width modulated signal; the microprocessor further configured to determine a first filtered voltage value based on the first plurality of voltage values; the microprocessor further configured to set a first diagnostic flag equal to a first value if the first filtered voltage value is less than a first threshold value; the microprocessor further configured to iteratively measure a voltage on the second voltage sense line over time that is indicative of a voltage on the second output line to obtain a second plurality of voltage values when the microprocessor is generating the first pulse width modulated signal; the microprocessor further configured to determine a second filtered voltage value based on the second plurality of voltage values; the microprocessor further configured to set a second diagnostic flag equal to a second value if the second filtered voltage value is greater than a second threshold value; and the microprocessor further configured to stop generating the first pulse width modulated signal to de-energize the contactor coil if the first diagnostic flag is set equal to the first value, and the second diagnostic flag is set equal to the second value. a first voltage driver having a first input line, a first output line, and a first voltage sense line; the first input line coupled to both the first voltage driver and a microprocessor, the first output line coupled to a first side of a contactor coil of a contactor, the first voltage sense line coupled to both the first output line and to the microprocessor; a second voltage driver having a second input line, a second output line, and a second voltage sense line; the second input line coupled to the microprocessor, the second output line coupled to a second side of the contactor coil, the second voltage sense line coupled to the microprocessor; the microprocessor configured to generate a first pulse width modulated signal on the first input line to induce the first voltage driver to output a second pulse width modulated signal on the first output line that is received by the first side of the contactor coil to energize the contactor coil; the microprocessor further configured to iteratively measure a voltage on the first voltage sense line over time to obtain a first plurality of voltage values when the microprocessor is generating the first pulse width modulated signal; the microprocessor further configured to determine a first filtered voltage value based on the first plurality of voltage values; the microprocessor further configured to set a first diagnostic flag equal to a first value if the first filtered voltage value is less than a first threshold value; the microprocessor further configured to iteratively measure a voltage on the second voltage sense line over time that is indicative of a voltage on the second output line to obtain a second plurality of voltage values when the microprocessor is generating the first pulse width modulated signal; the microprocessor further configured to determine a second filtered voltage value based on the second plurality of voltage values; the microprocessor further configured to set a second diagnostic flag equal to a second value if the second filtered voltage value is greater than a second threshold value; and the microprocessor further configured to stop generating the first pulse width modulated signal to de-energize the contactor coil if the first diagnostic flag is set equal to the first value, and the second diagnostic flag is set equal to the second value.