I strongly recommend sticking to PC standards: start bit is high, data bits are inverted (1 = low, 0 = high) with one line bit per data bit, data rolls right on send/receive, stop bit is low. The technique you refer to (put a 1-0 on the line for a 1 data bit) sounds a bit like Manchester encoding, used in radio and other media that don't like long time periods without a voltage/level change. Serial comms is usually (always to my knowledge, but someone will find an exception if I say that) one line signal per data bit: Byte to send: 0xAA b'10101010' Bit location: '76543210' Line signals H H L H L H L H L L Meaning Start 0 1 2 3 4 5 6 7 Stop I've attempted to show transmission sequence with the 7654 stuff. All line bit signals are the same size, 104us seems good for 9600 bps. Does that help?