GIGA CAN controller won't listen to the bus

Hey everyone,

I'm working on a system that uses 2 Adafruit ESP32 Feather V2's in conjunction with an Arduino Giga but I cannot for like life of me get the Giga to listen to the messages on the bus while the receiving feather reads the frame without issue. I'm 100% sure that the wiring to the transceivers is correct so I am convinced this is a software issue. My logic analyzer indicates that the correct signals are being fed to the Giga's CAN_RX line (PB_5/FDCAN2_RX) so I'm sure everything is solid up to that point.

I've tried all the examples I could find from multiple libraries as well as working with the STM HAL directly to no avail. Anyone have any gotchas they came across while working with the Giga CAN controller?

I use PlatformIO almost exclusively but I'd be happy to share anything I've got going so far but I didn't want to clutter the post with needless additions unless necessary.

TIA

Hi @vektorised The GIGAs pins_arduino.h defines two CAN interfaces, have you tried both?

#define CAN_HOWMANY       2

#define PIN_CAN0_TX       (PB_13)
#define PIN_CAN0_RX       (PB_5)

#define PIN_CAN1_TX       (PH_13)
#define PIN_CAN1_RX       (PB_8)

Hey @steve9 thanks for jumping in.

I have sifted through the pin def files for the Giga both to verify and try other interfaces. I’ve tried both CAN1 and 2 with external bus and internal loopbacks. Ive had slight luck with the loop back (a couple dropped bytes in each frame) but none on the external bus.

I can share more about my setup soon as I’m away from that computer at the moment.

I’ve played around with CAN before when messing with my car’s ECU but never at this level so I’m sure I’m missing something likely very obvious in the config.