Python scripts are text files stored in the Telit module NVM (Non Volatile Memory). There's a file system inside the module that allows to write and read text and binary files with different names on one single level (no subdirectories are supported).
The Python script is executed in a task with the lowest priority on the Telit module, so its execution won’t interfere with GSM/GPRS/WCDMA/CDMA-1xRTT normal operations. Furthermore, this allows serial ports, protocol stack etc. to run independently from the Python script.
The Python script interacts with the Telit module functionalities through several built-in interfaces, as depicted below:

|
|
Note: Antenna GPS, GPS receiver and GPS Library are available exclusively for the GPS modules. |
The MDM interface is the most important one. It allows the Python script to send AT commands, receive responses and unsolicited indications, send data to the network and receive data from the network during connections. It is quite similar to the regular serial port interface on the Telit module. The only difference being that this interface is an internal software bridge between Python and module internal AT command handling engine, and not a physical serial port. All AT commands working on the Telit module are working with this software interface as well. Some of them have no meaning for this interface, such as those regarding serial port settings, while others, such as the concept of hardware flow control, keeps its meaning but it's managed internally.
The MDM2 interface is the second interface between Python and the module internal AT command handling. Its purpose is to send AT commands from the Python script to the module and receive AT responses from the module to the Python script when the regular MDM built-in module is already in use.
The SER interface lets the Python script to read from and write to the physical serial port USIF0, usually the default port to send AT commands to the module (e.g.: to read information from an external device). When Python is running, this serial port is free to be used by the Python script since it is not used as the AT command interface; the AT parser, in fact, is mapped into the internal virtual serial port. In default configuration no flow control is available from Python on this port. From version 12.00.xx4, version 13.00.xx5 and version 18.11.004 it is possible to enable flow control from Python on this port.
The SER2 interface lets the Python script to read from and write to the physical serial port USIF1, usually the default port for trace and debug (only available from version 12.00.xx4, version 13.00.xx5 and version 18.11.004).
The GPIO interface lets the Python script to handle general purpose input output faster than through AT commands, skipping the command parser and controlling directly the pins.
The GPS interface is the interface between Python and the module’s internal GPS controller. Its purpose is to handle the GPS controller without the use of dedicated AT commands through the MDM built-in module (not available for version 18.11.004).
The IIC interface is an implementation on the Python core of the IIC bus Master based on GPIO pins (only available from version 12.00.xx4, version 13.00.xx5 and version 18.11.004).
The SPI interface is an implementation on the Python core of the SPI bus Master based on GPIO pins (only available from version 12.00.xx4 and version 13.00.xx5).
The MOD interface is a collection of useful functions (only available from version 12.00.xx4 and version 13.00.xx5).
The USB0 interface lets the Python script to read from and write to the first mini USB port USB0 (only available from version 12.00.xx5 and version 13.00.xx6).
The Python print statement, for debugging purposes, is directly forwarded to second serial port USIF1.