# Any platform able to perform as USB device?



## silicium (Jan 13, 2016)

Hello embedded superusers,
I'd like to see a supported ARM development board with USB OTG not in host mode, that can be seen by other hosts (running any OS with full USB support) as HID or audio I/O (PCM or MIDI) or Media Transfer Protocol device. Does it exist? Can FreeBSD USB stack be modified to run the endpoints side, and is there other source code needed?


----------



## Phishfry (Jan 14, 2016)

The Beaglebone OTG port has comms working. It is storage based. The devices eMMC module shows up as Mass Storage device.

https://forums.freebsd.org/threads/beaglebone-black-ethernet-over-usb.54120/


----------



## hselasky@ (Jan 14, 2016)

silicium said:


> Can FreeBSD USB stack be modified to run the endpoints side, and is there other source code needed?



Look for "USB templates". The FreeBSD's USB stack is symmetric and supports both host and device side mode.


----------



## hselasky@ (Jan 15, 2016)

Typically you'll need an ARM board with USB OTG capability. FreeBSD supports two or three variants of such controllers.


----------

