Jumping Jack Flash weblog

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