Skip to content

CAN/RS485 pin numbers look wrong on both S3 touch board configs, and RS485 claims the console pins #25

Description

@bdbarnett

From a schematic read of the Waveshare ESP32-S3-Touch-LCD-4.3 and -7 (2026-09-04). Needs a bench check before anyone edits — this is a report, not a diagnosis.

Both board files carry:

  • board_configs/fbdisplay/esp32-s3-touch-lcd-4_3/board_peripherals.py:11-15
  • board_configs/fbdisplay/esp32-s3-touch-lcd-7/board_peripherals.py:11-15
_CAN_TX = 15 / _CAN_RX = 16
_RS485_TX = 44 / _RS485_RX = 43

The schematics say CAN is GPIO19/20 through the FSUSB42UMX mux (common side = ESP_USB_N/P, one throw to the USB-C connector, the other to the CAN transceiver) and RS485 is GPIO15/16 at the SP3485. That is consistent with our own board_config.py:25-30 comment, which already documents EXIO5 selecting between native USB and the CAN transceiver on those same native-USB pins.

If that reading is right, the two pin pairs were transposed and RS485 inherited a wrong one — and the pair it inherited, 43/44, is the CH343P console UART. Calling rs485() on these boards would then reconfigure the console pins out from under the REPL. _CAN_SEL_EXIO = 5 # high = CAN mode is correct either way.

Second-order: can() drives the mux to CAN mode, which steals the USB-C connector. Worth a docstring warning on any board being used as a USB host.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions