ElectricMotorcycleForum.com

  • April 26, 2024, 04:49:41 PM
  • Welcome, Guest
Please login or register.

Login with username, password and session length
Advanced search  

News:

Electric Motorcycle Forum is live!

Pages: [1] 2

Author Topic: Decoding range from the CANBUS using a Raspberry Pi (LONG!)  (Read 6705 times)

CrashCash

  • Sr. Member
  • ****
  • Posts: 322
  • Denizen of Doom since '88
    • View Profile
Decoding range from the CANBUS using a Raspberry Pi (LONG!)
« on: April 11, 2017, 04:08:47 AM »

Greetings. This is kind of long...

I went to Daytona during Bike Week on my 2015 SR.
I found out that the bike would make it from Orlando to Daytona without charging, which was a surprise.
This was a surprise because I stop to charge the bike far more often than I need to, since I don't really have a mental handle on the range versus distance to the things I'm interested in.
The range *says* I can get to Daytona. Does it mean it? Can I trust it? It would be nice if I had real-time feedback.

I figured I needed to write an Android app to display a map with a range circle continuously updated from the bike.
This meant I needed to buckle down and decode the CANBUS data, if possible.

I managed to decode not only the range, but also the speed, mode selected (sport/eco/custom), motor temp, motor RPM, and the error number(s) on dash.

Here are my notes on that.

CANBUS is available on the OBD-II connector located above and behind the motor next to the accessory charging port, on the right-hand side.
On my 2015, it's buried deep in there. It's like birthing a cow. On the newer models, it's under the seat.

Installation:
* Bolt PiCAN 2 Duo board to Raspberry Pi
$70 from http://copperhilltech.com/pican2-duo-can-bus-board-for-raspberry-pi-2/
I should have actually used a plain PiCan 2 for $47 and had a nice DB-9 connector
http://copperhilltech.com/pican-2-can-interface-for-raspberry-pi/

* I'm not going to go into much detail on the Raspberry Pi stuff because there's tons of tutorials that explain things far better than I can.
Also, since my desktop environment is Debian Linux, I don't how you would do things like ssh or scp in Windows.

* Install Raspbian Jessie Lite on the SD card.
Note that ssh is now disabled by default, as per https://www.raspberrypi.org/blog/a-security-update-for-raspbian-pixel/
This kills me because I usually use my Raspberry Pis headless (without a keyboard and monitor) so I can't just run raspi-config and enable ssh.
To enable ssh, loopback-mount the image on your Linux box, and put a file named "ssh" in the /boot directory on the VFAT partition. This enables it for the next boot only, so be sure to immediately enable ssh permanently through raspi-config.

* Hook the Raspberry Pi up to USB power and your ethernet, boot it up and enable ssh through raspi-config.

* Edit /boot/config.txt and add:
dtparam=spi=on
dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25
dtoverlay=mcp2515-can1,oscillator=16000000,interrupt=24
dtoverlay=spi-bcm2835-overlay

* Bring the interfaces up in /etc/rc.local
ip link set can0 up type can bitrate 500000
ip link set can1 up type can bitrate 500000

* Edit /etc/wpa_supplicant/wpa_supplicant.conf and add the wi-fi info for your network.
See https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md
This is so you can ssh into it when it's in your saddlebag and not physically connected to your ethernet.
I also added an entry for the portable hotspot on my Android phone, so I could communicate with it when I was away from my home network.
I use the ConnectBot app to ssh to the Raspberry Pi from the phone.
Note that when you're using the Android portable hotspot, you can use the "arp" command on the phone (or look at /proc/net/arp) to see the IP addresses of attached devices like the Pi, so you know where to ssh.

* Fetch test software
wget http://www.skpang.co.uk/dl/can-test_pi2.zip
Unzip it, set the executable bits, and copy to /usr/local/bin
You probably want to just delete "cansend" for safety's sake.
Actually to say it stronger: DON'T EVER TRANSMIT DATA USING CANSEND

* Install Python 3.x CANBUS module
apt-get install python3-pip
pip3 install python-can

* Connect the PiCAN2 to the CANBUS via screw terminal and an OBD-II cable.
You can get the SparkFun OBD-II to DB-9 Cable p/n CAB-10087 for $10
I just cut the DB-9 off the cable and toned the wires with the DMM continuity function to find pins 6 (red wire) & 14 (yellow wire)

