[TUTO] Adaptateur pour SMEG/NAC/Matrice CAN2010 sur BSI CAN2004


Does anybody try to fix issue with two indicators in Cirocco/CMB ?
It turns off only when correct checksum in frame ID 0e6
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);
Cesenate from Italy made a little "trick" sending to CANbus this:
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);
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.

Trying to fit 308 T9 digital cluster into 308 2011.
 

Code:
__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;
}
 

Hello,

I installed a Nac in my 2011 C5 W7 and i have 2 problems : I don't have the time (only few dashes) and it's in english. The langage menu is here but blocked.

Someone knows what to do ?
 

Hello, @VLud I have a problem. I replaced the middle display in the odometer in my Peugeot RCZ monochrome to colorful. I made an adapter with Arduino, uploaded the software and everything works except setting the clock time on the display. For example, the time on the radio display in navigation (I have NG4) is 18:00 and on the counter display it is 14:00. I also have a problem with setting the time for an oil change/inspection. After resetting, the kilometers are reset to 15,000 KM, and the time is set to 1 year, and after a while it goes to zero from a full year after a minute. I can't figure out what to change in the code.
 
Dernière édition:

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#
 

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 ?
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 table
 

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 @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!
Try to fix lenght of 0x0E6 frame in sketch. Can2004 has two versions - 6 and 7 byte long.
In Ludwig's sketch lenght value increasing by 1 in each iteration
I did len == 7. Peugeot 308
Citroen C4 2006 has len == 6
 

hello everybody. I've been trying to resolve this problem for a few days. The brake fluid, STOP and Start&Stop lights do not go out at all. Does anyone know which ID is responsible for this information? I am attaching the ID's that I am sending. Thank you very much in advance.

EDIT: I managed to resolve the brake light and STOP with ID 0E6 bit 7/8. I need help with the start&stop light that keeps flashing.


CANHACKER.jpgPAINEL.jpeg
 
Dernière édition:


It is the same between 2010 & 2004 for Start&Stop, frame 0x317 byte 4 pos 5
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.

EDIT: I also tried to deactivate it using the Cirocco software, but this light continues to flash. D:

EDIT2: I found it, the responsible ID is 0x227 and it turns off the start stop light :D
Thank you very much for the project!
 
Dernière édition:


Boujour a vous tous et merci bcp a Mr Vlud.. pour ce travaille. J'ai essayer de faire ce montage arduino et j'ai réussi a telecoder Nac et Rcc. Mais j'arrive pas a telecoder smeg plus .j'arrive pas lire les paramètre . Qlq'un peut m'aider? Et merci encore.
 

@VLud bonjour et merci pour ce merveilleux travaille j’aurais une petite question sur le câblage je vais vous joindre une photo pouvez vous me confirmer si il est bon merci d’avance et une deuxième photo du mcp2515 et de la résistance à retiré ces bien celle entouré merci beaucoup d’avance 🙏🏽
 



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.
  • I'm using two MCP2515 from here with an Arduino Uno
  • RTC is DS1302
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 ?


Hi,
I have a similar problem as "Fredi309", incoming data is fine BUT OUTGOING DATA IS 0, changed MCP several times but no result.
If I plug in the navigation directly, it starts without a problem.
Can someone please help me, thank you very much!!!
 

Pièces jointes

  • OUT data.jpg
    OUT data.jpg
    860 Ko · Affichages: 12
  • IN data.jpg
    IN data.jpg
    840.4 Ko · Affichages: 12
Dernière édition:

Ahoj,
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!!!
Vyřešeno, nyní běží, ale je potřeba vypnout ikonu brzdy a žádné kilometry. Děkuji
 

Pièces jointes

  • Screenshot_20240328_204656_com.hihonor.photos.jpg
    Screenshot_20240328_204656_com.hihonor.photos.jpg
    820.6 Ko · Affichages: 26

Hello... could someone teach me how to make the adapter with an Arduino Nano and two Arduino MCP2515? the wire diagram... thank you.
 

It is the same between 2010 & 2004 for Start&Stop, frame 0x317 byte 4 pos 5
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.
 

