#!/usr/bin/env python3 import serial import sys import time import os MAX_TRY = 5 tries = 0 SERIAL_DEV = '/dev/ttyACM0' while not os.path.exists(SERIAL_DEV): time.sleep(1) ser = serial.Serial(SERIAL_DEV, 115200, timeout=0.5) def execute_and_check(cmd): global tries ser.flushInput() ser.write(cmd) ser.write(b'\r') s = ser.read_until(b'OK') if b'OK' not in s: print("Failed cmd : " + str(cmd)) print("Output: " + str(s)) tries += 1 if tries < MAX_TRY: time.sleep(1) execute_and_check(cmd) else: sys.exit(-1) tries = 0 print("Setting up bridge mode") execute_and_check(b'AT+UBMCONF=2') print("Setting up USB mode to ECM") execute_and_check(b'AT+UUSBCONF=2,"ECM",0') print("Resetting modem") ser.write(b'AT+CFUN=16\r') ser.close() # Wait until modem rebooted while True: dirs = os.listdir("/dev") for file in dirs: if file == 'ttyACM2': sys.exit(0); time.sleep(1)