@case-sensitive: Nope, you need an OTG. Take a razor blade to your little adaptor and try to see if you can ground the ID pin.
The mechanism where the Nook figures out exactly what is plugged into its USB connector is a bit complicated. It could be a a computer, a peripheral or a charger. Any of these could be charging at different rates and either end could be host. Throw in a few bugs in the driver and it's no wonder that the Nook occasionally gets confused what is going on.
One of the first problems was getting the Vbus (the charge pump) going. verygreen found a way to kickstart it with their driver.
The next problem was the question of an OTG cable or not. I was misled my the source code because it said "presume that it's an OTG cable". That presumption came after it had received an interrupt already from an OTG cable. In short, you need an OTG cable (with this driver).
There were cases of people getting this to work and people not getting it to work. When the Nook tries to start host mode it switches on vbus (the charge pump) and then waits to see if the voltage actually goes up. The driver appears to be incomplete in that it sets no timeout for waiting for this to happen. Without a timeout if the voltage doesn't rise you get the dreaded "a_wait_vrise". There is no reason that the driver should be in this state for more than a fraction of a second.
So why doesn't the voltage rise? Well, it tries. The problem is that the Texas Instruments TPS65921B IC inside the Nook that monitors the Vbus signal has a voltage threshold of 4.4-4.6 Volts. On my Nook we were seeing the Vbus rise to 4.46 Volts. For some people that was enough to say "Vbus valid", for others it didn't quite get there. (Note: Just to confuse things, if the voltage did rise high enough but there is no device connected the status will misleadingly say "a_wait_vrise" when the state is probably "a_idle".)
The actual problem was that the charger circuit in the Nook was trying to charge itself off the ~4.5 Volts that it was generating itself. That's really picking yourself up by your bootstraps. It doesn't work. The solution is to make sure that the charging circuit is off. The "Off" button in my application does that. You should be now getting 5.0 Volts.
Using a back-powering hub obviates all that. It gives (through an OTG adaptor) an OTG ID ground, it gives you your Vbus voltage. What more could you need?
I just checked using a thumb drive directly (without a hub). I couldn't seem to get it to mount by itself. The power was fine (4.92 Volts), the USB was happy (in host mode), but the LED on the thumb didn't go on. This needs further investigation. It works fine plugged into a hub.
If you have an OTG adaptor plugged in all by itself, you should be able to get the Nook LED to turn solidly on and off with the "Peripheral"/"Host" buttons on my application. Plugging in any device into the adaptor (without disturbing the OTG adaptor to Nook connection) should allow it to switch from "a_idle" to "a_host". Disconnecting the device from the OTG adaptor will cause it to flash "a_wait_bcon" for a second before settling into "a_idle" again.
So, in summary, to get it to work:
- You must use an OTG adaptor or cable.
- You may do either or both of these:
- Use verygreen's uImage and uRamdisk to get the driver to work correctly. Use my application to make sure that the charging circuit is off and to see what's going on.
- Use a back-powering hub (as posted above) to force things to go. My application is helpful in allowing you to actually charge the Nook.