DIY Open Source принтер. Часть 1. Покоряем USB Printer Class и имитируем печать текста

Привет, Хабровчане!
Это продолжение моего дневника разработки DIY струйного принтера предыдущая часть:
DIY Open Source принтер. Часть 0
В прошлый раз одной из поднятых проблем стал интерфейс между ПК и устройством. В данной статье я постараюсь решить вопрос подключения STM32 по USB и убедить Windows и Linux что это принтер.
Содержание
§1. Кратко о USB
§2. Поиск реализаций USB Printer Class для STM32
§3. Реализация USB Printer Class для STM32
§4. Тест на Windows
§5. Тест на Linux
§6. Как добавить поддержку печати изображений?