Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

My first build: CAN-Bus and GPS through Bluetooth LE

aolaol
edited May 17 in DIY builds
I've just released my first build in open source. It's reference device to showcase the new Bluetooth LE "do it yourself" APIs for GPS and CAN-Bus data in RaceChrono Pro v6.0 (beta). Let me know what you think.

https://github.com/aollin/racechrono-ble-diy-device/

Comments

  • I will follow this post, it's interesing for programmable ECU
  • Great work and good documentation!
    Thumbs up :)
  • Hello, I have a DTA ECU with CAN-bus, I try to understand your code => you make the choice of the IDs readed directly in the app ?
    I would like to build it this winter.
    Thanks
  • I'm not sure if I understand the question. The app writes to the UUID 2 to create a filter. This selects which packet IDs are read and which are just dropped.
  • Ok, I understand now. In the app, we see the CAN-IDs available and the filters are sent through the BLE. Am I right ?
    Your code is very nice but complicated for me.
    I read some documentations on the BLE Characteristics but I have also to understand the CAN Bus documentation.
    Somes years ago, I read the Serial Stream on a old ECU with an Arduino, it was easier. :)
    Thanks for your explanations, I will order the parts and try it.
  • Hello,
    I received my parts and I look at more your code.
    The Arduino IDE doesn't want to compile because the Adafruit's library has been modify.
    I made two corrections but I can't test it for the moment.
    1°:
    void canBusFilterWriteCallback(BLECharacteristic& chr, uint8_t* data, uint16_t len, uint16_t offset) {
    to
    void canBusFilterWriteCallback(uint16_t offset,BLECharacteristic* chr, uint8_t* data, uint16_t len ) {

    2°:
    void bluetoothStart() {
    Bluefruit.configPrphBandwidth(BANDWIDTH_MAX);
    Bluefruit.begin();
    uint8_t mac[6] = { 0, 0, 0, 0, 0, 0 };
    Bluefruit.Gap.getAddr(mac);
    to
    void bluetoothStart() {
    Bluefruit.configPrphBandwidth(BANDWIDTH_MAX);
    Bluefruit.begin();
    uint8_t mac[6] = { 0, 0, 0, 0, 0, 0 };
    Bluefruit.getAddr(mac);

    It compile now, I don't use the GPS'code.
    If you can look at and say me if I am in the good way.

    Best Regards
  • Probably just different version of the Adafruit libraries. I believe your change mirrors the functionality exactly. I will revisit the project at some point.
  • I will try on my car ASAP and keep you informed.
Sign In or Register to comment.