ESP32-S3 TWAI/CAN Communication Issue with TJA1050 Transceiver
Posted: Sun Jan 18, 2026 7:50 pm
Hi everyone,
I’m working on implementing TWAI (CAN) communication using the ESP32’s built-in TWAI driver and could use some help troubleshooting an issue specific to the ESP32-S3.
The Setup:
[*]Using the Arduino core (board package version 3.3.5)
[*]TJA1050 CAN transceivers on both ends of all tested configurations
[*]Tested the provided examples: TWAIreceive and TWAItransmit
What Works:
Communication works perfectly in these combinations:
[*]ESP32-DevkitC ———— ESP32-DevkitC
[*]ESP32-DevkitC ———— ESP32-C3 Supermini
[*]ESP32-C3 Supermini ———— ESP32-C3 Supermini
The Problem:
When I introduce an ESP32-S3 (16MB Flash, 8MB PSRAM) into the setup, communication fails. The code compiles and uploads without errors, but the S3 neither sends nor receives any data. The same hardware (TJA1050) and software configurations work fine with the DevKitC and C3 models.
I verified wiring and connections and ensured the TJA1050 transceivers are functional (they work in all other combinations). I used the same example code (from the examples menu) that works on other ESP32 variants. I also tested multiple baud rates: 1000, 500, and 250 Kbps. And I tried various GPIO combinations for TX/RX pins, for example:
[*]TX: GPIO 13, RX: GPIO 14
[*]TX: GPIO 17, RX: GPIO 18
Given that I’m relatively new to ESP32 development, I’d appreciate any insights into why the S3 might behave differently. Are there known differences in the TWAI driver, GPIO mapping, or clock configuration on the S3? Is there any configuration step I’m missing?
Thanks in advance for your help!
I’m working on implementing TWAI (CAN) communication using the ESP32’s built-in TWAI driver and could use some help troubleshooting an issue specific to the ESP32-S3.
The Setup:
[*]Using the Arduino core (board package version 3.3.5)
[*]TJA1050 CAN transceivers on both ends of all tested configurations
[*]Tested the provided examples: TWAIreceive and TWAItransmit
What Works:
Communication works perfectly in these combinations:
[*]ESP32-DevkitC ———— ESP32-DevkitC
[*]ESP32-DevkitC ———— ESP32-C3 Supermini
[*]ESP32-C3 Supermini ———— ESP32-C3 Supermini
The Problem:
When I introduce an ESP32-S3 (16MB Flash, 8MB PSRAM) into the setup, communication fails. The code compiles and uploads without errors, but the S3 neither sends nor receives any data. The same hardware (TJA1050) and software configurations work fine with the DevKitC and C3 models.
I verified wiring and connections and ensured the TJA1050 transceivers are functional (they work in all other combinations). I used the same example code (from the examples menu) that works on other ESP32 variants. I also tested multiple baud rates: 1000, 500, and 250 Kbps. And I tried various GPIO combinations for TX/RX pins, for example:
[*]TX: GPIO 13, RX: GPIO 14
[*]TX: GPIO 17, RX: GPIO 18
Given that I’m relatively new to ESP32 development, I’d appreciate any insights into why the S3 might behave differently. Are there known differences in the TWAI driver, GPIO mapping, or clock configuration on the S3? Is there any configuration step I’m missing?
Thanks in advance for your help!