Digital Tachometer for car

Far-seeker:

 if (RPM < 7000) 

module1.setDisplayToDecNumber(RPM,0, false);        //Display RPM on TM1638




Hmm... This might be a minor thing, but why is there an conditional statement on the display command? You already are already imposing an upper limit of 9000 RPM by discarding pulses shorter than 3378 ?s due to your logic during the pulse detection. As currently written the code counts the pulses that indicate an RPM of 7000 to 8999 valid inputs but won't output these corresponding values to your display.

Yeah I noticed that already.
Changed it to match with pulses shorter than 4292 ?s (aka 7000rpm)

Any ideas to further filter the signal with hardware, so I can actually use the time between pulses that pulseIn gives me?
It would make for a more accurate display.

I plan on building some limited engine management off of this system, so accuracy is important.