X-Git-Url: https://us-delaporte.pagekite.me/gitweb/dotfiles.git/blobdiff_plain/0dd8dd1c068ea69501b43aeeeaff2926e2f38afe..7fdfd0388f350259c2bc813ec506b76de7589d22:/invoke/esptool/tasks.py?ds=sidebyside diff --git a/invoke/esptool/tasks.py b/invoke/esptool/tasks.py index 2a80767..546e261 100644 --- a/invoke/esptool/tasks.py +++ b/invoke/esptool/tasks.py @@ -6,9 +6,21 @@ import os HOME = os.path.expanduser('~') TODAY = dt.now().strftime('%Y.%m.%d') +# Examples for CardputerAdv +DEVICE = 'Espressif' +PORT='/dev/ttyACM0' # Linux +CHIP='ESP32-S3' +# PORT='COM0' # Windows +MICROPYTHON=f'$HOME/Downloads/ESP32_GENERIC_S3-20260406-v1.28.0.bin' +# MicroPython version +# from +# https://micropython.org/download/ESP32_GENERIC_S3/ + @task def help(c): ''' + On using this tasks file + - Set the Cardputer Adv power to 'off' state - Plugging in to USB will cause it to boot - Hold 'Go' while booting @@ -24,12 +36,14 @@ def help(c): @task def groups(c): + '''Check that the current user is a member of dialout''' result = c.run(f'groups {os.getlogin()}') assert 'dialout' in result.stdout print('ok') @task def usbdiff(c): + '''Use lsusb to try to find the new device.''' input('Un-plug in the device...') c.run('lsusb > /tmp/before.txt') input('Plug in the device...') @@ -40,14 +54,45 @@ def usbdiff(c): # Maybe https://thelastoutpostworkshop.github.io/ESPConnect/ in Chromium? -DEV='/dev/ttyACM0' + +@task +def check_conn(c): + result = c.run(f'lsusb | grep {DEVICE}') + assert DEVICE in result.stdout + print('[ok]') @task def listusb(c): - c.run('ls /dev/ttyACM*') + # result = c.run('ls /dev/ttyACM*') + result = c.run(f'ls {PORT}') + assert result.ok + print('[ok]') # c.run('ls /dev/ttyUSB*') -@task() +@task def chip_id(c): - c.run(f'esptool --port {DEV} chip-id') + result = c.run(f'esptool --port {PORT} chip-id') + assert CHIP in result.stdout + print('[ok]') + +@task +def check_all(c): + listusb(c) + check_conn(c) + chip_id(c) + +@task +def erase_flash(c): + '''Erasing flash is recommended before flashing fresh.''' + c.run(f'esptool --port {PORT} erase-flash') + +@task +def write_flash(c, filepath=MICROPYTHON): + '''Write flash - defaults to MicroPython + + Requires .bin file from micropython.org + ''' + c.run(f'esptool --chip {CHIP} --port {PORT} --baud 460800 write-flash -z 0x1000 {filepath}') + +