Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

LilyGo logo

🌟 LilyGo T-Display K230 🌟

LilyGo logo

English | 中文

This repository packages the board support files, launcher application, and host scripts for building a LILYGO T-Display K230 SD-card image from the official Kendryte K230 Linux SDK.

Validated upstream SDK:

https://github.com/kendryte/k230_linux_sdk.git
dev commit 22d02c6b6783a57a3aca7eb3160e313e772cb710

Feature Overview

See CHANGELOG.MD for release history.

The public image includes a phone-style LVGL launcher, responsive portrait/landscape layouts, camera and media apps, settings pages, optional keyboard-base hardware support, nRF52840/nRF9151 management, LoRa/LoRaWAN tools, and Meshtastic beta support.

Feature status:

  • Stable daily-use apps: camera, gallery, music, network radio, recorder, video player, terminal, MTP, Wi-Fi, Ethernet, display, audio, notification, battery, charger, sensor, keyboard, and system settings.
  • Beta apps: Meshtastic, LoRaWAN, Xiaozhi voice assistant, PicoClaw, nRF9151 cellular/GNSS data tools, and nRF52840 UART DFU.
  • User-provided content: NES ROM files and offline map tiles are not bundled in the default image.

Repository Layout

k230_bsp/          Board support overlay for U-Boot, Linux, Buildroot, DTB, logo, and hardware services
k230_launcher/     LVGL launcher application and bundled runtime resources
k230_linux_sdk/    Official Kendryte K230 Linux SDK submodule
scripts/           Host setup, SDK overlay, image build, and SSH deployment helpers

Documentation

Build From A Fresh Ubuntu PC

Ubuntu 22.04 or 24.04 is recommended.

Install Git and basic build tools:

sudo apt update
sudo apt install -y git ca-certificates build-essential make rsync python3

Clone this repository with the SDK submodule:

git clone --recurse-submodules https://github.com/Xinyuan-LilyGO/T-Display-K230.git t-display-k230
cd t-display-k230

If the repository was cloned without submodules:

git submodule update --init --recursive

Install the SDK toolchain and host dependencies:

./scripts/setup_ubuntu.sh

Apply the board support files and launcher to the SDK:

./scripts/apply_to_sdk.sh

Build the SD-card image:

./scripts/build_sdcard_image.sh

The image is exported to:

k230_bsp/images/sysimage-sdcard.img

For a fully clean rebuild, remove the SDK output directory, re-apply the board overlay, then build through the helper script:

rm -rf k230_linux_sdk/output
./scripts/apply_to_sdk.sh
./scripts/build_sdcard_image.sh

Build From Windows With WSL2

Building from native Windows shells such as CMD, PowerShell, Git Bash, MSYS2, or Cygwin is not recommended. Use WSL2 with Ubuntu so the SDK sees a normal Linux filesystem, permissions, symlinks, and shell environment.

Install Ubuntu 22.04 from an Administrator PowerShell window:

wsl --install -d Ubuntu-22.04

Restart Windows if WSL asks for it, then open the Ubuntu terminal and install the basic tools:

sudo apt update
sudo apt install -y git ca-certificates build-essential make rsync python3

Clone and build inside the WSL Linux filesystem, for example under ~/work. Do not build under /mnt/c/Users/...; that path is slower and can break Linux-style permissions or symlinks used by the SDK.

mkdir -p ~/work
cd ~/work
git clone --recurse-submodules https://github.com/Xinyuan-LilyGO/T-Display-K230.git t-display-k230
cd t-display-k230
./scripts/setup_ubuntu.sh
./scripts/apply_to_sdk.sh
./scripts/build_sdcard_image.sh

The generated image is:

k230_bsp/images/sysimage-sdcard.img

To open the image folder from Windows Explorer:

explorer.exe "$(wslpath -w k230_bsp/images)"

Flashing

On Linux, replace /dev/sdX with the actual TF-card block device:

sudo dd if=k230_bsp/images/sysimage-sdcard.img of=/dev/sdX bs=8M status=progress conv=fsync
sync

On macOS, replace diskN with the actual TF-card disk:

diskutil unmountDisk /dev/diskN
sudo dd if=k230_bsp/images/sysimage-sdcard.img of=/dev/rdiskN bs=8m status=progress
sync

Flash With Rufus On Windows

  1. Insert the TF card into the Windows PC.
  2. Download Rufus then open Rufus.
  3. In Device, select the TF card.
  4. In Boot selection, choose Disk or ISO image, then click SELECT.
  5. Select sysimage-sdcard.img from k230_bsp/images/.
  6. Click START.
  7. If Rufus asks for the write mode, select Write in DD Image mode.
  8. Confirm the erase warning and wait until Rufus reports completion.
  9. Eject the TF card safely and insert it into the T-Display K230.

After flashing, Windows may show a prompt asking to format an unknown partition. Cancel that prompt. The card contains Linux partitions used by the K230 image.

Fast SSH Deployment

When the board is already running Linux and SSH is reachable, rebuild and deploy the launcher without reflashing the card:

./scripts/deploy_launcher.sh 192.168.1.100

Deploy the launcher and boot files:

./scripts/deploy_launcher.sh 192.168.1.100 --full --reboot

Important

Please replace the above IP addresses with the IP address of your device.

Included Hardware Support

  • RM69A10 AMOLED MIPI DSI panel and U-Boot boot logo.
  • GT9895 / Goodix Berlin touchscreen.
  • GC2093 camera.
  • RTL8189FS SDIO Wi-Fi.
  • USB Bluetooth adapter support and BlueZ runtime.
  • nRF52840 UART preset.
  • nRF9151 UART and enable-pin preset.
  • SX1262/LR2021 LoRa SPI preset.
  • MAX98357A external I2S amplifier and audio route switching.
  • AHT20, BQ25896, BQ27220, XL9555, and TCA8418 keyboard-base I2C devices.
  • Keyboard interrupt GPIO42 and keyboard backlight GPIO52/PWM4.
  • PMU power key input and K230 thermal sensor support.

Generated image files under k230_bsp/images/ are local build artifacts.

Known Limitations

  • Meshtastic is included as a beta feature. Core chat, node display, map view, and channel sharing are available. Voice/photo transfer is only available between K230 boards fitted with LR2021 modules; SX1262 boards support basic text mesh messages only.
  • HDMI support is kept as a diagnostic feature. AMOLED remains the default display path.
  • Optional hardware features are shown only when the related module is detected. This includes nRF9151, nRF52840, TCA8418, BQ27220, BQ25896, XL9555, and AHT20.
  • Xiaozhi requires network access and a compatible Xiaozhi service. Wake-word listening is active only while the Xiaozhi app is open and owns the microphone.
  • PicoClaw requires network access and an OpenAI-compatible model API key.
  • Offline map tiles, NES ROMs, and user media files should be copied to the SD card by the user.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages