Создание своего протокола

Да.
Так что я думаю, для “нестандартного”, для отправки вообще любой последовательности байт в шину надо использовать именно RPC, пример реализации можно посмотреть Шаблон для электрокарниза - #6 от пользователя BrainRoot

printf не подразумевает никакого ответа из шины. К тому же он не учитывает что шина (может быть) занята драйвером.

Да, привел пример выше.