Example for ESP32-S3-BOX (docs), ESP32-S3-BOX-3(mouser), and LilyGo T-Deck which receives an MJPEG camera stream from the camera-streamer app over WiFi and displays them on the screen.
To facilitate discovery, this sample uses mDNS to find the camera-streamer app
(or any RTSP server that advertises itself as _rtsp._tcp.local
).
Table of Contents
rtsp_client_server_compressed.mp4
You must first program your hardware. Afterwards, you can configure it via a USB connection using its built-in CLI.
The ESP32-TimerCam will require one-time programming to function.
Download the release programmer
executable from the latest releases
page for windows
,
macos
, or linux
- depending on which computer you want to use to perform the
one-time programming. There are a few programmers pre-built for either the
ESP-BOX
or the LilyGo T-Deck
.
- Download the programmer
- Unzip it
- Double click the
exe
(if windows), or open a terminal and execute it from the command line./camera-display-<hardware>_programmer_v2.0.0_macos.bin
, where hardware is one ofesp-box
ort-deck
.
To configure it, simply connect it to your computer via USB and open the serial
port in a terminal (e.g. screen
, PuTTY
, etc.) at 115200 baud. Once there,
you can use it as you would any other CLI - and the help
command will provide
info about the commands available.
Any SSID/Password you set will be securely saved in the board's NVS, which is managed by the ESP-IDF WiFi subsystem.
sta> help
Commands available:
- help
This help message
- exit
Quit the session
- log <verbosity>
Set the log verbosity for the wifi sta.
- connect
Connect to a WiFi network with the given SSID and password.
- connect <ssid> <password>
Connect to a WiFi network with the given SSID and password.
- disconnect
Disconnect from the current WiFi network.
- ssid
Get the current SSID (Service Set Identifier) of the WiFi connection.
- rssi
Get the current RSSI (Received Signal Strength Indicator) of the WiFi connection.
- ip
Get the current IP address of the WiFi connection.
- connected
Check if the WiFi is connected.
- mac
Get the current MAC address of the WiFi connection.
- bssid
Get the current BSSID (MAC addressof the access point) of the WiFi connection.
- channel
Get the current WiFi channel of the connection.
- config
Get the current WiFi configuration.
- scan <int>
Scan for available WiFi networks.
- memory
Display minimum free memory.
- stats
Display RTSP client statistics.
If you wish to modify / recompile the code, you will need to set up your development environment to be able to build and flash your target hardware.
This project is an ESP-IDF project, currently ESP-IDF v.5.4.
For information about setting up ESP-IDF v5.4
, please see the official
ESP-IDF getting started
documentation.
Build the project and flash it to the board, then run monitor tool to view serial output:
idf.py -p PORT flash monitor
(Replace PORT with the name of the serial port to use.)
(To exit the serial monitor, type Ctrl-]
.)
See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects.
This sample is designed to run on the ESP32-S3-BOX, ESP32-S3-BOX-3, and LilyGo T-Deck all of which have a 320x240 LCD (over SPI) running on a ESP32-S3.
This sample has two main tasks:
- RTSP client that receives mjpeg frames split into RTP packets, turns them back into JPEG images, and pushes them into a queue.
- Display task, which pulls image data from the queue, decodes the jpeg, and displays it on the screen.
It is built with these libraries: