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.
@SouthWestEVUK4 жыл бұрын
These are all very true points! Cheers
@TheDriss5674 жыл бұрын
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!
@SouthWestEVUK4 жыл бұрын
Cheers bud.
@davelovell86313 жыл бұрын
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.
@SouthWestEVUK3 жыл бұрын
Im so glad I have helped, good luck with the project...
@ezzaldeena.alribi86033 жыл бұрын
@Dave Lovell if you acheived anything in your project, could you please share it with us?
@davelovell86313 жыл бұрын
@@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
@kennethbeal2 жыл бұрын
@@davelovell8631 Pinging you. :) I, too, find this stuff fascinating. Who knew learning Unix decades ago would find its way into cars and handhelds?
@Patrikcth3 жыл бұрын
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!
@SouthWestEVUK3 жыл бұрын
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!
@Patrikcth3 жыл бұрын
@@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.
@RS-Amsterdam3 жыл бұрын
Error 999: Steering wheel on wrong side ...
@SouthWestEVUK3 жыл бұрын
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)
@m3chanist3 жыл бұрын
@@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.
@lawrencedoliveiro91043 жыл бұрын
I wonder how you’d reach the pedals if the steering wheel was on the other side ...
@arklanbk3 жыл бұрын
@@lawrencedoliveiro9104 under rated comment
@kornizz55492 жыл бұрын
..its actualy on right side... :p
@ronwade54333 жыл бұрын
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.
@SouthWestEVUK3 жыл бұрын
You are very right!
@rocketsmall45473 жыл бұрын
bah. is all emission bs and some data for the dash board
@jackmama792 жыл бұрын
He's got odb port though. Ol dirty bastard.
@rdspeedfab2 ай бұрын
Hello from 2024. It’s even easier now with can libraries available in ide. I just built a device with an mcp2515 and an uno. I’ve also written my code to look for only what I want and don’t let it repeat. As you mentioned CAN is noisy. So this helps big time
@stevecarlisle33233 жыл бұрын
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.
@SouthWestEVUK3 жыл бұрын
Yeah I mean noise as in lots of chatter - rather than electrical interference noise ;o) It is all meant to be there.
@jlesquer3 жыл бұрын
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.
@SouthWestEVUK3 жыл бұрын
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!
@mattglandorf96004 жыл бұрын
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.
@SouthWestEVUK4 жыл бұрын
Glad to be of help
@alibro75124 жыл бұрын
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.
@SouthWestEVUK4 жыл бұрын
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.
@alibro75124 жыл бұрын
@@SouthWestEVUK LOL, I already ordered a separate Arduino Uno and CANBUS shield as soon as I finished watching your video.
@alibro75124 жыл бұрын
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
@alibro75124 жыл бұрын
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.
@MultiCreasey4 жыл бұрын
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?
@SouthWestEVUK4 жыл бұрын
Good shout James, not thought about that!!! Love you too! x
@Inertia8883 жыл бұрын
This looks like it could be the beginning of a fun and interesting project!
@SouthWestEVUK3 жыл бұрын
Never ending project lol!
@chriscross26112 жыл бұрын
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.
@SouthWestEVUK2 жыл бұрын
Yes all good and valid points.
@initiald9756 ай бұрын
Never found our that was a db9 connection and couldn’t figure out how to connect it to can bus! Thanks for the video!
@SouthWestEVUK5 ай бұрын
Glad I could help!
@danslanker88802 жыл бұрын
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...
@SouthWestEVUK2 жыл бұрын
email me - pretty certain I have the original library here that I can send.
@ShredcheddarАй бұрын
Love using Arnudio to read the Cabnus through my ODBII port!
@lucasdetex87033 жыл бұрын
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.
@SouthWestEVUK3 жыл бұрын
Yeah, this is very true,
@ElectricMotorcycles3 жыл бұрын
@@SouthWestEVUK Another Answer: Tire pressure and temperature will change the diameter of the tires also.
@Rick_Cavallaro Жыл бұрын
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.
@mynyasabut2 жыл бұрын
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
@SouthWestEVUK2 жыл бұрын
Yes all very true ;o)
@xmidavx4 жыл бұрын
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.
@SouthWestEVUK4 жыл бұрын
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.
@michaelarulanantham88332 ай бұрын
Can this be applied to an MG4 to set on start up or permanently set driver settings like drive mode, regen preference, lane assit etc?
@aravindsreekumaran69124 жыл бұрын
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
@SouthWestEVUK4 жыл бұрын
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).
@muh1h13 жыл бұрын
There has to be an open source "client Software", that can filter and visualize the data from the Arduino on the fly.
@SouthWestEVUK3 жыл бұрын
I think there are a few things knocking about, but I do like doing things my way ;o)
@abuelofm53 жыл бұрын
The wheel speeds may not be the same because you were doing a turn, you may confirm it with the steering wheel angle
@SouthWestEVUK3 жыл бұрын
Yeah, I actually averaged them out, gets close enough for my means
@operator80142 ай бұрын
Works right from the On-Doard Biagnostic port huh? Neat🤔
@wernermuller3522 Жыл бұрын
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 Жыл бұрын
No idea - and yes the speed of the CAN is crucial...
@bogdankril3 жыл бұрын
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
@SouthWestEVUK3 жыл бұрын
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.
@CyberBeatAustralia4 жыл бұрын
Great video, best I've seen so far!
@SouthWestEVUK4 жыл бұрын
Wow, thanks!
@gjsxnobody7534 Жыл бұрын
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.
@100amps3 жыл бұрын
Thanks for this video. It looks pretty straightforward, except when it doesn't. 😎
@SouthWestEVUK3 жыл бұрын
Yeah, and of course I only video stuff that works ;o)
@ayhamalosh8942 Жыл бұрын
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.
@noneofabove5586 Жыл бұрын
Best description i have heard yet ! Thank you.
@SouthWestEVUK Жыл бұрын
Wow, thank you!
@Sinister_Reaper3 жыл бұрын
How do you find ignition timing and the fuel injector pulse width and injection timing, crank and cam sensor ect?
@SouthWestEVUK3 жыл бұрын
I have not needed to look for those as I never had a working engine!
@scubasteveVII3 жыл бұрын
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?
@SouthWestEVUK3 жыл бұрын
You could, but the ECU is going to send all manner of error messages out as the rest of the car is missing!
@scubasteveVII3 жыл бұрын
@@SouthWestEVUK time to get simulating then lol
@scubasteveVII3 жыл бұрын
@@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
@davegsm823 жыл бұрын
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!
@SouthWestEVUK3 жыл бұрын
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.
@alexdeacon54943 жыл бұрын
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 🙌
@SouthWestEVUK3 жыл бұрын
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
@alexdeacon54943 жыл бұрын
@@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. 👍🏼
@HighwayDelegationSystem10 ай бұрын
What software application did you use, when you got the noisy codes?
@SouthWestEVUK10 ай бұрын
Will advise on email ;o)
@manuelmundaca53222 жыл бұрын
Great video! How do you know what each CAN ID corresponds to?
@SouthWestEVUK2 жыл бұрын
You don't, you have to work it out!
@HighwayDelegationSystem10 ай бұрын
Greetings! Do you do consultations? Your time is valuable and I’m trying to get information on the blind spot detection system.
@SouthWestEVUK10 ай бұрын
Gonna be tough, but do-able!
@adamarzouni59833 жыл бұрын
Thanks man, that topic is really important!Can we know which version of mcp library did you use ?
@SouthWestEVUK3 жыл бұрын
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?)
@pageseducation4644 жыл бұрын
Would you please tell me what are the PIDs codes for Turn Signal Right and Turn Signal Left. Thank you very much
@SouthWestEVUK4 жыл бұрын
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...
@nicolasteran7101 Жыл бұрын
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
@Eatcrow3 жыл бұрын
How would you read a can bus on an electric bike that doesn’t have a OBD port? Controller, bike manager and bMS
@SouthWestEVUK3 жыл бұрын
You would have to find the can high and can low wires and tap into them.
@jacksonbartelli2 жыл бұрын
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.
@SouthWestEVUK2 жыл бұрын
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.
@bgarner2930 Жыл бұрын
Fantastic information! Thank you for taking the time to make the video
@SouthWestEVUK Жыл бұрын
Glad it was helpful!
@powerbeast56912 жыл бұрын
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?
@SouthWestEVUK2 жыл бұрын
Dunno, should do, I have a merc van here that I am happily monitoring the canbus on
@riz941073 жыл бұрын
You pronounced "Arduino" like that just to increase engagement, didn't you? I guess it worked.
@SouthWestEVUK3 жыл бұрын
Hay you have to stand out somehow haha
@tommills20973 жыл бұрын
@@SouthWestEVUK "Ard wee know" kzbin.info/www/bejne/ZqK6pXV_r8aHn5Y Thx for a great tutorial.
@initiald9755 ай бұрын
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?
@SouthWestEVUK5 ай бұрын
it is a usb cable?
@fix-and-drive-diy-repairs4 жыл бұрын
Nice explanation, to make things simple, is not better to trick the ecu that engine is running and leave the rest?
@SouthWestEVUK4 жыл бұрын
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-repairs4 жыл бұрын
@@SouthWestEVUK ok chess mate.👍
@phatcowboy763 жыл бұрын
Very informative. Smart little canbus arduino card.
@SouthWestEVUK3 жыл бұрын
Yeah it is, I think I am addicted - I have 14 of them here hahaha
@gt3tunecl725 Жыл бұрын
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.
@asyrafshahrom98962 жыл бұрын
Thank sir.. How did you calculate actual engine rpm value?
@SouthWestEVUK2 жыл бұрын
Ran the car at an RPM, looked at the canbus data - worked it out!
@sukrutsigma4 жыл бұрын
Great video! Nicely explained.
@SouthWestEVUK4 жыл бұрын
Glad I could be of help.
@a.c.e.75683 жыл бұрын
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?
@SouthWestEVUK3 жыл бұрын
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.
@mansurbhamani39053 жыл бұрын
Hi, great video, is it possible to read real time fuel level and odometer reading over CAN bus from a vehicle?
@SouthWestEVUK3 жыл бұрын
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.
@SumeClue3 жыл бұрын
Can i read data in a Elevator system's MODbus or Canbus so that i can find out the floor number shown in the display using arduino? Please help
@SouthWestEVUK3 жыл бұрын
Gosh, I guess if the elevator has a canbus I do not see why not.
@SumeClue3 жыл бұрын
@@SouthWestEVUK So can you help me about how to sync with elevator canbus or properly setup a system for that using arduino. That would be very helpfull
@SouthWestEVUK3 жыл бұрын
sure!
@extraziadeh3 жыл бұрын
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.
@SouthWestEVUK2 жыл бұрын
True true, got a little excited ;o)
@joannaallanmoore65543 жыл бұрын
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
@SouthWestEVUK3 жыл бұрын
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.
@dimitrismed2 жыл бұрын
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.
@SouthWestEVUK2 жыл бұрын
Many many components to this, way too many for a You Tube comment! Good luck :o)
@JoshuaPayneuk Жыл бұрын
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.
@christianrobertadzic93214 жыл бұрын
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.
@SouthWestEVUK4 жыл бұрын
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!
@tiborkiss91864 жыл бұрын
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?
@SouthWestEVUK4 жыл бұрын
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.
@baileyharrison10303 жыл бұрын
You should use a can-bus adapter to interface with your arduino as the speeds will be too fast to just digitalRead the pins.
@SimonPlatten3 жыл бұрын
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?
@SouthWestEVUK3 жыл бұрын
Hi Simon - probably best email me, help on the you tube messaging system is tricky!
@SimonPlatten3 жыл бұрын
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.
@SouthWestEVUK3 жыл бұрын
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?
@jigger5000p7 ай бұрын
Hi sir. This can bus also do reduce mileage read and write..??
@SouthWestEVUK7 ай бұрын
Depends on the car but in theory yes
@laurentpeylet90638 ай бұрын
Bonjour, Ce montage permet il de lire du J1939 ? D'avance merci pour votre retour. Laurenr
@SouthWestEVUK8 ай бұрын
Errr english?
@toymanek Жыл бұрын
Does these codes the same for every vehicle and manufacturer ?
@SouthWestEVUK Жыл бұрын
No sorry, all differ.
@blueboywill2 жыл бұрын
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?
@SouthWestEVUK2 жыл бұрын
gosh, did anything happen leading up to this fault (replacement parts etc)? my contact details are on my bio page
@blueboywill2 жыл бұрын
@@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.
@THISANDTHATKOREA3 жыл бұрын
Thanks, Can you remote control D, P, R with Arduino?
@SouthWestEVUK3 жыл бұрын
It depends on the car, but most need a physical movement to switch into Drive etc
@THISANDTHATKOREA3 жыл бұрын
@@SouthWestEVUK Thank you ~
@acherukuri2 жыл бұрын
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!
@SouthWestEVUK2 жыл бұрын
Hay, ive got your email cheers.
@xarishewii3 жыл бұрын
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?
@SouthWestEVUK3 жыл бұрын
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?
@tstcikhthys2 жыл бұрын
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.
@SouthWestEVUK2 жыл бұрын
yeah too much database development means I get odb and obd round the wrong way, and errrr, thats just the way I talk ;o)
@herethereandelsewhere19413 жыл бұрын
Any car, really! I defy you to find one of those on my 1974 Peugeot 104! :D :D :D
@SouthWestEVUK3 жыл бұрын
ahhhhh, true.
@keithduffield52393 жыл бұрын
Thanks. BTW - I prefer the term "BUSY" rather than "NOISY". In electrical terms noisy implies junk or meaningless information.
@SouthWestEVUK3 жыл бұрын
Yeah true, fully agree!
@AhmedEssam-hh2ge4 жыл бұрын
Hello, what is connected in the laptop usb, isnt it supposed to be a simple usb wire to the arduino leonardo?
@SouthWestEVUK4 жыл бұрын
Yes just a standard usb cable.
@zych844 жыл бұрын
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
@SouthWestEVUK4 жыл бұрын
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)
@zych844 жыл бұрын
@@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 ;)
@martynasetminas78454 жыл бұрын
@@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?
@Gadgit834 жыл бұрын
Have been working on some CAN bus shield development - particularly with the ESP32 for wireless CAN bus debugging. Was also planning on looking to develop some software to improve the analysis of CAN signals for hacking purposes. Did you come across anything similar?
@SouthWestEVUK4 жыл бұрын
Ive not come across anything no, a wireless device that dumps the communications to a txt file on a local computer would be an awesome device.
@Mitutumuch2 жыл бұрын
dude ive been trying to make an ecu. bro. thank you. this bit was soooo useful!!!
@SouthWestEVUK2 жыл бұрын
Not a problem, good luck with the project.
@sreejithsreekumar904 жыл бұрын
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?
@SouthWestEVUK4 жыл бұрын
Is that not what this video does?
@schirmcharmemelone4 жыл бұрын
@@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.
@RetroRepair9 ай бұрын
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?
@SouthWestEVUK9 ай бұрын
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.
@harryohanson4 жыл бұрын
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!
@SouthWestEVUK4 жыл бұрын
Yes absolutely!
@harryohanson4 жыл бұрын
How do you tie sensors to the Arduino?
@OtherDalfite3 жыл бұрын
@@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.
@harryohanson3 жыл бұрын
Thank you for your reply!
@SalaMotorsport3 жыл бұрын
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.
@SouthWestEVUK3 жыл бұрын
Cool glad it helped, good luck - canbus can suck a lot of time out of you!
@laurentpeylet90638 ай бұрын
Hello, Can this assembly read J1939?
@SouthWestEVUK8 ай бұрын
Hmmm, no I dont think so
@taranagnew4363 жыл бұрын
is there a wireless canbus plug-in that can import the data to excel?
@SouthWestEVUK3 жыл бұрын
you could add a wifi adapter to the arduino, then write some code to dump it to a csv that excel could open yeah.
@florenciomartinez36953 жыл бұрын
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
@SouthWestEVUK3 жыл бұрын
Hi - you have not really said what you are trying to do, other than learn this stuff? But what stuff?
@florenciomartinez36953 жыл бұрын
@@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
@SouthWestEVUK3 жыл бұрын
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!
@dominiksavli32854 жыл бұрын
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?
@SouthWestEVUK4 жыл бұрын
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
@ragchaasurengalindev4 жыл бұрын
Great. Absolutely helpful.
@SouthWestEVUK4 жыл бұрын
Glad it helped
@realistik013 жыл бұрын
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
@realistik013 жыл бұрын
i mean if im not wrong there more then 30ish stuff we can pull from ?
@SouthWestEVUK3 жыл бұрын
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.
@lukasbeyhl8977Ай бұрын
Hallo leute habe ein kleines problem mit dem skript Ich habe folgende libraries verwendet :MCP_CAN_lib-master und Seeed_Arduino_CAN-maste. Wenn ich nun das Scrip laden möchte kommt folgender error : Compilation error: 'class MCP_CAN' has no member named 'readMsgBufID'; did you mean 'readMsgBuf'? Kann mir hier jemand helfen ?
@michaelcruz29943 жыл бұрын
What does it look like when. Module is down and won’t communicate? Can you tell?
@SouthWestEVUK3 жыл бұрын
It depends what that module is sending, but yeah, if you know what is missing you can then tell it is down.
@yasserellouizi52353 жыл бұрын
- @@SouthWestEVUK
@amirouw2 жыл бұрын
How can we access ecu flash mem to modify map data ..... Plz help
@SouthWestEVUK2 жыл бұрын
really depends on the system in question
@wiredwrx4 жыл бұрын
Hi, trying to use the arduino sketch you linked to, but it is throwing some errors when compiling. Is something missing?
@SouthWestEVUK4 жыл бұрын
Hay, what error are you getting?
@wiredwrx4 жыл бұрын
@@SouthWestEVUK Thanks for the response. If you want the "verbose" log, just let me know. Arduino: 1.8.13 (Windows 7), Board: "Arduino Nano, ATmega328P" C:\Users\Boss\AppData\Local\Temp\arduino_modified_sketch_176171\sketch_jul31a.ino: In function 'void setup()': sketch_jul31a:35:29: error: no matching function for call to 'MCP_CAN::begin(int)' if (CAN0.begin(CAN_500KBPS) == CAN_OK) { ^ In file included from C:\Users\Boss\AppData\Local\Temp\arduino_modified_sketch_176171\sketch_jul31a.ino:2:0: C:\Users\Boss\Documents\Arduino\libraries\MCP_CAN_lib-master/mcp_can.h:108:11: note: candidate: byte MCP_CAN::begin(byte, byte, byte) INT8U begin(INT8U idmodeset, INT8U speedset, INT8U clockset); // Initialize controller parameters ^~~~~ C:\Users\Boss\Documents\Arduino\libraries\MCP_CAN_lib-master/mcp_can.h:108:11: note: candidate expects 3 arguments, 1 provided C:\Users\Boss\AppData\Local\Temp\arduino_modified_sketch_176171\sketch_jul31a.ino: In function 'void loop()': sketch_jul31a:52:10: error: 'class MCP_CAN' has no member named 'readMsgBufID'; did you mean 'readMsgBuf'? CAN0.readMsgBufID(&ID, &len, buf); // Read data ^~~~~~~~~~~~ readMsgBuf Multiple libraries were found for "mcp_can.h" Used: C:\Users\Boss\Documents\Arduino\libraries\MCP_CAN_lib-master Not used: C:\Users\Boss\Documents\Arduino\libraries\CAN_BUS_Shield-master exit status 1 no matching function for call to 'MCP_CAN::begin(int)' This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.
@Opuskiller13 жыл бұрын
going from the bottom, up: You have multiple MCP libraries on your machine that the arduino IDE can find, so it's sorta confused. To try and be helpful, it just picked one for you... Later up it says "Hey, there is this CAN0 object that doesn't have a method called 'readMsgBufID'". This means that the library you're using doesn't know what this method is, or what it does (it can't find a definition for it) Above that issue, it goes on to say "This CAN0 object created from this library doesn't have the same method that you're calling in your code... You have one really close called "begin," but it's just different enough that I can't do anything with it" long-story-short--and without actually checking--I would think the wrong library is being used
@meierthomas2 жыл бұрын
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
@SouthWestEVUK2 жыл бұрын
yeah, or a small database to reference things properly.
@simonruddy82653 жыл бұрын
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.
@SouthWestEVUK3 жыл бұрын
Yeah, all totally right.
@henriquecosta30313 жыл бұрын
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
@SouthWestEVUK3 жыл бұрын
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!
@bjrntoreldding58333 жыл бұрын
Hello! My Arduino does not look like this at all. I only have one window and no monitor. Im running 1.8.13 and installed it a few days ago. Regards from Norway :-)
@SouthWestEVUK3 жыл бұрын
The Arduino is really a microprocessor - they come in many different formats, strictly speaking this board is not a true Arduino.
@bjrntoreldding58333 жыл бұрын
@@SouthWestEVUK witch program are you running?
@MrRonklo Жыл бұрын
I get this error at line 25 when I compile ??? Compilation error: 'long unsigned int time' redeclared as different kind of symbol
@SouthWestEVUK Жыл бұрын
What you compiling bud?
@ronkloiber Жыл бұрын
@@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 < 10000) { // Check to see whether data is read 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 Жыл бұрын
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'?
@pauludrea40822 жыл бұрын
Thank you Dave, very clear explanation. It helps a lot.
@SouthWestEVUK2 жыл бұрын
Glad it helped bud
@Mark11733 жыл бұрын
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.
@SouthWestEVUK3 жыл бұрын
I have just looked at what library I used github.com/sandeepmistry/arduino-CAN Try that one?
@Mark11733 жыл бұрын
@@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.
@ducquang-bill17034 ай бұрын
How to check my car baud rate and interface, it not respone any message :(