summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeon Rozenblum <seon@unexpectedmaker.com>2024-09-15 16:11:59 +1000
committerDamien George <damien@micropython.org>2024-09-19 15:13:35 +1000
commit9b5f99eb591aeb6aa3ea06e34ab9a9aebd744005 (patch)
tree8b1263c7318a5360aa2fa3ec4ab8b7fc04ebc970
parentd775db72b9bf01d2f40f6cf4d4d98941f30b7bd2 (diff)
esp32/boards: Add UM_OMGS3 and UM_RGBTOUCH_MINI board definitions.
This adds two new UM boards: OMGS3 and RGB Touch Mini. Also fixed the NanoS3 deploy info. Signed-off-by: Seon Rozenblum <seon@unexpectedmaker.com>
-rw-r--r--ports/esp32/boards/UM_NANOS3/deploy.md5
-rw-r--r--ports/esp32/boards/UM_OMGS3/board.json25
-rw-r--r--ports/esp32/boards/UM_OMGS3/board.md1
-rw-r--r--ports/esp32/boards/UM_OMGS3/deploy.md53
-rw-r--r--ports/esp32/boards/UM_OMGS3/manifest.py2
-rw-r--r--ports/esp32/boards/UM_OMGS3/modules/max17048.py72
-rw-r--r--ports/esp32/boards/UM_OMGS3/modules/omgs3.py57
-rw-r--r--ports/esp32/boards/UM_OMGS3/mpconfigboard.cmake13
-rw-r--r--ports/esp32/boards/UM_OMGS3/mpconfigboard.h10
-rw-r--r--ports/esp32/boards/UM_OMGS3/pins.csv8
-rw-r--r--ports/esp32/boards/UM_OMGS3/sdkconfig.board21
-rw-r--r--ports/esp32/boards/UM_RGBTOUCH_MINI/board.json29
-rw-r--r--ports/esp32/boards/UM_RGBTOUCH_MINI/board.md1
-rw-r--r--ports/esp32/boards/UM_RGBTOUCH_MINI/deploy.md52
-rw-r--r--ports/esp32/boards/UM_RGBTOUCH_MINI/manifest.py2
-rw-r--r--ports/esp32/boards/UM_RGBTOUCH_MINI/mpconfigboard.cmake13
-rw-r--r--ports/esp32/boards/UM_RGBTOUCH_MINI/mpconfigboard.h10
-rw-r--r--ports/esp32/boards/UM_RGBTOUCH_MINI/pins.csv17
-rw-r--r--ports/esp32/boards/UM_RGBTOUCH_MINI/sdkconfig.board21
19 files changed, 410 insertions, 2 deletions
diff --git a/ports/esp32/boards/UM_NANOS3/deploy.md b/ports/esp32/boards/UM_NANOS3/deploy.md
index 725cff494..4285b0275 100644
--- a/ports/esp32/boards/UM_NANOS3/deploy.md
+++ b/ports/esp32/boards/UM_NANOS3/deploy.md
@@ -1,7 +1,8 @@
Program your board using the latest version of the esptool.py program, found [here](https://github.com/espressif/esptool).
-To flash or erase your NanoS3, you have to first put it into download mode.
-To do this, follow these steps:
+To flash or erase your NANOS3, you have to first put it into download mode.
+NANOS3 doesn't include buttons for RESET and IO0, which should be provided by adding external buttons via a carrier board or other method.
+To put the NANOS3 into download, follow these steps:
- Press and hold the [BOOT] button
- Press and release the [RESET] button
diff --git a/ports/esp32/boards/UM_OMGS3/board.json b/ports/esp32/boards/UM_OMGS3/board.json
new file mode 100644
index 000000000..e4cb87391
--- /dev/null
+++ b/ports/esp32/boards/UM_OMGS3/board.json
@@ -0,0 +1,25 @@
+{
+ "deploy": [
+ "deploy.md"
+ ],
+ "docs": "",
+ "features": [
+ "Battery Charging",
+ "RGB LED",
+ "External RAM",
+ "WiFi",
+ "BLE"
+ ],
+ "features_non_filterable": [
+ "I2C BAT Fuel Gauge"
+ ],
+ "id": "omgs3",
+ "images": [
+ "unexpectedmaker_omgs3.jpg"
+ ],
+ "mcu": "esp32s3",
+ "product": "OMGS3",
+ "thumbnail": "",
+ "url": "https://omgs3.io",
+ "vendor": "Unexpected Maker"
+}
diff --git a/ports/esp32/boards/UM_OMGS3/board.md b/ports/esp32/boards/UM_OMGS3/board.md
new file mode 100644
index 000000000..aa52d5206
--- /dev/null
+++ b/ports/esp32/boards/UM_OMGS3/board.md
@@ -0,0 +1 @@
+The following files are firmware for the OMGS3.
diff --git a/ports/esp32/boards/UM_OMGS3/deploy.md b/ports/esp32/boards/UM_OMGS3/deploy.md
new file mode 100644
index 000000000..09f2ef8c2
--- /dev/null
+++ b/ports/esp32/boards/UM_OMGS3/deploy.md
@@ -0,0 +1,53 @@
+Program your board using the latest version of the esptool.py program, found [here](https://github.com/espressif/esptool).
+
+To flash or erase your OMGS3, you have to first put it into download mode.
+OMGS3 doesn't include buttons for RESET and IO0, which should be provided by adding external buttons via a carrier board or other method.
+To put the OMGS3 into download, 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 `omgs3-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 omgs3-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 omgs3-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 omgs3-micropython-firmware-version.bin
+```
diff --git a/ports/esp32/boards/UM_OMGS3/manifest.py b/ports/esp32/boards/UM_OMGS3/manifest.py
new file mode 100644
index 000000000..7ae2ed15d
--- /dev/null
+++ b/ports/esp32/boards/UM_OMGS3/manifest.py
@@ -0,0 +1,2 @@
+include("$(PORT_DIR)/boards/manifest.py")
+freeze("modules")
diff --git a/ports/esp32/boards/UM_OMGS3/modules/max17048.py b/ports/esp32/boards/UM_OMGS3/modules/max17048.py
new file mode 100644
index 000000000..538e55593
--- /dev/null
+++ b/ports/esp32/boards/UM_OMGS3/modules/max17048.py
@@ -0,0 +1,72 @@
+# Basic MAX17048 library for OMGS3 and other Unexpected Maker products
+# MIT license; Copyright (c) 2024 Seon Rozenblum - Unexpected Maker
+#
+# Project home:
+# https://unexpectedmaker.com
+
+from machine import I2C
+
+
+class MAX17048:
+ _MAX17048_ADDRESS = 0x36
+
+ _VCELL_REGISTER = 0x02
+ _SOC_REGISTER = 0x04
+ _MODE_REGISTER = 0x06
+ _VERSION_REGISTER = 0x08
+ _HIBRT_REGISTER = 0x0A
+ _CONFIG_REGISTER = 0x0C
+ _COMMAND_REGISTER = 0xFE
+
+ def __init__(self, i2c, address=_MAX17048_ADDRESS):
+ self.i2c = i2c
+ self.address = address
+
+ def _read_register(self, register, num_bytes):
+ result = self.i2c.readfrom_mem(self.address, register, num_bytes)
+ return int.from_bytes(result, "big")
+
+ def _write_register(self, register, value, num_bytes):
+ data = value.to_bytes(num_bytes, "big")
+ self.i2c.writeto_mem(self.address, register, data)
+
+ @property
+ def cell_voltage(self):
+ """The voltage of the connected cell in Volts."""
+ raw_voltage = self._read_register(self._VCELL_REGISTER, 2)
+ voltage = (raw_voltage >> 4) * 0.00125
+ return voltage
+
+ @property
+ def state_of_charge(self):
+ """The state of charge of the battery in percentage."""
+ raw_soc = self._read_register(self._SOC_REGISTER, 2)
+ return raw_soc / 256
+
+ @property
+ def version(self):
+ """The chip version."""
+ return self._read_register(self._VERSION_REGISTER, 2)
+
+ @property
+ def hibernate(self):
+ """True if the chip is in hibernate mode, False otherwise."""
+ hib = self._read_register(self._HIBRT_REGISTER, 2)
+ return (hib & 0x4000) != 0
+
+ @hibernate.setter
+ def hibernate(self, value):
+ config = self._read_register(self._CONFIG_REGISTER, 2)
+ if value:
+ config |= 0x8000 # Set the sleep bit
+ else:
+ config &= ~0x8000 # Clear the sleep bit
+ self._write_register(self._CONFIG_REGISTER, config, 2)
+
+ def quick_start(self):
+ """Perform a quick start to reset the SOC calculation in the chip."""
+ self._write_register(self._MODE_REGISTER, 0x4000, 2)
+
+ def reset(self):
+ """Reset the chip."""
+ self._write_register(self._COMMAND_REGISTER, 0x5400, 2)
diff --git a/ports/esp32/boards/UM_OMGS3/modules/omgs3.py b/ports/esp32/boards/UM_OMGS3/modules/omgs3.py
new file mode 100644
index 000000000..80b1d1571
--- /dev/null
+++ b/ports/esp32/boards/UM_OMGS3/modules/omgs3.py
@@ -0,0 +1,57 @@
+# OMGS3 Helper Library
+# MIT license; Copyright (c) 2024 Seon Rozenblum - Unexpected Maker
+#
+# Project home:
+# https://omgs3.io
+
+# Import required libraries
+from micropython import const
+from machine import Pin, I2C
+from max17048 import MAX17048
+import time
+
+# Initialize I2C bus
+fg_i2c = I2C(0, scl=Pin.board.I2C_SCL, sda=Pin.board.I2C_SDA)
+
+# Create an instance of the MAX17048 class
+max17048 = MAX17048(fg_i2c)
+
+
+# Helper functions
+def get_bat_voltage():
+ """Read the battery voltage from the fuel gauge"""
+ voltage = max17048.cell_voltage
+ print(f"Bat Voltage: {voltage}V")
+ return voltage
+
+
+def get_state_of_charge():
+ """Read the battery state of charge from the fuel gauge"""
+ soc = max17048.state_of_charge
+ print(f"State of Charge: {soc}%")
+ return soc
+
+
+def get_vbus_present():
+ """Detect if VBUS (5V) power source is present"""
+ return Pin(Pin.board.VBUS_SENSE, Pin.IN).value() == 1
+
+
+def set_pixel_power(state):
+ """Enable or Disable power to the onboard NeoPixel to either show colour, or to reduce power for deep sleep."""
+ Pin(Pin.board.RGB_PWR, Pin.OUT).value(state)
+
+
+# NeoPixel rainbow colour wheel
+def rgb_color_wheel(wheel_pos):
+ """Color wheel to allow for cycling through the rainbow of RGB colors."""
+ wheel_pos = wheel_pos % 255
+
+ if wheel_pos < 85:
+ return 255 - wheel_pos * 3, 0, wheel_pos * 3
+ elif wheel_pos < 170:
+ wheel_pos -= 85
+ return 0, wheel_pos * 3, 255 - wheel_pos * 3
+ else:
+ wheel_pos -= 170
+ return wheel_pos * 3, 255 - wheel_pos * 3, 0
diff --git a/ports/esp32/boards/UM_OMGS3/mpconfigboard.cmake b/ports/esp32/boards/UM_OMGS3/mpconfigboard.cmake
new file mode 100644
index 000000000..a6a42a262
--- /dev/null
+++ b/ports/esp32/boards/UM_OMGS3/mpconfigboard.cmake
@@ -0,0 +1,13 @@
+set(IDF_TARGET esp32s3)
+
+set(SDKCONFIG_DEFAULTS
+ boards/sdkconfig.base
+ ${SDKCONFIG_IDF_VERSION_SPECIFIC}
+ boards/sdkconfig.usb
+ boards/sdkconfig.ble
+ boards/sdkconfig.240mhz
+ boards/sdkconfig.spiram_sx
+ boards/UM_OMGS3/sdkconfig.board
+)
+
+set(MICROPY_FROZEN_MANIFEST ${MICROPY_BOARD_DIR}/manifest.py)
diff --git a/ports/esp32/boards/UM_OMGS3/mpconfigboard.h b/ports/esp32/boards/UM_OMGS3/mpconfigboard.h
new file mode 100644
index 000000000..e3955a6b8
--- /dev/null
+++ b/ports/esp32/boards/UM_OMGS3/mpconfigboard.h
@@ -0,0 +1,10 @@
+#define MICROPY_HW_BOARD_NAME "OMGS3"
+#define MICROPY_HW_MCU_NAME "ESP32-S3-PICO-1-N8R2"
+#define MICROPY_PY_NETWORK_HOSTNAME_DEFAULT "OMGS3"
+
+#define MICROPY_HW_I2C0_SCL (9)
+#define MICROPY_HW_I2C0_SDA (8)
+
+#define MICROPY_HW_SPI1_MOSI (6)
+#define MICROPY_HW_SPI1_MISO (5)
+#define MICROPY_HW_SPI1_SCK (4)
diff --git a/ports/esp32/boards/UM_OMGS3/pins.csv b/ports/esp32/boards/UM_OMGS3/pins.csv
new file mode 100644
index 000000000..5ca2a2c09
--- /dev/null
+++ b/ports/esp32/boards/UM_OMGS3/pins.csv
@@ -0,0 +1,8 @@
+I2C_SCL,GPIO9
+I2C_SDA,GPIO8
+FG_INT,GPIO21
+RGB_DATA,GPIO35
+RGB_PWR,GPIO34
+UART0_TX,GPIO43
+UART0_RX,GPIO44
+VBUS_SENSE,GPIO33
diff --git a/ports/esp32/boards/UM_OMGS3/sdkconfig.board b/ports/esp32/boards/UM_OMGS3/sdkconfig.board
new file mode 100644
index 000000000..84a8ce449
--- /dev/null
+++ b/ports/esp32/boards/UM_OMGS3/sdkconfig.board
@@ -0,0 +1,21 @@
+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="UMOMGS3"
+
+CONFIG_TINYUSB_DESC_CUSTOM_VID=0x303A
+CONFIG_TINYUSB_DESC_CUSTOM_PID=0x8225
+CONFIG_TINYUSB_DESC_BCD_DEVICE=0x0100
+CONFIG_TINYUSB_DESC_USE_ESPRESSIF_VID=n
+CONFIG_TINYUSB_DESC_USE_DEFAULT_PID=n
+CONFIG_TINYUSB_DESC_MANUFACTURER_STRING="Unexpected Maker"
+CONFIG_TINYUSB_DESC_PRODUCT_STRING="OMGS3"
+CONFIG_TINYUSB_DESC_SERIAL_STRING="_omgs3_"
diff --git a/ports/esp32/boards/UM_RGBTOUCH_MINI/board.json b/ports/esp32/boards/UM_RGBTOUCH_MINI/board.json
new file mode 100644
index 000000000..6b3ec0f06
--- /dev/null
+++ b/ports/esp32/boards/UM_RGBTOUCH_MINI/board.json
@@ -0,0 +1,29 @@
+{
+ "deploy": [
+ "deploy.md"
+ ],
+ "docs": "",
+ "features": [
+ "BLE",
+ "Battery Charging",
+ "External Flash",
+ "External RAM",
+ "RGB LED",
+ "USB-C",
+ "WiFi"
+ ],
+ "features_non_filterable": [
+ "3 Axis IMU",
+ "12x12 RGB LED Matrix",
+ "Capacitive Touch",
+ "I2S Audio Amplifier + Speaker"
+ ],
+ "images": [
+ "unexpectedmaker_rgbtouch_mini.jpg"
+ ],
+ "mcu": "esp32s3",
+ "product": "RGB Touch Mini",
+ "thumbnail": "",
+ "url": "https://rgbtouch.com",
+ "vendor": "Unexpected Maker"
+}
diff --git a/ports/esp32/boards/UM_RGBTOUCH_MINI/board.md b/ports/esp32/boards/UM_RGBTOUCH_MINI/board.md
new file mode 100644
index 000000000..9319ac8c0
--- /dev/null
+++ b/ports/esp32/boards/UM_RGBTOUCH_MINI/board.md
@@ -0,0 +1 @@
+The following files are firmware for the RGB Touch Mini.
diff --git a/ports/esp32/boards/UM_RGBTOUCH_MINI/deploy.md b/ports/esp32/boards/UM_RGBTOUCH_MINI/deploy.md
new file mode 100644
index 000000000..afe1ff1de
--- /dev/null
+++ b/ports/esp32/boards/UM_RGBTOUCH_MINI/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 RGB Touch Mini, 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 `rgbtouch_mini-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 rgbtouch_mini-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 rgbtouch_mini-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 rgbtouch_mini-micropython-firmware-version.bin
+```
diff --git a/ports/esp32/boards/UM_RGBTOUCH_MINI/manifest.py b/ports/esp32/boards/UM_RGBTOUCH_MINI/manifest.py
new file mode 100644
index 000000000..7ae2ed15d
--- /dev/null
+++ b/ports/esp32/boards/UM_RGBTOUCH_MINI/manifest.py
@@ -0,0 +1,2 @@
+include("$(PORT_DIR)/boards/manifest.py")
+freeze("modules")
diff --git a/ports/esp32/boards/UM_RGBTOUCH_MINI/mpconfigboard.cmake b/ports/esp32/boards/UM_RGBTOUCH_MINI/mpconfigboard.cmake
new file mode 100644
index 000000000..f73441161
--- /dev/null
+++ b/ports/esp32/boards/UM_RGBTOUCH_MINI/mpconfigboard.cmake
@@ -0,0 +1,13 @@
+set(IDF_TARGET esp32s3)
+
+set(SDKCONFIG_DEFAULTS
+ boards/sdkconfig.base
+ ${SDKCONFIG_IDF_VERSION_SPECIFIC}
+ boards/sdkconfig.usb
+ boards/sdkconfig.ble
+ boards/sdkconfig.240mhz
+ boards/sdkconfig.spiram_sx
+ boards/UM_RGBTOUCH_MINI/sdkconfig.board
+)
+
+set(MICROPY_FROZEN_MANIFEST ${MICROPY_BOARD_DIR}/manifest.py)
diff --git a/ports/esp32/boards/UM_RGBTOUCH_MINI/mpconfigboard.h b/ports/esp32/boards/UM_RGBTOUCH_MINI/mpconfigboard.h
new file mode 100644
index 000000000..118412479
--- /dev/null
+++ b/ports/esp32/boards/UM_RGBTOUCH_MINI/mpconfigboard.h
@@ -0,0 +1,10 @@
+#define MICROPY_HW_BOARD_NAME "RGB Touch Mini"
+#define MICROPY_HW_MCU_NAME "ESP32-S3-PICO-1-N8R2"
+#define MICROPY_PY_NETWORK_HOSTNAME_DEFAULT "RGBTouchMini"
+
+#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_RGBTOUCH_MINI/pins.csv b/ports/esp32/boards/UM_RGBTOUCH_MINI/pins.csv
new file mode 100644
index 000000000..e2bc9d29d
--- /dev/null
+++ b/ports/esp32/boards/UM_RGBTOUCH_MINI/pins.csv
@@ -0,0 +1,17 @@
+INT_IMU,GPIO7
+INT_ROWS, GPIO15
+INT_COLS, GPIO16
+I2C_SDA,GPIO8
+I2C_SCL,GPIO9
+VBAT_SENSE,GPIO18
+VBUS_SENSE,GPIO48
+
+MATRIX_PWR,GPIO38
+MATRIX_DATA,GPIO39
+
+AMP_LRCLK,GPIO37
+AMP_BCLK,GPIO36
+AMP_DATA,GPIO35
+AMP_SD,GPIO34
+PWR_SHUTDOWN,GPIO21
+
diff --git a/ports/esp32/boards/UM_RGBTOUCH_MINI/sdkconfig.board b/ports/esp32/boards/UM_RGBTOUCH_MINI/sdkconfig.board
new file mode 100644
index 000000000..ef3f38af4
--- /dev/null
+++ b/ports/esp32/boards/UM_RGBTOUCH_MINI/sdkconfig.board
@@ -0,0 +1,21 @@
+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="UMRGBTouchMini"
+
+CONFIG_TINYUSB_DESC_CUSTOM_VID=0x303A
+CONFIG_TINYUSB_DESC_CUSTOM_PID=0x81FF
+CONFIG_TINYUSB_DESC_BCD_DEVICE=0x0100
+CONFIG_TINYUSB_DESC_USE_ESPRESSIF_VID=n
+CONFIG_TINYUSB_DESC_USE_DEFAULT_PID=n
+CONFIG_TINYUSB_DESC_MANUFACTURER_STRING="Unexpected Maker"
+CONFIG_TINYUSB_DESC_PRODUCT_STRING="RGBTouchMini"
+CONFIG_TINYUSB_DESC_SERIAL_STRING="_rgbtouch_mini_"