KurojNeko писал(а):
...Буду пытатся в железе....
по поводу протоколов - всё очень просто..
1) берёте даташит от нужной вам железки.
2) смотрите команды. смотрите в двух плоскостях - а) логическом и б) физическом.
3) рисуете обмен на физическом (вход для подпрограммы являются байты, команды, элементы логики)
4) рисуете обмен на логическом уровне (проинициализировать, стартовать, считать, записать и т.д.)
использовать либы конечно же можно, но как это помягче сказать - не для коммерческого использования. серьёзные коды не валяются в инете...и доводятся напильником для убивания бОльших фич и потребностей. к примеру вы не найдёте стэк TCP/IP со сборкой пакетов на IP уровне

удачи вам
(круглый)