In considering STM32, this post may be helpful:
USB Composite library - Arduino for STM32 (stm32duino.com)
I'm very familiar with V-USB;
V-USB Port to Arduino.. - Using Arduino / Programming Questions - Arduino Forum
String numeric output with V-USB HID - Community / Exhibition / Gallery - Arduino Forum
It does well as HID, but
V-USB is a software-only implementation of a low-speed USB device for Atmel’s AVR® microcontrollers
Other good links are:
Four Walled Cubicle - LUFA (Formerly MyUSB)
AVR ATtiny USB Tutorial Part 1 | Code and Life
PS:
Any links of mine to hackster.io should be disregarded as I severed my relationship with them over their insistence that users were forced to have a (free) login before reading full article or downloading. This ran afoul of my desire to host openly accessible projects (as was originally promised.)
Ray
PPS:
Any links to flicker are dead after the Yahoo deal.