#!/usr/bin/python3 import time import serial def reset(): ser.dtr = True ser.rts = False time.sleep(0.05) ser.dtr = True ser.rts = True def enter_bootloader(): ser.dtr = True ser.rts = False time.sleep(0.05) ser.dtr = False ser.rts = True if __name__ == '__main__': ser = serial.Serial ('/dev/ttyUSB0', 9600) try: ser.open() except: ser.close() ser.open() if 0: time.sleep(1.0) print ("RTS = {}, DTR = {}".format(ser.rts, ser.dtr)) time.sleep(0.5) ser.rts = False print ("RTS = {}, DTR = {}".format(ser.rts, ser.dtr)) time.sleep(0.5) ser.dtr = False print ("RTS = {}, DTR = {}".format(ser.rts, ser.dtr)) time.sleep(1.0) print("Start firmware update") enter_bootloader() ser.timeout = 0.100 ser.readline() ser.flushInput() with open("HendiCtrl.srec", 'r') as fp: while(True): s = fp.readline() if s == '': break data = s.encode() # print(data) ser.write(data) # print(ser.read()) time.sleep(1.0) ser.flushInput() print("Start application") reset() print(ser.readline().decode('utf-8')) ser.close() print ("End of program.")