Ticket #2019 (closed defect: wontfix)

Opened 8 years ago

Last modified 8 years ago

Headphone Jack Event

Reported by: Zoup Owned by: openmoko-devel
Priority: normal Milestone:
Component: unknown Version: Om2008.8
Severity: normal Keywords:
Cc: Blocked By:
Blocking: Estimated Completion (week):
HasPatchForReview: no PatchReviewResult:
Reproducible: always

Description

/dev/input/event0 does not generate anything when headphone is plugged in .

Change History

comment:1 Changed 8 years ago by Zoup

i forgot to say , this is with latest om2008 updates , i have also tried Todays Testing kernel , does not help

comment:2 Changed 8 years ago by zecke

Could you please paste:

cat /proc/interrupts before and after inserting the headset
cat /sys/class/input/event0/device/name

comment:3 Changed 8 years ago by Zoup

sure boss :

BEFORE :

CPU0

16: 314298 s3c-ext0 lis302dl
17: 1 s3c-ext0 modem
30: 628904 s3c S3C2410 Timer Tick
33: 13430 s3c s3c24xx_hcd
37: 95561 s3c S3c24xx SDIO host controller
41: 683 s3c s3c2410_udc
42: 0 s3c ohci_hcd:usb1
43: 1195 s3c s3c2440-i2c
48: 0 s3c-ext Neo1973 Headphone Jack
49: 0 s3c-ext ar6000
50: 5 s3c-ext Neo1973 AUX button
51: 3 s3c-ext Neo1973 HOLD button
53: 8 s3c-ext pcf50633
60: 1 s3c-ext lis302dl
70: 8435 s3c-uart0 s3c2440-uart
71: 1609 s3c-uart0 s3c2440-uart
73: 0 s3c-uart1 s3c2440-uart
74: 2 s3c-uart1 s3c2440-uart
76: 0 s3c-uart2 s3c2440-uart
77: 20 s3c-uart2 s3c2440-uart
79: 439 s3c-adc s3c2410_action
80: 106342 s3c-adc s3c2410_action

Err: 0

AFTER :

CPU0

16: 315386 s3c-ext0 lis302dl
17: 1 s3c-ext0 modem
30: 631005 s3c S3C2410 Timer Tick
33: 13468 s3c s3c24xx_hcd
37: 95906 s3c S3c24xx SDIO host controller
41: 745 s3c s3c2410_udc
42: 0 s3c ohci_hcd:usb1
43: 1195 s3c s3c2440-i2c
48: 0 s3c-ext Neo1973 Headphone Jack
49: 0 s3c-ext ar6000
50: 5 s3c-ext Neo1973 AUX button
51: 3 s3c-ext Neo1973 HOLD button
53: 8 s3c-ext pcf50633
60: 1 s3c-ext lis302dl
70: 8435 s3c-uart0 s3c2440-uart
71: 1609 s3c-uart0 s3c2440-uart
73: 0 s3c-uart1 s3c2440-uart
74: 2 s3c-uart1 s3c2440-uart
76: 0 s3c-uart2 s3c2440-uart
77: 20 s3c-uart2 s3c2440-uart
79: 439 s3c-adc s3c2410_action
80: 106342 s3c-adc s3c2410_action

and event0 device name is 'Neo1973 Buttons' , and i does response when i press AUX key .

comment:4 Changed 8 years ago by Zoup

No luck with om2008.9 kernel as well .

can you please shed some light on this ? end week release of fdom does depend on this feature .

comment:5 Changed 8 years ago by werner

I installed Om2008.9-gta02-20080916 on a GTA02v6 and I can definitely see
something happening when I plug in or remove a plug (tried all items shown
on http://people.openmoko.org/werner/headset-suppressor.jpg )
while running cat /dev/input/event0

Did the headset event ever work on that device ?

By the way, u-boot I have on that device is version
U-Boot 1.3.2-dirty-moko12 (Aug 20 2008 - 18:41:45)

Since u-boot sets up the GPIOs, a change in u-boot may affect this.

comment:6 Changed 8 years ago by Zoup

My uboot version is exactly as yours without '-dirty-' , err ... is this something good that its clean ? :)

yeas , headset is OK , its the official one that i get from openmoko , and it does play music perfectly when i switch alsa states .

ill try http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin and let you know the result

