elm327 BT / Android

priusfan

darwiniste
Prius Touring Club
Inscrit
22 Oct. 2005
messages
7,041
Score de réaction
10,253
Localisation
Challans
Véhicule
RZ450e
Bonjour,
j'ouvre cette discussion pour centraliser les échanges à propos de l'interface ELM327 Bluetooth et des dev sous android.

Pour commencer:
j'ai testé ce matin cette interface
d'abord avec le pgm de diag fourni avec.
j'ai commencé à 9600 bauds , puis 38400 puis 115200:


eobd.JPG


J'ai ensuite testé l'interface avec torque sur archos101.
c'est tout bon.

Etapes suivante avant d'attaquer android:
1) tests avec realterm de façon à forcer en permanent la vitesse interne de communication à 115200.
2) un petit dev en VB6 de façon à valider l'algo et vérifier la vitesse d'échantillonnage accessible (objectif Noel).


3)
android_logo.gif



@ suivre
 
Le débit théorique du bluetooth est de 1Mbps. J'ai fait tourner des walkabout BT de centre de contrôle technique en 230400 au lieu de 115200 parce que les dictionnaires (textes du rapport) étaient super longs à récupérer.
As tu essayé de forcer au delà ?

J'ai pris un modèle légèrement différent du tien, car en y réfléchissant, il faut mieux avoir quelques modèles différents, histoire d'avoir le maximum de compatibilité avec nos téléphones ou tablettes, eux aussi différents ! C'est une boîte française aussi.

On pourra donner ainsi des matrices de compatibilité.

Je vais commencer la semaine prochaine quelques tests android<->bt, vu que ça se calme au niveau projets ici.
 
Bonjour,
Ce matin, j'ai procédé à qqs tests avec l'elm327.
d'abord, j'ai tenté d'utiliser realterm sans succès;
je me suis rabattu sur le mode console de l'outil livré avec l'interface.

j'ai constaté que l'elm327 gère nativement le multiframe, càd que si on demande 2101 il nous répond (dans le désordre...):
7EA10186101511D3B2B
7E8101B610151002501
7E821481D3B625B13D9
7EA21655B138000011A
7E82200011A002B7C2B
7E823FF57D38FEC395F
7EA222B2951FF57D88F
7EA23DC38EAAC000000

une fois reclassé (tri sur 5 1ers octets), on a :

7E8101B610151002501
7E821481D3B625B13D9
7E82200011A002B7C2B
7E823FF57D38FEC395F
7EA10186101511D3B2B
7EA21655B138000011A
7EA222B2951FF57D88F
7EA23DC38EAAC000000

cela s'interprete de la manière suivante:
toutes les ECU qui comprennent cette demande y répondent
7E8 répond:
10 1B msg multiframe de 1Bh octets ===> 26 = 27 - 1 octets de data
61 01 réponse à 21 01
suivi de 26 octets 5 + 3*7 octets

7EA répond:
10 18 msg multiframe de 18h octets = 23 = 24 - 1 octets de data
61 01 réponse à 21 01
suivi de 25 octets utiles
5 + 7 + 7 + 4

les octets 21 22 23 en pos 4 sont des N° de séquence

dans le cas d'une réponse monoframe, en position 4,5, on a le nb d'octets de la réponse

la séquence complète de mes tests est la suivante:
2101
7EA10186101511D3B2B
7E8101B610151002501
7E821481D3B625B13D9
7EA21655B138000011A
7E82200011A002B7C2B
7E823FF57D38FEC395F
7EA222B2951FF57D88F
7EA23DC38EAAC000000
213C
7EA037F2112
7E807613C0BC60A1A80
2149
7E8100E614900063480
7E8211165771D0007F9
7E82202000000000000
7EA037F2112
2161
7E8037F2112
7EA0761613D3C3D91DC
2162
7E8037F2112
7EA0761623838387FFD
2167
7EA0761678000800402
7E8037F2112
2168
7E8037F2112
7EA0761687FD77FDA00
2170
7E8037F2112
7EA06617037373D00
2171
7E8037F2112
7EA06617138383900
2174
7E8037F2112
7EA100B61743738383D
7EA210001D401D50000
2187
7E8037F2112
7EA100A61873CEB4300
7EA21448042BA000000
218A
7E8037F2112
7EA04618A80F4
2198
7E8037F2112
7EA100A61987E1C58A3
7EA2100808780000000
2187
7E8037F2112
7EA100A61873CC7431E
7EA21449E42BA000000

rappel de la séquence d'initialisation de l'ELM327:
AT I 'pour s'assurer qu'il répond
AT SP6 ' set the OBD protocol to CAN 11-bit
AT E0 ' turn "echo" off
AT H1 ' enable full headers (so we can tell which PID sent the message!)
AT L1 ' enable linefeeds (used to help parsing results) facultatif
AT S1 'facultatif printing of spaces