* Throw the Raspberry Pi in a saddlebag, and connect the USB power either to a portable battery, or to a USB converter in the "cigarette lighter" jack.
If you use the bike power jack, then you must ssh to the Raspberry Pi and shut it down gracefully using "poweroff" before turning the bike off, or you can corrupt the SD card.

* Store traffic for analysis by using:
candump -e can0 >dump.txt
You get output like:
  can0  1C0   [8]  20 00 10 07 17 48 72 00
  can0  408   [8]  00 1A 19 01 00 61 00 FF
  can0  080   [0]
  can0  701   [1]  05
  can0  181   [8]  00 00 00 00 FD FF 06 00
  can0  481   [8]  00 00 29 02 00 00 00 00
  can0  501   [8]  00 00 B2 02 93 02 00 74
  can0  381   [8]  18 07 20 00 00 23 07 00
  can0  281   [8]  00 00 00 00 77 00 2F 00
  can0  506   [8]  08 68 42 02 0F 00 FF FF
  can0  506   [8]  09 68 40 02 0F 00 FF FF
  can0  240   [7]  91 0F 00 00 00 00 61
  can0  340   [8]  24 04 00 00 00 00 00 00
  can0  440   [8]  BC E2 01 00 CC 2B 5C 12
  can0  540   [8]  00 00 00 00 67 16 CA 1B
  can0  3C0   [6]  85 55 02 00 00 00
  can0  189   [8]  61 00 42 56 00 02 00 01
Note that everything is in hexidecimal (base 16)
Each line is a "message"
1st column is the interface name.
2nd column is the PID (Parameter ID)
3rd column is the number of data bytes
4th column is data byte #0
5th column is data byte #1
 ...
11th column is data byte #7
I've not seen more than 8 data bytes.

* candump tricks:
Only show messages with PID 0x123:
candump can0,0x123:0x7FF

Only show messages with PID 0x123 or PID 0x456:
candump can0,0x123:0x7FF,0x456:0x7FF

* You can also visually monitor data in real time with cansniffer.

* The command "awk '{ print $2 }' dump.txt | sort | uniq" shows the following PIDs repeat continously:
0x080, 0x181, 0x188, 0x189, 0x1C0, 0x240, 0x281, 0x288, 0x289, 0x2C0, 0x308, 0x309, 0x340, 0x381, 0x388, 0x389, 0x3C0, 0x408, 0x409, 0x440, 0x481, 0x488, 0x489, 0x501, 0x506, 0x508, 0x509, 0x540, 0x701

* The brake switches do not appear to be connected to the CANBUS. Nothing seems to change in candump/cansniffer.

* Note that when you spin the rear wheel, the speed & motor RPM both update on the dashboard.
Speed is probably calculated from RPM using a formula based on the sprocket sizes (belt reduction) and nominal tire circumference.

* I wrote "print_range" to run on the Raspberry Pi from the phone, so I could display the range from CANBUS while I rode, and confirm it matched the dashboard.
That is, I enabled the Android portable wi-fi hotspot, ssh-ed into the Raspberry Pi from the phone, and ran print_range. This continuously prints output, and I could then mount the phone on the bike with the RAM mount and ride down the road.
This is also an example of how to fetch and decode CANBUS data in a Python script.

Known info for each PID:
--------------------------------------------------------------------------------
0x080
No data bytes. Some sort of timing/sync?
--------------------------------------------------------------------------------
0x240
Current mode == byte 0
0x85 (133) (binary 1000 0101) Sport
0x89 (137) (binary 1000 1001) Eco
0x91 (145) (binary 1001 0001) Custom
I noticed this with cansniffer.

Speed (km/hr) == (byte 2+256*byte 3)/100
Used same procedure as range.
--------------------------------------------------------------------------------
0x281
Motor temp (degrees C) == byte 6
Used same procedure as range.
Good thing I realized it's metric, because the C=(F-32)x5/9 crap would have killed me.
--------------------------------------------------------------------------------
0x340
Motor revolutions (RPM) == byte 4+256*byte 5
Used same procedure as range.

Error readout on dash == byte 6
0x00 (0)  No faults
0x2C (44) Kill switch on
0x2D (45) Kickstand down
(See manual for complete list)
One transmission for every error, so if there's 2 errors, there will be 2 0x340 frames.
I noticed this with cansniffer.
--------------------------------------------------------------------------------
0x440
This is a two-byte "word" value least-significant-byte first, in units of "10 meters"
This tells me the architecture is metric and little-endian, which is valuable information.

range (km) == (byte 4+256*byte 5)/100
range (miles) == (byte 4+256*byte 5)/160.9

The procedure I used to decode it:
1. I filmed the dashboard range display with my phone on several rides. I also ran candump.
2. I pulled an image every second from the videos: ffmpeg -i input.mp4 -vf fps=1 out%05d.png
3. I reduced this by hand to a text file with the range and the frame it changed using geeqie and emacs. As you can imagine, this was a lot of work, dealing with over 1200 frames on one ride.
   78.2,1
   78.3,46
   78.2,56
   78.1,61
   78.2,66
   78.4,71
   78.5,81
   78.7,86
    ...
4. I imported this into a spreadsheet and charted it.
5. I wrote a Python script (gen_graphs) to graph all the single and both double-byte representations of every possible slice of the data for each PID from the candump output.
6. I compared the chart with all of the generated graphs until I found one where the shape matched.
7. I experimented until I realized the unit was metric to make the numbers match. This took a while because my original data was in miles. When I divided it by 161 and it matched, I was wondering why the weird constant, then I remembered that there's 1,609 meters in a mile and figured out it was metric.
--------------------------------------------------------------------------------
0x508
bytes 0-2, LSB first.
Some sort of up-counter incremented every second.
Total time running? (Hobbs meter?)
--------------------------------------------------------------------------------
0x509
bytes 0-2, LSB first.
Some sort of up-counter incremented every second.
Total time running? (Hobbs meter?)
--------------------------------------------------------------------------------
0x701
Always one data byte of 0x05. Some sort of timing/sync?
--------------------------------------------------------------------------------

There is different traffic when the bike is charging, but I didn't look at that much.

I have the Android range app written and working, except it needs me to type in the range number. Next up is getting that data via Bluetooth from the Raspberry Pi, so I have to figure out the Python Bluetooth libraries and the Android Bluetooth environment. That is not going to be fun.

I also want to mount the Raspberry Pi filesystems read-only to avoid SD card corruption at power-off. Other people have done this.

I considered switching to an Arduino, as an Arduino is a heck of a lot smaller than a Raspberry Pi, and it can live on straight +12VDC.

However, I'd need to code in C, which would suck, and there's confusion about what Bluetooth and CANBUS "shields" are compatible with which flavor of Arduino. Maybe some day when I get bored again.

Well, I hope this is interesting and/or useful to somebody out there. Enjoy.
Logged
'07 FJR-1300 & '15 Zero SR

Doctorbass

  • Battery tech
  • Hero Member
  • *****
  • Posts: 968
    • View Profile
    • Endless-sphere.com
Re: Decoding range from the CANBUS using a Raspberry Pi (LONG!)
« Reply #1 on: April 11, 2017, 05:03:58 AM »

That is very nice weok!

Maybe you could use a more realistic map of range like this one:

https://www.freemaptools.com/how-far-can-i-travel.htm

It calculate every single road !!

Doc
Logged
Zero Drag racing bike: 12.2s 1/4 mile and 7.3s 1/8 mile

T w i t t e r  :     http://twitter.com/DocbassMelancon

Shadow

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1085
  • 130,000mi electric since 2016
    • View Profile
Re: Decoding range from the CANBUS using a Raspberry Pi (LONG!)
« Reply #2 on: April 11, 2017, 06:17:21 AM »

Very nice work.

Feel free to share via https://github.com/zero-motorcycle-community

If you spy on the bluetooth HCI serial messages of the official Zero Motorcycles app (a feature of newer Android builds in developer section) there might be all this data you are looking for without having to do the CANBUS.

Very interesting would be a live display of the system voltage while riding and charging.

Some idea I had was to transmit details of the charging and range capability status over APRS amateur packet radio (example community site showing this data for my call sign AI6FS). Some common uses of this APRS system is to communicate GPS location, weather station data, solar battery charging voltages, and a short status message;  there are small APRS transceivers which can take additional inputs as serial data or analog voltages.  See APRSdroid android app for an example of this;  you'll need a valid amateur radio license in your country to be allowed to transmit.
Logged

Justin Andrews

  • Hero Member
  • *****
  • Posts: 1032
    • View Profile
Re: Decoding range from the CANBUS using a Raspberry Pi (LONG!)
« Reply #3 on: April 11, 2017, 02:29:27 PM »

*bows down*
Well done CrashCash!
Logged
Zero 2015 SR (+PT);
Yamaha Diversion 900

remmie

  • Sr. Member
  • ****
  • Posts: 318
    • View Profile
Re: Decoding range from the CANBUS using a Raspberry Pi (LONG!)
« Reply #4 on: April 11, 2017, 02:53:25 PM »

I considered switching to an Arduino, as an Arduino is a heck of a lot smaller than a Raspberry Pi, and it can live on straight +12VDC.

However, I'd need to code in C, which would suck, and there's confusion about what Bluetooth and CANBUS "shields" are compatible with which flavor of Arduino. Maybe some day when I get bored again.

Well, I hope this is interesting and/or useful to somebody out there. Enjoy.

Hi CrashCash

Great work!!

If you're looking at arduino, consider looking into the Leonardo CANBUS board from hobbytronics. It acts as an arduino and has CAN capability and 12V to 5V converter all on a very small PCB. I used it on my Flatpack S quad charger to set the voltage and current (also via CANbus) and it works perfectly.
I imagine it just would take a Bluetooth module or an LCD or OLED display to be able to show the data in real time.

http://www.hobbytronics.co.uk/leonardo-canbus


Logged
Current : Red Premium Zero SR/F (ordered May 25, delivered August 23 2019) with Rapid charger for 12kW charging
Former : White Zero SR 2018 ZF14.4 kWh (17.500 km)
Former : Black Zero SR 2014 ZF11.4 kWh (25.000 km)
SR's outfitted with Homemade "Supercharger" 6x eltek Flatpack S (12 kW)

MorbidBBQ

  • Jr. Member
  • **
  • Posts: 83
    • View Profile
Re: Decoding range from the CANBUS using a Raspberry Pi (LONG!)
« Reply #5 on: April 13, 2017, 06:42:05 PM »

Wow, I don't trust my 2013 S 12.5 to make it from Melbourne airport to Orlando airport.  61 miles at highway speed where 70mph is slow...

Once I get an upgraded charger I'll do it with a pit stop in St. Cloud.

What battery/charger setup do you have?

Sent from my XT1635-02 using Tapatalk

Logged
2013 Zero S
2007 Yamaha FZ6
2005 Ninja 250
1983 Honda CSR

CrashCash

  • Sr. Member
  • ****
  • Posts: 322
  • Denizen of Doom since '88
    • View Profile
Re: Decoding range from the CANBUS using a Raspberry Pi (LONG!)
« Reply #6 on: April 13, 2017, 11:24:15 PM »

Thanks for the nice words, everyone. I'm kind of surprised myself I was able to dig this out. I was honestly expecting to have to give up.

Maybe you could use a more realistic map of range like this one:

https://www.freemaptools.com/how-far-can-i-travel.htm
Dang! That's a nice site.  The site I normally use was http://obeattie.github.io/gmaps-radius/ which is pretty primitive.

My app just uses the raw Google Map, and I don't even ask for POIs. It's not much so far.

If you spy on the bluetooth HCI serial messages of the official Zero Motorcycles app
Actually, I tried that a year or so ago. I recognized my bike's VIN & model going over, but I never made any further progress. On my copy of the app, I don't see a range display, so I kind of assumed it's not sent by the bike.

On going to Arduino - I've had kind of a breakthrough there.

I was searching F-Droid (open source Android app repository) for Bluetooth examples, and they had apps to communicate with ELM327-based OBD-II Bluetooth dongles. Wait... what are those?!?!

I discovered that these dongles are barely larger than the cap on the OBD-II plug, they live off the power from the plug, the ELM-327 commands are documented, and they can do CANBUS. Plus they're cheap. The more expensive ones even power down when not in use, to save battery. They sit there and transmit the CANBUS messages you tell it you're interested in.

That's PERFECT. All I'd need is one of these and my app. That's about as turn-key simple as it could get. So I ordered a couple from Amazon and I'm waiting for delivery. I got a "ScanTool OBDLink LX Bluetooth" (good) & a "Kitbest OBD2 Bluetooth Scanner" (cheap)

And yes, I'll throw the app & source code up on GitHub & F-Droid.

One of these days, I need to write up my automatic garage door. I have a Bluetooth button on my helmet, and I press it to start a phone app that monitors the GPS and tells a Raspberry Pi to open the door when I get within 70 meters, and closes it behind me.

