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.
| Item | Description |
|---|---|
| MCU | ESP32-S3R8, Xtensa 32-bit LX7 dual-core processor, up to 240 MHz |
| Display | 2.1-inch touch screen, 480 × 480 resolution, 262K colors |
| Memory | 16 MB Flash, 8 MB PSRAM |
| Wireless | 2.4 GHz Wi-Fi, Bluetooth 5 (BLE) |
| Common interfaces | USB Type-C, UART, I2C, Micro SD card slot |
| Onboard resources | QMI8658 six-axis sensor, RTC, and more |
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:
- Make sure the robot's main battery power is on.
- Check that the USB connection between the top display and the robot host is secure.
- 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.
| Method | Current Use | Notes |
|---|---|---|
| USB | Flashing, debugging, host connection | Recommended as the default development and debugging method |
| Bluetooth 5 (BLE) | Optional wireless communication | Requires custom pairing, data protocol, and display logic |
| 2.4 GHz Wi-Fi | Optional wireless communication | Requires 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:
- Read the build, flashing, and dependency instructions in the
bxi_showrepository. - Set up the development environment according to the framework used by the project, referring to the Waveshare Arduino or ESP-IDF documentation as needed.
- Connect the display to the development host via USB, then compile, flash, and debug through the serial port.
- 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
| Symptom | Possible Cause | Suggested Action |
|---|---|---|
| Screen does not turn on | Main power is off, the display is not powered, the USB connection is loose, or the firmware is not running | Check battery power, display power, and the USB cable; restart the device if needed |
| Screen turns on but data does not update | Host-side data is not being sent, communication is abnormal, or the display program has failed | Check the status of the host-side program; restart the screen if needed |
| Flashing fails | USB cable issue, port in use, driver issue, or abnormal download mode | Try another USB cable or port, close programs using the serial port, and restart the flashing workflow according to the repository instructions |
References
- Display hardware manual: https://docs.waveshare.net/ESP32-S3-Touch-LCD-2.1
- Top display program: (provided by HumansX to system users)
Documentation