Git Product home page Git Product logo

handshake's Introduction

Bosch handshakes on the CAN bus

This project is about understanding the challenge-response process used in Bosch e-bike systems, with the aim of producing compatible BMS boards. A compatible BMS would allow people to build custom batteries compatible with Bosch bikes, as well as to repair batteries with damaged BMS.

Status

I verified that:

  • The 'challenge' consists of the messages with arbitration IDs 0x72 and 0x73, sent from the bicycle
  • The 'answer' consists of the messages 0x80 and 0x81, sent from the battery
  • Comparing two different batteries working with the same bicycle:
    • The challenges are the same towards both batteries
    • The answers are different between the two batteries
    • But a given battery will always give the same answers to the same challenge
  • It is not clear why does both the challenge and the answer consist of 2 CAN frames
    • The content of 0x72 seems to predict the content of 0x73
    • The content of 0x80 seems to predict the content of 0x81

I recorded a lot of handshakes, but I got stuck trying to learn how to generate an acceptable answer for the challenge. I would appreciate help from someone with more computer science background.

I also learned that the challenges are repeating, but it seems it takes a super long time to capture enough to be able to just ‘look up’ the right answer without understanding the process.

main.py

This program can be used to automatically record handshakes from a working system.

repetitions.py

The scripts in this file were used to quantify the progress in recording handshakes, and trying to recognise patterns.

crosscheck.py

This script is about comparing the data recorded from two different batteries. (Takes a long time to run!!)

crosscheck.txt

This is the output of crosscheck.py. It shows the differences in the answers to challanges between different batteries.

list_scott.csv

This file contains handshakes recorded from one battery.

list_badconnector.csv

This file contains handshakes recorded from another battery.

handshake's People

Contributors

gregyedlik avatar nicoyed 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

flemichellec

handshake's Issues

Reset BMS after replacing battery

We rebuild these Bosch bike batteries.

What have you uncovered why the BMS becomes inoperable after being de-powered (battery removed).

The way we have been managing this is to connect power to the BMS separate to the battery before it is disconnected and keeping the bms powered during the repair process.

Have you uncovered enough to make a device to reset the bms after it loses power?

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.