1999 ///M3 TiAg | Heated Power Vaders | DDM Projector36 5000K 55W HIDs | DDM 3000K 35W HID Fogs
DDM Smoked Corners | DDM Weighted Shift Knob | K&N CAI | Mishimoto AL Rad w/Zionsville AL Shroud
Stewart HiPo Water Pump | Samco Hose Kit | 16" SPAL Puller Fan | Viper 5701LE Security
E36 OBC is now open! Join the effort: BF.C Thread | openOBC Wiki
Alright, I finally got everything working again. My zke replies to {0x00, 0x04, 0x00, 0x04} on rxd at 9600 8 e 1. As it turns out, most of my stuff replies to something on rxd. That includes the zke and kombi, and obc by inference (although mine isn't in the car to try talking to it, inpa only transmits on rxd for the obc.) I'll post some logic captures in case anyone wants to have a look, though you'll need the software to view them (no, they aren't pdfs.) You'll find it if you google for saleae logic. These were made with v1.1.4.
I'm thinking you do actually need an ads interface to be able to communicate with all the modules after all. Or at least, that's the way you're supposed to do it. I've been reading up on it again and they say that if pin 15 in the 20 pin is populated then ads is indicated. Seems logical to me.
Have you tried this yet? I'm thinking that this is your only remaining option short of switching to ads. Also, it turns out that this is an effective way of turning an ads interface into an obd interface. That is, if you shorted txd and rxd in the schematic I just posted, you'd have something that works with inpa configured for STD:OBD.
Using my setup in obd mode as described, I'm able to talk to one or two modules (I want to say airbag and zke, maybe mk4 abs) but for many of them inpa says "command not accepted" either immediately or after the first few transmission attempts. I believe that's ediabas speak for "ads interface required." It behaves this way as long as inpa is in obd mode. I assume you're running in to this too?
The simple ibus interface you tried is also logically correct for an obd interface. It would work if not for the insufficient bus pullup current and the fact that the bus does not always fall low enough to turn off Q1. Those were my two problems exactly on my first attempt.
Unfortunately I think that you too will ultimately want to locate a laptop with a serial port so you can use an ads interface and have full view of inpa traffic with the whole car.
Oh, and it just occurred to me that everyone is going to need a 20 pin cap modification in order to let the obc run diagnostics. <96 does because our cap ties 20 and 15 to the power rails, and >96 does I think because 20 and 17 must be shorted to put the dme and egs on txd2 with the obc on txd1.
So you're saying you sent _and_ received replies over the RXD line for these modules, or sent the request over TXD and got the reply over RXD?
I modified the connector, but alas I had no time at all this weekend to try it. I will try it tomorrow @ work during breaktime and post it here.Have you tried this yet? I'm thinking that this is your only remaining option short of switching to ads. Also, it turns out that this is an effective way of turning an ads interface into an obd interface. That is, if you shorted txd and rxd in the schematic I just posted, you'd have something that works with inpa configured for STD:OBD.
Using my setup in obd mode as described, I'm able to talk to one or two modules (I want to say airbag and zke, maybe mk4 abs) but for many of them inpa says "command not accepted" either immediately or after the first few transmission attempts. I believe that's ediabas speak for "ads interface required." It behaves this way as long as inpa is in obd mode. I assume you're running in to this too?
Yes, that was the error message I received when trying to talk to the OBC, ZKE, and KOMBI using INPA in OBD mode.
I do have access to one; someone at my work has one of the last modern laptops with a real DB9M sticking out the back!The simple ibus interface you tried is also logically correct for an obd interface. It would work if not for the insufficient bus pullup current and the fact that the bus does not always fall low enough to turn off Q1. Those were my two problems exactly on my first attempt.
Unfortunately I think that you too will ultimately want to locate a laptop with a serial port so you can use an ads interface and have full view of inpa traffic with the whole car.
1999 ///M3 TiAg | Heated Power Vaders | DDM Projector36 5000K 55W HIDs | DDM 3000K 35W HID Fogs
DDM Smoked Corners | DDM Weighted Shift Knob | K&N CAI | Mishimoto AL Rad w/Zionsville AL Shroud
Stewart HiPo Water Pump | Samco Hose Kit | 16" SPAL Puller Fan | Viper 5701LE Security
E36 OBC is now open! Join the effort: BF.C Thread | openOBC Wiki
Sorry. I'm saying the requests went out on rxd and the replies came back on txd. I've still yet to see any car-side module transmit on rxd. I believe only the diagnostic interface can assert it. I'll include a screencap of the zke. It's zoomed out so you can't see what the data is but you can see where it is.
EDIT: Unfortunately I just noticed an error in the capture. It looks like the zke's txd transmissions didn't trip the analyzer. Know that serial rx is an inverted copy of txd (well, unless dtr is asserted...) and the serial rx data is correct. I just checked the other captures and they appear to have the same error. I apologize for any confusion. I really wish I had caught that while capturing data. Clarifying this was not.
Last edited by benemorius; 05-09-2011 at 06:10 PM.
Why give error when opening these .pdf files?
1999 ///M3 TiAg | Heated Power Vaders | DDM Projector36 5000K 55W HIDs | DDM 3000K 35W HID Fogs
DDM Smoked Corners | DDM Weighted Shift Knob | K&N CAI | Mishimoto AL Rad w/Zionsville AL Shroud
Stewart HiPo Water Pump | Samco Hose Kit | 16" SPAL Puller Fan | Viper 5701LE Security
E36 OBC is now open! Join the effort: BF.C Thread | openOBC Wiki
Sorry, my oversight.
Hey m2pc, have you messed around with mbed offline compiling yet? I'm trying to avoid forking out for an mbed just to get access to their compiler and I'd like to pave that way for fellow and future openobc folk too. I've had much success running code which I compile with codesourcery's gcc toolchain and link with the compiled libraries on mbed's svn. For some code though, I end up with an error on the final linking that I can't shake:
(demangled, that symbol is mbed::FileSystemLike::rename(char const*, char const*))ld: mbedtest.elf: hidden symbol `__ARM_grp_.debug_frame$$$i._ZN4mbed14FileSystemLi ke6renameEPKcS2_$i._ZN4mbed14FileSystemLike6rename EPKcS2_' isn't defined
It's keeping me from linking anything that references the filesystem stuff, which somehow manages to be almost everything that I'd have any interest in compiling.
I'm guessing you haven't had reason to stray from the online compiler yet, but in case you have I wonder if you got this too? It seems no one has done this successfully with gcc yet. At least, no one that google can find. It sucks that I can't even register on mbed's site to post my progress without a registration code.
Well I've had some limited success today.
I used a laptop with a proper RS232 port (PCMCIA to RS232 required AHCI disabling to set IRQ and hex address; which in turn requires a reinstallation of Windows).
I used obd.ini set to hardware:ADS.
I used hardware with a INPA/1.36 switch on it and a GAL inside, purchased form a French eBay seller, now no longer available. The switch was set to INPA.
TxD2 was disconnected.
All other combinations of switch and hardware:xxx did not work.
The Serial port latency was 16ms and the registry set up was for the USB OBD2 type from a previous installation.
ADSsetup.bat was run and the unit rebooted.
I can acccess the DME (MS42.0) and the Aircon (HVAC), reading live data and coding error free only. All other modules, PDC, Cluster, ABS, ZKE refuse to respond, even with the engine running. TxD2 was removed to attempt to assist communications.
Responses range around "command no accepted", "module not responding" and "Module not present" depending on the module you are trying to access.
Any thoughts on why this might be; something I have missed in the serial port setup?
Last edited by Joylove; 05-14-2011 at 07:59 AM.
E36 DICE MediaBridge BT and iPod support Photo location of the cabrio drain holes. Custom heated seats and lumbar support retrofit. Glovebox charging sockets and cupholders. E36 PDF Schematics UK Aftermarket E36 OBC bulbs Convert rear lights from non check-control to check-control DIY BMW E36 MFSW retrofit pictoral DIY All BMWs UK cheaper source for electrical connectors, Farnell, RS BMW INPA success E46/E39 onwards E36 vert mood lighting DIY BMW E36 puddle light and inner handle illumination DIY. E36 convertible flat bungee tension strap fix DIY BMW E36 PDF manualBMW E36 vert water in motor of tonneau area fix.
No, I've been quite happy in the "walled garden" they provide -- although for longterm success I feel moving offline is vital. Then we can use all the trafitional FOSS tools like gcc, cvs, and the major online code repositories.
There is a section in their wiki titled "going offline" which explains it. You may have to register an mbed to see it however!
Let me know if you can't justify getting one; I have a spare I could loan/possibly donate to you if it would help further your efforts.
1999 ///M3 TiAg | Heated Power Vaders | DDM Projector36 5000K 55W HIDs | DDM 3000K 35W HID Fogs
DDM Smoked Corners | DDM Weighted Shift Knob | K&N CAI | Mishimoto AL Rad w/Zionsville AL Shroud
Stewart HiPo Water Pump | Samco Hose Kit | 16" SPAL Puller Fan | Viper 5701LE Security
E36 OBC is now open! Join the effort: BF.C Thread | openOBC Wiki
Argh, this is similar to my situation; although I didn't try communicating with the climate control module.
The other day I shorted all data lines in the 20 pin interface I have in hopes it might work better; I ended up not being able to talk to any modules, not even the DME.
So.. Im going back to the drawing board. I may just revert to OBD-II to get the openobc project moving forward; my latest board rev is on hold until I nail this aspect down.
1999 ///M3 TiAg | Heated Power Vaders | DDM Projector36 5000K 55W HIDs | DDM 3000K 35W HID Fogs
DDM Smoked Corners | DDM Weighted Shift Knob | K&N CAI | Mishimoto AL Rad w/Zionsville AL Shroud
Stewart HiPo Water Pump | Samco Hose Kit | 16" SPAL Puller Fan | Viper 5701LE Security
E36 OBC is now open! Join the effort: BF.C Thread | openOBC Wiki
I was definitely connecting over ODB1. TXD2 was disconnected, STD was ADS. Also the climate was never connected to OBD2. I must be stimulating the OBD1 bus that the OBC can see. Therefore if I had a suitable second adaptor I could send you logs. I wonder if I can "read only" using a couple of diodes onto RxD and TxD and a USB OBD2 device.
Also there is a hint there is a debug element to the Ediabas. If we can find the logs that would be very handy as it would negate at least some of the work in sniffing packets. As yet I cannot find the logs.
;Tracelevel=0xFFFFFFFF
;Tracelevel=0xFFFFFFFF
;Tracelevel=0xF0000000
;Tracelevel=0x0000FFFF
; Bit 0 = Funktionsaufruf
; Bit 1 = io Ergebnis
; Bit 2 = nio Ergebnis
; Bit 3 = Detailinfos
; Nibble 0 = readchar_wait
; Nibble 1 = main
; Nibble 2 = cmd
; Nibble 3 = obd
; Nibble 4 = send_and_receive_...
; Nibble 5 = read_telegram_...
; Nibble 6 = send_telegram
; Nibble 7 = SendData
E36 DICE MediaBridge BT and iPod support Photo location of the cabrio drain holes. Custom heated seats and lumbar support retrofit. Glovebox charging sockets and cupholders. E36 PDF Schematics UK Aftermarket E36 OBC bulbs Convert rear lights from non check-control to check-control DIY BMW E36 MFSW retrofit pictoral DIY All BMWs UK cheaper source for electrical connectors, Farnell, RS BMW INPA success E46/E39 onwards E36 vert mood lighting DIY BMW E36 puddle light and inner handle illumination DIY. E36 convertible flat bungee tension strap fix DIY BMW E36 PDF manualBMW E36 vert water in motor of tonneau area fix.
I was definitely connecting over ODB1. TXD2 was disconnected, STD was ADS. Also the climate was never connected to OBD2. I must be stimulating the OBD1 bus that the OBC can see. Therefore if I had a suitable second adaptor I could send you logs. I wonder if I can "read only" using a couple of diodes onto RxD and TxD and a USB OBD2 device.
Also there is a hint there is a debug element to the Ediabas. If we can find the logs that would be very handy as it would negate at least some of the work in sniffing packets. As yet I cannot find the logs.
;Tracelevel=0xFFFFFFFF
;Tracelevel=0xFFFFFFFF
;Tracelevel=0xF0000000
;Tracelevel=0x0000FFFF
; Bit 0 = Funktionsaufruf
; Bit 1 = io Ergebnis
; Bit 2 = nio Ergebnis
; Bit 3 = Detailinfos
; Nibble 0 = readchar_wait
; Nibble 1 = main
; Nibble 2 = cmd
; Nibble 3 = obd
; Nibble 4 = send_and_receive_...
; Nibble 5 = read_telegram_...
; Nibble 6 = send_telegram
; Nibble 7 = SendData
E36 DICE MediaBridge BT and iPod support Photo location of the cabrio drain holes. Custom heated seats and lumbar support retrofit. Glovebox charging sockets and cupholders. E36 PDF Schematics UK Aftermarket E36 OBC bulbs Convert rear lights from non check-control to check-control DIY BMW E36 MFSW retrofit pictoral DIY All BMWs UK cheaper source for electrical connectors, Farnell, RS BMW INPA success E46/E39 onwards E36 vert mood lighting DIY BMW E36 puddle light and inner handle illumination DIY. E36 convertible flat bungee tension strap fix DIY BMW E36 PDF manualBMW E36 vert water in motor of tonneau area fix.
About half way down in ediabas.ini I have this:
Command not accepted should go away when you change that. I trust yours is not set to ADS.Code:;Interface =STD:OBD Interface =ADS
Unfortunately the only such documentation I can find is for offline compiling without mbed libraries only. If indeed there is something more that outsiders can't see, I'd be very glad to know about it. I suppose I could see them quietly keeping that part more hidden. It would effectively be instructions on how to take their mbed code and use it on non-mbed hardware without ever having purchased an mbed, which is of course exactly what I'm doing just now. Still, I had to make minor changes to many of their include files before gcc took them. It led me to assume that they don't use and have never tested their libraries with gcc at all.
I imagine I'll justify it some day. I really like the thought of breadboardable arm. It's just that I can't be allowed to spend anything on a hobby right now. I've already picked up a different 1768 board, so I would see a spare mbed go to a boardless developer before me. I couldn't turn down an offer for a borrowed account though if it would in fact show me something useful that google can't see.Let me know if you can't justify getting one; I have a spare I could loan/possibly donate to you if it would help further your efforts.
This I have done now and it does indeed resolve the Command Not Accpeted issue; thanks
Now I have another message to deal with when trying to access the lesser modules like PDC and the ZKE. I forget what it is, it is on my other computer at the moment.
Are you getting the data from logfiles that INPA/EDIABAS creates? Or are you sniffing packets with a second adaptor? If so where are the log files?
E36 DICE MediaBridge BT and iPod support Photo location of the cabrio drain holes. Custom heated seats and lumbar support retrofit. Glovebox charging sockets and cupholders. E36 PDF Schematics UK Aftermarket E36 OBC bulbs Convert rear lights from non check-control to check-control DIY BMW E36 MFSW retrofit pictoral DIY All BMWs UK cheaper source for electrical connectors, Farnell, RS BMW INPA success E46/E39 onwards E36 vert mood lighting DIY BMW E36 puddle light and inner handle illumination DIY. E36 convertible flat bungee tension strap fix DIY BMW E36 PDF manualBMW E36 vert water in motor of tonneau area fix.
I am dumping hex straight from the ECU.
Last edited by hybridNz; 05-17-2011 at 08:43 AM.
1999 ///M3 TiAg | Heated Power Vaders | DDM Projector36 5000K 55W HIDs | DDM 3000K 35W HID Fogs
DDM Smoked Corners | DDM Weighted Shift Knob | K&N CAI | Mishimoto AL Rad w/Zionsville AL Shroud
Stewart HiPo Water Pump | Samco Hose Kit | 16" SPAL Puller Fan | Viper 5701LE Security
E36 OBC is now open! Join the effort: BF.C Thread | openOBC Wiki
1999 ///M3 TiAg | Heated Power Vaders | DDM Projector36 5000K 55W HIDs | DDM 3000K 35W HID Fogs
DDM Smoked Corners | DDM Weighted Shift Knob | K&N CAI | Mishimoto AL Rad w/Zionsville AL Shroud
Stewart HiPo Water Pump | Samco Hose Kit | 16" SPAL Puller Fan | Viper 5701LE Security
E36 OBC is now open! Join the effort: BF.C Thread | openOBC Wiki
Thanks very much! It doesn't seem to work, though. Of course, we're both rather used to that happening. The second revision is always bound to work better.
Were you able to acquire a real serial port? The gentleman here has just verified the function of the ADS interface I posted in the same thread.
Any chance you still have one of the bus wires disconnected?
Hmm, the password is case-sensitive. I just tried it and it worked. Let me know and I'll PM you again if still not working.
I have not gotten a real serial port yet to try anything with; I do have access to a laptop so I will try that next. I saw that ADS interface thread; once he replies with his transistor choices (were those old "can" style transistors he used?!) I will build a prototype design, test it, then finalize my openOBC board once I verify the X1071 pin 5/7 works for the ADS/INPA interface.
Thanks again for designing that interface -- it will really help this project!
1999 ///M3 TiAg | Heated Power Vaders | DDM Projector36 5000K 55W HIDs | DDM 3000K 35W HID Fogs
DDM Smoked Corners | DDM Weighted Shift Knob | K&N CAI | Mishimoto AL Rad w/Zionsville AL Shroud
Stewart HiPo Water Pump | Samco Hose Kit | 16" SPAL Puller Fan | Viper 5701LE Security
E36 OBC is now open! Join the effort: BF.C Thread | openOBC Wiki
I do indeed, and that is on purpose, so that no OBD2 might sneak into my testing. According to the schematics I have (And they are all US 1996+ which may be a flaw in my reasoning); TXD2 is OBD2 and it's not even connected to the modules I am trying to access, like PDC.
Tonight I will install a serial port sniffer. I hope that I can capture ADS data, and match it to a screenshot from the DME, and post the results here.
Wit any luck, and especially if the TxD message is visible on the RxD, it may be possible to see a message and it's response, and match that to the measured data on the screenshot.
E36 DICE MediaBridge BT and iPod support Photo location of the cabrio drain holes. Custom heated seats and lumbar support retrofit. Glovebox charging sockets and cupholders. E36 PDF Schematics UK Aftermarket E36 OBC bulbs Convert rear lights from non check-control to check-control DIY BMW E36 MFSW retrofit pictoral DIY All BMWs UK cheaper source for electrical connectors, Farnell, RS BMW INPA success E46/E39 onwards E36 vert mood lighting DIY BMW E36 puddle light and inner handle illumination DIY. E36 convertible flat bungee tension strap fix DIY BMW E36 PDF manualBMW E36 vert water in motor of tonneau area fix.
Oops. You're right of course. I was double clicking to copy and paste and lost a tiny bit of it. How embarrassing. Thanks again.
I suppose I should point out that I've always connected my ADS interface to X1071. I've never actually used it at the 20 pin. I really should try that in case another surprise awaits me.I have not gotten a real serial port yet to try anything with; I do have access to a laptop so I will try that next. I saw that ADS interface thread; once he replies with his transistor choices (were those old "can" style transistors he used?!) I will build a prototype design, test it, then finalize my openOBC board once I verify the X1071 pin 5/7 works for the ADS/INPA interface.
Thanks again for designing that interface -- it will really help this project!
I think the only possible issue with going through X1071 for 96+ e36's with obdII ports is that your TXD pin there may or may not go all the way to your DME and EGS. The bentley wiring diagrams show that only the (RXD and) TXD2 (pin 17 under the hood - the cap shorts it over to the obdII port) bus is available to the DME and EGS. TXD (pin 20) is not available to them. It goes only to all the other modules in the car, including TXD in X1071. This would put the OBC and DME/EGS on different buses unless bridged (20 and 17) at the 20 pin. BMW's diagram that Joylove corrected and posted shows TXD actually going to the DME and EGS also, but I don't know which is correct. I don't have an obdII e36 to poke at.
As long as you are using any of BMW's software, I believe you can be assured that no obdII will be spoken by anything.
In looking at all the documentation we have available, I think it becomes evident that TXD and TXD2 are meant to be the same bus. There used to only be one TXD bus which went to every module in the car, but then around '96 these pesky regulations came up which required that the DME and EGS be able to communicate via the new obdII port. Thus, their TXD wires were broken away from the main TXD bus and routed to an unused pin (17) on the 20 pin port. When the 20 pin cap is installed, this wire is made available at the obdII port via another new pin (2) as required by regulation. Otherwise, it's right there at pin 17 to be joined with the rest of the modules on pin 20 like everything was before legislation mucked with it.
The only thing that confuses me is how you can disconnect TXD2 (pin 17) and be able to talk to your DME. I guess that must suggest that TXD certainly does go to the DME and EGS. That would be good news, but it would yield a better explanation for your remaining module failures in inpa if you had mistakenly disconnected something other than pin 17. Can you be certain?
The only thing you'll see coming back on the serial rx with an ADS interface will be the replies from all the modules on the TXD/TXD2 bus. To see the outgoing messages to the modules, you'll have to look at serial tx. Here will be found both transmissions bound for the TXD/TXD2 bus and transmissions bound for the RXD bus. Only the status of DTR will tell you which bus a packet is bound for unless you look at the actual bus wires instead of the serial wires. I'm happy to provide a simple level shifting circuit you could use to get the actual bus traffic in to a serial port sniffer, but you may well find that serial port sniffing alone is sufficient.Tonight I will install a serial port sniffer. I hope that I can capture ADS data, and match it to a screenshot from the DME, and post the results here.
Wit any luck, and especially if the TxD message is visible on the RxD, it may be possible to see a message and it's response, and match that to the measured data on the screenshot.
Bookmarks