Install and have your USB Rubber Ducky working in less than 5 minutes.
-
Clone the repo to get a local copy of the files.
git clone https://github.com/skyblaster/yd-rp2040-ducky.git -
Download CircuitPython for the YD-RP2040. *Updated to 8.0.x
-
Plug the device into a USB port while holding the boot button. It will show up as a removable media device named
RPI-RP2. -
Copy the downloaded
.uf2file to the root of the Pico (RPI-RP2). The device will reboot and after a second or so, it will reconnect asCIRCUITPY. -
Download
adafruit-circuitpython-bundle-8.x-mpy-YYYYMMDD.ziphere and extract it outside the device. -
Navigate to
libin the recently extracted folder and copy theadafruit_hidandasynciofolders to thelibfolder on your YD-RP2040. -
In addition to the above folders, copy
adafruit_debouncer.mpy,adafruit_ticks.mpy, andneopixel.mpyfiles to thelibfolder on your YD-RP2040. -
Copy
boot.pyfrom this repository to the root of your YD-RP2040. -
Copy
duckyinpython.pyascode.pyto the root of your YD-RP2040, overwriting the previous file.
Linux:cp duckyinpython.py </path/to/pico/code.py -
Find a script here or create your own one using Ducky Script and save it as
payload0.txt,payload1.txt,payload2.txt, etc. on the YD-RP2040. -
Rotate the rotary encoder to cycle through the various payloads and then press the USR or encoder button (whichever is defined) to deploy.
If you need the pico-ducky to not show up as a USB mass storage device for stealth, follow these instructions.
Enter setup mode.
Copy your payload script to the pico-ducky.
Disconnect the pico from your host PC.
Connect a jumper wire between pin 18 (GND) and pin 20 (GPIO15).
This will prevent the pico-ducky from showing up as a USB drive when plugged into the target computer.
Remove the jumper and reconnect to your PC to reprogram.
The default mode is USB mass storage enabled.
Copied from Neradoc/Circuitpython_Keyboard_Layouts
Go to the latest release page, look if your language is in the list.
Download the py zip, named circuitpython-keyboard-layouts-py-XXXXXXXX.zip
NOTE: You can use the mpy version targetting the version of Circuitpython that is on the device, but on Raspberry Pi Pico you don't need it - they only reduce file size and memory use on load, which the pico has plenty of.
Try the online generator, it should get you a zip file with the bundles for yout language
https://www.neradoc.me/layouts/
For a language LANG, copy the following files from the zip's lib folder to the lib directory of the board.
DO NOT modify the adafruit_hid directory. Your files go directly in lib.
DO NOT change the names or extensions of the files. Just pick the right ones.
Replace LANG with the letters for your language of choice.
keyboard_layout_win_LANG.pykeycode_win_LANG.py
Don't forget to get the adafruit_hid library.
This is what it should look like if your language is French for example.
At the start of the file comment out these lines:
from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS as KeyboardLayout
from adafruit_hid.keycode import KeycodeUncomment these lines:
Replace LANG with the letters for your language of choice. The name must match the file (without the py or mpy extension).
from keyboard_layout_win_LANG import KeyboardLayout
from keycode_win_LANG import Keycodefrom keyboard_layout_win_de import KeyboardLayout
from keycode_win_de import KeycodeCopy the files keyboard_layout_win_de.mpy and keycode_win_de.mpy to the /lib folder on the Pico board
adafruit_hid/
keyboard_layout_win_de.mpy
keycode_win_de.mpy
raspberrydeveloper Created a tool to convert a blank RPi Pico to a ducky.
You can find the tool here
pico-ducky tutorial by NetworkChuck
USB Rubber Ducky playlist by Hak5
CircuitPython tutorial on the Raspberry Pi Pico by DroneBot Workshop


