You can use any text editor to write or change the code: notepad, codewrite, Arduino IDE or any other ascii editor you have. Do not use a program that formats the text beyond whitespace formatting (font size etc) like Microsoft Word or Word Perfect.
Compiling must be done with the Arduino IDE (compiled specifically for the board type and chip you're putting it on).
The language that the Arduino IDE uses is a version of C++ for embedded devices.
Interested in all the work that is going on. I just received my mc33290. I am interested in working on a similar project and wanted to see the response from those of you working on the OBDuino. I would essentially just like to have a way to plug my laptop into the OBD port and using a terminal or other application directly send the commands via arduino+mc33290.
So far I have written a small sketch which will bitbang the 5 baud 0x33 command, then Serial.begin(10400) then i am hoping that after that has happened I can just use a serial terminal over the arduinos ftdi pins and see the response from my car. I'll be testing this soon.
Your project sounds interesting. It should be doable, but you need to investigate the Arduino running TWO serial connections. One for the car (the 33290 chip) and the other for the USB port. Right now both share the same pins, which just won't do. It's doable, I think I remember seeing an article on it somewhere in the Arduino website (I think that's where I saw it).
Good luck on your project, have fun, and keep us posted...
It may make a great debugging tool for people who have trouble getting the car communicating.
I've made some progress. I have standalone ftdi breakout board which i connected to two arduino pins (7&8). I then use the arduino to communicate with the car, it issues commands when it receives messages from my computer.
I have successfully extracted the iso initialization code, and it works, I get the appropriate bytes back from my car. I have tried to rip apart the iso_write_data function so that I can simply issue the hex codes, but it looks like the codes need to be wrapped in a packet with a header and so on. Is there more information on this?
If you just want PID data, then the iso_write_data() function should suffice as is. Just look at the function get_pid() to see what OBDuino does to ask for PID information.
I'm not sure how you are interfacing the laptop to the OBDuino, but I assume the computer will just send a PID request through the USB port as a single character (the PID value), then wait for a data reply of some sort.
OBDuino could simply wait for data from the USB port, when it finds some, it would call get_PID() function and then send the ECU reply back to the USB port.
Depending on your laptop program, you could send just the raw data, or the raw data, and the string back over the USB port.
Yeah it helps a little. I scrapped some code together, and looking at the arduino side of the chip (33290) I can see that bits are getting sent but the the KLINE side of the chip is staying HIGH, I got out a voltmeter and found out that my 1998 v70 volvo has 25volts on its battery, I think this is too high? I am not able to pull the pin low it seems. I might need to get some transistors.
Thanks for the help guys. I was under the understanding that you were typing much simpler commands into some other program that filled in alot of the blanks and saved you alot of typing. I am impressed by the amount of work that has gone into typing 3000 lines individually.