Wow, I don't trust my 2013 S 12.5 to make it from Melbourne airport to Orlando airport.  61 miles at highway speed where 70mph is slow...

Once I get an upgraded charger I'll do it with a pit stop in St. Cloud.

What battery/charger setup do you have?
I have my 2015 SR with a power tank and 2 Elcon 2500s from Hollywood Electric, but I don't seem to need them to go to Titusville and back. I can ride over to Space View Park, watch a launch, and ride back w/o charging. I can also go up to Sanford and back without charging. Those are pretty much the limits for me. I'm on the east side of Orlando, directly south of UCF in "Waterford Lakes"

However, yes, I keep it religiously to 65-70. which is not too bad going down 50. Going down I-95 or I-4 is not so fun, but I just make certain to stay in the right lane.

Since I started watching range in my videos, it's AMAZING how going over 65 eats battery. Holy cow. I really wish I had a Vetter dustbin style fairing.

When I go to Daytona, there's a Tanger Outlet mall that has a VERY nice charging station setup, so I go eat and shop for an hour or so.

It's really hard to get to Tampa. The only stations on I-4 are in Lakeland, and by that time, I'm pretty much down to my last couple Duracells worth of charge.

However, I did stop at a Lakeland Mercedes dealership where the salesman knew what a Zero, a Harley Livewire, a MotoCzysz E1pc, and a Brammo was. That was nice.
Logged
'07 FJR-1300 & '15 Zero SR

mrwilsn

  • Hero Member
  • *****
  • Posts: 693
  • 2014 Zero S / 2017 Zero SR
    • View Profile
Re: Decoding range from the CANBUS using a Raspberry Pi (LONG!)
« Reply #7 on: April 14, 2017, 01:08:46 PM »




One of these days, I need to write up my automatic garage door. I have a Bluetooth button on my helmet, and I press it to start a phone app that monitors the GPS and tells a Raspberry Pi to open the door when I get within 70 meters, and closes it behind me.


That's awesome! I was just talking to some forum members the other day and I was saying I want to do exactly this (minus the need to hit the button on your helmet) so that I can Batman into my garage like it's a bat cave...LOL

We were spit ballin on how to do it and there was some debate on whether you might end up in a Benny Hill episode with the garage door getting confused going up and down. I figured using GPS to open and light sensor to close would solve the problem.  Can't wait to see some details of your setup. [emoji1]

Sent from my Nexus 6P using Tapatalk

Logged
2014 Zero S

CrashCash

  • Sr. Member
  • ****
  • Posts: 322
  • Denizen of Doom since '88
    • View Profile
Re: Decoding range from the CANBUS using a Raspberry Pi (LONG!)
« Reply #8 on: April 17, 2017, 03:19:01 AM »

One of these days, I need to write up my automatic garage door. I have a Bluetooth button on my helmet, and I press it to start a phone app that monitors the GPS and tells a Raspberry Pi to open the door when I get within 70 meters, and closes it behind me

That's awesome! I was just talking to some forum members the other day and I was saying I want to do exactly this (minus the need to hit the button on your helmet) so that I can Batman into my garage like it's a bat cave...LOL

We were spit ballin on how to do it and there was some debate on whether you might end up in a Benny Hill episode with the garage door getting confused going up and down. I figured using GPS to open and light sensor to close would solve the problem.  Can't wait to see some details of your setup. [emoji1]

Sent from my Nexus 6P using Tapatalk

OK, so I created a (crappy) webpage to explain how it works. I also created GitHub repositories for the app source, the server source, and the SysV init script to start the server. They're linked in the page.

https://crashcash.github.io/garage_door.html

Oh and I have a Nexus 6P too... I love it.

FYI, I discovered that Zero doesn't supply power to the OBD-II connector, so I ordered cables from Amazon to deal with this. I'll probably run an extension up into the space under the seat and use a vampire tap on the tail light.

Unfortunately I can't really look at things since the FJR is already on the lift getting a new 2016 clutch installed, for which I'm waiting for a part. Damn steam engines... always needing work...
Logged
'07 FJR-1300 & '15 Zero SR

togo

  • It's like flying. But with more traction.
  • Hero Member
  • *****
  • Posts: 1638
    • View Profile
Re: Decoding range from the CANBUS using a Raspberry Pi (LONG!)
« Reply #9 on: April 26, 2017, 05:15:45 AM »

