From cd3c6604eea28d5542c5300b823c2e72db31efdd Mon Sep 17 00:00:00 2001 From: aisuneko icecat Date: Fri, 28 Feb 2025 22:08:14 +0800 Subject: [PATCH] boards: lilygo: t_oi_plus: initial support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit initial support for the Lilygo TTGO T-OI-PLUS ESP32-C3 board Signed-off-by: aisuneko icecat Co-authored-by: Benjamin Cabé --- boards/lilygo/ttgo_toiplus/Kconfig | 6 + boards/lilygo/ttgo_toiplus/Kconfig.sysbuild | 10 + .../lilygo/ttgo_toiplus/Kconfig.ttgo_toiplus | 5 + boards/lilygo/ttgo_toiplus/board.cmake | 9 + boards/lilygo/ttgo_toiplus/board.yml | 6 + .../ttgo_toiplus/doc/img/ttgo_toiplus.webp | Bin 0 -> 16768 bytes boards/lilygo/ttgo_toiplus/doc/index.rst | 199 ++++++++++++++++++ .../lilygo/ttgo_toiplus/support/openocd.cfg | 6 + .../ttgo_toiplus/ttgo_toiplus-pinctrl.dtsi | 54 +++++ boards/lilygo/ttgo_toiplus/ttgo_toiplus.dts | 101 +++++++++ boards/lilygo/ttgo_toiplus/ttgo_toiplus.yaml | 14 ++ .../ttgo_toiplus/ttgo_toiplus_defconfig | 6 + 12 files changed, 416 insertions(+) create mode 100644 boards/lilygo/ttgo_toiplus/Kconfig create mode 100644 boards/lilygo/ttgo_toiplus/Kconfig.sysbuild create mode 100644 boards/lilygo/ttgo_toiplus/Kconfig.ttgo_toiplus create mode 100644 boards/lilygo/ttgo_toiplus/board.cmake create mode 100644 boards/lilygo/ttgo_toiplus/board.yml create mode 100644 boards/lilygo/ttgo_toiplus/doc/img/ttgo_toiplus.webp create mode 100644 boards/lilygo/ttgo_toiplus/doc/index.rst create mode 100644 boards/lilygo/ttgo_toiplus/support/openocd.cfg create mode 100644 boards/lilygo/ttgo_toiplus/ttgo_toiplus-pinctrl.dtsi create mode 100644 boards/lilygo/ttgo_toiplus/ttgo_toiplus.dts create mode 100644 boards/lilygo/ttgo_toiplus/ttgo_toiplus.yaml create mode 100644 boards/lilygo/ttgo_toiplus/ttgo_toiplus_defconfig diff --git a/boards/lilygo/ttgo_toiplus/Kconfig b/boards/lilygo/ttgo_toiplus/Kconfig new file mode 100644 index 00000000000..c6a99b1032d --- /dev/null +++ b/boards/lilygo/ttgo_toiplus/Kconfig @@ -0,0 +1,6 @@ +# Copyright (c) 2024 Espressif Systems (Shanghai) Co., Ltd. +# SPDX-License-Identifier: Apache-2.0 + +config HEAP_MEM_POOL_ADD_SIZE_BOARD + int + default 4096 diff --git a/boards/lilygo/ttgo_toiplus/Kconfig.sysbuild b/boards/lilygo/ttgo_toiplus/Kconfig.sysbuild new file mode 100644 index 00000000000..3a2d17ac5cf --- /dev/null +++ b/boards/lilygo/ttgo_toiplus/Kconfig.sysbuild @@ -0,0 +1,10 @@ +# Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. +# SPDX-License-Identifier: Apache-2.0 + +choice BOOTLOADER + default BOOTLOADER_MCUBOOT +endchoice + +choice BOOT_SIGNATURE_TYPE + default BOOT_SIGNATURE_TYPE_NONE +endchoice diff --git a/boards/lilygo/ttgo_toiplus/Kconfig.ttgo_toiplus b/boards/lilygo/ttgo_toiplus/Kconfig.ttgo_toiplus new file mode 100644 index 00000000000..ddca709de7a --- /dev/null +++ b/boards/lilygo/ttgo_toiplus/Kconfig.ttgo_toiplus @@ -0,0 +1,5 @@ +# Copyright 2025 aisuneko icecat +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_TTGO_TOIPLUS + select SOC_ESP32C3_FN4 diff --git a/boards/lilygo/ttgo_toiplus/board.cmake b/boards/lilygo/ttgo_toiplus/board.cmake new file mode 100644 index 00000000000..2f04d1fe886 --- /dev/null +++ b/boards/lilygo/ttgo_toiplus/board.cmake @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: Apache-2.0 + +if(NOT "${OPENOCD}" MATCHES "^${ESPRESSIF_TOOLCHAIN_PATH}/.*") + set(OPENOCD OPENOCD-NOTFOUND) +endif() +find_program(OPENOCD openocd PATHS ${ESPRESSIF_TOOLCHAIN_PATH}/openocd-esp32/bin NO_DEFAULT_PATH) + +include(${ZEPHYR_BASE}/boards/common/esp32.board.cmake) +include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) diff --git a/boards/lilygo/ttgo_toiplus/board.yml b/boards/lilygo/ttgo_toiplus/board.yml new file mode 100644 index 00000000000..e5295b2bec2 --- /dev/null +++ b/boards/lilygo/ttgo_toiplus/board.yml @@ -0,0 +1,6 @@ +board: + name: ttgo_toiplus + full_name: TTGO T-OI-PLUS + vendor: lilygo + socs: + - name: esp32c3 diff --git a/boards/lilygo/ttgo_toiplus/doc/img/ttgo_toiplus.webp b/boards/lilygo/ttgo_toiplus/doc/img/ttgo_toiplus.webp new file mode 100644 index 0000000000000000000000000000000000000000..115cc04fa29fd47fd2490801232223bf0b30649d GIT binary patch literal 16768 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 literal 0 HcmV?d00001 diff --git a/boards/lilygo/ttgo_toiplus/doc/index.rst b/boards/lilygo/ttgo_toiplus/doc/index.rst new file mode 100644 index 00000000000..3ea6b50446f --- /dev/null +++ b/boards/lilygo/ttgo_toiplus/doc/index.rst @@ -0,0 +1,199 @@ +.. zephyr:board:: ttgo_toiplus + +Overview +******** + +Lilygo TTGO T-OI-PLUS is an mini IoT development board based on +Espressif's ESP32-C3 WiFi/Bluetooth dual-mode chip. + +It features the following integrated components: + +- ESP32-C3 SoC (RISC-V 160MHz single core, 400KB SRAM, Wi-Fi, Bluetooth) +- on board Grove connector +- USB-C connector for power and communication (on board serial) +- optional 18340 Li-ion battery holder +- LED + +Functional Description +********************** +This board is based on the ESP32-C3 with 4MB of flash, WiFi and BLE support. It +has an USB-C port for programming and debugging, integrated battery charging +and an Grove connector. + +Connections and IOs +=================== + +.. zephyr:board-supported-hw:: + +(Note: the above UART interface also supports connecting through USB.) + +Start Application Development +***************************** + +Before powering up your Lilygo TTGO T-OI-PLUS, please make sure that the board is in good +condition with no obvious signs of damage. + +System requirements +******************* + +Prerequisites +============= + +Espressif HAL requires WiFi and Bluetooth binary blobs in order work. Run the command +below to retrieve those files. + +.. code-block:: console + + west blobs fetch hal_espressif + +.. note:: + + It is recommended running the command above after :file:`west update`. + +Building & Flashing +******************* + +Simple boot +=========== + +The board could be loaded using the single binary image, without 2nd stage bootloader. +It is the default option when building the application without additional configuration. + +.. note:: + + Simple boot does not provide any security features nor OTA updates. + +MCUboot bootloader +================== + +User may choose to use MCUboot bootloader instead. In that case the bootloader +must be built (and flashed) at least once. + +There are two options to be used when building an application: + +1. Sysbuild +2. Manual build + +.. note:: + + User can select the MCUboot bootloader by adding the following line + to the board default configuration file. + + .. code:: cfg + + CONFIG_BOOTLOADER_MCUBOOT=y + +Sysbuild +======== + +The sysbuild makes possible to build and flash all necessary images needed to +bootstrap the board with the ESP32-C3 SoC. + +To build the sample application using sysbuild use the command: + +.. zephyr-app-commands:: + :tool: west + :zephyr-app: samples/hello_world + :board: ttgo_toiplus + :goals: build + :west-args: --sysbuild + :compact: + +By default, the ESP32-C3 sysbuild creates bootloader (MCUboot) and application +images. But it can be configured to create other kind of images. + +Build directory structure created by sysbuild is different from traditional +Zephyr build. Output is structured by the domain subdirectories: + +.. code-block:: + + build/ + ├── hello_world + │   └── zephyr + │   ├── zephyr.elf + │   └── zephyr.bin + ├── mcuboot + │ └── zephyr + │ ├── zephyr.elf + │ └── zephyr.bin + └── domains.yaml + +.. note:: + + With ``--sysbuild`` option the bootloader will be re-build and re-flash + every time the pristine build is used. + +For more information about the system build please read the :ref:`sysbuild` documentation. + +Manual build +============ + +During the development cycle, it is intended to build & flash as quickly possible. +For that reason, images can be built one at a time using traditional build. + +The instructions following are relevant for both manual build and sysbuild. +The only difference is the structure of the build directory. + +.. note:: + + Remember that bootloader (MCUboot) needs to be flash at least once. + +Build and flash applications as usual (see :ref:`build_an_application` and +:ref:`application_run` for more details). + +.. zephyr-app-commands:: + :zephyr-app: samples/hello_world + :board: ttgo_toiplus + :goals: build + +The usual ``flash`` target will work with the ``ttgo_toiplus`` board target. +Here is an example for the :zephyr:code-sample:`hello_world` application. + +.. zephyr-app-commands:: + :zephyr-app: samples/hello_world + :board: ttgo_toiplus + :goals: flash + +You can also open the serial monitor using the following command: + +.. code-block:: shell + + west espressif monitor + +After the board has automatically reset and booted, you should see the following +message in the monitor: + +.. code-block:: console + + ***** Booting Zephyr OS vx.x.x-xxx-gxxxxxxxxxxxx ***** + Hello World! ttgo_toiplus + +Sample applications +=================== + +The following samples will run out of the box on the TTGO T-OI-PLUS board. + +To build the blinky sample: + +.. zephyr-app-commands:: + :tool: west + :zephyr-app: samples/basic/blinky + :board: ttgo_toiplus + :goals: build + +To build the bluetooth beacon sample: + +.. zephyr-app-commands:: + :tool: west + :zephyr-app: samples/bluetooth/beacon + :board: ttgo_toiplus + :goals: build + + +Related Documents +***************** +.. _`Lilygo TTGO T-OI-PLUS schematic`: https://github.com/Xinyuan-LilyGO/LilyGo-T-OI-PLUS/blob/main/schematic/T-OI_PLUS_Schematic.pdf +.. _`Lilygo github repo`: https://github.com/Xinyuan-LilyGO +.. _`Espressif ESP32-C3 datasheet`: https://www.espressif.com/sites/default/files/documentation/esp32-c3_datasheet_en.pdf +.. _`Espressif ESP32-C3 technical reference manual`: https://www.espressif.com/sites/default/files/documentation/esp32-c3_technical_reference_manual_en.pdf +.. _`OpenOCD ESP32`: https://github.com/espressif/openocd-esp32/releases diff --git a/boards/lilygo/ttgo_toiplus/support/openocd.cfg b/boards/lilygo/ttgo_toiplus/support/openocd.cfg new file mode 100644 index 00000000000..02754ff2a73 --- /dev/null +++ b/boards/lilygo/ttgo_toiplus/support/openocd.cfg @@ -0,0 +1,6 @@ +set ESP_RTOS none + +source [find interface/esp_usb_jtag.cfg] + +source [find target/esp32c3.cfg] +adapter_khz 5000 diff --git a/boards/lilygo/ttgo_toiplus/ttgo_toiplus-pinctrl.dtsi b/boards/lilygo/ttgo_toiplus/ttgo_toiplus-pinctrl.dtsi new file mode 100644 index 00000000000..874d3c94639 --- /dev/null +++ b/boards/lilygo/ttgo_toiplus/ttgo_toiplus-pinctrl.dtsi @@ -0,0 +1,54 @@ +/* + * Copyright 2024 Lothar Felten + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include +#include + +&pinctrl { + uart0_default: uart0_default { + group1 { + pinmux = ; + output-high; + }; + + group2 { + pinmux = ; + bias-pull-up; + }; + }; + + spim2_default: spim2_default { + group1 { + pinmux = , + ; + }; + + /* GPIO6 is CS */ + + group2 { + pinmux = ; + output-low; + }; + }; + + i2c0_default: i2c0_default { + group1 { + pinmux = , + ; + bias-pull-up; + drive-open-drain; + output-high; + }; + }; + + twai_default: twai_default { + group1 { + pinmux = , + ; + }; + }; +}; diff --git a/boards/lilygo/ttgo_toiplus/ttgo_toiplus.dts b/boards/lilygo/ttgo_toiplus/ttgo_toiplus.dts new file mode 100644 index 00000000000..6db7d4c16e6 --- /dev/null +++ b/boards/lilygo/ttgo_toiplus/ttgo_toiplus.dts @@ -0,0 +1,101 @@ +/* + * Copyright 2025 aisuneko icecat + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; + +#include +#include "ttgo_toiplus-pinctrl.dtsi" +#include + +/ { + model = "Lilygo TTGO T-OI-PLUS"; + compatible = "lilygo,ttgo-toiplus"; + + aliases { + led0 = &green_led; + i2c-0 = &i2c0; + watchdog0 = &wdt0; + }; + + chosen { + zephyr,sram = &sram1; + zephyr,console = &uart0; + zephyr,shell-uart = &uart0; + zephyr,flash = &flash0; + zephyr,code-partition = &slot0_partition; + zephyr,bt-hci = &esp32_bt_hci; + zephyr,canbus = &twai; + }; + + leds { + compatible = "gpio-leds"; + + green_led: led_0 { + gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>; + label = "Green - LED0"; + }; + }; +}; + +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; + +&uart0 { + status = "okay"; + current-speed = <115200>; + pinctrl-0 = <&uart0_default>; + pinctrl-names = "default"; +}; + +&i2c0 { + status = "okay"; + clock-frequency = ; + pinctrl-0 = <&i2c0_default>; + pinctrl-names = "default"; +}; + +&trng0 { + status = "okay"; +}; + +&spi2 { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + pinctrl-0 = <&spim2_default>; + pinctrl-names = "default"; +}; + +&gpio0 { + status = "okay"; +}; + +&wdt0 { + status = "okay"; +}; + +&timer0 { + status = "okay"; +}; + +&timer1 { + status = "okay"; +}; + +&twai { + status = "okay"; + pinctrl-0 = <&twai_default>; + pinctrl-names = "default"; +}; + +&wifi { + status = "okay"; +}; + +&esp32_bt_hci { + status = "okay"; +}; diff --git a/boards/lilygo/ttgo_toiplus/ttgo_toiplus.yaml b/boards/lilygo/ttgo_toiplus/ttgo_toiplus.yaml new file mode 100644 index 00000000000..746472787cb --- /dev/null +++ b/boards/lilygo/ttgo_toiplus/ttgo_toiplus.yaml @@ -0,0 +1,14 @@ +identifier: ttgo_toiplus +name: TTGO T-OI-PLUS +type: mcu +arch: riscv +toolchain: + - zephyr +supported: + - gpio + - i2c + - spi + - uart + - watchdog + - can +vendor: lilygo diff --git a/boards/lilygo/ttgo_toiplus/ttgo_toiplus_defconfig b/boards/lilygo/ttgo_toiplus/ttgo_toiplus_defconfig new file mode 100644 index 00000000000..187793c76e8 --- /dev/null +++ b/boards/lilygo/ttgo_toiplus/ttgo_toiplus_defconfig @@ -0,0 +1,6 @@ +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_CONSOLE=y +CONFIG_SERIAL=y +CONFIG_UART_CONSOLE=y +CONFIG_GPIO=y