comment:7 Changed 8 years ago by Zoup

I have tried Latest Daily uboot image and om2008 first release ( its was 24 aug , i have tried that since it was near your uboot date ) , still no output again .

comment:8 Changed 8 years ago by werner

By the way, if you build "gpio" from
http://svn.openmoko.org/trunk/src/target/gpio/
and copy it your Neo, then
# ./gpio f4
should show F0 if the plug is not inserted, and F1 if it is.

If it always shows F0, something is keeping the jack contact from
opening or there is some genuine hardware defect. If you see something
different from F0 or F1, then this would suggest a software problem.

Looking at the hardware, the side of R4406 facing the board center
should always be at about 3.3V. The side of R4406 facing the jack and
the board edge should change between 3.3V (plug inserted) and near 0V
(plug not inserted).

comment:9 Changed 8 years ago by Zoup

It does ALWAYS return F1 , this is hardware issue then , something destroyed the jack ? how ? this is brand new phone and i did never used any Headphone but the official one from openmoko . is this repair able by me ( i have experience with electronics and equipment )

comment:10 Changed 8 years ago by Zoup

And if it is , please provide me docs on exact detail on jack , which connector is headset detections connector ? what is exact internal mechanism of jack for head phone detection ?

comment:11 Changed 8 years ago by Zoup

OK! using kitchen gloves i made a hack!

i did tested two different things ,

  • first its appear that voltages are as you said ( i'm not sure if i have tested right spots , an image would be great
  • when jack input is facing you , the second ring of jack ( the last silver one ) has a very small golden connector to its right-down , when i insert the headphone they getting connected , when i remove headphone they are disconnected .

so , is this really hardware issue ?

comment:12 Changed 8 years ago by werner

Oh, cool. I just wrote a long description of how to test the jack, and trac
threw it away, probably because I started editing before you added your last
update :-(

Anyway, here's the picture:
http://people.openmoko.org/werner/jack-3-5.jpg

comment:13 Changed 8 years ago by zecke

http://downloads.openmoko.org/schematics/ in case you are not aware of that.

comment:14 follow-up: ↓ 16 Changed 8 years ago by Zoup

interesting , its 3V when phone is NOT plugged in , and nearly zero ( very near to zero ) when nothing is inserted .

comment:15 Changed 8 years ago by Zoup

http://i38.tinypic.com/2iuce12.jpg

this do are getting connected WHEN headphone is inserted , and disconnected when head phone is not inserted

comment:16 in reply to: ↑ 14 Changed 8 years ago by Zoup

Replying to Zoup:

interesting , its 3V when phone is NOT plugged in , and nearly zero ( very near to zero ) when nothing is inserted .

sorry , by second one i meant when IS inserted , so

3v when its NOT inserted
0v when it IS inserted

wow , spamming

comment:17 Changed 8 years ago by andy

If I look at a working one, measuring the corner pin on Werner's pic (where he has the red probe) compared to 0V from the can shield, I see 0V at the corner pin when the jack is absent, and ~3V at the corner pin when the jack is in. Maybe you can triple check.

It's hard to imagine that it is actually the other way around on any single GTA02.

Some hard imagining is still needed anyway because the 3V / 0V transition either way should create the jack interrupt for you. So either the signal does not make it to the CPU GPIO ball, or the GPIO is blown up by ESD, or there is some queer software bug. Since we stuck a 10K in series to the GPIO I wouldn't've expected blown up GPIO.

comment:18 Changed 8 years ago by Zoup

Andy you are right , after bunch of rechecking i have to confirm GPIO result , as GPIO always return F1 , i always got 3V on jack ( no matter in Headset is pluged in or not ) , the thing is , for a very short priod of Om2008 booting ( right after percent state ) there is no voltage at all on jack .

so , its always 3v , no matter if headset is pluged in or not .

comment:19 Changed 8 years ago by Zoup

since werner once told me that can be related to Uboot , i have to say that i have some kind of issue with it , after upgrading to om2008-update it seems that i lost my splash screen ( the image that pops up when i turn on the device ) and when i tried several times to write om2008.9 image to device ( using dfu-utils ) nothing have happened while dfu-utils shows no error , can this be related ?

comment:20 Changed 8 years ago by werner

The measurement was in the picture was actually resistance, not voltage, sorry.
This is with the device completely powered down, i.e., no battery, no USB, no
debug board. Expected results if jack is good:
No jack: <1 Ohm
Jack inserted: >1 kOhm, exact value depends on instrument.

comment:21 Changed 8 years ago by Zoup

ok , heres the result :

since im noob , i did tested all Restiance levels of my multimeter , first row is resistance level , second row is resistance with headphone , third row is resistance without headphone

Any idea ? :)

200m 00.9 00.9
20m 00.9 00.9
2m 098 097
200k 73.2 74.5
20k,2k,200 0 0

ps :
200m 0.25 ( my right to left hand resistance! )

comment:22 Changed 8 years ago by werner

The 2M and 200k range look about right. Unfortunately, what it says is bad
news: the switch in your jack never closes :-(

I don't know if there's anything you can do to fix it, and much less if you
should try any desperate measures, because they may cause other damage. This
looks like a warranty case, sorry.

comment:23 Changed 8 years ago by Zoup

well , isn't it as simple as simple connection that need to be de-connected ? :) two surfaces that have been forced into each other or something like this ? maybe i can reform them ?

comment:24 Changed 8 years ago by Zoup

i mean , is this mechanical or electronical issue ?

comment:25 Changed 8 years ago by werner

Electromechanical :-) And the problem is that the connection is always
open, though the switch should connect when there is no plug.

Things I could think of:

  • a foreign object stuck between the contacts (seems unlikely, since the device is new and the contacts normally touch, i.e., things can only creep in while the plug is inserted)

How to fix it: insert a jack and blow compressed air into all openings,
in the hope to dislodge the object.

  • contacts oxydated or contaminated with something acting as an insulator. Again, seems unlikely.

How to fix it: as above, but use contact cleaner.

  • some fault in the plastic, causing a protrusion that blocks the contact

How to fix it: dunno. X-ray it, then apply a strong laser pulse to
evaporate the offending plastic ? :-)

  • one of the metal parts is not at its correct position and is thus blocked by the plastic

