Stealth/3000GT 94-95 Cali Spec pinouts

4 plug 94-95 NA Cali Spec Ecu MTX Terminals

Pin 1

 

 

 

C-52

  • Pin 1 – No. 1 Injector
  • Pin 2 – No. 3 Injector
  • Pin 3 – No. 5 Injector
  • Pin 4 – IAC Coil
  • Pin 5 – IAC Coil
  • Pin 6 – EGR Solenoid
  • Pin 7 –
  • Pin 8 – MFI Relay (fuel pump)
  • Pin 9 – EVAP Solenoid
  • Pin 10 – PTU A (1-4)
  • Pin 11 – PTU C (3-6)
  • Pin 12 – Power supply (main)
  • Pin 13 – GND (in)
  • Pin 14 – No. 2 Injector
  • Pin 15 – No. 4 Injector
  • Pin 16 – No. 6 Injector
  • Pin 17 – IAC Coil
  • Pin 18 – IAC Coil
  • Pin 19 – MAF Flow sensor reset signal
  • Pin 20 – Fan motor relay (Hi)
  • Pin 21 – Fan motor relay (Lo)
  • Pin 22 – AC Relay (magnetic clutch)
  • Pin 23 – PTU B (2-5)
  • Pin 24 – Electric load switch (input)
  • Pin 25 – Power Supply (main)
  • Pin 26 – GND (in)

C-53

  • Pin 31 –
  • Pin 32 –
  • Pin 33 – VICS position sensor No. 1 (NA)
  • Pin 34 –
  • Pin 35 –
  • Pin 36 – Check Engine Light
  • Pin 37 – Power steering switch
  • Pin 38 – MFI relay (power supply)
  • Pin 39 – VICS (Closed) (NA)
  • Pin 40 – VICS (Opened) (NA)
  • Pin 41 – VICS position sensor No. 1 (NA)
  • Pin 42 –
  • Pin 43 –
  • Pin 44 –
  • Pin 45 – AC Switch 1
  • Pin 46 –

C-90

  • Pin 51 –
  • Pin 52 – Ignition Timing Terminal
  • Pin 53 –
  • Pin 54 –
  • Pin 55 –
  • Pin 56 – Data link connector
  • Pin 57 –
  • Pin 58 – Engine Ignition Signal
  • Pin 59 – AC Switch 2 (AC clutch slip)
  • Pin 60 – Right bank o2 sensor(rear)
  • Pin 61 –
  • Pin 62 – Data link connector

C-54

  • Pin 71 – Ignition Switch – ST
  • Pin 72 – Intake Air Temperature sensor
  • Pin 73 – EGR Temperature Sensor
  • Pin 74 – O2 Heater
  • Pin 75 – O2 Sensor (Front) right
  • Pin 76 – O2 Sensor (Front)
  • Pin 77 – O2 Heater
  • Pin 78 – Knock Sensor
  • Pin 79 – Left bank o2 sensor (cali)
  • Pin 80 – Backup Power Supply
  • Pin 81 – Sensor Impressed Voltage
  • Pin 82 – Ignition Switch IG
  • Pin 83 – Water Temperature Sensor
  • Pin 84 – TPS Sensor
  • Pin 85 – Barometric Pressure Sensor
  • Pin 86 – Speed Sensor
  • Pin 87 – Closed Throttle Position Sensor (idle switch)
  • Pin 88 – CAM Sensor
  • Pin 89 – CRANK Sensor
  • Pin 90 – Volume air flow sensor
  • Pin 91 – [ Park/Neutral Switch A/T) ]
  • Pin 92 – Ground (Sensor)

http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js
http://jquery.rwdImageMaps.min.js
//

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”

Obtener recursos de un Agente java en Lotus Notes/Domino Designer

Al estar desarrollando un Agente en Lotus Notes, usando el IDE interno (basado en eclipse), nos encontramos que la estructura del directorio de salida del agente está predefinida, en tiempo de compilación/carga se copian los recursos que están en “Res” a lo que sería la carpeta “bin” (si estuviéramos mirando el proyecto en eclipse), así que podemos obtener un flujo de entrada para los recursos y después usar algún cargador de clase para obtener los datos, por ejemplo:

InputStream res = this.getClass().getResourceAsStream("/recurso.ext");

Imagen

Basado en:

http://stackoverflow.com/questions/9941182/unable-to-access-resource-file-in-lotus-notes-java-agent

MMS Settings for AT&T on android Phones

APN: WAP.CINGULAR
Proxy: wireless.cingular.com
Port: 80
Username: WAP@CINGULAR.GPRS.COM
Password: cingular1
Server: <NOTHINGHERE>

