полностью согласен, не хотелось бы выдирать код с двух ардуинских либ, эту идею я вообще оставил на тот случай если лбом сломаю клаву или фейспалмом лоб)
Так либы ардуины в плане логике вполне себе адекватные, просто меняешь софтовый delay на аппаратный на sysTick и радуешься.
Вариант, как выше предлагали, на базе uart это топчик, но его еще найти надо тогда)