DSTIKE White Ducky S3 – ESP32-S3 Wi-Fi USB Automation Board
Tracked worldwide shipping
Ships daily except Saturday
Estimated delivery 7–14 days
Lost parcel protection
Manage scripts over Wi-Fi. Run keyboard automation over USB.
The DSTIKE White Ducky S3 is a compact ESP32-S3 development board for programmable USB keyboard automation, hands-on learning, workflow demonstrations and authorized security testing.
Built around an ESP32-S3 N16R8 module with 16 MB Flash and 8 MB OPI PSRAM, it combines a USB-A connector, a six-position DIP switch and a front-facing WS2812B RGB status LED. The board comes with a white enclosure and removable USB connector cap for convenient handling and storage.
With the DSTIKE Wi-Fi Payload Manager firmware, you can upload a payload.txt script from a phone or computer, store it on the board and trigger execution from your browser.
Project source code and documentation: White Ducky S3 on GitHub.
Wireless script management
The firmware creates a password-protected local Wi-Fi hotspot after startup. Connect a phone or computer using the following details:
| Default Wi-Fi name | DSTIKE-DUCKY-XXXXXX |
|---|---|
| Default Wi-Fi password | dstike123 |
| Management address | http://192.168.4.1 |
| Interface language | English |
XXXXXX represents the suffix displayed in your device's network name. Enter the password exactly as shown, using lowercase letters.
The browser interface manages one active payload.txt file at a time. It lets you:
- Upload or replace
payload.txt. - View, download or delete the stored script.
- Start execution with the Run Manually button.
- Check storage usage, connected client count and execution status.
The Wi-Fi password controls access to the manager; the current firmware has no separate web login. You can change the hotspot password in the firmware configuration before reflashing.
Persistent onboard script storage
Scripts are stored in the board's Flash using LittleFS and remain available after normal power cycles. Updating a script does not require reflashing the firmware or using a microSD card. PSRAM serves as working memory rather than permanent file storage.
The supplied partition layout allocates approximately 11.94 MiB to LittleFS. The current interpreter supports a maximum of 128 KiB per payload file. Reformatting storage, changing the partition layout or erasing Flash can remove saved scripts.
USB keyboard automation
In USB mode, the board sends keyboard input to the physically connected computer. Wi-Fi provides access to the script manager; USB carries the keyboard actions. The local management page does not require internet access.
Use it to demonstrate text entry, keyboard shortcuts, application launching and repeatable desktop workflows. For example, a Windows script can open Notepad, type Hello from DSTIKE!, pause briefly and open the DSTIKE website in the default browser.
With the current firmware defaults, uploading a script or powering on the board does not automatically execute it. Execution starts when you select Run Manually. Developers can enable execution after upload or at startup by changing the firmware settings.
The management page may temporarily stop responding while a script runs. Wait for execution to finish before using the page again.
Two modes, selected on the board
| DIP switch code | Mode | Purpose |
|---|---|---|
001111 |
UART | Upload firmware to the ESP32-S3. |
110010 |
USB | Run supported DuckyScript scripts as a USB HID keyboard. |
The mode codes are printed on the back of the PCB. Disconnect USB power before changing the switch settings, then reconnect the board. After uploading firmware in UART mode, change to USB mode before running keyboard scripts.
Wi-Fi file uploads replace the script. Full firmware updates use UART mode; wireless firmware OTA is not configured in the supplied firmware layout.
Visible RGB status
The front-facing WS2812B RGB LED is controlled by GPIO21. With the current Wi-Fi manager firmware:
| LED | Meaning |
|---|---|
| Red | Execution has not been triggered since startup or the latest script upload. The LED also returns to red after script deletion or a script-loading failure. |
| Green | Execution has been triggered. The LED stays green during and after execution until a reset condition occurs. |
Green indicates that the board has triggered the script; it does not confirm that every action succeeded on the computer. LED behavior can be customized in your own firmware.
DuckyScript support and development
The project's DuckyScript 3.x core interpreter reads plain-text payload.txt files. Supported commands include text entry, delays, key combinations, variables, conditions, loops and basic functions.
Compatibility is limited to the commands implemented by the installed firmware. Full Hak5 Rubber Ducky hardware compatibility, all DuckyScript 3.0 extensions and compiled inject.bin files are not supported by this workflow.
The board is programmable with Arduino for custom USB HID applications and Wi-Fi-controlled projects.
Project source code and documentation
The White Ducky S3 project is available on GitHub. Visit the repository to download the project files and refer to the included README for hardware connections, Arduino settings, firmware installation and script management instructions.
View the White Ducky S3 project on GitHub
Use the project as a starting point for your own USB keyboard workflows, script experiments and firmware customization. When compiling the supplied project, keep partitions.csv in the same sketch folder as the .ino file.
Hardware at a glance
| Model | DSTIKE White Ducky S3 |
|---|---|
| Module | ESP32-S3 N16R8 |
| Flash / PSRAM | 16 MB Flash / 8 MB OPI PSRAM |
| Enclosure | White enclosure with removable USB connector cap |
| Host connection and power | USB-A |
| Mode selection | Six-position DIP switch: UART / USB |
| Status indicator | WS2812B RGB LED on GPIO21 |
| Script storage | LittleFS in onboard Flash |
| Maximum payload size | 128 KiB with the current firmware |
| Management interface | Local Wi-Fi browser interface, in English |
Getting started
- If firmware installation is needed, download the project from the GitHub repository and follow its README. Set the switch to
001111to upload the firmware in UART mode. - Disconnect the board, set the switch to
110010and reconnect it to your computer. - Connect your phone to
DSTIKE-DUCKY-XXXXXXusing the passworddstike123. - Open
http://192.168.4.1in your browser and upload yourpayload.txtfile. - Prepare the computer and select Run Manually. The status LED changes from red to green when execution is triggered.
Scripts must match the computer's operating system, keyboard layout and application timing. The current firmware uses a US English keyboard layout; use a matching host layout and English input mode so punctuation and symbols are entered correctly. The Notepad demonstration is designed for Windows.
Keep the computer unlocked, and allow enough delay for applications to open. To demonstrate opening a website, keep the computer online while using a phone to manage the board. If your phone reports that the board's hotspot has no internet access, stay connected to use the local management page.
Use only on devices you own or have explicit permission to test.