Skip to content

Conversation

@Shadowtrance
Copy link
Contributor

btt-panda-touch size correction and dpi update
wt32-sc01-plus dpi update

btt-panda-touch size correction and dpi update
wt32-sc01-plus dpi update
@coderabbitai
Copy link

coderabbitai bot commented Dec 29, 2025

📝 Walkthrough

Walkthrough

This pull request updates display configuration settings and expands the exported symbol table. Two device property files have their display parameters adjusted: the BTT Panda Touch display size increased from 2.4" to 5" with DPI updated from 139 to 187, and the Wireless Tag WT32-SC01 Plus DPI adjusted from 139 to 165. Additionally, sixteen new LVGL-related symbols are exported to the main ELF symbol table, including event handling functions, object styling functions, display functions, input device functions, group management, memory allocation functions, drawing task functions, and image creation functions.

Pre-merge checks

❌ Failed checks (3 warnings)
Check name Status Explanation Resolution
Title check ⚠️ Warning The title 'Added TactilityC symbols' focuses on symbol additions, but the changeset also includes significant device property updates (display sizes and DPI) that are not reflected in the title. Revise the title to reflect all major changes, such as 'Add TactilityC symbols and update device display properties' to accurately represent the complete scope of changes.
Description check ⚠️ Warning The description mentions device property updates but does not reference the primary change of adding TactilityC symbols, creating a mismatch with the title. Update the description to mention the addition of 16 TactilityC LVGL and memory symbols alongside the device property updates for complete clarity.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3fc2ff8 and 8fe89db.

📒 Files selected for processing (3)
  • Devices/btt-panda-touch/device.properties
  • Devices/wireless-tag-wt32-sc01-plus/device.properties
  • TactilityC/Source/tt_init.cpp
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: NellowTCS
Repo: ByteWelder/Tactility PR: 398
File: Boards/LilygoTdisplayS3/Source/devices/Display.cpp:183-199
Timestamp: 2025-10-28T05:42:03.394Z
Learning: The LilyGo T-Display S3 board (Boards/LilygoTdisplayS3) requires a non-standard LVGL flush pattern in its ST7789 i8080 display driver. In st7789_send_color_cb, lv_display_flush_ready() must be called immediately after esp_lcd_panel_io_tx_color() with a vTaskDelay(1), rather than using standard DMA completion callbacks via esp_lcd_panel_io_register_event_callbacks. Standard DMA callback approaches cause display corruption on this specific board. This pattern was tested against multiple alternatives (callback registration, buffer tuning, clock reduction) and is the only stable solution for T-Display S3 hardware.
📚 Learning: 2025-10-28T05:42:03.394Z
Learnt from: NellowTCS
Repo: ByteWelder/Tactility PR: 398
File: Boards/LilygoTdisplayS3/Source/devices/Display.cpp:183-199
Timestamp: 2025-10-28T05:42:03.394Z
Learning: The LilyGo T-Display S3 board (Boards/LilygoTdisplayS3) requires a non-standard LVGL flush pattern in its ST7789 i8080 display driver. In st7789_send_color_cb, lv_display_flush_ready() must be called immediately after esp_lcd_panel_io_tx_color() with a vTaskDelay(1), rather than using standard DMA completion callbacks via esp_lcd_panel_io_register_event_callbacks. Standard DMA callback approaches cause display corruption on this specific board. This pattern was tested against multiple alternatives (callback registration, buffer tuning, clock reduction) and is the only stable solution for T-Display S3 hardware.

Applied to files:

  • Devices/wireless-tag-wt32-sc01-plus/device.properties
  • Devices/btt-panda-touch/device.properties
📚 Learning: 2025-10-26T12:40:47.243Z
Learnt from: KenVanHoeylandt
Repo: ByteWelder/Tactility PR: 391
File: Boards/ElecrowCrowpanelAdvance28/Source/devices/Display.cpp:37-43
Timestamp: 2025-10-26T12:40:47.243Z
Learning: The Tactility project uses 80 MHz SPI pixel clock frequency for ST7789 displays, which has been tested and confirmed to work stably on all supported devices (CYD variants, Elecrow CrowPanel, LilyGo, M5Stack, Waveshare boards).

