Код должен быть таким, чтобы даже через 10 лет его можно было
понять и добавить новых фич. А не калокуб или SPL. Opencm3, кстати, тоже дерьмо: уйма лишних проверок, уйма вызовов функций на пустом месте. Я начал с SPL, понял, какое оно говно. Перешёл на opencm3, помучился немного. Потом написал свой код для USB и перестал пользоваться индусокодом от ST или третьих лиц.
Для датчиков чаще всего тоже свое пишу: adafruit - просто невменяемый говнокод!