} else if (id == 0xE6 && len < 8) { // ABS status frame, increase length
canMsgSnd.data[0] = canMsgRcv.data[0]; // Status lights / Alerts
canMsgSnd.data[1] = canMsgRcv.data[1]; // Rear left rotations
canMsgSnd.data[2] = canMsgRcv.data[2]; // Rear left rotations
canMsgSnd.data[3] = canMsgRcv.data[3]; // Rear right rotations
canMsgSnd.data[4] = canMsgRcv.data[4]; // Rear right rotations
canMsgSnd.data[5] = canMsgRcv.data[5]; // Battery Voltage measured by ABS
canMsgSnd.data[6] = canMsgRcv.data[6]; // STT / Slope / Emergency Braking
canMsgSnd.data[7] = 0x00; // Checksum / Counter : WIP
canMsgSnd.can_id = 0xE6;
canMsgSnd.can_dlc = 8;
CAN1.sendMessage( & canMsgSnd);
canMsgSnd.data[0] = 0x00;
canMsgSnd.data[1] = 0x00;
canMsgSnd.data[2] = 0x01;
canMsgSnd.data[3] = 0x00;
canMsgSnd.data[4] = 0x01;
canMsgSnd.data[5] = 0x81;
canMsgSnd.data[6] = 0x80;
if (variab0e6 == false){
canMsgSnd.data[7] = 0x30;
variab0e6 = true;
}
else{
canMsgSnd.data[7] = 0x45;
variab0e6 = false; }
canMsgSnd.can_id = 0x0E6;
canMsgSnd.can_dlc = 8;
CAN1.sendMessage( & canMsgSnd);
__u8 checksumm0E6(const __u8* frame)
{
/* Autors:
organizer of the bacchanal: styleflava
algorithm: Ilia
code: Pepelxl
*/
static __u8 iter = 0;
__u8 cursumm = 0;
for (__u8 i = 0; i < 7; i++)
{
cursumm += (frame[i] >> 4) + (frame[i] & 0x0F);
}
cursumm += iter;
cursumm = ((cursumm ^ 0xFF) - 3) & 0x0F;
cursumm ^= iter << 4;
iter++;
if (iter >= 16) iter = 0;
return cursumm;
}
Il n'y aucun problème particulier, la seule chose à noter c'est que les consignes GPS sont envoyées en UTF-8 sur la matrice en CAN2010 et Latin-1 en CAN2004 ce qui génère un problème d'affichage des accents et autres symboles sur les noms de rue, je n'ai pas fait le code pour remplacer les accents / symboles impactés étant donné que j'ai remplacé la matrice sur ma RCZ (j'ai mis des photos sur le Github comme preuve de fonctionnement) - dans le cas où on est équipé d'une matrice -
J'utilise ma RCZ régulièrement qui plus est, ça fonctionne toujours au poil
Quelle voiture CAN2004 ?[/QUOTE#
SVP Vlud j'ai remplacé ma matrice monochrom par une matrice couleur et du coup je n'ai pas l'indicateur de changement de rapport de vitesse et l'affichage des donnés radio, pouvez vous menvoyer le firmware je veux la lire sur tableIl n'y aucun problème particulier, la seule chose à noter c'est que les consignes GPS sont envoyées en UTF-8 sur la matrice en CAN2010 et Latin-1 en CAN2004 ce qui génère un problème d'affichage des accents et autres symboles sur les noms de rue, je n'ai pas fait le code pour remplacer les accents / symboles impactés étant donné que j'ai remplacé la matrice sur ma RCZ (j'ai mis des photos sur le Github comme preuve de fonctionnement) - dans le cas où on est équipé d'une matrice -
J'utilise ma RCZ régulièrement qui plus est, ça fonctionne toujours au poil
Quelle voiture CAN2004 ?
Try to fix lenght of 0x0E6 frame in sketch. Can2004 has two versions - 6 and 7 byte long.Hi @VLud I saw that the Arduino sketch was updated a few days ago.
I have a Citroen C5 X7 with NAC and Cirocco that turns on the brake fluid level lights and the STOP light.
When uploading the new sketch to the Arduino, the level light goes off but the STOP light flashes and also the light with the battery symbol.
I have no idea why this is happening to me, could you help me?
Thank you!
Hi, thank you very much for the answer! But I tried several combinations within ID 317 but it didn't work. My car sends this information: 0x317 5 33 00 82 C6 80.It is the same between 2010 & 2004 for Start&Stop, frame 0x317 byte 4 pos 5
How you did resolve this problem ? I have to the same problem - the Brake sign is flashing and STOP LED. How to resolve it ?
Hello,
@ Vlud -> Thanks for your great project !!
Currently i´m testing the adapter on a BSI on workbench-> i want to get working SMEG+ on my 308 T7 from 2009.
In general I've traffic (RX on Arduinomis flashing quickly) but the SMEG doesn't boot up -> all frames in Terminal ar 00000 (Screenshot)-> what I've done wrong ?
- I'm using two MCP2515 from here with an Arduino Uno
- RTC is DS1302
Vyřešeno, nyní běží, ale je potřeba vypnout ikonu brzdy a žádné kilometry. DěkujiAhoj,
Mám podobný problém jako "Fredi309", příchozí data jsou v pořádku, ALE ODCHOZÍ DATA JSOU 0, několikrát změněno MCP, ale žádný výsledek.
Pokud zapojím navigaci přímo, spustí se bez problému.
Může mi prosím někdo pomoct, děkuji moc!!!
Bonjour, j'ai parcouru vos messages sur le Télécodage et calibration. J'avoue que je suis incompétent pour comprendre toute cette technique informatique ! Juste une question pour la caméra CVM Peugeot Rifter 1.2 qui est tombée en panne subitement avec l'info des défauts. Bref je l'ai démonté et nettoyé les connecteurs et circuits, après avec chauffé les cartes électronique les défauts ont disparu, en service après 10mn le boitier de la CVM chauffe à 65° elle semble donc HS. Si je la remplace faut il en plus du calibrage dynamique avec la Diagbox faire un codage avec la calculateur ADDAS ? et comment faire ? seul Peugeot peut le faire ? Merci pour votre lecture et votre soutien. Cordialement.It is the same between 2010 & 2004 for Start&Stop, frame 0x317 byte 4 pos 5
Ok,The solution is in comment 519.
Greetings!
I have a problem with navigation. Is there a solution? Thank youDoes anybody try to fix issue with two indicators in Cirocco/CMB ?
It turns off only when correct checksum in frame ID 0e6
Cesenate from Italy made a little "trick" sending to CANbus this:Code:} else if (id == 0xE6 && len < 8) { // ABS status frame, increase length canMsgSnd.data[0] = canMsgRcv.data[0]; // Status lights / Alerts canMsgSnd.data[1] = canMsgRcv.data[1]; // Rear left rotations canMsgSnd.data[2] = canMsgRcv.data[2]; // Rear left rotations canMsgSnd.data[3] = canMsgRcv.data[3]; // Rear right rotations canMsgSnd.data[4] = canMsgRcv.data[4]; // Rear right rotations canMsgSnd.data[5] = canMsgRcv.data[5]; // Battery Voltage measured by ABS canMsgSnd.data[6] = canMsgRcv.data[6]; // STT / Slope / Emergency Braking canMsgSnd.data[7] = 0x00; // Checksum / Counter : WIP canMsgSnd.can_id = 0xE6; canMsgSnd.can_dlc = 8; CAN1.sendMessage( & canMsgSnd);
But with this trick lagging navigation (car pointer always stuck or late from actual position of car), because NAC getting info that wheels doesnt spin.Code:canMsgSnd.data[0] = 0x00; canMsgSnd.data[1] = 0x00; canMsgSnd.data[2] = 0x01; canMsgSnd.data[3] = 0x00; canMsgSnd.data[4] = 0x01; canMsgSnd.data[5] = 0x81; canMsgSnd.data[6] = 0x80; if (variab0e6 == false){ canMsgSnd.data[7] = 0x30; variab0e6 = true; } else{ canMsgSnd.data[7] = 0x45; variab0e6 = false; } canMsgSnd.can_id = 0x0E6; canMsgSnd.can_dlc = 8; CAN1.sendMessage( & canMsgSnd);
Trying to fit 308 T9 digital cluster into 308 2011.
comment activer speed limiterDoes anybody try to fix issue with two indicators in Cirocco/CMB ?
It turns off only when correct checksum in frame ID 0e6
Cesenate from Italy made a little "trick" sending to CANbus this:Code:} else if (id == 0xE6 && len < 8) { // ABS status frame, increase length canMsgSnd.data[0] = canMsgRcv.data[0]; // Status lights / Alerts canMsgSnd.data[1] = canMsgRcv.data[1]; // Rear left rotations canMsgSnd.data[2] = canMsgRcv.data[2]; // Rear left rotations canMsgSnd.data[3] = canMsgRcv.data[3]; // Rear right rotations canMsgSnd.data[4] = canMsgRcv.data[4]; // Rear right rotations canMsgSnd.data[5] = canMsgRcv.data[5]; // Battery Voltage measured by ABS canMsgSnd.data[6] = canMsgRcv.data[6]; // STT / Slope / Emergency Braking canMsgSnd.data[7] = 0x00; // Checksum / Counter : WIP canMsgSnd.can_id = 0xE6; canMsgSnd.can_dlc = 8; CAN1.sendMessage( & canMsgSnd);
But with this trick lagging navigation (car pointer always stuck or late from actual position of car), because NAC getting info that wheels doesnt spin.Code:canMsgSnd.data[0] = 0x00; canMsgSnd.data[1] = 0x00; canMsgSnd.data[2] = 0x01; canMsgSnd.data[3] = 0x00; canMsgSnd.data[4] = 0x01; canMsgSnd.data[5] = 0x81; canMsgSnd.data[6] = 0x80; if (variab0e6 == false){ canMsgSnd.data[7] = 0x30; variab0e6 = true; } else{ canMsgSnd.data[7] = 0x45; variab0e6 = false; } canMsgSnd.can_id = 0x0E6; canMsgSnd.can_dlc = 8; CAN1.sendMessage( & canMsgSnd);
Trying to fit 308 T9 digital cluster into 308 2011.
Bonjour Ludwig, tout d'abord félicitations pour ce projet et merci d'avoir partagé. Merci aussi à tous ceux qui contribuent et partagent leurs expériences.Installation de l'IDE Arduino
Récupérez et installez l'IDE compatible avec votre système d'exploitation directement sur https://www.arduino.cc/en/Main/Software
Ajout des librairies nécessaires au projet dans votre IDE
Téléchargez ces 3 fichiers .zip :
- arduino-mcp2515.zip - Librairie pour gérer les cartes CAN-BUS Shield
- DS1307RTC.zip - Librairie pour gérer le module RTC
- Time.zip - Librairie pour travailler sur l'heure
Et ajoutez les une par une via ce menu:
Compiler le programme
Et voici enfin le principal, ce qui m'a pris plusieurs heures d'analyse / d'essais / de batterie à plat : arduino-psa-comfort-can-adapter.ino
Vous avez le choix entre copier le code source depuis le RAW et enregistrer le fichier .ino ou bien récupérer le ZIP du master pour directement récupérer le .ino et les ZIP des librairies
Uploader le programme
Branchez votre Arduino en USB sur votre ordinateur.
Vous n'avez plus qu'à uploader le programme sur votre Arduino en cliquant sur la flèche allant à droite, vérifiez bien dans Tools > Port que vous avez bien sélectionné le bon port.
Débogage / Vérification
Vous pouvez vérifier les messages de debug directement via la console série (attention à bien vérifier que le "baud rate" est bien à 115200) en changeant au préalable debugGeneral à "true":
Evidemment si vous voulez voir quelque chose d’intéressant il faut que vous connectiez l'Arduino en USB sur votre PC Portable pendant qu'il est connecté au CAN-BUS de la voiture
Extra
Pour ceux qui seraient tenter d'intégrer l'adaptateur (plutôt en Nano) directement dans le NAC c'est parfaitement faisable ! On y trouve tout ce dont on a besoin et on peut couper les deux lignes CAN au dessus du TJA1055/3 présent sur la carte mère (carte en haut) en dessoudant les résistances 0 Ohms et donc avoir une entrée (CAN2004) et une sortie (CAN2010 converti par l'Arduino)