PLS83-W Transparent TCP for HTTP, FTP? | Telit Cinterion IoT Developer Community
March 1, 2023 - 11:57pm, 704 views
Hi,
We're upgrading from the PLS8-US to PLS83-W. Previously with the PLS8, we'd been able to open HTTP and FTP connections in Transparent TCP Service mode. That results in an error with the PLS83 and checking the data sheet, it looks like only non-transparent is available for HTTP/FTP. We've come up with a workaround but data transfer is much, much slower. Wondering if there is any way to use Transparent mode with HTTP/FTP on the PLS83?
Thank you,
Ed Haslam
Hello,
According to AT command specification the built-in FTP or HTTP client work only in non-transparent mode. Only socket connection can be transparent. You would probably have to use the transparent socket connections and implement the FTP logic in your application. BTW in the PLS8 AT spec I also can't see the information about the transparent FTP.
Regards,
Bartłomiej
Hello Bartłomiej,
Thanks for your reply. Would it be possible to simply use HTTP GET to download a file and send it to the FFS? If that's the case, we can retrieve the data and use it after it's on the FFS rather than trying to process blocks of data as they're downloaded. If that can be done, we're probably working way too hard doing things the way we are now.
Thank you,
Ed
Hello Ed,
With HTTP there the same issue as with FTP. Only non-transparent connection is possible. But if it doesn't need to be FTP you can use a transparent socket connection. Then it's up to your implementation what's going to happen on that connection. The server could just push the file and the module receive it.
And regarding HTTP over socket it would also be much simpler to implement it on the module side than FTP. You just send the HTTP header and receive the answer. Your app only ***** to extract the date from it.
Regards,
Bartłomiej
Hello Bartłomiej,
Thanks for your reply. Section 11.17.15, "FTP Download to FFS (URC Mode)", of the PLS83-W AT command set manual shows an example of FTP transfer directly to the FFS. I was wondering if the same basic process would work for a file transfer via HTTP directly to the FFS?
Thank you,
Ed
Hello,
I probably mislead you a bit... as transparent mode was for me the mode when you read/write data transparently over a serial interface or USB without using AT commands. And that would not work with FTP or HTTP. But indeed there is a way to download the file over FTP to the module's local file system. I'm sorry for that. I did a simple test with my module. Please see below:
ATI1
Cinterion
PLS83-W
REVISION 01.202
A-REVISION 01.000.04
OK
AT+CGDCONT=2,"IP","internet"
OK
AT^SICA=1,2
OK
AT+CGPADDR=2
+CGPADDR: 2,"46.77.253.100"
OK
AT^SISS=4,srvType,"Ftp"
OK
AT^SISS=4,conId,"2"
OK
AT^SISS=4,address,"ftp://test.rebex.net"
OK
AT^SISS=4,cmd,"fget"
OK
AT^SISS=4,user,"demo"
OK
AT^SISS=4,passwd,"password"
OK
AT^SISS=4,path,"a:/"
OK
AT^SISS=4,files,"readme.txt"
OK
AT^SISO=4
OK
^SIS: 4,0,2100,"Ftp connect 195.144.107.198:21"
^SIS: 4,0,2100,"220 Microsoft FTP Service"
^SIS: 4,0,2100,"230 User logged in."
^SIS: 4,0,48,"Remote peer has closed the connection"
^SIS: 4,0,2100,"Fget: a:/readme.txt 405 bytes"
^SISR: 4,2
AT^SISO?
^SISO: 0,""
^SISO: 1,""
^SISO: 2,""
^SISO: 3,""
^SISO: 4,"Ftp",6,2,405,0,"46.77.253.100:1701","195.144.107.198:21"
^SISO: 5,""
^SISO: 6,""
^SISO: 7,""
^SISO: 8,""
^SISO: 9,""
OK
AT^SISC=4
OK
at^sfsa="ls","a:/"
^SFSA: ipoverat/
^SFSA: readme.txt
^SFSA: 0
OK
at^sfsa="open","a:/readme.txt",64
^SFSA: 0,0
OK
at^sfsa="read",0,500
^SFSA: 405,0
Welcome,
You are connected to an FTP or SFTP server used for testing purposes by Rebex FTP/SSL or Rebex SFTP sample code.
Only read access is allowed and the FTP download speed is limited to 16KBps.
For information about Rebex FTP/SSL, Rebex SFTP and other Rebex .NET components, please visit our website at https://www.rebex.net/
For feedback and support, contact support@rebex.net
Thanks!
OK
at^sfsa="close",0
^SFSA: 0
OK
What exactly is a problem on your side? Please paste a log.
As for HTTP that would still not be possible.
Best regards,
Bartłomiej
Hello Bartłomiej,
Thank you for the follow up and for trying the FTP process. I'm not the programmer working on this but have more information from him now to pass on.
Our family of devices originally used the PHS8 and we've upgraded twice; first to the PLS8 and now the PLS83. Our devices have a microcontroller that communicates with the modem's serial port, ASC0. That limits dealing with all the various types of information to using the "CMUX" multiplexer protocol. There was a poorly documented feature with the PHS8/PLS8 that allowed transparent operation on multiplexer channels 5 and 6. So if HTTP operation got assigned to those channels, transparent TCP mode was possible. Unfortunately, when the firmware was developed for the PLS83, multiplexer operation totally changed. Not only was the multiplexer protocol changed from version 4, "advanced mode" to version 3, "basic mode" but the channels were hard coded to specific functions and not assignable. With that, the possibility for transparent HTTP connections seems to have disappeared.
Our device requires AGPS as well as the ability to download new firmware versions from a server to update its microcontroller once in a while. We've now got that working using non-transparent mode and HTTP but there's a limit of 90 bytes for the size of downloadable blocks because that's the maximum capacity of the multiplexer protocol. That means there's literally thousands of block requests to download a complete file and the process is up to 10 x slower than it used to be in transparent mode. It's also a lot more prone to errors because so many blocks must be requested.
Wondering if there is any other way we might download HTTP files either directly to the FFS or simply to ASC0 that is relatively quick and simple?
Thank you,
Ed
Hello,
Thanks for that information.
Indeed PLS8 has the dedicated MUX channels for transparent data. With that when you switch the connection to transparent mode with SIST command the interface on which you send the command is not blocked for data as data is transferred on the dedicated channel. PLS83 does not have these channels. So the transparent mode should work in a standard way on single interface.
So, I would say that you could download the file to the module's FFS if there is enough space but then you would have to read it with AT commands. Or you could try to implement HTTP GET on the transparent socket connection as I suggested before.
As all MUX channels support AT commands I suppose that it should also be possible to switch to the transparent mode on the same interface.
BR,
Bartłomiej