вот это наверно не надо
sp.WriteLine("Hello!");
если только на ардуине это не обрабатывается.
Console.ReadLine() - может тут что то не то?
надо смотреть куда попала ардуина, на какой порт.
ну и байтовый массив наыерно так просто не напечатать, а что то вроде этого, наверно
Console.WriteLine(Encoding.Default.GetString(value));
или Console.WriteLine(Encoding.UTF8.GetString(value));
смотря какая кодировка с ардуины идет.
Ну значит ардуина не пишет строками (в конце нет спецсимвола конца строки). надо воспользоваться коммадой Read(Byte[], Int32, Int32) , а число байтов в буффере проверять BytesToRead, или читать по 1 байту в цикле. Как удобнее.