How to fix it: try to bend it into its correct position by applying
pressure with a suitable object, e.g., tweezers or a small screwdriver
inserted into the jack's hole.

Or it could be something else. Since most of this involves the application
of force without really knowing what or where the problem is, I would
discourage such attempts, unless you consider the device expendable.

comment:26 Changed 8 years ago by Zoup

No matter if its fixed or not , i have to say thanks to Andy , Zecke and Specially Werner , thank you guys for your will to help ;)

( and thank you for LILO and other cool softwares ;) )

comment:27 Changed 8 years ago by werner

Thanks for the kind words :-) BTW, I've passed this on to our hw team in
case they've ever seen this kind of problem. (It's the first time I hear
of a jack switch failing. Of course, we'd all be very disappointed in
Murphy if he had let that opportunity pass ...)

comment:28 Changed 8 years ago by Zoup

OK , let me know the result , if this happens before i guess i need to add something to wiki + your instruction on hardware testing , by the way , is this possible to buy jack and solder it ?

comment:29 Changed 8 years ago by werner

Finding a replacement jack should be easy, but ...

Unfortunately, removing the jack is extremely hard: you have to melt the
solder on all six pads, which are large, far from each other, surrounded
by small components, and one even attaches to the ground plane, which
acts as a large heat sink.

So without special equipment and plenty of experience using it, I'd say
that the most likely outcome of trying to remove the jack would be that
you'd end up damaging some of its surrounding components, without moving
the jack itself a tenth of a millimeter.

The most likely outcome of trying to unsolder the jack is that you'll
damage or remove some of its surrounding components and that you'll
apply too much heat to its pads, damaging the PCB.

You could improve the odds by cutting the jack into pieces, e.g., with a
dremel, and then unsoldering the remaining metal parts. Again, one slip
and some other components get shredded. This kind of mechanical removal
also has the risk that you apply too much force on a pad and lift the
pad off the PCB, breaking the connection and possibly also damaging
layers inside the board.

These are not just hypothetical risks. I've seen this happen numerous
times on circuits that were much easier to work on.

comment:30 Changed 8 years ago by werner

  • Status changed from new to closed
  • HasPatchForReview unset
  • Resolution set to wontfix

I see in #2084 that you've made your peace with the state of things.
So let's close it as "wontfix".

Note: See TracTickets for help on using tickets.