# Building an Open Vehicle Control System using Elixir and Nerves with Marc, Thibault, and Loïc Page: https://stenobird.com/podcast/elixir-wizards/building-an-open-vehicle-control-system-using-elixir-and-nerves-with-marc-thibault-and-lo-c Text version: https://stenobird.com/podcast/elixir-wizards/building-an-open-vehicle-control-system-using-elixir-and-nerves-with-marc-thibault-and-lo-c.md Podcast: [Elixir Wizards](https://stenobird.com/podcast/elixir-wizards) Published: 2024-12-26T11:30:00+00:00 Episode link: https://smartlogic.fireside.fm/s13-e11-ovcs-vehicle-control-system-elixir-nerves-spin42 Audio file: https://aphid.fireside.fm/d/1437767933/03a50f66-dc5e-4da4-ab6e-31895b6d4c9e/3657c934-7196-4133-948a-d186b2482df7.mp3 Processing state: processed JSON: https://stenobird.com/v1/public/podcasts/elixir-wizards/episodes/building-an-open-vehicle-control-system-using-elixir-and-nerves-with-marc-thibault-and-lo-c Duration seconds: 3259 ## Resource Engineers from Spin42 detail their journey retrofitting a 2007 VW Polo with an electric powertrain using Elixir and Nerves. The discussion explores building an Open Vehicle Control System (OVCS) to extend vehicle lifespans through open-source hardware and software. ## Highlights - Main idea: Using Elixir GenServers to model independent vehicle components and coordinate them via a distributed architecture - Practical takeaway: Leveraging Nerves and the Erlang socket module to interface with the CAN bus and parse proprietary messages - Failure mode: The difficulty of reverse-engineering CAN messages and the risks of not documenting hardware traces before disassembly - Technical approach: Implementing a YAML-based DSL for CAN frame descriptions and building custom hardware to avoid unreliable off-the-shelf hats - Safety implementation: Designing fail-safe mechanisms, including software-level monitoring and physical emergency shutoff buttons ## Topics Elixir, Nerves, Embedded Systems, CAN bus, Electric Vehicles, Open Source Hardware, Raspberry Pi, Automotive Engineering ## Chapters - 1:05 — Introduction to Spin42: The engineers introduce themselves and their background in the financial sector and startup ecosystem. - 4:50 — The Vision for Retrofitting: The motivation behind converting older internal combustion vehicles to electric power to meet new regulations and reduce waste. - 9:15 — Elixir for Vehicle Management: How GenServers mimic independent vehicle components and communicate over an internal bus. - 13:30 — Nerves and CAN Bus Integration: Using Nerves to handle CAN communication and the benefits of developing on a laptop without constant firmware uploads. - 21:40 — Reverse Engineering Challenges: The technical hurdles and regrets encountered while attempting to decode proprietary CAN messages. - 30:30 — Building the Infotainment System: Developing a custom touchscreen interface using Nerves to replace physical buttons for gear selection. - 42:15 — Safety and Fail-safes: Implementing hardware and software safeguards to ensure system stability and emergency control. ## Actions - request_transcript: `POST https://stenobird.com/v1/public/podcasts/elixir-wizards/episodes/building-an-open-vehicle-control-system-using-elixir-and-nerves-with-marc-thibault-and-lo-c/transcription-requests` — Idempotently request low-priority transcript generation for this episode. - read_markdown: `GET https://stenobird.com/podcast/elixir-wizards/building-an-open-vehicle-control-system-using-elixir-and-nerves-with-marc-thibault-and-lo-c.md` — Read the agent-friendly Markdown representation of this episode resource. A page view does not enqueue transcription. Agents should invoke `request_transcript` explicitly when they need this episode processed. ## Transcript Full transcripts are not published on public pages unless there is a clear rights basis.