Jumping Jack Flash weblog

Hacking Icaro – Centralina GSM: Man in the Middle Attack

Posted in Diario elettrico GreenGo Icaro, GPS, hacking, hardware by jumpjack on 10 luglio 2019

Un attacco “Man in the middle” è quello che prevede che un hacker si inserisca nel canale di trasmissione tra due dispositivi per intercettare i dati, senza interromperli ma modificandoli, in modo che a entrambi gli interlocutori originali la trasmissione sembri ancora genuina, mentre in realtà qualcosa è cambiato.

E’ quello che ho deciso di fare come nuovo tentativo di “entrare nella testa” della mia Icaro. 🙂

Nella centralina GSM/GPS è infatti presente, come già detto in precedenza, un modulo GSM G600; questo modulo è saldato su un PCB che chiameremo “A”; il PCB è connesso tramite un connettore bianco a un secondo PCB che chiameremo “B”; il PCB “B” è infine connesso alla scheda madre tramite un connettore nero; ed è qui che cercherò di insinuarmi. Se infatti il connettore bianco ha pin talmente microscopici e vicini da non poter essere maneggiati con strumenti manuali, il connettore nero ha invece pin più grossi e distanziati (passo di 2mm); si tratta di un connettore a 44 pin, due dei quali sono sicuramente i TX e RX del modulo GSM, il quale ho già verificato  che comunica con l’MCU tramite semplici comandi AT testuali: è così infatti che sono riuscito a leggere quale IP la centralina cerca di contattare, che purtroppo corrisponde al sito abbandonato etheria.it; quindi, anche se la centralina funziona e tenta di inviare dati, non ricevendo risposta probabilmente non passa mai dalla modalità “handshaking” al vero e prorio invio dati. Però in compenso i server eteria.biz (senza H e con dominio .biz) pare funzionino ancora (così mi hanno detto…).

Il mio tentativo sarà quindi di interrompere fisicamente le due connessioni TX e RX, dirottarle a una mia scheda ESP32, e sostituire ogni chiamata del modem al server sbagliato con una chiamata al server giusto… e vedere cosa succede.

Per farlo, mi serviranno due connettori aggiuntivi: un maschio e una femmina che facciano da interruzione tra GSM e MCU, e al tempo stesso da “dirottatore” verso l’ESP32.

Sfortunatamente questi connettori non hanno il classico passo da 1/10 di pollice (2.54mm), ma da 2.00 mm, quindi non ho niente in “magazzino” che vada bene, dovrò comprare dei connettori specifici.

