Estimados foristas (o foreros):
Tengo tirado desde hace años un celular viejo... un Nokia 5070, de esos tipo ladrillito... que son prácticamente indestructibles.
Un día me empezó a picar el bichito de si se podría usar con un microcontrolador, para enviar/recibir SMS, para
la aplicación que sea... por ejemplo una alarma casera. O abrir la puerta del garage remotamente... es decir, lo que
sea que se les ocurra manejar a distancia.
Hace poco me cambié a Arduino, simplemente porque adoro linux y tengo todas las herramientas, pero esto que
escribo es aplicable a PIC también.
Empecé a buscar en internet primero si valía la pena comprar el GSM shield. Pero me di cuenta que primero
está el problema de las bandas... la mayoría de los que se venden son de 900Mhz y en argentina tenemos 850Mhz
para Movistar... pocos tienen 4 bandas. Y los costos son prohibitivos... arriba de los US$60 para un shield de 4
bandas decente.
Así es que empecé a mirar mi viejito Nokia con cariño... busqué información en internet el resulta que debajo
de la batería tiene un conector de 4 contactos desde donde se puede tener acceso al FBUS. Pero... no me gustaba
tener que destripar el celular, soldarlo y perder la batería (porque estorbarían los cables)...
Buscando en eBay, contré esto:
Black CA-53 USB Data Cable CA53 for Nokia N70 N73 N80 6133 E6 3300 3250 9300
Por US$1.50 con envío incluido desde la China... lo compré hace 20 días y llegó ayer.
Lo corté al medio, guardé la parte del USB y me quedé con el conector que va al celular...
(a propósito la parte del USB tiene un chip adaptador de USB a serial que usaré en algún otro proyecto!)
la misma tiene 4 cables, que mapeándolos con un tester son: Ground, FBUS Tx, FBUS Rx y USB.
Miré por internet y todos los proyectos tienen un MAX232... pero pensé... para qué adaptar a 5V una señal de 3,3V
si mi microcontrolador tiene serial de 3,3V también? Así es que lo conecté derecho viejo: Tx -> Rx, Rx-> Tx y ground
a ground del arduino.
Es muy simple. Aquí hay una
foto:

Encontré un proyecto similar
aqui y hay un proyecto de linux para Nokia que se llama
gnokii (ñoqui?)
en el que hay explicación del protocolo completo e implementación en C.
Escribí un programa de test súper simple (nótese que el FBUS corre a 115200 bauds):
void write_nokia (int letra) {
Serial1.write (letra);
}
void init_nokia() {
int i;
// Esperar un segundo a estabilizar
delay (1000);
// Enviar 128 veces 0x55 para habilitar el FBUS
for (i = 0; i < 128; ++i) {
write_nokia (0x55);
}
// Enviar peticion de version
// 1E 00 0C D1 00 07 00 01 00 03 00 01 60 00 72 D5
write_nokia (0x1E);
write_nokia (0x00);
write_nokia (0x0C);
write_nokia (0xD1);
write_nokia (0x00);
write_nokia (0x07);
write_nokia (0x00);
write_nokia (0x01);
write_nokia (0x00);
write_nokia (0x03);
write_nokia (0x00);
write_nokia (0x01);
write_nokia (0x60);
write_nokia (0x00);
write_nokia (0x72);
write_nokia (0xD5);
}
void setup() {
Serial.begin(9600);
Serial1.begin(115200);
init_nokia();
}
void loop() {
// leer del serial 1 y mandarlo al serial 0
if (Serial1.available()) {
int inByte = Serial1.read();
Serial.write(inByte);
//Serial.print (inByte, HEX);
//Serial.print (" ");
}
}
Cual sería mi sorpresa que al abrir la consola serial tenía mi respuesta!!!
4V 04.22
24-05-07
RM-167
(c) Nokia. Fzҕ
Funciona!!! Ahora es cuestión de, con tiempo, desenredar las tramas y escribir un software para controlarlas.
Quiero compartir este proyecto porque no sólo funciona con el 5070, sino con casi cualquier celular Nokia
viejo que tenga FBUS, incluso si no tiene el conector externo como el mío, se puede soldar los cables en el
conector que está debajo de la batería...
Calculo que varios foristas pueden inspirarse en esta simple solución y aportar ideas / código para desarrollar
por completo este proyecto. Esta toda la información disponible y por US$1.50 podemos dar uso a nuestros
viejos celulares para utilizarlo como con un microcontrolador y nuestra imaginación para darle un buen uso.
Un abrazo y agradeceré comentarios!
Pastito