circuitpython/ports/stm/boards/espruino_pico
Scott Shawcroft 40118bcf57
Add board_deinit for use with sleep
This changes lots of files to unify `board.h` across ports. It adds
`board_deinit` when CIRCUITPY_ALARM is set. `main.c` uses it to
deinit the board before deep sleeping (even when pretending.)

Deep sleep is now a two step process for the port. First, the
port should prepare to deep sleep based on the given alarms. It
should set alarms for both deep and pretend sleep. In particular,
the pretend versions should be set immediately so that we don't
miss an alarm as we shutdown. These alarms should also wake from
`port_idle_until_interrupt` which is used when pretending to deep
sleep.

Second, when real deep sleeping, `alarm_enter_deep_sleep` is called.
The port should set any alarms it didn't during prepare based on
data it saved internally during prepare.

ESP32-S2 sleep is a bit reorganized to locate more logic with
TimeAlarm. This will help it scale to more alarm types.

Fixes #3786
2020-12-08 10:52:25 -08:00
..
board.c Add board_deinit for use with sleep 2020-12-08 10:52:25 -08:00
mpconfigboard.h Merge remote-tracking branch 'upstream/master' into stm32-LSE-startup-fix 2020-06-04 16:15:38 -04:00
mpconfigboard.mk -Os espruino_pico to save space 2020-08-27 13:34:37 -07:00
pins.c create copy 2020-03-11 18:13:06 -04:00
README.md Fix up end of file and trailing whitespace. 2020-06-03 10:56:35 +01:00

Flashing the Espruino Pico

The Espruino Pico is normally updated via a bootloader activated by the Espruino web app. This approach is not practical for Circuitpython as it takes too much space from the internal filesystem - thus, you will need to follow the instructions for advanced reflashing using the built-in ROM bootloader on all STM32F4 MCUs (instructions sourced from https://www.espruino.com/Pico#advanced-reflashing)

  • Short out the BOOT0/BTN solder jumper on the back of the board - you can do this by drawing over it with a pencil.
  • Install ST's DFU utility on Windows, or dfu-util for Mac or Linux
    • Mac: install with Homebrew: brew install dfu-util
    • Linux: install with apt-get: sudo apt-get install dfu-util
    • Windows: download ST's application or install the Linux subsystem for Windows 10 and follow the linux instructions.
  • Hold down the Pico's button while plugging it into USB (when overwriting Espruino's default firmware)
  • Navigate to the same directory as your firmware.bin file for Circuitpython and run the following command: sudo dfu-util -a 0 -s 0x08000000 -D firmware.bin or use the ST utility on Windows.
  • Restart the board.

To reinstall Espruino, follow the same steps with the latest Espruino Pico binary from espruino.com/binaries. This will reinstall the usual Espruino bootloader. You must un-short the BOOT0/BTN jumper to re-use the original Espruino Bootloader again. If you used a Pencil mark then you may need to use cleaning fluid and a small brush to totally clear out the graphite.