Dopo una settimana di ricerche sui siti più disparati (www.distrelec.it, www.farnell.it, www.mouser.it, www.tme.eu, https://it.rs-online.com), mi sono fatto una discreta cultura sui possibili modi di realizzare una connessione a 44 fili tra i due PCB; ho individuato varie possibilità:

  1. Cavo preassemblato
  2. Cavo autocostruito
  3. Connettori saldati su piastra millefori, connessi tramite fili singoli
  4. Ponticelli dupont

Ognuno ha i suoi pro e i suoi contro:

  1. il cavo preassemblato sarebbe ovviamente la scelta migliore, ma fra costi netti, tasse e spedizioni, un cavo a 40 poli finisce per costare fra i 40 e i 50 euro!
  2. il cavo autocostruito, comprando una piattina e due connettori IDC, finirebbe per costare solo 5-10 euro in meno di un cavo preassemblato.
  3. inizialmente avevo pensato di costruirmi un  “cavo” saldando due connettori maschio e femmina a due pezzi di piastra millefori, e poi collegarli tra loro tramite fili volanti, ma sarebbe un lavoro troppo approssimativo e disordinato

Alla fine ho scoperto una cosa molto interessante: oltre ai classici “ponticelli dupont” usati per prototipazione su Arduino, che hanno passo da 2.54mm, esistono anche dei ponticelli più piccoli, con passo da 2.0mm: sono molto inconsueti e poco diffusi, quindi ordinarli significherebbe doverseli per forza far spedire dalla Cina e vederli arrivare fra 3 o 4 mesi; poi però, a forza di cercare, ho trovato una soluzione al tempo stesso rapida ed economica: una spedizione Amazon Prime, di questo oggetto:

Si tratta di una sorta di cavo piatto un po’ primitivo, senza nè connettori plastici singoli nè connettori da 44 pin: sono solo 40 fili intestati con terminali femmina; l’inserzione era un po’ confusa e maltradotta, ma sperabilmente dovrebbe trattarsi di terminali da 2.0mm; sono solo 40 invece dei 44 necessari, ma in realtà non tutti i pin del connettore sulla scheda GSM sono popolati, quindi si dovrebbe riuscire ad adattare il cavo.

Adesso dall’inserzione, che includeva vari oggetti diversi, questo in particolare è sparito, quindi non resta che sperare che non mi mandino invece quest’altro oggetto, che ha la stessa foto ma è dichiarato avere passo da 2.54mm. Sennò c’è il reso gratuito Amazon.

In ogni caso, resta poi il problema che sui due PCB ho un connettore maschio e uno femmina, mentre questo cavo ha solo femmine; ho quindi aggiunto all’ordine questo strip maschio-maschio con passo da 2.0mm:

Cercando “jumper wire 2.0 mm” si troverebero varie altre alternative, ma tutte senza Prime, quindi con data di arrivo imprecisata.

Ecco uno schema di massima di come dovrebbe avvenire il collegamento “clandestino” tra modulo GSM e motherboard:

cavo intercettazione centralina GSM/GPS icaro

Cavo intercettazione centralina GSM/GPS icaro

Il cavo ideale sarebbe il TCSD-22-T-03.00-01,o l’omologo  TCMD-22-T-03.00-01 (anche se probabilmente non esistono due cavi identici con sigle diverse), ma è possibile arrangiarsi con varie altre possibilità, come descritto in figura; l’importante è che il codice non finisca con -R o con -O, che significa che il connettore finale  è capovolto (-R se sono 2 connettori, -O se sono 3 in daisy-chain, nel qual caso prima della “O” ci sarebbe anche una “Dxx”, con xx distanza tra connettore 2 e connettore 3).

Il sito https://www.toby.co.uk forse non è “fintamente inglese” comei vari mouser, farnell ecc. che in realtà spediscono dalla Cina o dall’America, quindi è possibile che ordinando qui il materiale arrivi nel giro di una settimana invece che di 3-4 mesi.

Anche il sito https://www.enrgtech.co.uk/ sembra inglese autentico.

Ecco alcuni possibili codici di cavi validi:

Nota:  essendo lo strip-pin sulla motherboard non protetto da un case, qualunque connettore femmina con più di 22 pin si può adattare, quindi per esempio anche TCSD-25-01 e successivi. Il limite ovviamente è la larghezza massima disponibile all’interno dello scatolotto della centralina. Foto del connettore maschio sulla motherboard:

connettore GSM nero con righello e pin

 

Sul sito Samtec c’è anche un configuratore 3d che permette di vedere in tempo reale come cambia il cavo al cambiare delle opzioni del suo part number, ma per ora è disponibile solo per la famiglia TCSD, non per la TCMD:

Samtec TCSD IDC 3d configurator

Samtec TCSD IDC 3d configurator

Qui di seguito riporto invece gli esiti delle mie ricerche precedenti alla decisione finale di comprare ponticell dupont.

Cavi preassemblati

Ho trovato due soli produttori per cavi piatti con connettori con passo (“pitch”) da 2.0mm e a 44 pin: Samtec e 3M; questi sono due esempi di datasheet dei loro prodotti:

La Samtec usa questa nomenclatura

xxxD-22-T-LL.LL-01-N-R

  • xxx: famiglia del cavo (v. sotto) – TCMD = maschio, TCSD = femmina
  • D: doppia fila di pin
  • 22: numero di pin per fila
  • T:  connettore di sesso opposto  all’altra estremità del cavo (invece di fili liberi); S = fili liberi, D = connettore identico all’altro
  • LL.LL: lunghezza in pollici del cavo
  • 01: numero fisso
  • N: presente solo se è presente prima la “T”, e significa “notch polarization”)
  • R: verso invertito del connettore; O = verso invertito del connettore finale se i connettori sono 3 (daisy-chain)

 

Famiglia del cavo

  • TCSD 2.00 mm  – Tigereye Cable Socket Double – IDC Ribbon Cable Assembly, Socket
  • TCMD 2.00 mm – Tigereye Cable Male Double – IDC Ribbon Cable Assembly, Terminal
  • EHT 2.00 mm Shrouded IDC Ejector Header
  • STMM 2.00 mm Shrouded Terminal Strip, Cable Mate
  • ZSTMM 2.00 mm Shrouded Variable Stack Height Terminal Strip, Cable Mate
  • ETMM 2.00 mm Shrouded Terminal Strip For Strain Relief for TCSD

(ho cancellato le famiglie non adatte al mio caso)

Qui la pagina Samtec per la ricerca visuale.

Alcune note:

  • il passo da 2.00 mm del connettore implica un passo da 1.0mm dei fili, mentre il passo tipico di 2.54mm (ad esempio per la piattina dell’hard disk) implica un passo di 1.27 mm per  i fili
  • il “passo” in inglese si chiama “pitch”
  • IDC significa “Insulation-Displacement Connector” (“connettore a spestamento di guaina”): significa che i fili non sono connessi ai pin tramite saldatura, ma grazie a delle affilate “microforcelle” presenti sul loro retro; l’apertura della forcella è poco più larga del diametro del conduttore di rame interno al filo, quindi quando si inserisce il filo nella forcella, questa taglia e sposta la guaina, andando a toccare il conduttore e garantendo un contatto elettrico stabile e addirittura a tenuta d’aria:

IDC connection, Torq-Tite patent

IDC connection, Torq-Tite patent

  • Nel datasheet c’è un’immagine un po’ fuorviante, che potrebbe far credere che in certi connettori i pin sono sfalsati; in realtà l’immagine di sinistra nella figura qui sotto mostra il connettore visto dal lato opposto dei pin, che invece sono disposti a griglia come mostrato a destra, in altra immagine tratta dallo stesso datahseet:

Connettore femmina da PCB

  • DS1026-05-2*22S8BV – Presa; con pioli; femmina; PIN: 44; dritto; 2mm; THT; 2×22 (codice TME.EU: ZL265-44DG)

    Datasheet: link

 

  • MMS-122-01-L-DV – Codice RS: 180-3564 – Connettore femmina per PCB Samtec serie MMS, 44 vie, 2 file, passo 2mm, foro passante RS-COMPONENTS 6,969€ x 13
  • MMS-122-01-L-DV – Codice RS-COMPONENTS: 180-3930 – Connettore femmina per PCB Samtec serie MMS, 44 vie, 2 file, passo 2mm, foro passante –   €10,10 x 1

Connettore maschio da PCB

Come maschio ci sono varie possibilità, nessuna delle quali identica al connettore che è sulla centralina:

 

DS1014-44SF1B – (2 file da 22) – TME.EU

Datasheet: link

Differenza: presa incapsulata invece che pin liberi

La sigla “DS1014-44SF1B” significa:

  • DS1014: codice prodotto
  • 44: numero contatti
  • S: montaggio di tipo V/T
  • F1: contatti in oro
  • B: colore nero

 

DS1002-02-2*25BT1F6 (2 file da 25) – TME.EU

(immagine non disponibile)

Datasheet: link

Differenza: due file da 25 pin invece che da 22.

La sigla DS1002-02-2*25BT1F6 significa:

  • DS1002-02: codice prodotto
  • 2*25: disposizione contatti
  • B: tipo di clip a “4 fingers” (???)
  • T1: placcatura pin in stagno
  • F6: placcatura clip in stagno

 

