LILYGO T-PICO-2350

  • RP2350
  • ESP32-C6
  • Raspberry Pi
  • Dual-Core

T-PICO-2350

Version History:

Version Update Date Update Description
T-PICO-2350_V1.2 2024-01-01 Initial version
Product Main SOC Wireless SOC Flash Link
T-PICO-2350 RP2350 ESP32-C6 16MB + 4MB LILYGO Mall

Table of Contents

Description

The T-PICO-2350 is another version in the T-Pico series based on the Raspberry Pi RP2350 chip, manufactured with the external expansion version shell design of T-Display S3 Pro. This shell design features multiple external function expansion interfaces, supporting both pin header expansion mode and 13-pin 0.3mm pitch FPC expansion interface mode, while the bottom has multiple M1.4 embedded copper nuts for bottom expansion fixation. It integrates RP2350 + ESP32-C6 + 2.33-inch capacitive touch screen + TF card + HDMI interface + 2 QWIIC interfaces + PMU, supports battery power and USB power, and continues the T-Pico series design with reversible USB connection for programming both chips.

Preview

Physical Image

T-PICO-2350

Pinout Diagram

summary

Modules

Main Processor (RP2350)

Wireless Co-processor (ESP32-C6)

  • Chip: ESP32-C6-MINI-1U-N4
  • Flash: 4MB
  • Wireless Protocol: 2.4G WiFi 6 + Bluetooth (BLE)
  • Wireless Standard: 802.11b/g/n

Display

  • Size: 2.33-inch IPS LCD
  • Driver IC: ST7796S
  • Bus Communication Protocol: SPI

Touch

  • Chip: XL9535
  • Bus Communication Protocol: I2C

Expansion Interfaces

  • HDMI: 19-pin HDMI interface
  • QWIIC: 2 × QWIIC interfaces
  • IO Interface: 2×13 expansion IO interface
  • FPC Interface: 13-pin 0.3mm pitch FPC expansion interface

Overview

Component Description
Main Processor RP2350
Wireless Co-processor ESP32-C6-MINI-1U-N4
Flash 16MB (RP2350) + 4MB (ESP32-C6)
SRAM 520kB (RP2350)
Display 2.33-inch IPS LCD
Touch XL9535 I2C Capacitive Touch
Storage TF card
Video Output HDMI interface
Wireless WiFi 6 + BLE (ESP32-C6)
Expansion Interface 2×13 IO + 2×QWIIC + FPC
Power Management Integrated PMU
Power Supply Battery power + USB power
Mounting Holes 4 × M1.4mm
Programming Interface Reversible USB for programming both chips

Quick Start

Example Support

Example PlatformIO/Arduino C/C++ Description
Factory ✓ ✓ Factory example
(More examples please refer to the GitHub repository)

New User Guide

  • For first-time use, you need to use Zadig to replace the driver for correct port recognition.
  • T-PicoPro uses a reversible Type-C design, corresponding to the RP2350 port and ESP32-C6 USB port respectively.
  • How to identify the RP2350 port?
    • Hold the BOOT button on the side of T-PicoPro, then plug in the USB-C. If the computer recognizes it as a disk, then this is the RP2350 port.
  • Besides being used as UART, the QWIIC UART port of T-PicoPro can also be used as general IO.
  • The QWIIC I2C port cannot be used for other purposes and can only be configured as an I2C interface, as it is connected to the screen touch and PMU.
  • ESP32C6 uses modified AT firmware with TX and RX swapped. You can find the custom compilation method for AT firmware here.
  • ESP32-C6 default AT firmware is compiled at V3.3.0-dev. This firmware has been simply modified (added GPIO control function), source code can be found here, specific changes please see commit.
  • T-PicoPro charging indicator can be turned off via software. If no battery is connected, the indicator will flash.

PlatformIO Quick Start (Recommended)

  1. Install Visual Studio Code and Python
  2. Search for the PlatformIO plugin in VisualStudioCode extensions and install it
  3. After installation, you need to restart VisualStudioCode
  4. After restarting VisualStudioCode, select File -> Open Folder -> select the T-PicoPro directory
  5. Wait for third-party dependency libraries to install
  6. Click on the platformio.ini file, in the platformio section
  7. Uncomment one of the src_dir = xxxx lines, ensuring only one line is active
  8. Click the (✔) symbol at the bottom left to compile
  9. Connect the development board to computer USB
  10. Click (→) to upload firmware
  11. Click (plug symbol) to monitor serial output
  12. If unable to write, or USB device keeps flashing, please check the FAQ below

