Well is it really? Using the pulseIn() command measuring the first low to high pulse width it sees
Ah. Measuring a single bit. Good idea. I got it in my head you'd be measuring an entire byte. Which is not a good idea.
will either capture the width of the first start bit width or any valid zero data bit width if the stream is already active. A start bit and a data bit have the same width at any given baud rate.
What if there are two same value bits side-by-side? Or three bits?
But, you could sample for a while (using pulseIn) and take the lowest reading. Or, you may be able to collect a few samples and deduce the single bit time. I think the trick is to determine which timings are for odd numbers of bits or prime numbers of bits.
What am I missing?
Less than I am.