Altri:

  • 57102-F08-11ULF (2 file da 11, quindi ne servirebbero 2) – TME.EU – “Pin header; wire-board; male; Minitek; 2mm; PIN: 22; THT” – 1,46€
  • 57102-F08-25ULF (2 file da 25, da tagliare) “Pin header; wire-board; male; Minitek; 2mm; PIN: 22; THT” – TME.EU – 1,55€
  • 87831-4420 – Connettore circuito stampato serie MILLI-GRID Molex, 44 vie, 2 file, passo 2mm, 2A, Diritta – Codice RS-COMPONENTS: 670-1009 – 8,17 euro (5 pezzi)

 

  • A3-44PA-2SV(71)Codice RS 764-4622 – Connettore maschio serie A3 Hirose, 44 vie, 2 file, passo 2mm, 2A, Diritta – RS-COMPONENTS – 3,51€
  • 87758-4416 – Codice RS 670-3733 – Connettore circuito stampato serie MILLI-GRID Molex, 44 vie, 2 file, passo 2mm, 2A, Diritta – RS-COMPONENTS17,00 euro (confezione da 10)
  • 832-80-022-20-001101 – Codice RS 701-9761 – in connettore per circuito stampato, Preci-Dip, 832-80-022-20-001101, maschio, 22 vie, 2 file, 2mm foro passante – RS-COMPONENTS – 12,39 euro (confezione da 5)

Tutte le foto del modulo GSM:

connettore GSM nero con righello e pin

Connettore lato SIM con pinout marziale

connettore GSM nero con righello

What can you do with an old cellphone?

Posted in GPS, hardware, Infrarossi, intuizioni, Symbian by jumpjack on 7 giugno 2008

An old nokia series 60 phone (like nokia 6600 or 6680) costs around 50$. But it has:

– bluetooth support

– infrared support

– fotocamera

– internet access

– SMS support

– USB support

– Python support (pys60)

– java j2me  support

Mix all these things together, and you could obtain:

1) 3d foto/video (*)

2) touchscreen (wiimote-like)

3) remote video surveillance

4) Add an IR led to your recipe, and you obtain an SMS-controlled remote-control. (GoogleCode page)

5) Add a bluetooth GPS receiver and you have a GPS antitheft. (GoogleCode page)

6) Home intrusion detection system.

7) Simple guitar tuner.

…any more ideas?

It’s just a matter of writing proper software!

(*) To make 3d photo of moving subjects, or 3d video, you need two separate but synchronized cameras. Bluetooth conection should allow such a synchronization, in such a way that when you shoot a photo on one phone, at the same time it’s shot on the other phone.

Scrivere midlet java per accedere all’AGPS del Motorola a1000

Posted in GPS, Java, Motorola a1000, Symbian, Symbian UIQ by jumpjack on 13 gennaio 2008

– scaricare SDK per A925, che per errore contiene le librerie necessarie per compilare programmi che utilizzino le Location
API; l’indirizzo è questo, ma bisogna essere registrati (gratuitamente) su Motocoder.com:
https://developer.motorola.com/docstools/sdks/archive/a925/
il file che serve è C:\Symbian\A925SDK\epoc32\tools\j2me\j2me-debug.zip

– mettere il suddetto  file nella cartella C:\Programmi\programmazione\WTK22\lib (cioè la cartella delle librerie del
Wireless ToolKit v. 2.2; per altre versioni dovrebbe essere analogo)

– dalla cartella C:\Programmi\programmazione\WTK22\lib togliere il file midpapi20.jar e metterlo in un posto sicuro

– rinominare \j2me-debug.zip in midpapi20.jar

– adesso dovrebbe essere possibile compilare sorgenti java che accedono al package com.motorola.location; un esempio
è nella documentazione dell’E1000 , ed è riportato anche in questo forum Bisogna pero’ correggere il sorgente, sostituendo LOCATION_UNAVAILABLE con ERR_UNAVAILABLE alla riga 11.

– purtroppo, come mostra il file .JAD della midlet Locator  di www.geomaia.co.uk (sito morto), per far funzionare tale
midlet sono necessarie 2 cose:

– nel file JAD, nella sezione MIDlet-Permissions: , ci deve essere scritto com.symbian.midp.io.protocol.location   (e questo sarebbe facile)

– però, nel file JAD devono esserci anche, nelle sezioni MIDlet-Certificate-1-1: e MIDlet-Jar-RSA-SHA1: , le chiavi segrete vendute da Motorola/H2G agli sviluppatori! Quindi, ciccia, non si puo’ fare!
…a meno che non sia possibile smanettare opportunamente il firmware dell’a1000, che contiene un file che descrive le
limitazioni di accesso alle librerie java. Questo file fa si’ che, se tentate di installare una midlet che usa le location API
ma non ha la “chiave”, il Sistema vi dica che il server java non lo permette; se usate le chiavi di Locator…. niente da fare,
perche’ sono scadute nel 2006.

Il file del firmware che credo si occupi di stabilire i diritti di accesso dovrebbe essere
Z:\SYSTEM\data\midp2\security\policy\jtwi_r1.xpf . Chi è in grado di modificare il firmware dovrebbe
essere anche in grado di fare qualche esperimento.

In alternativa, sembra che esista un programma MOTOMU che dà i permessi alle midlet, ma non ho capito se
modifica il firmware tramite FLEX o se fa altro…

Il forum originale in cui l’utente TheNext1 ha pubblicato per la prima volta Motomu (è pure un utente italiano!) è questo: http://www.3g.co.uk/3GForum/showthread.php?t=28619 , ma naturalmente, essendo il thread vecchio di BEN due anni, i link per scaricare motomu non funzionano piu’, bisognerà cercarlo in giro…

Vista la difficile reperibilità di Motomu e la difficoltà nello scaricare l’SDK dell’a925, che occupa diverse decine di MB e richiede registrazione, ecco il file j2medebug.zip, e il file AGPS.ZIP che raccoglie, oltre a Motomu, vari programmi utili e che è stato “assemblato” dallo stesso autore di Motomu.

Antifurto satellitare con telefoni Symbian

Posted in GPS, Symbian by jumpjack on 27 dicembre 2007

— Post in lavorazione —

Link utili:

Modulo Pys60 per Location Api (s60 2nd e 3rd)

Sorgente esempio per LocationRequestor (TEST.PY nello zip: cerca GPS interno, se non lo trova cerca GPS bluetooth)

Symbian SIS Developer Certficate (Signed .SIS) 

Thread su forum nokia sul modulo pys60 LocatinRequestor

Thread su altro forum

Sorgente completo Python per leggere coordinate da GPS bluetoth esterno (ottimo, formatta anche le coordinate)

Forum nokioteca

Sorgente di base per accesso a GPS interno (NMEA location viewer)

Sorgenti PythonGPS vari  (NMEA Info)

Bozza di sorgente python che:
-riceve un messaggio
-legge le coordinate da GPS bluetooth
-invia un messaggio

(L’indentatura si è persa, vedi forum)

import inbox
import e32
import socket
import appuifw
import messagingdef read_sms(id):
e32.ao_sleep(0.1)
i=inbox.Inbox()
sms_text=i.content(id)
appuifw.note(u”Messaggio da elaborare: ” + sms_text, “info”)
# esegue procedure diverse a seconda del messaggio ricevuto.
# Ad esempio, legge coordinate da GPS:
sock=socket.socket(socket.AF_BT,socket.SOCK_STREAM)
address,service=socket.bt_discover() ‘ cerca ricevitore.
target=(address,service.values()[0]) ‘ si collega
sock.connect(target)’ al ricevitore.
to_gps=sock.makefile(“r”,0) ‘ prepara lettura coordinate.
msg=to_gps.readline() ‘ legge riga.
messaging.sms_send(“[NUMERO], msg) ‘ invia SMS contenente coordinate.’ Collega ricezione messaggi ad esecuzione procedura:
i=inbox.Inbox()
i.bind(read_sms)

Trasformare un cellulare in antifurto satellitare per auto

Posted in GPS, Java, Javaphone API, jython by jumpjack on 14 novembre 2007

–> SEE ENGLISH VERSION 

Questo script freeware in Jython trasforma un qualunque telefono che supporti le Javaphone API e il blluetooth in un economico (meno di 200 euro) antifurto satellitare per auto: infatti, una volta installato lo script sul telefono, non appena il telefono riceve una chiamata invia a un numero predefinito un SMS contenente le coordinate in cui il telefono stesso si trova, leggendole da un ricevitore GPS esterno.

Il programma è stato testato solo su Motorola a1000, ma dovrebbe funzionare anche su Nokia 9200/9210/9300/9500 e su qualunque telefono supporti PersonalJava, Bluetooth e Javaphone API (purtroppo solo pochi supportano le Javaphone API). 

Cosa vi serve:

