J2534 support, can be used with GDS2 and others?

Hello. I was just wondering if there is support or if anyone is working on J2534 support. Basically if I don’t have to write, but rather can contribute to a project that is already started, I would like to, or if someone could point me in the right direction, that would be sweet.

Also, let’s say this device where to be used with a program that could work on multiple protocols and wants to talk to a device capable of the same via USB, where would I find some docs on how to do that? Like, how do I communicate with the m2 via USB? Just via serial with SocketCAN or something? Or if there something out there with legit USB support? SocketCAN is fine with me, if needed. But if the thing I want to talk to is NOT CAN-bus compatible (say, VPW), do I have to change the sketch, or can these libraries be used to make a sort of all-in-one library that can talk to a bunch of different protocols (considering they are all running on different OBD2 pins, then I would think they wouldn’t interfere with one another).

Sorry for buggin ya, just documentation is slim pickins as far as I can see

The documentation is slim pickings right now because the software for this device is pretty much slim pickings. The ONLY fully functional software right now that I am aware of is made by Collin with his software. This only works with CANBUS and SWCAN and is more of a proprietary connection compared to standard USB style connections.

While the other protocols are supported in hardware there has not been a project yet that makes them all accessible. I have plans to create such a beast but I am currently working full time while attending school part time so my time is limited. There are some seperate libraries for some of the protocols but as far as I know they are all pretty much just pass through interfaces. IE you load Kline support and it just plugs in and passes it back and forth requiring custom software on the PC to connect to it. Same with VPW. PWM hasn’t been done yet as far as I am aware.

In other words everything to this point has pretty much been custom by the user and few have shared their work. Sorry if that didn’t make sense. Basically its hardware without full software support at this time.

The P1 device has full socketCan support and will work fully as a socketCan device. As far as I know no other protocols have been written yet for the P1. When I complete my final exam in the next week or so I hope to look into how hard it would be to add the additional OBDII protocol software to the P1 device.

I believe it will be easier to add the protocols to the P1 first then to the M2 CPU board but I will see how it goes when I get a chance to look into it.

For sure. Thanks. I will check it out. The only reason I don’t dig the pocketbeagle or any of the beagles is because they are so low on RAM. I would like to find something that size with at the very least 1GB (2GB would be perfect), and right now the best bang for my buck is the pi4 which is why I am trying to make that guy work.

I am going to try my hand at writing some code for it some point this week. Is there any firmware out there that will allow me to control the pin state and all of that without hardcoding anything? Perhaps this doesn’t make sense. Like, Let’s say I hook up my pi to it via USB, and use Python to send serial commands to the M2 to have it do what it would normally take writing and compiling firmware to do? So that it would be controlled on the fly outside of it’s own programming? I heard of firmata or something like that and think that may be what I am looking for, but it was late last night and I was seepeez. Lol

As far as I understand it… You have to load software onto the Arduino to do anything. No way to bypass that and access the hardware directly short of using a JTAG type interface.

I am curious what in the world you are planning on doing that is going to take more than 512meg on a linux machine. The PocketBeagle that is used does not have a GUI so everything is command line driven. You can put stuff on the SDcard and it has a full USB port that can be used for things such as WiFi or a Flash drive etc. I have like 3 x Pi 2 and a Pi 3. The only way I would even BEGIN to use the memory in those is if I were playing around with processing graphics for AI or running multiple graphics intensive programs. Even then I don’t know that I would begin pushing that. On my VMs on my computer I seldom use more than 512k except for disk buffers. Only exceptions are when I am trying to do something like crack passwords and load a 28 gig file. (Working on Masters in Cyber Security so I CAN tax the memory at times…).

There is a SocketCan Daemon available that will let you communicate with a SocketCan device through its network port so you could setup the P1 to communicate with another device if you so desired.

Please don’t think I am attacking you in any way. I am curious how you are going to make use of more than 512meg without using graphics. The M2 uses far less. I dare to bet that you will find you won’t even dent that 512meg without graphics. I get it, I have two desktops and one has 24gig and the other has 32gig. My Servers have 48 and 52 gig. Do I ever use all of it though? Probably not… Not even when I have as many as 8 VM’s running…

1 Like

There actually are graphics, and I am a Linux HERO. lol. I am very familiar with nix systems, and actually spent about 12 years in network security. I will for sure need more than 512mb, as there are some services that will be running that, together, will eat half a gig alive. The device has a touchscreen, as well. I actually already got it partially working, and it seems the firmata protocol will actually let me control the MCU in the way that I wanted (you install the fiirmware on the MCU, and it exposes an API that you can throw commands and requests at to get it to do whatever it normally would with compiled firmware; just on the fly). I am going to experiment with it a bit over the next few days and see what I come up with.

1 Like

looks like someone made an open source J2534 for arduino https://github.com/hackingvolvo/SardineCAN-Arduino

You should check out my Macchina M2 J2534 API driver

It even supports Linux and OSX (unofficially!) - You have to use OpenVehicleDiag on Linux/OSX to utilise it.