2026-06-20 09:18:21 -04:00
2026-06-20 08:56:40 -04:00
2026-06-20 08:54:28 -04:00
2026-06-20 08:54:28 -04:00
2026-06-20 09:18:21 -04:00
2026-06-20 08:54:28 -04:00
2026-06-20 08:54:28 -04:00
2026-06-20 08:54:28 -04:00

Pico Rubber Ducky

🦆 Introduction

This is a USB Rubber Ducky project made with the Raspberry Pi Pico! It types commands and chords (keypresses that activate stuff, like Ctrl+Alt+T) at superhuman speeds, allowing you to execute keypresses really fast.

This project uses the C programming language, the Pico SDK, gcc, cmake, and make. Development has been tested on Debian Trixie only and its successful development or usage on Windows is not guaranteed.

It was tested on the RP2040 version of the Pico W. Due to not using any Pico-W exclusive features, it will very likely work on the original Pico.

🛠️ Usage

On Debian, run:

sudo apt update
sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential libstdc++-arm-none-eabi-newlib

Clone the repository:

git clone <your-repo-url>
cd pico_rubber_ducky

Get the Pico SDK.

  • If you have it, set an environment variable pointing to it:
    export PICO_SDK_PATH=/path/to/their/pico-sdk
    
  • If not, clone it to the project folder:
    git clone -b master https://github.com/raspberrypi/pico-sdk.git
    cd pico-sdk
    git submodule update --init
    cd ..
    export PICO_SDK_PATH=$(pwd)/pico-sdk
    

Build the dependencies and environment:

cmake .

Build the .uf2 file:

make

Now you can plug a Raspberry Pi Pico/Pico W on BOOTSEL mode and drag the finished .uf2 file into it.

Tip

If you don't want my test chord and string running, IMMEDIATELY unplug the raspberry pi once it has finished transferring.

🎁 Customization

Open main.c and go to line 168, where you can see several test functions. These are the chords and strings to be executed.

To execute a chord: type_chord("ctrl+alt+t");

To execute a string: type_string("hello!");

🏅 Credits

P7MJ original.

Warning

I do not endorse using this for malicious purposes! This is a test project ONLY.

Description
No description provided
Readme 3.8 MiB
Languages
C 60.5%
CMake 39.5%