All Projects → P1kachu → talking-with-cars

P1kachu / talking-with-cars

Licence: other
CAN analysis - Use your car as a gamepad!

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to talking-with-cars

awesome-automotive-can-id
🚜 unpretentious attempt to collect CAN IDs and payloads for various car brands/models in one place.
Stars: ✭ 104 (+9.47%)
Mutual labels:  can, automotive
ecu-simulator
OBD-II ECU Simulator
Stars: ✭ 24 (-74.74%)
Mutual labels:  can
TC1791 CAN BSL
CAN Bootstrap Loader (BSL) for Tricore AudoMAX (TC1791 and friends), including arbitrary read/write as well as compressed read functionality.
Stars: ✭ 25 (-73.68%)
Mutual labels:  can
can2mqtt
Bidirectional CAN-Bus to MQTT-Bridge
Stars: ✭ 39 (-58.95%)
Mutual labels:  can
NodeMCU-BlackBox
ESP8266 based CAN-Bus Diagnostic Tool
Stars: ✭ 28 (-70.53%)
Mutual labels:  can
CANopen-monitor
An NCurses-based TUI application for tracking activity over the CAN bus and decoding messages with provided EDS/OD files.
Stars: ✭ 15 (-84.21%)
Mutual labels:  can
evDash
EV dashboard - software for small dev boards connected to the car via obd2 BLE4 or CAN bus.
Stars: ✭ 83 (-12.63%)
Mutual labels:  can
f1-telemetry-client
A Node UDP client and telemetry parser for Codemaster's Formula 1 series of games
Stars: ✭ 128 (+34.74%)
Mutual labels:  automotive
cpp-can-isotp
C++ implementation of CAN ISO 15765-2 also known as CAN ISO transport protocol. CPP CAN isotp.
Stars: ✭ 14 (-85.26%)
Mutual labels:  can
TeslondaServer
The back-end, server app for the Teslonda Dashboard on Raspberry Pi.
Stars: ✭ 20 (-78.95%)
Mutual labels:  can
pyuavcan
Python implementation of the Cyphal protocol stack.
Stars: ✭ 91 (-4.21%)
Mutual labels:  can
public regulated data types
Regulated DSDL definitions for Cyphal (standard and third-party)
Stars: ✭ 62 (-34.74%)
Mutual labels:  can
107-Arduino-MCP2515
Arduino library for controlling the MCP2515 in order to receive/transmit CAN frames.
Stars: ✭ 35 (-63.16%)
Mutual labels:  can
pcan cantact
🤖 XCAN firmware for CANtact ( CANable ) or any other similar boards.
Stars: ✭ 192 (+102.11%)
Mutual labels:  can
datalinkengineeringcanopen
CANopen SDK (API) for Windows developers. Supported adapters: Kvaser, Ixxat, CANUSB, CAN232, Peak PCAN, Copley Controls, USBTIN and more.
Stars: ✭ 26 (-72.63%)
Mutual labels:  can
openHCAN
Hausautomatisierungsloesung auf CAN-Bus Basis.
Stars: ✭ 16 (-83.16%)
Mutual labels:  can
PYCAN
Control ZLG-USBCAN with Python
Stars: ✭ 32 (-66.32%)
Mutual labels:  can
can-prog
Command-line tool to flashing devices by CAN-BUS
Stars: ✭ 66 (-30.53%)
Mutual labels:  can
can-go
Controller Area Network (CAN) SDK for Go.
Stars: ✭ 113 (+18.95%)
Mutual labels:  can
JavaCAN
A simple JNI wrapper for the socketcan API provided by the Linux kernel. As it is wrapping a Linux Kernel API, it is intended for use on Linux only.
Stars: ✭ 23 (-75.79%)
Mutual labels:  can

Playing with CAN

This was the subject of my presentation of this year's LSEWeek. Slides (english) and the video (french) are respectively available here and here

Update 2017: This was also part of our talk at 34c3. slides and stream now available!

Sum up

I was curious about learning what makes a car. As time went by, I started taking a look at cars internal systems, and finally ended up playing with CAN. This repo is all of what I understood, read, wrote, and experienced with.

The repo is split in different parts:

  • can_logs: Different CAN output while testing different things on different vehicles
  • canpad: FaaG (Fiat as a Gamepad) - Play video games with your Fiat 500
  • docs: PDFs and documentation I used during my analysis
  • notes: Written notes and sum ups on different subjects (OBD, CAN, environement setup, ...)
  • scripts: python-can scripts to play with the CAN bus

Tools and cars used:

  • PiCan2
  • VW Polo (6R, 6C) 1.2 (2009-..., 60 CH)
  • Fiat 500c 69ch (2010)
  • Lancia Voyager (2014)

CANPad

CANPad allows one to pilot in video games by using real cars via CAN. This repo contains two versions:

  • v1: Creates a virtual controller via libuinput to control simple games that don't require real controllers (like VDrift). Tested on ArchLinux with VDrift. Demonstration video available here
  • v2: Allows one to play more interesting games (like Dirt Showdown) on Linux by hijacking a real XBox like controller. Tested on ArchLinux with Dirt Showdown (Steam version) with an official XBox controller. Demonstration video available here

Some codes are manufacturer specific (brakes pedal, clutch, steering wheel, handbrake) and thus will only work with Fiat cars (maybe even Fiat 500 only, maybe even Fiat 500c 2010 only, etc, I don't know). Feel free to try this on different cars, and submit via pull requests new versions of CANPad!)

"notes" disclaimer

These notes are a sum up of what can be found on the internet or in the various documents presents in ../docs. Everything comes from my understanding of what I read and thus must be taken with care, since mistakes can be (and have been) made during these researches.

For any question, feel free to send me an email at [email protected]

Other links

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].