Giter Site home page Giter Site logo

civic-hack's Introduction

Civic CAN Hack - related code & packages

Pix Moving


This repository contains packages, code and documentation on how we hacked an Honda Civic 2016 Touring for the pixmoving moveit hackathon.

You can explore our decisions and things we tried in our little journal.

Screenshots

DBW Lane Change

Workin on the Civic

All pluged in!

Features

  • Uses an XBox controller as an input device
  • Controls the steering in a torque and rate limited way when rolling above 20kph (EPS firmware limitation)
  • Full braking authority at any speed

Stuff Left To Do

  • Achieve full steering capability at any speed. Could be done by hacking the steering torque sensors.
  • Achieve full throttle control at any speed. Could be done by using the newly released comma pedal.

Try it yourself

Hardware requirements

  • Panda + USB cable
  • Either a Girafe or a good old soldering iron/crimper + an OBD-II connector.
  • Honda Civic Touring 2016 (should work also with other 2016-2018 Civics with LKAS functionnality)
  • Decent laptop + Xbox Controller
  • Bosch ScanTool to reset those errors.

Software Dependencies

"Panda in the middle attack"

In order to fake the messages comming from the camera, you need to use the panda as a gateway. To do so, you need to cut the can wires comming from the ADAS camera to insert the Panda in the middle.

In our case, can 1 (see Panda's Hardware Guide) was plugged to the camera and can 0 was wired to the rest of the car.

If you do this without a Giraffe, don't forget to insert CAN termination resistors between CANH and CANL on the newly created CAN subnet (120Ohms near the camera and 120Ohms near the Panda).

Now you need to flash the Panda with the right software branch (see below). In order to do this hack the Panda will block the relevant incomming messages from the camera.

The tricky part is that the relevant scripts need to be running and boradcasting messages before the car is booted up. Indeed, the checksum and the counters contained in those messages need to always be consistent. If the car/EPS detects an error, it may deactivate its steer/brake by wire functionnality. You may need to use an OBD-II ScanTool to reset those errors.

Flashing the panda

See our forked repo of the Panda's firmware repo: https://github.com/pixmoving-moveit/panda

Use the moveit-hackathon-forward-can-1-to-0 branch to flash the panda to do the full bus forwarding.

Use the moveit-hackathon-steer-brake-gas branch to flash the panda in order to do the "Panda in the middle attack".

Unbricking the panda

If ever you modifiy the panda's firmware and by doing so you brick your panda, you can either use the panda paw sold here. Or open the panda's case and short the 5V from USB plug to the boot0 pin to enter DFU mode while powering up the panda.

Credits

Thanks to comma.ai for its incredible software, databases and hardware. Without it, the hacking process would have been a lot more tedious.

License

MIT

civic-hack's People

Contributors

awesomebytes avatar mlandry1 avatar spikyknox avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

civic-hack's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.