As the LPC55S16 does not support OTG, I'm investigating other ways in which the chip could take on Host and Device roles within the same software application. From a hardware perspective, it appears that the physical layer functionality required for either Host or Device operation is largely contained internal to the chip (eg. the Host or Device specific pull-up arrangements required for initial signalling), so other than providing the usual termination resistors, and dealing with the USB Vbus power arrangements, the hardware aspects look fairly easy to accomplish. What I have no feel for though, is whether it would be practical to have both Host and Device drivers / middleware resident in the user application, and to somehow switch between the two on the rare occasions that the product needed to function as a USB Host (for 95% of the time, the product would be used in Device mode). The switching doesn't need to happen automatically; it would be perfectly ok to have the user set the product into Host mode, eg via a user menu, when Host behaviour is required. I realise that this is a pretty "clunky" way to get around the lack of OTG functionality, but I'd be really grateful for any advice on whether this could actually be made to work, or is likely to be beset with problems.