Побитовая отправка данных arduino и операторы &? :?
digitalWrite(tm_dio, data & 1 ? HIGH : LOW) означает что мы берём пин tm_dio, берём младший бит переменной data (формально мы проводим операцию and между битовым представлением data и числом 1, которая оставит исходное значение только в младшем бите, ведь x&1=x, и обнулит остальные биты, поскольку x&0=0) и если в младшем бите 1, то в функцию digitalWrite отправится HIGH, а если 0 - LOW.
А потом мы в data сделаем сдвиг данных вправо на 1 бит
Таким образом за 8 итераций из младшего бита переменной data считается вся переменная и каждый ее бит будет отправлен в виде LOW или HIGH в функцию digitalWrite.
Это тернарный оператор. По простому - если истинно выражение до "?", то выполнится то, что  до ":", иначе - после.if(data)
digitalWrite(tm_dio, HIGH);
else
digitalWrite(tm_dio, LOW);