Q&A Forum
Has anyone resolved this? I'm having the exact same error, and have spent quite a bit of time on it. I installed the latest version of the USB CAN tool (V9.12), and have tried manually installing the drivers that came with that, but it still doesn't recognize them.
I'd like to get this going. Any tips?
thanks,
Dave.
@tracktoys Did you ever find a solution? I'm having the same problem. When I plug the adapter into a different machine without drivers it comes up as "LYS USBCAN". I can install the drivers and it says working properly, but YourDyno always says the same error you get, problem with connecting.
Hi, I tested the USB CAN again just the other day and all was fine. Note that the two buses are named 0 and 1 in the software while they are marked 1 and 2 on the USB device. Also make sure the correct baud rate is chosen and that all devices are set to the same baud rate. You should normally enable the termination resistor in the USB device and also 1 other place on the bus (at the end if you have more than one device).
Hi
I have the CSS electronics CANmod.Temp,
In the CAN Device Setup
/ Chan name =TLTemp / byte offset =1 / Data length =2 / Offset = -2048 / Multi= 1 / Div=1
the frame layout for "TLTemp" data starts at bit position 10 and not 8, bits 8 & 9 are for the status of the TC.
How do I define or mask the "start bit" for just the 12 bit's of data ?
Breastfed
TL (Top-Left), TR (Top-Right), BL (Bottom-Left) and BR (Bottom-Right)
Name |
Bitpos |
Length |
Factor |
Offset |
Min |
Max |
Unit |
---|---|---|---|---|---|---|---|
CJTemp |
0 |
8 |
1 |
-128 |
-20 |
85 |
°C |
TLStatus |
8 |
2 |
1 |
0 |
0 |
3 |
|
TLTemp |
10 |
12 |
1 |
-2048 |
-210 |
1800 |
°C |
TRStatus |
22 |
2 |
1 |
0 |
0 |
3 |
|
TRTemp |
24 |
12 |
1 |
-2048 |
-210 |
1800 |
°C |
BLStatus |
36 |
2 |
1 |
0 |
0 |
3 |
|
BLTemp |
38 |
12 |
1 |
-2048 |
-210 |
1800 |
°C |
BRStatus |
50 |
2 |
1 |
0 |
0 |
3 |
|
BRTemp |
52 |
12 |
1 |
-2048 |
-210 |
1800 |
°C |
How do I define or mask the "start bit" for just the 12 bit's of data ?
Correction...
How do I define the "start bit" for just the 12 bit's of data ?
Breastfed
Hi, first off big thanks and thumbs up for the effort put into this with great results.
I posted this also on the main plugin page just to realize I had better posted it here as probably not a lot of people read or get updates about the main page
I tested the CANTool plugin and it works fine and intuitive for me for most common can signals having data in raw hex format sent on the bus. Although I acquired a relative high quality lambda meter of the brand ECM and it is outputting data in 32 bit floating point according to IEEE 754
the data in a packet looks like this in the log MSGID: 0x190 Packet: 75 84 3b 42 75 84 3b 42
Here I put 2 times the same channel (lambda) on one ID each being 4 pads wide. this then means 0x423b8475 in hex and if we decode it to decimal it represents lambda 46.87935256958008, (sensor was just hanging in free air)
Another example from the manual:
Lambda = 0x3F99C663 = 1.20137
O2 = 0x4054FDF2 = 3.32800%
here is a link to the manual of the unit (look on page 12) https://ecm-co.com/download/lambdacanp-manual/?tmstv=1684210188
here is a nice handy web page that does the 32bit floating point to hex or decimal https://babbage.cs.qc.cuny.edu/ieee-754.old/32bit.html
It would be cool if you could implement the option to decode the floating point as most recent high (er) end can modules also use this format, like for example the whole CSM CAN Minimodules used by many OEM car makers and engineering companies.
thank you and best regards,
Ruben
Thanks, @rub87.
It is possible to create a math channel for this. To make it easier you can create one for the Exponent and one for the Significant (by and'ing and shifting and applying an offset if needed) and create the final number with "Significant" * Math.Exp(10, "Exponent"). It may be Math.Exp(2, "Exponent"), I don't remember the IEEE 754 by heart
Ok thanks for the tip!, Ill give it a go tomorrow and report back
The window help specifies to look about the microsoft math class so if I look it up on google I come here and this say I should be able to write Hex(value) which should give me the a string with the number in hex, but the window doesnt accept die hex( so im already stuck before I started ????
A friend of me helped a bit and it is going into the right direction. this formula works now only when lambda goes below 1 the output is still wrong, but were getting there
(((((int)"Lambda_CANc.LAM" >> 31) & 1) == 0) ? 1.0f : -1.0f) * (1.0f + (((int)"Lambda_CANc.LAM" & 0x7FFFFF) / (float)(1<<23))) * (1<<((((int)"Lambda_CANc.LAM">>23) & 0xFF) - 127))
Ok so we got it work using these formulas. Maybe it could still be good if Bmgjet could just add a checkbox in the CANTool window to treat a certain message as being float IEEE754. Lets say some users have a CSM thermo scan and have like 16 channels if they would have to do this for 16 channels it could get a bit messy.
It seems there is a bit of a bug in the Math Channel plugin. Lets say one defines in line 1 a formula and then wants to use the result of that formula in line 2 it works. but if one closes and re opens the software it complains about a syntax error and all formulas where a result of another formula is used are automatically discarded. Even if the the source formula is higher in the list (assuming it would compile the list from top down)
You are right, @rub87, thanks. It will be fixed in the next release. If you are in a hurry, download this file https://yourdyno.com/M
Ow thats a quick fix! Ill give it a try as soon as I have the engine back together. Is there a way to filter or make a rolling average of channels? For example I have a delta pressure sensor off a DPF connected between the engine and the muffler to get an idea of the muffler backpressure. The pulses of the exhaust although make the voltage and thus number on the screen extremely hard to read so if i could filter it for 500 msec or 1 sec or so that would fix it.