Arduino IDE Quick Start

  • PlatformIO is recommended to avoid cumbersome steps
  1. Install Arduino IDE
  2. Install Arduino Pico
  3. Download or clone T-PicoPro to any location
  4. Copy all folders from the lib folder to the Arduino library folder (e.g., C:\Users\YourUsername\Documents\Arduino\libraries)
  5. Open ArduinoIDE, Tools, select as shown in the image
    Settings
  6. T-PicoPro folder -> examples -> Any example
  7. Select Port
  8. Click Upload, wait for compilation and writing to complete
  9. If unable to write, or USB device keeps flashing, please check the FAQ below

Pin Overview

XL9535 is the external expansion IO port for RP2350A.

RP2350A XL9535 ESP32-C6 TFT SD BUTTON HDMI QWIIC UART1 FLASH DRAM
IO0(SDA) ↔ PIN47(TP_SDA)
IO1(SLC) ↔ PIN48(TP_SCL)
IO2 ↔ SDA1
IO3 ↔ SCL1
IO2 ↔ PIN50(TP_RST)
IO4 ↔ PIN49(TP_INT)
IO0 ↔ PIN35(TF_RST)
IO1 ↔ PIN35(TF_BL)
IO4(MISO) ↔ PIN11 SD_MISO
IO6(SCK) ↔ PIN8 SD_SCK
IO7(MOSI) ↔ PIN10 SD_MOSI
IO8(TFT_CS) ↔ PIN6
IO9(TFT_DC) ↔ PIN7
IO5(SD_CS ) ↔ SD_CS
IO12 ↔ CK_N
IO13 ↔ CK_P
IO14 ↔ D0_N
IO15 ↔ D0_P
IO16 ↔ D1_N
IO17 ↔ D1_P
IO18 ↔ D2_N
IO19 ↔ D2_P
IO6 ↔ HOTPLUGDET
IO20(TX) ↔ RX
IO21(RX) ↔ TX
IO23 ↔ BTN1
IO22(RESERVE) ↔ IO10(RESERVE)
IO3 ↔ IO8(EN)
IO26(CTS) ↔ IO5(CTS)
IO27(RTS) ↔ IO4(RTS)
IO28(TX) ↔ IO6(RX)
IO29(RX) ↔ IO7(TX)
PIN55(SD3) ↔ IO3 SIO3
PIN58(SD2) ↔ IO2 SIO2
PIN59(SD1) ↔ IO1 SIO1
PIN57(SD0) ↔ IO0 SIO0
PIN56(SCLK) ↔ SCLK SCLK
PIN60(FLASH_CS) ↔ IO3
IO25(RAM_CS) ↔ CS
(For detailed pin definitions, please refer to the schematic diagram)

(Dual-core communication, power consumption, display performance test data to be added)

FAQ

  1. If writing fails but shows success:

    1. Connect the development board via USB cable
    2. Press and hold the (side) BOOT button while pressing the (same side) RST button
    3. Release the (side) RST button
    4. Release the (side) BOOT button
    5. Upload the program
  2. How to write to ESP32-C6?

    1. Since the ESP32-C6 reset pin is controlled by RP2350, when updating ESP32-C6 firmware, do not include operations controlling the ESP32-C6 reset pin in the RP2350 program.
    2. Hold the esp32 BOOT button on the ESP32-C6 module side and plug in USB-C. Make sure to plug into the "ESP32-C6" USB port side. The computer should be able to write to "ESP32-C6" normally.
  3. How to check if hardware is normal?

    1. Please follow step 1 in FAQ, drag the firmware.uf2 from the firmware directory into the disk. The program includes hardware self-test to determine if the hardware is normal.
  4. Why is there no serial output?

    1. In arduino IDE, select Debug Port: "Serial" in the toolbar.
    2. Please open the DTR option in the serial assistant tool.

Projects

Resources

Dependent Libraries