Visualizzazione stampabile
-
Ho riprovato la MIUI e la Sony (anche la LEWA: bussola morta), effettivamente riguardo alla bussola non è questione di imprecisione, è proprio che leggono il sensore sbagliato: il nord risulta in direzione dell'inclinazione verso il basso. Siamo messi male :(
-
-
Quote:
Originariamente inviato da
exenzy
Anche io ipotizzavo hardware diversi (l'alternativa è mal funzionanti, non ci sono altre possibilità).
ho fatto una rapida analisi del codice sorgente per il bus i2c, e una ricerca in rete per sapere i dettagli del protocollo i2c, il tutto per avere una spiegazione a queste 2 righe del tuo log:
<3>[ 1328.062980] (0)[184:memsicd3416x]i2c i2c-3: I2C_ACKERR
<3>[ 1328.063005] (0)[184:memsicd3416x]i2c i2c-3: addr: 60, transfer error
l'indirizzo 60 e' quello del memsic (ovvio) mentre il bmm050 (se mai ci fosse) e' all'indirizzo 10.
l'errore ACKERR vuol dire che a quell'indirizzo nessuno ha risposto alla richiesta di trasferimento dati, quindi 3 ipotesi:
- il chip manca del tutto
- il memsic e' guasto
- hanno montato il bmm050 (fattibile solo se il circuito stampato prevede le 2 opzioni, perché ha la piedinatura diversa)
Quote:
Dico una cavolata: non si trovano kernel bmm050 semi-compatibili, giusto per provare la bussola?
bisognerebbe scaricarne un po e vedere direttamente nel .zip nel file /system/data/misc/projectconfig.mk cosa c'e' scritto nelle righe:
CUSTOM_HAL_MSENSORLIB = mmc3416x mmc328x akm8975 ami304 yamaha530 mag3110 akmd8963 bmm050
CUSTOM_KERNEL_MAGNETOMETER = mmc3416x
MTK_AUTO_DETECT_MAGNETOMETER = no
se ci fosse l'autodetect sarebbe il massimo.
-
Quote:
Originariamente inviato da
exenzy
bene, allora rinominalo memsicd3416x ed il gioco e' fatto !
[Edit]
pero' assicurati che non sia come il modulo della MIUI, ossia basato sull'accelerometro!
cambiagli nome, riavvia, e attiva i log, cosi' scopriamo cosa fa.
-
La direzione non è giusta ma è stabile e non invertita, occorre solo trovare come correggerla! :D
-
Quote:
Originariamente inviato da
becar
bene, allora rinominalo memsicd3416x ed il gioco e' fatto !
[Edit]
pero' assicurati che non sia come il modulo della MIUI, ossia basato sull'accelerometro!
cambiagli nome, riavvia, e attiva i log, cosi' scopriamo cosa fa.
Non credo, ho provato ad inclinare e girare ecc.. indica sempre la stessa direzione!
-
Quote:
Originariamente inviato da
exenzy
La direzione non è giusta ma è stabile e non invertita, occorre solo trovare come correggerla! :D
quel modulo salva qualcosa (dati di calibrazione) nel file ecs_nvm (come fa la MIUI) nella solita cartella /data/misc/sensors
[Edit]
oppure puoi giocare con il layout in /sys/bus/Platform/drivers/msensor
-
Quote:
Originariamente inviato da
exenzy
Non credo, ho provato ad inclinare e girare ecc.. indica sempre la stessa direzione!
fai un paio di test piu' seri:
- usa CPU-Z e vedi se oltre ai valori in BMM050 Orientation sensor, ti ritrovi un valore che varia in BMM050 Magnetic field sensor
- verifica se cambiano i valori dentro /sys/bus/platform/drivers/msensor/sensordata come avevi gia' fatto
-
un momento.. qualcosa non quadra, forse ho cantato vittoria troppo in fretta... comunque sicuramente non è come la MIUI.
-
Quote:
Originariamente inviato da
becar
fai un paio di test piu' seri:
- usa CPU-Z e vedi se oltre ai valori in BMM050 Orientation sensor, ti ritrovi un valore che varia in BMM050 Magnetic field sensor
- verifica se cambiano i valori dentro /sys/bus/platform/drivers/msensor/sensordata come avevi gia' fatto
CPUZ vede Orientation sensor ma non il magnetic