HumansXDocumentation Center 日本語Website ↗

Top Screen Guide

The BXI Elf3 top display shows basic robot status information. It can also display cute facial expressions to make the robot feel more lively. For secondary development, the screen supports Bluetooth and Wi-Fi communication for wireless data transmission, as well as touch interaction.

Features

The top display can be used for:

  • Robot expressions: Display cute facial expressions to make the robot feel more lively.
  • Data display: Supports Bluetooth and Wi-Fi communication for wireless data transmission.
  • Touch interaction: The screen supports touch input, so custom interactive programs can be developed.

Hardware Platform

The top display is based on the Waveshare ESP32-S3-Touch-LCD-2.1 touch display development board, which is well suited to robot status display and simple interaction.

ItemDescription
MCUESP32-S3R8, Xtensa 32-bit LX7 dual-core processor, up to 240 MHz
Display2.1-inch touch screen, 480 × 480 resolution, 262K colors
Memory16 MB Flash, 8 MB PSRAM
Wireless2.4 GHz Wi-Fi, Bluetooth 5 (BLE)
Common interfacesUSB Type-C, UART, I2C, Micro SD card slot
Onboard resourcesQMI8658 six-axis sensor, RTC, and more
Interface note: Before hardware debugging, refer to the official Waveshare manual for interface usage restrictions. This helps avoid firmware hangs caused by incorrect programs. If the screen firmware hangs and cannot be flashed normally, follow the recovery steps in the official manual to reflash the firmware.

Usage

On the robot, the top display is connected to the robot host with a USB cable. This USB connection can be used for firmware flashing and debugging.

Basic usage:

  1. Make sure the robot's main battery power is on.
  2. Check that the USB connection between the top display and the robot host is secure.
  3. If the display lights up normally, the screen is working.

Communication

The current robot setup uses USB wired communication by default, which is suitable for flashing and debugging. The display hardware also supports Bluetooth 5 (BLE) and 2.4 GHz Wi-Fi, but the wireless link, communication protocol, and host-side data publisher must be developed according to project requirements.

MethodCurrent UseNotes
USBFlashing, debugging, host connectionRecommended as the default development and debugging method
Bluetooth 5 (BLE)Optional wireless communicationRequires custom pairing, data protocol, and display logic
2.4 GHz Wi-FiOptional wireless communicationRequires custom network connection, data protocol, and recovery logic

Secondary Development

The top display program is maintained in the bxi_show repository (provided by HumansX to system users). When modifying displayed content, page layout, backlight behavior, or the communication method, or when reflashing firmware, use the following workflow:

  1. Read the build, flashing, and dependency instructions in the bxi_show repository.
  2. Set up the development environment according to the framework used by the project, referring to the Waveshare Arduino or ESP-IDF documentation as needed.
  3. Connect the display to the development host via USB, then compile, flash, and debug through the serial port.
  4. After flashing, verify that data refresh works while the robot is stationary before starting motion debugging.

Common development tasks include:

  • Developing facial expressions and animations with the LVGL graphics library.
  • Adjusting the layout of voltage, battery level, temperature, and other displayed fields.
  • Adding robot status, network status, or debugging status indicators.
  • Changing brightness, sleep timeout, and wake-up behavior.
  • Extending BLE or Wi-Fi data communication.
  • Adding color, icon, or text warnings for abnormal states.

Debugging Checklist

SymptomPossible CauseSuggested Action
Screen does not turn onMain power is off, the display is not powered, the USB connection is loose, or the firmware is not runningCheck battery power, display power, and the USB cable; restart the device if needed
Screen turns on but data does not updateHost-side data is not being sent, communication is abnormal, or the display program has failedCheck the status of the host-side program; restart the screen if needed
Flashing failsUSB cable issue, port in use, driver issue, or abnormal download modeTry another USB cable or port, close programs using the serial port, and restart the flashing workflow according to the repository instructions

References