J1939 CAN BUS Testing
I developed this test as an early prototype for testing the MCP2515 CAN Transceiver in isolation. To test the transceiver I connected two MCP2515s to separate Arduino Uno R3 boards and connected them together via the CAN High and CAN Low pins (using 2 120R resistors to prevent signal reflections). The test involved a 4-stage development.
The First Arduino was programmed as a CAN Sender. Its job was to read values from the anolog pins and build a valid CAN message. This was done using the AutoWP arduino library. I initially developed this with just a single analog sensor and tested it with an oscilloscope and logic analyzer to ensure I was receiving valid data and that data was being suitably converted to CAN.
The second Arduino was programmed to parse the CAN frames, build them into a valid JSON message and transmit them over a UART to a computer so they could be picked up by a COM reader service.
Following the same process I used on the SAP-1 Emulator Project. The third piece of the puzzle was an Express.js project that read the COM port for the incomming JSON data and echoed the data to a TCP websocket.
The final stage was a simple VueJS application, which read the TCP websocket and parsed the JSON dat, ultimately rendering the analog sensor values into reactive Vue components.
Hardware Setup
The following schematic demonstrates how the project was configured:
The implementation uses the following components to demonstrate the functionality
- 2* Arduino Uno
- 2* MCP2515 Shield
- 10K potentiometer
- MAX4466 Analog Microphone
- Light Dependent Resistor
- 2* 120R Resistors
Media

Repositories
There are various repositories for this project. View them on GitHub: