Raspberry Pi Modems

This all started a few weeks ago, I saw a picture of the new Light Phone 3. I was like "That's pretty cool, how much is it?" I was expecting $200-400 but to my astonishment, after pre-orders, it will be $800. So I logically said, "It can't be that hard," and this project was born, make an E-Ink phone for less than $400 with off-the-shelf parts.
I decided the first step of this ambitious project would be getting cellular working on a Pi Zero W. I decided to order a Waveshare SIM7600A-H (order at your own risk). My reasoning was that I could just use gpio for the modem so I wouldn't need extra cables. This is where the issues start.
Long story short, doing anything internet related over gpio is a pain. I found data pads under the micro USB connectors on both the pi and modem, so once I have some time, I will add a short wire permanently connecting the two and bypassing the USB cord.


The second issue is that when I was debugging the modem connection over SSH, it took a painfully long time to respond to any commands. By then, it was late into the night and I was having no luck with the modem, so out of rage I ordered a Raspberry Pi Zero 2W (could they make the names more confusing?), to try and fix the SSH issue. The new Pi didn't fix anything at first, but for some reason after a few days it got better, no idea why. So that's what I've been using for the rest of the project.
Third issue, also at night (seeing a pattern here?). I was still trying to get the modem to connect to a cell network using this lovely 460-page AT command manual. I decided to call it a night so I CAREFULLY tried to unplug the antenna from the board, but the whole connector decided to come off. I blame bad PCB construction. The next morning I decided to do a temporary fix; cutting and stripping the broken coax and soldering it right to the PCB (I know this is not good at higher frequencies, but it works). The picture is not great but I can assure you that center pin and ground are not touching.

The last big issue had actually been messing me up the whole time, I thought it would be a great idea to take out my Visible (Verizon MVNO) SIM card out from my phone and use it in the modem. But apparently they don't want you doing that, so Verizon (or Visible) made it so that the SIM card only works in approved phones (or modems). I ended up buying a Tello SIM card so that I can easily change the amount of data for the month and not pay outrageous fees. ($6/month is not bad at all)
The next parts of this project include, setting up an E-Ink screen, and making message and phone apps. Hopefully that gets done soon! Thank you to Jeff Geerling for helping me figure out the SIM card issue, and his blog post about Pi modems. He was right, there is nothing about these on the internet.
Notes:
Here are my raw notes for the project, if you want more information about anything feel free to email me at the bottom of this site.
Using RNDIS.
Must stop ModemManager because it takes the AT port. Internet seems to still work with it stopped.
AT+CMGF=1 - Set SMS to text mode
AT+CPMS="ME" - Use internal memory
AT+CNMI=2,2,0,0,0 - Push incoming SMS directly over serial
LSUSB - To check if device is there
sudo picocom -b 115200 /dev/ttyUSB3 - Connect to serial
minicom -D /dev/ttyUSB3 -b 115200 - Same as above
ATE1 - Not needed but it lets you see what you are typing
at+cgdcont=1,"IP","wholesale" - Sets the APN
AT+CFUN=1,1 - Restarts modem
AT+COPS=? - Finds local network ops
AT+COPS=1,2,"310260" - Connects you to network operator "310260"