From: C. S. <bel...@em...> - 2015-03-04 17:43:45
|
Hi, First, thanks for the detailed report. > It looks to me that the initialization leaves some characters in the > chip buffer so the command seen by the chip is ?ATZ<CR> instead of just > ATZ<CR>. I'm not sure why we receive "?ATZ \n\n>". I thought maybe that "?" was garbage from the 9600 connect attempt, but the RX buffer is cleared after changing speed to 38400 so it should start in a clean state... It's as if it the ELM doesn't accept the ATZ command ! I'm thinking this may be a combination of things; your interface seems to have echo enabled, and/or the CR/LF setup is wrong and it confuses the init, and/or your ELM device actually doesn't support ATZ. As for 9600 / 38400 in "set speed", the reason it ignores the speed parameter is that for other L0 interfaces, "speed" is taken as the actual car interface speed (i.e. OBD bus speed), which ELM deals with automatically and is hard to over-ride. I could make the ELM driver interpret the parameter as its command interface speed instead, like you were attempting to do. But I want to keep the auto-detect though; it's nice to be able to just plug in the ELM device and not worry about comm speeds. In theory it worked, you proved otherwise p-) I would need a bit more info, could you try opening a terminal (you probably have Hyperterm on your box ), connect to COM8 @ 38400 and try sending the following commands right after powering up your ELM device (=> not after a failed freediag session) ATZ ATZ [again] AT* [or any invalid AT command, as long as it causes a "?" reply I want to see a) if your interface has echo enabled on power-up; b) if ATZ disables echo; c) the firmware version reported by your device after a succesful ATZ reset. If you have a clone ELM that doesn't even support ATZ, try "ATI" (the letter I) to get the version #. Let me know if this is the case, I assumed all clones would at least support ATZ. Also, how are you connected to the ELM ? what type of port is COM8 ? And when starting freediag, at some point it says something about "calibrating timing", is should normally be pretty silent but did you notice if it printed more than 1 or 2 lines like "millisleep off by [x] ms, spread=[y]%" . If it's as I suspect and your interface has echo enabled, you could try this as a workaround: 1- power up the ELM 2- in hyperterm / whatever, "ATE0" and "ATL0" (number 0 at the end of both: disable echo and linefeeds) 3- close hyperterm, start freediag and try connecting again. ~ |