Jump to content
Melde dich an, um diesem Inhalt zu folgen  
peter2pan

S3 Näherungssensor kalibrieren

Recommended Posts

peter2pan

Hallo Forum Gemeinde,

ich habe ein Problem mit meinem S3. Sobald ich gewählt habe, geht das Display aus. Es geht erst wieder an, sobald das Gespräch beendet worden ist.

Durch Googlen habe ich herausgefunden das der Näherungssensor dafür verantwortlich ist. Mit der Shortcut *#01*# kann ich den Sensor testen.

Da steht wenn unter : Proximity Sensor ein ACD Wert von 14 wenn der Sensor nicht abgedeckt ist. Wenn er abgedeckt wird geht er auf 150 und höher.

Die Schaltschwelle schein bei 15 zu liegen. Daher liege ich sehr dicht daran. Dadurch kommt es zu den fehlfunktionen. Bei S3 meines Kollegen ist der ACD Wert bei nicht abgedeckten Sensor bei 0.

Da der Signalhub des Sensors ja in Ordnung ist, scheint nur die Kalibrierung falsch zu sein. Wie kann ich den Sonsor neu kalibrieren?

Das Gerät ist ohne Branding und Ohne Root in der letzten Firmwareversion.

mfg Peter2Pan

Diesen Beitrag teilen


Link zum Beitrag
Matze2

Display im Bereich des Sensors sauber? Displayschutzfolie?

Als letzte Möglichkeit ein FullWipe probieren oder ein anderes Rom. Bringt das nichts dann ist das Teil evtl. defekt.

Kalibrieren kannst du den Sensor nicht ausser es gibt eine (gerätespezifische) App dafür und für's SGS3 gibt es da nichts.

Diesen Beitrag teilen


Link zum Beitrag
peter2pan

Hallo Matze2,

Displayfolie ist keine drauf. Sauber ist die Oberfläche auch. Wir haben in der Firma ein Microskop mit 200 facher Vergrößerung. Da kann ich dann ein paar Staubpartikel von innen am Sensor / Scheibe erkennen. Ob die das Problem verursachen? evtl. möglich. Jedoch kann man da leider nicht reinigen.

Mit den USSD Codes und deren Menüs kann man da evtl. was machen?

Ich kanns irgendwie nicht ganz verstehen. Der Sensor hat ja einen super Signalhub ... das Problem ist nur der Offset von ca 13 Punkten.

Noch wer eine Idee ???

mfg

Peter2pan

Diesen Beitrag teilen


Link zum Beitrag
SunBoy56

Hallo,

mir gefielen die Ausführungen von Peter. Auch bei meinem Handy (Galaxy Note II N7100) habe ich nach sehr genauem Hinsehen einen Staubpartikel am Nährungssensor (genauer: zwischen Sensor und Abdeckglas) gefunden. Und auch bei mir das beschrieben verhalten:

Super Signaldifferenz, aber (wahrscheinlich durch den Partikel) auch im dunklen Raum kein Signal kleiner als 9 zu bekommen, was genau die Schaltschwelle ist. Dadurch kann ich wärend eines Gesprächs mein Handy nicht mehr bedienen (Display ist aus und keine Taste funktioniert). So konnte man nur Auflegen wenn man den Akku entnimmt und den Entfernungssensor hellem Licht aussetzt.

Ich habe stundenlang im Internet gesucht habe und keine passende Antwort finden können.

Im Samsung Android Kernel zur Ansteuerung für den Nährungssensor ( prox_cm36651.c ) findet sich die Lösung:

Der Kerneltreiber sucht nach der Datei "/efs/prox_cal" und lädt daraus ein Sensoroffset.

Nach dem Anlegen dieser Konfigurationsdatei sollte die Kalibrierung für alle Samsung Stock-Kernel und auch in den meisten Samsung Based Custom-Kernels zur Verfügung stehen.

Besorgt euch einen Terminalemulator für Android z.B. "Android Terminal Emulator" oder macht es über die ADB Shell.

Voraussetzung sind root Rechte und eine beschreibbare efs Partition.

$ cd /sys/class/sensors/proximity_sensor/
Denn den Leerwert auslesen: Der Nährungssensor sollte dazu frei sein und das Glas sauber. Die Umgebung so dunkel wie möglich, denn Licht beinflusst den Messwert.
$ cat state

10
Das ist euer Leerwert. Nun könnt Ihr noch die aktuelle Konfiguration auslesen:
$ cat prox_cal

0,9
Das ist eure aktuelle Sensorkofiguration. Der erste Wert ist das Sensor Offset der zweite Wert ist die Schaltschwelle genannt "Cancelation Threshold". Nun das Sensoroffset. Der Leerwert wird dazu auf das aktuelle Sensordoffset dazu gerechnet. Bei mir: 0 (Offset) + 10 (Leerwert) = 10 (neues Offset) = 0x0a HEX:
$ su

$ echo -en $'\x0a' > /efs/prox_cal

$ sync
Aufpassen, der von mir gewählte Befehl verlangt die Werte in HEXadezimal. Jetzt noch die Rechte der neu erstellten Datei anpassen (ist beim neu Erstellen notwendig, spätere Ändeurngen innerhalb der Datei erfordern dies nicht mehr):
$ chown system:system /efs/prox_cal

$ chmod 644 /efs/prox_cal

