Posts

Dynamic WiFi Image Gallery run on Waveshare ESP32-S3-Touch-AMOLED-2.16

Image
In my previous post, I demonstrated how to download and display JPG images via WiFi on the Waveshare ESP32-C5-WIFI6-KIT-N16R8 with an 240x320 ST7789 SPI TFT LCD using hardcoded filenames . This new implementation is much more flexible: filenames are now stored in a jpg_list.txt file on the server, allowing the ESP32 to download the images dynamically. I have also successfully tested this setup on the Waveshare ESP32-S3-Touch-AMOLED-2.1 with its 480x480 AMOLED (CO5300 driver) . How it Works The program operates in three distinct phases: WiFi connection: The ESP32-S3 connects to a local WiFi access point and establishes communication with a Python-based HTTP server. Since the WiFi access point is a Windows 11 Mobile Hotspot and the Python-based HTTP server is running on that same PC, we can assume the server IP address is identical to the Access Point (Gateway) IP. Dynamic Manifest Retrieval: First downloads a jpg_list.txt file. Th...

Prepare HelloWorld for Waveshare ESP32-S3-Touch-AMOLED-2.16, in Arduino framework.

Image
Prepare libraries to run HelloWorld on Waveshare ESP32-S3-Touch-AMOLED-2.16 , in Arduino framework. Following the steps in Waveshare docs, ESP32-S3-Touch-AMOLED-2.16 > Working with Arduino Notice: About display resolution: currently, both LCD_WIDTH and LCD_HEIGHT in libraries//Mylibrary/pin_config.h are set 466, have to set it 480 to match the actual resolution. The following exercise define LCD connection in code, so no need to #include "pin_config.h". S3_CO5300_basictest.ino /* Exercise run on ESP32-S3-Touch-AMOLED-2.16 https://coxxect.blogspot.com/2026/05/prepare-helloworld-for-waveshare-esp32.html Remark about "USB CDC On Boot" option for Serial.print() For Waveshare ESP32-S3-Touch-AMOLED-2.16 with a single USB port only, select USB CDC On Boot: "Enabled". Otherwise, you cannot see the output by Serial.print(). */ #include <Arduino.h> #include "Arduino_GFX_Library.h" // === #define LCD_SDIO0 4...

Install Arduino IDE 2.3.8 and ESP32 Arduino Core on Linux Mint 22.3 (Over VirtualBox 7.2.8)

Image
To install the Arduino IDE 2.3.8 on Linux Mint using the AppImage format, tested on Linux Mint 22.3 Xfce over VirtualBox on Windows 11. Step 1: Download the AppImage - Go to the official Arduino Software page . - Look for Arduino IDE 2.3.8 (or the latest version). - Click on the "Linux AppImage 64 bits" link to download the file. - You can move the downloaded file to other folder you want. Step 2: Grant Execution Permission By default, Linux treats downloaded AppImages as non-executable files for security. You must enable execution rights. Option A: Using the Terminal (Recommended) Open your terminal and navigate to the folder contain the downloaded file: chmod +x arduino-ide_2.3.8_Linux_64bit.AppImage Option B: Using the GUI - Right-click the downloaded .AppImage file. - Select Properties. - Go to the Permissions tab. - Check the box that says "Allow executing file as program". Step 3: Configure Serial Port Permissions (dialout) In Linux, your user accou...

VirtualBox how to: automatically capture USB devices for use in a virtual machine

Image
A USB filter in VirtualBox allows you to automatically capture USB devices for use in a virtual machine (VM). This ensures that the device is passed directly to the guest OS when connected, bypassing the host system. Steps to Add a USB Filter 1. Install VirtualBox Extension Pack      Ensure the Extension Pack is installed on the host. It adds support for USB 2.0/3.0. Download and install it from the VirtualBox website . 2. Enable USB Controller in VM Settings      Open VirtualBox and select your VM. Go to Settings > USB. Enable USB 2.0 (EHCI) or USB 3.0 (xHCI) depending on your guest OS support. 3. Create a USB Filter      While the USB device is connected to the host, click Add Filter (+) in the USB settings of your VM. A new filter will be created with details like Vendor ID, Product ID, etc., pre-filled for the connected device. You can edit these fields if needed (e.g., leave fields blank for broader matching). 4....

Downloading and Displaying JPG Images via WiFi on ESP32-C5 with ST7789 SPI TFT LCD

Image
In this exercise, I demonstrate how to download a JPG image over Wi-Fi, decode it using the JPEGDEC library, and display it on a 3.2-inch 240×320 ST7789 TFT LCD (4-wire SPI) . The project uses the Arduino_GFX_Library together with the Waveshare ESP32-C5-WIFI6-KIT-N16R8 , running in the Arduino framework. Connection: 3.2" 240x320 ST7789 TFT LCD Waveshare (4-Wire SPI) ESP32-C5-WIFI6-KIT-N16R8 BL --------------------------- GPIO26 CS --------------------------- GPIO23 DC --------------------------- GPIO24 RES --------------------------- GPIO25 SDA --------------------------- GPIO8 SCL --------------------------- GPIO10 VCC --------------------------- 3V3 GND --------------------------- GND Libraries: Arduino_GFX_Library and  JPEGDEC libraries are needed to be installed in Arduino IDE Library Manager. Basic Test: ESP32C5_ST7789_SPI.ino /* Exercise run on Waveshare ESP32-C5-WIFI6-KIT-N16R8 Work with 3.2" 240x320 ST7789 SP...

3.2" 240x320 ST7789 TFT LCD (4-Wire SPI/8-Bit Parallel/16-Bit Parallel)

Image
3.2" 240x320 ST7789 TFT LCD (4-Wire SPI/8-Bit Parallel/16-Bit Parallel) T320H8-C40-11 Exercise: ~  Downloading and Displaying JPG Images via WiFi on ESP32-C5 with ST7789 SPI TFT LCD

my dev.board: Waveshare ESP32-S3-Touch-AMOLED-2.16

Image
Waveshare ESP32-S3-Touch-AMOLED-2.16 Product Pages: ~ https://docs.waveshare.com/ESP32-S3-Touch-AMOLED-2.16 (English) ~ https://docs.waveshare.net/ESP32-S3-Touch-AMOLED-2.16 (Chinese) ~ https://github.com/waveshareteam/ESP32-S3-Touch-AMOLED-2.16/ Arduino Framework: ~  Prepare HelloWorld for Waveshare ESP32-S3-Touch-AMOLED-2.16, in Arduino framework . ~  Dynamic WiFi Image Gallery run on Waveshare ESP32-S3-Touch-AMOLED-2.16