Monday, 30 September 2013

On-board diagnostics

I had a thought and figured I should write it down somewhere. The Jaguar supports OBD-II, as demonstrated by my Scan Gauge II. It's a big ugly having the gauge sat on the centre console by the gear lever, even if it does tidy away neatly into the arm rest when not in use. I'm sure with a an optoisolator like the one going in to the Mazda dashboard, I could knock up an OBD-II reader out of a the Stellaris Launchpad I'm going to use to decode the radio UI. This means I could put real-time stats on the radio UI. You could use the mode button to knock it between FM, DAB, MP3 and use, I don't know, the Dolby button to put it into real-time gauge mode. The skip up/down toggle would switch between PIDs. I did wonder if anyone had done any reverse engineering on the AJ9500R since I last looked about a year ago. Two of the top three entries on Google were written by me. I take that as a no then.

2 comments:

  1. Hi JP-

    Not sure how to send you an email directly, so I am writing this as a comment to your most recent blog post.

    I am interested in using an Arduino Micro to control 8 solid state relays, specifically a Crydom D2D40, using an Allegro A2982. I am also interested in using 8 of the other inputs on the Arduino to monitor the on-off state of 8 other control lines that are toggled by another controller elsewhere in the circuit. For this task I think I want to use a Maxim 16052/16053. These control lines are 28V if high and 0 volts if low. I am trying to integrate this into an existing 28V DC industrial control system, so I will be tapping into the 28V to get a regulated 5V to run the Arduino and the interface chips.

    Some links to data sheets for the parts I mentioned:


    http://arduino.cc/en/Main/arduinoBoardMicro

    http://www.allegromicro.com/en/Products/Motor-Driver-And-Interface-ICs/High-and-Low-Side-Drivers/UDx2981-2.aspx

    http://www.crydom.com/en/products/catalog/1_dc.pdf

    http://datasheets.maximintegrated.com/en/ds/MAX16052-MAX16053.pdf

    The reason I am writing you is that my background is digital, not analog electronics and I am a little intimidated by the prospect of interfacing a 5V micro into a 28V system. I was doing some googling to find prior examples of people using the Allegro A2982 and came across your model train electronics blog. So...would you mind giving me the benefit of your experience and recommendations on what I am proposing?

    In particular, on the Allegro, I am a little unsure what VS is on pin 9 - would this be the 28V industrial system voltage in my case? And for the outputs, are the RLs some kind of current limiting resistors I have to include on my circuit board, or do these just represent the resistive load of the Crydom relays themselves? Somehow it just seems too easy to hook an Arduino directly up to a bunch of Crydom relays with only this one chip....

    As for using the Maxim chip to monitor the 28V or 0V status on the other control lines, from the data sheet it seems obvious that the chip can do the job but it is very flexible and I am uncertain as to the exact configuration I need to set up. Your thoughts here would be appreciated.

    I am not trying to dump a big engineering job on you here but you obviously know and enjoy working on problems like this, so I would appreciate hearing from you. You can reach me at rickyjames @ gmail . com. Thanks!

    ReplyDelete
  2. OK, woah, there's a lot going on there.

    If you checkout the schematic at http://railwayelectronics.blogspot.co.uk/2011/09/veecad.html, you'll see that Vs on a 2981/2982 should be the supply you want to appear on the output pins. The R_L in the diagram I believe is specific to their 'electrostatic printer application', so connect your device to the output pins on the 2981.

    However, that's all academic as your D2D40 solid state relays will operate with a 5V input straight from the Arduino. Here's a random link I found where they do just that - http://www.rocketscream.com/blog/2011/04/18/arduino-based-reflow-oven-controller-%E2%80%93-testing-progress/.

    I would use an optoisolator between the 28V signals and the Arduino. I'm using like http://proto-pic.co.uk/optoisolator-4-channel/ to read a 12V square wave from a gearbox speed sensor. You will need to select an appropriate resistor on the input side to ensure the tiny internal LEDs don't blow up.

    Keep hacking!

    JP

    ReplyDelete