Hey, I forgot about this thing. Anyway, I've found out how to do this. pyOBD is looking for serial ports to be named like /dev/cuaa0
. However, these are reserved for a machine's built-in RS-422 GeoPorts, which are supported under Mac OS X but not included on any New World machine (USB replaced them).
We're going to modify the source code of pyOBD, as I believe that's the best way to do this. Open up the Terminal (it's under /Applications/Utilities/
First, we'll need to find your serial port. If you're using a Prolific PL-2303-based adapter, make sure its kernel extension is loaded:$ sudo kextload /System/Library/Extensions/ProlificUsbSerial.kext
Make sure that line is typed correctly (you're running it as root!) and then give sudo your password. If it loads or is already loaded, continue on. Otherwise, plug the thing in and try again. :-P
Now look for your adapter in /dev. Prolifics are /dev/cu.usbserial0; all others are /dev/cu.USArandomstuff.$ ls /dev/cu*
Got it? Good. Keep it in memory while you edit the code.$ cd /usr/local/bin
Remove the precompiled version. It will be regenerated when the Python engine loads it.$ rm obd_io.pyc
Now, fire up nano (or your favourite text editor).$ nano -w obd_io.py
Once editing the code, look for this block of code (or just use nano's search feature: press Ctrl-W, type in search terms, press ENTER):
self.port = serial.Serial(portnum,baud, \
parity = par, stopbits = sb, bytesize = databits,timeout = to)
except "FIXME": #serial.serialutil.SerialException:
(or whatever), then save and exit (nano: Ctrl-X, Y, Enter).
After that, pyOBD should work. The one side effect of this is that the Configure dialog box will no longer work, as pyOBD will be hardcoded to only use that one port.
Can someone test this fix for me? I don't want to run out to my car to test this... it's cold and icy out there.