Repository navigation
Releases: Xinyuan-LilyGO/T-Display-K230
Release list
release v0.2.7
What's Changed
- drm/canaan: derive DSI hsfreqrange from lane rate (fix RM69A10 warm-init image shift) by @jheidecker in #5
New Contributors
- @jheidecker made their first contribution in #5
NRF9151 and NRF52840 Firmware
Version v0.2.5 does not include firmware updates for the nRF9151 and nRF52840; if you need to update the firmware, please go to v0.2.0 to download the nRF9151 and nRF52840 firmware.
release v0.2.6
Added
- Added NES mapper 163 support ISSUE2 .
- Added safer NES ROM validation before launch to avoid crashes caused by unsupported, empty, or incomplete ROM files.
Improved
- Updated LR2021 LILYGO RF switch handling for DIO6/DIO7/DIO8/DIO10 routing ISSUE3
- Limited LR2021 LILYGO 2.4 GHz HF profile power to 4 dBm.
- Updated LoRa, FLRC, and Meshtastic LR2021 paths to use the same RF switch and power-limit behavior.
- Updated documentation for LR2021 module RF-switch differences.
Notes
- LR2021 868/915 MHz hardware uses the DPX205850DT-4055A1 duplexer and does not use an MXD8721 RF switch.
- DIO8/DIO10 RF-switch control applies only to the 433 MHz LR2021 variant.
Commits Included
- NES ROM stability and mapper 163 fixes.
- LR2021 LILYGO RF switch and HF power-limit fixes.
- Documentation and changelog updates for v0.2.6.
NRF9151 and NRF52840 Firmware
Version v0.2.5 does not include firmware updates for the nRF9151 and nRF52840; if you need to update the firmware, please go to v0.2.0 to download the nRF9151 and nRF52840 firmware.
release v0.2.5
Highlights
- Added optional DRV2605 haptic feedback support.
- Added GC2093 camera focus support for modules with a DW9714 focus actuator.
- Added camera QR code scanning flow.
- Improved camera startup reliability and autofocus settling behavior.
- Improved music and NES list navigation and portrait layout handling.
- Improved MTP storage-space reporting and file-write error handling.
Camera
- Added DW9714 focus actuator support on the GC2093 camera I2C bus.
- Added tap-focus and autofocus stability improvements.
- Improved cold camera pipeline startup behavior.
- Fixed portrait QR scanner preview rotation.
- Added camera QR scanner app flow.
Launcher Apps
- Improved music playlist and song-info navigation.
- Improved long-title handling in music lists.
- Improved NES ROM list scrolling and portrait layout bounds.
- Added protection against loading empty or incomplete NES ROM files.
Storage / MTP
- Improved MTP storage-space safeguards.
- Improved MTP responder write-error handling so failed copies are easier to diagnose.
Hardware / Documentation
- Documented optional DW9714 focus actuator support and I2C address
0x0C. - Documented optional DRV2605 haptic feedback support.
- Updated hardware support lists and pin maps.
Notes
- DRV2605 is optional hardware and only works on boards fitted with the haptic driver.
- DW9714 focus support only applies to camera modules with the focus actuator populated.
- NES ROM files are still user-provided and are not bundled in the default image.
NRF9151 and NRF52840 Firmware
- Version v0.2.5 does not include firmware updates for the nRF9151 and nRF52840; if you need to update the firmware, please go to v0.2.0 to download the nRF9151 and nRF52840 firmware.
release v0.2.4
Highlights
- Added PicoClaw AI chat app.
- Added PicoClaw model profiles, API-key storage, SSH profile provisioning, and
Weixin QR login. - Added persistent XL9555 address probing for keyboard-base hardware variants.
- Added LoRa radio model persistence so the launcher can reuse the last detected
SX1262/LR2021 type and re-probe only when initialization fails. - Improved LoRa RF test profile layout and payload controls.
- Improved I2C Scan with asynchronous scanning and added the extension bus used
by keyboard and sensor hardware. - Updated default hardware F-key actions:
F3: keyboard backlight downF4: keyboard backlight upF7: screenshot
- Moved release iteration notes from README files into dedicated changelog files.
Documentation
- Added
CHANGELOG.MDandCHANGELOG_CN.MD. - Cleaned the top-level README files so they remain stable across releases.
- Updated the launcher app guide with the latest PicoClaw, I2C Scan, screenshot,
and keyboard hotkey behavior.
Notes
- PicoClaw requires network access and an OpenAI-compatible model API key.
- Meshtastic voice/photo transfer is available only between K230 devices using
LR2021 modules. SX1262 devices support basic text mesh messages. - NES ROMs and offline map tiles are not bundled in the default image.
- Hardware-dependent apps check for optional peripherals before enabling related
features.
release v0.2.2
Highlights
- Added and refined the Xiaozhi voice assistant app.
- Improved wake-word, push-to-talk, hardware MIC key, and chat transcript behavior.
- Added a full-screen robot face mode for Xiaozhi voice interaction.
- Improved Xiaozhi audio playback/session handling so long responses can continue correctly.
- Added automatic Xiaozhi session recovery when the background session closes unexpectedly.
- Improved battery and power defaults for first-run images.
- Added optional low-voltage shutdown with a cleaner shutdown animation path.
- Improved nRF52840 UART ownership coordination between Meshtastic BLE and nRF DFU.
- Improved SD-card image generation for clean rebuilds and reboot validation.
- Updated public README and launcher documentation for the current release.
Xiaozhi Voice Assistant
This release includes a Xiaozhi-compatible voice assistant app. The app supports:
- Official 6-digit device binding flow.
- Chat-style conversation view.
- Wake-word entry with the
xiaozhiwake word. - Push-to-talk button.
- Hardware MIC key input.
- Full-screen robot face mode.
- Automatic session reconnect.
- Network fallback handling for Ethernet/Wi-Fi environments.
Xiaozhi is currently treated as a beta feature. It requires network access and a compatible Xiaozhi service. Wake-word listening is active only while the Xiaozhi app is open and owns the microphone.
Power And Battery
- Added first-run charger defaults:
- Charge current:
704 mA - Charge voltage:
4288 mV
- Charge current:
- Set the default battery capacity to
6000 mAh. - Added optional low-voltage shutdown thresholds.
- Improved shutdown behavior so screen and keyboard backlight handling is coordinated during shutdown.
- Improved BOOT0 screen toggle debounce behavior.
Optional battery and charger features are enabled only when the related hardware is detected.
nRF52840 And Meshtastic BLE
- Improved nRF52840 manager behavior.
- Reduced UART contention between Meshtastic BLE and nRF DFU.
- nRF DFU now uses the managed nRF52840 path and restores normal ownership after the update flow.
- Meshtastic remains a beta feature. Text mesh messaging is supported on SX1262 and LR2021 boards; K230-to-K230 voice/photo transfer requires LR2021 modules on both devices.
BSP And Image Generation
- Improved BSP apply behavior so generated rootfs artifacts are refreshed when needed.
- Improved repeatability for clean image builds.
- Improved reboot validation behavior for newly flashed SD-card images.
The validated upstream SDK remains:
https://github.com/kendryte/k230_linux_sdk.git
dev commit 22d02c6b6783a57a3aca7eb3160e313e772cb710
User Content
The default image does not bundle user-provided content:
- NES ROM files should be copied to
/root/nes. - Offline map tiles should be copied to
/root/maps. - Music, videos, screenshots, recordings, and photos are managed through the launcher folders and can be accessed with the MTP app.
Known Limitations
- Xiaozhi, Meshtastic, LoRaWAN, nRF52840 UART DFU, and nRF9151 cellular/GNSS tools are still considered beta-level features.
- HDMI remains a diagnostic/optional path. AMOLED is the default display target.
- Optional hardware features require the corresponding module to be present.
- RTL8723DS Bluetooth requires the BT UART pins to be connected; SDIO covers Wi-Fi only.
Upgrade Notes
For the most reliable result, flash the full sysimage-sdcard.img from this release to the TF card. Fast SSH deployment is useful for launcher iteration, but a full SD-card image is recommended when validating BSP, boot, rootfs, or first-run behavior.
Full Changelog
release v0.2.0
Highlights
- Promoted the tested phone-style LVGL launcher and BSP work to
v0.2.0. - Added camera, gallery, media, terminal, MTP, settings, keyboard, cellular,
LoRa/LoRaWAN, nRF52840 DFU, and Meshtastic beta apps. - Added responsive portrait/landscape layouts and fixed the verified portrait
scroll refresh issue. - Added nRF52840 and nRF9151 managers to reduce UART contention between apps.
- Added Chinese pinyin input, emoji resources, notification sounds, app icons,
and richer mobile-style status indicators. - Added LoRaWAN profile management with CayenneLPP telemetry sources.
- Added Meshtastic beta chat, node list, map, channel sharing, notification,
and K230-to-K230 media transfer experiments.
Input, Keyboard, and Language
- Added multi-language support, covering more applications and button text.
- Added Chinese Pinyin input, supporting input method switching triggered by external keyboards.
- Introduced Pinyin dictionary and emoji resources, supporting basic emoji input.
- TCA8418 keyboard changed to a unified input path prioritizing interrupts.
- Added customizable hotkey settings for F1-F11, supporting screen rotation, brightness, volume, audio output switching, keyboard backlighting, etc.
- Added keyboard backlight brightness control, persistence, and BOOT/INT0 screen on/off linkage.
nRF52840
- Added nRF52840 AT transaction manager, reducing the issue of direct UART preemption between DFU, BLE, and Meshtastic.
- Added nRF52840 DFU application, allowing UART updates from specified firmware packages on the SD card.
- Before DFU update, check the AT firmware version and upgrade package version. Upgrades will be rejected if the firmware versions are the same or incompatible.
- Meshtastic BLE status is integrated into the status bar, distinguishing between AT firmware compatibility, phone connection, and unavailable status.
nRF9151, Cellular, and GNSS
- Added a unified nRF9151 manager to centrally handle AT serial port, SIM/LTE/GNSS/HTTP/MQTT status.
- Cellular applications have been restructured into subpages for Modem Information, GNSS, HTTP, and MQTT.
- Supports reading information such as SIM status, IMEI, firmware version, carrier, registration status, and signal strength.
- Supports basic HTTP GET/POST tests.
- Supports MQTT connection, subscription, publishing, and message display.
- The GNSS page supports NMEA RX counters, TTFF, latitude and longitude, altitude, speed, direction, HDOP/PDOP/VDOP, satellite C/N0 histograms, and star charts.
- Meshtastic maps can use nRF9151 GNSS locations, distinguishing between initial positioning, using the previous positioning, and unfixed satellite positions when not fixed.
Meshtastic Beta
- Added the Meshtastic Beta application, providing a mesh chat interface for direct operation on the K230 side.
- The chat interface supports bubble messages, channel/target display, message notification sounds, node list, and node details.
- Supports official Meshtastic device message sending and receiving tests, supports saving/importing Channel URLs and displaying QR codes.
- Added a map page, supporting offline tiles, zooming, dragging, current location markers, and node location display.
- Added a node detection page, automatic refresh of nearby nodes, and expired node filtering.
- Added ChUtil display and media transmission limit prompts.
- LR2021 devices support K230-to-K230 FLRC voice and photo transmission testing; voice functionality is hidden by default on SX1262.
- Added RF lifecycle coordination for LoRa, LoRaWAN, and Meshtastic; Meshtastic is paused when entering the test application and resumed upon exiting by setting it to auto-start.
Fixes and Optimizations
- Fixed the issue of flickering/black blocks in the bottom area when scrolling in portrait mode.
- Fixed issues with album preview path, screenshot preview, landscape photo preview size, and return hierarchy.
- Fixed insufficient camera feedback, JPEG saving, and thumbnail display issues.
- Fixed the contention issue between nRF DFU and Meshtastic for nRF52840 UART.
- Fixed the issue of nRF9151 GNSS not updating NMEA count, not displaying C/N0, and inaccurate positioning status after being managed by the manager.
- Fixed the issues of background state not being cleared after exiting LTE/HTTP/MQTT actions, insufficient button feedback, and page information overload.
- Fixed the issues of overlapping text in landscape mode on the LoRaWAN page, overlapping text wrapping in data source cards, and insufficient feedback in the network access process.
- Fixed the incorrect return path in the settings subpage; now it is a step-by-step return path.
- Fixed several issues with vertical screen layout overflow, including those related to reboot, DFU, NES, Bluetooth, FFT, audio, notifications, charger, and battery.
- Fixed a conflict between automatic screen-off and shutdown animations; the shutdown animation is no longer interrupted by the screen-off timer.
- Fixed an issue where the desktop IP status was displayed incorrectly after switching between Wi-Fi and Ethernet routers.
- Fixed an issue where the status bar still displayed a valid status even when selectable hardware was not available.
Notes
- Meshtastic remains beta.
- Wi-Fi Test, LoRa FLRC, Halow, and low-level probe apps are hidden by default.
- NES ROMs, offline map tiles, and user media are not bundled.
- Optional hardware-dependent features are enabled only when the hardware is detected.
release v0.1.0
Full Changelog: https://github.com/Xinyuan-LilyGO/T-Display-K230/commits/v0.1