Getting Started
To start using Xedge, you need to upload the firmware onto an ESP32-S3 or an ESP32 with PSRAM (for example, the ESP32 WROVER). You can do this using a flashing tool or programming software. We suggested purchasing the new improved ESP32-S3 if you do not have a suitable ESP32.
We offer two options for the firmware:
Ready-to-use firmware binary files which you can directly upload onto your board.
C source code files which you can compile using the Espressif ESP-IDF toolchain.
Important: We have provided instructions suitable for both the ESP32 and the newer ESP32-S3 chips. Make sure to follow the correct instructions for the chip that you’re using.
Get started as follows:
Firmware Option 1: Use Pre-Compiled Firmware
The firmware binaries can be uploaded using Windows, Mac, and Linux using the command line tool esptool. Refer to the instructions below for details. We will start by showing how to use a graphical installer, which is only compatible with Windows.
Windows Graphical Installer
How to flash the Xedge32 IDE
To upload the Xcode32 firmware to your ESP32 board, begin by downloading the ESPRESSIF Flash Tool and one of:
Unzip the ESPRESSIF Flash Tool archive and the Xedge32-Firmware.zip or Xedge32-S3-Firmware.zip archive.
Connect your ESP32 board to your computer and find the com port used by using the Device Manager.
Start the ESPRESSIF Flash Tool flash_download_tool_3.9.4.exe executable.
When the tool starts, select ChipType ESP32 or ESP32-S3 and click OK.
On the SPIDownload page, set the COM port to the one used by the ESP32 and set Speed to 115200.
Click the ERASE button and wait for it to complete.
Click the 3 dots (…) to browse to the bin files you downloaded.
Select the following binary files and set the address accordingly:
Binary File |
ESP32 Address |
ESP32-S3 Address |
---|---|---|
bootloader.bin |
0x1000 |
0x0 |
partition_table.bin |
0x8000 |
0x8000 |
xedge.bin |
0x10000 |
0x10000 |
Click the three checkboxes to the left of the three bin files to select them.
Do not change any other values.
Click the START button and wait for it to upload the bin files to your ESP32.
When completed, open a terminal emulator such as Putty.
You should see a terminal window with text being printed, as shown in the screenshot below.
When you see LuaShell32 ready being printed, proceed by setting the Wi-Fi credentials as explained below.

In the screenshot above, the firmware tool is shown on the left and a Putty terminal connected to the device is shown on the right.
Potential Issues and Solutions:
On certain boards, you must press the boot button before connecting the USB. Once the USB is plugged in, you can release the button.
If you’re using an ESP32-S3 board equipped with both USB-OTG and USB-UART, you will need to perform flashing using the USB-UART connection. Meanwhile, connect Putty to USB-OTG.
If you do not see the LuaShell32 after connecting Putty, try the following: Configure Putty with the required serial connection parameters so you can quickly click the Open button, then do as follows: Click the ESP32 development board’s reset button, followed by quickly clicking the Open button in Putty.
Linux, Mac, and Windows using the command line tool esptool
The following examples show how to use Linux. The commands are similar for Mac and Windows.
Install the required tool:
sudo apt install python3-pip
pip install esptool
Upload the ESP32 firmware:
wget https://realtimelogic.com/downloads/bas/Xedge32-Firmware.zip
unzip Xedge32-Firmware.zip
python -m esptool --chip esp32 --before default_reset --after hard_reset write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x1000 Xedge32-Firmware/bootloader.bin 0x8000 Xedge32-Firmware/partition-table.bin 0x10000 Xedge32-Firmware/xedge.bin
Upload the ESP32-S3 firmware:
wget https://realtimelogic.com/downloads/bas/Xedge32-S3-Firmware.zip
unzip Xedge32-S3-Firmware.zip
python -m esptool --chip esp32s3 --before default_reset --after hard_reset write_flash --flash_mode dio --flash_size detect --flash_freq 80m 0x0 Xedge32-Firmware/bootloader/bootloader.bin 0x8000 Xedge32-Firmware/partition_table/partition-table.bin 0x10000 Xedge32-Firmware/xedge.bin
Firmware Option 2: Compile The Code
See the GitHub Repository for details.
Set The Wi-Fi Credentials
Once the upload is complete, the ESP32 should reboot and display a LuaShell32 prompt after printing some information. See the Potential Issues and Solutions section above if you do not see the LuaShell32.
In the LuaShell32 prompt, type the following to connect to your Wi-Fi:
esp32.netconnect("wifi", {ssid="your-Wi-Fi-SSID", pwd="password"})
After a second or two, the ESP32 should connect to your network.
Using your web browser, navigate to the IP address printed in the LuaShell32 to access the ESP32.
The next time you turn on your ESP32 device, it will automatically connect to your Wi-Fi network, so there’s no need to reconnect the serial console and use the LuaShell32. Here’s what happens:
IP Address Assignment: The ESP32 gets an IP address from the network’s DHCP (Dynamic Host Configuration Protocol). Usually, your router will assign the same IP address each time the ESP32 reconnects to the network.
Bookmarking the IP Address: You can bookmark this IP address in your web browser. That way, the next time you power on your ESP32, you can simply click the bookmark to connect to it.
Consistent IP Address with DHCP Reservations: If you want to make sure the ESP32 always uses the same IP address, most routers allow you to reserve that IP address specifically for your device using DHCP reservations. This ensures consistent IP address assignment for the ESP32.
Using Let’s Encrypt Plugin - SharkTrust: As an alternative, you can also enable a permanent URL for your ESP32 by activating the Let’s Encrypt plugin called SharkTrust through the Xedge’s configuration menu.
By following these guidelines, you can create a seamless connection experience with your ESP32 device without using a serial connection to discover the IP address assignment.
Next Step
Once Xedge has successfully connected to your network, continue your journey by exploring our guide on how to use Xedge32 .