No video
How to read the CanBus in any car. (Can Bus) Part #1
There is now a Part #2 to answer some common questions. • How to read the CanBus...
With the links below you should be able to watch this video and access the canbus on any car with a view to decoding it. This video show the process on a Mazda RX8.
This is valuable information for taking over cars systems - especially if you are doing an engine swap, or making / converting a chassis into an EV.
Links,
Arduino with CanBus Shield
www.hobbytroni...
Web management studio to develop Arduino code,
www.arduino.cc/
OBD-II to DB9 Cable
www.amazon.co....
Read Can Bus Code (copy and past this into the Arduino studio)
www.blackhurst....
Пікірлер: 477
All the tires are on their own individual paths. When you do anything but go ABSOLUTELY straight (even then it's slightly different), plus the size of the front vs rears could also be different. When you steer more and more, all the tires follow their own arcs of various radii, so the speeds vary.
@SouthWestEVUK
4 жыл бұрын
These are all very true points! Cheers
Thanks man, that topic is fascinating! You understand that we are riding computers on wheels! Complexity is just an accumulation of simple things! Thanks again for the introduction to can bus diagnosis can't wait for the 2nd video! See you soon! Cheers!
@SouthWestEVUK
4 жыл бұрын
Cheers bud.
Hi, just a note, most modern cars from like 2-3 years have firewall to ensure only data readable with sae 1979 is available. This is to avoid hacker attacks. Great work on the aurdino!
@SouthWestEVUK
3 жыл бұрын
I am guessing the Firewall is on the ODBII port (as that is the common access), If you had the can wires in your hand I cant see a Firewall getting in the way - unless I have got the point wrong I guess!
@Patrikcth
3 жыл бұрын
@@SouthWestEVUKNot sure I follow, but here is some more info on the design I've done at an OEM, as far as I understand this is the common practise as well. the design is usally that you have a controlunit connected directly to the OBD2 port, notging else is connected. the other control units on propulsion CAN is connected to a separate CAN controller in said control unit. With Autosar configuration the only frames recognised are the ones in 1979. So the firewall is by SW design in Autosar.
SO AWESOME! I've had a specific idea for months of an arduino project I want to implement in my new car which will need inputs and outputs to/from the CAN BUS network, and inputs/outputs to other electronics. This makes it way more achievable. You've probably saved me a good 8 hours of trying to figure out what it is I don't know in order to start this.
@SouthWestEVUK
3 жыл бұрын
Im so glad I have helped, good luck with the project...
@ezzaldeena.alribi8603
3 жыл бұрын
@Dave Lovell if you acheived anything in your project, could you please share it with us?
@davelovell8631
3 жыл бұрын
@@ezzaldeena.alribi8603 I haven't yet, but I'm planning on having it completed before the end of December 2021. I'll probably post some stuff on github and or instructables when I'm done, and I'll try to link it here. I might forget to put it here though so, comment on this thread if a few months go by and nothing happens
@kennethbeal
2 жыл бұрын
@@davelovell8631 Pinging you. :) I, too, find this stuff fascinating. Who knew learning Unix decades ago would find its way into cars and handhelds?
On Board Diagnostics Or the OBD II or two, refers to post 1996-'97 production American made where a data stream accompany access to the engine, transmission, body controller, and other mudules. Modern OBD II includes access to programmable parameters such as tire and wheel size.
@SouthWestEVUK
3 жыл бұрын
You are very right!
@rocketsmall4547
2 жыл бұрын
bah. is all emission bs and some data for the dash board
@jackmama79
2 жыл бұрын
He's got odb port though. Ol dirty bastard.
Error 999: Steering wheel on wrong side ...
@SouthWestEVUK
3 жыл бұрын
If you send the right CanBus command, it will switch the wheel to the other side. That is how they make cars for both sides of the road ;o)
@m3chanist
3 жыл бұрын
@@SouthWestEVUK Wouldn't that be the left command? Here in the southern hemisphere it's recommended to drain a bathtub of water in the car first and check the direction the water spirals down the plug hole, a drain pipe to the outside of the car is of course likewise, recommended.
@lawrencedoliveiro9104
3 жыл бұрын
I wonder how you’d reach the pedals if the steering wheel was on the other side ...
@arklanbk
3 жыл бұрын
@@lawrencedoliveiro9104 under rated comment
@kornizz5549
2 жыл бұрын
..its actualy on right side... :p
Great tutorial! the tricky bit of is to make sense to all collected data and see what is what.... Just a clarification regarding CAN, every device will send data to the bus this is correct, but also this device will expect to see an acknowledge bit at the end of the transmission otherwise it will re-transmit the data again, and an error frame (normally form error) will be published on the bus that can cause issues. So every single device on the bus has to acknowledge all packages sent by the others or send an error in case the message format/bit/timing is wrong.
@SouthWestEVUK
3 жыл бұрын
Yeah, you are right. Data does not have a recipient, It is just broadcast - and if you want what is being said then good - if not, move on! That I guess is more why I like to call it the shouty protocol, even ack's are sent by everything on the bus - shout your command and everyone shout back OK!
Just wanted to say thanks for helping me to get my head around what CANBUS is all about. I watched videos of Damien Maguire driving forwards, backwards turning left and right etc collecting data but hadn't a clue what he was doing. THANK YOU! It really is not as complicated as I thought. Only issue with the CANBUS device you listed is they only sell them in kits of 10 so they cost over £200. I think I'll look into buying the CANBUS shield and suitable Arduino separately but thanks again for the best video I've ever seen on CANBUS.
@SouthWestEVUK
4 жыл бұрын
Hay - It is worth contacting Hobbytronics - they used to sell 1's but moved warehouses and thats when they became kit only in 10's. Last time I spoke with them they did me 3 (as I blew one up, oops!) so worth a shout.
@alibro7512
4 жыл бұрын
@@SouthWestEVUK LOL, I already ordered a separate Arduino Uno and CANBUS shield as soon as I finished watching your video.
@alibro7512
4 жыл бұрын
Would you know what would need to be changed in the code to run your sketch on a standard Arduino Uno with a CANBUS shield plugged in. I tried it as is but all I get is the following 20:50:05.824 -> Enter setting mode fail 20:50:05.824 -> Can Init Failed 20:50:05.824 -> I will wait here forever...I will wait here forever..I will etc. Thanks
@alibro7512
4 жыл бұрын
OK I have it working in my Mercedes C220 and here is how I bought a genuine Arduino Uno but any clone should work I bought a CANBUS Shield V1.2 cheap off ebay. I connected the CAN high and CAN low on the shield to a pair of CAN signal wires in the boot of the car. I changed your code to CS10 from CS17 (For the Shield I'm using) and Speed 125Kbs from 500Kbs I used the "CAN_BUS_Shield-master" library from Seeed studio I had several issues before due to not understanding Arduino. I had multiple libraries in the folder causing conflicts and I wasn't using the correct baud rate for my car. Thanks again and good luck with the project.
Great Video, thank you for sharing, I am working with a Mustang and im hoping to get an motor to run at a certain speed and run the other way at a lower speed. This could be some of the answers to get started with this process.
@SouthWestEVUK
4 жыл бұрын
Glad to be of help
Never found our that was a db9 connection and couldn’t figure out how to connect it to can bus! Thanks for the video!
@SouthWestEVUK
2 ай бұрын
Glad I could help!
Yes, it's a busy fast protocol. If it has "noise" normally caused by EFI on the 2 wire bus, then that's a shielding problem. Maybe the terms in the UK are differant than NA. Can be confusing to some.
@SouthWestEVUK
3 жыл бұрын
Yeah I mean noise as in lots of chatter - rather than electrical interference noise ;o) It is all meant to be there.
This looks like it could be the beginning of a fun and interesting project!
@SouthWestEVUK
3 жыл бұрын
Never ending project lol!
Hi Dave or anybody that may be able to help Again... Thanks Dave for pointing toward the libraries not be include or something missing or a name change etc... and that does appear to be what it is. I have rephrased this question back on the root of the comments instead of buried in the replies for perhaps better visibility. So I had mentioned that sure enough there is a .cpp file missing etc. So I went back tried following very slowly the steps again and I think I found a big clue! When Dave says click on the Library Manager, type in 'canbus' and pick the one at the top ... It shows to be picking 'CAN-BUS SHIELD' and it is described as 'Arduino library to control CAN-BUS Shield'. Now in 2022 (Im guessing perhaps things have changed) When I search for 'canbus' the pick at the top is 'CAN_BUS_SHIELD' and it is described as 'Seeed Arduino library to control CAN BUS and CAN BUS FD.' Anybody have any guidance on how I can resolve this? I would like to have the same library that Dave used but I dont see it in the list or under several other searches. Maybe Seeed is the replacement but its missing stuff. Thanks, Dan...
@SouthWestEVUK
2 жыл бұрын
email me - pretty certain I have the original library here that I can send.
Good work. Each wheel is a different diameter due to its physical shape, tire pressure and loading, hence different rpm for each wheel at a constant speed. I would submit it's an rpm input for differential processing for brake control. Speed is a by product if you will.
@SouthWestEVUK
2 жыл бұрын
Yes all good and valid points.
Brilliant video, could listen to you all day! Different speeds at the wheels - different rotational speed as the car is unlikely to be traveling in a straight line? And the outer wheel has to travel further?
@SouthWestEVUK
4 жыл бұрын
Good shout James, not thought about that!!! Love you too! x
Thanks for this video. It looks pretty straightforward, except when it doesn't. 😎
@SouthWestEVUK
3 жыл бұрын
Yeah, and of course I only video stuff that works ;o)
Wow wow; thank you for the detailed info on how to read the CAN bus and insight into how to work with the sniffed info. BTW, it's _OBD2_ (On-board Diagnostics 2), not "ODB2". Also, _kilometre_ is pronounced like "nanometre", not like "thermometer", because it's a unit of measurement and not a measuring device.
@SouthWestEVUK
2 жыл бұрын
yeah too much database development means I get odb and obd round the wrong way, and errrr, thats just the way I talk ;o)
Best description i have heard yet ! Thank you.
@SouthWestEVUK
10 ай бұрын
Wow, thank you!
11:34 ... The answer: That wheel speed difference happens when the car makes a turn, the inside tyre has to travel a shorter distance than the outside tyre.
@SouthWestEVUK
3 жыл бұрын
Yeah, this is very true,
@ElectricMotorcycles
3 жыл бұрын
@@SouthWestEVUK Another Answer: Tire pressure and temperature will change the diameter of the tires also.
Fantastic information! Thank you for taking the time to make the video
@SouthWestEVUK
9 ай бұрын
Glad it was helpful!
Great video, best I've seen so far!
@SouthWestEVUK
4 жыл бұрын
Wow, thanks!
dude ive been trying to make an ecu. bro. thank you. this bit was soooo useful!!!
@SouthWestEVUK
2 жыл бұрын
Not a problem, good luck with the project.
You might wanna think about changing your title from "any car" to "any OBD-II car". Clicked here looking for some OBD-I help. Aside from that great video.
@SouthWestEVUK
2 жыл бұрын
True true, got a little excited ;o)
Thank you for the video. Any information on how can I use the data realtime. For example if I want to take the data do some post-process and display it. Thanks in advance
@SouthWestEVUK
4 жыл бұрын
You can output to a standard output - so if using a PC to compile the code you can output in real time to the console - same on the web interface (arduino.cc).
traction conditions, air presure, bumps on the road, all are different on every wheel when driving plus steering, all that causes different speed on every wheel
@SouthWestEVUK
Жыл бұрын
Yes all very true ;o)
Thank you Dave, very clear explanation. It helps a lot.
@SouthWestEVUK
Жыл бұрын
Glad it helped bud
How many CANs does the Mazda Rx8 have? Most modern cars have several CANs (Drive, Body, etc.) which are linked by a Gateway-ECU. The gateway also separates the Diagnostic-CAN from these CAN busses. So generally the OBDII Port lets you only access diagnostic messages (eg UDS) on the diagnostic CAN without having access to the full CAN Network.
@SouthWestEVUK
3 жыл бұрын
Hi, The RX8 has two Can Buses - a High Speed and a Low Speed, your right in that I believe the OBDII port only gives access to the High Speed bus, youd need to reference the wiring diagram for the car to see where the physical wires are for the other Bus if you want to access it. The Nissan Leaf has several Buses also.
Very informative. Smart little canbus arduino card.
@SouthWestEVUK
3 жыл бұрын
Yeah it is, I think I am addicted - I have 14 of them here hahaha
Hey Dave, I have watched your videos multiple times and want to thank you for the hard work you have done!!! While watching the videos I didn't see the point where you actually send info to the tachometer. I'm working on an rx8 engine swap and need to send signals from my aftermarket ECU to the stock tachometer like rpm, coolant temperature, speed, oil pressure, etc. My aftermarket ECU provides all this info, how do I tell Arduino to communicate my external ecu's data to the stock cluster. Thank you in advance
@SouthWestEVUK
3 жыл бұрын
So you will need to bridge the canbus output of your ECU with the canbus input of the cluster. With code in the middle to translate what the new ECU is sending into what the cluster wants.
Great video! Nicely explained.
@SouthWestEVUK
4 жыл бұрын
Glad I could be of help.
Really helpful info. Liked & Subscribed!
@SouthWestEVUK
3 жыл бұрын
Cheers bud!
Thanks mate, excellent video. Just trying to program an Aventador cluster for my own EV project, so far I can just turn it on. I’ve ordered the Arduino you use and hope to use your code to get me started. Thanks again. Scott.
@SouthWestEVUK
2 жыл бұрын
Cool glad it helped, good luck - canbus can suck a lot of time out of you!
Any car, really! I defy you to find one of those on my 1974 Peugeot 104! :D :D :D
@SouthWestEVUK
3 жыл бұрын
ahhhhh, true.
This looks great, but I'm having a problem compiling the code. I get this message... "no matching function for call to 'MCP_CAN::begin(int)"
@SouthWestEVUK
Жыл бұрын
yeah looks like the library got updated - email me and ill send the old version.
Thanks man, that topic is really important!Can we know which version of mcp library did you use ?
@SouthWestEVUK
3 жыл бұрын
Hmm, I am not totally sure, but as the latest version is over 3 years old and I wrote this within that timeframe - I would expect the latest version (1.5?)
Thanks. BTW - I prefer the term "BUSY" rather than "NOISY". In electrical terms noisy implies junk or meaningless information.
@SouthWestEVUK
3 жыл бұрын
Yeah true, fully agree!
Good stuff and great explanation. thanks for sharing
@SouthWestEVUK
2 жыл бұрын
Glad you liked it!
Its got that old dirty bastard can bus interface, lol! Great video. Thank you sir!
@SouthWestEVUK
3 жыл бұрын
No worries, cheers
Greetings! Do you do consultations? Your time is valuable and I’m trying to get information on the blind spot detection system.
@SouthWestEVUK
6 ай бұрын
Gonna be tough, but do-able!
super overview, thank you so much mate
@SouthWestEVUK
2 жыл бұрын
not a problem, hope it helps!
very pragmatic info, thanks for that
@SouthWestEVUK
Ай бұрын
Glad it was helpful!
The wheel speeds may not be the same because you were doing a turn, you may confirm it with the steering wheel angle
@SouthWestEVUK
3 жыл бұрын
Yeah, I actually averaged them out, gets close enough for my means
Great. Absolutely helpful.
@SouthWestEVUK
4 жыл бұрын
Glad it helped
There has to be an open source "client Software", that can filter and visualize the data from the Arduino on the fly.
@SouthWestEVUK
3 жыл бұрын
I think there are a few things knocking about, but I do like doing things my way ;o)
Hi, love the videos... got a big question... how do you charge your vehicle? Do you need a CANbus emulator to use the OEM leaf charging system? Or are you using a third party charger? Any help would be greatly appreciated 🙌
@SouthWestEVUK
3 жыл бұрын
Currently i am sending the charger the right commands to start it charging. Not fully tested but wont be long before i have that nailed
@alexdeacon5494
3 жыл бұрын
@@SouthWestEVUK great work- keep it going! And consider selling pre-programmed Arduinos and CAN shields??? Would massively help us lot I reckon. Then anyone could take a Leaf and use it as a Donor car for a classic EV build. 👍🏼
Hello, I have a rare electric car from China, a SUDA SA01, where I have problems with the tire pressure sensor. I would like to see what is being said on the OBD2 connector via the CAN bus. Question: Is the speed of the CAN bus crucial as to whether you can read something? This is what the tire pressure sensors and the receiving device look like, which then transmits the data via CAN bus, 4 x temperature and 4 x tire pressure. The tire pressure sensors: 3636200XSA01BA HW29112-SD01 C-Code:116AT 195200 ID:FDFED14F And on the receiving device that then outputs the data via the CAN bus: AA2012116ATKCV3226 3636100XSA01BA C-Code:116AT DATE:195200 Do you have any idea what “C-Code:116AT” and “DATE:195200” mean?
@SouthWestEVUK
10 ай бұрын
No idea - and yes the speed of the CAN is crucial...
Cool vid, thx, but, I'm still unclear about usefullness of this. Once I get the ID of something, say 1234, like accelerater pedal, what can I do with that data? How to program other peripherals to interact with it? Say I want a Hand throttle for a boat to be in my car instead of foot pedal. How to map that device to the foot pedal? Do I have to program the peripheral to mimick that? And then where is that code saved? in the Hand Throttle device? or some itermediary box?
@SouthWestEVUK
Жыл бұрын
You would have to do two things with your throttle example. 1) stop the original throttle working and 2) make your new hand throttle output the right commands. the throttle itself is unlikely to be programmable, you would need something like an Arduino that you can program with inputs and outputs to the desired results.
Thank you for this nice video, I really enjoyed it. From where do you know which heder ID is for what? Do you have any source from where you know lets say the ID 1201 or ID 129? Thanks.
@SouthWestEVUK
3 жыл бұрын
It is very much trial and error, piece by piece working out what each code does. Start by finding out what all the different ID's you have - log what their data is. Do something in the car (brake, throttle etc), and see which ones change. Its a long process but as you get your head into it and see the same codes over and over, you soon learn whats going on... Good luck!
Excellent video. Thanks!
@SouthWestEVUK
Жыл бұрын
Cooll ta.
Thank you very much needed this
@SouthWestEVUK
4 жыл бұрын
Glad it helped
Thank you for your efforts But I have a question how can I control the inputs and outputs of the CANBUS I hope you will help me because I dream of learning these things and I do not know where I should start
@SouthWestEVUK
Жыл бұрын
You need a canbus aware device - such as the ones in my video and that I link too.
Excellent video, I'm looking to do something very similar with CANBUS myself because the Front ACC cruise control radar on my MK7 Golf appears to be malfunctioning and I want to find out why. I've got Various Arduino's and also a CANBUS interface which uses the same IC's as what your CAN Shield uses. Do you know which SPI pins on the Canbus interface units connect to which pins on the Arduino if not using that particular shield? Thanks!
@SouthWestEVUK
3 жыл бұрын
Ohhh, theres a good question! I guess the reason I bought this board was the fact that it does away with any internal communication issues between the Arduino and CanBus - they are hardwired.
Hi, Thanks for this video.. I am looking to make something similar but to show to a small lcd some of my sensors. I have a bmw diesel m57 and I would like to read acc pedal position, boost temp, boost pressure.. and so on.. how can identity all CAN codes for some of the sensors that I need? is there a list of all BMW diesel can bus codes that represent each sensor? Thanks.
@SouthWestEVUK
2 жыл бұрын
Hay - you might find someone has decoded them online - but the likely hood is that you are going to need to get stuck in and decode these yourself.
You pronounced "Arduino" like that just to increase engagement, didn't you? I guess it worked.
@SouthWestEVUK
3 жыл бұрын
Hay you have to stand out somehow haha
@tommills2097
3 жыл бұрын
@@SouthWestEVUK "Ard wee know" kzread.info/dash/bejne/YqWL1qSCqsS6mZc.html Thx for a great tutorial.
Would you please tell me what are the PIDs codes for Turn Signal Right and Turn Signal Left. Thank you very much
@SouthWestEVUK
3 жыл бұрын
So I accessed the high speed can in the RX8, and those signals are not on it. I believe there is a low speed can also that has this information on it, and the ability to adjust the radio message display etc...
How do you find ignition timing and the fuel injector pulse width and injection timing, crank and cam sensor ect?
@SouthWestEVUK
3 жыл бұрын
I have not needed to look for those as I never had a working engine!
RIP IN PEACE ODB
@SouthWestEVUK
3 жыл бұрын
heh!
@rocketsmall4547
2 жыл бұрын
i watch the whole video. have no ideal whats going on. i have car with obd. use paperclip to jump something and count blinking lights.
How would you read a can bus on an electric bike that doesn’t have a OBD port? Controller, bike manager and bMS
@SouthWestEVUK
3 жыл бұрын
You would have to find the can high and can low wires and tap into them.
So if you wanted to play around with the cam bus protocols could you just buy a scraped ECU, hook it up to a 12V battery, wire up an OBD-1 connector, and plug it into the Arduino?
@SouthWestEVUK
3 жыл бұрын
You could, but the ECU is going to send all manner of error messages out as the rest of the car is missing!
@scubasteveVII
3 жыл бұрын
@@SouthWestEVUK time to get simulating then lol
@scubasteveVII
3 жыл бұрын
@@SouthWestEVUK got any resources on how to solder the little bits you get in the mail? I was expecting it to be pre-assembled lol
I have a problem with the arduino code, in this line "if (CAN0.begin(CAN_500KBPS) == CAN_OK) {" because in the program says that CAN0 might be and int, please I need your help.
@SouthWestEVUK
Жыл бұрын
Hi ping me an email and Ill see what I can do Dave
amazing video. thank you for sharing your knowledge! I would like to create my application so i can personalise the way it show the data to me. How is it possible to read bluetooth data from a device and also i would like to make a version for computer. So i would like to read data with usb to TTL , serial communicaton.
@SouthWestEVUK
2 жыл бұрын
Many many components to this, way too many for a You Tube comment! Good luck :o)
Great video! How do you know what each CAN ID corresponds to?
@SouthWestEVUK
Жыл бұрын
You don't, you have to work it out!
Great video opening the covers of what's otherwise a rather closed subject. As a small improvement you could create a lookup table In Excel and translate the codes I to something more readable, e.g. wheel speed rather than a code
@SouthWestEVUK
2 жыл бұрын
yeah, or a small database to reference things properly.
What's the type of wire end that you hve plugged into the left upper (farther from camera) part of the board shown at 2:45?
@SouthWestEVUK
Ай бұрын
it is a usb cable?
Awesome! Finally I can hack my car 😂 so is that little arduino just an uno or something with a ftdi chip for serial comms? Like I could potentially just build one and hack up my old kcan adapter for it's connector?
@SouthWestEVUK
5 ай бұрын
Take a look at my notes in the video (text) there is a link to buy this Arduino - comes with all the standard outputs and a canbus shield all in one.
Hi, great video, is it possible to read real time fuel level and odometer reading over CAN bus from a vehicle?
@SouthWestEVUK
3 жыл бұрын
It depends on the vehicle, for instance the RX8 sends fuel information as a resistive value (not canbus). The odometer is likely stored by the dashboard in most cars, again you might be able to query it - but unlikely to be able to change it.
Thank you. Would love to hear more from you on can hacking
@SouthWestEVUK
2 жыл бұрын
Yeah I might do some more videos on it. I am working on a project decoding Merc's at the moment.
@fuzzs8970
2 жыл бұрын
@@SouthWestEVUK there's someone on KZread who did a video on a Merc using your video as starting point. Ali bro
Nice explanation, to make things simple, is not better to trick the ecu that engine is running and leave the rest?
@SouthWestEVUK
4 жыл бұрын
Problem with that is you would need to replicate every sensors output, which would mean recording all the sensors on a working car to figure out if they are voltage based, resistance based, communications based - bit of a headache! Yes you could replicate them all, but just not worth it.
@fix-and-drive-diy-repairs
4 жыл бұрын
@@SouthWestEVUK ok chess mate.👍
it's actually called a 'OBD' AND NOT o d b !! (on board diagnostics ) 🙂
@SouthWestEVUK
4 ай бұрын
yeah, I get lots of things wrong when in full chat mode! I do my best ;o)
Great video very informative!
@SouthWestEVUK
3 жыл бұрын
Glad to be of help!
0-255 for the values of a byte, not 0-254... Also, "high byte" and "low byte" would refer to a 16-bit number, not an 8-bit value. The term that you should be using is "nibble" (which is half of a byte) or just say "upper 4 bits" or "lower 4 bits".
@SouthWestEVUK
2 жыл бұрын
I tend to record by videos in one lump and yes you are right, various terms do switch about, unfortunately (or fortunately) that is just the way my brain works (badly clearly). Oddly my lucky number has always been 256 due to my extensive C64 (8bit) programming when I was young. Principles set out in this video are unlikely to trip anyone up, but thanks for the heads up.
@grumman581
2 жыл бұрын
@@SouthWestEVUK -- My background is a bit earlier, back in the days of FORTRAN IV / 66 and punch cards... The idea of getting immediate results after submitting code was a bit alien to us back then... We would often only get 2 or 3 runs per *week*...
I have two help requests related to your CAN Bus hack: 1) You mention needing the ECU codes for my make of car in order to understand the decoded data. Where would I find these? I searched every on the net and can't find a reference list anywhere for a 2014 Nissan JUKE TEKNA CVT, Petrol 5 DOOR HATCHBACK? How would we adjust your code to support other cars? 2) I DON'T want to send any data packets or messages to the CAN Bus. I don't want to affect the car's operation in any way, I only want to read the data, safely. Does your solution support that. How can I ensure my solution only reads data and doesn't send data to the CAN Bus? Thanks in advance.
@SouthWestEVUK
Жыл бұрын
You will not find your can codes on the internet, you have to discover them yourself. Not sending and only receiving depends on the code you write - its pretty straight forward to not send anything and just listen.
how can i isolated like: rpm, speed, gas level etc ? btw i really like ur stuff and the fact you help people thanks let say i want to build an arduino tachymeter with all these value and maybe also to diagnose in the same screen would be helpful
@realistik01
3 жыл бұрын
i mean if im not wrong there more then 30ish stuff we can pull from ?
@SouthWestEVUK
3 жыл бұрын
If the car you are using sends this information out on the canbus then Yes. Take the RX8 - RPM, SPEED are on the canbus, however the gas level is not - that is a resistive value.
Dave: This is great. We are working on an EV conversion project with a Porsche 996 C4S. We plan to circumvent the DME (ECU) exactly like you did with the Rx-8. Would love some insights/learnings. Is it possible to connect with you directly on specifics - Cheers!
@SouthWestEVUK
2 жыл бұрын
Hay, ive got your email cheers.
Hi is it possible to clear fault codes? If so how? I think it's fantastic what your doing and I'm going to do an interesting project later this year with can bus I'll let you know how it goes if your interested
@SouthWestEVUK
2 жыл бұрын
So I can clear the fault codes in terms of them not lighting up a dashboard light. But I cannot clear codes on the ECU - well ive not tried to be honest as I dont need to.
you should use can-pi you can do a lot more in can-bus network, you can ignore reapeated pacets and just show only new codes appearing, candump cansniff, way better mate ;) nice video anyway
@SouthWestEVUK
3 жыл бұрын
Cheers, there are quite a few solutions now - I am a bit old school and like to process things myself, excel is pretty good at filtering out noise!
Does this work on Mercedes as well? I have seen ads for interfaces that say they work on all cars except Mercedes. What is special about their messaging?
@SouthWestEVUK
2 жыл бұрын
Dunno, should do, I have a merc van here that I am happily monitoring the canbus on
I've now got the source building correctly and with the ODBII cable which I received today, pin outs checked and verified against SparkFun table. With the serial monitor I can see: 15:10:17.617 -> CAN init: 15:10:17.617 -> Can Init Success 15:10:17.617 -> Good to go! Do I need to do anything else, car ignition is on, tried various things like indicators, but I'm not seeing anything? Any suggestions?
@SouthWestEVUK
3 жыл бұрын
Hi Simon - probably best email me, help on the you tube messaging system is tricky!
@SimonPlatten
3 жыл бұрын
After an email transaction with www.hobbytronics.co.uk, I got an email instructing me to solder the points on the back of the board for mid to right, for CANH, CANL and GND. However, having done this I still get no communication from the car.
@SouthWestEVUK
3 жыл бұрын
Simon, we have been emailing back and forth, why have you messaged on here again? Stick to emails bud - you need to do a continuity test to verify what pins you need to use, I keep saying that - have you done it?
How to check my car baud rate and interface, it not respone any message :(
@SouthWestEVUK
14 күн бұрын
Probably best say what the car is?
Hi. What ever cable OBD to DB9 IS compatible, i mean does not matter the order of the pinout conversion or yes ?
@SouthWestEVUK
Жыл бұрын
errr I would suspect the pin out is pretty important.
H Dave, what is the purpose of reading my Can Bus? I take it the Diagnostic tool I have decodes it for me and enable me to read "Live Data" of countless sensors. What else can it do?
@SouthWestEVUK
3 жыл бұрын
Yes, there are some standards that your tool will be picking up and you are reading. For me, in this project I have replaced the ECU - so send data such as car speed and rpm to the display over the canbus.
Hi, Great video and very clear explanation, I can't wait to use it. I have an issue though, which is probably just my poor basic knowledge of Arduino but I'm getting the following error when I try to compile the code... exit status 1 'class MCP_CAN' has no member named 'readMsgBufID' I downloaded the "Arduino CAN-BUS library" from the link on the Hobbytronics "Leonardo CAN BUS board" page. Is this the correct library or is there something else I need to do too? Many thanks, Bob.
@SouthWestEVUK
3 жыл бұрын
I have just looked at what library I used github.com/sandeepmistry/arduino-CAN Try that one?
@Mark1173
3 жыл бұрын
@@SouthWestEVUK Hi, thanks for the help but I’ve installed that library and it won’t allow me to compile your code as it cannot find the #include or There seems to be a mismatch using that library as it only includes CAN.h and MCP2515.h I have found though that I can successfully compile, upload and run the code if I install the GitHub library from Seeed Technology Inc, all seems good until I plug in to my car and turn the ignition. At this point nothing happens and there’s no response in the serial monitor. Sorry about this, but any ideas what to try next? Is there any way that I can test the response from the car? I've tried two different cars, a volvo and a Mazda and neither are responding. Many thanks. Bob. Oh yes... I've been going over and over your video to check I'm not doing something stupid and have noticed that we each get different responses when we power up the Arduino, Your monitor responds with "Init. Enter setting mode success set rate success!! Enter normal mode success!! OK! Good to go!" whereas on mine I get "CAN Init: Can Init success Good to go!" Are we possibly using different versions of the Arduino code? Thanks again.
What software application did you use, when you got the noisy codes?
@SouthWestEVUK
6 ай бұрын
Will advise on email ;o)
I get this error at line 25 when I compile ??? Compilation error: 'long unsigned int time' redeclared as different kind of symbol
@SouthWestEVUK
10 ай бұрын
What you compiling bud?
@ronkloiber
10 ай бұрын
@@SouthWestEVUK When I click the check mark on the top left menu bar or the check on the sketch of Arduino IDE. Wish I could attach a screen shot. ^~~~~~~ uint Compilation error: no matching function for call to 'loop()::MCP_CAN::MCP_CAN(int)' void setup() { // put your setup code here, to run once: } void loop() { // put your main code here, to run repeatedly: #include #include #include #define CANint 2 #define LED2 8 #define LED3 7 unsigned char len = 0; unsigned char buf[8]; unsigned long ID = 0; unsigned long line = 0; MCP_CAN CAN0(17); // Set CS to pin 17 unsigned long time; void setup() { Serial.begin(115200); while (!Serial) { Serial.print("I will wait here forever..."); delay(1000); }; pinMode(23, OUTPUT); digitalWrite(23, HIGH); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); pinMode(CANint, INPUT); digitalWrite(LED2, LOW); Serial.println("CAN init:"); if (CAN0.begin(CAN_500KBPS) == CAN_OK) { Serial.println("Can Init Success"); } else { Serial.println("Can Init Failed"); while (1) { Serial.print("I will wait here forever..."); delay(1000); } } Serial.println("Good to go!"); } void loop() { time = millis(); if(CAN_MSGAVAIL == CAN0.checkReceive() && line CAN0.readMsgBufID(&ID, &len, buf); // Read data //Add this line back in if you want to filter traffic if(ID == 1201) { //39 line = line + 1; Serial.print(ID,HEX); // Output HEX Header Serial.print("\t"); for(int i = 0; i
@ronkloiber
10 ай бұрын
And if I remove the 1st 10 or so setup lines and compile, I get this error...... Compilation error: 'MCP_CAN' does not name a type; did you mean 'DST_CAN'?
Leonardo CAN BUS board seems to be great idea... just one remark... only one build in can bus line is not so great... most cars have double lines operating on diffrent speeds
@SouthWestEVUK
4 жыл бұрын
They do - the RX8 also has a slower bus, but that operates stuff like the radio, displays etc - I did not have a need for them, so left that bus alone - it works fine as it is ;o)
@zych84
4 жыл бұрын
@@SouthWestEVUK yes, but in order to read data from fast and slow can bus at the same time, you need hardware which supports reading data from two lines, which is not the case unfortunetly ;)
@martynasetminas7845
4 жыл бұрын
@@zych84 So what is a better product that can read from 2 canbus lines? 🙂 Would it be not enough to first read from one line and then change speed and read from another line?
Totally awesome! Enjoyed it. I have a question for you and commentators. Can i (after convert of CANbus data) pull this data with esp8266 or something else, save it to server and i want to access with my phone whenever i want(after connect to esp8266 sure). And i assume that i used an ESP8266 module. Your answers will make me happy. Thanks for the video.
@SouthWestEVUK
4 жыл бұрын
So the ESP8266 will give your Arduino (if thats what you are using) Wifi access. This I would imagine will give you a TCP/IP stack to transmit and receive data on. It might give you higher level protocols such as SMB which you could use to save files on a network share. It is not something I have done, but yes all seems plausible to live stream data from the Can Bus to a network share that another device (phone / tablet) is reading.
@eymenkosar7412
4 жыл бұрын
TheBlackhursts Thanks sir. Appreciate it. If you share your email, i can mail you What is next about my project And we can exchange some ideas.
Now if I only knew what any of this meant.....? I'm sure this is genius but it's lost over my head.
@SouthWestEVUK
3 жыл бұрын
As you don't know what it is, then ill take full credit for it being the cure to all humanities problems ;o) (Honest)
I'm an automotive electrician/electronic tech, i am familiar with can, and other protocols my question is first this interests me alot where should i start to learn this stuff heads up i am not familiar with arduino, yet i can clone pcms/ iclusters do immo off etc but this part is exciting can you please lead me in right direction if not to make money maybe to solve a tough one and make customer happy. thanks in advance
@SouthWestEVUK
2 жыл бұрын
Hi - you have not really said what you are trying to do, other than learn this stuff? But what stuff?
@florenciomartinez3695
2 жыл бұрын
@@SouthWestEVUK the entire process I have no education on Arduino and how it works my question is where do I start accomplish what you're able to do it's impressive and it seems useful for my shop
@SouthWestEVUK
2 жыл бұрын
Guess I started some 30 years ago, and learnt to code! went to college and learnt electronics, uni for software engineering, 20 years taking stuff apart!
Thank you for sharing!! I have a question. If I would like to use a CAN-bus operated speedometer on an older motorcycle how can I make that work with Arduino? Thank you!
@SouthWestEVUK
3 жыл бұрын
Yes absolutely!
@harryohanson
3 жыл бұрын
How do you tie sensors to the Arduino?
@OtherDalfite
3 жыл бұрын
@@harryohanson this is something beyond the scope of this tutorial. Look up rpm arduino to see methods for this. If the motorcycle isn't using can bus, this video isn't really relevant to your needs.
@harryohanson
3 жыл бұрын
Thank you for your reply!
Bonjour, Ce montage permet il de lire du J1939 ? D'avance merci pour votre retour. Laurenr
@SouthWestEVUK
5 ай бұрын
Errr english?
HEllo Dave, I am about to have a try if my c-zero can run the heating while charging - as factory setting it cannot. My question: if I figure out the ID and bits, can I use the same arduino to design a code? I understand that it is just highs and lows, but do I have in the library the info on how many milliseconds one high needs to be and how long intervals need to be between two signals?
@SouthWestEVUK
3 жыл бұрын
Hi, so not sure what you mean by highs and lows, but you don't need to go that deep. The can library will handle all hand shaking, CRC, bits and conflicts. You just send the data you want and it will (most of the time) get to where it needs to go. Most CanBus's I have seen like to have repeats of the data, so for instance might want the RPM sent once every 50ms. Hope that helps.
@baileyharrison1030
3 жыл бұрын
You should use a can-bus adapter to interface with your arduino as the speeds will be too fast to just digitalRead the pins.
Hi sir. This can bus also do reduce mileage read and write..??
@SouthWestEVUK
3 ай бұрын
Depends on the car but in theory yes
Thank sir.. How did you calculate actual engine rpm value?
@SouthWestEVUK
2 жыл бұрын
Ran the car at an RPM, looked at the canbus data - worked it out!
Hi Dave, love your channel. I'm based in Plymouth, and having some CANBUS issues with my Artisan ES1 pro electric motorcycle (upgraded motherboard, now dash won't read speed and ECU keeping bike in limp mode). Do you think you may be able to help?
@SouthWestEVUK
Жыл бұрын
gosh, did anything happen leading up to this fault (replacement parts etc)? my contact details are on my bio page
@blueboywill
Жыл бұрын
@@SouthWestEVUK I upgraded the controller from a Lingbo LBMC72352 to an LBMC72502. It uses CANBUS RS485 but won't seem to send speed or gear selection data to the dash, and the ECU is staying in limp as a result. I don't know whether I need a new dash, black box, or BMS, or if I'm just being stupid and missing something obvious. I've seen people like yourself decode CAN and spoof it using an Arduino though, which may potentially be the easiest solution. What do you think? Also I can't find any contact info on your about page of your channel, is that what you mean by the bio? If you can PM me somehow I'll give you my phone number.
How can we access ecu flash mem to modify map data ..... Plz help
@SouthWestEVUK
Жыл бұрын
really depends on the system in question
Can you make an example how to transfer your own data/message from arduino into the car CAN? For example if you know now what message gets into the CAN when you press some button, but now you want to be able to do that action via arduino. In this case you want the arduino to send that same message. Can you show an example, or maybe give me just point me in right direction where to search how to obtain this info?
@SouthWestEVUK
3 жыл бұрын
Hi, if you have got as far as reading the Bus - then sending is dead easy, take a look at some of the code I have written to control the Dashboard in the Mazda on Github. github.com/DaveBlackH/MazdaRX8Arduino
Hi. I have link ecu g4x and i'm trying to find a way to connect it with my android car stereo. Is that adapter the correct for that work?
@SouthWestEVUK
2 жыл бұрын
Its not really an adapter, it depends on so many things - is the stereo on the can? is the g4x? are those cans linked together? Are they designed to work together?
Thanks, Can you remote control D, P, R with Arduino?
@SouthWestEVUK
3 жыл бұрын
It depends on the car, but most need a physical movement to switch into Drive etc
@THISANDTHATKOREA
3 жыл бұрын
@@SouthWestEVUK Thank you ~
The wheels turn at different speeds because your tires arenit all the same diameter, tires wear at different rates, wheel slip, scrubbing tires, wear and tear in bearings etc. I would assume your wheel speed is multiplied by 10,000 for encoder reasons, maybe the speedo is more accurate with higher readings or the speedo is more stable. Cheers though, interesting.
@SouthWestEVUK
3 жыл бұрын
Yeah, all totally right.
I'm trying to get Canbus info to my android Stereo, but I couldn't find any CANBUS decoder for my Suzuki Ignis. Can you guide me on how to accomplish this?
@SouthWestEVUK
4 жыл бұрын
Is that not what this video does?
@schirmcharmemelone
4 жыл бұрын
@@SouthWestEVUK He thinks that there is more than one canbus. Like having one canbus for Mercedes and then another type for Audi. I can imagine he got this idea after shopping obd2 plugs. The ready made ones already have bluetooth and are made with an ELM328 chip, there are android apps that interpret them directly and graph them in a gui. However the plugs work with most cars but not with all of them. That is why he thinks your can bus video is manufacturer specific. However you are collecting data and interpreting them custom to your car. I don't think the commenter wants to do that. He asks about a ready made device that just works with his android stereo device.