Inkplate

Notes on the Inkplate boards.

MicroPython

Micropython for all of the Inkplate boards can be downloaded by cloning the repository:

$ git clone https://github.com/SolderedElectronics/Inkplate-micropython.git
$ cd Inkplate-micropython

then the firmware can be flashed directly with esptool:

$ esptool --port /dev/ttyUSB0 erase_flash
$ esptool --port /dev/ttyUSB0 --chip esp32 --baud 115200 write_flash \
  --flash_mode keep --flash_size keep --erase-all 0x1000 \
  Inkplate-firmware.bin

under Debian, you may need to use --no-stub, because of #1043168:

$ esptool --port /dev/ttyUSB0 --chip esp32 --baud 115200 --no-stub \
  write_flash --flash_mode keep --flash_size keep 0x1000 \
  Inkplate-firmware.bin

Then the libraries can be copied to the board from the local copy:

$ mpremote fs mkdir lib
$ mpremote fs cp <board>/package.json :lib/
$ mpremote fs cp <board>/<board>/*.py :lib/
$ mpremote fs cp Dependencies/*.py :lib/

e-radionica / crowdfunding models

The old inkplate6 models from e-radionica / the crowdfunding are not supported yet by the current version of the Inkplate module, but they can run the old version in the legacy branch:

$ esptool --port /dev/ttyUSB0 erase_flash
$ esptool --port /dev/ttyUSB0 --chip esp32 --baud 115200 write_flash \
  --flash_mode keep --flash_size keep --erase-all 0x1000 \
  esp32spiram-20220117-v1.18.bin

$ mpremote fs mkdir lib
$ mpremote fs cp mcp23017.py inkplate6.py image.py shapes.py gfx.py gfx_standard_font_01.py soldered_logo.py :lib/

Recovering from corrupted storage

Because of #1043168, at the moment Debian is missing the (json-encoded binary) file /usr/lib/python3/dist-packages/esptool/targets/stub_flasher/stub_flasher_32.json: the option --no-stub may be used to perform most operations (possibly at a slower speed), but erase-flash is not among the supported ones.

In that case you may need to clone the upstream repository:

$ git clone https://github.com/espressif/esptool.git

and copy or link the correct file in the esptool package files:

# cd /usr/lib/python3/dist-packages/esptool/targets/stub_flasher
# ln -s /<path/to/repo>/esptool/esptool/targets/stub_flasher/1/esp32.json stub_flasher_32.json

and then regular commands, including erase_flash can be run.

See also