$ sync
Jetzt das Handy neu starten. Ihr solltest prüfen ob die Konfiguration geklappt hat:
$ reboot
$ cat /sys/class/sensors/proximity_sensor/prox_cal

10,9

$ cat /sys/class/sensors/proximity_sensor/state

0
und Ihr könnt jetzt ins Testmenü gehen z.B. Beim Note II N7100 :
 *#0*# 

Hier auf -> Sensor

Proximity - zeigt 1 oder 0 je nachdem ob Schaltschwelle erreicht oder nicht. Wenn Schaltschwelle erreicht wird der Hintergrund grün und der Vibrationsalarm eingeschaltet bis Messwert unter Schaltschwelle wieder aus.

ADC: Zeigt den aktuellen Sensormesswert (ist das selbe wie o.g. "cat state").

Die Sensorkalibration bleibt dank EFS Ordner auch bei FULL-Wipe oder dem Aufspielen anderer ROMs erhalten. :-)

bearbeitet von SunBoy56
Pfad korregiert + neue Methode
  • Like 1

Diesen Beitrag teilen


Link zum Beitrag
peter2pan

Hallo SunBoy56,

danke für die ausführliche Anleitung hat seeeehr gut geklappt. Der Sensor arbeitet wieder einwandfrei !!! :):):):):)

eine kleine Anmerkung zur Anleitung : wenn ich "$ cat state" eingebe kommt als Antwort "0". Man muss sich vor der Abfrage im Testmenü *#0*# befinden. Dann kam bei mir der Wert 20.

nochmals 1000 Dank .

Gruß Peter Pan

  • Like 1

Diesen Beitrag teilen


Link zum Beitrag
Matze2
:respekt:...was nicht so alles geht, wieder was gelernt. Nun noch für die Leute, die es mit dem Terminal Emulator oder ADB nicht so haben, 'ne App draus basteln...

Diesen Beitrag teilen


Link zum Beitrag
SunBoy56

Wenn ich mal nicht nur Nachts die Idee bekommen würde mein Handy in Ordnung zu bringen, dann wäre mir mit Sicherheit auch aufgefallen, dass es einen einfacherenen Weg gibt:

In der Konsole:

$ su

$ echo 0 > /sys/class/sensors/proximity_sensor/prox_cal

$ echo 1 > /sys/class/sensors/proximity_sensor/prox_cal

Die "0" macht einen Kalibrationsreset ( setzt Offset=0 ).

Die "1" macht eine "Autokalibration". Also die von mir o.g. Schritte automatisch (auslesen des Sensorwertes, setzen des Kalibrationsoffsets auf den aktuellen Sensorwert, schreiben der Konfigurationsdatei ). Ein Reboot ist mit dieser Methode auch nicht notwendig, da das neue Offset sofort aktiv wird, beim Neustart wird dann ganz normal aus der angelegten Konfigurationsdatei gelesen.

Wichtig war bei mir, den Reset ( 0 ) zu machen bevor die Kalibration ( 1 ) gestartet wird. Handy darf nicht Standby sein (also Display an + Tastensperre entsperrt ! ). Und natürlich wie o.g. den Sensor rel. dunkel, sauber und frei. Dann klappt das Prima!

Da der Kernel selbst das schreiben der Datei übernimmt und die Autokalibration auch so weit fertig programmiert wurde, scheint es aus meiner Sicht sehr wahrscheinlich, dass man die Kalibration auch mit irgend einem "geheimen Samsung Zaubercode" oder aus irgend einem Servicemenü durchführen kann. Da der Quelltext für die meisten Samsung eigenen Programme jedoch nicht offen liegt, kann man jedoch darüber ersteinmal nur spekulieren.

Bis jemand eine solche Methode offen legt sind daher vorerst root-Rechte erforderlich.

MfG

Diesen Beitrag teilen


Link zum Beitrag
letugo2001

Also beim LG geht das so:

https://www.handy-faq.de/forum/lg_optimus_4x_hd_forum/286362-lg_optimus_4x_hd_automatische_bildschirm_sperre_beim_anrufen.html

Ganz einfach, ohne Root oder so.

Vielleicht geht es ja auch beim S3, da ja alles Android und 4.x ist (?)

Und je nachdem ob es am Staub lag oder an der verstellten Einstellung an sich (?).

Ich habe meinen Sensor nach der Anleitung ^^ kalibriert.

Muss man dabei auf bestimmte Werte und / oder Umgebungshelligkeiten achten, oder trifft das mit der Helligkeit nur zu, wenn man es so macht, wie ihr es oben beschrieben habt?

Diesen Beitrag teilen


Link zum Beitrag
vellit34

Tag zusammen,

Bei mir klappt es nicht - mit Emulator Eintrag reingeschrieben, alles bleibt wie es war,oder muss das durch PC gemacht werden. Ich habe ein Samsung I8190 , wenn ich gegen stralende licht halte geht sensor auf 0. Oder mache ich was falsch?

Danke voraus.

Diesen Beitrag teilen


Link zum Beitrag

Please sign in to comment

You will be able to leave a comment after signing in



Jetzt anmelden
Melde dich an, um diesem Inhalt zu folgen  

×
×
  • Neu erstellen...

Wichtige Information

Bitte beachten Sie folgende Informationen: Nutzungsbedingungen und Impressum & Datenschutzerklärung. Wir haben Cookies auf deinem Gerät platziert, um die Bedienung dieser Website zu verbessern. Du kannst deine Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass Du damit einverstanden bist.