Blueprint

SuckyDucky

**Suckyducky** is a modular, programmable USB device inspired by the classic Rubber Ducky. True to its name, it’s small, unassuming, and “sucks” in attention with its clever automation capabilities. Designed for ethical research, accessibility testing, and personal automation, Suckyducky is built to be safe, auditable, and highly customizable.

Created by Amal Amal 🚀

252 views

1 follower

NullByte NullByte gave kudos to SuckyDucky ago

not the ai lmfao

Aarav J Aarav J ⚡🚀 gave kudos to SuckyDucky ago

holy AI 😭 - My goal was to think like an engineer — not just a coder. - whise words 🙏

Launch Launch gave kudos to SuckyDucky ago

are we fr bro 😭 the ai in the readme too

ContinentalDrip ContinentalDrip gave kudos to SuckyDucky ago

You didn't had to use AI for the journals bro 😭🙏

kwanyeung.chow1 kwanyeung.chow1 🚀 gave kudos to SuckyDucky ago

what is this ai journal

Amal Amal 🚀 added to the journal ago

Suckyducky — Learning & Exploration Journal

Suckyducky — Learning & Exploration Journal

Days: 1–3

Total Time Logged: ~20 hours

Phase: Research, Understanding, and Setup

Status: Still figuring things out, hands-on work starts tomorrow 🚀


🧠 Day 1 — Understanding the Core Idea (6 hours)

82b6d4f6-739a-4739-a5cc-865c2dad9a5f.png

Focus: Researching how Rubber Ducky works and understanding microcontroller behavior.

Today was about going back to the roots — what actually is a USB Rubber Ducky, and how can I replicate that logic using open hardware?

I started with the original Hackster guide by Maninderbir Gulshan. I spent most of the time trying to break it down into smaller mental blocks:

  • How the MK20DX128 microcontroller handles USB HID emulation.
  • What it means for a device to “pretend” to be a keyboard.
  • How payloads are stored, parsed, and executed.
  • The firmware logic — reading text-based payloads and converting them to keypresses.

I went through multiple YouTube breakdowns of HID devices and looked into Teensy’s HID libraries. I didn’t write any code yet, but I started noting what will be essential for the “Suckyducky” identity — safety, openness, modularity.

It’s fascinating how simple hardware can be so powerful when paired with creative firmware.

By the end of the day, I was convinced that I’m not just building another clone — I’m building a controlled, transparent, and educational version.

Reflection:

It’s strange how a simple concept — pretending to be a keyboard — opens doors to deep ethical and technical debates. I want Suckyducky to represent the responsible side of curiosity.


🔩 Day 2 — Exploring the Hardware Side (7 hours)

Focus: Components, schematic basics, and KiCad setup.

Today I opened KiCad for the first time for this project. My goal was to get comfortable with:

  • Creating a basic schematic (MCU + USB + LED + switch).
  • Understanding how USB D+ and D− lines connect to the microcontroller.
  • How power regulation and decoupling capacitors work.
  • Identifying each component in the Hackster BOM and mapping it to modern equivalents.

I didn’t draw a full schematic yet, but I practiced placing footprints and running ERC checks.

I also researched 3D printed enclosures, since I want Suckyducky to look professional even in its prototype phase.

Later in the evening, I watched tutorials on how to generate Gerbers and how to simulate trace width for USB signal stability.

This part is challenging — hardware is slower to grasp than code. Still, it’s rewarding when I finally visualize the physical connections in my head.

Reflection:

It feels like I’m finally getting my hands dirty — even if it’s still digital dirt. Hardware design teaches patience; every small wire has meaning.


⚙️ Day 3 — Firmware Concepts & Early Planning (7 hours)

Focus: Firmware logic, payload design, and structure of the code.

I decided to design the firmware architecture before writing any actual code. My goal was to think like an engineer — not just a coder.

Main blocks I designed (on paper and notes):

  1. HID Engine: the part that sends keystrokes.
  2. Payload Loader: reads files from SD or flash memory.
  3. Safety Layer: checks for config switch before execution.
  4. LED & Debug Layer: communicates device state.

I studied how Teensy handles USB keyboard libraries and realized I can reuse that framework for Suckyducky’s base.

Then, I started drafting a simple “Hello World” payload format — something like:

Amal Amal 🚀 started SuckyDucky ago

10/7/2025 - Suckyducky — Learning & Exploration Journal

Suckyducky — Learning & Exploration Journal

Days: 1–3

Total Time Logged: ~20 hours

Phase: Research, Understanding, and Setup

Status: Still figuring things out, hands-on work starts tomorrow 🚀


🧠 Day 1 — Understanding the Core Idea (6 hours)

82b6d4f6-739a-4739-a5cc-865c2dad9a5f.png

Focus: Researching how Rubber Ducky works and understanding microcontroller behavior.

Today was about going back to the roots — what actually is a USB Rubber Ducky, and how can I replicate that logic using open hardware?

I started with the original Hackster guide by Maninderbir Gulshan. I spent most of the time trying to break it down into smaller mental blocks:

  • How the MK20DX128 microcontroller handles USB HID emulation.
  • What it means for a device to “pretend” to be a keyboard.
  • How payloads are stored, parsed, and executed.
  • The firmware logic — reading text-based payloads and converting them to keypresses.

I went through multiple YouTube breakdowns of HID devices and looked into Teensy’s HID libraries. I didn’t write any code yet, but I started noting what will be essential for the “Suckyducky” identity — safety, openness, modularity.

It’s fascinating how simple hardware can be so powerful when paired with creative firmware.

By the end of the day, I was convinced that I’m not just building another clone — I’m building a controlled, transparent, and educational version.

Reflection:

It’s strange how a simple concept — pretending to be a keyboard — opens doors to deep ethical and technical debates. I want Suckyducky to represent the responsible side of curiosity.


🔩 Day 2 — Exploring the Hardware Side (7 hours)

Focus: Components, schematic basics, and KiCad setup.

Today I opened KiCad for the first time for this project. My goal was to get comfortable with:

  • Creating a basic schematic (MCU + USB + LED + switch).
  • Understanding how USB D+ and D− lines connect to the microcontroller.
  • How power regulation and decoupling capacitors work.
  • Identifying each component in the Hackster BOM and mapping it to modern equivalents.

I didn’t draw a full schematic yet, but I practiced placing footprints and running ERC checks.

I also researched 3D printed enclosures, since I want Suckyducky to look professional even in its prototype phase.

Later in the evening, I watched tutorials on how to generate Gerbers and how to simulate trace width for USB signal stability.

This part is challenging — hardware is slower to grasp than code. Still, it’s rewarding when I finally visualize the physical connections in my head.

Reflection:

It feels like I’m finally getting my hands dirty — even if it’s still digital dirt. Hardware design teaches patience; every small wire has meaning.


⚙️ Day 3 — Firmware Concepts & Early Planning (7 hours)

Focus: Firmware logic, payload design, and structure of the code.

I decided to design the firmware architecture before writing any actual code. My goal was to think like an engineer — not just a coder.

Main blocks I designed (on paper and notes):

  1. HID Engine: the part that sends keystrokes.
  2. Payload Loader: reads files from SD or flash memory.
  3. Safety Layer: checks for config switch before execution.
  4. LED & Debug Layer: communicates device state.

I studied how Teensy handles USB keyboard libraries and realized I can reuse that framework for Suckyducky’s base.

Then, I started drafting a simple “Hello World” payload format — something like: