AI CAN Bus Reverse Engineering [Claude Code] — Transcript
Full transcript
- 0:24So in this video, I will show you something that I think is pretty insane, which is how you can use AI
- 0:30to help you reverse engineer proprietary CAN bus signals from a car, truck, ship,
- 0:36whatever piece of equipment you have. To do so, I will be using our CANsub.2 CAN bus
- 0:42interface, as well as python-can and a custom Claude Code skill that I built for this purpose.
- 0:47And as you will see from the three practical showcases I go through this workflow is
- 0:53extremely powerful and I would actually say this is now our recommended method for all of our end users
- 0:58that are looking to do CAN bus reverse engineering. As always don't take my word for it in
- 1:04the description you will find links for the test data used behind this. The skill is 100% open
- 1:10source so you can go and try it out after this video and I will show you exactly how to do it.
- 1:17Why do you need to reverse engineer a CAN bus data in the first place? If you're not super familiar with
- 1:22CAN bus, the way it works is essentially that you can record the raw CAN bus frames from a
- 1:28vehicle, a truck, a car, a ship and the like using for example a CAN bus interface
- 1:34or a CAN bus data logger. But what you get is essentially just a lot of data bytes and CAN IDs
- 1:39and you will not be able to make any sense of the data unless you are the manufacturer only
- 1:45the manufacturer is able to say how to go from the raw CAN bus data into what we call physical
- 1:51values meaning the decoded and scaled signals such as speed in kilometers
- 1:56per hour RPM temperatures in degrees Celsius and the like now
- 2:02there can be some exceptions to this rule as an example in the heavy duty world
- 2:07J1939 is a standardized protocol that is used by most manufacturers.
- 2:13And as a result, you will be able to decode a large share of the data that you find on an average truck
- 2:18if you buy a J1939 DBC file. And in a similar way, if you have your own
- 2:24car, and if we're talking a non-electric car, you can typically get some data through
- 2:30OBD2 requests, essentially asking the car to provide you with speed, RPM, and some
- 2:36other parameters. But what you're getting is essentially the discount version of what is available on
- 2:41the CAN bus. You are only getting a light subset, in this case, through OBD2.
- 2:45So if you want specific signals, or if you want the more rich data that is being communicated in your
- 2:51car, you essentially need to reverse engineer that information. And that's the exercise that
- 2:57we'll go through today. And this is relevant not only if you are a car enthusiast, but also in
- 3:03you could say the professional world if you are an aftermarket provider of let's say telematic services
- 3:09in a mixed heavy-duty vehicle fleet then you often need to do at least some reverse
- 3:15engineering in order to complete a DBC file and get the information you need in order to solve the
- 3:21use case you need. The problem with doing reverse engineering in
- 3:27practice the classical way is that you essentially need to be a bit like Tank from the Matrix
- 3:32you need to use tools like SavvyCAN and you need to do a lot of you can say ad
- 3:38hoc human analysis on the fly where you're looking at bits of the CAN data bytes that are flipping
- 3:44you try to correlate this versus what you're seeing in the real world and if you get really really good
- 3:50at it then you are able to in many cases reverse engineer at least some CAN signals
- 3:55but it can take hours to do so and in my opinion it is only really possible
- 4:01if you have some serious expertise within the field. So what I wanted
- 4:07to do was essentially to check are we able to leverage AI in order to make the CAN bus
- 4:12reverse engineering exercise more easy and more accessible to non-technical users
- 4:18and basically the way I went around this was to build a Claude Code skill and I'll explain
- 4:24a bit more in a moment and I tested this on a diverse set of CAN signals and real
- 4:29world practical exercises in order to iterate towards something that actually works really really well
- 4:34now I'm not trying to push my particular skill it's 100% open source you can go
- 4:40and pull it and you can use it also quite easily with other tools than the CANsub. My goal is
- 4:46more to showcase a workflow that I think works really well and if you want to use the
- 4:52skill that's fine but you can also build it from scratch yourself and let me explain essentially
- 4:58how I went around building this particular skill so first of all if you're not familiar
- 5:03with Claude Code I strongly recommend just watching some quick videos on this on YouTube but
- 5:09the gist of it is that it's a bit like ChatGPT that you may have tried in your browser but where it
- 5:15has access to all of the files folders Python scripts and the like and can run scripts
- 5:21on your PC so it's a bit like running a chatbot locally, where it has access to tools.
- 5:27And if you're using something like Claude Code frequently for the same type of workflow, then it can be
- 5:33a good idea to create what is called a skill for Claude. So a skill is essentially just
- 5:38a folder consisting of some files and potentially some scripts. And in our
- 5:44particular case, the skill I built contains some instructions for Claude that tells it when are you
- 5:50supposed to use this skill, what are the workflows that are supported within this skill and step by
- 5:56step how do you go through it specifically in this case reverse engineering some arbitrary CAN bus
- 6:02signal that the user is interested in and in order to enable Claude to understand stuff
- 6:08about reverse engineering I have provided it with some reference articles but I have also provided it
- 6:14with details on our CANsub.2 so the product I use for this as well as
- 6:20documentation on the python-can integration for the CANsub.2 so that Claude will know what are the things
- 6:26it can do, for example if it needs to do some quick scripting that goes beyond what is available in the
- 6:31skill. But for the core workflows that are being used in this skill, Claude has also built
- 6:37a number of Python scripts that use the python-can integration in order to access the CAN bus, for
- 6:43example through the CANsub.2, but also to analyze CAN bus data in the form of CSV files as
- 6:49well as build DBC files as the final output from the exercise and this is
- 6:54critical because Claude will not have a chance at reverse engineering anything if it just gets for
- 7:00example a raw CAN trace that might consist of let's say millions of CAN frames that
- 7:06is not a good way for a chatbot to operate instead you want to provide it with a
- 7:11method of getting the insightful results and the statistical results out of various
- 7:17analyses and only focus on that to keep the context window as minimal as possible for
- 7:23the chatbot. It can be, you can say, interesting or
- 7:29intuitive that you could essentially just pass to Claude the full raw CAN trace from
- 7:35your vehicle, ask it to, you know, reverse engineer everything or even reverse engineer, you know,
- 7:40specifically speed and then let the AI do some magic. And unfortunately, that's not how the
- 7:46real world works, at least today. So in order for Claude Code to have a chance at actually
- 7:52successfully reverse engineering the signal you're interested in, you have to tell it what that signal
- 7:58looks like. And since you don't have the decoding rules for the CAN bus, you need to provide a
- 8:04reference signal that closely correlates with the signal that you are targeting.
- 8:09So if we take speed as an example, the ideal reference signal for a
- 8:14proprietary speed signal in a car, for example, would be if you have access to getting the
- 8:20OBD2-based speed. And that is because, as I explained, OBD2 is a standardized protocol
- 8:25across cars. It is accessible in most modern non-electric cars.
- 8:31And that means you can use a tool like the CANsub.2 to request speed from the car
- 8:36let's say every 300 milliseconds and you then have this reference signal in raw
- 8:42form in the same CSV file as you have your proprietary raw CAN bus data and
- 8:48These signals will be more or less perfectly correlated which makes it much much easier for Claude to
- 8:54detect what is the related underlying speed signal. If you don't
- 9:00have a CAN-based signal, you can also use a vision-based signal. So a good example is, again,
- 9:06if your car shows the vehicle speed on the car's dashboard in a digital form, then you
- 9:12can record this with your iPhone or with a webcam, and then the skill has support for using Python
- 9:17to turn this video into, you can say, a time-series data set, pretty much
- 9:23giving you the exact same result as you have when you use a CAN-based signal from OBD2,
- 9:29a GPS-to-CAN module or something similar. So nearly a perfect reference signal.
- 9:35If these options are not available, as a last resort, the skill also supports that you can use human
- 9:41input, and this can for example be relevant if you have no digital representation of the signal, but
- 9:47you are as a human able to monitor it visually. For example, that can be me turning some gauge
- 9:53on a sensor to CAN module, or it could be something you can observe in your car, but where you are not
- 9:58able to record it and turn it into digital data. So I will show you how you do that
- 10:04through a small app in the tool as well. But once you give Claude the reference data, as
- 10:10well as the raw CAN bus data, it goes through a number of analysis steps, doing
- 10:15statistical analysis, surveying the CAN bus data, surfacing what are the correlated
- 10:21target potential candidates for your signal, and based on this and doing a number of different steps
- 10:27that I'll cover in a moment, it is able to get to a conclusion in almost all of the cases that I have
- 10:33tested where it has detected the relevant underlying proprietary signal correctly, and it
- 10:38will then create a DBC file based on this result that you can directly use to decode your data
- 10:44in tools like webCAN. Now, in this skill here, I've built it around
- 10:50our CANsub.2 CAN bus interface, and you don't have to use that for
- 10:56this particular exercise. You can use any CAN bus interface that integrates with python-can,
- 11:02and you could even go beyond this if you wanted to redo some of the scripts here.
- 11:07Again, my goal here is to showcase this workflow. If you want to use a different tool, you
- 11:12can definitely do that. And I would also, to be brutally honest, say that the
- 11:18CANsub.2 is perhaps a bit over-specced for some reverse engineering use cases.
- 11:23This is a professional-grade tool that is targeting primarily engineers working at
- 11:29OEMs in the automotive industry, where it is critical that the tool has a lot of professional-grade
- 11:35features and functionalities. With that said, I know we have a lot of users within
- 11:41the CAN bus reverse engineering space, and we have had that on some of our older devices, and I
- 11:47would say the CANsub.2 is perfect for CAN bus reverse engineering for a number of reasons.
- 11:53One of the reasons is the fact that the device has this small LCD display on the backside,
- 11:59and when you are connected to your CAN bus with the CANsub.2, you will be able to monitor things
- 12:05like the frames per second, the bus load, are you actively in silent mode right now, are
- 12:11there error frames on the CAN bus, what kind of bitrate are you using, and a lot of stuff like that.
- 12:17And this is useful because when Claude is doing its thing, you don't really have much transparency into
- 12:22what's actually happening under the hood through the terminal, in my opinion.
- 12:26And here I find it to be really, really nice to be able to follow along on the LCD of the CANsub.
- 12:32The second big thing that the CANsub facilitates is the tool called webCAN.
- 12:37So this is an optional tool that you can use with the CANsub, along with many other tools.
- 12:42But it is a browser-based GUI tool that you can essentially access by simply entering
- 12:48the URL of your device in your browser. And this opens up webCAN directly with no installation
- 12:54because the tool is actually hosted on the CANsub.2, which is a quite unique combination
- 13:00that makes it really really practical to use and you can use this offline in your car it doesn't require
- 13:05internet connectivity and it does pretty much everything that you would find in you can say similar CAN
- 13:11bus tools and in fact it also does a lot of professional grade stuff that you normally only find
- 13:17in paid CAN bus software tools this includes things like being able to decode live
- 13:23with DBC files handle transport protocols like J1939 transport protocols,
- 13:29and ISO-TP. It also allows you to directly plot and visualize the data that you have recorded
- 13:35within the tool, which is really, really useful when you want to review in real time if your
- 13:41DBC file looks to be valid, and I'll show more about that later. The CANsub.2 also
- 13:46supports silent mode and error frames, which I think are critical features when you are doing CAN bus
- 13:52reverse engineering, in particular if you're doing it in live and safety-critical vehicles, you want
- 13:58to be able to use silent mode during that analysis. And finally, the CANsub.2
- 14:03supports dual CAN buses. Now in many cases this is not necessary, because if
- 14:09you are able to get the proprietary CAN bus data along with for example OBD2 data
- 14:15through a single connector in the car, then you're in luck. You have a very simple setup and this
- 14:21would be my starting point for most users to try out but in many many modern cars
- 14:26the access to the raw proprietary CAN bus data is going to be deliberately blocked
- 14:32by the manufacturer through the OBD2 connector and that means you are still able to use the OBD2
- 14:37connector to get your reference signal and you can do that through for example channel one of the CANsub.2
- 14:43but then you need to get access to the proprietary raw CAN bus data from another source
- 14:48and typically the way you do this is that you take a contactless CAN reader you snap it onto the
- 14:54CAN high and CAN low wiring harness in your car often you need to remove a panel to access this
- 15:00and now you have the possibility with the CANsub.2 to record both the OBD2
- 15:06reference signal and the proprietary CAN bus data into the same fully time-sorted
- 15:12trace view and you can export that CSV from webCAN directly for use by Claude
- 15:18Code, where if you were to record this separately, the whole point would be lost.
- 15:23You essentially need to have these two data sources in a single file in order for
- 15:29Claude to be able to do its thing. If we look a bit more
- 15:35into some of the actual showcases that I also provide in the article, the first showcase I
- 15:41do is very simple. I have recorded with the CANsub.2 some data from a car.
- 15:47This is specifically from a Mercedes E350, where I have some
- 15:53raw proprietary CAN bus data and I have some OBD2 data as my reference signal.
- 15:58In this case, I actually asked Claude to reverse engineer two signals up front, speed and RPM, and
- 16:04I explained that I have available a CSV file which contains also the OBD2 data it needs.
- 16:09Now in the skill we have packaged our OBD2 DBC file and that allows
- 16:15Claude to quickly decode the OBD2 signals from this data so it has the
- 16:21reference signal it needs to identify speed and RPM from the data and if you look at
- 16:27the steps I take here you will see that Claude is doing a lot of work to trawl through the
- 16:32data with the different tools and it does a couple of things here it does a survey
- 16:38of the data so that involves essentially a bit the same steps you might have seen in SavvyCAN and other
- 16:43tools where you are looking at which bytes and which bits are changing in response to certain
- 16:49information or certain stuff happening in the real world. Claude is doing the same thing across the
- 16:55entire log file to get an idea of what are the patterns of the different CAN IDs and the different
- 17:00payloads in the data here. This serves the purpose of for example identifying
- 17:06if some of the CAN IDs are irrelevant to the subsequent analysis and also if some of the data
- 17:12bytes seem to be for example counter signals checksums or other types of signals that might
- 17:18disturb the subsequent correlation analysis but which are not really relevant for the specific
- 17:24analysis or reverse engineering exercise once we've done that step Claude will do a
- 17:29correlation analysis and in here it will essentially rank different candidate fields
- 17:35so that will be you know byte chunks of the data and it will try and look at how well these
- 17:41correlate against the reference signal without having to take into account the scale and the offset
- 17:46because we do not know that information yet and from this analysis Claude will typically get a few
- 17:51candidate potential signals and it can then do the next step which is a bitsearch
- 17:58And here Claude does essentially all of the potential variations of, you know, bit start, bit length,
- 18:04endianness, signed, unsigned, all of that stuff in a lot of iterations.
- 18:10And again, the idea here is to correlate and identify which of these combinations will
- 18:16give the best match against the reference signal that it is provided. Once it has done this exercise,
- 18:21Claude should have essentially the relevant bits, you can say, of the signal that we're trying to
- 18:27reverse engineer. And now it's just a matter of doing more of a statistical exercise to identify
- 18:33what is the scale factor that will make this graph that we can plot from these extracted
- 18:38bits look like the graph of the decoded signal we're matching up against.
- 18:43And once the scale has been identified, the second step is to find the offset so that you have all of
- 18:49the information that is required for a CAN signal in order to create a DBC file of this.
- 18:55And once Claude is done with that, it will create a DBC file for this particular signal.
- 19:01And as you will see from the video here, Claude does this in a nice way where it creates a decoding
- 19:07output folder, it creates a subfolder for the application based on the context I provide, and it
- 19:13also does a subfolder below that for the specific signals that we are reverse engineering.
- 19:18And this is where Claude will put the DBC file. It will also put the plot showing how well this
- 19:24correlates against the reference signal and it will also put some of these analysis plots mainly for
- 19:30us to understand what is actually going on under the hood but in some cases this can also be useful to
- 19:35guide Claude in the right direction if it goes off track in the analysis so
- 19:41as was expected in this case Claude was able to reverse engineer speed and RPM
- 19:47without any issues because it had more or less a perfect reference signal but this may
- 19:53seem trivial but this is a really really powerful way of achieving this and not something that a non-technical
- 19:58person would otherwise be able to do even if they have the reference signal available now
- 20:04to take it one step further I also did a test in a car basically an old
- 20:10Opel Astra where I get access to the car I set up the CANsub to request some OBD2
- 20:16speed information to be sure that I have a reference signal for my subsequent analysis
- 20:21but the goal here is to essentially showcase what would I do if no OBD2 data
- 20:27was available. For example in an electric car you often don't have the luxury of OBD2 data
- 20:32and therefore you need to look at what is the second best thing that you have and in my opinion that
- 20:38is the OCR method where you record a digital value of the signal from your
- 20:44car's dashboard for example with an iPhone or better I would say with a webcam that is synchronized
- 20:50to your PC time and thereby the CANsub's time and you can essentially
- 20:55record this data while you are driving around and in my experience you want to
- 21:01do this if possible later in the day so there's not too much sunlight and you would also
- 21:07want to do it in a way where the webcam is quite stably positioned in order to minimize the drift around
- 21:13but I did the worst case scenario and it turns out that Claude and the script utilities are
- 21:19able to handle this pretty much perfectly well and as evident from the video here
- 21:24one of the steps in this workflow is that you get your video and you get a
- 21:29signal or you get essentially Claude's and the script's output time series
- 21:35and you get sort of the current value at the frame you are at in the video so you can quickly review if
- 21:41your video turned into the expected time series data and how many errors you had
- 21:46in case you want to go back and redo it. But typically you can get quite far with
- 21:52quite simple means with this. Again now Claude has a reference signal available and it is able
- 21:58to run through the exact same analysis as in the OBD2 case and reverse engineer the proprietary speed
- 22:04and in this case I also recorded the OBD2 speed just as a proof to show that it was in
- 22:10fact the correct speed we got but Claude of course did not have access to the OBD2 speed in this
- 22:16particular exercise here now let's try something that is a bit harder which is
- 22:22to say what do we do if we don't have such a perfect reference signal. And to showcase this I'm
- 22:27essentially testing with the CANsub.2 and a module we have a sensor to CAN module called
- 22:33CANmod.input. The CANmod.input is able to produce CAN frames based on
- 22:38measurements of voltage in the 0 to 10 volt range. So for this particular exercise I
- 22:44take my CANmod.input and we have a small potentiometer PCB board which has eight
- 22:50gauges that you can turn with like a small tool in order to translate that into a millivolt
- 22:55output which by the CANmod.input gets translated into a CAN frame and some
- 23:01CAN signals. Now I know what the true DBC file is for the CANmod.input but of course I don't
- 23:07tell Claude that and I think it's fairly to be expected that Claude did not find this as part of its
- 23:13training data. It is a bit niche. So what I do in this exercise is to say,
- 23:19can I essentially move around this gauge in real time with my right hand,
- 23:24while at the same time with my left hand, I use the skill's built-in web app to
- 23:30move a slider up and down. So the way this works is that I have told Claude a bit of context up
- 23:36front, as you can see as in my prompt here. And this allows Claude to start up this web
- 23:42app with the settings already matching the context I provided so I don't have to fill in any
- 23:48fields. Claude has taken care of that and then it will ask me to do some captures in real
- 23:53time with the CANsub.2 where it records data while I am doing something with the reference
- 23:59signal in real time. So I would essentially start the capture and then the first pass
- 24:05is to do this time slider, or not a time slider, but this slider from zero to 100%,
- 24:10representing essentially me moving this gauge from zero to 100%. And this is hard,
- 24:16as you will see from the comparison graph. It is hard to match these exactly.
- 24:21So I do it as best as possible, and I do it a few times from zero to 100 and back to zero,
- 24:26and try as much as possible to follow along with both of my hands. But
- 24:32in order to get a more precise second pass of this the skill also supports that you can set
- 24:38in some sample observations at different values you can say of the reference signal
- 24:44so in my example this corresponds to setting the gauge to zero percent and then hitting the zero
- 24:50percent sampling then I will see from the chart in the app that it samples for these
- 24:55two seconds then I can move the gauge to the next point, maybe that's 50%,
- 25:01and again I can sample for two seconds, etc. And I can do this a number of times, and that
- 25:07gives a bit of an anchor for the different signal values that is less dependent on my
- 25:12poor and noisy human input that I'm able to provide in the first pass.
- 25:18So when I have provided this, I essentially tell Claude that now we're done, please proceed,
- 25:24and then Claude goes through the next steps as before. And again, in this case,
- 25:30I think this is probably one of the ones where I'm more surprised that it is able to manage this.
- 25:35But Claude is able to take even this very, very noisy reference signal and manage to
- 25:41decode the correct decoding rules for the CANmod.input based on this.
- 25:48And something it also does that is quite nice in the context is that it often discovers that maybe there
- 25:54are separate signals that are encoded in the same way. So in this example with the CANmod.input, I'm
- 25:59asking it to reverse engineer the first gauge, but I did tell it that there are eight.
- 26:05So based on the decoding rules it found for the first gauge, it sort of figures out that probably
- 26:11the next gauge values are also encoded in these and these data bytes.
- 26:17And it will then ask you, do you want to proceed to try and reverse engineer these?
- 26:21And I essentially tell Claude hey based on your hypothesis try and create the full DBC file
- 26:26basically do the exercise for all of the remaining gauges but don't await my input for it just
- 26:32build the combined DBC and it will do so and then I will take this DBC
- 26:38file load it into the webCAN tool and then I can sit and move the gauges for all of the eight
- 26:44gauges and verify that the decoding rules match I'm essentially seeing on my screen when I plot
- 26:50this data exactly what I'm doing physically in the real world so I would say this is a useful
- 26:56exercise if you are busy and want to just get you know a couple of extra signals down and then you
- 27:01prefer to verify the data rather than go through the manual exercise each time now
- 27:09if you want to try this yourself you can get the CANsub.2 as mentioned I would get the OBD2-DB9
- 27:15adapter to start with and then you can try, if you can, you know, get the data from your car, the
- 27:20proprietary CAN data through the OBD2 connector itself. If so, that's the simplest solution.
- 27:26If not, then you can get the contactless CAN reader we have and maybe like a cigarette receptacle
- 27:31adapter we provide for powering this. And then you can try the contactless method.
- 27:36I just would stress this does require a bit of digging through your car, removing
- 27:42a panel here and there in order to find out where the CAN high and CAN low is.
- 27:46So this is a bit more for the experts or the technical users that want to do this.
- 27:52But if you are patient, you can also do it even without prior experience.
- 27:57If you want to just try out the skill right away without our devices, you can also get the test data
- 28:02that I use for some of these showcases. So you can download that and you can use actually the full
- 28:08workflow from showcase one and showcase two just with that data. My video that I recorded for
- 28:14the second showcase is also included in there. The skill itself is available on GitHub and
- 28:20you can find the link in the description and you just go to the GitHub page and you can essentially
- 28:24clone or download the zip file with the skill, put it into some folder
- 28:30and then you want to open up Claude Code from that folder. And in the readme on the GitHub page,
- 28:36I describe some of the details like how do you set up Claude Code? How do you get the exact same setup as
- 28:42I have in Visual Studio Code with the plugin which I like so you can go there and find the
- 28:48various steps inside my estimate is that setting this up will take around 10
- 28:54minutes so definitely try it out with the sample data but to summarize I
- 29:00did many many more tests than what I showcase here and I would say across all of the tests I'm pretty
- 29:05much blown away by how effective this workflow is in pretty much all of the signals
- 29:11that were available in the proprietary CAN data and where I did have a reference signal that was
- 29:17clean it was pretty much a hundred percent success there are some cases where Claude goes off on
- 29:23a tangent and you need to help it a bit but I would say even in these cases it's often able based on you
- 29:28know logical analysis to say hey this correlation is not as good as expected
- 29:33that's probably not the right path let me review again and it goes back and forth and actually even in
- 29:39these cases ends up with the right signal which is equally impressive as these
- 29:45single shot showcases that I showed you before I think the really really big impact here is
- 29:51that when I tell our users that yes you can reverse engineer CAN bus data
- 29:56using the classic methodology, I typically also say that you should expect to spend two to
- 30:02six hours per CAN signal that you are reverse engineering. And I honestly think that is the realistic
- 30:08time it takes for somebody that does not have multiple years of experience within this field.
- 30:13With the skill here and with the methodology, I would say that the exercise actually takes
- 30:19closer to five to ten minutes per CAN signal, with most of this being me drinking coffee
- 30:25in the background while Claude is running through all of the steps of course you need to
- 30:30record the data but again using something like the CANsub.2 you can very quickly get the
- 30:36raw CAN data and the reference signals that is also not a huge exercise
- 30:40but again just like the classic methodology this is not some magic AI
- 30:46overlord doing hocus-pocus so you cannot simply provide it the raw CAN data without a
- 30:52reference signal that is going to be useless for Claude you are limited still to what signals
- 30:58you are able to get a clean reference for but I definitely hope you found this useful
- 31:03and interesting and if you did make sure to like and subscribe the video but more importantly I really
- 31:08hope you'll share this in your community and you're always welcome to reach out to us if you want to
- 31:14discuss this if you have suggestions or if you just have questions about using our products thanks for
- 31:19watching and see you next time on my next video
About this transcript
This page contains the full transcript of AI CAN Bus Reverse Engineering [Claude Code] by CSS Electronics, generated from the public captions YouTube serves with the video. The transcript has 5,468 words across 326 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.