I recently joined a new project where two ESP32-WROOM-32UE modules on separate circuit boards talk to each other via the UART pins. The distance between the two boards is roughly 1 meter of cable apart, so the board designers integrated level shifters on each board to shift the 3.3V ESP32 logic levels to 5V, then back down to 3.3V. Here is the level shifter schematic:
Current values for the resistors are: R5 = R6 = 1K, R7 = R8 = 499K
The problem occurs when the two ESP32 tries to talk to each other. ESP32 #1 is able to receive messages from ESP32 #2 with no issues. ESP32 #2 is not able to receive messages from ESP32 #1. The signal scoped between the two level shifters when ESP #1 is transmitting has a high level of 5V and a low level of 3V (Sorry I forgot to save the plot of the scoped signals).
I have eliminated the possibility that the serial port is incorrectly setup in the firmware, so I think that it is due to the selection of pull-up resistors. I do not have much experience tweaking pull-up resistors for level shifters and would love some assistance. What do I look for in the datasheet to calculate the correct values of the pull-up resistors?