import serial from serial import * import sys from time import sleep from base64 import b64encode def filesize(f): f.seek(0,2) z = f.tell() f.seek(0,0) return z def setup_comms(p): sp1.baudrate = 2000000 sp1.bytesize = 8 sp1.stopbits=1 sp1.parity = serial.PARITY_NONE sp1.timeout = .2 sp1.port = p try: sp1.open() except: ec = sys.exc_info()[1] m1 = str(ec) m2 = m1.split(":") m3 = m2[0] print(m3) sleep(5) exit() # -------------------------------------------------------------------- print("Python P2 loader V0.1 Ozpropdev 2018") sp1 = serial.Serial() #load file into buff1 myfile = open("all_cogs_blink.binary","rb") buff1 = myfile.read(filesize(myfile)) myfile.close() setup_comms("/dev/ttyUSB1") #Look for a P2 sp1.dtr = True #toggle DTR sp1.dtr = False sleep(.1) sp1.write(b'> Prop_Chk 0 0 0 0 ') ok = True reply = sp1.readline() if len(reply) == 0: ok = False m = sp1.readline() if len(m) == 0: ok = False if not ok: m = b'No P2 detected ' sp1.close() print("Prop_Chk = ",m[:-1].decode('utf-8')) if sp1.isOpen(): #switch P2 clock to max speed sp1.write(b'> Prop_Clk 0 0 0 0 FF\n') sp1.timeout=1 reply = sp1.read() if len(reply) == 1 and reply == b'.': print("HUBSET Ok, max clock speed enabled") sp1.baudrate = 2000000 print("Loading.......",end="") sp1.write(b'> Prop_Txt 0 0 0 0 ') sp1.write(b64encode(bytes(buff1))) sp1.write(b'~') #run code sp1.close() print("complete")