This software helps your ESP32 hardware communicate over a network. It replaces standard built-in networking tools with a faster, more efficient system. You get faster data speeds and better reliability for your Internet of Things projects. It works with common networking protocols so you can use existing code without making changes.
Most hardware uses a standard system called lwIP to handle data. While this works well for many tasks, it can consume significant device memory and process data slowly. This software uses smoltcp. This system focuses on speed and memory efficiency. It reaches speeds of 91 Mbit/s on supported hardware like the ESP32-P4. You gain speed while keeping all your existing functions intact.
Your setup needs these components to function correctly:
- Windows 10 or Windows 11.
- An ESP32 or ESP32-P4 development board.
- A stable USB cable to connect your board to your computer.
- The ESP-IDF framework environment installed on your machine.
- A basic understanding of how to flash firmware to your hardware.
You must visit the official release page to get the files.
Click here to visit the download page
On this page, you see a list of available files. Select the version that matches your hardware project requirements. Most users download the latest version provided at the very top of the list. Save the file to a folder you can find on your computer.
- Open your terminal or your ESP-IDF command prompt.
- Navigate to your project folder where you keep your active code.
- Replace the existing networking component with the files you downloaded from the link above.
- Update your project configuration file to point to the new smoltcp directory.
- Save your changes to the configuration file.
The software uses a configuration system to handle network traffic. You can adjust these settings to match your specific project needs. Open the configuration menu by running the setup command in your terminal. Look for the network settings tab within this menu.
You can toggle options such as:
- TCP window size: This controls how much data your device handles at once.
- Buffer allocation: This setting manages memory usage during data transmission.
- Debugging logs: Enable these logs if you run into connection issues.
After you select your settings, save the file and exit the configuration menu.
Connect your ESP32 board to your computer using the USB cable. Ensure your board shows up in your device manager correctly.
- Run the build command in your terminal to compile the project with the new smoltcp settings.
- Once the build finishes, run the flash command to send the data to your hardware.
- Monitor your terminal screen for confirmation messages.
- When the process shows 100 percent, the software is active on your device.
After you flash the software, your device should initiate a network connection. Observe the blinking LEDs on your board or check the serial monitor on your screen. You should see messages indicating that the IP stack is active. Try to send a ping command from your computer to your ESP32 IP address. If the device returns a response, your setup is complete.
If the device fails to connect, follow these troubleshooting steps:
- Check your USB cable connection. A loose cable often causes communication failures.
- Verify your WiFi credentials in the configuration file. Incorrect passwords prevent the device from joining the network.
- Ensure you have enough power supplied to the board. Some boards require high power when the wireless radio activates.
- Confirm that your router allows new connections. Some home networks have security settings that block unknown hardware.
- Review your serial port settings in the terminal. Ensure you use the correct baud rate for your specific device model.
To get the most speed from your configuration, try these adjustments:
- Keep your code clean by removing unused networking features.
- Use static IP addresses instead of dynamic ones to save time during the initial connection phase.
- Optimize the buffer size to match your specific data throughput needs. Larger buffers perform better for high-speed data transfers but consume more device memory.
- Monitor your resource usage after making changes to ensure the device remains stable under load.
This software remains compatible with existing code structures such as esp_http_server, esp_tls, and esp_mqtt. This means you do not need to rewrite your application logic to gain higher network speeds. The software acts as a drop-in replacement for the standard tools. If your project uses standard BSD sockets, you can swap them for this implementation without any adjustments to your function calls.
If you find ways to improve the code, you can submit your improvements through the standard repository tools. Please include a clear description of the change you propose and how it impacts project performance. Other users benefit from your findings and testing results.
This software is provided for your use in both personal and commercial projects. Review the documentation included in the source files for specific details regarding terms of use. The project relies on open-source principles to foster innovation and improvement across the embedded ecosystem. If you use this software in your own published work, acknowledge the source to support the community.