A PlatformIO-based ESP32 application that demonstrates the Kublet display system with WiFi connectivity, OTA updates, and graphics rendering.
This project displays "hello" on a TFT screen using the KGFX graphics library. It includes built-in support for:
- WiFi connectivity
- Over-the-air (OTA) firmware updates
- TFT display graphics rendering
- ESP32 development board (esp32dev)
- Compatible TFT display (configured for TFT_eSPI)
- PlatformIO (IDE or CLI)
- Python 3 (for PlatformIO)
-
Clone this repository:
git clone <repository-url> cd hello
-
Install dependencies (automatic with first build):
pio run
pio runpio run --target uploadpio device monitorSerial baud rate: 460800
pio run --target upload && pio device monitorpio run --target cleanpio pkg updatepio pkg listhello/
├── platformio.ini # PlatformIO configuration
├── src/
│ └── main.cpp # Main application code
├── .pio/ # Build artifacts (generated)
└── CLAUDE.md # Claude Code instructions
- TFT_eSPI (v2.5.0) - Low-level TFT display driver
- KGFX (v0.0.14) - Graphics abstraction layer for Kublet
- OTAServer (v1.0.4) - WiFi and OTA update management
Manages WiFi connectivity and firmware updates. Critical calls that should not be modified:
otaserver.connectWiFi()- Initializes WiFi connectionotaserver.run()- Starts OTA serverotaserver.handle()- Handles OTA requests (called in loop)
Graphics library that simplifies TFT display operations:
ui.init()- Initialize the displayui.clear()- Clear the screenui.drawText(text, font, color, x, y)- Draw text at position
The serial communication baud rate is set to 460800. This is configured in:
platformio.ini(monitor_speed = 460800)src/main.cpp(Serial.begin(460800))
TFT display settings are managed by the TFT_eSPI library configuration, typically in User_Setup.h or via build flags in platformio.ini.
- Configure your WiFi credentials (check OTAServer library documentation)
- Build and upload the firmware
- The display will show "hello" in yellow text
- Monitor serial output to see startup and connection status
- Ensure the correct USB port is selected
- Check that the ESP32 is in bootloader mode if upload fails
- Verify USB cable supports data transfer (not charge-only)
- Check TFT_eSPI configuration matches your hardware
- Verify display connections (SPI pins)
- Review serial output for initialization errors
- Verify WiFi credentials are configured correctly
- Check network connectivity
- Ensure firewall allows OTA connections
When modifying the code, please preserve the OTAServer initialization and handling calls marked with "DO NOT EDIT" comments. These are essential for the Kublet OTA system.
[Add your license information here]