diff --git a/ports/esp32/boards/UM_TINYWATCHS3/board.json b/ports/esp32/boards/UM_TINYWATCHS3/board.json new file mode 100644 index 0000000000..61dadcfb64 --- /dev/null +++ b/ports/esp32/boards/UM_TINYWATCHS3/board.json @@ -0,0 +1,25 @@ +{ + "deploy": [ + "deploy.md" + ], + "docs": "", + "features": [ + "BLE", + "Battery Charging", + "External Flash", + "External RAM", + "USB-C", + "WiFi" + ], + "features_non_filterable": [ + "Watch" + ], + "images": [ + "unexpectedmaker_tinywatchs3.jpg" + ], + "mcu": "esp32s3", + "product": "TinyWATCH S3", + "thumbnail": "", + "url": "https://tinywatch.io", + "vendor": "Unexpected Maker" +} diff --git a/ports/esp32/boards/UM_TINYWATCHS3/board.md b/ports/esp32/boards/UM_TINYWATCHS3/board.md new file mode 100644 index 0000000000..a0925ac49b --- /dev/null +++ b/ports/esp32/boards/UM_TINYWATCHS3/board.md @@ -0,0 +1 @@ +The following files are firmware for the TinyWATCH S3. diff --git a/ports/esp32/boards/UM_TINYWATCHS3/deploy.md b/ports/esp32/boards/UM_TINYWATCHS3/deploy.md new file mode 100644 index 0000000000..bad7d7c7d8 --- /dev/null +++ b/ports/esp32/boards/UM_TINYWATCHS3/deploy.md @@ -0,0 +1,52 @@ +Program your board using the latest version of the esptool.py program, found [here](https://github.com/espressif/esptool). + +To flash or erase your TinyWATCH S3, you have to first put it into download mode. +To do this, follow these steps: + +- Press and hold the [BOOT] button +- Press and release the [RESET] button +- Release the [BOOT] button + +Now the board is in download mode and the native USB will have enumerated as a serial device. + +If you are putting MicroPython on your board for the first time then you should +first erase the entire flash using: + +### Linux +```bash +esptool.py --chip esp32s3 --port /dev/ttyACM0 erase_flash +``` + +### Mac +Please do a `ls /dev/cu.usbm*` to determine the port your board has enumerated as. +```bash +esptool.py --chip esp32s3 --port /dev/cu.usbmodem01 erase_flash +``` + +### Windows +Change (X) to whatever COM port is being used by the board +```bash +esptool --chip esp32s3 --port COM(X) erase_flash +``` + +Now download the version of the firmware you would like to install from the options below, +then use the following command to program the firmware starting at address 0x0, +remembering to replace `tinywatchs3-micropython-firmware-version.bin` with the name of +the firmware you just downloaded: + +### Linux +```bash +esptool.py --chip esp32s3 --port /dev/ttyACM0 write_flash -z 0x0 tinywatchs3-micropython-firmware-version.bin +``` + +### Mac +Please do a `ls /dev/cu.usbm*` to determine the port your board has enumerated as. +```bash +esptool.py --chip esp32s3 --port /dev/cu.usbmodem01 write_flash -z 0x0 tinywatchs3-micropython-firmware-version.bin +``` + +### Windows +Change (X) to whatever COM port is being used by the board +```bash +esptool --chip esp32s3 --port COM(X) write_flash -z 0x0 tinywatchs3-micropython-firmware-version.bin +``` diff --git a/ports/esp32/boards/UM_TINYWATCHS3/mpconfigboard.cmake b/ports/esp32/boards/UM_TINYWATCHS3/mpconfigboard.cmake new file mode 100644 index 0000000000..089149c44c --- /dev/null +++ b/ports/esp32/boards/UM_TINYWATCHS3/mpconfigboard.cmake @@ -0,0 +1,10 @@ +set(IDF_TARGET esp32s3) + +set(SDKCONFIG_DEFAULTS + boards/sdkconfig.base + boards/sdkconfig.usb + boards/sdkconfig.ble + boards/sdkconfig.240mhz + boards/sdkconfig.spiram_sx + boards/UM_TINYWATCHS3/sdkconfig.board +) diff --git a/ports/esp32/boards/UM_TINYWATCHS3/mpconfigboard.h b/ports/esp32/boards/UM_TINYWATCHS3/mpconfigboard.h new file mode 100644 index 0000000000..ce8de58a01 --- /dev/null +++ b/ports/esp32/boards/UM_TINYWATCHS3/mpconfigboard.h @@ -0,0 +1,12 @@ +#define MICROPY_HW_BOARD_NAME "TinyWATCH S3" +#define MICROPY_HW_MCU_NAME "ESP32-S3-PICO-1-N8R2" +#define MICROPY_PY_NETWORK_HOSTNAME_DEFAULT "TinyWATCHS3" + +#define MICROPY_PY_MACHINE_DAC (0) + +#define MICROPY_HW_I2C0_SCL (9) +#define MICROPY_HW_I2C0_SDA (8) + +#define MICROPY_HW_SPI1_MOSI (35) +#define MICROPY_HW_SPI1_MISO (37) +#define MICROPY_HW_SPI1_SCK (36) diff --git a/ports/esp32/boards/UM_TINYWATCHS3/pins.csv b/ports/esp32/boards/UM_TINYWATCHS3/pins.csv new file mode 100644 index 0000000000..8a4bc46cd5 --- /dev/null +++ b/ports/esp32/boards/UM_TINYWATCHS3/pins.csv @@ -0,0 +1,25 @@ +BMI_INT1,GPIO6 +BMI_INT2,GPIO7 +BUZZER,GPIO18 +FG_ALERT,GPIO14 +I2C_SCL,GPIO8 +I2C_SDA,GPIO9 +I2S_MIC_DATA,GPIO1 +I2S_MIC_BCLK,GPIO2 +I2S_MIC_WS,GPIO3 +RTC_INT,GPIO4 +SPI_USER_FLASH_CS,GPIO33 +SPI_MOSI,GPIO35 +SPI_SCK,GPIO36 +SPI_MISO,GPIO37 +TFT_CS,GPIO16 +TFT_DC,GPIO15 +TFT_RESET,GPIO17 +TFT_BACKLIGHT,GPIO13 +TOUCH_I2C_SCL,GPIO10 +TOUCH_I2C_SDA,GPIO5 +TOUCH_INT,GPIO11 +TOUCH_RESET,GPIO12 +USER_BUTTON,GPIO0 +USER_PWR_SHUTDOWN,GPIO21 +VBUS_SENSE,GPIO34 diff --git a/ports/esp32/boards/UM_TINYWATCHS3/sdkconfig.board b/ports/esp32/boards/UM_TINYWATCHS3/sdkconfig.board new file mode 100644 index 0000000000..8dec1b8c18 --- /dev/null +++ b/ports/esp32/boards/UM_TINYWATCHS3/sdkconfig.board @@ -0,0 +1,19 @@ +CONFIG_ESPTOOLPY_FLASHMODE_QIO=y +CONFIG_ESPTOOLPY_FLASHFREQ_80M=y +CONFIG_ESPTOOLPY_AFTER_NORESET=y + +CONFIG_ESPTOOLPY_FLASHSIZE_4MB= +CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y +CONFIG_ESPTOOLPY_FLASHSIZE_16MB= +CONFIG_SPIRAM_MEMTEST= +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-8MiB.csv" + +CONFIG_LWIP_LOCAL_HOSTNAME="UMTinyWATCHS3" + +CONFIG_TINYUSB_DESC_CUSTOM_VID=0x303A +CONFIG_TINYUSB_DESC_CUSTOM_PID=0x81B1 +CONFIG_TINYUSB_DESC_BCD_DEVICE=0x0100 +CONFIG_TINYUSB_DESC_MANUFACTURER_STRING="Unexpected Maker" +CONFIG_TINYUSB_DESC_PRODUCT_STRING="TinyWATCHS3" +CONFIG_TINYUSB_DESC_SERIAL_STRING="_tws3_"