A wifi-controlled USB Rubber Ducky clone built with Raspberry Pi Pico W Series boards.
- Minimal Setup.
- Simple and clean webpage for type mnemonics.
- Run Button - Run typed mnemonics.
- Upload Button - Upload .txt files which contain mnemonics to run.
- Save Button - Save typed mnemonics on the system.
- Clear Button - Clears the text area.
- Raspberry Pi Pico W
- Raspberry Pi Pico 2 W
1
Raspberry Pi Pico W or Raspberry Pi Pico 2 W Board1
Micro-B USB Cable with data transfer support
- Open Official CircuitPython download link from here.
- Search
Pico W
orPico 2 W
according to the board you have. - Select your board and click on it.
- Download latest stable release CircuitPython
.uf2
file and noted its version.- It is like X.Y.Z.
- Latest stable release is
9.2.8
but it can be changed in future so keep eye on it.
- Copy the
.uf2
file into the respective board.RPI-RP2
forRaspberry Pi Pico W
andRP2350
forRaspberry Pi Pico 2 W
.- When it is copied, then it disconnects automatically and reconnect as
CIRCUITPY
. - Means CircuitPython is successfully flashed in the
Raspberry Pi Pico W
orRaspberry Pi Pico 2 W
board.
- Done! Now,
Raspberry Pi Pico W
orRaspberry Pi Pico 2 W
Board is flashed with CircuitPython.uf2
file.
- Download or Clone the Repository.
- Open the folder.
- Make sure that your
Raspberry Pi Pico W
orRaspberry Pi Pico 2 W
board is connected to your PC/Laptop.
- Make sure that your
- Copy
code.py
in theCIRCUITPY
.- It ask for replacement of
code.py
file, then replace it. - It will overwrite in the
code.py
file.
- It ask for replacement of
- Copy
index.html
in theCIRCUITPY
. - Download latest Adafruit CircuitPython Bundle from here.
- There are 2 variants of libraries :
Bundles
andThe Community Bundle
. - In
Bundles
variant, download latest stable Adafruit CircuitPython Bundle as noted version of.uf2
file. - Latest stable release is
adafruit-circuitpython-bundle-9.x-mpy-20250829.zip
but it can be changed in future so keep eye on it.
- There are 2 variants of libraries :
- Extarct the ZIP file.
- Go to the
lib
folder in the extracted ZIP file. - Copy
adafruit_hid
andadafruit_httpserver
folders in thelib
folder ofCIRCUITPY
.- After 2-3 minutes, an access point is created named
PicoWQuack
whose password ispicowquack
.
- After 2-3 minutes, an access point is created named
- Done! Now,
Raspberry Pi Pico W
orRaspberry Pi Pico 2 W
board is ready to use asPicoWQuack
.
- Connect to that access point.
- When connected successfully, open your browser and type the following IP -
192.168.4.1
. - Hit enter.
- A webpage open like this :

- Type your script and click on
Run
button.- The script executes!
- By clicking
Upload
button, we can load.txt
file and it show in text area and then we can run that script by clicking onRun
button. - By clicking
Save
button, we can save mnemonics in text area on the system in.txt
file. - By clicking
Clear
button, we can clear the text area.
Tip
Start your code with WAIT
so that board get time to initiate.
While using LOOP
use only one command.
- Connect
Raspberry Pi Pico W
orRaspberry Pi Pico 2 W
with a USB cable. - Press and hold the
BOOTSEL
button and connect to the PC/Laptop.- When it connects, then
Raspberry Pi Pico W
orRaspberry Pi Pico 2 W
show as a removable storage device namedRPI-RP2
orRP2350
respectively. - When
RPI-RP2
orRP2350
is showing, then release theBOOTSEL
button.
- When it connects, then
- Copy the
flash_nuke.uf2
file in theRPI-RP2
orRP2350
.- When it is copied, then it disconnects automatically and reconnect as
RPI-RP2
orRP2350
.
- When it is copied, then it disconnects automatically and reconnect as
- CIRCUITPY/
- lib/
adafruit_hid
adafruit_httpserver
code.py
index.html
- lib/
Mnemonics | Description | Example |
---|---|---|
WAIT | It add time in the code. Time is in milliseconds. 1000 ms = 1 second. |
WAIT 1000 |
TYPE | It add text want to type in the code. | TYPE Hello World! |
LOOP | It runs commands for a certain number of times. Synatx is LOOP number-of-times commands |
LOOP 3 TYPE Hello World! EXIT LOOP 4 TAB EXIT LOOP 1 CTRL S EXIT LOOP 1 CTRL SHIFT N EXIT |
INF | It run commans infinitely. Syntax is INF commands |
INF TYPE Hello World! EXIT INF TAB EXIT |
-
- It is used to put the cursor in the next line.
- It is only used with TYPE.
- Example :
TYPE Hello World!-
- If TYPE contain any command and then
-
then it run automatically withoutENTER
key.
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
LEFT
UP
RIGHT
DOWN
TAB
HOME
END
PGUP
PGDN
CAPS
NUM
SCROLL
GUI
ESC
PRTSCR
PAUSE
INSERT
DEL
BKSP
ENTER
CTRL
SHIFT
ALT
`
!
@
#
$
%
^
&
*
(
)
-
=
[
]
\
;
'
,
.
/
SPACE
~
_
+
{
}
|
:
"
<
>
?
0
1
2
3
4
5
6
7
8
9
WAIT 1000
GUI R
WAIT 1000
TYPE notepad
WAIT 1000
ENTER
WAIT 1000
TYPE Hello World!
WAIT 1000
GUI R
WAIT 1000
TYPE cmd
WAIT 1000
CTRL SHIFT ENTER
WAIT 1300
ALT Y
WAIT 1000
CTRL SHIFT N
WAIT 1200
TYPE hello
WAIT 1100
ENTER
WAIT 1000
GUI R
WAIT 1000
TYPE notepad
WAIT 1000
ENTER
WAIT 1000
LOOP 6
TYPE Hello World!-
EXIT