-
Notifications
You must be signed in to change notification settings - Fork 11
Home
Welcome to the CAN-X wiki!
This CAN-X is a hobby of mine that i decided to start. Why? Because I've been using IntrepidCS Neo-VI Fire/Fire2 for many years, 15 years to be exact but recently due to job changes, I have not been in possession of a CAN bus analyzer. So I've decided to use hardware that I have lying around and wrote some firmware to turn a development kit into a CAN bus analyzer. I'm still in the process of finishing the software for Windows.
For those who don't know me, i used to work for PAC in Santa Ana, CA. The TR-7 was my very first product I designed for them. I was the one who designed the SWI-X, SWI-RC, OnStar interfaces, etc. I started reverse engineering the CAN bus starting maybe back in 2005. I worked on the Chrysler LSFTCAN and MS CAN bus before going on to GM's SWCAN. My tool of choice which was expensive but cheaper than Vector Tools is the Neo-VI Red/Fire/Fire2 with Vehicle Spy software.
Vehicle Spy 3 is good, but also too cluttered. There are many features that was not needed. But it is a big improvement over Vehicle Spy 2.
CAN-X is a USB to CAN bus analyzer software that works using a couple hardware devices.
- ST STM32F4-Discovery kit with Mikro Elektronika STM32F4-Discovery Shield. The firmware can be found here https://github.com/karlyamashita/USB_to_CAN
- *** NEW *** I've just added the source code for the CANable interface from protofusion.org. https://github.com/karlyamashita/CANable_USB_CAN
- Here is hardware that has two CAN controllers https://github.com/karlyamashita/CAN_USB_Dual_CAN
- Next hardware I'll be working on is https://github.com/karlyamashita/STM32F407VET6_Learning
CAN-X was meant to be a simple program without all the bells and whistles. It's main purpose was to view data, add description names to the ArbId's. And to transmit a list of messages. I've seen layouts of other programs and i just don't see them being intuitive. This prompted me to design one to be better. Well at least for me. We all have our own preferences, lol.
CAN-X is still in the development stage. It is written in WPF in VS 2017. If there are bugs, please let me know. This version will be basic. A pro version is my next project.
- Currently you can receive CAN bus messages. You can Right Click on a specific message to bring up a menu to save to Transmit or Receive Messages in Message Editor.
- You can add to the Transmit Messages under Message Editor. Then in the Message Monitor you can click the send button. A green round icon will display to indicate where in the messages it was sent.
- You can save the Project files Transmit and Receive messages in the Message Editor tab.
- In the Edit Messages for Receive, you can add a description of an ID. When viewing messages the description will show on screen so you can identify that ID was sent on the CAN bus. You can also add notes as well.
- You can change the baud rate by selecting the drop down menu. The BTR box will be filled with the appropriate CAN_BTR value.
- You can Save the received messages as a CSV file which you can open in Excel for viewing.
- Filter and masks
- Listen only mode
- Issues with Line count, Rx and Tx count when switching between Scroll and Non-Scroll mode.
- It seems that the CANable device sends back the wrong baud rate value. But sending the baud rate when selecting the dropdown seems to work.
- AutoTx transmit timing is not accurate. Depending on the rate the messages are being sent, they lag about 40ms ~ 100ms or more.
- During debugging in Visual Studio the Received messages screen is ok, but when running stand alone the data flashes when lot of data is being received.
This project uses this USB driver https://github.com/karlyamashita/HidUsb It's a separate project but CAN-X needs to reference this USB project. Or once your compile it, you can copy the UsbHid.dll to the CAN-X project and reference it instead.
The firmware for the hardware can be found here https://github.com/karlyamashita/USB_to_CAN
I currently don't have access to the Fire2/VSPY3 so I have been using SocketCAN on my Linux Laptop using an inexpensive CAN interface that uses the native can0 network. I'm currently using a Python script to send and receive messages and to make sure the different baud rates work.