...

* Bring the interfaces up in /etc/rc.local
ip link set can0 up type can bitrate 500000
ip link set can1 up type can bitrate 500000




Awesome.  Did you see can-utils? 

$ apt-cache show can-utils

Results might be a bit less raw.


Logged
our knowledge about Zeros collects here: https://zeromanual.com/

BrianTRice@gmail.com

  • Unofficial Zero Manual Editor
  • Hero Member
  • *****
  • Posts: 4014
  • Nerdy Adventurer
    • View Profile
    • Personal site
Re: Decoding range from the CANBUS using a Raspberry Pi (LONG!)
« Reply #10 on: April 26, 2017, 12:00:57 PM »

I've linked this from the wiki diagnostics section: http://zeromanual.com/index.php/Unofficial_Service_Manual#Diagnostics
Logged
Current: 2020 DSR, 2012 Suzuki V-Strom
Former: 2016 DSR, 2013 DS

CrashCash

  • Sr. Member
  • ****
  • Posts: 322
  • Denizen of Doom since '88
    • View Profile
Re: Decoding range from the CANBUS using a Raspberry Pi (LONG!)
« Reply #11 on: April 26, 2017, 01:36:00 PM »

I've linked this from the wiki diagnostics section: http://zeromanual.com/index.php/Unofficial_Service_Manual#Diagnostics
Cool, thanks!

Awesome.  Did you see can-utils? 
Actually, it turns out I'm using a variant of can-utils that seems a bit more updated.

I've now managed to add power to the OBD-II port and get that working. I had to move the port from where it was just about inaccessible. I'm not an arthroscopic surgeon and my hands are the size of ham hocks.

I've also written my first cut at the Android app. I've ridden around and it's strange to see it update correctly. (that's why I like embedded stuff, when it finally works, it's a weird feeling)

It's mostly the range circles (full range and half range) plus you can set home/destination markers to help you keep track of things.

The link straight to the GitHub repo is https://github.com/CrashCash/BatteryRange and it has screenshots.

I now have a set of info pages at https://crashcash.github.io/ that discusses how I relocated the port and added power to pin #16. There's some other general-interest bike stuff there too.

There's a "bike weekend" in Leesburg (http://leesburgbikefest.com/) so I'll use that as a test run.
Logged
'07 FJR-1300 & '15 Zero SR

Shadow

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1085
  • 130,000mi electric since 2016
    • View Profile
Re: Decoding range from the CANBUS using a Raspberry Pi (LONG!)
« Reply #12 on: April 27, 2017, 01:48:39 AM »

Could that pin mod be done as an ODB-II extension cable and external power supply?

Is there some reason you wouldn't want to run off the SAE 12VDC plug for power?
Logged

Semper Why

  • Full Member
  • ***
  • Posts: 117
    • View Profile
Re: Decoding range from the CANBUS using a Raspberry Pi (LONG!)
« Reply #13 on: April 28, 2017, 08:16:53 AM »

* I'm not going to go into much detail on the Raspberry Pi stuff because there's tons of tutorials that explain things far better than I can.
Also, since my desktop environment is Debian Linux, I don't how you would do things like ssh or scp in Windows.
PuTTY is the industry standard for SSH on Windows. It includes an SCP client as well as a private/public key generation tool.

And nice job on decoding the CANbus! I'll have to give it a look after I finish my current... and next... project. :)
Logged

CrashCash

  • Sr. Member
  • ****
  • Posts: 322
  • Denizen of Doom since '88
    • View Profile
Re: Decoding range from the CANBUS using a Raspberry Pi (LONG!)
« Reply #14 on: April 30, 2017, 09:20:07 AM »

Could that pin mod be done as an ODB-II extension cable and external power supply?

Is there some reason you wouldn't want to run off the SAE 12VDC plug for power?
Yes, the SAE plug is not on the same circuit as the data signal, which is the same reason you can't use an external power supply. They have to reference the same ground. I was not happy about having to tap into things, but I didn't see any other choice. I took a look at the SAE plug myself with a DMM.

Edit: I was also not happy about having to relocate the plug, but it's impossible to do anything with it in the old position. On the good side, the dongle ends up less exposed to the elements.
« Last Edit: April 30, 2017, 09:23:48 AM by CrashCash »
Logged
'07 FJR-1300 & '15 Zero SR
Pages: [1] 2