Limit the max consecutive bits of the same value sent to have max time of having the line HIGH and LOW to make the timing more forgiving. Should probably use CAN style, add an inverted bit if long sequence(6 ?) of high or low bits instead of relying on parity bit.