diff options
| author | Mike Causer <mcauser@gmail.com> | 2021-10-27 19:01:18 +1100 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2021-10-28 12:58:50 +1100 |
| commit | 3ace779e8e353b697606712b9d25f5288a685c80 (patch) | |
| tree | b1067b4246a8a02dc3f0bfd1db5531857f4092c1 | |
| parent | 1e4849557d23f3b194f3a056e28f7a8c14dac050 (diff) | |
esp32/boards/LOLIN_S2_PICO: Add LOLIN_S2_PICO board definition files.
| -rw-r--r-- | ports/esp32/boards/LOLIN_S2_PICO/board.json | 18 | ||||
| -rw-r--r-- | ports/esp32/boards/LOLIN_S2_PICO/manifest.py | 4 | ||||
| -rw-r--r-- | ports/esp32/boards/LOLIN_S2_PICO/modules/s2pico.py | 38 | ||||
| -rw-r--r-- | ports/esp32/boards/LOLIN_S2_PICO/modules/s2pico_oled.py | 48 | ||||
| -rw-r--r-- | ports/esp32/boards/LOLIN_S2_PICO/mpconfigboard.cmake | 11 | ||||
| -rw-r--r-- | ports/esp32/boards/LOLIN_S2_PICO/mpconfigboard.h | 12 | ||||
| -rw-r--r-- | ports/esp32/boards/LOLIN_S2_PICO/sdkconfig.board | 6 |
7 files changed, 137 insertions, 0 deletions
diff --git a/ports/esp32/boards/LOLIN_S2_PICO/board.json b/ports/esp32/boards/LOLIN_S2_PICO/board.json new file mode 100644 index 000000000..df760ace4 --- /dev/null +++ b/ports/esp32/boards/LOLIN_S2_PICO/board.json @@ -0,0 +1,18 @@ +{ + "deploy": [ + "../deploy_s2.md" + ], + "docs": "", + "features": [ + "WiFi", + "USB-C" + ], + "images": [ + "lolin_s2_pico.jpg" + ], + "mcu": "esp32s2", + "product": "S2 pico", + "thumbnail": "", + "url": "https://www.wemos.cc/en/latest/s2/s2_pico.html", + "vendor": "Wemos" +} diff --git a/ports/esp32/boards/LOLIN_S2_PICO/manifest.py b/ports/esp32/boards/LOLIN_S2_PICO/manifest.py new file mode 100644 index 000000000..98d4247c6 --- /dev/null +++ b/ports/esp32/boards/LOLIN_S2_PICO/manifest.py @@ -0,0 +1,4 @@ +include("$(PORT_DIR)/boards/manifest.py") +freeze("./modules") + +freeze("$(MPY_DIR)/drivers/display", "ssd1306.py") diff --git a/ports/esp32/boards/LOLIN_S2_PICO/modules/s2pico.py b/ports/esp32/boards/LOLIN_S2_PICO/modules/s2pico.py new file mode 100644 index 000000000..be59db715 --- /dev/null +++ b/ports/esp32/boards/LOLIN_S2_PICO/modules/s2pico.py @@ -0,0 +1,38 @@ +# LOLIN S2 PICO MicroPython Helper Library + +from micropython import const +from machine import Pin, I2C, Signal +from s2pico_oled import OLED + +# Pin Assignments + +# SPI +SPI_MOSI = const(35) +SPI_MISO = const(36) +SPI_CLK = const(37) + +# I2C +I2C_SDA = const(8) +I2C_SCL = const(9) + +# DAC +DAC1 = const(17) +DAC2 = const(18) + +# LED +LED = const(10) + +# OLED +OLED_RST = const(18) + +# BUTTON +BUTTON = const(0) + +# Helper methods for built in sensors + +led = Signal(LED, Pin.OUT, value=0, invert=True) + +button = Pin(BUTTON, Pin.IN, Pin.PULL_UP) + +i2c = I2C(0) +oled = OLED(i2c, Pin(OLED_RST)) diff --git a/ports/esp32/boards/LOLIN_S2_PICO/modules/s2pico_oled.py b/ports/esp32/boards/LOLIN_S2_PICO/modules/s2pico_oled.py new file mode 100644 index 000000000..37dc5a340 --- /dev/null +++ b/ports/esp32/boards/LOLIN_S2_PICO/modules/s2pico_oled.py @@ -0,0 +1,48 @@ +from time import sleep_ms +from ssd1306 import SSD1306_I2C +import network + + +class OLED(SSD1306_I2C): + def __init__(self, i2c, reset): + reset.init(reset.OUT, value=1) + self._reset = reset + self.reset(False) + super().__init__(128, 32, i2c) + + def reset(self, reinit=True): + self._reset(1) + sleep_ms(1) + self._reset(0) + sleep_ms(10) + self._reset(1) + if reinit: + self.init_display() + + def test(self): + self.fill(0) + self.fill_rect(0, 0, 32, 32, 1) + self.fill_rect(2, 2, 28, 28, 0) + self.vline(9, 8, 22, 1) + self.vline(16, 2, 22, 1) + self.vline(23, 8, 22, 1) + self.fill_rect(26, 24, 2, 4, 1) + self.text("MicroPython", 40, 0, 1) + self.text("SSD1306", 40, 12, 1) + self.text("OLED 128x32", 40, 24, 1) + self.show() + + def display_wifi(self): + self.fill(0) + self.text("Scan...", 0, 0, 1) + self.show() + + sta_if = network.WLAN(network.STA_IF) + sta_if.active(True) + _wifi = sta_if.scan() + + self.fill(0) + self.text(str(len(_wifi)) + " Networks", 0, 0, 1) + self.text(str(_wifi[0][3]) + " " + (_wifi[0][0]).decode("utf-8"), 0, 12, 1) + self.text(str(_wifi[1][3]) + " " + (_wifi[1][0]).decode("utf-8"), 0, 24, 1) + self.show() diff --git a/ports/esp32/boards/LOLIN_S2_PICO/mpconfigboard.cmake b/ports/esp32/boards/LOLIN_S2_PICO/mpconfigboard.cmake new file mode 100644 index 000000000..5f157e7e7 --- /dev/null +++ b/ports/esp32/boards/LOLIN_S2_PICO/mpconfigboard.cmake @@ -0,0 +1,11 @@ +set(IDF_TARGET esp32s2) + +set(SDKCONFIG_DEFAULTS + boards/sdkconfig.base + boards/sdkconfig.spiram_sx + boards/sdkconfig.usb +) + +if(NOT MICROPY_FROZEN_MANIFEST) + set(MICROPY_FROZEN_MANIFEST ${MICROPY_BOARD_DIR}/manifest.py) +endif() diff --git a/ports/esp32/boards/LOLIN_S2_PICO/mpconfigboard.h b/ports/esp32/boards/LOLIN_S2_PICO/mpconfigboard.h new file mode 100644 index 000000000..549dd9847 --- /dev/null +++ b/ports/esp32/boards/LOLIN_S2_PICO/mpconfigboard.h @@ -0,0 +1,12 @@ +#define MICROPY_HW_BOARD_NAME "LOLIN_S2_PICO" +#define MICROPY_HW_MCU_NAME "ESP32-S2FN4R2" + +#define MICROPY_PY_BLUETOOTH (0) +#define MICROPY_HW_ENABLE_SDCARD (0) + +#define MICROPY_HW_I2C0_SCL (9) +#define MICROPY_HW_I2C0_SDA (8) + +#define MICROPY_HW_SPI1_MOSI (35) +#define MICROPY_HW_SPI1_MISO (36) +#define MICROPY_HW_SPI1_SCK (37) diff --git a/ports/esp32/boards/LOLIN_S2_PICO/sdkconfig.board b/ports/esp32/boards/LOLIN_S2_PICO/sdkconfig.board new file mode 100644 index 000000000..bf0f3e780 --- /dev/null +++ b/ports/esp32/boards/LOLIN_S2_PICO/sdkconfig.board @@ -0,0 +1,6 @@ +CONFIG_FLASHMODE_QIO=y +CONFIG_ESPTOOLPY_FLASHFREQ_80M=y +CONFIG_USB_AND_UART=y +# LWIP +CONFIG_LWIP_LOCAL_HOSTNAME="LOLIN_S2_PICO" +# end of LWIP |
