• L'Assemblée Générale du Prius Touring Club aura lieu le 7 décembre 2024 du côté de Rennes. Si vous êtes adhérent renseignez-vous ici.

MBED, Arduino , STN1110 & BT

  • Initiateur de la discussion Initiateur de la discussion priusfan
  • Date de début Date de début
Si tu veux je peux repasser ce Weekend avec mon tactrix.
 
le tactrix attendra, je vais procéder à des test avec le mongoose et techstream...

mais auparavant, et après avoir consulté la doc technique, je vais procéder à des tests basiques depuis la prise diag:

contact coupé depuis plus d'une minute:
entre les pins CAN 6 & 14 , je dois avoir 60 Ohms
entre chaque pin CAN et la masse (4) , je dois avoir > 200 Ohms
entre chaque pin CAN et B+ (16) , je dois avoir > 6 kOhms

contact mis:
à l'oscillo, je dois avoir pour les prises 6 & 14, une excursion symétrique, centrée à 2,5 V, avec une excursion de 1V;
càd un bit dominant, dans le jargon CAN, correspond à 1.5V sur CAN_L et 3.5V sur CAN_H,
alors qu'un bit récessif correspond à 2.5V sur les 2.

@suivre
 
testé hier soir les valeurs mentionnées ci-dessus. tout est normal. mais je n'ai pas sorti le scope pour vérifier l'allure des signaux.

reçu ce matin (merci beaucoup parkerbol) l'interface mongoose mfc.

passé rapidement un coup de techstream : tout est nominal.

sauf que techstream a également un mode E-OBD2 et que là, il déclare qu'il n'y a pas d'ECU...

étape suivante: lancer techstream et utiliser un sniffeur sur l'autre branche du Y.
 
Cool ! As tu fait le contrôle de chaque ECU indépendamment ?
 
j' ai relancé qqs tests avec le mbed ce soir, j'ai qqs résultats positifs:

les filtres marchent parfaitement bien (en tous cas, pour tout ce qui est filtrage passif)....

qqs requêtes donnent le résultat attendu...

il faut que je reprenne à 0 la logique du programme.

@suivre
 
Veux-tu que nous réfléchissions ensemble ?
Je pourrais passer en fin de journée, aujourd'hui ou dans la semaine à ta convenance.
 
bonsoir,
pas eu le temps de faire grand-chose aujourd'hui: du monde à la maison et essai d'un véhicule électrique.

mais mon dev me donne enfin toute satisfaction:
stabilité,
filtrage des trames passives,
collecte fiable de données sollicitées,
gestion et consolidation efficace des réponses multitrames.

