Second attempt at figuring this out. This uses SerialStreamFormatter to format the new stream packet by packet.