[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: 8
  • IN data.jpg
    IN data.jpg
    840.4 Ko · Affichages: 8
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: 13

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


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