The solution is in comment 519.
Greetings!
Ok,
I have try to set the "len == 6" like this :
"
} else if (id == 0xE6 && len ==6 ) { // 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] = checksumm_0E6(canMsgSnd.data); // Checksum / Counter : Test needed
canMsgSnd.can_id = 0xE6;
canMsgSnd.can_dlc = 8;
CAN1.sendMessage( & canMsgSnd);
}
"
But nothing is happening - The battery indicator and brake start flashing :( . My car is Citroen C5 x7 petrol 2.0 140ps . Now I have do to stop the brake light only but the STOP LED still light with this code :

} else if (id == 0xE6 && len ==6 ) { // 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] = 0x80; //canMsgRcv.data[6]; // STT / Slope / Emergency Braking
canMsgSnd.data[7] = checksumm_0E6(canMsgSnd.data); // Checksum / Counter : Test needed
canMsgSnd.can_id = 0x0E6;
canMsgSnd.can_dlc = 8;
CAN1.sendMessage( & canMsgSnd);
}

Now only STOP led are light - where is my mistake ?
 

Pièces jointes

  • car.jpg
    car.jpg
    397 Ko · Affichages: 31


Does anybody try to fix issue with two indicators in Cirocco/CMB ?
It turns off only when correct checksum in frame ID 0e6
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);
Cesenate from Italy made a little "trick" sending to CANbus this:
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);
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.

Trying to fit 308 T9 digital cluster into 308 2011.
I have a problem with navigation. Is there a solution? Thank you
 

Hello @VLud thanks for your great job. I have question, my car is citroen c5 x7 whit instaled Nac Wave 2 from peugeot 508 whit ur last sketch. I try to activate popusp messgaes, (generatePOPups = true; ) but nothing happen, and diagnostic menu in NAC is inactive. What i need to do, i try and Celyse.cal but same, i can change langue in radio, but, i am not getting any information from the car log. Thanks
 

Does anybody try to fix issue with two indicators in Cirocco/CMB ?
It turns off only when correct checksum in frame ID 0e6
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);
Cesenate from Italy made a little "trick" sending to CANbus this:
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);
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.

Trying to fit 308 T9 digital cluster into 308 2011.
comment activer speed limiter
 

Bonjour à tous, quelqu'un a-t-il un schéma du câble LVDS ? Un numéro de référence serait également utile. Merci d'avance pour votre aide.
 

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:
img


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

img


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.

img


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":
img


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)

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.

J'ai adapté un nac wave2 dans une 407 et ça fonctionne. J'ai utilisé tout ce dont tu nous as mis à disposition pour réussir mais j'ai un petit problème que je souhaite résoudre : dans la 407 il n'y a pas tant de place que ça pour y placer correctement cet empilement de cartes arduino canbus parceque mine de rien ça fait un assez gros boîtier je n'ai pas eu grand choix de l'emplacement il est coté passager sous la boîte à gants alors du coup il chauffe pas mal ici donc la solution serait de le ventiler avec un ventilateur que j'ai récupéré dans un vieux rt4. Seulement je dois encore agrandir la taille de mon boîtier...

Donc je me suis dit que j'allais le refaire mais avec du nano.

J'ai donc acheté deux cartes canbus shield nano, un arduino nano, un micro abaisseur de tension avec un tout petit module RTC.
Ça ne fonctionne pas, j'ai bien cablé une carte canbus sur le pin 10 et l'autre sur le pin 9 mais rien n'y fait... voici quelques photos de mon système.

Est ce que tu peux me donner le schéma pour le nano s'il te plaît si tu l'as? Car j'ai des doutes du coup...
La voiture dans laquelle j'ai fait l'installation m'appartient c'est une 407 coupé v6 hdi de 2006.

J'ai aussi fait l'installation dans ma 607 v6 essence de 2007 avec BTA et souscription aux services connectés tout fonctionne 😁 et dans celle ci il n'y a pas ce problème de place car dans la console centrale il y a de la place pour 5 arduino's je mets des photos également. J'avais auparavant adapté un rt6 avec facade moulée dans celle du rt3 d'origine par un carrossier. Au passage si je peux me permettre il est à vendre du coup 😆

Merci d'avance pour vos retours et si vous voulez plus de précisions sur mes installations n'hésitez pas.

Cordialement,
Raphael.
 

Hello, i read zone 010E and recieve this 62010E000000000000073800221E39201A000000000000000000000000000000000000000000000000000000000000

How i can decode this string to find out which button corresponds to which bit from what is communicated over the can network so that I can rearrange the buttons as I wish in the adapter. thanks
 
Dernière édition:

Hello @VLud ,

Je me tâte à lancer le projet, par pour un véhicule CAN2004 mais VAN (206/Xsara)
Evidemment ce projet est pour faire un passage CAN2004/2010, cela dit je me pose tout de même les questions suivantes :
  1. Est-ce possible techniquement ?
  2. Si oui, le matériel utilisé dans le tuto suffit ?
  3. Si oui, comment s'y prendre pour se lancer dedans ?
Merci !