Applied to files:

  • Devices/btt-panda-touch/device.properties
📚 Learning: 2025-10-28T19:44:35.263Z
Learnt from: NellowTCS
Repo: ByteWelder/Tactility PR: 398
File: Drivers/ST7789-i8080/Source/St7789i8080Display.cpp:326-329
Timestamp: 2025-10-28T19:44:35.263Z
Learning: In the LilyGo T-Display S3 ST7789 i8080 display driver (Drivers/ST7789-i8080/Source/St7789i8080Display.cpp), both callback registrations are required: setting on_color_trans_done during panel IO creation in configurePanelIO() and calling esp_lcd_panel_io_register_event_callbacks() in initializeLvgl() after the LVGL display is created. This dual registration is intentional and necessary for proper operation on this hardware.

Applied to files:

  • Devices/btt-panda-touch/device.properties
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: BuildSdk (generic-esp32, esp32)
  • GitHub Check: BuildSdk (generic-esp32c6, esp32c6)
  • GitHub Check: BuildSdk (generic-esp32s3, esp32s3)
  • GitHub Check: BuildSdk (generic-esp32p4, esp32p4)
  • GitHub Check: macOS
  • GitHub Check: Linux
  • GitHub Check: run
🔇 Additional comments (8)
Devices/btt-panda-touch/device.properties (1)

14-16: Display specifications verified as accurate.

The BTT Panda Touch officially features a 5" IPS display with 800 × 480 resolution, which calculates to approximately 187 DPI. Both the size and DPI values in the device properties are correct per BigTreeTech official specifications.

Devices/wireless-tag-wt32-sc01-plus/device.properties (1)

17-17: DPI value is correct per hardware specifications.

The value of 165 DPI matches the official Wireless Tag WT32-SC01 Plus hardware specifications (480×320 pixels on 3.5-inch display ≈ 165 DPI).

TactilityC/Source/tt_init.cpp (6)

464-467: All four LVGL outline style functions exist in the LVGL API and are correctly exported:

  • lv_obj_set_style_outline_color
  • lv_obj_set_style_outline_width
  • lv_obj_set_style_outline_pad
  • lv_obj_set_style_outline_opa

These are documented in the official LVGL Styles documentation and follow the standard lv_obj_set_style_* naming convention.


572-572: The symbol lv_display_dpx is a legitimate LVGL API that converts density-independent pixels to physical pixels based on display DPI—directly supporting the DPI configurations present across 36 device.properties files in this project. The export is correctly placed.


628-632: Symbols are confirmed as valid LVGL API exports; this is intentional design for dynamic modules.

These symbols are legitimate LVGL functions documented in the lv_mem.h API:

  • lv_malloc / lv_free are standard LVGL memory allocation wrappers
  • lv_group_remove_obj is a standard LVGL group management function

The explicit // lv_mem section comment and consistent use of ESP_ELFSYM_EXPORT throughout the file confirm this is intentional architecture for exposing LVGL APIs to dynamically loaded modules. No issues identified.


463-463: lv_obj_send_event is a valid LVGL API function.

Verification confirms that lv_obj_send_event is a documented LVGL function (signature: lv_result_t lv_obj_send_event(lv_obj_t *obj, lv_event_code_t event_code, void *param)) used to manually trigger events on objects. The export at line 463 is correct and the symbol exists in the LVGL version used by this project.


365-365: No action required. lv_event_get_draw_task is a valid LVGL 8 function that returns the draw task from an event context, properly documented in the LVGL API and correctly exported.


633-640: All LVGL symbols are confirmed to exist and are properly documented in the official LVGL API:

  • lv_draw_task_get_draw_dsc, lv_draw_task_get_label_dsc, lv_draw_task_get_fill_dsc are valid draw task accessors
  • lv_image_create and lv_image_set_src are valid image widget functions (LVGL 9+)

The exports in lines 633-640 are correct and no action is needed.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@KenVanHoeylandt KenVanHoeylandt merged commit feaeb11 into ByteWelder:main Dec 29, 2025
47 checks passed
@KenVanHoeylandt
Copy link
Member

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants