Blueprint

Bad USB

A project that aims to create a USB storage drive capable of sending keystrokes while being indistinguishable from a regular USB drive

Created by Rudy Rudy 🚀

Tier 3

8 views

1 follower

zsharpminor zsharpminor requested changes for Bad USB ago

Hi, this is really cool, and I apologize for the conflicting information you've been given so far - but you cannot submit a project just for tickets without the project being built. The not requesting a grant option is intended for users that own all of the parts to make their print work -- we're ideally looking for everyone here at Blueprint to build their projects - that's what the grant is for! Plus, this is such a cool project; I'd love to see it built!! Please re-submit with a grant request and cart screenshots, or fund this project on your own! Thanks! :D

Rudy Rudy 🚀 submitted Bad USB for review ago

Iamalive Iamalive 🚀 requested changes for Bad USB ago

Hey, I saw that you said "Didn't really get an answer as to what I should put as a demo for a design if submitting for tickers, so I just put a video of the pcb in the pcb editor". Does this mean that you just want the tickets? If so just resubmit without asking for funding and note that as a jounral entry!

Rudy Rudy 🚀 submitted Bad USB for review ago

Iamalive Iamalive 🚀 requested changes for Bad USB ago

You have to attach a cart screenshot from the pcb source you are planning on buying this from. Additionally request funding!

Rudy Rudy 🚀 submitted Bad USB for review ago

zsharpminor zsharpminor requested changes for Bad USB ago

Nice project idea! Could you please expand on your README and add a few things - most notably a few images of your schematic, PCB layout, and pcb render? Thanks!

Rudy Rudy 🚀 submitted Bad USB for review ago

Rudy Rudy 🚀 added to the journal ago

Minor Polish + Design Demo

Since submitting tickets for design requires a demo I just added a video of the pcb in the editor for demo.

I also added some minor polish like added a fillet to the edge of the board so it won't cut people :sob:

image

chengyin.yao chengyin.yao 🚀 requested changes for Bad USB ago

Hey Rudy! You forgot to enter the grant amount and cart screenshots! And can you round the corners or smt to polish the project a bit more </3

Rudy Rudy 🚀 submitted Bad USB for review ago

Rudy Rudy 🚀 added to the journal ago

Finished PCB

Changed the board dimensions a bit cause of the new big 10x10 MCU,I ended up with a 15mm wide boards which I have no idea if its going to fit inside the cruzer case or not.

Fanning out the SDIO pins was pretty awful and the SDIO pinout on my STM32 MCU also did not help, I ended up having to have the EMMC data traces on two layers. I went with a 4 layer board for solid reference planes for my data traces. The stackup was SIG/GND/PWR/SIG.

This was my chopped fanout for the emmc chip
image
image

Here's what the final PCB looks like
imageimage

This is what my final PCB looked like (zones turned off)
image

as you can see I clearly didn't bother with any length tuning for the EMMC lines as it's pretty pointless for this project as the MCU speed is just not that fast enough for any skews to happen.

I also ended up switched from 0402s to 0201s as previously mentioed. 0402s were just not going to fit in my board properly.

Rudy Rudy 🚀 added to the journal ago

We are so back

After a shit ton of more research I found a good alternative for the MCU. The new MCU is the STM32F405RGT6 its a 10x10 LQFP package. It's a bit bigger but atleast it's got all the SDIO pins available, as a bonus it's also a whole lot cheaper, its only around ~$4/p.

And after finalizing the MCU I speed ran the schematics in under an hour
image

Moving on the PCB, this was a bit difficult because I wanted to keep the cost as low as possible so no via in pad or small vias. This was problematic because of the fine pitched BGA package of the flash. Luckily the flash has a lot of NC pins which after some searching I found were safe to route wires through. This was a life saver and helped me fanout the SDIO.
image

Rudy Rudy 🚀 added to the journal ago

It's so over (kinda)

I was pretty much locked in for the entirety of yesterday and started to work on my schematics and PCB.
It's been a while since I've worked with a STM32 MCU, so figuring that part took an embarrassingly long time for me ☠️. The EMMC chip wiring was very straightforward as I only need to add decoupling capacitors for its power pins and that was it.
After figuring out how to wire up the MCU I pretty much finished the schematics (only the SDIO interface was pending)

Screenshot 2025-11-25 190955

After getting all the passives in I went over to the PCB editor to just see the componenet layout and how everything would come together.

Screenshot 2025-11-25 190945

It's not hard to notice that making this on a single sided board is practically impossible while keeping the size small, So I've decided to place my MCU and EMMC on top layer and then most of the passives at the bottom. I'm currently using 0402s for my passives but I think they're too big and I will most likely switch over to 0201s later.

It's Over!?

After doing the PCB layout I came back to the schematic editor to wire up the EMMC data lines and then I realized something. The STM32 MCU (in the 48QFN package) does not have the pins for EMMC 💀. I pretty much skimmed over the datasheet at the start and did not bother to read the dedicated pinout section to see if my package actually had all the SDIO pins, which was a big mistake. But I don't think it should be that hard to fix, I will most likely have to move over to a bigger package size, maybe 10x10. This is a bit problematic as 10x10 is borderlining that max size I can have for my board while fitting it inside a sandisk cruzer shell.

Rudy Rudy 🚀 added to the journal ago

Inital Research and Planning

Preface

The goal for this project is to make a rubber ducky that straight up looks like a normal USB drive and even shows up as a mass storage drive.
The plan is to take an existing sandisk USB case and fit a custom PCB inside it making it look like an actual genuine USB drive.
I had a sandisk cruzer lying around, so I decided to take it apart and look inside. What I found was basically a NAND chip with everything (include the USB PCB connector) inside it. The entire USB drive was basically empty inside and there was just a 11x16mm ish chip. The goal is to basically create something small enough that it can fit inside the cruzer case.

Research

For this project all I really need are 3 components-
1) EMMC (for the storage)
2) MCU (for interfacing with USB and EMMC)
3) LDO (for converting 5v into something safe for the chips)

The MCU is basically acting like a bridge between the emmc and host, and it will enumerate itself as a mass storage device while also acting like a HID device.
Finding small sized parts here was the most challenging part, I had to dive deep to find small MCU and EMMC chips (that were not too expensive), and here's what I ended up with-

EMMC

most EMMC chips come in a 11.5x13mm bga package which is almost the same size as the chip I found in my sandisk cruzer, I had to do a bit of digging around and I ended up selecting MKEMF016GT1E-C which is a 16GB EMMC by MK, it was pretty cheap at ~$9/piece so it was alright for this project.

MCU

This was a bit hard to decide as finding a small MCU with EMMC and USB interface was kinda hard, I had to do a LOT of research and deep dives (chatgpt helped out a ton, and it also hallucinated a ton) but eventualy I ended up with STM32U575 which I ended up replacing with a cheap STM32 MCU STM32F401CCU6 which is a 7x7 OFN so it was pretty much perfect for this.

LDO

finding a small LDO was kinda tough but not as hard as the MCU, since I'm just stepping down 5V to 3.3V and the 5v is from the USB, efficiency and dropout voltage really didn't matter that much. And in the end I went with MIC5524-3.3YMT-TZ which is a fixed 500ma LDO in a 1x1mm package (tiny!!)

After selecting these I kinda just skimmed over their datasheets and just layed out the components in the PCB editor to get a feel for their size.

image

Rudy Rudy 🚀 started Bad USB ago

11/25/2025 - Inital Research and Planning

Preface

The goal for this project is to make a rubber ducky that straight up looks like a normal USB drive and even shows up as a mass storage drive.
The plan is to take an existing sandisk USB case and fit a custom PCB inside it making it look like an actual genuine USB drive.
I had a sandisk cruzer lying around, so I decided to take it apart and look inside. What I found was basically a NAND chip with everything (include the USB PCB connector) inside it. The entire USB drive was basically empty inside and there was just a 11x16mm ish chip. The goal is to basically create something small enough that it can fit inside the cruzer case.

Research

For this project all I really need are 3 components-
1) EMMC (for the storage)
2) MCU (for interfacing with USB and EMMC)
3) LDO (for converting 5v into something safe for the chips)

The MCU is basically acting like a bridge between the emmc and host, and it will enumerate itself as a mass storage device while also acting like a HID device.
Finding small sized parts here was the most challenging part, I had to dive deep to find small MCU and EMMC chips (that were not too expensive), and here's what I ended up with-

EMMC

