• The ECU has two sides. One is for talking to things outside the vehicle - OBD-II or in our case Digital Wrench. It is used by scan tools (diagnostic thingies) to see and tweak what is going on in a generic way.


    The other side of the ECU talks to all the other computer thingies in the vehicle. That is CAN Bus. Speed sensors, ABS, stability control, fuel control, blah, all talk to the ECU on the CAN bus.


    Given the 10s of millions of vehicles produced each year, micro-controllers (little computers) that speak CAN are abundant and affordable.


    This computer CPU talks CAN, and is $7.20:
    MKE18F512VLL16 NXP / Freescale | Mouser
    It also speaks I2C, SPI, UART, so connecting to an Arduino or Raspberry Pi should be cakewalk.
    Tons of other choices.


    Sniffing the data should be very easy. Decoding what 0x1a 0x23 0x11 0xb6 0xff 0x23 means, is likely to be quite a chore. Though, if you could id the parts you want to talk to, a data sheet downloaded for free might be a big step forward.


    Fun idea, worth looking into further. Ya' ain't gonna be able to update the tune/ECU that way, though.

  • To give the ‘non-technical’ in the room an idea of what I’m looking to do (I have a bunch of stuff I want to make first and this ties into that later on in my project plan)... just YouTube any video on reading “Decode CAN Data” (or something like that).


    Here’s a link I quickly grabbed...


    I don't remember the exact protocol, but the MEFI does not use a standard CAN bus protocol used in most vehicles. I do not have any list of process id codes for it either, sorry :(

  • What she said:

    If we can access the raw can bus data and somehow determine the pid’s, we can easily wire a Bluetooth arduino module to a laptop or ant+ device a Garmin VIRB could read (just think of all the cool video overlays we could make)!

    What I read:



    (just think of all the cool video overlays we could make)!

    In my defense, I was left unsupervised.

  • @SaltyClownNY referenced this earlier. Just thought I'd provide a link - OBD Diagnostics. I assume you could use the output from the OBD2 software to feed into a microCPU card to produce OBDII-compliant output. Won't allow anyone to change the ECU programming, but should support the use of OBDII-compliant heads up displays/instrumentation.

  • Essentially, I would take a USB-to-CAN FD reader (may have to make one on the Arduino if they are too expensive) and stream that data to a few opensource apps I know which could help me determine some of the PID’s which are stored in hexadecimal. Once I know those ID’s, I would then make an 8-pin connector, wire-up a micro pcb board to route that data via Bluetooth, and put some micro process in an OLED (or something to that effect) for visual output.
    EASY PEAZY!! :thumbsup:

    I had to check which site I was on for a minute.......I thought the Chinese had hacked here! ;) I love playing with tech and hacking stuff, but am realizing that I've gotten really old. I understand everything you are saying, but would have NO IDEA how to do, or where to start. ?( Makes me realize i "used to be" an electrical engineer.

  • I had to check which site I was on for a minute.......I thought the Chinese had hacked here! ;) I love playing with tech and hacking stuff, but am realizing that I've gotten really old. I understand everything you are saying, but would have NO IDEA how to do, or where to start. ?( Makes me realize i "used to be" an electrical engineer.

    I have a couple of projects I want to build out before taking this on... but this functionality does tie into a couple ideas that I have for making some really unique and cool stuff!

  • I had to check which site I was on for a minute.......I thought the Chinese had hacked here! ;) I love playing with tech and hacking stuff, but am realizing that I've gotten really old. I understand everything you are saying, but would have NO IDEA how to do, or where to start. ?( Makes me realize i "used to be" an electrical engineer.

    Don't feel bad. I finished High School in 1971. I took 3 years of Electronics starting the day after the Band Director told me since I worked with the Football Team and wasn't going to be in the Marching Band that he couldn't give me higher than a 'C'. We weren't even introduced to transistors until mid-way thru the second year and integrated circuits barely appeared in the curriculum during third year! I still keep a shortcut link to Ohm's Law on my computer desktop.
    After High School, I studied Pre-Engineering in college (didn't require a foreign language :D ), but got tired of going to school and volunteered for the draft and then extended in the Army to attend foreign language training (German) for 8 months :S . Fortunately, that led to multiple opportunities for me before I retired 35 years later.
    While in the Army, I took several computer programming courses, but never managed to get beyond Basic and the use of GoTo statements which suddenly became verboten, although it always struck me as odd that If...Then statements function as a GoTo with a little more control than a standalone GoTo. I still have an interest in learning to program, but just never seem to get inspired enough to do so.

  • $ call motivateBKL [2]


    Private Sub motivateBKL (byVal typeOfMotivation As Byte)
    Dim strMotivationMessage As String
    Select Case typeOfMotivation
    Case = 1
    strMotivationMessage = “Quit making excuses and learn to program you wuss!”
    Case = 2
    strMotivationMessage = “You got this... programming is easy!”
    Case = 3
    strMotivationMessage = “I need to be a HOT nerd like Erica... time to brush up on my nerd speak!”
    End Select
    Echo.writeLine strMotivationMessage
    End Sub


    :evil:

  • The Geek is Strong in This One!

    In my defense, I was left unsupervised.

  • You pervert - I love when you talk dirty
    Byte me


  • Oh and have you ever been on a long road trip with an accountant and a salesman , Its enough to give you a headache, the salesman is always in the front seat chomping at the bit, trying to get the horse ahead of the cart, and the accountant is always back there, staring out the back window and telling you where you've already been !

  • Oh and have you ever been on a long road trip with an accountant and a salesman , Its enough to give you a headache, the salesman is always in the front seat chomping at the bit, trying to get the horse ahead of the cart, and the accountant is always back there, staring out the back window and telling you where you've already been !

    A good accountant will tell you where to turn - based on where you've been...

    In my defense, I was left unsupervised.

  • A couple of anecdotes from my programming escapades -


    While studying engineering (before volunteering for the Draft), I had to write a Fortran program to solve a problem. I passed (the program simply needed to execute and produce the correct answer to pass), but my card stack was twice the size of the next largest stack!


    Many years ago, I wrote a short Adventure-type maze generator for a class. Lacking an adequate grasp of string manipulation, I assigned a Prime number to each of the possible directions (N=3, E=5, S=7, W=11, Up=13 and Down=17). I think I also used the value 19 to represent a cell that had an automatic teleport feature. I then multiplied each of the allowable directions for that cell so that I could then simply divide by the possible direction Primes to determine if the player had entered a valid direction of travel. If a cell had a North exit and a Down exit, it was assigned the value of 3 x 17 or 51. If the player tried to go South (7), I then divided the cell value (51) by the appropriate direction Prime (7) which yielded a non-Integer number and the player was told he couldn't go that direction. Seemed perfectly logical to me, but when I explained my methodology to the teacher, you would have thought I had three heads and was speaking a non-Earth language. I don't think anyone in the class understood what I did.


    BTW, I could never "be a HOT nerd like Erica" as I look terrible in a one- or two-piece swimsuit! I probably qualify as a nerd, but definitely not HOT (maybe reasonably good-looking in my own mind).