[Ovmsdev] V3 CAN frames missing last four data bytes

Collin Kidder collink at kkmfg.com
Fri Oct 27 00:05:28 HKT 2017


Well, not really. Vector doesn't seem particularly interested in
releasing documentation on the file format. There are several open
source implementations. None of  us have been visited by men in black
suits yet. But, we all kind of found bits and pieces throughout the
internet and looked at each other's implementations. This isn't
particularly ideal. Because of that maybe it would be better for you
to use the KCD format. But, a lot of existing information you could
use is already in DBC format so you'd likely be converting. CANBabel
can be used to convert DBC files so this isn't especially troublesome.

I suppose it depends on your level of worry regarding Vector and their
DBC format. Lots of libraries exist to read it (including canbabel)
and so far no one seems to have gotten in trouble for reading the DBC
files. I'm even writing to them and no one has said a word. But, it's
a rather gray area and perhaps Vector might get testy at any moment.
This makes KCD the potentially safer format. But, it's also a lot more
verbose. If you have memory or processing constraints then it might be
a bit bloated to load on an embedded processor. However, the ESP32 is
rather fast so I don't think you'd have much of an issue there. I
suppose the only real downside I could see to using KCD files is that
they're a lot more obscure and less supported. Kayak is the only
program I know of that uses them. This somewhat limits their
usefulness in other projects.

On Thu, Oct 26, 2017 at 10:45 AM, Mark Webb-Johnson
<mark at webb-johnson.net> wrote:
> Either DBC or KCD seems suitable.
>
> Is there an open specification for the DBC format, that is shareable?
>
> Regards, Mark.
>
>> On 26 Oct 2017, at 9:52 PM, Collin Kidder <collink at kkmfg.com> wrote:
>>
>> Would the DBC format be of use here? It seems you primarily want to
>> store mappings between data items and where they can be found within
>> CAN messages. That's exactly what DBC files do. If you stored data
>> definitions in DBC you could load the proper one for the car and parse
>> the file to get all of the definitions. There are already lots of DBC
>> files floating around for all sorts of cars. They don't tend to change
>> the message format much between years and cars (unless you're Tesla -
>> they sure seem to have a lot of different formats for CAN messages
>> between cars, regions, and years).
>>
>> The problem is that it isn't geared toward polled data. The OBDII/UDS
>> polled system is completely separate. But then most cars I've seen
>> conform fairly closely to UDS for polled traffic so perhaps a second
>> format that specifies the service/subfunction could work?
>>
>> Just observations from the outside looking in. I've done a lot with
>> DBC files so I'm inclined to think in that direction.
>>
>> On Wed, Oct 25, 2017 at 7:31 PM, Greg D. <gregd2350 at gmail.com> wrote:
>>> Interesting, but do we have the processing power and memory to run this in
>>> real time?
>>>
>>> We're hopefully on the cusp of an explosion of new BEVs, which potentially
>>> need support from a device such as OVMS, so building in a more generic CAN
>>> decoder engine could facilitate that support much more easily.  But, how
>>> different are the cars within each manufacturer?  Is the GM Volt's
>>> EV-related metrics that different from the Bolt EV?  "Conway's Law" * tells
>>> me that they will be, but what have we seen?  Roadster 1.5 vs 2.0 vs 2.5 are
>>> very similar, I think.  Leaf 1 vs Leaf 2 - also pretty close, right?  How
>>> will Ford's offerings work?  WAG, Jaguar, and all the Chinese mfgrs etc. are
>>> just getting started.  Is this problem sufficiently bound in scope that we
>>> don't need to get too exotic with the decoders?
>>>
>>> Greg
>>>
>>> * Conway's Law states that the structure of a product matches the structure
>>> of the organization that invented it.  Two cars, from two different
>>> divisions, would therefore have different CAN bugs messages, unless a lot of
>>> energy was put into standardizing them internally.
>>>
>>>
>>> Michael Balzer wrote:
>>>
>>> P.S. I’ve always thought that long-term, descriptor files (rather than
>>> individual vehicle modules) is a better way to go for what we are trying to
>>> do (map bits of can bus messages -> metrics). Something that says
>>> ’v.bat.soc’ is bus #1, ID 0x100, B1=0x80, data byte #2, as uint8_t - rather
>>> than code to extract that. Doing it that way means no coding (just reverse
>>> engineering), and it is bi-directional (great for simulators).
>>>
>>> ddt4all (proprietary DDT2000 XML based) as well as CANZE follow this
>>> generic approach. A DDT specification file defines device addressing,
>>> data types, requests/responses and screens.
>>>
>>>
>>>
>>> _______________________________________________
>>> OvmsDev mailing list
>>> OvmsDev at lists.teslaclub.hk
>>> http://lists.teslaclub.hk/mailman/listinfo/ovmsdev
>>>
>> _______________________________________________
>> OvmsDev mailing list
>> OvmsDev at lists.teslaclub.hk
>> http://lists.teslaclub.hk/mailman/listinfo/ovmsdev
>
> _______________________________________________
> OvmsDev mailing list
> OvmsDev at lists.teslaclub.hk
> http://lists.teslaclub.hk/mailman/listinfo/ovmsdev


More information about the OvmsDev mailing list