Un PDA/telefono che supporti PersonalJava o Personal Profile, le Javaphone API e, il bluetooth (probabilmente va bene qualunque sistema operativo, trattandosi di java)

Una versione di Jython compatibile col telefono (per esempio questa, testata su UIQ 2.1)

JavaBT: Librerie bluetooth per PersonalJava; (JavaBT homepage)

Lo script “LC GPS car tracker“;

Un file di testo contenente il numero a cui inviare l’SMS; il file deve chiamarsi  cellphone.txt;

Un file di testo contenente l’indirizzo del ricevitore GPS, memorizzato come sequenza di 6 numeri esadecimali (ad esempio  000a3a2310c2; è possibile scoprire l’indirizzo del proprio GPS utilizzando un qualunqe programma di gestione bluetooth installato sul PC). Il file si deve chiamare address.txt;

Una volta che vi siete procurati tutto questo, potete procedere con l’installazione: 

Once you have all of above:

– Installate Jython sul telefono (per esempio in D:\jython);

– Decomprimete JavaBT.zip sul PC, e copiate la cartella “se” nella cartella D:\Jython sul cellulare; copiate javabt.dll in c:\system\libs sul cellulare;

– Copiate lo script Jython in d:\jython sul cellulare;

– Copiate i suddett file di testo nella cartella  c:\documents\Media Files\document\LC_GPS_Tracker sul cellulare;

– Avviate Jython sul telefono, dopodichè usatelo per lanciare lo script, e attendete il prompt “READY”;

– Accendete il ricevitore GPS e tenetelo in prossimità del cellulare;

– Attivate il bluetooth sul cellulare;

– Ora provate a chiamare il telefono: non appena riceverà la chiamata, comincerà a mostrare una serie di messaggi sullo schermo. Se tutto va come previsto, dopo un po’ dovreste ricevere sul numero prefissato il messaggio con le coordinate.

NOTA: se il GPS aveva “fatto il fix”, il messaggio terminera con “1,xx”, con xx=numero di satelliti, altrimenti terminerà con “0,00”.

Problemi noti:

Al momento il programma non può funzionare sui SonyEricsson P800/p900/p910, perche’ nessuno di essi supporta le Javaphone API. Se vi interessa una versione per questi telefoni potrei provare a scriverla, ma solo su esplicita richiesta e compatibilmente con tempi e fattibilità…: non dimenticate che è sempre un programma freeware! 😉

– La coppia telefono-ricevitore dovrà essere installata in auto e mantenuta sempre sotto carica, per ovvi motivi; per motivi altrettanto ovvi, entrambi dovranno trovarsi in un luogo nascosto, ma al tempo stesso essere in grado di ricevere segnali GSM e GPS

Car anti-theft with Javaphone PDA

Posted in GPS, Java, Javaphone API, jython, Motorola a1000, Symbian, Symbian UIQ by jumpjack on 9 novembre 2007

—>VEDI VERSIONE ITALIANA 

This Jython script turns any Javaphone API supporting PDA into a car-antitheft: once you install this script on the phone, as soon as you call the phone it will send to a predefined number an SMS containing latitude and longitude read from an external GPS bluetooth receiver.

Successfully tested on Motorola a1000; should work on Nokia 9200/9210/9300/9500 (please leave a comment to confirm if you successfully use this program on other phones than a1000) 

What you need:

A PDA/phone with support for PersonalJava/Personal Profile and Javaphone API  (regardless of O.S.);

A Jython version compatible with the phone (try this port for PersonalJava, tested on Motorola A1000);

JavaBT: PersonalJava bluetooth libraries; (JavaBT homepage)

The LC GPS car tracker jython script;

A text file containing the number to send the SMS to; it must be named cellphone.txt;

A text file containing the bluetooth address of your GPS receiver, stored as a sequence of 6 hexadecimal numbers
(for example 000a3a2310c2; you can get your GPS’ address from any bluetooth program installed on your PC). File must be named address.txt;

Once you have all of above:

– Install Jython on your phone (let’s suppose you install it into D:\jython);

– Unpack JavaBT zip package on your PC; copy whole “se” folder into d:\jython folder onto the phone;  copy javabt.dll into
c:\system\libs folder on your phone;

– Copy the jython script into d:\jython folder on the phone

