I use a module same as here with my RPI 4B and there were difficulties in communication between them two since the start. The module worked fine with my Arduino. It is connected via Rxd-Txd pins, 5V, ground and an additional external power to the module.
I'm trying to make it make calls with the help of python, and for now after entering
python -m serial.tools.miniterm /dev/ttyAMA0 115200 to the RPI terminal and typing in blindly "AT" I get a series of backslashes which after a closer look turned out to be this: "␄␐␁␀" (EOT DLE SOH NUL). Which happily already is a response, but it's still not an "OK" that's expected after such command.
How could I solve this? I've surfed many google search results for RPI and SIM900 but none of them worked.
UPD: *Serial is enabled, *Bluetooth disabled, *OS is Raspbian 10, *the module doesn't respond to any baudrate other than 115200 I'll try to get a level shifter and use it between RPi and module, the suggestion seems pretty logical and I wouldn't even think of devices using different voltages for UART. I'll post the results as soon as I get the shifter.