Category Archives: Tutorial

Obteniendo códigos de diagnóstico por medio de Check Engine (CEL) 3000GT/Stealth 94-95

Si no contamos con un datalogger o cable de ‘diagnóstico, podemos obtener los códigos por medio de la luz de check engine (en el tablero), esto se hace aterrizando un cable (pin 16 en los 94+), con esto se encenderá la luz de “Check Engine” y arrojará combinaciones de códigos mediante encendidos largos-cortos.

Procedimiento
Necesitaremos un clip de metal y un pedazo de cable (unos 60cm o 5cm).
• Paso 1 – Localizar el puerto de diagnóstico. En los 94-95 debe estar enfrente de tu rodilla derecha, apuntando hacia abajo.
• Paso 2 – Alargamos una punta del clip de metal.
• Paso 3 – Descubrimos el cable en las 2 puntas, una la enrrollamos en el clip de metal y la otra la podemos conectar a unos clips de “cocodrilo”
• Paso 4 – Buscamos un buen punto de tierra del carro, el chasis o algún cable de stereo/alarma/amp y conectamos el cable que acabamos de “armar”.
• Paso 5 – Identificamos el pin más a la derecha y en la 2da fila del puerto de diagnóstico.(Pin 1 94-95).

Por ejemplo en mi caso es 94, 16 pines, el que está más a la derecha, encerrado en un círculo

Por ejemplo en mi caso es 94, 16 pines, el que está más a la derecha, encerrado en un círculo

• Paso 6 – Ahora, con el cable conectado a una buena “tierra” insertamos el clip en el puerto de diagnóstico (pin 1 ).

** Otra opción, es aterrizar Pin 1 y Pin 4, lo mismo que hace la herramienta de diagnóstico, con esto activamos el check engine, la única desventaje es que pone el carro en modo de ajuste 😛
• Paso 7 – Insertamos la llave y damos vuelta hasta la posición de  “ON” (no prendemos el carro) y la luz o indicador en el tablero de Check Engine empezará a emitir el código.

Por ejemplo, si la luz se enciende de esta forma (L largo, S corto) L – L – S – S – S – L – L – S – S – S, sería el código 23 (repite el código).

 

Estos son los códigos según el manual de servicio:

11 Oxygen Sensor (rear if Turbo) yes Harness, Ox sensor, Fuel pressure, Injectors, Intake air leak
12 Air flow sensor yes Harness & connector, Replace Air flow sensor
13 Intake air temp. sensor yes Harness & connector, Replace Intake air temp sensor
14 Throttle position sensor yes Harness & connector, Replace sensor, Idle position switch
21 Coolant temp. sensor yes Harness & connector, Replace Coolant temp. sensor
22 Crank angle sensor yes Harness & connector, Replace Crank angle sensor
23 Top dead center sensor yes Harness & connector, Replace Crank angle sensor
24 Vehicle speed sensor (reed swch) yes Harness & connector, Replace speed sensor (reed switch)
25 Barometric pressure sensor yes Harness & connector, Replace Barometric pressure sensor
31 Detonation sensor (DOHC) yes Harness & connector, Replace Detonation sensor
36 Ignition timing adjustment signal no Harness & connector, normal when setting timing
39 Oxygen Sensor (front, turbo ) yes Harness, Ox sensor, Fuel pressure, Injectors, Intake air leak
41 Injector yes Harness & connector, Check injector coil resistance
43 EGR (California) yes EGR temp. sensor, EGR valve, EGR control solenoid, EGR valve control vacuum
44 Ignition coil, transistor #1-4 yes Harness & connector, Ignition coil, Power transistor unit
52 Ignition coil, transistor #2-5 yes Harness & connector, Ignition coil, Power transistor unit
53 Ignition coil, transistor #3-6 yes Harness & connector, Ignition coil, Power transistor unit
61 Transaxle control signal (A/T) yes Harness & connector, Replace Transaxle control unit
62 Induction control position sensor (DOHC, non turbo only) yes Harness & connector, Induction control valve

Datalogger “Híbrido” para Mitsubishi 3000GT / Dodge Stealth 94-95

Bueno, empezando, me hice de un mitsubishi 3000GT, como todo buen electrónico, lo primero que pensé es hacer un diagnóstico, en estos tiempos prácticamente todos los vehículos tienes algún tipo de computadora que realiza mediciones y diagnósticos de sensores, códigos de error etc. lo primero que me encuentro es que el carro, al ser anterior a 1996, el año en que los carros de importación a EUA requerían implementar OBDII,  maneja un tipo de conector OBDII “propietario” lo que significa que usa una configuración no “estandarizada” entre OBDI y OBDII, requiriendo la herramienta de diagnóstico de Mitsubishi (MUTII, con un precio arriba de $2000 dlls, si es que la podemos encontrar…)

  • Conector hembra D-Sub DB9 x 1
  • Cubierta para conector DB9 x 1
  • 2N3906 (BC556) – Transistor de propósito general PNP x 1 BC556 PNP (Usé BC557)
  • 2N3904 (BC546) – Amplificador de propósito general 40v 200mA NPN x 2 BC546 NPN (Usé BC547)
  • 560 OHM 5% 1/4W x 4
  • Cable, protoboard, placa, kit pcb, etc…
  • 4.7K OHM 5% 1/4W x 3

Ahora, el diagrama (cortesía de un miembro de 3si.org, tiene un error en la lista de materiales, 3 resistencias son de 4.7k)

Diagrama en alta resolución -> OBD2mutt

Imagen

 

El cual se basa en, podemos ver que la línea de RTS es opcional, por lo que no requerimos lal parte del transistor Q3.

se9141rs232

 

Recientemente publiqué en un foro (en inglés) un PDF con los diagramas y lista de partes.-> hybridcableproject

 

Con esto, ya podemos usar el puerto de diagnóstico “propietario” con una software como EvoScan (2.5+).

Para EvoScan, como espera un circuito FTDI, necesitaremos un convertidor rs232 (serial) a USB que tenga el chip FTDI, son muy comunes, en la caja/bolsa indican FTDI o high speed/high baud rate, aunque nuestra laptop/computadora tenga un puerto de serie rs323 simplemente no funcionará con EvoScan a menos de que sea con convertidor ftdi..

Además, debemos configuar EvoScan con protocolo “Hybrid DSM/3000GT/Eclipse”

Cómo jugar en línea Nintendo 64 (Versión mejorada, libre de latencia)

Necesitamos:

  1. Project64 1.7 (Octubre 2010): http://www.mediafire.com/?fsvv69fyh3p9shl
  2. NetPlay Input Plugin: http://www.mediafire.com/?7p2y0bbs25fvo2x
  3. ROMS: http://www.coolrom.com/roms/n64/

Instalamos Project64 como de costumbre, descomprimimos el archivo Net Play Input Plugin.dll en la carpeta de instalación de Project64 (/Program Files/Project64/plugins/input/), abrimos project64, configuras la ruta en donde están los roms, las opciones de video/sonido que sean adecuadas para nuestra computadora y en settings, escogemos el NetPlay Input Plugin como plugin de entrada.

Después configuramos el Plugin de entrada y de ahí seleccionamos el Plugin de control al que se se estarán mandando/recibiendo la comunicación de otros y para otros jugadores, lo configuramos normalmente.

Cada jugador debe repetir los mismos pasos.

Ahora cargamos un ROM, al momento aparecerá la ventana del Plugin, si es la persona que actuará como servidor, debe poner el siguiente comando en la caja de texto:

/server PUERTO

Donde PUERTO es un puerto TCP que debe estar desbloqueado por firewall y router, tal vez funcione sin esto, pero si hay problemas en la conexión de otros jugadores van a tener que desbloquearlo o agregar una excepción a la regla de firewall.

Los demás jugadores tendrán que usar el comando:

/connect IP PUERTO

IP: Es la ip del jugador que tiene el servidor.

Pueden encontrarla con algún servicio como:
https://www.whatismyip.com/

PUERTO: El puerto que defina el servidor*.

(* También deberían desbloquear ese puerto, como en el servidor, para evitar problemas con firewall/router)

Para telmex/infintum, que son modems muy comunes en méxico, pueden utilizar este tutorial:

 

Comandos del plugin:

Para todos los usuarios

/name NOMBRE, configuran el nombre el jugador a NOMBRE

Para el servidor

/lag LAG

Ddonde LAG puede ser un número entero (he tenido buenos resultados con /lag 2-4 para jugar con amigos de la misma ciudad).

/start

Inicia el juego

Los jugadores deben tener exactamente la misma versión del ROM, sino lo más probable es que no funcione.

Eliminar spyware/malware de tu computadora

Este es el procedimiento que normalmente realizo para limpiar una computadora, casi siempre el problema no está identificado, por lo que es requerido hacer un análisis profundo en lugar de remover los archivos o llaves de registro que están causando el problema.

Primero, limpiar los archivos temporales y basura, esto ayudará a acelerar el proceso, además de que muchos malwares se almacenan en las carpetas temporales.

Herramienta CCleaner:

http://www.piriform.com/ccleaner/download

Hacemos limpieza de programas/windows.

Malwarebytes Anti-Malware FREE:

http://www.malwarebytes.org/products/malwarebytes_free

Realizamos una exploración completa de los discos duros (Full scan)

Spybot – Search & Destroy:

http://www.safer-networking.org/en/spybotsd/index.html

Actualizamos y realizamos un ‘scaneo’

ComboFix:

http://www.combofix.org/download.php

Descargamos y colocamos el archivo en el Escritorio (importante), después ejecutamos

Después de esto deberían haber encontrado al menos una docena de malware, a veces algunos archivos infectados son archivos de sistema, si llegamos a tener algún problema con alguno, podemos reparar con

sfc /scannow

Esto lo hacemos en la línea de comandos (ejecutándola como administrador)

 

*Los videos no son míos, recopilados de youtube.

Invertir las palabras en una sentencia (C++)

Hace unos días tuve una entrevista en la que me pidieron un simple algoritmo para invertir el orden de una sentencia,
por ejemplo invertir la cadena original "Esta es una prueba " -> prueba una es Esta".

La versión más sencilla qeu se me ocurrió, sin utilizar punteros o modificar las direcciones de memoria y buffers fue esta
(disculpen los comentarios, el examen fue en inglés y los he traducido al vuelo).


#include
#include
using namespace std;

void invertStringWords(char[]);

int main() {
    char words[] = "Esta es una prueba";
    cout << endl << "Sentencia original: \t" << words << endl;
    invertStringWords(words);
    system("pause");
    return 0;
}

void invertStringWords(char words[]) {

//Arreglo con la longitud de los caracteres en la sentencia
int arraylength = strlen(words);

// índice para el caracter que está siendo leído
int a=0;

// String para almacenar la última palabra formada del arreglo
string invert="";

// Arreglo de caracteres con la cadena final de palabras invertidas
char invertedWords[arraylength];

// Ciclo que recorre la cadena original desde el final
for(int i=arraylength-1; i >= -1; i--){

             // Si encontramos un espacio ya hemos terminado una palabra
             // invertir la palabra y agregarla al principio del arreglo invertido
             if(i==-1 || words[i] == ' ') {

                         // Agregar la última palabra encontrada invertida en la sentencia
                         // al principio del arreglo de cadena invertida
                         for(int b=invert.length()-1; b >=0 ; b--) {
                                 invertedWords[a] = invert[b];
                                 a++;
                         }

                         // Agregar un espacio para delimitar palabra e incrementar el contador
                         // 'a' solo si no se ha llegado al final del arreglo.
                         if (i>-1)
                            invertedWords[a++] = ' ';
                         invert="";
             }
             else
             {
              // Tenemos un caracter, agregarlo a la cadena temporal
                         invert +=words[i];
             }
     }

             cout << endl << "Sentencia invertida: \t" << invertedWords << endl;
}

Extensiones imprescindibles en Firefox

Una de las cosas que me mantiene usando Firefox es la gran cantidad de complementos y extensiones desarralladas por terceros, es lo que lo hace destacar sobre los demás exploradores (y alentarse jeje), Opera, Chrome y similares no son competencia en este sentido.

A continuación enlisto los que considero esenciales para cualquier instalación de Firefox

1. Adblock Plus:

Como su nombre lo indica, bloqueador de publicidad, funciona realmente bien.

https://addons.mozilla.org/en-US/firefox/addon/adblock-plus/

2. Video DownloadHelper:

Complemento para la descarga de videos (e incluso música) de páginas web, cuando están en modo ‘streaming’ como es youtube, vimeo, tu.tv, bandcamp, etc.

https://addons.mozilla.org/en-US/firefox/addon/video-downloadhelper/

 

3. Flashgot:

Ayudante de descargas, funciona muy bien, y a veces es útil..

https://addons.mozilla.org/en-US/firefox/addon/flashgot/

4. Greasemonkey: Es un complemento que permite usar ‘scripts’ para modificar/optimizar/automatizar diferentes tareas en páginas web por medio de javascript.

https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/

Algunos de los scripts que uso con esta herramienta son:

Facebook Ad-Blocker: incluso con Adblock plus, facebook incluye una buena variedad de publicidad, este script remueve todo eso:

http://userscripts.org/scripts/show/120859

Facebook Chat Emoticons Bar: Yo no me sé de memoria los emoticons de Facebook, tú? bueno para eso está este complemento, agrega una pequeña barra arriba del chat con los smileys

http://userscripts.org/scripts/show/50826

Youtube National Adder: Agrega la bandera del país de los usuarios que comentan en Youtube, no será tan útil pero me gustó jeje

http://userscripts.org/scripts/show/123965

Obteniendo el mejor sonido con Foobar2000

Hola pequeños saltamontes! en este post les voy a compartir mi experiencia con este magnífico reproductor, que para mí, sin duda, es el mejor en la plataforma de Windows, he probado Winamp (incluso con el plugin ASIO), WMP, KMPlayer, Songbird, VLC, MPC, Zoomplayer, goomplayer, Bsplayer, el de Nero, PowerDVD, Realplayer y otros que ya olvidé por que no cumplieron con mis expectativas.

Primero, Foobar2000 es un reproductor minimalista, si lo instalan por primera vez no van a encontrar muchas de las características que por ejemplo incluye Winamp (para mí, es pura basura..), pero a su vez es muy extensible por medio de componentes (plugins), y aquí es la parte importante, en cuestión de componentes tiene toda una comunidad de desarrollo donde se está mejorando continuamente cada componente, la mayoría de los miembros son unos audiófilos de hueso colorado, así que si nos vamos a la cuestión de el mejor sonido foobar es la elección correcta.

Unas capturas para que se den una idea de lo simple que puede ser y cómo puede llegar a personalizarse:

Pero esa parte no la voy a tratar, al menos en mi caso no tengo problema con la interfaz inicial, sencilla y práctica. Lo que me interesa compartirles es la configuración para obtener la mejor calidad de sonido posible.

Instalación

La instalación es muy sencilla como cualquier programa de windows, descargan la versión más reciente de: http://www.foobar2000.org/download (en el momento de escribir esto es la 1.1.5 ), aceptan las condicones, escogen el directorio,etc. etc.

Componentes recomendados

Los siguientes componentes para foobar los recomiendo ampliamente, 2 son esenciales para obtener el mejor sonido posible (WASAPI para Vista/7 o Kernel Streaming para Windows2k/XP) los otros como Channel Mixer, Dolby Headphone Wrapper son opcionales pero también los recomiendo si quieren probar algo diferente, básicamente channel mixer nos permite hacer un upmix* de nuestros archivos de entrada de 2 Canales a 5.1 canales para luego recibir esta información en el Dolby Headphone Wrapper y posicionar estas bocinas en un ambiente virtual (DH1 Reference Room) que llegará hasta nuestros audífonos creando un efecto 5.1 (de los mejores que he probado).

Para usuarios de Windows2000/XP/MediaCenter2005

Kernel Streaming Support (descargar 1.2.2)

Más información:

http://www.foobar2000.org/components/view/foo_out_ks

Para usuarios de Windows Vista / 7

WASAPI Audio support (descargar 2.1 )

Más información:

http://www.foobar2000.org/components/view/foo_out_wasapi

Dolby Headphone Wrapper (descargar 1.1.4)

Más información:

