I would like to suggest a feature on the main code to set the MCP2515 crystal oscillator frequency. Something like: Code: const byte CAN_FREQ = MCP_16MHZ //or 8mhz for for cheap modules and Code: CAN0.reset(); CAN0.setBitrate(CAN_SPEED, CAN_FREQ); CAN1.reset(); CAN1.setBitrate(CAN_SPEED, CAN_FREQ); Im using 8mhz modules and this is what i did to get working.
If you have a RT6, noFMUX will not be doing anything useful, it is only useful for SMEG and NAC (with the good calibration). Your language is probably not switched because the language is restored from EEPROM just after, I pushed an update, set resetEEPROM to true and upload the code one time, then set it back to false and upload the code again (avoid writing on the EEPROM at each startup because it is limited in writing) - You can also switch the language from the CAN2004 Matrix or CAN2010 SMEG / NAC - @horuscurcino done
hehehe thanks! I thought I could access the MATT menu... Done! Working... But I'd like to say thanks for sharing all your hard work and investigation. I'm pretty sure that so many people will take advantage for such information and will be able to do something similar and even beyond what has been discussed here in this thread. I'd like to be really sincere and say thanks. If you don't mind, let me know if you have PayPal and let know your email to donate some beer to say thanks for sharing all the details and all the hard work. If you have Instagram and don't care, I'd like also to have some friends sharing your reference so you can see some other projects that will come out . All that coding and also CAN protocol translation is not so easy. It is something like your project that enable all the PSA lovers to go beyond and do some extra modifications. A great hello and great thanks for the great work ! Merci!
Can you post pictures of that adapter. How you connect it.cause it didnt work, i think its something with the program that upload to the device, i read there are some canbus shiled that use d10 instead d9
Hi. Could you help me? When compiling the .ino file in the arduino IDE interface, the following errors are presented: Code: D:\BIBLIOTECAS\Documentos\Arduino\can-adapter\can-adapter.ino: In function 'void setup()': D:\BIBLIOTECAS\Documentos\Arduino\can-adapter\can-adapter.ino:156:38: warning: invalid conversion from 'byte {aka unsigned char}' to 'CAN_SPEED' [-fpermissive] CAN0.setBitrate(CAN_SPEED, CAN_FREQ); ^ In file included from D:\BIBLIOTECAS\Documentos\Arduino\can-adapter\can-adapter.ino:10:0: D:\BIBLIOTECAS\Documentos\Arduino\libraries\arduino-mcp2515/mcp2515.h:468:15: note: initializing argument 1 of 'MCP2515::ERROR MCP2515::setBitrate(CAN_SPEED, CAN_CLOCK)' ERROR setBitrate(const CAN_SPEED canSpeed, const CAN_CLOCK canClock); ^ D:\BIBLIOTECAS\Documentos\Arduino\can-adapter\can-adapter.ino:156:38: warning: invalid conversion from 'byte {aka unsigned char}' to 'CAN_CLOCK' [-fpermissive] CAN0.setBitrate(CAN_SPEED, CAN_FREQ); ^ In file included from D:\BIBLIOTECAS\Documentos\Arduino\can-adapter\can-adapter.ino:10:0: D:\BIBLIOTECAS\Documentos\Arduino\libraries\arduino-mcp2515/mcp2515.h:468:15: note: initializing argument 2 of 'MCP2515::ERROR MCP2515::setBitrate(CAN_SPEED, CAN_CLOCK)' ERROR setBitrate(const CAN_SPEED canSpeed, const CAN_CLOCK canClock); ^ D:\BIBLIOTECAS\Documentos\Arduino\can-adapter\can-adapter.ino:167:38: warning: invalid conversion from 'byte {aka unsigned char}' to 'CAN_SPEED' [-fpermissive] CAN1.setBitrate(CAN_SPEED, CAN_FREQ); ^ In file included from D:\BIBLIOTECAS\Documentos\Arduino\can-adapter\can-adapter.ino:10:0: D:\BIBLIOTECAS\Documentos\Arduino\libraries\arduino-mcp2515/mcp2515.h:468:15: note: initializing argument 1 of 'MCP2515::ERROR MCP2515::setBitrate(CAN_SPEED, CAN_CLOCK)' ERROR setBitrate(const CAN_SPEED canSpeed, const CAN_CLOCK canClock); ^ D:\BIBLIOTECAS\Documentos\Arduino\can-adapter\can-adapter.ino:167:38: warning: invalid conversion from 'byte {aka unsigned char}' to 'CAN_CLOCK' [-fpermissive] CAN1.setBitrate(CAN_SPEED, CAN_FREQ); ^ In file included from D:\BIBLIOTECAS\Documentos\Arduino\can-adapter\can-adapter.ino:10:0: D:\BIBLIOTECAS\Documentos\Arduino\libraries\arduino-mcp2515/mcp2515.h:468:15: note: initializing argument 2 of 'MCP2515::ERROR MCP2515::setBitrate(CAN_SPEED, CAN_CLOCK)' ERROR setBitrate(const CAN_SPEED canSpeed, const CAN_CLOCK canClock); ^ What can I be doing wrong? Thank you and happy 2020 everyone
You didn't add the libraries (3 .zip files to add) as written on the tutorial. When they are added, it appears inside the menu:
pepole can you share some info and pictures who have this work ? we have here in Israel and Brasil pepoles that would like to do it but with no luck... Vlud is the only one who i know made it possible but he is bussy this time, we need to know the basic because somthing is worng and we dont know if its the software or the hardware. we need simple convertion circuit bsi2004 to bsi2010 because we need to hook this to only info screen like in the instument cluster
Thank you. It worked. Code: byte languageNum = 132; // (0x80) FR - If you need EN as default : 132 (0x84) What is the language code of Portuguese BR? What is the number? and How to change to Km / l? The following code didn't work for me. Code: bool kmL = true; // km/L statistics instead of L/100 Merci beaucoup
Use the latest update I made 29 days ago. "byte languageNum" does not exist anymore and you will be able to set BR as language, and it will probably fix your issue with km/L
Super tuto J'envisage peut être de me lancer à remplacer mon NG4 de ma C5 II par un SMEG+IV2 ( ça dépendra si madame accepte le budget ) et dans ce cas j'aurais sans doute des questions.
Ah je n'avais pas vu qu'il en existait en can2004 ( un lien par hasard?). Du coup ça serait plug n play ou quand même un faisceau adaptateur? Je pensais à tort que NAC et IV2 c'était la même chose. Du coup je suis un peu perdu, a part la carto TomTom et la reconnaissance vocale sur le NAC qu'est ce qui change?
Carplay ET Android Auto, la fluidité, la gratuité de la cartographie. Ce serait Plug'n play (idéalement prendre un SMEG CAN2004 de C5)
Le NAC semble plutôt sympa en effet. Bon après j'aimerais surtout pouvoir utiliser waze et avoir du streaming Bluetooth avec commandes au volant donc apparemment le IV2 ferait bien l'affaire (sauf si je peux avoir un NAC à tarif équivalent bien sûr ).
Oui enfin le SMEG est reputé pour avoir un lag sur le Bluetooth qui est vraiment très ennuyant au quotidien
Using bosch RCC i found myself unable to change some parameters such as language, date and time and check the vehicle settings. They were grayed out, disabled. Its a kind of degraded mode of the radio. Scanning and scanning and found the ID 361, DLC6, must have its first data block forwarding something above 80 to get these menus fully working. At this moment my CAN2004 car sends "B1" on this [0] block. Is there any way to implement this on the code? EDIT: by the way, 500 period.
ID 361 is sent on my 308 (CAN2010) but not on my RCZ (CAN2004), strange ! Don't know what it is used for Here is the value I have on my 308: 12 3F FF 3F FF FF FF FF or 00 3F FF 3F FF FF FF FF What's your full value ? What is your RCC reference ? Is it a A2 or above ?
RCC A2. My measured values: CAN2004: 09 04 10 C0 10 38 CAN2010: B1 66 6C 00 00 00 Well, i dont have the official purpose of this value (since we dont have it for any value! hahahaha!) but it does the trick about the settings pages when the first block is equal or over 80. EDIT: For some reason since the last revision of this arduino code i cant use diagbox on the telematic. It causes "Communication Error" with the calculator. Without arduino conversion it works normally. Tried with and without "forge CAN2010 messages".
[CITAÇÃO = "horuscurcino, cargo: 2530064, membro: 114066"] RCC A2. Meus valores medidos: CAN2004: 09 04 10 C0 10 38 CAN2010: B1 66 6C 00 00 00 Bem, eu não tenho o objetivo oficial desse valor (já que não o temos por nenhum valor! Hahahaha!), Mas funciona com as páginas de configurações quando o primeiro bloco é igual ou superior a 80. EDITAR: Por alguma razão, desde a última revisão deste código do arduino, não posso usar o diagbox no sistema telemático. Causa "Erro de comunicação" com a calculadora. Sem a conversão do arduino, ele funciona normalmente. Tentei com e sem "forjar mensagens CAN2010". [/ QUOTE] Hello, In my bench tests, I verified that ID 361 is responsible for enabling the options in MATT color according to the Bytes that are presented to it, example: HEX / Bit 81 = 1000001 = parameter + Daylight B1 = 10110001 = Pair + Start Lighting (30s) + Directional Headlamps + Daylight However, this changes according to the Firmware configuration. For ID 361 to take effect it must have 1 more active IDs. ID: 260 - 7 - 00.04.00.00.00.00.00 I hope this information can help you in your project.
ID 260 is related to languages and units, and already treated by this sketch. ID 361 works activating the customization menu but keeps activating and deactivating (blinking) the functions. Perhaps it has some other dependencies or another ECU is overriding the changes. Hope to reveal the necessary codes. Im working on it.
Checks that there is no conflict with RT6 / RNEG. Via diagbox you must disable the parameterization menu options, language, units and time on RT6 / RNEG. In my car the parameterization menu was activated on RT6 / RNEG, however it was not possible to activate or deactivate any option (blinking) the functions. When deactivating all parameterization items of the RT6 / RNEG, the parameterization menu appears on the MATT2004 screen, however on MATT2010 with the arduino it does not appear. I believe the solution is to disable these items from RT6 / RNEG and update the code of the arduino program with ID 361.
My car was originally fitted with RD4 radio + multifunction screen. It was removed from the car so at first i believe this settings are not relevant. But i think in the BSI2004 world when the car is fitted with any ECU which changes the "Personalization menu" such as multifunction screen, COMBINE and MATT (UDS protocol) or multimedia system (SMEG, RNEG, RT4) the ID361 (or different ID) is developed by the callibration and enabled/disabled options available on it (changeable via diagnostic software). But BSI2010 generates this ID 361 by itself and its available capabilities and connected ECUs take advantage of it. By the way in my bench tests changing ID361 values, many settings that were not predicted on my RCC A2 callibration are shown. Proving it handles the "Personalization Menu" alone.
I can confirm ID 0x361 (865 in decimal) is responsible for personalization menu which is working with ID 0x260 too, I'm working on it. For now it should be easier not to forward messages on ID 865 from CAN2004