USB device not recognized
Your waveforms look OK IMO. 
You need to check how far you are getting in the enumeration process.
You can do that by checking the unknown device in DeviceManager. Look to see if the VIP/PID is being detected in the initial negotiation.
If you have a VIP/PID, then you are getting quite far in the enumeration.
If the VIP/PID is zero then you are failing early in enumeration, or don't have a recognizable VIP/PID.
Your project should have a VIP/PID defined for a HID device which should be automatically resolved by Windows. 

While there are commercial and free USB analyzers for Windows, you can also simply use the Microsoft Windows Message Analyzer to capture the USB traffic. For this to work the base Phy protocol (things like you USB levels and clocks) must be running OK. However it looks like you are fine here and should be able to capture the traffic successfully.
There are online videos within the MMA interface that will show you how to operate the MMA or use the ones here ....and the operating manual is here.
It's not a simple tool, but well worth getting to know.