http://www.foobar2000.org/components/view/foo_dsp_dolbyhp

Channel Mixer (descargar 0.9.6.5)

Más información:

http://skipyrich.com/wiki/Main_Page#Channel_Mixer_.28foo_channel_mixer.29

Dolby Headphone DLL (Descargar 1.10.0.27)

Más información:

http://www.cyberlink.com/prog/company/press-news-content.do?pid=164

Instalación de los componentes

Nos vamos a la sección de preferences (File -> Preferences o Control+P) y hacemos click en Install

Y ahora seleccionamos los archivos que hemos descargado, aquí tendremos que elegir entre WASAPI y Kernel Streaming Support, de acuerdo a la versión de windows que tengamos instalada, recuerden que el primero es para Vista/7 y el segundo para Windows2K/XP/MC. Aceptamos los cambios y nos pedirá reiniciar foobar2000.

Dolby Headphone

Descomprimimos el archivo dolbyhph.zip en algún directorio de nuestro disco duro, de preferencia en el mismo de foobar2000 o donde puedan localizarlo fácilmente (yo lo dejé en System32) ya que lo necesitaremos más adelante en la configuración del componente de Dolby.

Configuración

Lo primero que debemos hacer antes de cambiar la configuración es conocer las capacidades de nuestro hardware, la mayoría del hardware moderno va a soportar una resolución de 24 bits y va a aceptar un muestreo de 44100 Hz. Para esto pueden buscar el nombre de su tarjeta de sonido que aparece en el Administrador de Dispositivos:

