WiFi Duck
With the WiFi Duck, you can manage all scripts from a web interface. So unlike other BadUSBs, you don’t need to install an app, log in, compile or copy scripts to an SD card.
You can find the full documentation here at /wifiduck.
- Plug in your WiFi Duck
- Connect to the WiFi network
wifiduck
with the passwordwifiduck
- Open a browser and visit
192.168.4.1
- Write, save and run your first Ducky Script
- [Recommended] Open
Settings
(top right corner) and update SSID and password
Ready-to-Use Hardware
Section titled “Ready-to-Use Hardware”You can buy a WiFi Duck here:
DIY Hardware
Section titled “DIY Hardware”To build a WiFi Duck yourself, you need the following hardware:
- An Atmega32u4 development board (i.e., Pro micro)
- An ESP8266 or ESP8285 development board (i.e., Wemos D1 Mini)
- Optional: A single Neopixel (WS2812b) or Dotstar (APA102) LED
A map of pins that need to be connected:
ESP8266 | Atmega32u4 |
---|---|
D1 alias GPIO 5 | 3 alias SCL |
D2 alias GPIO 4 | 2 alias SDA |
GND | GND |
Ideally, you want the Atmega32u4 to power the ESP8266, so it can run on one USB connection, instead of having to plug in both constantly:
ESP8266 Dev Board | Atmega32u4 |
---|---|
5V or VIN | RAW , 5V or VIN |
To add a Neopixel (WS2812b) LED:
Atmega32u4 | Neopixel LED |
---|---|
7 * | DI alias Data , In |
5V alias VCC | 5V alias VCC |
GND | GND |
To make the DIY process easier, I designed a little PCB:
- Pro Micro + Wemos d1 mini: https://easyeda.com/Spacehuhn/wifi-duck
- Pro Micro + NodeMCU: https://easyeda.com/Spacehuhn/diy-wifi-duck-pro-micro-nodemcu
Software Installation
Section titled “Software Installation”- Download and install the Arduino IDE.
- Start the Arduino IDE, go to
File
>Preferences
. - At Additional Board Manager URLs enter
https://raw.githubusercontent.com/SpacehuhnTech/arduino/main/package_spacehuhn_index.json
. You can add multiple URLs, separating them with commas. - Go to
Tools
>Board
>Board Manager
, search forwifi duck
and installWiFi Duck AVR Boards
andWiFi Duck ESP8266 Boards
. - Download and extract this repository or git clone it.
Flash Atmega32u4
Section titled “Flash Atmega32u4”- Open
atmegaduck/atmega_duck.ino
with the Arduino IDE. - Under
Tools
>Board
in theWiFi Duck AVR
section, select your board; for example,Sparkfun Pro Micro
. - Connect the Atmega32u4 board via USB and select its port under
Tools
>Port
. - Optional: Under
Tools
, you can enable the LED and set its pin. You can also change the USB ID to make it appear as a particular keyboard type. - Press Upload.
Flash ESP8266
Section titled “Flash ESP8266”- Open
esp_duck/esp_duck.ino
with the Arduino IDE. - Under
Tools
>Board
in theWiFi Duck ESP8266
section, select your board. For exampleNodeMCU 1.0 (ESP-12E Module)
. - Connect the ESP8266 board via USB and select its port under
Tools
>Port
. - Press Upload.
Note: After the initial flashing, the ESP8266 has to format its memory, so it might take a minute until it’s fully ready.
If you connected the RGB LED:
- Blue LED = Connection working
- Green LED = Device ready