OBD Cover

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • 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.
    • ericastar76 wrote:

      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:

      ericastar76 wrote:

      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)!
      Walk softly and carry a ballistic tip.
    • @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.
    • ericastar76 wrote:

      BKL wrote:

      IIRC, there were some posts about efforts to read the data stream from the ECU over on TDS. I believe they all came before Bob managed to figure out how to reprogram the ECU.
      This was the best link I could find, but there might be others -
      Reading the data from the diagnostic port. Pics on page 5 | Polaris Slingshot Forum.
      I don't remember if it was in this thread, but I distinctly remember reading where someone posted the data stream was NOT OBDII compliant and had a different length/order, or something to that effect.
      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.
    • McClendons wrote:

      ericastar76 wrote:

      BKL wrote:

      IIRC, there were some posts about efforts to read the data stream from the ECU over on TDS. I believe they all came before Bob managed to figure out how to reprogram the ECU.
      This was the best link I could find, but there might be others -
      Reading the data from the diagnostic port. Pics on page 5 | Polaris Slingshot Forum.
      I don't remember if it was in this thread, but I distinctly remember reading where someone posted the data stream was NOT OBDII compliant and had a different length/order, or something to that effect.
      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 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!
      If at first you don't succeed, skydiving is not for you...
      // ES-DesignWorks
    • McClendons wrote:

      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:
      If at first you don't succeed, skydiving is not for you...
      // ES-DesignWorks
    • ericastar76 wrote:

      $ 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!
      Walk softly and carry a ballistic tip.
    • ericastar76 wrote:

      $ 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:
      You pervert - I love when you talk dirty
      Byte me
      MOE MONEY - MOE MODS
      :GRAYSS:
      LONE WOLF
    • MACAWS wrote:

      ericastar76 wrote:

      $ 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:
      You pervert - I love when you talk dirtyByte me
      Dirty is right... No worries though ~> I’ll be sure to do a through job blowing off the dust from your USB stick before you push it in any slots! :evil:
      If at first you don't succeed, skydiving is not for you...
      // ES-DesignWorks
    • 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 !
    • kev wrote:

      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...
      Walk softly and carry a ballistic tip.
    • ericastar76 wrote:

      $ 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:
      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).

    Slingshotinfo.com is not affiliated with Polaris Industries the makers of Polaris Slingshot in any way.