pour le moment, je suis prudent et limite à 20 req/sec ;
je ferai des essais de montée en charge progressive (jusqu'à 100/S).

pour la P2, quels sont les pids passifs intéressants (on peut en garder plus que le strict nécessaire)?
quels sont les pids sollicités intéressants?

il est trés simple de personnaliser filtres et requètes.

dans un premier temps, les tests se font avec realterm à l'écoute sur un port usb, par la suite, je vais transmettre simultanément en BT.

@thierry, on peut envisager de tester le montage sur ta p2 quand tu veux.
 
Chouette.

Pour P2

Passifs
Pédale de frein 030.5
Couple thermique en 039.3. Température bloc_thermique en 039.1
Courant batterie 03B.1+2 Tension_batterie 03B 3+4
Vitesse 0B4.6+7
Pédale d'accelerateur 244.7
Couple ICE 348.4+5
Tours/minute Thermique 3C8.3
Température admission air thermique 3CF.3. Et Température extérieure. 3CF.2
Soc_batterie HT 3CB.4 Temp_batterie_mini 3CB.5 temp_maxi 3CB.6
Durée d'injection de l'essence 520.2+3
Shift Lever 540.2
Réservoir carburant 5A4.2

Actifs
7E2 21 C4 températures IGBT, MG...

etc...
 
@thierry, on peut envisager de tester le montage sur ta p2 quand tu veux.

Bravo.
Je pourrais passer jeudi dans l'après midi.
J'ai pris ma journée car j'avais une compétition de golf suivie d'un déjeuner.

A toi de me dire à partir de quelle heure tu es libre.
 
ci-joint une capture brute de fonderie faite avec realterm de mon bidule;exactement 100 secondes,
le timestamp a été ajouté par realterm (malheureusement pas de mS);
la lettre p ou r précise l'origine de la trame, p= passif;
dans le cas des "r", l"octet après l'ecu donne le nb d'octets de la réponse , y compris pour les réponses multitrames qui sont consolidées;
les tabulations et espaces sont insérés dans mon appli pour faciliter la lecture dans la phase de mise au point;

le filtrage mis en place permet de ne voir que les trames passives sélectionnées.

ok pour tester sur p2 à partir de 16h jeudi

je vais préparer une variante du programme pour être utilisée comme sniffer; intérêt: installer le dispositif sur un Y alors que sur l'autre branche il y a par exemple un techstream
 

Pièces jointes

ok, essai p2 programmé pour jeudi 16 h
peux-tu m'indiquer les composants à commander et où ?
 
Chouette.

Pour P2

Passifs
Pédale de frein 030.5
Couple thermique en 039.3. Température bloc_thermique en 039.1
Courant batterie 03B.1+2 Tension_batterie 03B 3+4
Vitesse 0B4.6+7
Pédale d'accelerateur 244.7
Couple ICE 348.4+5
Tours/minute Thermique 3C8.3
Température admission air thermique 3CF.3. Et Température extérieure. 3CF.2
Soc_batterie HT 3CB.4 Temp_batterie_mini 3CB.5 temp_maxi 3CB.6
Durée d'injection de l'essence 520.2+3
Shift Lever 540.2
Réservoir carburant 5A4.2

Super en effet.

039.3 n'est pas le couple du thermique à mon sens.
J'ai l'impression que c'est plutôt l'angle VVTi.

520.3 c'est un volume injecté ou, ce qui revient au même une durée totale d'ouverture des injecteurs. Cette quantité est dans tous les cas absolue. C'est à dire que la somme de toutes les valeurs reçues donne la quantité totale d'essence. Pas besoin de multiplier pas une vitesse du moteur.

Autres petits trucs sympas :

025.1,2,3,4 : volant de direction. Utile pour caler sur la route ou servir de boite noire.

230.1,2 : odomètre qui compte les 192èmes de tours de roues arrières.

244.3,4 : vitesse de MG2. Permet de déduire la vitesse de MG1, et la vitesse de rotation des roues avant.

038.2 : puissance demandée au thermique

038.4 : couple à appliquer aux roues

03A.2 : force d'accélération désirée (précède le précédent, dans la chaîne de commandement) C'est en fait la vraie pédale d'accélérateur/frein. Crucial pour un glide parfait j'imagine.

526.1,2 : vitesse du thermique. Avec une meilleure précision.

5A4.2 : jauge réservoir

Il peut être bien aussi de faire le calcul des sommes de contrôle des PID 0xx 1xx 2xx 3xx.
 
ci-dessous, le filtrage que j'imagine de mettre en place pour tests p2.
si vous avez des idées complémentaires, elles sont bienvenues...
Code:
// install filters ( Filter)
// common
  CAN2_wrFilter ( 0x00B4);   // this frame will give the exact speed and will be used as a heartbeat (B6 *256 + B7)/100
// end common

// specific gen2
    CAN2_wrFilter ( 0x0030);    // brake
    CAN2_wrFilter ( 0x0039);    // ice temp torque
    CAN2_wrFilter ( 0x0244);    // acc pos
    CAN2_wrFilter ( 0x0348);    // ice torque
    CAN2_wrFilter ( 0x03C8);    // ice_rpm
    CAN2_wrFilter ( 0x03CB);    // batt soc tmp
    CAN2_wrFilter ( 0x03CF);    // temp ext ice_adm
    CAN2_wrFilter ( 0x0520);    // inj
    CAN2_wrFilter ( 0x0540);    // shift lever
    CAN2_wrFilter ( 0x05A4);    // tank level
// end p2

// specific gen3  
    CAN2_wrFilter ( 0x01C4);   // ICE RPM                          (B1 * 256 + B2) * 100 / 128
    CAN2_wrFilter ( 0x0245);   // Accelerator Pedal Position %     B3/2
    CAN2_wrFilter ( 0x03D3);   // Fuel Flow L/H                    (B1 * 256 + B2) /255
    CAN2_wrFilter ( 0x0498);   // Coolant Temp                     B4 * 128 /100 ?????????
    CAN2_wrFilter ( 0x04A6);   // Fuel Tank                        B3/2 or B4/2 or B5/2 or B6/2
// end p3

// begin active
    CAN2_wrFilter ( 0x07E0);
    CAN2_wrFilter ( 0x07E2);

    CAN2_wrFilter ( 0x07E8);
    CAN2_wrFilter ( 0x07EA);
// end active

edit suite post kinetik
Code:
// specific gen2
    CAN2_wrFilter ( 0x0025);
    CAN2_wrFilter ( 0x0030);    // brake
    CAN2_wrFilter ( 0x0038);
    CAN2_wrFilter ( 0x0039);    // ice temp torque
    CAN2_wrFilter ( 0x003A);
    CAN2_wrFilter ( 0x0230);
    CAN2_wrFilter ( 0x0244);    // acc pos

    CAN2_wrFilter ( 0x0348);    // ice torque
    CAN2_wrFilter ( 0x03C8);    // ice_rpm
    CAN2_wrFilter ( 0x03CB);    // batt soc tmp
    CAN2_wrFilter ( 0x03CF);    // temp ext ice_adm
    CAN2_wrFilter ( 0x0520);    // inj
    CAN2_wrFilter ( 0x0526);
    CAN2_wrFilter ( 0x0540);    // shift lever
    CAN2_wrFilter ( 0x05A4);    // tank level
// end p2
 
:dispute:....et t'as oublié le filtre à café !
 
Je suppose que ce sera paramétrable les données à transmettre.
Donc cela a peu d'importance.

Il faudrait essayer avec les pids passifs qui ont une fréquence élevée
et avec les pids actifs les plus longs

Planétaire et kinetik ont la réponse à ma proposition.
 
Et dès que j'ai mon boitier, je migre pcm/tripmaster v7 et je démarre un développement android.
 
Je suppose que ce sera paramétrable les données à transmettre....
tout est envisageable de ce coté là:
dans la mesure où nous avons une liaison sérielle fiable, il est aisé de reparamétrer dynamiquement les filtres et le mode de fonctionnement:

  • passif seulement,
  • avec ou sans filtres,
  • gestion des filtres,
  • gestion des requêtes (avec leur périodicité).
dans un premier temps, on peut s’assurer de la qualité et du nombre de trames transmises en mode passif bestial: obtient-on 1660 trames / S pour la p2?

@kinetik & planetaire: combien en récoltez vous à ce jour, avec différents dispositifs?

dev android: pour cela,
il faudra valider la transmission en BT, je commence bientôt...
pour l"environnement de dev, B4A est un truc que je trouve génial...

@suivre
ps: pour la partie matériel, on en discute demain
 
Il sera plus facile d'être client du BT pour faire une interface graphique android que de faire à la fois traitement et affichage imbriqué car si j'ai bien compris le fonctionnement, on peut filtrer en amont.
En tout cas, un dev en B4A est tout à fait intéressant.
 
@planetaire: dans ces 1740/S quelle est le % d'infos pertinentes qui nous intéresse?

@parekrbol: dans la mesure où l'on reçoit seulement des trames "intéressantes",
que le travail de présélection, mise en forme et validation a été effectué en amont,
les couches traitements de
consolidation,
intégration ,
logging ,
présentation des données
donnent plus de latitude aux développeurs...
 
dev android: pour cela,
il faudra valider la transmission en BT, je commence bientôt...
pour l"environnement de dev, B4A est un truc que je trouve génial...

je suivrai ta recommandation.
2 objectifs :
-consommer moins
- le rallye
 
J'utilise aussi bms+ qui émet un pid (le 555 de mémoire), qui est donc un passif et j'émets quelques demandes sollicitées pour avoir les températures de l'électronique, des MG, boost converter.

@Priusfan voici la distribution du nombre de chaque pid sur une durée pour Prius 2:
Frequence_pid_p2.jpg
 
A ce jour je ne connais que canusb et tactrix qui soient capables à la fois d'émettre et de recevoir. Les elm doivent arrêter d'écouter pour émettre. Je suppose que l'odb-link se comporte comme un elm. Facile de vérifier avec un programme comme realterm ou autre.
 
Pages vues depuis le 20 Oct 2005: 316,288,763
Retour
Haut Bas