Showing posts with label USB. Show all posts
Showing posts with label USB. Show all posts

Monday, January 5, 2009

Wednesday, December 31, 2008

Bootloader - how (unsolved yet)

Beeing used to the community with my HTC devices - it seems that we are at loss currently to have low-level access without the operating system running. The only thing that runs well are the itsutil tools from XDA devloper "itsme" - look there: http://wiki.xda-developers.com/index.php?pagename=XdaUtils
Also other tools that operate on the extracted filesystem images (e.g."ROM Kitchen" or also WM5editrom) are working as expected - yet I did not dare yet to flash back anything via pdocwrite :-)

Some low-level acess should be possible, however I do not yet know how. What I found out so far is:
  • Pressing power-on and holding the message-key will send a USB signal to a connected PC. The Windows-XP PC then searches for a "Neptune" USB device - for which the web hardly offers anything useful, except:
  • The Motorola Flash tools (yes another deja vu with Motorola) require dedicated drivers to install. After this is done succesfully - well nothing more happens.
It seems that in the very short time (3 seconds) that this temporary state of USB exists some communication has to be established to keep it alive. Any hints are welcome.

I have also hoped that tools available for the BenQ P51 may help here, but it just seems that they are not doing more than itsutils can do already. And since we do not know yet addresses of the various parts of the ROM, nothing gained here either :-(

Tuesday, December 30, 2008

Hacking the USB Headset connector

[Updated 20090105 - see below]
Well - much to my disappointment, my device (claimed as - nearly new, factory refurbished) was delivered with a set of non-original parts. I received a Blackberry charger which has the option to exchange the plug for the mains-socket, so it also works in my continental sockets in Germany - no problem here, especially as all my other chargers (from my older HTC devices) also work.

BUT: the delivered headset was a cheap Motorola S200 replacement - which has the same plug, but different connectors inside. No way to get it working :-(
I knew that I will not use the original headset, but I need a blueprint to understand what is going on to build an USB-3.5mm adaptor. As I do not have that (yet - hopefully), I have checked other options to debug the duplicate purpose of the standard mini-USB (5 pin) plug.

The good part is that you have big variety of Motorola Headsets or adaptors that you can start working with - just look for the Razor-V3, it has the same physical connector.
The bad part is that the multiple use of the same socket for different purposes creates the need to have the device switch between these modes. Also here it is advised to have a look at related Motorola resources, e.g. here: http://wiki.openezx.org/EMU
Unfortunately the described options do NOT work for the E72 - but they give a clue on what to investigate...

Terminology:
The USB socket has 5 pins + shield, sometimes the numbering is 1,2,3,x,4, but I prefer to number the pins in sequence, i.e. 1,2,3,4,5 - just like the EMU wiki above does.

Findings:
  1. Connecting a resistor in the range of 50 to 200 kB between (5+Shield) and (1) will raise the level at (1) from 0,3V to the full power of the battery (you can drive a light with this!) for exactly 10 seconds.
  2. Pin (3) (the middle one) will generate a stepping voltage output (1 Hz) as long as (1) is up - here I suspect an action is required to confirm the operation mode.
  3. nothing more - I had to give up here...
Conclusion:
  • The temporary presence of (a fully powered) supply voltage at pin (1) and the activity at pin (3) may indicate an active wired headset (just like the Motorola). It is however impossible to tell without a real E72 headset at hand...
[Updated 20090105:]
Thanks to the community in Taiwan, see this post, the connection strategy is now settled :-)
Continuing my discussion above the "protocol" on pin(3) is very simple - just connect a resistor (below about 250 ohm) to grounds - that's all - the device will go into headset mode (can also be seen at HKLM\System\State\Hardware - the value of the "Headset" property changes to "1".
After the device is in headset mode, pin(3) can be released again (what I did to identify the other speaker channel and microphone connection). So the final result is then for the numbered pins of the USB connector (1-5):

  1. Must be connected with a resistor less than 200 kOhms (but more than 10k - not to drain the battery) to ground. The voltage will rise briefly to battery level (so if you short cut this to ground it may kill it) but then drop back to 0,16 V to stay there. I suspect that accepting calls with the headset button will introduce new functionality here...
  2. Speaker channel (l,r not checked, source indicates right here) - must be connected to a speaker or a pulldown resistor at device-headset connection time.
  3. Speaker channel (l,r not checked, source indicates left here)
  4. Microphone channel (checked to work with Audionotes)
  5. Grounds
So luckily no complicated electronics - get your soldering irons ready!

Mind that the drawing in the Taiwanese post labels the "V+" and "GND" incorrect - they have to be reversed. The "NC" (microphone) pin is close to the - (GND) pin.