Por ejemplo, si tengo una tarjeta de sonido Realtek High Definition (como la que se muestra en las imágenes anteriores, busco las especificaciones de ese chip (alc892) y en la página de Realtek encuentro que:

Ten DAC channels support 16/20/24-bit PCM format for 7.1 channel sound playback…

All DACs supports 44.1k/48k/96k/192kHz sample rate…

Esta tarjeta soporta una resolución de 16 y 24 Bits, y un muestreo de 44.1 y 96kHz en los DACs, que son los que se encargan de convertir en señales analógicas (para los audífonos) el flujo de datos que llega a la tarjeta de sonido (estos datos nos interesan, luego veremos por qué).

Suponiendo que vamos a estar reproduciendo archivos sin pérdida (FLAC, AAC, etc.) o por lo menos mp3 con un Bitrate decente (320kbps+) recordemos que en el caso de FLAC, es una copia idéntica de un disco de audio, el cual se apega al estándar Reedbook, el cual define que la codificación en un disco de audio es en:

2 canales de audio LPCM, cada uno con valores de 16 bits con signo con un muestreo a  44100 Hz

Entonces, lo mejor es que seleccionemos un muestreo de 44100Hz con una resolución de 16 bits? Parece que sí, pero no es lo correcto, debido a la forma en que se transmiten los datos en el bus de la computadora, un stream de 16 bits tiene que esperar a ser completado hasta 32 bits, lo cual indudablemente no incluirá información relevante. Ahora, si seleccionamos una resolución de 32 Bits, la tarjeta descartará (esperemos que con un buen algoritmo los 8 bits irrelevantes), por lo que lo mejor es seleccionar 24 Bits como nuestra resolución de salida (más adelante), ya que si la implementación del algoritmo 32-a-24bits es muy pobre vamos a perder calidad (o información relevante) del audio original.

En mi caso, utilizo una tarjeta de sonido Audigy 2 zs, la cual soporta una resolución de 24 bits, y un muestreo de 44800Hz y 96kHz (no soporta 44100Hz, tengo que modificar la entrada con un Resampler), mi configuración ideal sería 24bits y 96kHz, pero encontré que a menos de que use un controlador especial (Kx-Drivers) internamente hace una conversión de cualquier muestreo que no sea 44800Hz a esta frecuencia, por lo que usaré esta opción para evitar que lo realice la tarjeta (lo hace con un algoritmo muy malo).

Configuración de la salida

Nos vamos a la sección de output en el menú de preferencias (preferences) y seleccionamos de acuerdo a nuestra versión WASAPI o Kernel Streaming, recuerden que van a salir varios dispositivos, hay que elegir el que sea la salida analógica (analog out, Front, Stereo, etc.):

WASAPI

Kernel Streaming

Y en la parte de Output format seleccionamos la más óptima para nuestra tarjeta de sonido, que por lo general es 24bits.

Configuración DSP

Nos vamos a la sección de DSP Manager y mandamos los componentes que acabamos de instalar, para hacerlo seleccionamos el componente en la parte derecha (Available DSPs) y la flecha que apunta hacia la izquierda, es muy importante que sea en este orden para que tengamos el mejor sonido, bueno… en realidad, para que funcione…

*RESAMPLER ES OPCIONAL, SÓLO SI TU TARJETA DE SONIDO NO SOPORTA UN MUESTREO DE 44100HZ TIENES QUE HACER UN RESAMPLE A LA FRECUENCIA ADECUADA, COMO EN MI CASO, NECESITO CONFIGURARLO PARA QUE LA SALIDA VAYA EN 44800HZ, SI NO TIENES ESTE PROBLEMA, NO LO AGREGUES A LA LISTA.

Configurar Resample PPHS (Opcional, ver nota de arriba)

Para configurarlo, seleccionamos el componente y hacemos click en el botón de la parte superior (configure), después seleccionamos la frecuencia de muestreo adecuada y la opción Ultra Mode.

Configuración del componente Dolby

En esta parte lo único que tenemos que configurar es la ruta del archivo DLL, indicamos la ruta donde descomprimimos el archivo dll y aceptamos los valores por defecto (DH1 y 100%).

Configuración Channel Mixer

Vamos a la configuración de este componente y en la pestaña de general seleccionamos las opciones siguientes:

Output Channels:6, activamos L, C, R, RL, RR.

En la pestaña de Upmix seleccionamos el modo Surround con las siguientes opciones:

Center 1.00

Subwoofer: 0.00

Rear in front: 0.00

Rear

Volume: 2.00

Front in rear: 0.00

Configuración del ecualizador (nótese el orden incorrecto de los DSP’s xD)

Configurar el ecualizador es opcional, y está condicionado por la calidad de sus audífonos, si tienen unos audífonos con buen calidad, buena reproducción de frecuencias a lo largo de su rango, no necesitan ajustar nada, pero en mi caso, con unos audífonos de gama baja Sony, que tienden a acentuar los medios excesivamente y un poco los bajos, encuentro que bajando las frecuencias medias y subiendo un poco las altas frecuencias mejora  el sonido, primero experimenten dejándolo en sus valores por defecto (Flat), ya de acuerdo a sus audífonos (y a sus oídos) vayan modificando sutilmente cada frecuencia. En lo personal no recomiendo el uso de ecualizador…

Con esto podremos disfrutar de un sonido 5.1 Virtual de alta calidad, lo que hacemos es  convertir la imagen stereo tradicional a tres dimensiones utilizando el plugin de PowerDVD  Dolby Headphone, primero se crea un sonido envolvente virtual con el plugin de Channel Mixer, luego se manda a una configuración de 5 canales virtuales posicionados alrededor de nuestra cabeza (Dolby Wrapper).

Además, estamos utilizando al máximo la calidad de nuestra tarjeta de sonido al usar Kernel Streaming o WASAPI, ya que ambos métodos ignoran cualquier configuración o modificación del sonido por parte del equalizador del controlador o el control de volumen de windows, obteniendo una reproducción fiel a la grabación (más o menos jeje).

En caso de que no les guste el ambiente virtual 5.1 pero quieran obtener el sonido con mayor calidad, remuevan el DSP de dolby y el Channel Mixer, con esto, aunque estarán escuchando una imagen de sonido tradicional, será con los mismos beneficios anteriores..

Si llegan a tener algún problema de inicialización de Hardware o de Formato no soportado siempre será en la sección de Output, traten de cambiar la resolución o modificar la salida con el Resampler a 44.8kHz, 96kHz, 192kHz, es importante no usar un muestreo o una resolución muy altos por que al exceder las capacidades de nuestro hardware tendrá que descargar información y por consiguiente usar algoritmos internos generalmente malos (a menos de que tengan una tarjeta de calidad profesional E-MU, M-Audio, etc..)

Bye