I am testing a CAN bus network with 3 nodes. What I mean by node is a esp32 which has a CAN controller and a tja1051 transceiver module. There seems to be no problem when here are just two nodes but when I connect my 3rd node to transmit a message with the other 2 set up to just receive it does not work.
For context I am using sandeepmistry CAN library on the arduino IDE, and I can only monitor two esp32s at a time. I am doing all of this on a breadboard(s) so it is possible there is a connection issue, but I have probably spent a good hour in total making sure everything is in the right place. One source of error that I recognize is that I am using 100 ohm resistors instead of 120 ohms but I have read that it is fine to use no resistors? I am powering one of the esp32 with the 3v3 pin (since I can only power 2 at a time) and all the grounds are common. Additionally I am pretty sure that there is no problem with the transceiver modules, I have swapped them around and it seems to work with just 2 nodes. I am using the code provided in the following link https://www.circuitstate.com/tutorials/what-is-can-bus-how-to-use-can-interface-with-esp32-and-arduino/ It is very similar to the example code provided by sandeepmistry. Currently when I want to make a node transmit messages or receive messages I use canSender() or canReceiver() functions in the loop.
Oddly when I monitor two of the esp32s I can see that the 3rd node seemingly manages to send messages but when the code on the other esp32 I am monitoring loads, the 3rd node just stops working (the CAN.write(...) program lines dont run).
I would greatly appreciate any help reducing the possible sources of error.
Edit: I went back to using only 2 nodes and the problem persisted. I believe the problem is the 3rd esp32 because when I switch esp32 (using the same transceiver) it miraculously works. I have messed around using different pins for rx and tx using CAN.setPins() and nothing works.