Elixir Wizards is an interview-format podcast, focused on engineers who use the Elixir programming language. Initially launched in early 2019, each season focuses on a specific topic or topics, with each interview focusing on the guest's experience and opinions on the topic. Elixir Wizards is hosted by Eric Oestrich and Sundi Myint of SmartLogic, a dev shop that’s been building custom software since 2005 and running Elixir applications in production since 2015. Learn more about how SmartLogic uses Phoenix and Elixir. (https://smartlogic.io/phoenix-and-elixir?utm_source=podcast)
Building an Open Vehicle Control System using Elixir and Nerves with Marc, Thibault, and Loïc
For the Season 13 finale, Elixir Wizards Dan and Charles are joined by Spin42 Engineers Marc Lainez, Thibault Poncelet, and Loïc Vigneron to discuss their work retrofitting a 2007 VW Polo and creating an Open Vehicle Control System (OVCS). Using Elixir, Nerves, and Raspberry Pis, the team is reimagining vehicle technology to extend the lifespan of older cars and reduce waste—all while making the process approachable and open source.
The Spin42 team shares the technical details behind OVCS and how they use Elixir and Nerves to interact with the CAN bus and build a Vehicle Management System (VMS) to coordinate various vehicle components. They dive into the challenges of reverse engineering CAN messages, designing a distributed architecture with Elixir processes, and ensuring safety with fail-safe modes and emergency shutoffs.
Beyond the technical, the team discusses their motivation for the project—upgrading older vehicles with modern features to keep them on the road, building an open-source platform to share their findings with others, and above all-- to just have fun. They explore potential applications for OVCS in boats, construction equipment, and other vehicles, while reflecting on the hurdles of certifying the system for road use.
If you’ve ever wondered how Elixir and Nerves can drive innovation beyond software, this episode is packed with insights into automotive computing, hardware development, and the collaborative potential of open-source projects.
Topics Discussed in this Episode:
- Retrofitting a 2007 VW Polo with electric engines and modern tech
- Building an open-source Vehicle Control System (OVCS) using Elixir and Nerves
- Leveraging Elixir to interact with the CAN bus and parse proprietary messages
- Designing a Vehicle Management System (VMS) to coordinate vehicle components
- Developing custom hardware for CAN communication
- Creating a YAML-based DSL for CAN message and frame descriptions
- Building a distributed architecture using Elixir processes
- Ensuring safety with fail-safe modes and emergency shutoffs
- Using Flutter and Nerves to build a custom infotainment system
- Exploring autonomous driving features with a ROS2 bridge
- Developing remote control functionality with a Mavlink transmitter
- Testing OVCS features at scale with a Traxxas RC car (OVCS Mini)
- Challenges of certifying OVCS for road use and meeting regulatory requirements
- Encouraging community contributions to expand OVCS functionality
- Balancing open-source projects with contract work to sustain development
- The fun and fulfillment of experimenting with Elixir beyond traditional applications
Links mentioned:
https://www.spin42.com/
https://nerves-project.org/
Quadcopter https://github.com/Spin42/elicopter
https://github.com/linux-can/can-utils
https://docs.kernel.org/networking/can.html
https://github.com/open-vehicle-control-system/cantastic
https://github.com/commaai/opendbc
https://en.wikipedia.org/wiki/CAN_bus#CAN_FD
https://comma.ai/
https://en.wikipedia.org/wiki/CAN_FD
https://webkit.org/wpe/
https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/text/SD/WindowingSystems/WestonWayland.html
https://buildroot.org/
https://vuejs.org/
https://flutter.dev/
https://github.com/smartrent/elixir_flutter_embedder
https://www.raspberrypi.com/products/raspberry-pi-5/
The Rabbit Pickup https://www.hemmings.com/stories/value-guide-1980-83-volkswagen-pickup
https://www.expresslrs.org/software/mavlink
https://industrial-training-master.readthedocs.io/en/melodic/_source/session7/ROS1-ROS2-bridge.html
https://github.com/ros2/rcl
https://github.com/open-vehicle-control-system/traxxas
Contact Marc, Thibault, and Loïc: info@spin42.com
Special Guests: Loïc Vigneron, Marc Lainez, and Thibault Poncelet.