The problem is, no microcontroller is able to count short pulses in software in a reliable way. One has to use at least a 1:2 prescaler (flip-flop) to make pulses long enough, or better a fully hardware bidirectional counter.
STC running at 35 MHz would have only about 150 kHz sampling rate if the software is highly optimized because it has to count 5 inputs at once. Thus it can miss pulse that is shorter than 10 us. And it misses.
Plan A: Remove STC and place a CPLD instead, implement everything in hardware.
Plan B: Remove two 74HC14s and place a CPLD instead, make hardware counters.
Plan C: Throw this board away, take a CPLD and build my own design. But this board has lots of nice transistors to demux LEDs, why throw them away?
Plan D: Fit Cypress PSoC somewhere, probably instead of STC. It's programmable peripherals are good enough to implement 5 hardware counters.
Plan E. Remove two 74HC14s and fit 22V10 instead, turning them into 1:2 prescaler. (Or fit something else and make 1:4, 1:16 or programmable prescaler).
Plan F. Prescale the signal before this board. (Inconvenient).
Any suggestions?
This part does not have any hardware USB. Looks like no software USB, too. This "USB" port is directly wired to the MCU and looks like it isn't USB at all, they just used an USB connector for something like debug port. My first guess was that it's RS232 but it does not go to RX and TX pins. I never tried to connect it to USB - I'm afraid it's 5V instead of 3.3 V.