jueves, 15 de enero de 2015

Renfe y sus "útiles" ventanillas

        Hoy vengo a quejarme sobre Renfe, más concretamente de su servicio de cercanías. Les pongo en situación: soy usuario del cercanías desde hace aproximadamente un año de la línea C1 de Málaga.

       Para sacar billetes o abonos hace falta hacerlo desde las taquillas automáticas o bien desde las ventanillas, en las cuáles te atiende un "simpático" empleado de Renfe. Normalmente la gente saca un billete sencillo o de ida y vuelta, cuyos importes rondan desde los 1,10 a los 5 y pico euros, depende del número de zonas. Gente como yo que lo usamos casi a diario tenemos que comprar o bien bonos (un pack de varios viajes) o abonos (mensuales) los cuáles ya suben de precio.

A continuación voy a describir la utilidad de las máquinas autoventa: Sólo aceptan tarjetas de crédito, débito, monedas y billetes de 5 y 10 euros, algo normal.

    Un día de los que tenía que renovar el abono, los tarjeteros de las dos máquinas autoventa que hay en mi estación habitual se estropearon (vaya puntería, además estuvieron así varios meses) y aquí viene mi primer problema: voy a la ventanilla a que el simpático empleado me atienda para comprar el abono y al ir a pagar con tarjeta me dice que no puedo, que en ventanilla no aceptan tarjetas. Finalmente saco un billete sencillo y en la estación de destino (en la que ya sí funcionaban los tarjeteros de las máquinas automáticas) saco mi abono normal, con el consiguiente gasto extra de haber tenido que comprar el billete sencillo anterior.

    Otro caso: hace unos días se me estropeó la tarjeta de crédito y tuve que ir al banco a sacar dinero (mientras me mandaban una nueva), a lo que me dieron un billete de 50 euros. Fui a la taquilla (porque recuerdo que las máquinas autoventa sólo aceptan billetes de hasta 10 euros) y al pagar me dice que no puedo, que sólo aceptan moneda fraccionaria hasta billetes de 10 euros (¡igualito que las máquinas!).

    Para terminar de joder la marrana, otra de las cosas que me sucedió hace unos meses fue que quería obtener una tarjeta "Renfe&tú no personalizada", para la que sólo se necesitan 2 euros y una ventanilla. Mi sorpresa: me enviaron a la estación central porque ellos no sabían emitirla... y más sorpresa aún, me presenté en la estación principal y me sueltan que ¡ellos tampoco pueden!

    Ahora viene aquí mi pregunta: aún sabiendo que mucha gente perdería su puesto de trabajo, ¿de verdad son necesarias estas ventanillas, las cuáles no solucionan ningún problema y además están haciendo que el precio del billete sea más alto? Si lo que quieren es tener un punto de información, deben saber que la tecnología ha avanzado mucho y existen unos "quioscos" que ¡son hasta multilingües!, cosa que dudo mucho de la gente que está en estas ventanillas.

Un saludo.

sábado, 15 de noviembre de 2014

Haciendo cositas con el Vag-Com

Hoy tocaba hacer un par de pruebas con el VagCom que arreglé hace un par de semanas.
Para empezar, hace unos cuantos años instalé el Tempomat (velocidad de crucero) pero nunca conseguí que funcionara, así que una vez arreglado el vagcom, me puse a trastear un rato con él.

Para ellos conectamos el cable al coche, al USB del portátil (recordad desconectaros de Internet) y abrimos el software.

Auto-Scan

Nos encontraremos con una pantalla en la que en principio vamos a usar las dos primeras opciones. Para empezar, vamos a hacer un escaneo automático de los distintos módulos del coche para ver los errores que nos suelta. Para ello seleccionamos la opción "Auto-Scan".


Y posteriormente tenemos que elegir el modelo que coche que tenemos, en mi caso un Golf IV, y pulsamos en "Start".


Lo dejamos un rato que vaya escaneando todos los módulos de los que dispone nuestro coche y al final nos saldrá un informe parecido a este:


En mi caso han salido un par de errores, uno en el sensor G68 (sensor de velocidad de la caja de cambios) y otro (que no se aprecia en la imagen) en la G2, aunque este segundo parece venir como problema adyacente del primero.

Pestillos automáticos

Otra de las opciones que es bastante interesante es el tema de los pestillos automáticos. Esto es, cuando pasas de 20km/h se cierran automáticamente y cuando sacas la llave del contacto, se abren.

La centralita se divide en módulos. Los coches, cuanto más nuevos y completos, más módulos tienen (normalmente).

Así que nos vamos a "Select":

Y ahí nos aparecerá un listado de todos los módulos. Aunque nuestro coche no tenga ese módulo, aparecerá en el listado y cuando entremos nos dará un error diciéndonos que no está disponible.

Nos vamos al módulo "46 - Central Conv.". Y después de cargar toda la información pulsamos en "10 - Adaptation".


Dentro de "Adaptation" tenemos canales. Para el BLOQUEO automático de puertas cuando se alcanzan los 20km/h tenemos que ir al canal 03, el valor establecerlo a 1 y guardar.

Para el desbloqueo automático al quitar la llave del contacto se hace exactamente igual, pero el canal 4:

Comprobación del Tempomat

Como ya dije antes, llevo bastantes años con el Tempomat instalado pero sin que funcione, así que le he hecho un checkeo para ver si todos los cables estaban bien conectados.
Para ello nos vamos al módulo "01 - Engine" y una vez allí vamos a "08 - Meas. Block":

Vamos al grupo 006 y en el tercer campo (Cruise Control) lo tendremos todo lleno de ceros.
Si activamos el Tempomat, los dos últimos deberían ponerse a 1:

Si pulsamos el freno, se tiene que poner a 1 el segundo 0 (siempre empezando por la izquierda):
Si pisamos el embrague, se debe cambiar el primer 0 a 1:
Pulsamos el botón de "Reset" en la maneta y se nos cambiará el tercer 0 a 1:
Y para terminar, pulsamos el botón de "Set" en la maneta y nos debe cambiar el cuarto 0 a 1:


Pues tras comprobar que todo estaba correctamente, sólo queda probar el cableado y el sensor G68, pero está en la caja de cambios y toca levantar el coche, así que hasta que tendré que posponerlo hasta el próximo cambio de aceite.

Prometo informar de lo que consiga, pues no he encontrado NINGUNA información sobre este sensor en español.

Un saludo!






martes, 4 de noviembre de 2014

Problemas con bluetooth HC-06 y ATtiny45 y 85

Últimamente estoy jugando bastante con el ATtiny45 y 85 porque al ser tan pequeñitos y no necesitar reloj externo, dan bastante juego.
El caso es que quería poder comunicarme con ellos a través de Bluetooth y compré el módulo HC-06, que está muuuy bien de precio (por unos 3.5€ en Ebay). Ejemplo: http://www.ebay.es/itm/221483856395

Primero lo conecté con un Arduino Nano para probarlo y ver cómo funcionaba. En el otro extremo usé el teléfono móvil (Android) con BlueTerm, que es perfecto para hacer pruebas.
La primera prueba fue un simple replicador, lo que yo escribía en el móvil me lo devolvía el Arduino.

Viendo que el módulo funcionaba, me dispuse a montarlo en el ATtiny. Primer problema: El ATtiny45 tiene muy poca memoria y la librería SoftwareSerial que utilicé en el Arduino para crear otro puerto serie ya no podría usarla. Tendría que apañármelas con el Serial que trae por defecto.