– Copy the above described text files in c:\documents\Media Files\document\LC_GPS_Tracker onto the phone;

– Launch Jython on the phone, and once it’s started use the menu to start the jython script. Wait for “READY.” prompt to appear;

– Turn on your GPS receiver, and keep it within phone bluetooth range;

– Now call your phone: as soon as it receives the call, it will start displaying some debug data on the screen. If all works properly, in a few seconds you should receive the SMS on the predefined number. NOTE: if the GPS got the fix, you’ll see in the message “1,xx” at the end of SMS, with xx=number of satellites; else you’ll see “0,00”.

KNOWN ISSUES:

This program CAN’T work on SonyEricsson P800/p900/p910, as they do not support Javaphone API. If you are interested on a version for these phones, I could try writing a Javaphone-indipendent version, but it would be quite tricky, so I’ll (try to) do it only upon request: don’t forget this program is FREEware!

Leggere coordinate GPS da ricevitore bluettoth esterno con PersonalJAVA e JavaBT su UIQ

Posted in GPS, Java, jython, Programmazione by jumpjack on 28 ottobre 2007

import se.sics.bt.symbian
import java.lang.Short
import jarray

lib = se.sics.bt.symbian # Connessione a libreria JavaBT
address = jarray.array([0,10,58,35,16,194],’h’) # Array di “short” per indirizzo GPS
commander = lib.BTCommander()
device = lib.BTDevice(“LC_GPS”, address, commander) # Prepara connessione a GPS
port = 1
abyte0 = jarray.zeros(3,’b’) # Crea array di 3 byte
currentSocket = device.connect(port, commander.RFCOMM, 20) # Apre connessione

i = 1;
print “\nReading data…”
MAX=200 # Numero di bytes da leggere al ricevitore
n=0
dati = “Dati ricevuti: ”
while i > -1 and n<MAX:
n=n+3
i = currentSocket.read(abyte0, 3, 1000)
j = 0
while j < i:
dati = dati + chr(abyte0[j]) # Accoda a stringa i dati letti
j = j+1
print “\ndone”
print “LAT: “, dati[dati.find(“$GPGGA”)+18:dati.find(“$GPGGA”)+18+9]
print “LON: “, dati[dati.find(“$GPGGA”)+30:dati.find(“$GPGGA”)+30+10]
currentSocket.close()

Download file con indentatura corretta:

http://www.planetmobile.it/jumpjack/BT_test.py 

Accedere al Bluetooth tramite PersonalJava su telefoni UIQ (A1000, p800, p900)

Posted in GPS, Java, jython, Programmazione by jumpjack on 27 ottobre 2007

Utilizzando PersonalJava, normalmente non è possibile accedere al bluetooth, perchè le librerie JSR82 sono
per J2ME, non per PesonalJava.

Ho però finalmente scoperto, dopo lunghe ricerche, che qualcuno, qualche anno fa, ha scritto una libreria bluetooth
apposta per Symbian UIQ 2.1: è nata per funzionare sul SonyEricsson p900, e pensavo che, come tante applicazioni
“evolute” che girano sui SonyEricsson (vedasi Python, mShell, mobinfo.dll,…) non funzionasse sull’a1000…

E invece FUNZIONA! Non solo: sembra che questa libreria sia anche migliore della JSR82!

Tramite le librerie JavaBT è possibile accedere al bluetooth, ad esempio per leggere le coordinate inviate da un’antenna
GPS.

E’ sufficiente scaricare il programmino java di prova per vedere comparire direttamente sullo schermo i dati
“crudi” trasmessi da un’antenna GPS esterna.

La libreria è fornita anche coi codici sorgenti, per chi volesse ricompilarla per altri sistemi.

La documentazione purtroppo lascia un po’ il tempo che trova…:
http://www.sics.se/humle/projects/mobitip/javabt/tutorial.php 

A parte il fatto di poter leggere i dati di un GPS, la disponibilità di una libreria Bluetooth dovrebbe rendere possibile
anche comunicare direttamente col PC, quindi usare il cellulare come telecomando per il PC, o il PC per inviare
messaggi SMS dal cellulare. Non è purtroppo possibile controllare le applicazione del cellulare tramite PC, perche’
PersonalJava non permette di “cliccare” virtualmente sullo schermo del telefono o di inviare “pressioni di tasti” alle
applicazioni.