most EMMC chips come in a 11.5x13mm bga package which is almost the same size as the chip I found in my sandisk cruzer, I had to do a bit of digging around and I ended up selecting MKEMF016GT1E-C which is a 16GB EMMC by MK, it was pretty cheap at ~$9/piece so it was alright for this project.

MCU

This was a bit hard to decide as finding a small MCU with EMMC and USB interface was kinda hard, I had to do a LOT of research and deep dives (chatgpt helped out a ton, and it also hallucinated a ton) but eventualy I ended up with STM32U575 which I ended up replacing with a cheap STM32 MCU STM32F401CCU6 which is a 7x7 OFN so it was pretty much perfect for this.

LDO

finding a small LDO was kinda tough but not as hard as the MCU, since I'm just stepping down 5V to 3.3V and the 5v is from the USB, efficiency and dropout voltage really didn't matter that much. And in the end I went with MIC5524-3.3YMT-TZ which is a fixed 500ma LDO in a 1x1mm package (tiny!!)

After selecting these I kinda just skimmed over their datasheets and just layed out the components in the PCB editor to get a feel for their size.

image

11/26/2025 - It's so over (kinda)

I was pretty much locked in for the entirety of yesterday and started to work on my schematics and PCB.
It's been a while since I've worked with a STM32 MCU, so figuring that part took an embarrassingly long time for me ☠️. The EMMC chip wiring was very straightforward as I only need to add decoupling capacitors for its power pins and that was it.
After figuring out how to wire up the MCU I pretty much finished the schematics (only the SDIO interface was pending)

Screenshot 2025-11-25 190955

After getting all the passives in I went over to the PCB editor to just see the componenet layout and how everything would come together.

Screenshot 2025-11-25 190945

It's not hard to notice that making this on a single sided board is practically impossible while keeping the size small, So I've decided to place my MCU and EMMC on top layer and then most of the passives at the bottom. I'm currently using 0402s for my passives but I think they're too big and I will most likely switch over to 0201s later.

It's Over!?

After doing the PCB layout I came back to the schematic editor to wire up the EMMC data lines and then I realized something. The STM32 MCU (in the 48QFN package) does not have the pins for EMMC 💀. I pretty much skimmed over the datasheet at the start and did not bother to read the dedicated pinout section to see if my package actually had all the SDIO pins, which was a big mistake. But I don't think it should be that hard to fix, I will most likely have to move over to a bigger package size, maybe 10x10. This is a bit problematic as 10x10 is borderlining that max size I can have for my board while fitting it inside a sandisk cruzer shell.

11/28/2025 - We are so back

After a shit ton of more research I found a good alternative for the MCU. The new MCU is the STM32F405RGT6 its a 10x10 LQFP package. It's a bit bigger but atleast it's got all the SDIO pins available, as a bonus it's also a whole lot cheaper, its only around ~$4/p.

And after finalizing the MCU I speed ran the schematics in under an hour
image

Moving on the PCB, this was a bit difficult because I wanted to keep the cost as low as possible so no via in pad or small vias. This was problematic because of the fine pitched BGA package of the flash. Luckily the flash has a lot of NC pins which after some searching I found were safe to route wires through. This was a life saver and helped me fanout the SDIO.
image

12/4/2025 - Finished PCB

Changed the board dimensions a bit cause of the new big 10x10 MCU,I ended up with a 15mm wide boards which I have no idea if its going to fit inside the cruzer case or not.

Fanning out the SDIO pins was pretty awful and the SDIO pinout on my STM32 MCU also did not help, I ended up having to have the EMMC data traces on two layers. I went with a 4 layer board for solid reference planes for my data traces. The stackup was SIG/GND/PWR/SIG.

This was my chopped fanout for the emmc chip
image
image

Here's what the final PCB looks like
imageimage

This is what my final PCB looked like (zones turned off)
image

as you can see I clearly didn't bother with any length tuning for the EMMC lines as it's pretty pointless for this project as the MCU speed is just not that fast enough for any skews to happen.

I also ended up switched from 0402s to 0201s as previously mentioed. 0402s were just not going to fit in my board properly.

12/9/2025 - Minor Polish + Design Demo

Since submitting tickets for design requires a demo I just added a video of the pcb in the editor for demo.

I also added some minor polish like added a fillet to the edge of the board so it won't cut people :sob:

image