Not helping with your problem but it's generally a lot easier to just use a board that supports native USB; e.g. Leonardo, Micro or SparkFun ProMicro and there are a lot more.
Not helping with your problem but it's generally a lot easier to just use a board that supports native USB; e.g. Leonardo, Micro or SparkFun ProMicro and there are a lot more.