CAN-BUS project G120 vs G400


I’m starting the new project that will use CAN bus. What SoM will you recommend as the most stable with CAN? G120 or G400?

How many messages per second planned on the bus?

Not tested yet. It’s automotive CAN in BMW.

BTW, is CAN fixed in Cerb? Or it’s still not stable/slow in OSHW?

I personally wouldn’t go with Cerberus, although CAN should be fixed on it since it is a 1st class product. [em]For now[/em].

G120/EMX may be not fast enough if you’ve got thousands of messages per second. G400 will crunch pretty much anything, but the last time I used it, it was skipping messages on some very rare occasions. Don’t know if it is fixed now. Judging from the realease notes it is not, but I’ll be honest — I do not use GHI’s CAN implementation, so I do not know for sure. I did my own implementation for G400 using RLP.

Is your implementation OpenSource?

No, it is a quick-and-dirty implementation suiting my specific needs. I’m just saying that in case you don’t like GHI CAN implementation, you can make your own. If you really, really need to.

OK, got it.

Thank you guys!

PS. Bought FEZ Cobra II and CAN DW Module. But Cobra doesn’t have C socket. So Gadgeteer! :smiley:

Anyway, it requires soldering. I could just solder 2.54 headers to Cobra and resolder module cable. But I thought that I will use the power of Gadgeteer. Not at this time :smiley: Sorry for offtop.

We use G120 with CAN in an automotive application. Currently it’s Audi, but BMW will come as well. In our case we only have 1, 2 or 3 ECU’s from the car connected at a time.
This runs absolutely stable so far.
But if there is a lot of traffic on the bus, you should consider to get an buffer overrun. Luckily you can set the size of the internal CAN buffer of the driver with the later firmware versions.

What is the optimal buffer size? And how it could be set?

PS. Is your project on github or somewhere?

G120 with nativ code handles heavy CAN loads :slight_smile: