diff --git a/ports/esp32/boards/UPESY_EDU_ESP32/board.json b/ports/esp32/boards/UPESY_EDU_ESP32/board.json new file mode 100644 index 0000000000..e28d7dd73f --- /dev/null +++ b/ports/esp32/boards/UPESY_EDU_ESP32/board.json @@ -0,0 +1,26 @@ +{ + "deploy": [ + "deploy.md" + ], + "docs": "", + "features": [ + "BLE", + "USB-C", + "WiFi" + ], + "features_non_filterable": [ + "Arduino UNO compatible", + "Grove Shield compatible" + ], + "images": [ + "upesy_edu_esp32.jpg" + ], + "mcu": "esp32", + "product": "uPesy EDU ESP32", + "thumbnail": "", + "url": "https://www.upesy.com/products/esp32-arduino-uno-format", + "variants": { + "IDF3": "Compiled with IDF 3.x" + }, + "vendor": "uPesy" +} diff --git a/ports/esp32/boards/UPESY_EDU_ESP32/board.md b/ports/esp32/boards/UPESY_EDU_ESP32/board.md new file mode 100644 index 0000000000..64ade0a993 --- /dev/null +++ b/ports/esp32/boards/UPESY_EDU_ESP32/board.md @@ -0,0 +1 @@ +The following files are firmware for the uPesy EDU ESP32 board. diff --git a/ports/esp32/boards/UPESY_EDU_ESP32/deploy.md b/ports/esp32/boards/UPESY_EDU_ESP32/deploy.md new file mode 100644 index 0000000000..e7a498d411 --- /dev/null +++ b/ports/esp32/boards/UPESY_EDU_ESP32/deploy.md @@ -0,0 +1,46 @@ +Program your board using the esptool.py program, found [here](https://github.com/espressif/esptool). + +Your uPesy EDU ESP32 has an auto-reset circuit on it, so there is no need to put it into a +download mode first to erase or flash it. + +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 esp32 --port /dev/ttyUSB0 erase_flash +``` + +### Mac +```bash +esptool.py --chip esp32 --port /dev/tty.SLAB_USBtoUART erase_flash +``` + +### Windows +Change (X) to whatever COM port is being used by the board +```bash +esptool --chip esp32 --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 0x1000, +remembering to replace `upesy-edu-esp32-micropython-firmware-version.bin` with the name of the +firmware you just downloaded: + +From then on program the firmware starting at address 0x1000: + +### Linux +```bash +esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 921600 write_flash -z 0x1000 upesy-edu-esp32-micropython-firmware-version.bin +``` + +### Mac +```bash +esptool.py --chip esp32 --port /dev/tty.SLAB_USBtoUART --baud 921600 write_flash -z 0x1000 upesy-edu-esp32-micropython-firmware-version.bin +``` + +### Windows +Change (X) to whatever COM port is being used by the board +```bash +esptool --chip esp32 --port COM(X) --baud 921600 write_flash -z 0x1000 upesy-edu-esp32-micropython-firmware-version.bin +``` diff --git a/ports/esp32/boards/UPESY_EDU_ESP32/manifest.py b/ports/esp32/boards/UPESY_EDU_ESP32/manifest.py new file mode 100644 index 0000000000..7ae2ed15d9 --- /dev/null +++ b/ports/esp32/boards/UPESY_EDU_ESP32/manifest.py @@ -0,0 +1,2 @@ +include("$(PORT_DIR)/boards/manifest.py") +freeze("modules") diff --git a/ports/esp32/boards/UPESY_EDU_ESP32/modules/edu_esp32.py b/ports/esp32/boards/UPESY_EDU_ESP32/modules/edu_esp32.py new file mode 100644 index 0000000000..a3b0b234a6 --- /dev/null +++ b/ports/esp32/boards/UPESY_EDU_ESP32/modules/edu_esp32.py @@ -0,0 +1,38 @@ +# uPesy EDU ESP32 MicroPython Helper Library +# 2023 uPesy Electronics + +from micropython import const + + +SCL = const(22) +SDA = const(21) +SS = const(5) +CS = const(5) +MOSI = const(23) +SCK = const(18) +MISO = const(19) +TX = const(1) +RX = const(3) +LED_BUILTIN = const(2) +D19 = const(22) +D18 = const(21) +D13 = const(18) +D12 = const(19) +D11 = const(23) +D10 = const(5) +D9 = const(13) +D8 = const(12) +D7 = const(14) +D6 = const(27) +D5 = const(16) +D4 = const(17) +D3 = const(25) +D2 = const(26) +D1 = const(1) +D0 = const(3) +A0 = const(33) +A1 = const(32) +A2 = const(35) +A3 = const(34) +A4 = const(36) +A5 = const(39) diff --git a/ports/esp32/boards/UPESY_EDU_ESP32/mpconfigboard.cmake b/ports/esp32/boards/UPESY_EDU_ESP32/mpconfigboard.cmake new file mode 100644 index 0000000000..0b758bd406 --- /dev/null +++ b/ports/esp32/boards/UPESY_EDU_ESP32/mpconfigboard.cmake @@ -0,0 +1,8 @@ +set(SDKCONFIG_DEFAULTS + boards/sdkconfig.base + boards/sdkconfig.ble + boards/sdkconfig.240mhz + boards/UPESY_EDU_ESP32/sdkconfig.board +) + +set(MICROPY_FROZEN_MANIFEST ${MICROPY_BOARD_DIR}/manifest.py) diff --git a/ports/esp32/boards/UPESY_EDU_ESP32/mpconfigboard.h b/ports/esp32/boards/UPESY_EDU_ESP32/mpconfigboard.h new file mode 100644 index 0000000000..31f25219dc --- /dev/null +++ b/ports/esp32/boards/UPESY_EDU_ESP32/mpconfigboard.h @@ -0,0 +1,10 @@ +#define MICROPY_HW_BOARD_NAME "uPesy EDU ESP32" +#define MICROPY_HW_MCU_NAME "ESP32" +#define MICROPY_PY_NETWORK_HOSTNAME_DEFAULT "UP_EDU_ESP32" + +#define MICROPY_HW_I2C0_SCL (22) +#define MICROPY_HW_I2C0_SDA (21) + +#define MICROPY_HW_SPI1_SCK (18) +#define MICROPY_HW_SPI1_MOSI (23) +#define MICROPY_HW_SPI1_MISO (19) diff --git a/ports/esp32/boards/UPESY_EDU_ESP32/pins.csv b/ports/esp32/boards/UPESY_EDU_ESP32/pins.csv new file mode 100644 index 0000000000..43055d0951 --- /dev/null +++ b/ports/esp32/boards/UPESY_EDU_ESP32/pins.csv @@ -0,0 +1,32 @@ +SCL,GPIO22 +SDA,GPIO21 +SS,GPIO5 +CS,GPIO5 +MOSI,GPIO23 +SCK,GPIO18 +MISO,GPIO19 +TX,GPIO1 +RX,GPIO3 +LED_BUILTIN,GPIO2 +D19,GPIO22 +D18,GPIO21 +D13,GPIO18 +D12,GPIO19 +D11,GPIO23 +D10,GPIO5 +D9,GPIO13 +D8,GPIO12 +D7,GPIO14 +D6,GPIO27 +D5,GPIO16 +D4,GPIO17 +D3,GPIO25 +D2,GPIO26 +D1,GPIO1 +D0,GPIO3 +A0,GPIO33 +A1,GPIO32 +A2,GPIO35 +A3,GPIO34 +A4,GPIO36 +A5,GPIO39 \ No newline at end of file diff --git a/ports/esp32/boards/UPESY_EDU_ESP32/sdkconfig.board b/ports/esp32/boards/UPESY_EDU_ESP32/sdkconfig.board new file mode 100644 index 0000000000..5804a4d61a --- /dev/null +++ b/ports/esp32/boards/UPESY_EDU_ESP32/sdkconfig.board @@ -0,0 +1,3 @@ +CONFIG_ESPTOOLPY_FLASHMODE_QIO=y +CONFIG_ESPTOOLPY_FLASHFREQ_80M=y +CONFIG_LWIP_LOCAL_HOSTNAME="UP_EDU_ESP32" \ No newline at end of file