Commit 3a418a7a authored by Adam Blank's avatar Adam Blank
Browse files

autocommit

No related merge requests found
Showing with 61 additions and 24 deletions
+61 -24
import ports
import psutil import psutil
import urllib.request import urllib.request
import os import os
import shutil import shutil
import platform import platform
import time
import subprocess import subprocess
def get_windows_drive_name(letter): def get_drive():
return subprocess.check_output(["cmd", "/c vol " + letter]).decode().split("\r\n")[0].split(" ").pop()
def get_windows_drive_name(letter):
return subprocess.check_output(["cmd", "/c vol " + letter]).decode().split("\r\n")[0].split(" ").pop()
if platform.system().lower() == 'windows': if platform.system().lower() == 'windows':
disks = [(x.mountpoint, get_windows_drive_name(x.mountpoint.strip('\\'))) disks = [(x.mountpoint, get_windows_drive_name(x.mountpoint.strip('\\')))
for x in psutil.disk_partitions()] for x in psutil.disk_partitions()]
disks = [(x, name) disks = [(x, name)
for x, name in disks if 'TRINKEY' in name or 'CIRCUIT' in name] for x, name in disks if 'TRINKEY' in name or 'CIRCUIT' in name]
else: else:
disks = [(x.mountpoint, x.mountpoint) for x in psutil.disk_partitions( disks = [(x.mountpoint, x.mountpoint) for x in psutil.disk_partitions(
) if 'TRINKEY' in x.mountpoint.upper() or 'CIRCUIT' in x.mountpoint.upper()] ) if 'TRINKEY' in x.mountpoint.upper() or 'CIRCUIT' in x.mountpoint.upper()]
if len(disks) != 1: if len(disks) != 1:
print("Could not find the trinkey. Did you click the reset button twice and connect it?") print("Could not find the Trinkey. Did you click the reset button twice and connect it?")
exit(1) exit(1)
disk, name = disks[0] disk, name = disks[0]
return disk, name
if 'TRINKEY' in name:
def reset_drive():
urllib.request.urlretrieve( urllib.request.urlretrieve(
"https://downloads.circuitpython.org/bin/adafruit_proxlight_trinkey_m0/en_US/adafruit-circuitpython-adafruit_proxlight_trinkey_m0-en_US-9.1.4.uf2", os.path.join( "https://downloads.circuitpython.org/bin/adafruit_proxlight_trinkey_m0/en_US/adafruit-circuitpython-adafruit_proxlight_trinkey_m0-en_US-9.1.4.uf2", os.path.join(
disk, 'trinkey.uf2')) disk, 'trinkey.uf2'))
print("The drive will now eject. You can quit any keyboard popups that appear. Run the transfer.py file again for it to be bootable.") print("The drive will now eject and then re-attach. Please wait 10 seconds.")
else: time.sleep(10)
shutil.rmtree(os.path.join(disk, 'lib'), True)
shutil.rmtree(os.path.join(disk, 'boot_out.txt'), True)
shutil.copy('07/code.py', os.path.join(disk, 'code.py')) disk, name = get_drive()
shutil.copy('07/interact.py', os.path.join(disk, 'interact.py')) if 'TRINKEY' in name:
shutil.copy('07/abstract.py', os.path.join(disk, 'abstract.py')) reset_drive()
shutil.copy('07/colorsys.py', os.path.join(disk, 'colorsys.py'))
print("Done! Switch back to the Serial Monitor!") disk, name = get_drive()
trinkey = ports.get_trinkey_port()
if not trinkey:
print("Could not find the Trinkey to connect to...try removing it from the USB drive and plugging it back in.")
exit(1)
# Kill any running program
trinkey.write(bytes(chr(0x03), 'utf-8'))
trinkey.flush()
print("Connected to Trinkey! Transfering files...")
shutil.rmtree(os.path.join(disk, 'src'), True)
shutil.rmtree(os.path.join(disk, '__pycache__'), True)
for x in os.listdir(disk):
try:
os.unlink(os.path.join(disk, x))
except (PermissionError, FileNotFoundError, OSError):
pass
shutil.copytree('src', os.path.join(disk, 'src'), dirs_exist_ok=True)
shutil.copytree('support', os.path.join(disk, 'support'), dirs_exist_ok=True)
shutil.copy('code.py', os.path.join(disk, 'code.py'))
print("Files transfered...connecting to Trinkey...")
time.sleep(1)
print("Restarting Trinkey!")
# Kill any running program
trinkey.write(bytes(chr(0x04), 'utf-8'))
trinkey.flush()
time.sleep(1)
miniterm = ports.connect_to_serial(trinkey)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment