The video by Muhammad Zulali showcases an innovative approach to diagnosing and controlling a 1994 Jeep Cherokee, which lacks modern diagnostic ports. Through the integration of Claude, a coding agent, and an Arduino Nano, the author successfully reverse engineers the vehicle's engine computer. The video spans 12 minutes and is structured around the process of diagnosing vehicle issues and eventually controlling the Jeep's engine functions.
Introduction
Key Sections
Problem Statement
Tools Used
First Reading
High NOx Emissions
Wiring Setup
Logging Data
Confusion Over Fuel Trim
Driving Test
California Regulations
Impact of Federal vs. California Programming
Challenges Faced
Role of Codex
Final Preparations
Collaboration Between Tools
Setup Instructions
Encouragement to Experiment
This video serves as an inspiring example of how technology can be leveraged to solve real-world problems, particularly in the context of maintaining older vehicles. By employing innovative techniques and tools, the author demonstrates that even those without a mechanical background can engage in complex automotive diagnostics and repairs.
My 1994 Jeep Cherokee has no OBD2 port and no scan tool that works on it. So I wired a $3 Arduino to its engine computer and had Claude Code and Codex figure it out. Over about a week they read the computer live, logged my drives, copied its entire program, and ran their own code inside it. Wiring, code and the agent instructions: https://github.com/MZULALI/xj-scanner If you have a 1991–95 Jeep or Chrysler, clone the repo and ask your coding agent to walk you through the hookup. 0:00 Asking my Jeep a question 0:35 Why nothing can read this car 0:55 Failing smog, and what NOx is 2:05 Claude figures out the wiring 2:39 The first reading 3:14 The fuel trim that made no sense 3:47 Logging a drive 4:22 Claude runs the fuel pump 5:27 The night drive: the tool was wrong 6:09 Copying the car's program 6:25 What California changed 7:35 Trying to reflash it 8:28 Codex runs code inside the computer 9:36 Smog day 10:17 For XJ owners: parts and wiring Tools: Claude Code, Codex, an Arduino Nano. Parameter tables from ChryslerScanner by László Dániel. I'm not a mechanic. Some of what I say about engines may be wrong.
This is my 1994 Jeep Cherokee, and I'm going to ask it a question with Claude. Look at my Jeep and find out my coolant temperature, my voltage on the battery, any recent history you can find. All right, Claude, what did Claude say? Engine off, dash lights off, coolant's at 138, battery's at 1238, no faulty codes. And then it shows a history of the coolant and battery, and that's only scratching the surface of what I can really get into. And so this is Claude answering me through a $3 chip that's wired into the computer. For about a week, me, Claude, and Codex helped me read the car's computer and drive around logging everything it was thinking. Then we copied the entire program and ran our own code over the car's computer. This car is from before they had an OBD2 sensor, so there's no way I could plug anything under the car or use Bluetooth to read what's going on in the computer. Uh Chrysler did make a tool in the back half of the 90s, but good luck finding one of those. And they didn't really tell you much. They'd only give you a few codes, and you could barely even touch the computer, and good luck getting any type of live readings from it. I only started doing this because my Jeep was failing the California smog test, and you need this smog test in order to renew your registration. Specifically, my car was failing at 25 mph due to high NOx. NOx here meaning nitrous oxide. >> Ryan Garcia, this is Jay. I'm on the nitrous. >> The air going into the engine is mostly nitrogen. And so when the engine runs lean, meaning it is limiting the amount of fuel going into the engine, the excess oxygen burns up and combines with the nitrogen, which exits the tailpipe. And so a key reason why a car may be failing NOx is because it is running lean. And so usually what you want to do at this point is put in a new O2 sensor inside. I did that, and the next reading exploded the 15 mph test which I was passing. It went from around 80 to 900. Uh and the 25 mph test still failed. So it wasn't the O2 sensor. I can only get these readings from the smog technician, and it's about $100 every time to get it tested. And I didn't want to just keep doing that. I didn't want to just replace the part, go back to the smog test, and fail again. Um I had the idea that the computer has these readings, or some related readings, uh hundreds of times a second. And so I can read what's happening there, I wouldn't have to do that. And so I asked Claude code, how can we do that? Claude figured out that the car talks over an old slow protocol called SCI. Um, and the signal wire is kind of backwards. So I need a translator. And that turned out to be a $3 Arduino Nano on a breadboard. If you're interested in how the breadboard is set up or you want to make your own, you can skip to the end of the video where I'll explain that. Uh, Claude walked me through the wiring for all of this, but the instructions were kind of too long. I ended up going off my own reading of the plug, uh, and the first try I got nothing uh, because the resistors were drowning out the signal. Claude told me to pull out the resistor and we finally got our first reading at 1:30 a.m. And so when we finally got our first reading, it was sort of basic. Um, it was just sort of like what you saw the the coolant temperature, the battery, but it was the first time that Claude actually read something on this archaic computer. It was kind of insane. I had no idea if this was going to work. I had no idea how far Claude could go. This is only the beginning of the journey. Um, turns out Claude could do way more than I thought. But at least getting these readings with a specific number of logging them was a huge motivator. It finally gave me hope that I could actually have real numbers to go off and not just monkeying around and and replacing parts. One of the first numbers it got was the fuel trim, which didn't really make any sense. It was saying that it was adding 22% extra fuel than what the factory wants, um, which is basically like the default value the computer is using. Um, so if it was adding 22% extra fuel, that means the engine would be running rich. And so that means a lot of that oxygen would burn up in the converter, uh, and I wouldn't have high knocks. So that means I must have either uh, weak fuel injectors, so there's really not enough fuel going into it than the computer thinks, or I have a leak after the O2 sensor but before the converter. Um, so those are like really the only two explanations for having high knocks there. And then I went for a drive. So I put my MacBook in the passenger seat and I had Claude logging the entire drive. Um, I was going 15 to 25 mph, which is the smog speed that they use in the tests. Um, the first thing Claude noticed was that the computer was sending the miles per hour doubled. And that's just like some calculation they used. So, Claude divided that by two. So, that was a real reading. And then the second thing he figured out is while he was driving, the car was saying that the mix was perfectly fine. And there was nothing that needed to be adjusted. So, the 22% extra fuel added didn't make any sense. And so the next day me and Claude just worked through the entire thing. And I put up a fuel pressure gauge inside of the rusty port. And the gauge read 10 PSI, which is terrible. Uh that means that the fuel rail is severely under pressure. Claude suggested that it would run the fuel pump on its own. And I said, hey, if you can do that, why not? I don't think you can do that. And it started priming the fuel rail and it kept priming it and kept priming it. The fuel pump was on for about 10 seconds and I started to freak out and requested it to stop because that was the first time that Claude had actually done something inside of the computer to have a change. Before it would just read stuff off the computer. This is the first time that it did something inside the computer and the computer responded and did something to the car. So, it was kind of like a key unlock from moving from just read only to Claude actually controlling my Jeep. And so after that we did a few different things. I turned the car on, the engine on and started unplugging the fuel injectors and Claude would read the change in fuel pressure and read different changes around the engine. I put a rag over the tailpipe to see if the O2 numbers would change at all and so I could hear any sound or see any leaks with the bubble test. And in the end there was just like really nothing. Then it became nighttime and me and Claude were going to go for a drive while it logged. And so I reset everything to baseline. They wanted to see how the car learned as it drove. And specifically the 22% extra fuel trim that we were so confused about. And so partway through the drive, Claude answered with this. Confirmed the computer removes fuel instead of adding fuel. The tool people used to read these computers called Chrysler Scanner was wrong for my car. The mix was fine the entire time and that wasn't where the extra knocks was coming from. And so that was kind of a heartbreak. That was the first time Claude got something wrong. Uh, but it was wrong because of a tool online already. Claude itself wasn't wrong. So, if the fuel was fine, the question is what's going on inside the computer that's causing this? So, Claude copied the entire program that my car runs on its own computer into our computer so we can have a look at it when we're not inside the car. I have this question queued up uh just to read about the computer program that he copied onto my computer. And what we learned was that my computer was specifically made for California. And during the exact loads where we do the smog tests, the California computer trims the fuel down compared to the federal runs by a lot. Um, the federal runs keep a nice steady slope. California computers completely cut down the fuel at these loads. And again, without that extra fuel, that can cause high NOx. And so I drove around for about an hour so Claude could really see what our specific fuel table for California is doing um and what difference that really makes. And it came out to about a quarter of a percent of fuel. And so here on screen we can see uh what Claude has read on the computer. You can read some of this on your own. And it read this purely from the copy that we saved on our computer. It's not even reading this live. But the fuel trim table on the California car is super frustrating because it's something I can't control. They made that table like that before there was even a standardized smog test in California. And it just so happens so that my exact year at this exact load is the same load they run on the smog test. And that is what was potentially causing me to fail smog. Um, and if I had a federal car or a federal computer, this just wouldn't be an issue because it adds the proper amount of fuel to reduce the NOx. So, at this point the obvious fix would be to reflash the entire computer onto the federal settings. Claude built a whole kit for it with backups of the computer and was being super safe about it. And then on rig day I had all of the new parts. And me and Claude plugged it in. Um, And so the program read my Jeep's computer perfectly. The only problem was my Jeep's computer wasn't going into programming mode no matter how hard Claude tried. Um, and the issue here was that my computer was made in December of 1993 about 4 months before they started uh making these computers programmable. There's a few parts inside of the computer that make it programmable um and I missed that by four months. For some reason they still have that mode inside of my computer's program. Just physically it didn't have the parts to enter that mode. So reflashing was physically impossible and now it wasn't an option. And that's where Codex came in, OpenAI's coding agent. Codex found that you can send this 1994 computer a tiny program over the same three wires and it'll just run it. The computer goes over the same loop over and over and our program rode along every lap about 90 times a second. The first one just ran a number and just sent it to the laptop. The catch was the RAM, uh the computer's short-term memory. After a few seconds the computer's own code wrote over our program. So Codex put a real program onto the EEPROM instead. That's the memory that kept things even when the battery was unplugged. So you could run your own code inside of this car's computer without ever touching any of the programming chips and that was a huge deal. For the most part Claude was only a read-only tool for the car's computer. We could only see the numbers and the changes from things that I did physically. But this is the first time that an agent could go inside of the computer, make changes, and we could see the changes itself. The agent could write something inside of this car made from 1994 and run it and it could see the effects of it and I no longer had to be there. I no longer had to unplug things, change parts. I could just do it on its own. And so the morning of the test was a mess. Uh I drove 20 minutes to the first lock shop and their dyno, which is what the car runs on, was just broken. Uh I went two minutes to the next one and they said I needed a full tank because their evap machine would explode uh if it was a half tank. So I had to go over there and fill it up. Idling through all of this. After many many attempts the agents finally read all the information on my computer, added their own code inside of the computer uh and we finally passed. So Claude did most of like the diagnostic work and Codex did pretty much all of the memory work that we talked about um and I just did the wiring and the driving. I didn't need a mechanic or like a Chrysler dealer tool for any of this. And so the question is like, what else can you plug your agent into? >> I also have the full wiring and code on GitHub if anyone's interested. It'll be linked in the description. You're going to need an Arduino Nano clone, a breadboard, and some jumper wires, and that'll be like $15 maybe on Amazon. This is the diagnostic plug under the hood. It's got six holes. I numbered them going down each column. So one and two on the left, three and four in the middle, five and six on the right. You only use three of them. Two, bottom left is ground. Three, top middle is where the computer listens. And four, the bottom middle is where it talks back. And then one and five are just empty here. The one to watch out for is six though. On mine, it's the same black and white wire as the ground, but it's 12 volts with the key on, so do not connect anything to that or you're going to fry your board. Also, sorry about the messy wires. I just set it up like this in the engine bay for demonstration. You can fish the wires through the firewall hole where all the other wires go through and then set up the Arduinos there. I would recommend zip tying it somewhere so it doesn't go flying when you turn hard. Again, I do recommend just cloning this and having Claude code or Codex or any agent just go through it and help you set this up for yourself. It's super easy. And if you don't know how to set those up, you can ask ChatGPT or any other chat box like on a website how to do it to set up these agents and it'll help you as well. But yeah, I hope you enjoyed. Thank you.







