Quantex GmbH
Votre région : Europe

Guide ELM327 pour les développeurs

Qu'est-ce que ELM327 ?

ELM327 est un protocole d'échange textuel basé sur les commandes AT, développé à l'origine pour l'interpréteur OBD du même nom de la société ELM Electronics. Grâce à sa simplicité, il est devenu le standard de facto pour le diagnostic OBD-II et est pris en charge par la grande majorité des applications et bibliothèques de diagnostic.

L'adaptateur ScanDoc implémente ELM327 v2.3 avec un jeu de commandes étendu, comprenant la prise en charge de DoIP (Diagnostics over IP) pour le diagnostic Ethernet des véhicules modernes.

Principe de fonctionnement

L'échange de données s'effectue via une interface série (WLAN, BLE ou USB). Les commandes sont envoyées sous forme de texte ASCII et se terminent par un caractère de retour chariot (CR, 0x0D). L'adaptateur répond par un résultat, suivi du caractère d'invite >.

Il existe deux types de commandes :


Exemple d'échange : BMW (adressage CAN étendu)

Les véhicules BMW utilisent l'adressage CAN étendu (CAN Extended Addressing), dans lequel le premier octet de données de la trame CAN contient l'adresse de l'ECU cible. Vous trouverez ci-dessous un exemple réel de session de diagnostic.

// --- Initialisation de l'adaptateur ---

>ATZ                        // Réinitialisation complète de l'adaptateur
ELM327 v2.3

>ATE0                       // Désactiver l'écho
OK
>ATS0                       // Désactiver les espaces dans les réponses
OK
>ATH1                       // Activer les en-têtes dans les réponses
OK
>ATL0                       // Désactiver le saut de ligne
OK
>ATAL                       // Autoriser les messages longs (>7 octets)
OK
>ATAT0                      // Désactiver la synchronisation adaptative
OK
>ATSTff                     // Délai d'attente maximal (FF × 4 ms ≈ 1 s)
OK

// --- Configuration du protocole CAN pour BMW ---

>ATPBC101                   // Protocole B : C1 = ID 11 bits + ISO 15765, 01 = 500 kBaud
OK
>ATSPB                      // Sélectionner le protocole B (USER1 CAN)
OK
>ATBI                       // Contourner l'initialisation (BMW n'utilise pas l'initiation OBD standard)
OK
>ATSH6F1                    // CAN ID d'envoi = 0x6F1 (adresse du testeur BMW)
OK

// --- Flow Control et adressage étendu ---

>ATFCSH6F1                  // En-tête Flow Control = 0x6F1
OK
>ATFCSD4030FF32             // Données FC : 40=adresse ECU, 30=CTS, FF=sans limite, 32=50 ms
OK
>ATFCSM1                    // Mode FC = 1 (entièrement défini par l'utilisateur)
OK
>ATCRA640                   // Recevoir les réponses avec CAN ID = 0x640
OK
>ATCEA40                    // Adresse CAN étendue = 0x40 (adresse ECU)
OK

// --- Requête à l'ECU à l'adresse 0x40 — pas de réponse ---

>1A80                       // Service 0x1A (Read ECU Identification), paramètre 0x80
NO DATA
>22F150                     // UDS : service 0x22 (ReadDataByIdentifier), DID=F150
NO DATA

// --- Passage à l'ECU à l'adresse 0x10 ---

>ATFCSD1030FF32             // Données FC : adresse ECU = 0x10
OK
>ATFCSM1                    // Mode FC = 1
OK
>ATCRA610                   // Recevoir les réponses avec CAN ID = 0x610
OK
>ATCEA10                    // Adresse CAN étendue = 0x10
OK

// --- Réponse correcte ---

>22F150                     // UDS : ReadDataByIdentifier, DID=F150
610F10662F1500F25F0         // 610=CAN ID, F1=testeur, 06=longueur, 62=réponse, F150=DID, 0F25F0=données

Sommaire


Commandes générales

Commande Description
AT <CR> répéter la dernière commande
L'envoi d'un unique caractère de retour chariot fait répéter à ELM327 la dernière commande exécutée. On l'utilise normalement lorsqu'on souhaite recevoir des mises à jour de valeurs à la vitesse maximale possible — par exemple, vous pouvez envoyer 01 0C pour obtenir le régime moteur, puis n'envoyer que le caractère de retour chariot chaque fois que vous voulez recevoir une mise à jour.
AT AL Autoriser les messages longs
Les protocoles OBDII standard limitent à sept le nombre d'octets de données dans un message, ce que fait normalement aussi ELM327 (à l'envoi comme à la réception). Si AL est sélectionné, ELM327 autorisera l'envoi long (huit octets de données) et la réception (quantité illimitée). Par défaut, AL est désactivé (et NL est sélectionné). Pour envoyer des messages CAN de 8 octets, ELM327 ne nécessite pas de modifier AL, mais vous devez savoir que si vous fournissez 8 octets de données CAN avec l'adressage CAN étendu activé ou avec le formatage ISO 15765 normal, les octets de données peuvent être perdus. Cela tient au fait qu'un message CAN n'est capable de transmettre que 8 octets de données, de sorte que s'il faut ajouter une adresse étendue ou un octet PCI, moins d'octets de données peuvent être envoyés.
AT AMC display Activity Monitor Count
Le moniteur d'activité utilise un compteur pour déterminer le degré d'activité des entrées OBD d'ELM327. Chaque fois qu'une activité est détectée, ce compteur est remis à zéro, et s'il n'y a pas d'activité, le compteur s'incrémente (toutes les 0,655 seconde). Ce compteur représente le temps écoulé depuis la dernière détection d'activité et peut être utile lors de l'écriture de votre propre logique fondée sur l'activité OBD. Le compteur ne s'incrémente pas au-delà de FF (la logique interne l'arrête à cette valeur) et reste à 00 pendant la surveillance.
AT AMT hh régler le délai d'attente Act Mon Timeout sur hh
ELM327 peut passer en mode basse consommation (« veille ») si, pendant une période donnée, aucune activité OBD n'est détectée. Le réglage de cette période s'effectue soit par le bit 4 de PP 0F, soit par la valeur AMT hh. Si la valeur AMT hh est différente de zéro, le temps avant le déclenchement du signal d'alarme sera de (hh+1) x 0,65536 seconde. Si la valeur est réglée sur 00, toutes les sorties basse consommation du moniteur d'activité sont bloquées (voir la Figure 6 à la page 68). Pour plus d'informations sur le moniteur d'activité, consultez la section « Gestion de l'alimentation ».
AT AT0, AT1 et AT2 Contrôle adaptatif du temps
À la réception d'une réponse du véhicule, ELM327 attend traditionnellement la réponse pendant le temps fixé par le paramètre AT ST hh. Pour garantir que le circuit fonctionne avec une large gamme de véhicules, la valeur par défaut a été fixée de manière prudente (lente). Malgré la possibilité de réglage, beaucoup de personnes ne disposaient pas de l'équipement ou de l'expérience pour déterminer la meilleure valeur. La fonction Adaptive Timing règle automatiquement la valeur du délai d'attente en fonction du temps de réaction réel de votre véhicule. Lorsque les conditions changent, comme la charge du bus, etc., l'algorithme apprend et effectue l'ajustement correspondant. Notez qu'il utilise toujours votre valeur AT ST hh comme maximum et ne choisira jamais une valeur plus longue. Il existe trois réglages de synchronisation adaptative utilisables. Par défaut, l'option Adaptive Timing option 1 (AT1) est activée, et c'est le réglage recommandé.
AT0 sert à désactiver la synchronisation adaptative (de sorte que le délai d'attente est toujours égal au temps fixé par AT ST), et AT2 est une version plus agressive d'AT1 (l'effet est plus visible sur les connexions très lentes — vous pourriez ne pas remarquer une grande différence avec des systèmes OBD plus rapides). Le protocole J1939 ne prend pas en charge la synchronisation adaptative — il utilise des délais d'attente fixes définis par la norme.
AT BD effectuer un vidage du tampon OBD
Tous les messages envoyés et reçus par ELM327 sont stockés temporairement dans un ensemble de douze cellules de mémoire appelé tampon OBD. Il est parfois utile d'examiner le contenu de ce tampon, peut-être pour découvrir la cause d'une initiation échouée, voir les octets d'en-tête du dernier message ou simplement pour apprendre la structure des messages OBD. À tout moment, vous pouvez demander que le contenu de ce tampon soit « vidé » (c'est-à-dire imprimé) — lorsque vous le faites, ELM327 envoie un octet de longueur (représentant la longueur du message dans le tampon), suivi du contenu des douze positions du tampon OBD. Par exemple, voici un « vidage » :

>AT BD 05 C1 33 F1 3E 23 C4 00 00 10 F8 00 00


La valeur 05 est l'octet de longueur — il nous indique que seuls les 5 premiers octets sont fiables (c'est-à-dire C1 33 F1 3E et 23). Les octets restants proviennent probablement d'une opération antérieure. L'octet de longueur représente toujours le nombre réel d'octets reçus, qu'ils aient tenu dans le tampon OBD ou non. Cela peut être utile lors de l'examen de longs flux de données (avec AT AL), car il représente le nombre réel d'octets reçus, mod 256. Notez que seuls les douze premiers octets reçus sont conservés dans le tampon.
AT BI Contournement de la séquence d'initialisation
Cette commande doit être utilisée avec précaution. Elle permet d'activer le protocole OBD sans nécessiter d'initialisation ni de négociation (handshake). Le processus d'initialisation sert normalement à vérifier la fiabilité du protocole, et sans lui les résultats peuvent être difficiles à prévoir. Elle ne doit pas être utilisée dans les applications OBD courantes et a été fournie uniquement pour créer des simulateurs d'ECU et des démonstrateurs de formation.
AT BRD hh try Baud Rate Divisor hh
Cette commande sert à modifier le diviseur du débit de transmission RS232 vers la valeur hexadécimale indiquée dans hh, sous le contrôle de l'ordinateur. Elle n'est pas destinée aux expérimentations aléatoires — si vous voulez changer le débit de transmission depuis un programme de terminal, vous devez utiliser PP 0C. Comme certains circuits d'interface ne peuvent pas fonctionner à des débits de transmission élevés, la commande BRD utilise une séquence d'envois et de réceptions pour tester l'interface, de sorte que tout échec provoque le retour au débit de transmission précédent. Cela permet de tester plusieurs débits de transmission et d'en choisir un fiable pour la communication. L'ensemble du processus est décrit en détail dans la section « Utilisation de débits de transmission RS232 plus élevés » à la page 53. En cas de succès, le débit de transmission réel (en kbit/s) sera égal à 4000 divisé par le diviseur (hh). La valeur 00 n'est pas fiable et n'est pas acceptée par la commande BRD.
AT BRT hh régler le délai d'attente du débit de transmission sur hh
Cette commande permet de modifier le délai d'attente utilisé pour la négociation du débit de transmission (c'est-à-dire AT BRD). Le retard est de hh x 5,0 ms, où hh est une valeur hexadécimale. Par défaut, ce réglage a la valeur 0F, qui fournit 75 ms. Notez que la valeur 00 ne donne pas 0 ms — elle fournit le temps maximal de 256 x 5,0 ms, soit 1,28 seconde.
AT D tout régler aux valeurs par défaut
Cette commande sert à régler les paramètres par défaut (ou d'usine), comme lors de la première mise sous tension. Le dernier protocole enregistré sera récupéré de la mémoire et deviendra le réglage actuel (en fermant éventuellement d'autres protocoles actifs). Tout réglage effectué par l'utilisateur pour des en-têtes, filtres ou masques personnalisés sera restauré aux valeurs par défaut, et tous les réglages du temporisateur seront également restaurés aux valeurs par défaut.
AT D0 et D1 affichage du DLC désactivé ou activé
La norme CAN (ISO 15765-4) OBD exige que tous les messages se composent de 8 octets de données, c'est pourquoi l'affichage du nombre d'octets de données (DLC) n'est normalement pas très utile. Cependant, lors de l'expérimentation avec d'autres protocoles, il peut être utile de pouvoir voir la longueur des données. Les commandes D0 et D1 contrôlent l'affichage du chiffre DLC (pour voir ce chiffre, les en-têtes doivent être activés). Lorsqu'il est affiché, un unique chiffre DLC apparaît entre les octets d'ID (en-tête) et les octets de données. Le réglage par défaut est déterminé par PP 29.
AT DM1 surveiller les DM1s
Le protocole SAE J1939 transmet périodiquement les codes de panne sous forme de messages Diagnostic Mode 1 (DM1). Cette commande configure ELM327 pour la surveillance constante de ce type de messages, en suivant les protocoles de transport multisegment si nécessaire. Notez que pour obtenir un résultat similaire on peut utiliser une combinaison de masques et de filtres, mais ceux-ci ne permettront pas de détecter les messages multilignes. La commande DM1 ajoute la logique supplémentaire nécessaire aux messages multilignes. Cette commande n'est disponible que si un protocole CAN (A, B ou C) a été sélectionné pour le formatage J1939. Toute tentative de l'exécuter dans d'autres conditions renvoie une erreur.
AT DP Décrire le protocole actuel
ELM327 détecte automatiquement le protocole OBD du véhicule, mais ne le signale normalement pas. La commande DP est un moyen pratique de savoir à quel protocole le circuit est configuré à ce moment-là (même s'il n'est pas encore connecté au véhicule). Si un protocole a été sélectionné ainsi que l'option automatique, AT DP affichera le mot 'AUTO' avant la description du protocole. Notez que la description indique les noms réels des protocoles, et non les numéros utilisés par les commandes de configuration des protocoles.
AT DPN "Décrire le protocole par numéro"
Cette commande est similaire à la commande DP, mais renvoie un numéro indiquant le protocole actuel. Si la fonction de recherche automatique est également activée, le numéro sera précédé de la lettre 'A'. C'est le même numéro que celui utilisé dans les commandes « Établir le protocole » et « Tester le protocole ».
AT E0 et E1 "Écho" désactivé ou activé
Ces commandes contrôlent si les caractères reçus via le port RS232 seront renvoyés par écho (à nouveau) à l'ordinateur principal. L'écho des caractères peut servir à confirmer que les caractères envoyés à ELM327 ont été reçus correctement. Par défaut, la valeur E1 est établie (c'est-à-dire écho activé).
AT FE Forget Events
Il existe certains événements qui peuvent modifier le comportement d'ELM327 à partir de ce moment. L'un d'eux est l'apparition d'une erreur fatale CAN (ERR94), qui bloque la recherche ultérieure par protocoles CAN si le bit 5 de PP 2A est égal à '1'. Normalement, cet événement affecte toutes les recherches jusqu'à la prochaine mise hors et sous tension, mais il peut être « oublié » par logiciel, au moyen de la commande AT FE.
Un autre exemple est l'événement 'LV RESET', qui empêche la recherche par protocoles CAN si le bit 4 de PP 2A est égal à '1'. Cet événement peut également être oublié au moyen de la commande AT FE.
AT H0 et H1 "En-têtes" désactivés ou activés
Ces commandes contrôlent l'affichage ou non des octets supplémentaires (d'en-tête) d'information dans les réponses du véhicule. ELM327 ne les affiche normalement pas, mais ils peuvent présenter un intérêt (surtout si vous avez reçu plusieurs réponses et que vous voulez déterminer de quels modules elles proviennent). Activer les en-têtes (avec AT H1) affiche en réalité bien plus que les seuls octets d'en-tête — vous verrez le message complet transmis, y compris les chiffres de contrôle et les octets PCI, ainsi que, éventuellement, le code de longueur de données CAN (DLC), s'il a été activé avec PP 29 ou AT D1. La version actuelle de ce circuit n'affiche ni le code CAN CRC ni les octets spéciaux J1850 IFR (que certains protocoles utilisent pour confirmer la réception du message).
AT I Présentez-vous
Cette commande fait s'identifier la puce en imprimant la chaîne d'identifiant de produit (actuellement 'ELM327 v2.3'). Le logiciel peut l'utiliser pour déterminer avec quel circuit intégré il communique exactement, sans avoir besoin de redémarrer la puce.
AT IA Le protocole est-il actif ?
Cette commande permet de savoir si ELM327 considère que le protocole actuel est actif ou non. En réponse à la requête, il répondra Y ou N, c'est-à-dire « Oui » ou « Non ».
Pour qu'ELM327 réponde à certaines commandes, un protocole « actif » est requis. Un protocole est considéré comme actif s'il a reçu des réponses correctes à une requête standard ou à une négociation d'octets, ou si l'utilisateur a contourné ce processus au moyen de la commande AT BI. Notez qu'ELM327 marque le protocole comme actif initialement, mais ne le surveille pas ensuite, de sorte qu'il ne sait pas si l'ECU a cessé de répondre aux requêtes à un moment futur (c'est-à-dire si le protocole n'est plus actif). Votre logiciel peut avoir besoin d'envoyer périodiquement une requête standard (de préférence 01 00) pour déterminer si l'ECU est réellement toujours active.
AT IB10 régler le débit de transmission ISO sur 10400
Cette commande restaure le débit de transmission ISO 9141-2 et ISO 14230-4 (protocoles 3, 4 et 5) à la valeur par défaut de 10400. Notez que la commande IB10 peut être utilisée à tout moment (c'est-à-dire « à la volée »).
AT IB12 régler le débit de transmission ISO sur 12500
Cette commande sert à modifier le débit de transmission utilisé pour les protocoles ISO 9141-2 et ISO 14230-4 (numéros 3, 4 et 5) à 12500 bauds. Notez que la commande IB12 peut être utilisée à tout moment (c'est-à-dire « à la volée »).
AT IB15 régler le débit de transmission ISO sur 15625 bauds
Cette commande sert à modifier le débit de transmission utilisé pour les protocoles ISO 9141-2 et ISO 14230-4 (numéros 3, 4 et 5) à 15625 bauds. Notez que la commande IB15 peut être utilisée à tout moment (c'est-à-dire « à la volée »).
AT IB48 régler le débit de transmission ISO sur 4800 bauds
Cette commande sert à modifier le débit de transmission utilisé pour les protocoles ISO 9141-2 et ISO 14230-4 (numéros 3, 4 et 5) à 4800 bauds. Notez que la commande IB48 peut être utilisée à tout moment (c'est-à-dire « à la volée »).
AT IB96 régler le débit de transmission ISO sur 9600 bauds
Cette commande sert à modifier le débit de transmission utilisé pour les protocoles ISO 9141-2 et ISO 14230-4 (numéros 3, 4 et 5) à 9600 bauds. Notez que la commande IB96 peut être utilisée à tout moment (c'est-à-dire « à la volée »).
AT IFR0, IFR1 et IFR2 Contrôle des IFR - sans surveillance
Le protocole SAE J1850 permet d'envoyer un octet In-Frame Response (IFR) après chaque message, normalement pour confirmer la réception correcte de ce message. ELM327 génère et envoie automatiquement cet octet pour vous, à condition que vous ne soyez pas en surveillance (par défaut, ELM327 reste toujours silencieux pendant la surveillance). Vous pouvez modifier ce comportement au moyen de la commande IFR.
La commande IFR0 désactive l'envoi de tous les IFR, quel que soit le message requis. La commande IFR2 agit à l'inverse — en réponse à un message, un octet IFR sera toujours envoyé, même s'il contient des erreurs. Le réglage IFR1 fait qu'un IFR est envoyé si le message a été reçu correctement et si la valeur du bit 'K' du premier octet d'en-tête (aussi bien pour PWM que pour VPW) le permet. Par défaut, le réglage IFR1 est utilisé.
AT IFR4, IFR5 et IFR6 Contrôle des IFR - à tout moment
Bien que les puces ELM327 originales n'envoyaient jamais d'IFR pendant la surveillance, il existe certaines situations de surveillance dans lesquelles vous pouvez vouloir envoyer un IFR. Les commandes IFR4, IFR5 et IFR6 permettent de contrôler l'envoi des IFR à tout moment, que la surveillance soit en cours ou non. Elles imitent les commandes IFR0, IFR1 et IFR2 — le réglage IFR4 fait que l'IFR n'est jamais envoyé, IFR5 envoie l'IFR s'il n'y a pas d'erreurs et que le bit 'K' le permet, et le réglage IFR6 force la génération de l'IFR en permanence (même en cas d'erreur).
AT IFR H et IFR S IFR depuis l'en-tête ou la source
La valeur envoyée dans l'octet de réponse J1850 In-Frame Response (IFR) coïncide normalement avec la valeur envoyée dans l'octet d'adresse source (c'est-à-dire le testeur), qui figurait dans l'en-tête de la requête. Cependant, il y a des cas où il est souhaitable d'utiliser une autre valeur, et ce jeu de commandes le permet. Si vous envoyez AT IFR S, ELM327 utilisera la valeur définie comme adresse source (normalement F1, mais elle peut être modifiée avec PP 06 ou AT TA), même si une autre valeur a été envoyée dans l'octet d'en-tête. Ce n'est pas quelque chose qui est normalement requis, et il faut faire preuve de prudence. AT IFR H restaure l'envoi des octets IFR à ceux indiqués dans l'En-tête, et c'est le réglage par défaut.
AT IGN lecture du niveau du signal d'entrée IgnMon
Cette commande lit le niveau du signal sur la borne 15. On suppose que le niveau logique est lié à la tension d'allumage, de sorte que si l'entrée est à un niveau haut, la réponse sera 'ON', et à un niveau bas - 'OFF'. Cette fonction est surtout utile si vous voulez réaliser des fonctions de gestion de l'alimentation avec votre propre logiciel. Si vous désactivez la réaction automatique Low Power au niveau bas sur cette borne (en réglant le bit 2 de PP 0E sur 0), la borne 15 fonctionnera comme entrée RTS. Un niveau bas sur cette entrée n'éteindra pas l'alimentation, mais interrompra toute activité OBD en cours. Tout ce que vous avez à faire est de détecter le message 'STOPPED', qui est envoyé lors de l'interruption du fonctionnement d'ELM327, puis de vérifier le niveau de la borne 15 avec AT IGN. S'il s'avère qu'il est éteint, vous pouvez réaliser vous-même un arrêt ordonné.
AT IIA hh régler l'adresse initiale ISO sur hh
Les normes ISO 9141-2 et ISO 14230-4 stipulent qu'au début d'une session de travail avec l'ECU, la séquence d'initialisation doit être dirigée vers une adresse déterminée ($33). Si vous voulez expérimenter en dirigeant la lente séquence à cinq bauds vers une autre adresse, vous pouvez le faire au moyen de cette commande. Par exemple, si vous voulez que l'initiation se fasse avec l'ECU à l'adresse $7A, envoyez simplement : >AT IIA 7A, et ELM327 utilisera cette adresse en s'adressant à elle (protocoles 3 ou 4). La valeur complète de huit bits est utilisée telle qu'elle a été saisie - aucune modification ne lui est appliquée (c'est-à-dire qu'aucun bit de parité, etc., n'est ajouté)
. Notez que le réglage de cette valeur n'affecte pas les valeurs des adresses utilisées dans les octets d'en-tête. Lors de la restauration des réglages par défaut ou de la réinitialisation d'ELM327, l'adresse initiale ISO est restaurée à la valeur $33.
AT L0 and L1 Saut de ligne désactivé ou activé
Cette option contrôle l'envoi de caractères de saut de ligne après chaque caractère de retour chariot. Avec AT L1, un saut de ligne sera généré après chaque caractère de retour chariot, et avec AT L0 — désactivé. Normalement, les utilisateurs préfèrent activer cette option lorsqu'ils travaillent avec un programme de terminal et la désactiver lorsqu'ils utilisent une interface propre (les caractères supplémentaires ne font que ralentir l'échange). Le réglage par défaut est déterminé par le niveau de tension de la borne 7 à la mise sous tension (ou à la réinitialisation). Si le niveau est haut — le saut de ligne est activé, sinon — désactivé.
AT LP passer en mode basse consommation
Cette commande fait désactiver à ELM327 tout sauf les « services de base », afin de réduire au minimum la consommation d'énergie. ELM327 répondra « OK » (sans retour chariot), et au bout d'une seconde changera l'état de la sortie PwrCtrl (borne 16) et passera en mode basse consommation (en attente). La puce peut être ramenée en mode normal par un caractère sur l'entrée RS232, par un front montant sur l'entrée IgnMon (borne 15), ainsi que par les méthodes habituelles de réinitialisation (mise hors/sous tension, niveau bas sur la borne 1 ou chute d'alimentation). Pour plus de détails, consultez la section « Gestion de l'alimentation » (page 67).
AT M0 and M1 Mémoire désactivée ou activée
ELM327 possède une mémoire interne non volatile, capable de mémoriser le dernier protocole utilisé même après la mise hors tension. C'est pratique si la puce est souvent utilisée pour un seul protocole — il sera le premier à la prochaine mise sous tension. Pour activer la fonction de mémoire, il faut utiliser la commande AT M1 ou connecter la borne 5 à un niveau logique haut.
Lorsque la fonction de mémoire est activée, chaque fois qu'un protocole OBD valide est détecté, il sera enregistré et deviendra la nouvelle valeur par défaut. Si la fonction de mémoire est désactivée, les protocoles trouvés ne sont pas enregistrés, et ELM327 démarre toujours avec le dernier protocole enregistré. Si ELM327 est utilisé dans un environnement où les protocoles changent fréquemment, il vaut mieux désactiver la mémoire et exécuter AT SP 0. Si, au contraire, vous vous connectez à un seul véhicule, enregistrer son protocole comme valeur par défaut sera le plus raisonnable.
Le réglage par défaut est déterminé par le niveau de tension de la borne 5 à la mise sous tension (ou à la réinitialisation). Niveau haut (VDD) — mémoire activée, bas — désactivée.
AT NL Messages de longueur normale
Cette commande configure ELM327 pour envoyer la quantité normale d'octets de données, telle que prévue par les normes OBD. Elle sert à annuler les modifications effectuées en mode Allow Long (AT AL). Notez qu'ELM327 ne nécessite pas de modifier AL pour permettre la réception de messages de plus grande longueur pour les protocoles KWP. Vous pouvez simplement laisser pour l'IC la valeur NL, établie par défaut, et tous les octets reçus seront affichés.
AT R0 et R1 Réponses désactivées ou activées
Ces commandes contrôlent la réception automatique (et l'affichage) par ELM327 des messages renvoyés par le véhicule. Si les réponses sont désactivées, après l'envoi d'une requête la puce n'attendra pas la réponse du véhicule, mais reviendra immédiatement à l'attente de la commande RS232 suivante (ELM327 n'imprimera rien pour indiquer que l'envoi a réussi, mais vous verrez un message s'il a échoué). R0 peut être utile pour envoyer des commandes « à l'aveugle » lors de l'utilisation de la puce dans des applications réseau non liées à OBD ou lors de la simulation d'une ECU dans un processus de formation. Cependant, il n'est pas recommandé d'utiliser cette option dans les communications OBD normales, car le véhicule peut rencontrer des difficultés s'il attend une confirmation et ne la reçoit pas. Le réglage R0 annule toujours tout « chiffre du nombre de réponses » fourni dans une requête OBD. Par défaut, la valeur R1 est utilisée, soit « réponses activées ».
AT RD Lecture de données de la mémoire utilisateur
La valeur de l'octet enregistré avec la commande SD est récupérée au moyen de cette commande. Il n'y a qu'une seule cellule de mémoire, aucune adresse n'est donc requise.
AT RV Read the input Voltage
Ceci lance la lecture de la tension présente sur la borne 2 et sa conversion en une tension au format décimal. Par défaut, on suppose que l'entrée est connectée à la tension mesurée au travers d'un diviseur de tension de rapport 1:5,7 (par exemple, des résistances de 47KΩ et 10KΩ connectées en série, celle de 10KΩ étant connectée de la borne 2 à Vss), et que l'alimentation d'ELM327 est de 5 V nominaux. Cela permettra de mesurer la tension d'entrée jusqu'à environ 28 V (la tension de la borne 2 ne doit pas dépasser Vdd) avec une précision non étalonnée, généralement de l'ordre de 2 %. Pour des informations sur l'étalonnage, consultez la section « Lecture de la tension de la batterie ».
AT S0 and S1 Impression des espaces désactivée ou activée
Ces commandes contrôlent si des caractères d'espace sont insérés dans les réponses de l'ECU. ELM327 affiche normalement les réponses de l'ECU sous forme de séquence de caractères hex séparés par des espaces (pour plus de commodité de lecture), mais les messages peuvent être transmis bien plus rapidement si l'on supprime chaque troisième octet (l'espace). Bien que cela rende le message moins lisible pour une personne, cela peut accélérer considérablement le traitement des données par l'ordinateur. Par défaut, les espaces sont activés (S1) et les caractères d'espace sont insérés dans chaque réponse.
AT SD hh Enregistrer l'octet de données hh
ELM327 peut enregistrer un octet d'information dans une mémoire non volatile spéciale, qui conserve son contenu même après la mise hors tension. Indiquez simplement l'octet que vous voulez enregistrer, puis récupérez-le avec la commande de lecture de données (AT RD). Cette cellule est idéale pour stocker des réglages utilisateur, des identifiants de dispositifs, des comptages de répétitions ou d'autres informations.
AT WS Redémarrage à chaud
Similaire à la commande AT Z, mais sans test des LED à la mise sous tension. Les utilisateurs peuvent trouver cela pratique pour « repartir de zéro » rapidement sans le retard inutile d'AT Z. Lors de l'utilisation de débits RS232 variables (commandes AT BRD), il est recommandé de réinitialiser la puce avec cette commande, et non avec AT Z, car AT WS ne réinitialise pas le débit RS232.
AT Z réinitialisation complète
Cette commande fait effectuer à la puce une réinitialisation complète, comme si l'alimentation avait été coupée puis rétablie. Tous les réglages reviennent aux valeurs par défaut, et la puce passe à l'état d' attente de caractères sur le bus RS232. Notez que le débit établi avec la commande AT BRD sera perdu, et ELM327 reviendra au réglage de débit par défaut.
AT @1 afficher la description du dispositif
Cette commande affiche la chaîne de description du dispositif. Le texte par défaut est « OBDII to RS232 Interpreter ».
AT @3 cccccccccccc enregistrer l'identifiant du dispositif
Cette commande sert à établir le code d'identifiant du dispositif. Il faut envoyer exactement 12 caractères ; après les avoir écrits en mémoire, on ne peut plus les modifier (la commande @3 ne peut être utilisée qu' une seule fois). Les caractères doivent être imprimables (codes ASCII de 0x21 à 0x5F inclus). Si vous développez un logiciel pour écrire des identifiants, la puce ELM328 peut vous intéresser, car elle permet l'écriture multiple avec la commande @3 (mais ne peut pas envoyer de messages OBD).

Commandes de sélection de protocole

Commande Description
AT PC "Fermeture du protocole"
Il y a des occasions où il est nécessaire d'arrêter (de désactiver) un protocole. Peut-être n'utilisez-vous pas la recherche automatique de protocoles, mais voulez-vous activer et désactiver manuellement les protocoles. Peut-être voulez-vous cesser d'envoyer les messages de maintien (de réveil), ou avez-vous une autre raison. La commande PC est utilisée dans de tels cas pour forcer la fermeture du protocole.
AT SP h Établir le protocole h
Cette commande configure ELM327 pour qu'il travaille avec le protocole indiqué dans « h » et l'enregistre comme nouvelle valeur par défaut. Le protocole sera enregistré indépendamment du réglage AT M0/M1.
ELM327 prend en charge 12 protocoles différents (deux peuvent être définis par l'utilisateur) :
0 — Automatique, 1 — SAE J1850 PWM (41,6 kBaud), 2 — SAE J1850 VPW (10,4 kBaud), 3 — ISO 9141-2 (5 bauds, 10,4 kBaud), 4 — ISO 14230-4 KWP (5 bauds, 10,4 kBaud), 5 — ISO 14230-4 KWP (init. rapide, 10,4 kBaud), 6 — ISO 15765-4 CAN (11 bits, 500 kBaud), 7 — ISO 15765-4 CAN (29 bits, 500 kBaud), 8 — ISO 15765-4 CAN (11 bits, 250 kBaud), 9 — ISO 15765-4 CAN (29 bits, 250 kBaud), A — SAE J1939 CAN (29 bits, 250* kBaud), B — USER1 CAN (11* bits, 125* kBaud), C — USER2 CAN (11* bits, 50* kBaud). (* — configurables par l'utilisateur)
Le protocole 0 indique à ELM327 que le protocole du véhicule est inconnu et qu'il faut effectuer une recherche. La commande AT SP 0 établit le protocole à 0, mais n'écrit pas dans l'EEPROM (pour accélérer). Si un protocole concret est sélectionné (par exemple, AT SP 3), il deviendra la valeur par défaut et sera le seul utilisé.
AT SP 00 effacer le protocole enregistré
Pour accélérer la détection du protocole, la commande SP 0 établit le mode automatique, mais n'effectue pas l'écriture (coûteuse en temps) dans l'EEPROM. Cela réduit l'usure de l'EEPROM. Cependant, il est parfois nécessaire d'écrire la valeur 0 dans le protocole enregistré — c'est à cela que sert la commande SP 00.
AT SP Ah Établir le protocole h avec recherche automatique
Cette variante de la commande SP permet de choisir le protocole initial (par défaut), tout en conservant la possibilité de recherche automatique d'un protocole valide en cas d'échec de connexion. Par exemple, si votre véhicule utilise ISO 9141-2, mais que vous voulez parfois utiliser ELM327 avec d'autres véhicules, vous pouvez utiliser AT SP A3 — le premier protocole sera le 3, mais en cas d'échec une recherche automatique sera effectuée. N'oubliez pas de désactiver la fonction de mémoire, sinon chaque nouveau protocole détecté deviendra la valeur par défaut.
SP Ah enregistre l'information du protocole, même si la mémoire est désactivée (mais SP A0 et SP 0A n'écrivent pas dans l'EEPROM). La lettre « A » peut figurer avant ou après h, de sorte qu'AT SP A3 et AT SP 3A sont équivalents.
AT SS utiliser la séquence de recherche standard
La norme SAE J1978 définit l'ordre de recherche des protocoles que doivent utiliser les instruments de diagnostic. Il correspond à la numérotation des protocoles d'ELM327. Pour accélérer la recherche, ELM327 ne suit normalement pas cet ordre, mais il le suivra si vous donnez la commande AT SS.
AT TP h Tester le protocole h
Cette commande est identique à SP, à la différence que le protocole sélectionné n'est pas enregistré immédiatement dans la mémoire EEPROM interne, c'est-à-dire qu'elle ne change pas le réglage par défaut. Notez : si la fonction de mémoire est activée (AT M1) et que le nouveau protocole s'est avéré valide, il sera enregistré en mémoire comme nouvelle valeur par défaut.
AT TP Ah Tester le protocole h avec recherche automatique
Cette commande est similaire à AT TP, mais si le protocole sélectionné ne peut pas être initialisé, ELM327 parcourt automatiquement les autres protocoles, en essayant de se connecter à l'un d' eux.

Commandes CAN

Commande Description
AT C0 et C1 Confirmation d'envoi CAN désactivée ou activée
ELM327 attendait toujours après l'envoi d'un message CAN pour s'assurer que la transmission des données s'était déroulée correctement. Si ce n'était pas le cas, le message 'CAN ERROR' était renvoyé. Dans le firmware v2.3, vous pouvez désactiver cette confirmation et, éventuellement, revenir à l'état de requête un peu plus rapidement. Cela peut faire gagner le temps d'envoi d'un message (environ 230 µs pour 500 kbit/s), mais alors il n'y aura pas de retour en cas d'envoi incorrect. Nous recommandons de toujours laisser ce paramètre à la valeur par défaut (C1 - Confirmation activée).
AT CAF0 et CAF1 Formatage automatique CAN désactivé ou activé
Ces commandes déterminent si ELM327 vous aidera à formater les données CAN envoyées et reçues. Avec le formatage automatique CAN activé (CAF1), les octets de formatage (PCI) seront générés automatiquement à l'envoi et supprimés à la réception. Cela signifie que vous pouvez continuer à envoyer des requêtes OBD (01 00, etc.) comme d'habitude, sans prêter attention aux octets supplémentaires qu'exigent les systèmes de diagnostic CAN. De plus, avec le formatage activé, tous les octets de données superflus (non utilisés) reçus dans une trame seront supprimés, et les messages avec des octets PCI non autorisés seront ignorés. (Pendant la surveillance, cependant, tous les messages avec des octets PCI non autorisés sont affichés, et le message '
AT CEA désactiver l'adresse CAN étendue
La commande CEA sert à désactiver les fonctions spéciales établies au moyen de la commande CEA hh. Elle restaure également l'adresse établie avec la commande AT CER hh à la valeur par défaut.
AT CEA hh établir l'adresse CAN étendue sur hh
Certains protocoles CAN (non OBD) étendent les champs d'adressage en utilisant le premier des huit octets de données comme adresse de destination (récepteur). Cette commande permet à ELM327 d'interagir avec de tels protocoles. L'envoi de la commande CEA hh fait insérer à ELM327 la valeur hh comme premier octet de données dans tous les messages CAN que vous envoyez. Elle ajoute également une autre étape de filtrage des messages reçus, ne laissant passer que ceux qui ont l'adresse du testeur en position du premier octet (en plus de l'exigence que les bits d'ID correspondent aux motifs établis par AT CF et CM, FT ou CRA). La commande AT CEA hh peut être envoyée à tout moment, et les modifications prennent effet immédiatement, ce qui permet de changer l'adresse « à la volée ». L'adressage étendu est traité plus en détail dans la section « Utilisation des adresses CAN étendues » à la page 64. Le mode de fonctionnement CEA est désactivé par défaut et s'active en envoyant la commande CEA avec une adresse de destination. Une fois activé, il peut être désactivé en envoyant la commande AT CEA (sans adresse) ou en restaurant les réglages par défaut de la puce avec AT D, AT Z, etc. Notez que le réglage CEA n'a aucun effet si le formatage J1939 est activé.
AT CER hh établir l'adresse Rx CAN étendue sur hh
Par défaut, ELM327 reçoit les réponses aux requêtes d'adressage CAN étendu qui contiennent l'« adresse du testeur » en position du premier octet de données. La commande CER permet de choisir une autre adresse de réception. Les valeurs établies avec cette commande sont réinitialisées à la valeur par défaut avec la commande AT CEA.
AT CF hhh établir le filtre CAN ID sur hhh
Le filtre CAN fonctionne en combinaison avec le masque CAN pour déterminer quelle information sera acceptée par le récepteur. À la réception de chaque message, les bits CAN ID entrants sont comparés aux bits CAN Filter (si le bit de masque est '1 '). Si tous les bits correspondants coïncident, le message sera accepté et ELM327 le traitera, sinon il sera rejeté. Cette version à trois bits de la commande CAN Filter simplifie un peu l'établissement de filtres dans les systèmes CAN à identifiant de 11 bits. Seuls les 11 bits les plus à droite des nibbles fournis sont utilisés, et le bit le plus significatif est ignoré. Cependant, en réalité les données sont stockées sous forme de quatre octets, et cette commande ajoute des zéros à gauche pour les octets restants. Pour plus d'informations, consultez la (les) commande(s) CM. Notez que les réponses ne seront pas prévisibles si vous utilisez les commandes CRA, CF ou CM avec le protocole SAE J1939 tout en utilisant en même temps la commande MP ou la commande DM1. En fait, nous ne recommandons pas d'utiliser les commandes CRA, CM ou CF dans le protocole J1939 à aucun moment. Si vous avez besoin d'un filtrage supplémentaire dans le protocole J1939, envisagez d'utiliser la commande FT.
AT CF hh hh hh hh établir le filtre CAN ID sur hhhhhhh
Cette commande permet d'établir d'un coup les quatre octets (en réalité 29 bits) du filtre CAN. Les trois bits les plus significatifs seront toujours ignorés et on peut leur attribuer n'importe quelle valeur. Cette commande peut aussi servir à saisir des filtres d'ID de 11 bits, car ils sont stockés aux mêmes endroits à l'intérieur du dispositif (saisir AT CF 00 00 0h hh revient exactement à saisir la commande plus courte AT CF hhh). Notez que les réponses ne seront pas prévisibles si vous utilisez les commandes CRA, CF ou CM avec le protocole SAE J1939 tout en utilisant en même temps la commande MP ou la commande DM1. En fait, nous ne recommandons pas d'utiliser les commandes CRA, CM ou CF dans le protocole J1939 à aucun moment. Si vous avez besoin d'un filtrage supplémentaire dans le protocole J1939, envisagez d'utiliser la commande FT.
AT CFC0 and CFC1 Contrôle de flux CAN désact ou act
Le protocole ISO 15765-4 CAN s'attend à ce qu'un message « Flow Control » soit toujours envoyé en réponse à un message « First Frame », et ELM327 les envoie automatiquement sans intervention de l'utilisateur. Lors de l'expérimentation avec un système autre qu'OBD, il peut être nécessaire de désactiver cette réponse automatique — c'est à cela que sert la commande AT CFC0. À partir du firmware v2.0, ces commandes activent/désactivent aussi l'envoi des messages J1939 TP.CM_CTS en réponse aux requêtes TP.CM_RTS. Pendant la surveillance (AT MA, MR ou MT), les messages Flow Control ne sont jamais envoyés, indépendamment du réglage CFC. Le réglage par défaut est CFC1 (Flow Control activé).
AT CM hhh établir le masque d'identifiant CAN sur hhh
Dans un système CAN, une grande quantité de messages peut être transmise simultanément. Pour limiter la quantité de messages qu'examine ELM327, il faut un système de filtrage des messages voulus parmi tous les autres. À cet effet on utilise un filtre qui fonctionne en combinaison avec un masque. Le masque est un groupe de bits qui indiquent à ELM327 quels bits du filtre sont pertinents et lesquels peuvent être ignorés. La condition 'must match ' est signalée en réglant le bit de masque sur '1 ', et 'don 't care' est signalée en réglant le bit sur '0'. Cette variante à trois chiffres de la commande CM sert à obtenir des valeurs de masque pour les systèmes d'identification de 11 bits (le bit le plus significatif est toujours ignoré). Notez que pour les masques de 29 bits et de 11 bits, un emplacement de stockage commun est utilisé, de sorte que le masque de 11 bits peut être attribué avec la commande suivante (CM hh hh hh hh), si vous voulez saisir davantage. Les valeurs sont alignées à droite, vous devrez donc indiquer cinq zéros à gauche, suivis de trois octets de masque. Notez que les réponses ne seront pas prévisibles si vous utilisez les commandes CRA, CF ou CM avec le protocole SAE J1939 tout en utilisant en même temps la commande MP ou la commande DM1. En fait, nous ne recommandons pas d'utiliser les commandes CRA, CM ou CF dans le protocole J1939 à aucun moment. Si vous avez besoin d'un filtrage supplémentaire dans le protocole J1939, envisagez d'utiliser la commande FT.
AT CM hh hh hh hh établir le masque CAN ID sur hhhhhhhhh
Cette commande sert à attribuer des valeurs de masque pour les systèmes d'identification de 29 bits. Consultez l'explication de la commande CM hhh, car elle est pratiquement identique, à l'exception de la longueur. Notez que les trois bits les plus significatifs que vous indiquez dans le premier chiffre seront ignorés. Notez l'avertissement selon lequel elle ne peut pas être utilisée avec le protocole J1939. Notez que les réponses ne seront pas prévisibles si vous utilisez les commandes CRA, CF ou CM avec le protocole SAE J1939 et utilisez en même temps la commande MP ou la commande DM1. En fait, nous ne recommandons pas d'utiliser les commandes CRA, CM ou CF dans le protocole J1939 à aucun moment. Si vous avez besoin d'un filtrage supplémentaire dans le protocole J1939, envisagez d'utiliser la commande FT.
AT CP hh établir les bits de priorité CAN sur hh
Cette commande offre l'un des moyens d'attribuer les cinq bits les plus significatifs de l'identifiant CAN de 29 bits qui sera utilisé pour envoyer des messages (les 24 bits restants peuvent être établis avec la commande AT SH). De nombreux systèmes utilisent ces bits pour attribuer aux messages une valeur de priorité et pour déterminer le protocole du message. Tout bit fourni au-delà des cinq nécessaires est ignoré et n'est pas conservé par ELM327 (il n'utilise que les cinq bits les moins significatifs de cet octet). Par défaut, pour la valeur CP hh on utilise la valeur hexadécimale 18, qui peut être restaurée à tout moment avec la commande AT D.
AT CRA réinitialisation de CAN Rx Addr
La commande AT CRA sert à restaurer les filtres de réception CAN aux valeurs par défaut. Notez qu'elle n'accepte aucun argument (c'est-à-dire aucune donnée).
AT CRA hhh établir CAN Rx Addr sur hhh
Configurer les masques et les filtres CAN peut parfois s'avérer compliqué, donc si vous voulez recevoir des informations d'une seule adresse (c'est-à-dire d'un unique CAN ID), cette commande peut s'avérer très utile. Par exemple, si vous voulez voir des informations uniquement de l'adresse 7E8, envoyez simplement AT CRA 7E8, et ELM327 effectuera le réglage nécessaire du masque et du filtre. Si vous voulez autoriser la réception d'une plage de valeurs, vous pouvez utiliser la lettre X pour indiquer la condition « indifférent ». C'est-à-dire qu'AT CRA 7EX permettra de laisser passer tous les identifiants commençant par 7E (7E0, 7E1, etc.). Pour une plage d'identifiants plus précise, il peut être nécessaire d'attribuer un masque et un filtre. Pour annuler les modifications effectuées avec la commande CRA, envoyez simplement AT CRA ou AT AR. Notez que les réponses ne seront pas prévisibles si vous utilisez les commandes CRA, CF ou CM avec le protocole SAE J1939 tout en utilisant en même temps la commande MP ou la commande DM1. En fait, nous ne recommandons pas d'utiliser les commandes CRA, CM ou CF à aucun moment lors de l'utilisation du protocole J1939. Si vous avez besoin d'un filtrage supplémentaire dans le protocole J1939, envisagez d'utiliser la commande FT.
AT CRA hhhhhhhh établir CAN Rx Addr sur hhhhhhhh
Cette commande est identique à la précédente, à la différence qu'elle est utilisée avec les identifiants CAN de 29 bits. L'envoi d'AT CRA ou AT AR annulera également toutes les modifications effectuées avec cette commande. Notez que les réponses ne seront pas prévisibles si vous utilisez les commandes CRA, CF ou CM avec le protocole SAE J1939 tout en utilisant en même temps la commande MP ou la commande DM1. En fait, nous ne recommandons pas d'utiliser les commandes CRA, CM ou CF dans le protocole J1939 à aucun moment. Si vous avez besoin d'un filtrage supplémentaire dans le protocole J1939, envisagez d'utiliser la commande FT.
AT CS afficher les compteurs d'état CAN
Le protocole CAN exige de tenir des statistiques sur le nombre d'erreurs de transmission et de réception détectées. En cas de nombre d'erreurs important (en raison d'un problème matériel ou logiciel), le dispositif se désactive pour ne pas affecter les autres données du bus. La commande AT CS permet de voir le nombre d'erreurs de l'émetteur (Tx) et du récepteur (Rx) au format hexadécimal. Si l'émetteur doit être désactivé (compteur >FF), vous verrez 'OFF', et non une valeur de compteur concrète. À partir du firmware v2.2, la réponse CS affichera aussi la fréquence actuelle du signal sur CAN. Une réponse typique peut avoir l'aspect suivant :

``` >AT CS
AT CSM0 et CSM1 Désactivation ou activation de la surveillance silencieuse CAN
ELM327 a été conçu pour être totalement silencieux pendant la surveillance du bus CAN. Grâce à cela, il peut rapporter exactement ce qu'il voit, sans déformer l'information d'aucune manière. Parfois (lors d'essais sur banc ou de la connexion à un port CAN dédié), il peut être nécessaire qu'ELM327 fonctionne de manière non silencieuse (c'est-à-dire qu'il génère des bits ACK, etc.), et c'est précisément à cela que sert la commande CSM. CSM1 l'active, CSM0 la désactive, et la valeur par défaut est déterminée par PP 21. Soyez prudent en expérimentant avec cela. Si vous choisissez un débit de transmission incorrect, puis observez le bus CAN avec la surveillance silencieuse désactivée, vous perturberez le flux de données. Gardez toujours la surveillance silencieuse activée jusqu'à ce que vous soyez sûr d'avoir choisi le bon débit de transmission.
AT CTM1 régler le multiplicateur du temporisateur sur 1
Cette commande fait multiplier tous les délais d'attente établis par AT ST par un facteur de 1. Notez que cela n'affecte actuellement que les protocoles CAN (de 6 à C). Par défaut, la valeur CTM1 est utilisée. CTM5 [ régler le multiplicateur du temporisateur sur 5 ] Cette commande fait multiplier tous les délais d'attente établis par AT ST par un facteur de 5. Notez que cela n'affecte actuellement que les protocoles CAN (de 6 à C). À l'origine, cette commande a été ajoutée (sous le nom JTM5) pour aider à la réception de certains messages J1939. Depuis, nous avons reçu plusieurs demandes pour qu'elle affecte tous les modes CAN, c'est pourquoi nous avons modifié le code JTM5 et ajouté les nouvelles commandes CTM1/CTM5. En utilisant CTM5, nous avertissons que le code Adaptive Timing ne suit pas les changements de réglages, c'est pourquoi nous conseillons de le désactiver (avec AT AT0). Par défaut, ce multiplicateur est désactivé.
AT FC SD 1-5 octets
Avec cette commande, on peut définir les octets de données envoyés dans un message de contrôle de flux CAN. On peut indiquer de un à cinq octets de données, tandis que les autres octets de données du message sont automatiquement réglés sur l'octet de remplissage CAN par défaut, si le protocole l'exige. Les données transmises avec cette commande ne sont utilisées que si les modes de contrôle de flux 1 ou 2 sont activés.
AT FC SH hhh Établir l'en-tête Flow Control
Avec cette commande, on peut établir les octets d'en-tête (ou, plus correctement, le « CAN ID ») utilisés pour les messages de contrôle de flux CAN. Seuls les 11 bits les plus à droite seront utilisés - le bit le plus significatif est toujours supprimé. Cette commande n'affecte que le mode de contrôle de flux 1.
AT FC SH hhhhhhhh Établir l'en-tête Flow Control
Cette commande sert à établir l'en-tête (ou 'CAN-bits pour les réponses Flow Control avec les systèmes CAN ID de 29 bits. Comme 8 nibbles définissent 32 bits, seuls les 29 bits les plus à droite seront utilisés - les trois bits les plus significatifs sont toujours supprimés. Cette commande n'affecte que le mode de contrôle de flux 1.
AT FC SM h Établir le mode Flow Control sur h
Cette commande établit comment ELM327 réagit aux messages First Frame si les réponses automatiques de Flow Control sont activées. La valeur à un seul chiffre peut être '0' (par défaut) pour des réponses entièrement automatiques, '1' pour des réponses entièrement définies par l'utilisateur, ou '2' pour des octets de données définis par l'utilisateur dans la réponse. Notez que les modes FC 1 et 2 ne peuvent être activés que si vous avez défini les octets de données nécessaires et, éventuellement, l'ID. Sinon, vous recevrez une erreur. Vous trouverez plus d'informations et d'exemples dans la section Modification des messages de contrôle de flux (page 62).
AT FT Filtre par émetteur désact
Si un filtre a été établi pour limiter les messages reçus, il peut être désactivé au moyen de la commande AT FT.
AT FT hh Filtre par émetteur = hh
Cette commande fournit un niveau supplémentaire de filtrage des messages reçus. Un message sera accepté si la valeur transmise avec la commande hh coïncide avec la valeur du troisième octet de l'en-tête standard de trois octets ou avec les huit bits les moins significatifs de l'identifiant CAN. C'est un complément à tout autre filtrage fourni par d'autres commandes. Pour plus d'informations, consultez la section « Filtrage par émetteur ».
AT PB xx yy établir les paramètres du protocole B
Cette commande permet de modifier les paramètres du protocole B (USER1) et le débit de transmission sans avoir besoin de modifier les paramètres programmables correspondants (PP 2C et PP 2D). Cela permet de changer plus facilement de protocole pendant un test. Pour utiliser cette fonction, réglez simplement xx sur la valeur de PP 2C, et yy sur la valeur de PP 2D, puis exécutez la commande. Ces valeurs seront utilisées lors de la prochaine initialisation du protocole. Par exemple, pour configurer le protocole B pour une utilisation avec J1939 à 500 kbit/s, exécutez simplement la commande : >AT PB 42 01 Comme autre exemple, supposons que vous vouliez surveiller un système qui utilise du CAN 11 bits à un débit de 33,3 kbit/s. Si aucun formatage spécial n'est requis, cela signifie la valeur 11000000 ou C0 hex pour PP 2C, et 15 décimal ou 0F hexadécimal pour PP 2D. Envoyez simplement ces valeurs à ELM327 avec la commande : >AT PB C0 0F puis lancez la surveillance avec la commande : >AT MA Si vous voyez des erreurs CAN ERROR et que vous vous rendez compte qu'il vous fallait un débit de transmission de 83,3 kbit/s, fermez le protocole et envoyez les nouvelles valeurs : >AT PC OK >AT PB C0 06 OK >AT MA Les valeurs transmises de cette manière n'affectent pas celles stockées dans les paramètres programmables 2C et 2D et sont perdues à la réinitialisation d'ELM327. Si vous voulez que vos réglages soient conservés sur plusieurs cycles d'alimentation, vous pouvez les enregistrer dans les paramètres programmables des protocoles CAN USER1 ou USER2.
AT RTR envoyer un message RTR
Cette commande provoque l'envoi d'un message CAN spécial 'Remote Frame'. Ce type de message ne contient pas d'octets de données et a le bit Remote Transmission Request (RTR) établi. Les en-têtes et les filtres resteront tels qu'ils ont été établis précédemment (c'est-à-dire qu'ELM327 ne fait aucune supposition sur le format que peut avoir la réponse), il peut donc être nécessaire d'ajuster le masque et le filtre. Cette commande doit être utilisée avec un protocole CAN actif (qui envoie et reçoit des messages), car elle ne peut pas lancer une recherche de protocole. Notez que le réglage CAF1 exclut normalement l'affichage de tous les RTR, donc si vous surveillez des messages et voulez voir les RTR, vous devrez désactiver le formatage ou activer les en-têtes.
ELM327 traite le RTR comme tout autre message et attend une réponse du véhicule (à moins qu'AT R0 ne soit sélectionné).
AT SH xyz Établir l'en-tête sur 00 0x yz
La saisie de CAN ID (en-têtes) de 11 bits nécessite normalement d'ajouter des zéros à gauche (par exemple, AT SH 00 07 DF), mais cette commande la simplifie. La commande AT SH xyz prend un argument à trois chiffres, en extrait uniquement les 11 bits de droite, ajoute des zéros à gauche et enregistre le résultat. Par exemple, AT SH 7DF est une commande valide, pratique pour travailler avec les systèmes CAN de 11 bits. En réalité, l'en-tête est enregistré comme 00 07 DF.
AT SH xx yy zz Établir l'en-tête sur xx yy zz
Cette commande permet à l'utilisateur de contrôler manuellement les valeurs des trois octets de l'en-tête du message. Normalement ces octets sont attribués automatiquement, mais il y a des cas où il est souhaitable de les modifier (surtout lors de l'expérimentation avec l'adressage physique).
Il est recommandé d'établir les en-têtes après l'activation du protocole, afin que les messages wakeup, etc., utilisent les valeurs par défaut.
Les octets d'en-tête sont indiqués avec des chiffres hexadécimaux : xx — premier octet (priorité/type), yy — deuxième (récepteur), zz — troisième (émetteur). Ils prennent effet jusqu'au réglage suivant ou à la restauration des valeurs par défaut avec les commandes D, WS ou Z.
Cette commande sert à attribuer tous les octets d'en-tête — J1850, ISO 9141, ISO 14230 ou CAN. Les systèmes CAN utilisent ces trois octets pour remplir les bits 0–23 de l'ID (pour un ID de 29 bits) ou seulement les 11 bits de droite pour un CAN ID de 11 bits. Les 5 bits supplémentaires pour un système de 29 bits sont établis avec la commande AT CP.
AT SH ww xx yy zz Établir l'en-tête sur ww xx yy zz
La version à quatre octets de la commande AT SH permet d'établir le CAN ID complet de 29 bits avec une seule instruction. Cela équivaut à utiliser simultanément AT CP (pour les cinq bits les plus significatifs) et la version à trois octets d'AT SH (pour les trois octets restants).
AT ST hh Établir le délai d'attente sur hh
Après l'envoi d'une requête, ELM327 attend la réponse pendant un temps déterminé, après quoi il peut annoncer que rien n'a été reçu du véhicule, soit « NO DATA ». Le même réglage du temporisateur peut aussi être utilisé après la réception d'une réponse, en attente de l'arrivée d'une autre (mais cela dépend des réglages AT). La commande AT ST permet d'ajuster ce temporisateur par pas de 4 ms (ou 20 ms, si CTM5 a été sélectionné dans le protocole CAN). Si la fonction Adaptive Timing est activée, le temps AT ST établit le temps maximal qui doit être autorisé, même si l'algorithme adaptatif détermine que cette valeur devrait être plus grande. Dans la plupart des cas, il vaut mieux laisser le temps AT ST par défaut et laisser l'algorithme de synchronisation adaptative déterminer quoi utiliser comme délai d'attente. Par défaut, le temporisateur ST est réglé sur 32 (ce qui donne un temps d'environ 200 ms), mais ce réglage par défaut peut être ajusté en modifiant la valeur de PP 03. Notez que la valeur 00 ne donne pas un temps de 0 ms - elle ramène le temporisateur à la valeur par défaut. De plus, pendant la recherche de protocole, un temps minimal établi en interne est utilisé - avec AT ST on peut choisir un temps plus grand, mais pas plus petit.
AT V0 and V1 Longueur de données variable désact ou act
De nombreux protocoles CAN (par exemple, ISO 15765-4) attendent l'envoi de huit octets de données. Les commandes V0 et V1 permettent de remplacer ce comportement (pour tout protocole CAN). Le choix de V1 fait que le protocole CAN actuel envoie des messages de longueur variable, de manière analogue au bit 6 de PP 2C et PP 2E pour les protocoles B et C. La valeur V0 (par défaut) désactive l'envoi forcé de messages de longueur variable, et le format revient aux réglages du protocole.

Commandes ISO (9141 / 14230)

Commande Description
AT FI effectuer une fast Initiation
Dans l'une des versions du protocole Keyword, on utilise pour démarrer l'échange de données la séquence dite « fast Initiation ». Normalement, cette séquence s'exécute lorsqu'il faut envoyer le premier message, et le message est envoyé immédiatement après. Cependant, certaines ECU peuvent nécessiter plus de temps entre ces deux actions, et disposer d'une commande d'initiation distincte permet de contrôler ce temps. Il suffit d'envoyer AT FI, d'attendre un peu, puis d'envoyer le message. Vous devrez peut-être expérimenter pour obtenir la quantité de retard adéquate.
Une autre utilisation de cette commande peut être d'effectuer une fast Initiation pour un protocole de type ISO 9141 (c'est-à-dire 3 - format CARB). Il suffit de suivre les étapes suivantes pour créer une fast Initiation puis de passer au protocole 3 : AT SP 5 AT FI AT SP 3 AT BI Après cela, vous pourrez communiquer avec l'ECU.
Notez que fermer le protocole (c'est-à-dire AT PC) dans le code ci-dessus n'est pas nécessaire, car ELM327 le fait automatiquement lors du changement de protocole. Pour utiliser la commande AT FI, le protocole 5 doit être sélectionné, sinon une erreur se produira.
AT KW afficher les mots-clés
Pendant l'initialisation des protocoles ISO 9141-2 et ISO 14230-4, deux octets spéciaux (mots-clés) sont transmis à ELM327 (leurs valeurs servent à déterminer si ELM327 peut prendre en charge telle ou telle variante du protocole). Si vous voulez connaître la valeur de ces octets, envoyez simplement la commande AT KW.
AT KW0 et KW1 Vérification des mots-clés désactivée ou activée
ELM327 recherche certains octets (appelés mots-clés) que l'ECU doit lui envoyer pendant l'initiation selon ISO 9141-2 et ISO 14230-4. Si les octets ne sont pas trouvés, on considère que l'initiation a échoué (et vous pouvez voir le message 'UNABLE TO CONNECT' ou, éventuellement, 'BUS INIT: ...ERROR'). Cela peut se produire si vous essayez de vous connecter à une ECU non compatible OBD ou, éventuellement, à une ECU ancienne. Si vous voulez expérimenter avec des systèmes non standard, vous devrez peut-être indiquer à ELM327 d'effectuer la séquence d'initiation mais d'ignorer le contenu des octets de mot-clé reçus. Pour cela, envoyez simplement la commande Key Words off :

>AT KW0


Après avoir désactivé la vérification des mots-clés, ELM327 continuera d'exiger deux octets de mots-clés dans la réponse, mais ne regardera pas les valeurs réelles des octets. Il enverra aussi une confirmation à l'ECU et attendra la réponse finale de celle-ci (mais ne s'arrêtera pas et ne signalera pas d'erreur si elle n'est pas reçue). Cela peut vous permettre d'établir une connexion dans une situation autrement « impossible ». Le comportement normal peut être restauré avec AT KW1, qui est le réglage par défaut.
AT SI effectuer une slow Initiation
Les protocoles 3 et 4 utilisent la séquence d'initiation dite à 5 bauds (ou lente) pour démarrer l'échange de données. Normalement, la séquence s'exécute lors de l'envoi du premier message, après quoi le message est envoyé immédiatement. Cependant, certaines ECU peuvent nécessiter plus de temps entre ces actions, et disposer d'une commande d'initiation distincte permet de contrôler ce retard. Il suffit d'envoyer AT SI, d'attendre un peu, puis d'envoyer le message. Vous devrez peut-être expérimenter avec la grandeur du retard. Pour utiliser la commande AT SI, le protocole 3 ou 4 doit être sélectionné, sinon une erreur se produira.
AT SW hh Établir l'intervalle Wakeup sur hh
Après l'établissement de la connexion, certains protocoles requièrent un échange de données périodique toutes les quelques secondes pour que l'ECU maintienne le canal de communication ouvert. Si aucun message n'arrive, l'ECU considère que vous avez terminé votre travail et ferme le canal. ELM327 génère automatiquement des messages périodiques pour maintenir la connexion. Les réponses à ces messages sont ignorées.
(Actuellement, seuls les protocoles 3, 4 et 5 prennent en charge ces messages — rien n'est prévu pour CAN.)
L'intervalle entre les messages Wakeup se règle par pas de 20 ms avec la commande AT SW hh (hh — valeur hex de 00 à FF). Le retard maximal est de ~5 secondes avec FF. Par défaut (92) — retard nominal de 3 secondes.
La valeur 00 arrête les messages périodiques. Après AT SW 00, ils ne peuvent être restaurés qu'en fermant et réinitialisant le protocole.
AT WM 1–6 octets
Cette commande permet de remplacer les réglages des messages Wakeup (parfois appelés « messages périodiques d'inactivité »). Indiquez simplement le message à envoyer (normalement trois octets d'en-tête et de un à trois octets de données), et ELM327 ajoutera une somme de contrôle et les enverra selon le réglage AT SW. Valeurs par défaut : 68 6A F1 01 00 pour ISO 9141 et C1 33 F1 3E pour KWP.

Commandes J1939

Commande Description
AT JE activer le format de données ELM pour J1939
La norme J1939 exige que les requêtes PGN soient envoyées avec l'ordre des octets inversé par rapport à l'ordre standard « de gauche à droite ». Par exemple, pour la requête de température du moteur (PGN 00FEEE), les octets de données sont en fait envoyés dans l'ordre inverse (EE FE 00), et ELM327 s'attend normalement à ce que vous fournissiez les données précisément dans cet ordre.
Lors d'expérimentations, la nécessité constante d'inverser les octets peut prêter à confusion, c'est pourquoi le format ELM a été défini, qui effectue l'inversion pour vous. Lorsque le format J1939 ELM (JE) est activé, le protocole J1939 sélectionné et que vous fournissez trois octets de données, ELM327 changera leur ordre avant de les envoyer à l'ECU. Pour la requête de température du moteur, vous envoyez 00 FE EE (et non EE FE 00). Le format JE est activé par défaut.
AT JHF0 and JHF1 Formatage des en-têtes J1939 désact ou act
Lors de l'impression des réponses, ELM327 formate normalement les bits J1939 ID (d'en-tête) de manière à isoler les bits de priorité, regrouper toute l'information PGN et séparer l'octet d'adresse source. Si vous préférez voir l'information ID comme quatre octets séparés (comme le fait la plupart des programmes J1939), désactivez simplement le formatage avec la commande JHF0. La commande CAF0 a le même effet (et remplace le réglage JHF), mais affecte aussi un autre formatage. Le réglage par défaut est JHF1.
AT JS activer le format de données SAE pour J1939
La commande AT JS désactive la réorganisation automatique des octets effectuée par la commande JE. Si vous voulez envoyer les octets de données à un véhicule J1939 sans aucun changement de l'ordre des octets (c'est-à-dire dans l'ordre indiqué dans les documents SAE), choisissez le format JS. Par exemple, lors de l'envoi de la requête de température du moteur (PGN 00FEEE) avec le format JS, il faut transmettre les octets sous la forme EE FE 00 (ce qu'on appelle aussi l'ordre des octets little-endian). Le format JS est désactivé par défaut.
AT JTM1 régler le multiplicateur du temporisateur J1939 sur 1
Cette commande établit le multiplicateur de temps AT ST sur x1 pour le protocole SAE J1939. À partir du firmware v2.1, cette commande invoque simplement CTM1.
AT JTM5 régler le multiplicateur du temporisateur J1939 sur 5
Cette commande établit le multiplicateur de temps AT ST sur x5 pour le protocole SAE J1939. À partir du firmware v2.1, cette commande invoque simplement CTM5.
AT MP hhhh Surveillance du PGN hhhh
Les commandes AT MA, MR et MT sont très utiles pour surveiller un octet donné de l'en-tête d'un message OBD typique. Cependant, pour le protocole SAE J1939, on requiert souvent la surveillance de numéros de groupes de paramètres (PGN) multioctets, qui peuvent se trouver aussi bien dans l'en-tête que dans les octets de données. La commande MP est une commande spéciale exclusive à J1939, utilisée pour suivre les réponses à la requête d'un PGN concret.
Notez que cette commande ne permet pas de définir les deux premiers chiffres du PGN — ils sont toujours supposés égaux à 00. Par exemple, le PGN DM2 a la valeur 00FECB (voir SAE J1939-73). Pour surveiller DM2, envoyez AT MP FECB.
Cette commande n'est disponible que lors de la sélection d'un protocole CAN (A, B ou C) avec formatage SAE J1939. Dans d'autres conditions, une erreur est renvoyée.
AT MP hhhh n Surveillance du PGN, recevoir n messages
Cette commande est similaire à la précédente, mais ajoute la possibilité de définir la quantité de messages devant être reçus avant qu'ELM327 n'arrête automatiquement la surveillance et n'affiche le caractère d'invite. La valeur « n » est un chiffre hexadécimal.
AT MP hhhhhh Surveillance du PGN hhhhhh
Cette commande est similaire à MP hhhh, mais étend d'un la quantité d'octets fournis, offrant un contrôle total sur la définition du PGN (elle ne fait pas la supposition que le bit Data Page est égal à 0, comme la commande MP hhhh). Cela permet d'utiliser de futures extensions, si des PGN supplémentaires sont définis avec le bit Data Page établi. Notez que dans l'octet supplémentaire, seul le bit Data Page est significatif — les autres bits sont ignorés.
AT MP hhhhhh n Surveillance du PGN, recevoir n messages
Cette commande est similaire à la précédente, mais ajoute la possibilité de définir la quantité de messages devant être reçus avant qu'ELM327 n'arrête automatiquement la surveillance et n'affiche le caractère d'invite. La valeur « n » est un chiffre hexadécimal.

Commandes de surveillance

Commande Description
AT MA Monitor All
Cette commande fait passer ELM327 en mode de surveillance du bus, dans lequel il suit en continu (et affiche) tous les messages qu'il voit sur le bus OBD. C'est un moniteur silencieux, qui n'envoie pas de réponses en trame pour les systèmes J1850, de confirmations pour les systèmes CAN (à moins que vous ne désactiviez le mode silencieux avec CSM0) ni de messages Wakeup (« keep-alive ») pour les protocoles ISO 9141 et ISO 14230. La surveillance se poursuivra jusqu'à ce que vous l'arrêtiez par une activité sur l'entrée RS232 ou sur la borne RTS. Pour arrêter la surveillance, envoyez simplement n'importe quel caractère unique à ELM327, puis attendez la réponse sous la forme du caractère d'invite ('>') ou d'un niveau bas sur la borne Busy. (Mettre l'entrée RTS à un niveau bas interrompra aussi le fonctionnement du dispositif). L'attente de l'invite est nécessaire, car le temps de réponse dépend de ce que faisait la puce au moment de l'interruption. Si, par exemple, elle était au milieu de l'impression d'une ligne, elle la terminera d'abord puis imprimera 'STOPPED', après quoi elle reviendra à l'état de commandes et enverra le caractère d'invite. Si elle attendait simplement une entrée, elle reviendrait beaucoup plus vite. Notez que le caractère qui arrête la surveillance est toujours rejeté et n'affecte pas les commandes suivantes.
Si cette commande est utilisée avec des protocoles CAN, et si le filtre et/ou le masque CAN ont été établis précédemment (avec CF, CM ou CRA), alors la commande MA dépendra de ces réglages. Par exemple, si pour l'adresse de réception la valeur CRA 4B0 a été établie précédemment, la commande MA ne pourra « voir » que les messages avec l'identifiant 4B0. Ce n'est peut-être pas exactement ce dont vous avez besoin - il convient peut-être de réinitialiser d'abord les masques et les filtres (avec AR ou CRA).
Toutes les commandes de surveillance (MA, MR et MT) fonctionnent en fermant le protocole actuel (PC est exécuté), avant de configurer la puce pour la surveillance des données. Lorsque la commande OBD suivante sera transmise, le protocole sera réinitialisé, ce dont vous pouvez voir des messages. De plus, le message 'SEARCHING...' peut apparaître, selon les modifications effectuées pendant la surveillance.
AT MR hh Surveillance par adresse de destinataire hh
Cette commande est similaire à AT MA, mais n'affiche que les messages envoyés à l'adresse hexadécimale hh. Ce sont les messages dans lesquels la valeur hh se trouve dans le deuxième octet de l'en-tête OBD standard de trois octets, dans les bits 8–15 du CAN ID de 29 bits ou dans les bits 8–10 du CAN ID de 11 bits. La surveillance est interrompue par n'importe quel caractère RS232, comme la commande MA.
Notez : si cette commande est utilisée avec des protocoles CAN et qu'un filtre/masque CAN a été établi précédemment (avec les commandes CF, CM ou CRA), la commande MR ne remplacera que les bits correspondants — les autres resteront inchangés. Il convient peut-être de réinitialiser d'abord les masques et les filtres (AT AR). Comme AT MA, cette commande commence par une fermeture interne du protocole.
AT MT hh Surveillance par adresse d'expéditeur hh
Cette commande est similaire à AT MA, mais n'affiche que les messages envoyés par l'émetteur ayant l'adresse hexadécimale hh. Ce sont les messages dans lesquels cette valeur se trouve dans le troisième octet de l'en-tête OBD standard de trois octets ou dans les bits 0–7 du CAN ID. Comme dans les modes MA et MR, la surveillance est interrompue par n'importe quel caractère RS232.
Notez : si un filtre/masque CAN a été établi précédemment, la commande MT ne remplacera que les bits correspondants. Il convient peut-être de réinitialiser d'abord les masques et les filtres (AT AR). Comme AT MA, cette commande commence par une fermeture interne du protocole.

Commandes d'adressage

Commande Description
AT AR Établissement automatique de l'adresse de réception
Les réponses du véhicule seront confirmées et affichées à l'écran d'ELM327 si l'adresse de réception interne coïncide avec l'adresse à laquelle le message est envoyé. En mode de réception automatique, la valeur utilisée pour l'adresse de réception sera choisie en fonction des octets d'en-tête actuels et mise à jour automatiquement lors du changement des octets d'en-tête. La valeur utilisée pour l'adresse de réception dépend de paramètres tels que le contenu du premier octet d'en-tête, ainsi que de l'utilisation, dans le message, d'un adressage physique, d'un adressage fonctionnel, ou de la définition par l'utilisateur d'une valeur avec les commandes SR ou RA. La réception automatique est activée par défaut et n'est pas utilisée par le protocole J1939.
AT RA hh établir l'adresse de réception sur hh
Selon l'application, les utilisateurs peuvent vouloir établir manuellement l'adresse à laquelle ELM327 répondra. Cette commande désactive le mode AR et oblige la puce à n'accepter que les réponses adressées à hh. Soyez prudent avec ce réglage — selon la valeur, vous pouvez accepter (et confirmer avec IFR) un message destiné à un autre module. Pour désactiver le filtrage RA, envoyez AT AR. Cette commande a une utilisation limitée avec CAN, car elle ne suit qu'une partie des bits de l'ID — la commande CRA peut être un meilleur choix. La commande n'affecte pas non plus les adresses J1939. La commande RA est identique à SR et elles peuvent être utilisées indifféremment. L'adressage CAN étendu utilise la valeur établie avec la commande AT TA.
AT SR hh Établir l'adresse de réception sur hh
Selon l'application, les utilisateurs peuvent vouloir établir manuellement l'adresse à laquelle ELM327 répondra. Cette commande désactive le mode AR et oblige la puce à n'accepter que les réponses adressées à hh. Soyez prudent avec ce réglage — selon la valeur, vous pouvez accepter (et confirmer avec IFR) un message destiné à un autre module. Pour désactiver le filtrage RA, envoyez AT AR. Cette commande a une utilisation limitée avec CAN, car elle ne suit qu'une partie des bits de l'ID — la commande CRA peut être un meilleur choix. La commande n'affecte pas non plus les adresses J1939. La commande RA est identique à SR et elles peuvent être utilisées indifféremment. L'adressage CAN étendu utilise la valeur établie avec la commande AT TA.
AT TA hh établir l'adresse du testeur sur hh
Cette commande sert à modifier l'adresse actuelle du testeur (instrument de diagnostic), qui est utilisée dans les en-têtes, les messages périodiques, les filtres, etc. ELM327 utilise normalement la valeur de PP 06, mais la commande TA permet de la remplacer temporairement. AT TA affecte tous les protocoles, y compris J1939, ce qui est pratique pour changer l'adresse J1939 depuis la F9 par défaut. Bien que la commande puisse fonctionner « à la volée », il n'est pas recommandé de changer l'adresse après l'activation du protocole — les résultats peuvent être imprévisibles.

Paramètres programmables

Commande Description
AT PP hh OFF désactiver le paramètre programmable hh OFF
Cette commande désactive le paramètre programmable portant le numéro hh. Toute valeur attribuée avec la commande PP hh SV ne sera plus utilisée, et le réglage d'usine par défaut s'appliquera de nouveau. Le moment réel où la nouvelle valeur de ce paramètre prend effet est déterminé par son type. Pour plus d'informations sur les types, consultez la section « Paramètres programmables » (page 72). Notez que 'PP FF OFF' est une commande spéciale qui désactive tous les paramètres programmables, comme si vous aviez saisi PP OFF pour chaque paramètre possible. Certains paramètres programmables peuvent être modifiés de telle manière que la communication avec ELM devienne difficile, voire impossible. Impossibilité de communiquer avec ELM327. Si cela s'est produit, il existe un moyen matériel de réinitialiser tous les paramètres programmables d'un coup. Connectez un cavalier de la borne commune du circuit à la borne 28, en le maintenant dans cette position lors de l'application de l'alimentation au circuit d'ELM327. Maintenez-le dans cette position jusqu'à ce que vous voyiez la LED de réception RS232 commencer à clignoter (cela signifie que tous les PP ont été désactivés). À ce moment-là, retirez le cavalier pour permettre à la puce d'effectuer un démarrage normal. Notez que la réinitialisation des PP se produit assez rapidement - si vous maintenez le cavalier connecté plus de quelques secondes et que vous ne voyez pas clignoter l'indicateur de réception RS232, retirez le cavalier et réessayez, car il peut y avoir un problème avec la connexion.
AT PP hh ON activer le paramètre programmable hh
Cette commande active le paramètre programmable portant le numéro hh. Une fois activé, toute valeur attribuée avec la commande PP hh SV sera utilisée là où se trouvait auparavant la valeur d'usine par défaut. (Toutes les valeurs programmables sont réglées en usine aux valeurs par défaut, donc activer un paramètre programmable avant de lui attribuer une valeur ne causera pas de problèmes). Le moment réel où la valeur de ce paramètre prend effet est déterminé par son type. Pour plus d'informations sur les types, consultez la section « Paramètres programmables » (page 72). Notez que 'PP FF ON' est une commande spéciale qui active tous les paramètres programmables d'un coup.
AT PP hh SV yy Param. prog. hh : Établir la valeur yy
Avec cette commande, on attribue une valeur à un paramètre programmable. Le système ne pourra pas utiliser cette nouvelle valeur tant que le paramètre programmable ne sera pas activé avec la commande PP hh ON.
AT PPS Résumé des paramètres programmables
Avec cette commande, on affiche l'ensemble complet des paramètres programmables actuels (même ceux qui n'ont pas encore été implémentés). Chacun est affiché sous la forme d'un numéro PP, suivi de deux-points et de la valeur qui lui a été attribuée. Ensuite figure un seul chiffre - 'N' ou 'F', pour montrer que le paramètre est activé (ON) ou désactivé (OFF), respectivement. Vous trouverez une description plus détaillée dans la section « Paramètres programmables ».

Étalonnage de la tension

Commande Description
AT CV dddd Étalonnage de la tension à dd.dd V
La lecture de tension qu'ELM327 affiche en réponse à la requête AT RV peut être étalonnée avec cette commande. L'argument ('dddd') doit toujours être indiqué sous la forme de 4 chiffres sans point décimal (on suppose que la position décimale se trouve entre le deuxième et le troisième chiffre). Pour utiliser cette fonction, utilisez simplement un instrument de mesure précis pour lire la tension d'entrée réelle, puis utilisez la commande CV pour modifier le facteur d'étalonnage (d'échelle) interne. Par exemple, si ELM327 affiche une tension de 12,2 V et que vous mesurez 11,99 V, envoyez AT CV 1199, et ELM327 s'étalonnera pour cette tension (il lira en réalité 12,0 V en raison de l'arrondi des chiffres). Vous trouverez des informations supplémentaires sur la lecture de la tension et la réalisation de l'étalonnage à la page 31.
AT CV 0000 restauration de la valeur d'étalonnage d'usine
Si vous expérimentez avec la commande CV dddd mais que vous ne disposez pas d'un voltmètre précis comme référence, des problèmes peuvent bientôt survenir. Dans ce cas, vous pouvez toujours envoyer AT CV 0000 pour restaurer les valeurs d'étalonnage d'usine d'ELM327.

Programmable Parameters Summary

The following pages provide a list of the currently available Programmable Parameters. The value shown in the ‘Type’ column indicates when any changes take effect. Possible values are: - I - the effect is Immediate, - D - takes effect after Defaults are restored (AT D, AT Z, AT WS, MCLR or power off/on) - R - takes effect after a Reset (AT Z, AT WS, MCLR or power off/on) - P - needs a Power off/on type reset (AT Z, MCLR, or power off/on)

Type: I — Immediate, D — after Defaults (AT D, AT Z, AT WS), R — after Reset (AT Z, AT WS), P — after Power off/on (AT Z)

PP Description Values Default Type
00 Exécuter AT MA après la mise sous tension ou la réinitialisation 00 = ON; FF = OFF FF(OFF) R
01 Impression des octets d'en-tête (réglage par défaut d'AT H) 00 = ON; FF = OFF FF(OFF) D
02 Autoriser les messages longs (réglage par défaut d'AT AL) 00 = ON; FF = OFF FF(OFF) D
03 Délai d'attente de NO DATA (réglage par défaut d'AT ST) 00 to FF 32(205 msec) D
04 Mode de synchronisation adaptative par défaut (réglage d'AT AT) 00 to 02 01 D
06 Adresse du testeur par défaut (Source Address) 00 to FF F1 R
07 Dernier protocole essayé lors de la recherche automatique 01 to 0C 09 I
09 Écho des caractères (réglage par défaut d'AT E) 00 = ON; FF = OFF 00 (ON) R
0A Caractère de saut de ligne (line feed) 00 to 20 0A R
0C RS232 baud rate divisor when pin 6 is high (logic 1) P baud rate (in kbps) = 4000 ÷ (PP 0C value) For example, 500 kbps requires a setting of 08 (since 4000/8 = 500) Here are some example baud rates, and the divisor to be used:
Baud Rate(kbps)PP 0C value (hex)
19.2D0
38.457.6
19.245
115.223
230.411
50008

Notes:
- 1. The PP 0C value must be provided as hex digits only. The decimal values (listed above in brackets) are only shown for your convenience.
- 2. The ELM327 can only process continuous byte receives at rates of about 600 kbps maximum. If you need to connect at a higher rate, add a delay between the bytes to maintain an average rate of 600 kbps or less.
- 3. A value of 00 provides a baud rate of 9600 bps.
00 to FF 68 (38,4) P
0D Caractère de retour chariot (carriage return) 00 to 20 0D R
0E Power Control options Each bit controls an option, as follows:
b7: Master enable 0: off 1: on if 0, pins 15 and 16 perform as described for v1.0 to v1.3a (must be 1 to allow any Low Power functions)
b6: Pin 16 full power level 0: low 1: high normal output level, is inverted when in low power mode
b5: Auto LP control (0: disabled 1: enabled) allows low power mode if the RS232 activity stops
b4: Auto LP timeout 0: 5 mins 1: 20 mins no RS232 activity timeout setting
b3: Auto LP warning (0: disabled 1: enabled) if enabled, says ‘ACT ALERT’ 1 minute before RS232 timeout
b2: Ignition control (0: disabled 1: enabled) allows low power mode if the IgnMon input goes low

b1: Ignition delay 0: 1 sec 1: 5 sec delay after IgnMon (pin 15) returns to a high level, before normal operation resumes
b0: reserved for future - leave set at 0
00 to FF 9A R
0F Activity Monitor options.
Each bit controls an option, as follows:
b7: monitor master control (0: disabled 1: enabled) must be 1 to allow b3 to b6
b6: allow wake from Low Power (0: no 1: yes) wakes on shift from no activity to activity
b5: Auto LP control (0: disabled 1: enabled) allows low power mode if the OBD activity stops
b4: Auto LP timeout 0: 30 secs 1: 150 secs no OBD activity timeout setting
b3: Auto LP warning (0: disabled 1: enabled) if enabled, says ‘ACT ALERT’ on timeout
b2: reserved for future - leave set at 1
b1: add exclamation mark (0: no 1: yes). if 1, sends ‘!’ before ACT ALERT and LP ALERT
b0: LP LED (0: disabled 1: enabled). if 1, the OBD Tx LED flashes when in Low Power mode (one 16 msec flash repeated every 4 seconds)
00 to FF D5 D
10 Temps de stabilisation de la tension J1850 (ms) = (PP 10) × 4,096 00 to FF 0D R
11 Surveillance du signal Break J1850 (signale BUS ERROR en cas de dépassement des limites) 00 = ON; FF = OFF 00 (ON) D
12 J1850 Volts (pin 3) output polarity
normal = Low output for 5V, High output for 8V
invert = High output for 5V, Low output for 8V
00 = invert R; FF = normal FF (normal) R
13 Time delay added between protocols 1 & 2 during a search setting (in msec) = 150 + (PP 13 value) x 4.096 00 = ON; FF = OFF 55 (498 msec) I
14 ISO/KWP final stop bit width (provides P4 interbyte time) setting (in µsec) = 98 + (PP 14 value) x 64 00 to FF 50 (5.2 msec) D
15 ISO/KWP maximum inter-byte time (P1), and also used for the minimum inter-message time (P2). setting (in msec) = (PP 15 value) x 2.112 00 to FF 0A D
16 Default ISO/KWP baud rate (AT IB default setting)
Note:
4800, 12500, and 15625 baud can not be set as defaults
00 = 96;FF = 10 FF(10.4K) R
17 ISO/KWP wakeup message rate (AT SW default setting) setting (in msec) = (PP 17 value) x 20.48 00 to FF 92(3.0 sec) D
18 ISO/KWP delay before a fast init, if a slow init has taken place setting (in msec) = 1000 + (PP 18 value) x 20.48 00 to FF 31(2.0 sec) I
19 ISO/KWP delay before a slow init, if a fast init has taken place setting (in msec) = 1000 + (PP 19 value) x 20.48 If you are having trouble connecting, increasing this time to 5 seconds (C3) may help. 00 to FF 4F (2.6 sec) I
1A Protocol 5 fast initiation active time (TiniL) setting (in msec) = (PP 1A value) x 2.5 00 to FF 0A(25 msec) D
1B Protocol 5 fast initiation passive time (TiniH) setting (in msec) = (PP 1B value) x 2.5 00 to FF 0A(25 msec) D
1C ISO/KWP outputs used for initiation (b7 to b2 are not used)
b1: L line (pin 22) 0: disabled 1: enabled
b0: K line (pin 21) 0: disabled 1: enabled
If disabled, an output will remain low during protocol initiations
00 to FF 03 D
1D ISO/KWP P3 time (delay before sending requests) Ave time (in msec) = (PP 1D value - 0.5) x 4.096 00 to FF 0F D
1E ISO/KWP K line minimum quiet time before an init can begin (W5) setting (in msec) = (PP 1E value) x 4.096 00 to FF 4A(303 msec) D
1F KWP byte count includes the checksum byte? FF = NO;00 = YES FF(NO) R
20 ISO/KWP 5 baud initiation W1 timer start point
The minimum time, measured from the beginning of the Address byte stop bit before the Sync byte may appear.
T = (PP 20 value) x 1.984 msec
Note that the standards define a range for this value from 260 msec to 500 msec.
00 to FF 5D(185 msec) R
21 Réglage de la surveillance silencieuse CAN par défaut (AT CSM) FF = ON; 00 = OFF FF(ON) R
24 Formatage automatique CAN (réglage par défaut d'AT CAF) 00 = ON; FF = OFF 00(ON) D
25 Contrôle de flux automatique CAN (réglage par défaut d'AT CFC) 00 = ON; FF = OFF 00(ON) D
26 Octet de remplissage CAN (utilisé pour compléter les messages CAN jusqu'à 8 octets) 00 to FF 00 D
28 CAN Filter settings (controls CAN sends while searching)
The bits of this byte control options, as follows:
b7: 500 kbps match 0: ignored 1: required
b6: 250 kbps match 0: ignored 1: required
b5 to b1: reserved for future - leave set to 1
b0: send if bus is quiet 0: not allowed 1: allowed
00 to FF FF D
29 Impression de la longueur de données CAN (DLC) lors de l'affichage des en-têtes (réglage par défaut d'AT D0/D1) 00 = ON; FF = OFF FF(OFF) D
2A CAN Error Checking (applies to protocols 6 to C).
Each bit of this byte controls an option, as follows:
b7: ISO15765 Data Length 0: accept any 1: must be 8 bytes
b6: ISO15765 PCI = 00 0: allowed 1: not allowed
b5: Search after ERR94 0: normal 1: CAN is blocked
b4: Search after LV RESET 0: normal 1: CAN is blocked
b3: Wiring Test 0: bypass 1: perform
Processing 7F xx 78’s:
b2: enabled (CAN & KWP) 0: no 1: yes
b1: valid Modes (xx values) 0: all 1: only 00 to 0F
b0: valid CAN protocols 0: all 1: only ISO15765
00 to FF 3C D
2B Protocol A (SAE J1939) CAN baud rate divisor baud rate (in kbps) = 500 ÷ (PP 2B value). For example, setting this PP to 19 (ie. decimal 25) provides a baud rate of 500/25 = 20 kbps. 01 to 40 02(250 Kbps) R
2C Protocol B (USER1) CAN options.
Each bit of this byte controls an option, as follows:
b7: Transmit ID Length 0: 29 bit ID 1: 11 bit ID
b6: Data Length 0: fixed 8 byte 1: variable DLC
b5: Receive ID Length 0: as set by b7 1: both 11 and 29 bit
b4: baud rate multiplier 0: x1 1: x 8/7 (see note 3)
b3: reserved for future - leave set at 0.
b2, b1, and b0 determine the data formatting options:
b2 b1 b0 Data Format
0 0 0 none
0 0 1 ISO 15765-4
0 1 0 SAE J1939
Other combinations are reserved for future updates – results will be unpredictable if you should select one of them.
00 to FF E0 R
2D Protocol B (USER1) baud rate divisor baud rate (in kbps) = 500 ÷ (PP 2D value). For example, setting this PP to 0A (ie. decimal 10) provides a baud rate of 500/10 = 50 kbps. 01 to 40 04(125 Kbps) R
2E Protocol C (USER2) CAN options.
Each bit of this byte controls an option, as follows:
b7: Transmit ID Length 0: 29 bit ID 1: 11 bit ID
b6: Data Length 0: fixed 8 byte 1: variable DLC
b5: Receive ID Length 0: as set by b7 1: both 11 and 29 bit
b4: baud rate multiplier 0: x1 1: x 8/7 (see note 3)
b3: reserved for future - leave set at 0.
b2, b1, and b0 determine the data formatting options:
b2 b1 b0 Data Format
0 0 0 none
0 0 1 ISO 15765-4
0 1 0 SAE J1939
Other combinations are reserved for future updates – results will be unpredictable if you should select one of them.
00 to FF 80 R
2F Protocol C (USER2) baud rate divisor. baud rate (in kbps) = 500 ÷ (PP 2B value) For example, setting this PP to 19 (ie. decimal 25) provides a baud rate of 500/25 = 20 kbps. 01 to 40 0A(50 Kbps) R

Extension DoIP (ScanDoc)

L'adaptateur ScanDoc étend le protocole ELM327 avec la prise en charge de DoIP (Diagnostics over Internet Protocol, ISO 13400). Cela permet de réaliser le diagnostic Ethernet des véhicules modernes via l'interface de commandes AT bien connue d'ELM327.

Description détaillée du protocole DoIP (ISO 13400) →


Extension BMW HSFZ (ScanDoc)

L'adaptateur ScanDoc étend le protocole ELM327 avec la prise en charge de BMW HSFZ (High Speed Fahrzeug Zugang). C'est un protocole propriétaire de BMW pour le diagnostic Ethernet, qui utilise un adressage de 1 octet et un format de trames simplifié sans Routing Activation.

Description détaillée du protocole BMW HSFZ →


Exemples de commandes OBD

En mode normal (sans le préfixe AT), les commandes sont envoyées directement au véhicule. Les commandes s'écrivent avec des octets hexadécimaux :

Commande Description
01 00Requête des PID pris en charge (Mode 01)
01 0CLecture du régime moteur
01 0DLecture de la vitesse du véhicule
03Lecture des codes d'erreur enregistrés (Mode 03)
04Effacement des codes d'erreur (Mode 04)
09 02Lecture du numéro VIN (Mode 09)