HikeTracker è un altro progetto per p900 che ho trovato, che si basa sull’uso di bluetooth tramite librerie JavaBT, ma sembra che sull’a1000 non funzioni (il programma crasha).

Ad HikeTracker è ispirato un altro progetto, InhouseTracker, che dovrebbe permettere la localizzazione precisa
all’interno di ambienti chiusi.

Purtroppo entrambi i progetti hanno solo documentazione in tedesco…

Mobitip è un altra applicazione che si basa su JavaBT, ma pare non funzionare sull’a1000.

Comfuture è un’altra applicazione che si basa su JavaBT, volta a rendere l’intera casa telecontrollabile tramite
telefono bluetooth!

Ricevitori GPS per Motorola a1000

Posted in GPS, Motorola a1000 by jumpjack on 17 aprile 2007

Nel caso del palmare a1000, a differenza di altri, bisogna distinguere tra ricevitori GPS e antenne GPS: l’a1000 è infatti dotato di una presa a cui collegare un’eventuale antenna GPS esterna, in alternativa all’utilizzo di un ricevitore GPS completo esterno, che comunicherebbe invece col cellulare tramite bluetooth. Il vantaggio dell’antenna è ovviamente il prezzo: 20-30 euro contro gli 80-120 di un ricevitore completo.

 Purtroppo sembra che il connettore usato dall’a1000 sia proprietario e incompatibile con qualsiasi connettore commercio, incluci MCX e MMCX, quindi, a meno di “accrocchi” vari, non è possibile collegare al cellulare nessuna antenna esterna.

Occorre quindi ripiegare su un piu’ costoso ricevitore.

Qui cerchero’ di elencare tutti quelli che sono stati provati sull’a1000, con i relativi risultati. Cliccando sui link si aprono finestre separate, per permettere i dovuti confronti.

Marca Modello Prezzo (apr
2007)
Chipset canali firmware a1000 commento
Marca Modello   Chipset canali firmware
a1000
commento
??? Bt-338 € 93,00 ??? ??? ??? ottimo
HOLUX GPSlìm 236
 
SirfStar
III
??? 51.14.15,54.07.00 TTM5
ok R66 ok, ottimo
GLOBALSAT bt 308 € 80,00 SIRF
II
??? ??? ottimo
Global Sat BT 359 € 85,00 ??? ??? ??? ottimo
Royaltek 2100 € 60,00 SIRFStarIII ??? ??? ottimo
RoyalTek  BT – Xtrac2 – RBT-1000 € 80,00 ??? ??? ??? ok
Ebontek  eGPS-397   Nemerix ??? 51.14.15,51.95.00 TT5
Ok R66 Ok
NAVILOCK GPS-Mouse
Bluetooth BT-308
  ??? ??? 51.14.15,51.95.00 TTM5
Ok R66 Ok
RIKALINE GPS-6033   ??? 32
CANALI

 

51.14.15
TT5
OK R66 non testato
GPS Sprint ???   Sirf
3
??? ??? TT5
ok
Fortuna Slim   III  20
canali 

 

51.14.15
ok
navicore ???   sirf
III
??? ??? ok
Jentro BT-GPS-8   ??? ??? ??? ok
Leadtek LR9553X € 108,00 ??? ???
 

54.08.00
tt5
ok , r66 ko
leadtek 9553   sirfstar
3
20
canali
??? ok
Connecto BT-74R  € 90,00 RFMD 32
canali
??? ok
con TT5 e Nhgps, Mapview si blocca
Super III bt74r   ??? ??? ??? fix
lento (10 minuti), niente disconnessioni
??? GP
27
  Nemerix  ??? ??? no
??? GPS
BT
  SONY
CXD 2951 
???
 

51.14.15
no
Hamlet  HBTGPS   ??? ??? ??? no
??? BTG-7000   ??? ??? ??? no
WONDE XL   Nemerix 16
Canali
??? no 
??? BT77    nemerix  16
canali

 

51.14.15
no
             

Commenti disabilitati su Ricevitori GPS per Motorola a1000