MMSC: http://mmsc.cingular.com

MMS proxy: wireless.cingular.com

MMS port: 80

MCC:310

MNC: 410
Authentication type: None
APN type: default,mms,supl
APN protocol: IPv4

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)

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.

Peña Nieto, ¿mentiroso? (Blog del Universal, Mario Campos)

Peña Nieto, ¿mentiroso?
11-abril-2012
           

 
   

“No dudaremos en realizar una campaña de contraste”. Así lo anunció hace un par de días Josefina Vázquez Mota y ahora ya sabemos a qué se refería. Quien lo dude que mire el nuevo spot del PAN – que saldrá en unos días pero que ya comenzó a circular – en el que acusa de mentiroso al candidato del PRI y le reprocha no haber cumplido con uno de los compromisos firmados como gobernador del Estado de México El nuevo tono de los mensajes de inmediato ha dado de qué hablar y fue nota desde la tarde de ayer en los portales de noticias.

Para algunos se trata del inicio de lo que llaman las campañas negativas. Incluso algunos advierten en este tipo de propaganda un riesgo para el país ante el tema de la polarización que podrían implicar. Por lo pronto ayer el mismo PRI ya descalificó ese mensaje. En lo personal, me parece sano que suba el tono de confrontación en este proceso.

Porque hasta ahora hemos tenido campañas descafeinadas, lights. Como rounds de sombra en los que se tiran los golpes pero no se pegan. Y en esta dinámica no gana nadie, salvo el que lleva ventaja en la contienda, en este caso Peña Nieto, que podría llegar caminando, en gallo gallina si quisiera, a la elección del primero de julio a menos que sus rivales hagan algo.

Ya lo he señalado antes en este blog: Peña siendo el candidato de la oposición, juega como el campeón. Tiene una amplia ventaja y está haciendo una campaña buena, que sin ser espectacular le permite administrar su ventaja. Mientras, López Obrador y Vazquez Mota han sido incapaces de poner en riesgo todavía su triunfo. Es claro que con lo que han venido haciendo hasta ahora no podrán cambiar las preferencias en menos de 90 días.

¿Pero es sana una contienda como la que ahora plantea el PAN? Depende. Si en el camino mienten, manipulan la información o difaman, no sólo deberían ser castigados por el electorado sino sancionados por la autoridad electoral. La calumnia nunca es buena, no abona en nada. Las campañas de contraste tampoco sirven cuando se vuelven guerras sucias y caen, como ya hemos visto, en la ilegalidad. En llamada grabadas ilegalmente, en fotos manipuladas. Pero si el objetivo es poner en duda la propaganda del rival, confrontar cifras, ideas, señalar faltas y mentiras concretas de los adversarios, entonces me parece que estaríamos ante un hecho positivo.

Si en este caso la información del PAN es verdadera, me parece una campaña válida en tanto que el candidato del PRI ha hecho de su palabra cumplida una de sus principales banderas de campaña.

La ventaja de este debate es que no se trata de un acto de fe. Las obras están o no están hechas. Los compromisos se cumplieron o no. No debería estar sujeto a la opinión de los actores. Unos dirán que sí, otros que no. Ahí los medios podremos jugar un papel importante si en vez de ser sólo los canales para el intercambio de mensajes nos damos a la tarea de verificar quién dice la verdad y quién miente.

En todo caso las campañas ya apuntaban en ese sentido. Los spots del Movimiento Progresista hablando de las décadas de corrupción y de los doce años de transición fallida están en la misma lógica. Al país en su conjunto le ayudan más unas campañas de debate en serio – con argumentos, no con adjetivos – que un mero desfile de spots que dejan indiferentes a todos.

Sí, queremos propuestas, sí queremos saber qué harían con los problemas del país pero también queremos saber de qué están hechos, que muestren carácter, capacidad de debate, argumentos para defender sus logros. Esperar a los dos debates para que esto ocurra es resignarnos a unas semanas de mensajes irrelevantes.

Veamos qué trae la nueva temporada de spots. Por lo pronto, parece que algunos quieren subirle el nivel a la flama.

[ACTUALIZACION de las 8:30: Sólo para confirmar el nuevo tono de contraste y de mayor conflicto, el PRI ayer acusó de mentirosa a Josefina Vázquez Mota por las cifras de piso firme aplicados a su paso por la Secretaría de Desarrollo Social]

Twitter.com/mariocampos

Facebook.com/MarioCamposWeb

Youtube.com/Macamposc

Fuente original:
http://blogs.eluniversal.com.mx/weblogs_detalle16104.html

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;
}