CAN-BUS Shield cannot be initialized

I am trying to connect a CAN-BUS Shield to my RedBoard Plus to get information from the car via OBD II.

At first, I tried to see if the SparkFun CAN-Bus Arduino Library would work with just the RedBoard Plus and CAN-BUS Shield connected, but first, it does not initialize correctly. The serial monitor shows “Can’t init CAN”.

I did some light debugging and found that the CANSPEED_500 passed in CanbusClass::init() is not set in the register and mcp2515_read_register() returns zero.

Is the board broken? Can someone please advise?

How is the shield connected to the redboard? Did you solder the header pins to the shield?

Thank you for your response.

I have connected all pins of RedBoard Plus to CAN-BUS Shield as shown in the official Sparkfun [Hookup Guilde.

Maybe RedBoard and RedBoard Plus have a different pin arrangement?](https://learn.sparkfun.com/tutorials/can-bus-shield-hookup-guide?_ga=2.255679758.785330811.1651438186-919677869.1651438186)

Can you provide photos of the top and bottom of your shield and a photo showing it connected to your redboard plus? Maybe we can spot the issue from those.

I took pictures of the board.

It should at least initialize, I think you might have a bad solder joint somewhere. You might try retouching your headers and then cleaning the bottom of the board with an old toothbrush and some rubbing alcohol and see if that fixes things.

I agree; some of those connections (especially ground) don’t look like the solder has properly flowed to connect the pin to the pad.

/mike

Thanks YellowDog and n1ist for your responses.

I redid the soldering, but the result is still the same. I am tired…

D7,D8 on the shield responded and the joystick was fine. Is there an easy way to check which pin is the problem?

By the way, the version of Arduino IDE is 1.8.19. Is it a problem?

Arduino IDE version should not be a problem. Let’s see what else Yellowdog suggests.