# Ingnierie inverse du CAN et construction dECU avec Elixir
> [! remarque]-
> Le contenu de cette page est généré à partir de la transcription audio/vidéo et de la transformation du texte provenant du contenu et des liens de cette source.
Source : [https://fosdem.org/2025/schedule/event/fosdem-2025-4973-reverse-engineering-can-communication-and-building-ecus-using-elixir-and-the-beam/](https://fosdem.org/2025/schedule/event/fosdem-2025-4973-reverse-engineering-can-communication-and-building-ecus-using-elixir-and-the-beam/)
<video src=« https://video.fosdem.org/2025/h1302/fosdem-2025-4973-reverse-engineering-can-communication-and-building-ecus-using-elixir-and-the-beam.av1.webm » controls></video>
## Résumé et points forts :
**Résumé de la session**
La session explore l'ingénierie inverse de la communication CAN et la construction d'unités de contrôle électronique (ECU) en utilisant Elixir et la machine virtuelle Erlang (BEAM). Thibault Poncelet partage son expérience de conversion d'une voiture en véhicule électrique (VE) en intégrant des composants de différentes marques via le CAN bus.
**Introduction à l'ingénierie inverse du CAN**
Le CAN bus est une norme de communication utilisée dans les véhicules. L'ingénierie inverse de ce système permet de faire communiquer différentes parties d'un véhicule, comme afficher les valeurs de RPM d'un moteur Nissan LEAF sur le tableau de bord d'une VW Polo. La session explique comment connecter physiquement au CAN bus et utiliser des outils comme Savican et Socket Candy pour afficher et manipuler les données.
**Utilisation d'Elixir et BEAM pour les ECU**
Elixir, fonctionnant sur la machine virtuelle BEAM, est utilisé pour prototyper rapidement des ECU avec des composants bon marché. La session montre comment Elixir est adapté pour gérer les trames CAN en temps réel grâce à sa capacité à gérer plusieurs processus légers simultanément. Cantastic, une bibliothèque open source, est introduite pour simplifier l'émission et la réception de trames CAN.
**Construction pratique d'un ECU**
L'ECU est construit en utilisant un Raspberry Pi avec des modules CAN bus et packagé avec NURBS pour créer un système Linux minimaliste. Cette approche permet une intégration fluide des composants de différentes marques dans un véhicule.
**Défis et perspectives**
La session aborde les défis liés à la sécurité des véhicules connectés et l'importance de la communauté open source pour partager les connaissances sur l'ingénierie inverse du CAN. Elle souligne également l'importance de la collaboration et de l'innovation pour surmonter les obstacles techniques et sociaux.
## Importance pour une transformation écosociale
Cette session est cruciale pour la transformation écosociale car elle propose des solutions pour convertir les véhicules en VE, réduisant ainsi les émissions de carbone. Les outils comme Elixir, BEAM et Cantastic offrent aux concepteurs écosociaux des méthodes pour prototyper et intégrer des technologies durables dans les véhicules. Cependant, des défis subsistent, notamment en matière de sécurité des véhicules connectés et de standardisation des protocoles CAN. La collaboration entre les communautés open source et les fabricants est essentielle pour surmonter ces obstacles et promouvoir l'innovation durable.
## Slides:
| | |
| --- | --- |
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_001.jpg\|300]] | La première diapositive introduit le concept de l'ingénierie inverse du CAN bus et la construction d'ECU en utilisant Elixir et BEAM, soulignant l'importance de ces technologies pour les systèmes de contrôle de véhicules.
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_002.jpg\|300]] | • Introduction à l'ingénierie inverse du CAN bus• Utilisation d'Elixir et BEAM pour les ECU• Importance pour les systèmes de contrôle de véhicules• Présentation des outils et méthodes utilisés• Thibault Poncelet comme intervenant principal• Contexte de la conversion de véhicules• Défis et perspectives pour l'avenir
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_003.jpg\|300]] | La troisième diapositive détaille les étapes pour se connecter au CAN bus, y compris l'utilisation d'un dispositif USB pour interfacer avec un ordinateur portable et l'utilisation de Savican pour visualiser et rejouer les trames.
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_004.jpg\|300]] | Cette diapositive explique comment utiliser Socket Candy pour diffuser un CAN bus sur IP, permettant ainsi le travail à distance depuis un bureau. Cela facilite le développement et le test en temps réel des systèmes de contrôle de véhicules.
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_005.jpg\|300]] | La cinquième diapositive aborde la lecture et l'envoi de valeurs RPM entre un moteur Nissan LEAF et le tableau de bord d'une VW Polo, soulignant l'importance de l'ingénierie inverse pour une intégration fluide des composants de différentes marques.
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_006.jpg\|300]] | Cette diapositive met en évidence l'erreur initiale commise lors de la conversion du véhicule et souligne l'importance de conserver les données d'origine pour faciliter l'ingénierie inverse et l'intégration des nouveaux composants.
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_007.jpg\|300]] | • Importance de la conservation des données d'origine• Utilisation de Savican pour envoyer des trames• Défis liés à la fréquence d'envoi des trames• Validation de l'intégration avec le tableau de bord
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_008.jpg\|300]] | • Présentation de la communauté open source autour du Nissan LEAF• Utilisation de fichiers DBC pour spécifier les trameshttps://github.com/dalathegreat/leaf_can_bus_messages
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_009.jpg\|300]] | La neuvième diapositive discute des défis liés à l'envoi de valeurs scalées et de la nécessité de faire correspondre les valeurs enregistrées avec celles affichées sur le tableau de bord pour une intégration réussie.
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_010.jpg\|300]] | • Techniques de correspondance des valeurs scalées• Importance de l'enregistrement des valeurs• Défis liés à l'intégration des composantshttps://github.com/v-ivanyshyn/parse_can_logs
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_011.jpg\|300]] | • Construction de l'ECU pour la conversion des valeurs• Ségrégation des composants sur le CAN bus• Utilisation d'Elixir pour la traduction des valeurs• Mise en œuvre pratique de l'ECU
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_012.jpg\|300]] | Cette diapositive explique pourquoi Elixir et BEAM sont adaptés pour les applications en temps réel dans le contexte automobile, en mettant l'accent sur la gestion efficace des trames CAN et la simplicité du code.
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_013.jpg\|300]] | La diapositive 13 présente les étapes pour se connecter à un CAN bus avec Elixir, décrivant les lignes de code nécessaires pour recevoir et traiter les trames en utilisant le pattern matching.
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_014.jpg\|300]] | • Utilisation de Cantastic pour simplifier l'émission et la réception des trames• Définition des trames et signaux dans un fichier YAML• Gestion des processus en Elixir pour le traitement des trames• Intégration des valeurs scalées et offset
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_015.jpg\|300]] | La quinzième diapositive détaille la construction d'un ECU en utilisant un Raspberry Pi et NURBS, expliquant comment packager un système Linux minimaliste pour une installation dans le véhicule.
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_016.jpg\|300]] | • Utilisation de NURBS pour créer un système Linux minimaliste• Intégration d'un Raspberry Pi avec des modules CAN bus• Installation et mise à jour du système dans le véhicule• Avantages de l'approche open sourcehttps://github.com/open-vehicle-control-system/cantastic
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_017.jpg\|300]] | La diapositive 17 couvre les résultats de l'intégration réussie des composants, montrant comment le tableau de bord du véhicule affiche correctement les valeurs RPM du moteur électrique.
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_018.jpg\|300]] | Cette diapositive aborde les préoccupations de sécurité liées aux véhicules connectés et l'importance de la sécurité dans le développement de systèmes de contrôle de véhicules.
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_019.jpg\|300]] | La diapositive 19 discute des limitations actuelles du système de contrôle de véhicules ouvert et des opportunités d'amélioration pour la prise en charge de l'Ethernet automobile et des trames chiffrées.
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_020.jpg\|300]] | Cette diapositive conclut la présentation en soulignant l'importance de l'open source pour l'innovation dans le secteur automobile et en encourageant la participation communautaire pour surmonter les défis techniques.
| ![[FOSDEM 2025/assets/Reverse-engineering-CAN-communication-and-building/preview_021.jpg\|300]] | • Importance de l'open source pour l'innovation automobile• Encouragement à la participation communautaire• Perspectives d'avenir pour les systèmes de contrôle de véhicules
## Liens
[Slides](https://fosdem.org/2025/events/attachments/fosdem-2025-4973-reverse-engineering-can-communication-and-building-ecus-using-elixir-and-the-beam/slides/238112/can_rever_TE0PxYP.pdf)
[Can library source](https://github.com/dalathegreat/leaf_can_bus_messages)
[Open Vehicle Control System source](https://github.com/open-vehicle-control-system/cantastic)
[Video recording (AV1/WebM)](https://video.fosdem.org/2025/h1302/fosdem-2025-4973-reverse-engineering-can-communication-and-building-ecus-using-elixir-and-the-beam.av1.webm)
[Video recording (MP4)](https://video.fosdem.org/2025/h1302/fosdem-2025-4973-reverse-engineering-can-communication-and-building-ecus-using-elixir-and-the-beam.av1.mp4)
[Video recording subtitle file (VTT)](https://video.fosdem.org/2025/h1302/fosdem-2025-4973-reverse-engineering-can-communication-and-building-ecus-using-elixir-and-the-beam.vtt)
[Chat room(web)](https://fosdem.org/2025/chat/room/web)
[Chat room(app)](https://fosdem.org/2025/chat/room/app)