I've been working with the
LTE SIM7600 SIM7600CE-T_4G(LTE)_Shield_V1.0_SKU_TEL0124-DFRobot
for a few weeks now, with an Arduino Uno. The LTE has SSL/MQTT onboard and I'm using it to communicate with AWS IOT. I have it connecting and publishing short messages back and forth.
The LTE is connected on pins 7,8 using SoftwareSerial . I figured out that I had to slow down the baud rate to 9600 between the LTE and Arduino AND the Arduino/PC usb port, in order to get the SSL certificates loaded onto the LTE without corruption. I found I had to use "slow write" code like this;
loop
modem.write(data); / 10 bytes at a time
pause
repeat until finished
in order to get the certs copied accurately. My understanding is that the USB port does have flow control but I'm now certain that the Arduino/LTE virtual serial port does not. I know the Uno can't do flow control on 7,8. And I've now confirmed that the LTE doesn't have flow control support either - received response from inquiry to DFRobot. They state there are no pins available on the LTE for RTS/CTS.
I found I had to both slow the baud rate to 9600 AND had to use the slow write code above to get it to work. Is this commonly done? Am I missing something?
I don't understand how a cell modem board can be useful for transmitting data without a solid serial port with flow control. For example this LTE board boasts "up to 150Mbps for downlink and 50Mbps for uplink data transfer" well it can't do that if the LTE/Arduino port is hamstrung at 9600 baud or slower without flow control. What am I missing?
I'm a long time software engineer (30 years) but new to firmware/Arduino. Lot's to learn so I appreciate any and all clues, advice etc.
Thanks
Mike