Episode

Building an Open Vehicle Control System using Elixir and Nerves with Marc, Thibault, and Loïc

Podcast
Elixir Wizards
Published
Dec 26, 2024
Duration seconds
3259
Processing state
processed
Canonical source
https://smartlogic.fireside.fm/s13-e11-ovcs-vehicle-control-system-elixir-nerves-spin42
Audio
https://aphid.fireside.fm/d/1437767933/03a50f66-dc5e-4da4-ab6e-31895b6d4c9e/3657c934-7196-4133-948a-d186b2482df7.mp3
JSON
/v1/public/podcasts/elixir-wizards/episodes/building-an-open-vehicle-control-system-using-elixir-and-nerves-with-marc-thibault-and-lo-c
Markdown
/podcast/elixir-wizards/building-an-open-vehicle-control-system-using-elixir-and-nerves-with-marc-thibault-and-lo-c.md

Actions

  • 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.
  • 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.

Summary

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.

Topics

  • Elixir
  • Nerves
  • Embedded Systems
  • CAN bus
  • Electric Vehicles
  • Open Source Hardware
  • Raspberry Pi
  • Automotive Engineering

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

Chapters

  1. 1:05 Introduction to Spin42: The engineers introduce themselves and their background in the financial sector and startup ecosystem.
  2. 4:50 The Vision for Retrofitting: The motivation behind converting older internal combustion vehicles to electric power to meet new regulations and reduce waste.
  3. 9:15 Elixir for Vehicle Management: How GenServers mimic independent vehicle components and communicate over an internal bus.
  4. 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.
  5. 21:40 Reverse Engineering Challenges: The technical hurdles and regrets encountered while attempting to decode proprietary CAN messages.
  6. 30:30 Building the Infotainment System: Developing a custom touchscreen interface using Nerves to replace physical buttons for gear selection.
  7. 42:15 Safety and Fail-safes: Implementing hardware and software safeguards to ensure system stability and emergency control.