{"title":"New Arrivals","description":null,"products":[{"product_id":"dstike-wi-fi-auditor-esp32-dual-oled-monitor-with-800mah-battery-3d-printed-case","title":"DSTIKE Wi-Fi Auditor - 2.4 GHz Wi-Fi Security Scanner","description":"\u003cp\u003e\u003cstrong\u003e\u003ciframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/q8FDteEwWQI?si=N4kGoLb3qTf3miwt\" title=\"YouTube video player\"\u003e\u003c\/iframe\u003e\u003c\/strong\u003e\u003cstrong\u003e\u003c\/strong\u003e\u003cstrong\u003eUnderstand the Wi-Fi Around You\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe DSTIKE Wi-Fi Auditor is a portable 2.4 GHz Wi-Fi configuration inspection tool built around the ESP32-WROOM-DA. It combines two 1.3-inch OLED displays, physical navigation controls, an 800mAh rechargeable battery, and a 3D-printed enclosure in one compact device.\u003c\/p\u003e\n\u003cp\u003eBrowse nearby access points on one screen while viewing the selected network’s security configuration on the other. Check advertised authentication methods, encryption settings, and management frame protection information without connecting to the network or entering its password.\u003c\/p\u003e\n\u003cp\u003eDesigned for makers, networking enthusiasts, wireless education, and checking your own router settings.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eTwo Displays, More Useful Information\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe two OLED screens show complementary information:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eLeft display:\u003c\/strong\u003e Nearby access points, signal strength, selection indicator, and configuration rating.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRight display:\u003c\/strong\u003e Detailed information about the selected access point across four pages.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThe four detail pages include:\u003c\/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eAssessment:\u003c\/strong\u003e Configuration rating, reasons, and suggested improvements.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity:\u003c\/strong\u003e Authentication method, unicast and group encryption, Protected Management Frames (PMF), and observed WPS information.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRadio:\u003c\/strong\u003e Access point MAC address (BSSID), channel, signal strength, and recent reception information.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSystem:\u003c\/strong\u003e Access point count, listening status, and device diagnostics.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003e\u003cstrong\u003eWi-Fi Configuration Assessment\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe firmware examines available broadcast information and presents a configuration rating with an explanation.\u003c\/p\u003e\n\u003cp\u003eDepending on the information received, results may include:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHIGH RISK:\u003c\/strong\u003e Open wireless links, WEP, or other weak or missing encryption.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWEAK CONFIG:\u003c\/strong\u003e Legacy WPA or TKIP is allowed.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eBASIC:\u003c\/strong\u003e WPA2-Personal with recognized AES-based encryption.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMIXED MODE:\u003c\/strong\u003e WPA2\/WPA3 transition configuration.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSTRONG CONFIG:\u003c\/strong\u003e Observed settings meet the firmware’s WPA3, encryption, and required-PMF criteria.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eREVIEW:\u003c\/strong\u003e Settings such as enterprise authentication require further evaluation.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eENCRYPTED:\u003c\/strong\u003e OWE encryption is observed, but the access point’s identity is not verified.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eUNKNOWN:\u003c\/strong\u003e Information is incomplete, unsupported, inconsistent, or no longer current.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003ePMF information distinguishes between optional and required protection when available. WPS information indicates whether a WPS advertisement was observed; it does not confirm an exploitable vulnerability.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eSimple Physical Controls\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eBrowse networks and switch between detail pages directly on the device.\u003c\/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eControl\u003c\/th\u003e\n\u003cth\u003eFunction\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eRocker left \/ right\u003c\/td\u003e\n\u003ctd\u003eSelect the previous or next access point\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003ePress the rocker\u003c\/td\u003e\n\u003ctd\u003eCycle through the four detail pages\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDedicated scan button\u003c\/td\u003e\n\u003ctd\u003eStart a new scan\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eBattery-power switch\u003c\/td\u003e\n\u003ctd\u003eEnable or disable battery power to the device\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003eThe firmware scans on startup, then listens for broadcasts to update information for access points already in the list. Press the scan button after moving to another location or when you want to discover new access points.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e800mAh Rechargeable Battery\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe included 800mAh battery allows portable use without a continuous USB connection. A physical switch controls whether the battery supplies power to the device.\u003c\/p\u003e\n\u003cp\u003eThe board integrates a TP4056 charging circuit. Connect a suitable 5V USB power source through the USB-C port to recharge the battery.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRed charging indicator:\u003c\/strong\u003e Charging in progress.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eGreen charging indicator:\u003c\/strong\u003e Charging complete.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eBattery runtime depends on firmware activity, wireless use, and display settings.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e3D-Printed Enclosure\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe included 3D-printed case houses the board and battery while providing access to the displays, controls, and USB-C port.\u003c\/p\u003e\n\u003cp\u003eIts enclosure makes the device easier to handle and use as a portable tool. Visible print layers and minor surface variations are normal characteristics of the 3D-printing process.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eESP32 Development Platform\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003ePowered by an ESP32-WROOM-DA module with 16MB flash memory, the device also provides a platform for custom Arduino projects involving wireless scanning, OLED interfaces, and physical controls.\u003c\/p\u003e\n\u003cp\u003eThe module includes two PCB antennas for antenna diversity. Both serve the 2.4 GHz radio; dual antennas do not mean dual-band Wi-Fi.\u003c\/p\u003e\n\u003cp\u003eCustom functionality depends on the firmware installed.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eTechnical Specifications\u003c\/strong\u003e\u003c\/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eItem\u003c\/th\u003e\n\u003cth\u003eSpecification\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eMain module\u003c\/td\u003e\n\u003ctd\u003eESP32-WROOM-DA\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFlash memory\u003c\/td\u003e\n\u003ctd\u003e16MB\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eWi-Fi inspection band\u003c\/td\u003e\n\u003ctd\u003e2.4 GHz\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAntennas\u003c\/td\u003e\n\u003ctd\u003eTwo PCB antennas integrated into the module\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDisplays\u003c\/td\u003e\n\u003ctd\u003e2 × 1.3-inch SH1106 OLED\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDisplay interface\u003c\/td\u003e\n\u003ctd\u003eI²C\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDisplay addresses\u003c\/td\u003e\n\u003ctd\u003eLeft: 0x3D \/ Right: 0x3C\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eNavigation\u003c\/td\u003e\n\u003ctd\u003eLeft \/ press \/ right rocker\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAdditional control\u003c\/td\u003e\n\u003ctd\u003eDedicated scan button\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eBattery\u003c\/td\u003e\n\u003ctd\u003eIncluded 800mAh rechargeable battery\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eBattery control\u003c\/td\u003e\n\u003ctd\u003ePhysical battery-power switch\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eCharging circuit\u003c\/td\u003e\n\u003ctd\u003eOnboard TP4056\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eCharging connection\u003c\/td\u003e\n\u003ctd\u003eUSB-C, 5V input\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eCharging indicators\u003c\/td\u003e\n\u003ctd\u003eRed: charging \/ Green: fully charged\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eEnclosure\u003c\/td\u003e\n\u003ctd\u003e3D-printed case\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDevelopment environment\u003c\/td\u003e\n\u003ctd\u003eArduino IDE\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e\u003cstrong\u003eIncluded in the Package\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e1 × DSTIKE Wi-Fi Auditor device with dual OLED displays\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e1 × 3D-printed enclosure\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e1 × 800mAh rechargeable battery\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBefore You Buy\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThis device inspects \u003cstrong\u003e2.4 GHz Wi-Fi only\u003c\/strong\u003e. It cannot scan 5 GHz or 6 GHz networks. The current firmware defaults to channels 1–11.\u003c\/p\u003e\n\u003cp\u003eThe current Wi-Fi assessment firmware does not use RTC or microSD recording functions. Scan results are not saved when the device is switched off or a new scan begins.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eConfiguration ratings describe the wireless settings observed by the device, not a guarantee that a network is safe.\u003c\/strong\u003e Scanning cannot establish password strength, verify an access point’s identity, detect every router vulnerability, or determine whether its internet connection is trustworthy.\u003c\/p\u003e","brand":"DSTIKE","offers":[{"title":"Default Title","offer_id":49148200911031,"sku":"DST-WA-WDA","price":59.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0136\/5245\/9584\/files\/ChatGPT_Image_2026_9_11_11_32_06.png?v=1789097672"},{"product_id":"dstike-white-ducky-s3-esp32-s3-wi-fi-usb-automation-board","title":"DSTIKE White Ducky S3 - Wi-Fi-Controlled USB Keyboard Automation Tool","description":"\u003cdiv\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ciframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/0eBDOR8hf7k?si=TMEAdTHd9NO65-fb\" title=\"YouTube video player\"\u003e\u003c\/iframe\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eManage scripts over Wi-Fi. Run keyboard automation over USB.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe \u003cstrong\u003eDSTIKE White Ducky S3\u003c\/strong\u003e is a compact ESP32-S3 development board for programmable USB keyboard automation, hands-on learning, workflow demonstrations and authorized security testing.\u003c\/p\u003e\n\u003cp\u003eBuilt around an \u003cstrong\u003eESP32-S3 N16R8\u003c\/strong\u003e module with \u003cstrong\u003e16 MB Flash and 8 MB OPI PSRAM\u003c\/strong\u003e, it combines a USB-A connector, a six-position DIP switch and a front-facing WS2812B RGB status LED. The board comes with a \u003cstrong\u003ewhite enclosure and removable USB connector cap\u003c\/strong\u003e for convenient handling and storage.\u003c\/p\u003e\n\u003cp\u003eWith the DSTIKE Wi-Fi Payload Manager firmware, you can upload a \u003ccode\u003epayload.txt\u003c\/code\u003e script from a phone or computer, store it on the board and trigger execution from your browser.\u003c\/p\u003e\n\u003cp\u003eProject source code and documentation: \u003ca href=\"https:\/\/github.com\/lspoplove\/WhiteDuckyS3\" rel=\"noopener noreferrer\" target=\"_blank\"\u003eWhite Ducky S3 on GitHub\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWireless script management\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe firmware creates a password-protected local Wi-Fi hotspot after startup. Connect a phone or computer using the following details:\u003c\/p\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eDefault Wi-Fi name\u003c\/th\u003e\n\u003ctd\u003e\u003ccode\u003eDSTIKE-DUCKY-XXXXXX\u003c\/code\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eDefault Wi-Fi password\u003c\/th\u003e\n\u003ctd\u003e\u003ccode\u003edstike123\u003c\/code\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eManagement address\u003c\/th\u003e\n\u003ctd\u003e\u003ccode\u003ehttp:\/\/192.168.4.1\u003c\/code\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eInterface language\u003c\/th\u003e\n\u003ctd\u003eEnglish\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e\u003ccode\u003eXXXXXX\u003c\/code\u003e represents the suffix displayed in your device's network name. Enter the password exactly as shown, using lowercase letters.\u003c\/p\u003e\n\u003cp\u003eThe browser interface manages one active \u003ccode\u003epayload.txt\u003c\/code\u003e file at a time. It lets you:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpload or replace \u003ccode\u003epayload.txt\u003c\/code\u003e.\u003c\/li\u003e\n\u003cli\u003eView, download or delete the stored script.\u003c\/li\u003e\n\u003cli\u003eStart execution with the \u003cstrong\u003eRun Manually\u003c\/strong\u003e button.\u003c\/li\u003e\n\u003cli\u003eCheck storage usage, connected client count and execution status.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThe 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.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003ePersistent onboard script storage\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eScripts 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.\u003c\/p\u003e\n\u003cp\u003eThe supplied partition layout allocates approximately \u003cstrong\u003e11.94 MiB to LittleFS\u003c\/strong\u003e. The current interpreter supports a maximum of \u003cstrong\u003e128 KiB per payload file\u003c\/strong\u003e. Reformatting storage, changing the partition layout or erasing Flash can remove saved scripts.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eUSB keyboard automation\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eIn 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.\u003c\/p\u003e\n\u003cp\u003eUse it to demonstrate text entry, keyboard shortcuts, application launching and repeatable desktop workflows. For example, a Windows script can open Notepad, type \u003cstrong\u003eHello from DSTIKE!\u003c\/strong\u003e, pause briefly and open the DSTIKE website in the default browser.\u003c\/p\u003e\n\u003cp\u003eWith the current firmware defaults, uploading a script or powering on the board does not automatically execute it. Execution starts when you select \u003cstrong\u003eRun Manually\u003c\/strong\u003e. Developers can enable execution after upload or at startup by changing the firmware settings.\u003c\/p\u003e\n\u003cp\u003eThe management page may temporarily stop responding while a script runs. Wait for execution to finish before using the page again.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eTwo modes, selected on the board\u003c\/strong\u003e\u003c\/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth scope=\"col\"\u003eDIP switch code\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eMode\u003c\/th\u003e\n\u003cth scope=\"col\"\u003ePurpose\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e001111\u003c\/code\u003e\u003c\/td\u003e\n\u003ctd\u003eUART\u003c\/td\u003e\n\u003ctd\u003eUpload firmware to the ESP32-S3.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e110010\u003c\/code\u003e\u003c\/td\u003e\n\u003ctd\u003eUSB\u003c\/td\u003e\n\u003ctd\u003eRun supported DuckyScript scripts as a USB HID keyboard.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003eThe 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.\u003c\/p\u003e\n\u003cp\u003eWi-Fi file uploads replace the script. Full firmware updates use UART mode; wireless firmware OTA is not configured in the supplied firmware layout.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eVisible RGB status\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe front-facing \u003cstrong\u003eWS2812B RGB LED is controlled by GPIO21\u003c\/strong\u003e. With the current Wi-Fi manager firmware:\u003c\/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth scope=\"col\"\u003eLED\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eMeaning\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eRed\u003c\/td\u003e\n\u003ctd\u003eExecution 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.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eGreen\u003c\/td\u003e\n\u003ctd\u003eExecution has been triggered. The LED stays green during and after execution until a reset condition occurs.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003eGreen 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.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eDuckyScript support and development\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe project's DuckyScript 3.x core interpreter reads plain-text \u003ccode\u003epayload.txt\u003c\/code\u003e files. Supported commands include text entry, delays, key combinations, variables, conditions, loops and basic functions.\u003c\/p\u003e\n\u003cp\u003eCompatibility is limited to the commands implemented by the installed firmware. Full Hak5 Rubber Ducky hardware compatibility, all DuckyScript 3.0 extensions and compiled \u003ccode\u003einject.bin\u003c\/code\u003e files are not supported by this workflow.\u003c\/p\u003e\n\u003cp\u003eThe board is programmable with Arduino for custom USB HID applications and Wi-Fi-controlled projects.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eProject source code and documentation\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe 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.\u003c\/p\u003e\n\u003cp\u003e\u003ca href=\"https:\/\/github.com\/lspoplove\/WhiteDuckyS3\" rel=\"noopener noreferrer\" target=\"_blank\"\u003e\u003cstrong\u003eView the White Ducky S3 project on GitHub\u003c\/strong\u003e\u003c\/a\u003e\u003c\/p\u003e\n\u003cp\u003eUse the project as a starting point for your own USB keyboard workflows, script experiments and firmware customization. When compiling the supplied project, keep \u003ccode\u003epartitions.csv\u003c\/code\u003e in the same sketch folder as the \u003ccode\u003e.ino\u003c\/code\u003e file.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHardware at a glance\u003c\/strong\u003e\u003c\/p\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eModel\u003c\/th\u003e\n\u003ctd\u003eDSTIKE White Ducky S3\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eModule\u003c\/th\u003e\n\u003ctd\u003eESP32-S3 N16R8\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eFlash \/ PSRAM\u003c\/th\u003e\n\u003ctd\u003e16 MB Flash \/ 8 MB OPI PSRAM\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eEnclosure\u003c\/th\u003e\n\u003ctd\u003eWhite enclosure with removable USB connector cap\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eHost connection and power\u003c\/th\u003e\n\u003ctd\u003eUSB-A\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eMode selection\u003c\/th\u003e\n\u003ctd\u003eSix-position DIP switch: UART \/ USB\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eStatus indicator\u003c\/th\u003e\n\u003ctd\u003eWS2812B RGB LED on GPIO21\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eScript storage\u003c\/th\u003e\n\u003ctd\u003eLittleFS in onboard Flash\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eMaximum payload size\u003c\/th\u003e\n\u003ctd\u003e128 KiB with the current firmware\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eManagement interface\u003c\/th\u003e\n\u003ctd\u003eLocal Wi-Fi browser interface, in English\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e\u003cstrong\u003eGetting started\u003c\/strong\u003e\u003c\/p\u003e\n\u003col\u003e\n\u003cli\u003eIf firmware installation is needed, download the project from the \u003ca href=\"https:\/\/github.com\/lspoplove\/WhiteDuckyS3\" rel=\"noopener noreferrer\" target=\"_blank\"\u003eGitHub repository\u003c\/a\u003e and follow its README. Set the switch to \u003ccode\u003e001111\u003c\/code\u003e to upload the firmware in UART mode.\u003c\/li\u003e\n\u003cli\u003eDisconnect the board, set the switch to \u003ccode\u003e110010\u003c\/code\u003e and reconnect it to your computer.\u003c\/li\u003e\n\u003cli\u003eConnect your phone to \u003ccode\u003eDSTIKE-DUCKY-XXXXXX\u003c\/code\u003e using the password \u003ccode\u003edstike123\u003c\/code\u003e.\u003c\/li\u003e\n\u003cli\u003eOpen \u003ccode\u003ehttp:\/\/192.168.4.1\u003c\/code\u003e in your browser and upload your \u003ccode\u003epayload.txt\u003c\/code\u003e file.\u003c\/li\u003e\n\u003cli\u003ePrepare the computer and select \u003cstrong\u003eRun Manually\u003c\/strong\u003e. The status LED changes from red to green when execution is triggered.\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003eScripts must match the computer's operating system, keyboard layout and application timing. The current firmware uses a \u003cstrong\u003eUS English keyboard layout\u003c\/strong\u003e; use a matching host layout and English input mode so punctuation and symbols are entered correctly. The Notepad demonstration is designed for Windows.\u003c\/p\u003e\n\u003cp\u003eKeep 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.\u003c\/p\u003e\n\u003cp\u003eUse only on devices you own or have explicit permission to test.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"DSTIKE","offers":[{"title":"Default Title","offer_id":49178945093815,"sku":"DST-WDUCKY-S3","price":39.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0136\/5245\/9584\/files\/ChatGPT_Image_2026_9_14_15_52_07.png?v=1789372344"},{"product_id":"dstike-white-ducky-ultra-esp32-s3-usb-automation-with-oled-wi-fi-sd","title":"DSTIKE White Ducky Ultra – ESP32-S3 USB Automation with OLED, Wi-Fi \u0026 SD","description":"\u003cdiv class=\"white-ducky-ultra-description\"\u003e\n\u003csection class=\"white-ducky-ultra-included\"\u003e\n\u003cp\u003e\u003ciframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/1g5mSsth978?si=cw4jr2zbRc3l4iGA\" title=\"YouTube video player\"\u003e\u003c\/iframe\u003e\u003c\/p\u003e\n\u003c\/section\u003e\n\u003cp\u003e\u003cstrong\u003eChoose a script on screen. Manage files over Wi-Fi. Run keyboard automation over USB.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe \u003cstrong\u003eDSTIKE White Ducky Ultra\u003c\/strong\u003e is a portable ESP32-S3 device for programmable USB keyboard automation. It brings together an OLED script browser, SD card storage, a three-way navigation switch and a local Wi-Fi manager in a \u003cstrong\u003ewhite 3D-printed enclosure\u003c\/strong\u003e.\u003c\/p\u003e\n\u003cp\u003eA \u003cstrong\u003ebuilt-in 350 mAh rechargeable battery and onboard charging circuit\u003c\/strong\u003e let you browse scripts and manage files without relying on USB power. When you are ready to run a script, connect the native USB port to your computer and start execution from the device or your browser.\u003c\/p\u003e\n\u003cp\u003eUse it for repeatable desktop workflows, programming education, live demonstrations and authorized security testing.\u003c\/p\u003e\n\u003ch2\u003eYour Scripts, Ready on Screen\u003c\/h2\u003e\n\u003cp\u003eKeep multiple plain-text scripts on an SD card and browse their filenames on the \u003cstrong\u003eSH1106 OLED display\u003c\/strong\u003e. Move the navigation switch left or right to choose a file, press to review the confirmation screen, then press again to run it.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eStore named \u003ccode\u003e.txt\u003c\/code\u003e scripts in the SD card's \u003ccode\u003e\/payloads\/\u003c\/code\u003e folder.\u003c\/li\u003e\n\u003cli\u003eBrowse up to \u003cstrong\u003e256 SD scripts\u003c\/strong\u003e, sorted by filename.\u003c\/li\u003e\n\u003cli\u003eScroll long filenames to identify the selected script.\u003c\/li\u003e\n\u003cli\u003eView execution state and the current script line on the OLED.\u003c\/li\u003e\n\u003cli\u003eHold the center switch during execution to request a stop.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eOnce your scripts are stored, you can select and launch them directly on the device without opening the Wi-Fi manager. USB keyboard output still requires a physical connection to the computer.\u003c\/p\u003e\n\u003ch2\u003eWi-Fi File Management\u003c\/h2\u003e\n\u003cp\u003eConnect a phone or computer to the device's local hotspot and open the English-language manager in a browser. No phone app or internet connection is required.\u003c\/p\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eWi-Fi network\u003c\/th\u003e\n\u003ctd\u003e\u003ccode\u003eDSTIKE-DUCKY-XXXXXX\u003c\/code\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eDefault password\u003c\/th\u003e\n\u003ctd\u003e\u003ccode\u003edstike123\u003c\/code\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eBrowser address\u003c\/th\u003e\n\u003ctd\u003e\u003ccode\u003ehttp:\/\/192.168.4.1\u003c\/code\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003eChoose \u003cstrong\u003eSD card\u003c\/strong\u003e to upload multiple named scripts, or \u003cstrong\u003eOnboard Flash\u003c\/strong\u003e to replace the internal \u003ccode\u003epayload.txt\u003c\/code\u003e. The manager lets you view, download, delete and manually run scripts, refresh the SD file list, check device status and request a stop.\u003c\/p\u003e\n\u003cp\u003eScripts remain stored after normal power cycles. Updating a script does not require reflashing the firmware. Internal Flash also provides a single-script option when no SD card is installed.\u003c\/p\u003e\n\u003cp\u003eDuring execution, status updates and the stop control remain available. File operations and additional runs are blocked until execution ends. Access to the manager uses the hotspot password; there is no separate web login.\u003c\/p\u003e\n\u003ch2\u003eSimple Physical Controls\u003c\/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth scope=\"col\"\u003eAction\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eFunction\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eMove left \/ right\u003c\/td\u003e\n\u003ctd\u003eSelect the previous \/ next script.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003ePress on the file list\u003c\/td\u003e\n\u003ctd\u003eOpen the selected script's confirmation screen.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003ePress again\u003c\/td\u003e\n\u003ctd\u003eStart execution.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eHold on the file list\u003c\/td\u003e\n\u003ctd\u003eOpen Wi-Fi and storage information.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003ePress on the information screen\u003c\/td\u003e\n\u003ctd\u003eRemount the SD card and refresh the file list.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eHold while running\u003c\/td\u003e\n\u003ctd\u003eRequest a stop and release held keys.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003eExecution is manual: powering on, uploading a file, inserting an SD card or selecting a script does not automatically run it.\u003c\/p\u003e\n\u003ch2\u003eVisible Execution Status\u003c\/h2\u003e\n\u003cp\u003eThe front-facing \u003cstrong\u003eWS2812B RGB indicator\u003c\/strong\u003e provides a quick visual cue:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eRed:\u003c\/strong\u003e the startup or ready state, including after a new selection or upload. It also indicates a stopped run or execution error.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eGreen:\u003c\/strong\u003e execution has been triggered. It stays green during execution and after normal completion.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eGreen indicates that execution was triggered. The OLED's \u003cstrong\u003eFinished\u003c\/strong\u003e message means the interpreter completed normally; neither confirms that every action succeeded on the computer.\u003c\/p\u003e\n\u003ch2\u003eSeparate USB Ports for Programming and Execution\u003c\/h2\u003e\n\u003cp\u003eUse the \u003cstrong\u003eUART programming port\u003c\/strong\u003e for firmware uploads and the \u003cstrong\u003enative USB port\u003c\/strong\u003e for USB HID keyboard operation. No DIP-switch mode selection is needed.\u003c\/p\u003e\n\u003cp\u003eWi-Fi manages the device and its files. Keyboard actions travel through the native USB connection. The firmware can be customized using the Arduino IDE.\u003c\/p\u003e\n\u003ch2\u003eHardware and Storage\u003c\/h2\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eModel\u003c\/th\u003e\n\u003ctd\u003eDSTIKE White Ducky Ultra\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eProcessor module\u003c\/th\u003e\n\u003ctd\u003eESP32-S3 N16R8\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eMemory\u003c\/th\u003e\n\u003ctd\u003e16 MB Flash + 8 MB OPI PSRAM\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eDisplay\u003c\/th\u003e\n\u003ctd\u003eSH1106 OLED\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eControls\u003c\/th\u003e\n\u003ctd\u003eThree-way navigation switch: left, press, right\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eEnclosure\u003c\/th\u003e\n\u003ctd\u003eWhite 3D-printed enclosure\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eBattery\u003c\/th\u003e\n\u003ctd\u003eBuilt-in 350 mAh rechargeable battery with onboard charging circuit\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eScript storage\u003c\/th\u003e\n\u003ctd\u003eFAT32 SD card and onboard LittleFS Flash storage\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eMaximum script size\u003c\/th\u003e\n\u003ctd\u003e128 KiB per file with the current firmware\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eInterface language\u003c\/th\u003e\n\u003ctd\u003eEnglish web interface and OLED menus\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003ch2\u003eQuick Start\u003c\/h2\u003e\n\u003cp\u003eThe device arrives fully assembled and tested, with firmware preinstalled. No firmware flashing is required before first use.\u003c\/p\u003e\n\u003col\u003e\n\u003cli\u003ePlace your \u003ccode\u003e.txt\u003c\/code\u003e scripts in \u003ccode\u003e\/payloads\/\u003c\/code\u003e on the included 256 MB SD card (FAT32 format), then insert the card before powering on. Alternatively, upload scripts through the Wi-Fi manager.\u003c\/li\u003e\n\u003cli\u003eConnect the native USB port to your computer using the included USB Type-C data cable.\u003c\/li\u003e\n\u003cli\u003eKeep the computer unlocked and select a US English keyboard layout and English input mode.\u003c\/li\u003e\n\u003cli\u003eChoose a script with the navigation switch, press to confirm, then press again to run. From the web manager, choose \u003cstrong\u003eRun Manually\u003c\/strong\u003e and confirm the prompt.\u003c\/li\u003e\n\u003cli\u003eWatch the OLED, status light and computer for the result. To stop, hold the center switch or select \u003cstrong\u003eStop execution\u003c\/strong\u003e in the browser.\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003eA Windows demonstration can open Notepad, type \u003cstrong\u003eHello from DSTIKE!\u003c\/strong\u003e, pause, and open the DSTIKE website. For website demonstrations, keep the computer online while using a phone to manage the device.\u003c\/p\u003e\n\u003ch2\u003eScript Compatibility\u003c\/h2\u003e\n\u003cp\u003eThe firmware includes a DuckyScript core interpreter supporting text entry, keyboard shortcuts, delays, repeated actions, variables, conditions, loops and basic functions. It uses plain-text \u003ccode\u003e.txt\u003c\/code\u003e files and a \u003cstrong\u003eUS English keyboard layout\u003c\/strong\u003e.\u003c\/p\u003e\n\u003cp\u003eSupport is limited to commands implemented by the installed firmware. Full DuckyScript 3.0 and Hak5 Rubber Ducky hardware compatibility, compiled \u003ccode\u003einject.bin\u003c\/code\u003e files and arbitrary Unicode typing are not provided. Scripts must match the computer's operating system, keyboard layout and application timing. The current firmware has a configurable 10-minute execution limit per run.\u003c\/p\u003e\n\u003cp\u003eStopping prevents further device keystrokes; it does not undo actions already performed on the computer. Use only on devices you own or have explicit permission to test.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch2 id=\"white-ducky-ultra-included-heading\"\u003eWhat's Included\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eWhite Ducky Ultra:\u003c\/strong\u003e Fully assembled and tested.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBattery:\u003c\/strong\u003e Built-in 350 mAh rechargeable battery.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSD card:\u003c\/strong\u003e 256 MB SD card included.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eUSB cable:\u003c\/strong\u003e USB Type-C data cable included.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFirmware:\u003c\/strong\u003e Preinstalled. No firmware flashing is required before first use.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e","brand":"DSTIKE","offers":[{"title":"Default Title","offer_id":49225571598519,"sku":"DST-WDU-S3-BAT","price":59.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0136\/5245\/9584\/files\/ChatGPT_Image_2026_9_23_10_31_48.png?v=1790130765"},{"product_id":"dstike-hackheld-ble-remote-esp32-s3-controller-with-oled-web-setup","title":"DSTIKE HackHeld BLE Remote — ESP32-S3 Controller with OLED \u0026 Web Setup","description":"\u003cdiv class=\"dstike-hackheld-ble-description\" lang=\"en\" style=\"line-height: 1.7; overflow-wrap: anywhere;\"\u003e\n\u003ch2\u003e\u003ciframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/01DN92gGJQs?si=Vau8lPER_ulZYlwz\" title=\"YouTube video player\"\u003e\u003c\/iframe\u003e\u003c\/h2\u003e\n\u003cp\u003e\u003ciframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/0mwy5tJxxcE?si=n1rwyMq6tf_e4XdF\" title=\"YouTube video player\"\u003e\u003c\/iframe\u003e\u003c\/p\u003e\n\u003cp\u003e\u003ciframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/7GmtwMGR91U?si=aTRu2J_0oLwX6Nq2\" title=\"YouTube video player\"\u003e\u003c\/iframe\u003e\u003c\/p\u003e\n\u003cp\u003e\u003ciframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/1RYSgfBENm0?si=AAYg9weACDMtjoYu\" title=\"YouTube video player\"\u003e\u003c\/iframe\u003e\u003c\/p\u003e\n\u003ch2\u003eYour Shortcuts. Six Buttons. One Handheld.\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eDSTIKE HackHeld BLE Remote\u003c\/strong\u003e is an ESP32-S3 handheld platform for configurable Bluetooth Low Energy (BLE) media controls and presentation shortcuts. Its six physical buttons and OLED give your controls a dedicated interface. The BLE Remote firmware project adds three independent profiles and a local web page for changing button assignments.\u003c\/p\u003e\n\u003cdiv style=\"padding: 14px 16px; margin: 20px 0; border: 1px solid #d5dce5; border-radius: 8px; background: #f6f8fb; color: #253041;\"\u003e\n\u003cp style=\"margin: 0;\"\u003e\u003cstrong\u003eDevelopment firmware notice:\u003c\/strong\u003e The linked BLE Remote project is currently published as development source. Full ESP32-S3 build and physical-device validation are not documented as completed. Features below require compatible BLE Remote firmware installed on correctly configured hardware; factory installation is not implied.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ch2\u003eThree Profiles for Everyday Controls\u003c\/h2\u003e\n\u003cp\u003eSelect \u003cstrong\u003ePhone\u003c\/strong\u003e for mobile media controls, or choose \u003cstrong\u003eComputer\u003c\/strong\u003e and then \u003cstrong\u003ePresentation\u003c\/strong\u003e or \u003cstrong\u003eMedia\u003c\/strong\u003e. Each profile has its own six assignments, giving you \u003cstrong\u003e18 independently configurable mappings\u003c\/strong\u003e.\u003c\/p\u003e\n\u003cdiv role=\"region\" style=\"max-width: 100%; overflow-x: auto; margin: 16px 0;\" tabindex=\"0\"\u003e\n\u003ctable style=\"width: 100%; min-width: 530px; border-collapse: collapse; text-align: left;\"\u003e\n\u003ccaption style=\"text-align: left; padding-bottom: 8px; font-weight: 600;\"\u003eDefault button mappings\u003c\/caption\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth scope=\"col\" style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eButton\u003c\/th\u003e\n\u003cth scope=\"col\" style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003ePhone: Media\u003c\/th\u003e\n\u003cth scope=\"col\" style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eComputer: Presentation\u003c\/th\u003e\n\u003cth scope=\"col\" style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eComputer: Media\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\" style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eUp\u003c\/th\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003ePrevious track\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003ePage Up\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eVolume up\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\" style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eDown\u003c\/th\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eNext track\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003ePage Down\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eVolume down\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\" style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eLeft\u003c\/th\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eVolume up\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eHome\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003ePrevious track\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\" style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eRight\u003c\/th\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eVolume down\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eEnd\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eNext track\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\" style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eA\u003c\/th\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003ePlay \/ Pause\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eF5\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003ePlay \/ Pause\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\" style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eB\u003c\/th\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eMute\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eEscape\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eMute\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003cp\u003ePresentation commands depend on the active application. For example, F5 can start a slideshow in software using that shortcut. Change the assignments to match your workflow rather than assuming every presentation app uses the same keys.\u003c\/p\u003e\n\u003ch2\u003eConfigure Your Keys in a Browser\u003c\/h2\u003e\n\u003cp\u003eOnce the firmware is installed and operating, use \u003cstrong\u003eWeb Setup\u003c\/strong\u003e to edit assignments without changing source code or reflashing for each adjustment. The local page needs no companion app, cloud account or home Wi-Fi router.\u003c\/p\u003e\n\u003cp\u003eAssign a media command, a keyboard key with optional \u003cstrong\u003eCtrl, Shift, Alt or Win\/Cmd\u003c\/strong\u003e modifiers, or disable a button. Add a short OLED label using 1–12 printable ASCII characters and optionally enable hold-to-repeat on the four direction buttons.\u003c\/p\u003e\n\u003cp\u003eSave each profile separately, reload settings from the device, or restore one or all profiles to their defaults. Saved mappings are stored on the ESP32 and loaded again after restart.\u003c\/p\u003e\n\u003ch3\u003eHow Web Setup Works\u003c\/h3\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cstrong\u003eOpen setup:\u003c\/strong\u003e Select Web Setup and press A. Connect your phone or computer to \u003ccode\u003eDSTIKE-SETUP-XXXX\u003c\/code\u003e using the new 12-character password shown on the OLED.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eEdit and save:\u003c\/strong\u003e Manually open \u003ccode\u003ehttp:\/\/192.168.4.1\u003c\/code\u003e in your browser. Choose a profile, adjust its buttons, and click \u003cstrong\u003eSave this profile\u003c\/strong\u003e.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReturn to Bluetooth:\u003c\/strong\u003e Click \u003cstrong\u003eExit setup\u003c\/strong\u003e or press B on the handheld, then select Phone or Computer.\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003e\u003cstrong\u003e Wi-Fi is for configuration, not simultaneous remote control. \u003c\/strong\u003e Entering setup disconnects BLE and pauses HID commands. Leaving setup turns Wi-Fi off. The setup hotspot has no Internet access and does not automatically open the configuration page.\u003c\/p\u003e\n\u003ch2\u003eOn-screen Labels and Simple Navigation\u003c\/h2\u003e\n\u003cp\u003eThe OLED interface shows the selected profile, connection state, button labels and last command sent. Up and Down navigate menus; A confirms. Hold \u003cstrong\u003eA + B for 1.2 seconds\u003c\/strong\u003e to return from a control screen.\u003c\/p\u003e\n\u003cp\u003eA and B perform their individual actions on release, preserving the return gesture. Direction-button repeat is optional; the defaults enable it for volume adjustment. A sent-command indication is not confirmation that the receiving application performed the action.\u003c\/p\u003e\n\u003ch2\u003eHandheld Hardware\u003c\/h2\u003e\n\u003cdiv role=\"region\" style=\"max-width: 100%; overflow-x: auto; margin: 16px 0;\" tabindex=\"0\"\u003e\n\u003ctable style=\"width: 100%; border-collapse: collapse; text-align: left;\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\" style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003ePlatform\u003c\/th\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eESP32-S3-based HackHeld32S3\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\" style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eDisplay\u003c\/th\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003e1.3-inch SH1106 OLED, 128 × 64 monochrome\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\" style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eControls\u003c\/th\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eUp, Down, Left, Right, A and B\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\" style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eBattery\u003c\/th\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eBuilt-in 1000mAh rechargeable battery\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\" style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eCharging\u003c\/th\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eUSB-C\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\" style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eIndicator\u003c\/th\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eWS2812B RGB LED\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\" style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eEnclosure\u003c\/th\u003e\n\u003ctd style=\"padding: 10px; border: 1px solid #d5dce5;\"\u003eTransparent handheld case\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003ch2\u003eConnection and Compatibility\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNo dedicated receiver board is required\u003c\/strong\u003e for a host that supports BLE HID keyboard and media-control input. Pair through the host's Bluetooth settings. A computer without suitable Bluetooth hardware requires a compatible Bluetooth adapter.\u003c\/p\u003e\n\u003cp\u003eThe firmware supports \u003cstrong\u003eone connected host at a time\u003c\/strong\u003e. Phone and Computer select layouts, not specific paired devices. Disconnect the previous host when switching if it automatically reconnects.\u003c\/p\u003e\n\u003cp\u003eMedia keys and shortcuts depend on the operating system, Bluetooth support, player and active application; universal compatibility is not guaranteed. \u003cstrong\u003eMute\u003c\/strong\u003e sends a media-mute command, not a phone ringer, Do Not Disturb or microphone toggle.\u003c\/p\u003e\n\u003cp\u003eThis is a command controller, not an audio transmitter. The current firmware does not provide multi-step macros, DuckyScript execution, mouse control or browser-based firmware updates.\u003c\/p\u003e\n\u003ch2\u003eProject Source and Documentation\u003c\/h2\u003e\n\u003cp\u003eThe Arduino project, local configuration-page source and development notes are available on GitHub. Review the hardware pin checks, build settings and verification status before compiling or installing firmware. The current development repository does not supply a ready-to-flash firmware binary.\u003c\/p\u003e\n\u003cp\u003e\u003ca href=\"https:\/\/github.com\/lspoplove\/HackHeld_BLE_Remote\" rel=\"noopener noreferrer\" target=\"_blank\"\u003e \u003cstrong\u003e Explore the HackHeld BLE Remote project on GitHub → \u003c\/strong\u003e \u003c\/a\u003e\u003c\/p\u003e\n\u003ch2\u003eHardware Package\u003c\/h2\u003e\n\u003cp\u003e1 × HackHeld32S3 handheld with built-in battery and enclosure.\u003cbr\u003e1 × USB-C cable.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"DSTIKE","offers":[{"title":"Default Title","offer_id":49275845542071,"sku":null,"price":59.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0136\/5245\/9584\/files\/ChatGPT_2026_9_30_14_40_35.png?v=1790750446"}],"url":"https:\/\/dstike.com\/collections\/new-arrivals.oembed","provider":"DSTIKE","version":"1.0","type":"link"}