Así que cargué este programa en el ATtiny45 (http://www.plutec.net/2014/10/programando-un-attiny45-y-85.html):

 void setup() {  
  Serial.begin(9600);  
 }  
 void loop() {  
  Serial.println("HOLA");  
  delay(1000);  
 }  

Y me conecté con el móvil al otro extremo del Bluetooth, a ver qué recibía. El resultado fue desastroso:


Y ahí me quedé un par de días pensando, hasta que se lo comenté a Juanjo (un amigo y compañero de Hispasec) y me comentó que quizás modificando la velocidad del puerto serie se podría mejorar algo, así que al lío fui.
Me descargué el datasheet del HC-06 para ver si se podría modificar la velocidad de comunicación y cómo se hacía. Si alguien quiere mirarse el datasheet entero, es todo suyo. Yo me fui directamente a la página 15 que explica qué comandos usar para cambiar la velocidad, nombre y PIN del módulo. Aquí un resumen:

 Cambiar velocidad de comunicación:  
 Envía: AT+BAUD1  
 Respuesta: OK1200   
 Envía: AT+BAUD2   
 Respuesta: OK2400   
 Aquí la lista de velocidades disponibles:  
 1---------1200   
 2---------2400   
 3---------4800   
 4---------9600 (Por defecto)   
 5---------19200   
 6---------38400   
 7---------57600   
 8---------115200   
 9---------230400   
 A---------460800   
 B---------921600   
 C---------1382400  
 Cambiar el nombre del módulo:  
 Envío: AT+NAMEname   
 Respuesta: OKname  
 - Ejemplo:  
 Envío: AT+NAMEpepito  
 Respuesta: OKname  
 (El nombre está limitado a 20 caracteres)  
 Cambiar PIN del dispositivo:  
 Envío: AT+PINxxxx   
 Respuesta: OKsetpin  
 - Ejemplo:  
 Envío: AT+PIN5678  
 Respuesta: OKsetpin  
 El PIN por defecto es 1234  
 Para versiones del módulo mayor que la 1.5 hay comandos de paridad disponibles. 
 Mirar el datasheet.  

Pues bien, para cambiar la velocidad del módulo usé de nuevo el Arduino Nano y le cargué este sketch (no recuerdo de dónde lo saqué, así que no puedo poner los créditos, lo siento):

 #include <SoftwareSerial.h>  
 SoftwareSerial mySerial(4, 2); // RX, TX  
 String command = ""; // Stores response of the HC-06 Bluetooth device  
 void setup() {  
  // Open serial communications:  
  Serial.begin(9600); // Arduino - PC bauds
  Serial.println("Type AT commands!");  
  // The HC-06 defaults to 9600 according to the datasheet.  
  mySerial.begin(9600); //Arduino - BT bauds
 }  
 void loop() {  
  // Read device output if available.  
  if (mySerial.available()) {  
   while(mySerial.available()) { // While there is more to be read, keep reading.  
    command += (char)mySerial.read();  
   }  
   Serial.println(command);  
   command = ""; // No repeats  
  }  
  // Read user input if available.  
  if (Serial.available()){  
   delay(10); // The delay is necessary to get this working!  
   mySerial.write(Serial.read());  
  }  
 }  

Debemos conectar los pines 2 y 4 del Arduino al RX y TX del módulo BT, abrimos una consola serie y nos dirá:
 Type AT commands!
Para probar que están bien conectados los pines TX y RX podemos mandar el comando:
-> AT
<- OK
Nos debe responder OK, si esto no es así, posiblemente tengamos que intercambiar los cables RX y TX del Arduino al BT.
Pasamos a configurar el módulo BT con la siguiente frecuencia que admite: 19200
-> AT+BAUD5
<- OK19200

Cargamos el ATtiny con el sketch que puse al principio que sólo escribía "HOLA", pero modificando la frecuencia a 19200 y... PUMMM


No dice que el puerto serie del ATtiny sólo soporta velocidades de 9600, 38400 y 115200.

Antes de nada recordar que los puertos serie del ATtiny son el Analog Input 2 y el 3 (RX y TX respectivamente):

Cambiamos la frecuencia del HC-06 a 38400 y probamos con el ATtiny. El resultado es este:


Es mejor que con 9600, pero todavía se come algunos caracteres de fin de línea. Así que repetimos el proceso para 115200, con el siguiente resultado:


No he hecho mediciones y pruebas estadísticas (cosa que Juanjo me pidió), pero con estas vistas, creo que es suficiente.

Espero que os sirva para "algo". Cualquier duda, a los comentarios.


domingo, 2 de noviembre de 2014

Reparando cable Vag-Com 704

Vag-Com es un producto (software + hardware) para diagnosis de los coche del grupo Vag (Audi, VW, Seat y Skoda). Pues bien, hace unos 5 años compré este cable para poder tocar cositas del coche por unos 20€.

Cable Vag-Com v704
Con él activé el cierre automático de pestillos, diagnostiqué un fallo que tenía en el motor de la ventanilla, encendí el piloto de los cinturones de seguridad y algunas otras cosas que no recuerdo.

Después de usarlo tres o cuatro veces dejó de reconocerlo el sistema operativo y ahí se quedó guardado en un cajón, hasta la semana pasada, que salió haciendo limpieza de cables.

Lo primero que hice fue abrirlo para mirar los microcontroladores que tenía y estaba formado por un ATmega que conecta con la interfaz del coche y un FTDI que hace la conexión con el USB. Hace tiempo leí en un foro que estos chips daban problemas (de ahí su precio) y que podían ser reprogramados, así que me puse al lío.

Voy a explicar los pasos necesarios, me voy a ahorrar el proceso de investigación que creo que poco interesa :P
  1. Tener un cable como el de la primera foto o similar, el caso es que sea v704 o v704.1 como el mío.
  2. Descargar este archivo con todo lo necesario. 
  3. Tener una máquina con Windows XP de 32 bits. En mi caso uso una virtualizada con VirtualBox, porque recuerdo que WinXP ya no tiene soporte ^^.
  4. Tenemos que averiguar el VID y el PID de la interfaz USB. 
    1. Si usamos Linux sólo tenemos que conectar el cable e inmediatamente después hacer en la consola un "dmesg | tail" y nos saldrá algo como esto:
      idVendor=0403, idProduct=fa20
    2. Si usamos Windows, tenemos que dar botón derecho en Mi PC -> Administrar -> Adm inistrador de dispositivos -> Interfaz USB genérica. Doble click -> Detalles -> Id. de instancia del dispositivo.
  5. Instalar el software de Vag-Com en la máquina con Windows. IMPORTANTE: Leer el tip al final de la página para esto.
  6. Buscar el la carpeta "C:\Ross-Tech\vag-com" el archivo RT-USB.inf y abrirlo
  7. Dentro de la sección [RossTechHw] debemos poner la siguiente línea, sustituyendo las xxxx por los valores que hemos copiado antes:
    "%USB\VID_xxxx&PID_xxxx.DeviceDesc%=RT-USB,USB\VID_xxxx&PID_xxxx"
  8. Al final del mismo archivo debemos insertar otra línea como esta:
    USB\VID_xxxx&PID_xxxx.DeviceDesc="VAG-COM Compatible USB"
  9. Cerramos el archivo (guardando los cambios, obviamente)
  10. Desconectamos el cable del USB y lo volvemos a conectar. Esta vez, si no encuentra los drivers, le indicamos la carpeta donde los tiene que buscar: "C:\Ross-Tech\vag-com" 
  11. Nos dirá que nuestros drivers están correctamente instalados. Si no es así, tenemos que forzar la instalación buscando Hardware y reinstalando el controlador.
  12. Vamos a cambiar el VID y el PID para que lo reconozca como un VagCom. Para ello abrimos el ejecutable "vidpidfix.exe".
  13. Pulsas en "Search" y te saldrá en el cuadro de texto inferior algo como:
    1 device(s) attached:
    0
  14. Pulsamos en el "0" que nos ha salido, "Open" y nos mostrará información y luego sobre "Write default EE data". Si todo ha salido bien, nos debe mostrar una ventana con "EE_Program Complete!". Pulsamos "Aceptar" y cerramos.
  15. Desconectamos el cable y lo volvemos a conectar.
  16. Nos va a salir otra vez lo de instalar el controlador, debemos hacer lo mismo que en el punto 10.
  17. Ahora vamos a reprogramar el controlador FTDI. Primero instalamos el "Mprog2.8_setup.exe".
  18. Vamos a la ruta de instalación y donde está el .exe (C:\Program Files\MProg 2.8a) y pegamos el contenido de la carpeta DLLs que he adjuntado.
  19. Abrimos Mprog2.8 y vamos a File->Open y seleccionamos el archivo "vagcom.ept", que también va en el zip que he puesto en el punto 2.
  20. Pulsamos el botón con una cruz roja ("Erase All Existing Devices)" y nos debe salir un mensaje "Era successful Device 0".
  21. Pulsamos en el icono del rayito azul ("Program All Existing Devices") y nos debe salir, si todo sale bien, un mensaje: "Programmed Serial Number: Disabled"
  22. Ya tenemos nuestro cable reprogramado.
  23. Cada vez que lo conecto al USB me vuelve a saltar la instalación de controladores, pero bueno, vuelvo a hacer el punto 10 y problema resuelto.
Cable Vag-Com reconocido por el software

TIP IMPORTANTE: El software del Vag-Com (de RossTech) debe instalarse y después, conectarlo al coche sin conexión a Internet (a veces llega el wifi desde casa). Después de conectarlo por primera vez, vamos a "Options" -> "User Interface and Identification" -> "Do not check for updates", guardamos todo, cerramos y podemos volver a conectarnos a Internet.
P.D.: No preguntéis la razón, que no se puede decir. (licen...ejem...cia...) :D

domingo, 19 de octubre de 2014

Cambiando la funda del pomo en un Golf IV

Me propuse hacerle una chapuza al coche a la semana, aunque la semana pasada no pudiera por temas laborales, aquí está la nueva.

Material necesario:

La nueva funda
  • Funda de pomo nueva (Esta en Amazon lo trae todo, hasta la base cromada, por si os gusta)
  • Abrazadera de oreja (de una o 2) del 16-18. Es mejor que la compréis una vez tengáis el pomo desmontado, para que veáis cómo va. En el peor de los casos se puede poner una brida de plástico, aunque no quedaría bien del todo.

Herramientas:
  • Cortador de metal
  • Destornillador plano
  • Alicates
  • Manos
El cuero del pomo de la palanca de cambios estaba destrozado, así que pensé que debería cambiarlo.



Lo primero que hay que hacer es, obviamente, desmontar el pomo. Empezamos quitando la base:











Para ello hay que empujar la base hacia el cenicero y levantar. Con eso saldría la base y nos quedaría así:
Ahora tenemos que quitar una abrazadera metálica que hace que el pomo no se mueva de la barra de cambios:

Para ello la he cortado con unas tijeras para cortar metal como estas:


Hay que tener cuidado a la hora de cortar la abrazadera para que no se nos caiga dentro. Yo coloqué un trapo alrededor.
Una vez la abrazadera está partida, tiramos del pomo con un poquito de fuerza hacia arriba y sale.


Ahora vamos a quitar el cuero antiguo para poner el nuevo. Tenemos que sacar la argolla de plástico negro que se ve en la foto anterior. Para ello he usado un destornillador plano bastante grande (para no dejar marca) y haciendo palanca entre el cuero y el plástico.


Y sale fácilmente, tanto la argolla como el cuero.


Ahora tenemos que meter el nuevo forro, teniendo cuidado de que queden alineadas las costuras.


Volvemos a introducir la argolla negra con cuidado de mantener alineadas las costuras y teniendo en cuenta que las estrías que tiene el plástico son para agarrar el cuero. Nos quedaría una cosa así:


No olvidemos que tenemos que meter la base plástica en el otro extremo del forro, aunque se puede colocar una vez el pomo esté puesto en el coche.

Ahora procedemos a montarlo en el coche. Primero colocamos la argolla metálica como en la foto inferior.


Colocamos el pomo en la barra metálica, y apretamos la argolla.


Una vez hecho esto, colocamos de nuevo la base plástica y listo!


Un saludo!

lunes, 13 de octubre de 2014

Extrayendo APKs de nuestro teléfono Android

Hace unos días instalé una aplicación a través de Google Play en un emulador y quería analizarla porque me resultaba sospechosa. A las horas, cuando fui a descargarla de nuevo, ya la habían eliminado, así que recordé que la guardaba en un emulador de Android y me puse al lío.

Lo primero que tenemos que hacer es tener el SDK de Android instalado (hay muchas páginas donde los explican).

Después activamos el modo depuración USB de nuestro teléfono y lo conectamos por USB.

Nos vamos a una consola y escribimos

 $ adb shell pm list packages -f  

Este comando nos mostrará la lista de aplicaciones instaladas en el teléfono junto a la ruta del APK (si es que existiera) con el siguiente formato:

[...]
 package:/data/app/com.spotify.music-2.apk=com.spotify.music  
 package:/system/app/Calculator.apk=com.android.calculator2  
 package:/system/app/HTMLViewer.apk=com.android.htmlviewer  
 package:/system/priv-app/DemoMode.apk=com.motorola.demomode  
 package:/data/app/netgenius.bizcal-2.apk=netgenius.bizcal  
 package:/data/app/com.motorola.bodyguard-1.apk=com.motorola.bodyguard  
 package:/system/app/CellBroadcastReceiver.apk=com.android.cellbroadcastreceiver  
 package:/system/priv-app/GoogleLoginService.apk=com.google.android.gsf.login  
 package:/data/app/com.linkedin.android-2.apk=com.linkedin.android  
 package:/system/app/Mesh.apk=com.motorola.mesh  
 package:/system/app/Bluetooth.apk=com.android.bluetooth  
[...]

Si que queremos extraer el APK de la primera aplicación instalada (en este caso Spotify), usaríamos el siguiente comando:

 $ adb pull /data/app/com.spotify.music-2.apk .  

El punto del final es para decir que se copie al directorio actual. Si tuviéramos una carpeta apk, podríamos usar:

 $ adb pull /data/app/com.spotify.music-2.apk apk/  

Un saludo!

lunes, 6 de octubre de 2014

Programando un ATtiny45 y 85

El otro día compré un microcontrolador ATtiny 45 y otro 85 para probar a hacer alguna cosa. Voy a explicar los pasos para programarlo teniendo un Arduino (en mi caso he usado un nano v3).

El patillaje es el siguiente:


  • VCC -> 5V
  • GND -> Negativo
  • Y las patillas 2, 3, 5, 6 y 7 las podemos usar para "jugar" con él.


La conexión para la programación es bastante simple:


Arduino Nano
ATtiny45/85
+5V
VCC (patilla 8)
GND
GND (patilla 4)
Pin 10
Reset (patilla 1)
Pin 11
Pin 0 (patilla 5)
Pin 12
Pin 1 (patilla 6)
Pin 13
Pin 2 (patilla 7)

Un par de consideraciones a tener en cuenta:

  • Es necesario para usar como programador un Arduino que tenga un ATmega328, no vale el ATmega168.
  • Si tenemos un Arduino UNO es necesario poner un condesador de 10uF entre el Reset y el GND del UNO.

La gracia de estos microcontroladores es que no necesitan un reloj externo, por lo que es más fácil empezar a jugar con ellos.

Lo siguiente es preparar el IDE de Arduino. Para descargamos las librerías para los ATtiny (arduino-tiny) https://code.google.com/p/arduino-tiny/

Y ahora tenemos dos opciones para instalarla:

  • La primera es en nuestra carpeta sketchbook. Creamos una carpeta dentro de esta con el nombre hardware y descomprimimos el contenido. Nos debería quedar algo así: sketchbook/hardware/tiny/
  • La segunda opción es buscar la carpeta hardware dentro de la instalación de Arduino y descomprimirlo ahí.
Lo siguiente es renombrar el archivo de placas. Lo más sencillo es cambiar el nombre de "Prospective Boards.txt" a "Boards.txt", pero si quieres personalizar las tarjetas que te salen en el menú del IDE, debes crear un archivo "Boards.txt" y pegar las que te interesen desde el archivo "Prospective Boards.txt".

Una vez hecho esto, arrancamos nuestro entorno de Arduino y procedemos a cargar el ArduinoISP, para que nuestro Arduino maestro sirvan como cargador para el ATtiny. Para ello abrimos "Archivo -> Ejemplos -> ArduinoISP". 
Ahora en "Herramientas -> Tarjeta" seleccionamos el modelo de nuestro Arduino (en mi caso el Nano v.3 ATmega328) y cargamos el sketch.

Ahora vamos a programar nuestro ATtiny con el famoso sketch "blink". 
Abrimos "Archivo -> Ejemplos -> Basics -> Blink". Seleccionamos la tarjeta del ATtiny, que en mi caso es un "ATtiny45 @ 8Mhz". Si queremos una frecuencia mayor debemos instalar un reloj externo (pero creo que ya pierde toda la gracia...).
En "Herramientas -> Programador" seleccionamos "Arduino as ISP".
Un último detalle, el pin 13 debemos cambiarlo por el 0 (que el ATtiny no tiene tantos pines).
Cargamos el "sketch" normalmente y nos saldrán un par de avisos como este:



No debemos preocuparnos, podemos omitirlos. :P

Ahora ya sólo nos queda conectar un LED con una resistencia al Pin 0 (patilla 5) y GND, como en la siguiente imagen (debemos mantener la alimentación a través del otro Arduino o una fuente externa, como queramos):



Un saludo!


Fuentes: