===Description/Requirements===
We need software written that implements a STM32F407 host mode USB driver, able to connect and communicate with USB serial devices that expose multiple virtual devices such as GSM/GPRS modems.
* Implemented using this GCC toolchain : [login to view URL]
* Using the standard STM32 USB base USB libraries
* Thread safe, implemented under FreeRTOS reference sample application (we will provide base sample application)
* Each discovered bi-directional stream presented as a stream from the library
* Be able to detect different USB devices using a device table (Vendor ID / Product ID)
* Notify on device connection / disconnections
* Work with the STM32F4 Discovery board [login to view URL]
===Deliverables===
* A USB library implementing the USB host driver on the STM32F407 high speed USB OTG port
* A sample firmware application using FreeRTOS on STM32F407 using the above library to communicate with the multiple streams, that can do the following:
* * Detect and connect a device such as a GSM/GPRS USB modem and make available all streams to the application.
* * demonstrates sending data to and from the connected devices and outputs to the STM32F4 UART1 debug port.
* Full source code for all of the above that can compile into the demonstration application.
* Tested and defect-free.