le test précédent concerne la P3, mais le principe est valide pour P2
 
je te prépare une synthèse pour la P2 à partir de la feuille excel en question.

les 2 pdfs que tu mentionne constitue la bible de l'elm327....
 
exemple avec info de l'onglet HV_ECU_CAN
1 ère requète

s'effectue avec simplement 21 C3

réponse automatique du type:
7ea102761c3xxxxxxxx
7ea21xxxxxxxxxxxxxx
7ea22xxxxxxxxxxxxxx
7ea23xxxxxxxxxxxxxx
7ea24xxxxxxxxxxxxxx
7ea25xx000000000000

où les xx vont par paire et représente les octets significatifs de la réponse

interprétation de la requête:
7e2 ECU destinatrice
2 nb d'octets de la requête
21 c3: la requête

le 7e2 30 (pour demander la suite) n'est pas utile dans le cas de l'elm327
 
bonjour,

Loïck rejoint ce forum

pour tout savoir de Loïck, c'est ici.
 
exemple de la demande de température pot catalytique:

la requète est 013C (ou 013E)
la température en °C est dans les 2 derniers octets
si on les appelle A & B, la formule est :
(A * 256 + B) / 10 - 40

en bas de la fenêtre, on constate l' effet de la commande AT S1 qui insère des espace entre les groupes, rendant plus lisible le message

14d0b2b22aa775.jpg
 
J'ai testé le dongle bluetooth elm327 avec Torque ce matin, ça fonctionne assez bien du premier coup et assez vite.
Maintenant, je vais m'atteler à voir ça en mode console sur android.



Bienvenue Loïc ;)
 
et la PIII dans tout ça?

Tout d'abord, bonjour à tous!
Je ne m'y connais pas du tout en bus CAN mais venant d'un cursus réseaux/télécoms je pense pouvoir m'adapter rapidement (je ne m'étais jamais vraiment intéressé aux voitures avant la Prius!).
Je développe maintenant surtout en Java (partie serveur) ou actionscript (partie graphique en Flash/AIR) mais je dois pouvoir me débrouiller en VB, C# (ou autre ObjectiveC ou C++ sous la menace :-D).
En bref, m'avoir ouvert accès à ce salon va peut-être me pousser à investir dans une interface BT/OBD2 et franchir le côté obscur de la Prius :-D, où as-tu acheté ton Dongle Parkerbol?

Donc voilà, s'il vous faut un volontaire pour adapter vos devs actuels sur la PIII* (et sur des tels Android plutôt que des Archos), je peux peut-être être votre homme (je dois pouvoir récupérer pas mal d'infos spécifiques PIII sur pc.com).
:jap:
Bienvenue à Loïck aussi!
-----
*: Bon je viens de tilter que priusfan avait déjà adapté PCM sur la PIII, je viens d'avoir accès au salon, il me reste de la lecture!!!
 
Dernière édition:
Bonsoir guinness, et bienvenue à bord.

A ma connaissance, 95% des infos CAN sur la p3 proviennent d'un certain frenchie, elles ont été adaptées pour le scangauge par des correspondants que j' ai là_bas (sur pc.com).

Le frenchie en question, c'est myself, et effectivement j'ai procédé à des analyses intéressantes.

Je te propose de commencer par utiliser torque et lire les trucs ci-dessus.
 
...Le frenchie en question, c'est myself, et effectivement j'ai procédé à des analyses intéressantes....

Mince, c'est plus un secret.

Bienvenue à Parkerbol et Guinness. :jap:

Si vous avez besoin d'infos sur la meilleure des Prius :-D, c'est à dire la 2 nhésitez pas. Mais après avoir digéré tout le salon canmonitor :grin:

En tout cas vos dev vont élargir l'éventail des utilisateurs potentiels. :ovation:

@Guinness, pour ma part je n'avais jamais développé en vb6 ni géré un elm327 pas plus un tactrix. Tout s'apprend.
 
Test de communication satisfaisant depuis téléphone vers interface en utilisant le programme blueterm du market.

Dans le lien ci-dessus, on peut récupérer l'appli et son source.

cela permet de ne pas réinventer l'eau tiède en ce qui concerne la couche de communication.
 
Tiens j'avais aussi commencé par BluetoothChat :cool:
 
Merci, c'est noté. Je pense faire le pas quand j'aurai un peu de temps...
 
j'ai commencé à jouer au jeu des 7 erreurs entre bluetoothchat et blueterm.
btCHAT ne marche pas, btTERM marche.


pour me faciliter la tache, j'ai utilisé examdiff.

je pense que je vais modifier BluetoothChatService.java en virant tout ce qui concerne AcceptThread
et la ref à:
import android.bluetooth.BluetoothServerSocket;

mon objectif est de récupérer un module de comm SPP en dentbleue.

@ suivre

ps , comme j'ai un énorme rhume, les neurones bougent au ralenti...
 
:coucou: Bonjour,

@Priusfan: À tes souhaits, Xavier !:fete:
 



ci-joint une démo de connection avec blueterm surmon tel.

on y voit fort bien l'effet de la cde AT H1 (pour montrer le header)

j'avais bidouillé bluechat comme prévu, càd :
1) viré toute la partie server puisque le server, c'est le dongle.
2) surtout modifié le uuid pour en mettre un qui soit prévu pour le SPP (celui de blueterm marche).
résultats: connection ok, mais les communications semblent envoyées par petits bouts; exemple (100% reproductible):
je tente d'envoyer ati
il reçoit
at
puis i
 
pb du at puis i

J'ai pas encore l'environnement pour faire joujou avec ma Prius, mais j'ai jeté un coup d'oeil aux sources, et si tu utilises bien la classe BluetoothSerialService, tu devrais essayer de rajouter:
mmOutStream.flush();​
juste après le:
mmOutStream.write(buffer);​
(dans la méthode write de la classe privée ConnectedThread.

Je ne suis pas sûr que ça résolve ton pb, mais c'est à tester car il est possible que la stack d'implementation du bt s'amuse à bufferiser un peu..
 
Question bête mais qui peut avoir une influence sur l'utilisation au quotidien d'une version Android sur téléphone de PCM: Quand on utilise blueterm, est-ce que le téléphone peut simultanément être appareillé à la voiture pour recevoir un appel en bt (c'est-à-dire est-ce que la stack supporte que blueterm se connecte à un device et que la partie téléphone se connecte au système de navigation)?
Si vous n'avez pas de système de navi, il suffit de tester avec une simple oreillette bluetooth.
Si ce n'est pas le cas ça imposera de choisir entre utiliser PCM ou pouvoir recevoir/passer des appels en BT (ou jouer de la musique), ou alors d'investir dans une tablette Android pour PCM :-D

J'ai pas encore tout bien digéré les informations du salon, mais est-ce qu'on peut faire des changements comme enlever le bip des ceintures ou de marche arrière en tapant les commandes qui vont bien dans le soft fourni avec le dongle ou alors faut-il nécessairement le Techstream ou Tactrix qui va bien?
(à ce propos j'ai vu que le lien fourni par priusfan comprend une version complète d'EOBD-Facile, alors que celui de Parkerbol ne comprend que la version gratuite)

Tiens sinon un petit hors-sujet, sur le site du revendeur:
@guinness
J'avais oublié de dire où je l'avais acheté après avoir contacté le gars :
http://www.diagnostic-auto.com/ELM327-h4.htm

Dans les extraits du forum à gauche on peut voir que des possesseurs de diesels cherchent à neutraliser la vanne EGR voire même supprimer le FAP, ce qui prouve bien que les diesels propres sont une utopie...
 
A priori pour le bip ceinture et autre SUR P3 ça doit pouvoir se faire avec un elm327.
Il faut singer les commandes que gère techstream. Par exemple en snifant à l'aide d'un cable en Y sur le bus CAN.

A+ ;-)
 
Question bête mais qui peut avoir une influence sur l'utilisation au quotidien d'une version Android sur téléphone de PCM: Quand on utilise blueterm, est-ce que le téléphone peut simultanément être appareillé à la voiture pour recevoir un appel en bt (c'est-à-dire est-ce que la stack supporte que blueterm se connecte à un device et que la partie téléphone se connecte au système de navigation)?
Si vous n'avez pas de système de navi, il suffit de tester avec une simple oreillette bluetooth.
Si ce n'est pas le cas ça imposera de choisir entre utiliser PCM ou pouvoir recevoir/passer des appels en BT (ou jouer de la musique), ou alors d'investir dans une tablette Android pour PCM :-D

Torque gère le dongle et le téléphone gère en plus la connexion PRIUS, je peux donc recevoir un appel en même temps que le logiciel fait son truc, mais je ne sais pas (je n'ai pas regardé les logs ce matin, car je recevais un appel en même temps qu'il fonctionnait) si cela influence les capacités du soft.
Priusfan m'en avait parlé comme étant un critère important dans le cadre de AndroidPCM, je pense que c'est gérable.
Je finis mon imposant bouquin Programmation Android avant de me relancer dans le code de blueterm car il y a quelques notions qui m'échappent encore.
 
Le fait que tu puisses recevoir un appel alors que tu es en train de logger est la réponse que je cherchais :jap: ; ensuite si ça limite un peu le débit pour la capture en temps réel ou même si ça bloque la capture pendant la durée de l'appel, ça reste plutôt un détail pour moi.

Merci.
 
Pages vues depuis le 20 Oct 2005: 308,391,547
Retour
Haut Bas