Skip to the content
PCBKitNew board
4 layers36.4 × 15 mmOvrdrive, the printed circuit board in 3D

Seemingly normal USB drive with a hidden security feature

Size
36.4 × 15 mm
Copper layers
4
Thickness
0.6 mm
Parts
57
Nets
71
Pads
233
Tracks, vias
362, 128
Pours
8
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
7 Mar 2026
Updated
30 Oct 2026

Overview

Ovrdrive is an open-source printed circuit board by o7-machinehum, from the o7-machinehum/phantomdrive repository on GitHub, published under the MIT licence. It is a 4-layer board of 36.4 × 15 mm with 57 parts on 71 nets, routed with 362 tracks and 128 vias.

It is built around the CH569W, TLV62569DBV and DM3AT-SF-PEJM5, with the TPD2EUSB30DRT, CL05A226MQ5N6J8 and RC0402FR-07100KL among its other parts. Its parts include 28 capacitors, 6 ICs, 5 resistors, 2 connectors and 2 inductors.

Main components

10

README

readme.md

>>> Buy Hardware <<<

Phantomdrive is open source encrypted USB drive with a stealth mechanism to hide its second partition. To decrypt it you must create a file containing your password in the format password:addpasswordhere, this is used to derive AES-XTS keys. The drive automatically unmounts itself, remounts the remaining disk and encrypts and decrypts in place. It uses CH569W SoC, which has USB3, SDIO and an AES hardware block. It is programmable over USB using the wch-ch56x-isp library.

bash
|-- ee             # Hardware files
|-- Makefile
|-- readme.md      # This files
|-- test           # Test the cypto components
|-- ref            # Reference docs
|-- src            # Firmware
|-- tests          # Verification scripts
|-- wch-ch56x-bsp  # Board support package
`-- wch-ch56x-isp  # Programming software

Getting Started

bash
git submodule update --init --recursive --checkout --force
cd wch-ch56x-isp
make # Build the ISP tool

Install the toolchain

The HydraUSB3 project requires the patched HydraUSB3 xPack GCC 12.2.0-1, which supports the WCH-Interrupt-fast interrupt attribute:

bash
cd /tmp
curl -sL -o riscv-gcc-xpack.tar.gz \
  "https://github.com/hydrausb3/riscv-none-elf-gcc-xpack/releases/download/12.2.0-1/xpack-riscv-none-elf-gcc-12.2.0-1-linux-x64.tar.gz"
tar xzf riscv-gcc-xpack.tar.gz
sudo cp -r xpack-riscv-none-elf-gcc-12.2.0-1/* /usr/local/

Debugging

text
make UART=1 # Enable UART

Build and Flashing the project

The AES mode, PBKDF2 iteration count, and locked capacity can be selected independently. Supported KDF values are 100000 and 600000; 100,000 is the default. LOCKED_SECTORS sets the locked (decoy) capacity in 512-byte sectors and defaults to 16,777,216 sectors (8 GiB). It must be smaller than the physical card's sector count; otherwise the unlocked capacity calculation underflows.

bash
# Remove flash drive
# While holding boot button, plug in

# Build and flash AES-XTS firmware with 600,000 PBKDF2 iterations and an
# 8 GiB locked capacity
make AES_MODE=XTS KDF_ROUNDS=600000 LOCKED_SECTORS=16777216 flash

# Or build and flash AES-CTR firmware with 100,000 iterations
make AES_MODE=CTR KDF_ROUNDS=100000 flash

# Build all four AES/KDF combinations
./release.sh

The four builds are written to build/CTR_100K, build/CTR_600K, build/XTS_100K, and build/XTS_600K.

Unlocking Drive

bash
# This will keep your password in bash history, but fine for testing/insecure
sudo echo "password:YourPasswordHere13245" > /mnt/unlock.txt

# Or avoid keeping the password is bash history
sudo dd of=/mnt/unlock.txt
password:YourPasswordHere13245
^D # ctrl+d

On the same note, please ensure your text editor doesn't cash/backup files, if they do disable that or use a different editor.

Releasing the hardware

bash
./scripts/release_hardware.sh

Security Notes

This code has not been professionally audited. Treat Phantomdrive as an experimental open source hardware/firmware project rather than a formally reviewed security product. The current level of validation is described in the test README. I am not responsible for loss of data, security incidents, or other damage resulting from use of this project.

The encrypted area can use AES-256-CTR or AES-256-XTS, with keys derived using PBKDF2-HMAC-SHA256 and either 100,000 or 600,000 iterations. AES mode and KDF iteration count affect the on-disk format, so firmware built with different settings cannot decrypt the same data without migration or reformatting.

Unlocking accepts any file of up to 256 bytes in the root directory containing password:YourPassword; password: is reserved across the locked volume, and values following it are captured in RAM and zeroed before SD writes. FatFs deletes the matching file before unlocking and creates FAT32 at startup if the decoy volume does not already contain FAT32.

Shells may save commands in history so be aware when unlocking from the shell. Additionally, some text editors cache file contents in swap, autosave, or recovery files, etc... If you're using a text editor to enter your password disable this feature.

Parts

57
QtyValueFootprintReferences
15100nFCapacitor_SMD:C_0402_1005MetricC3, C4, C8, C10, C14, C15, C16, C17, C18, C21, C22, C23, C26, C27, C28
722uFCapacitor_SMD:C_0402_1005MetricC2, C5, C7, C9, C11, C12, C13
6FiducialFiducial:Fiducial_0.5mm_Mask1mmFID1, FID2, FID3, FID4, FID5, FID6
4100kCapacitor_SMD:C_0402_1005MetricR1, R2, R4, R5
4TestPointTestPoint:TestPoint_Pad_1.0x1.0mmTP1, TP2, TP3, TP4
3TPD2EUSB30Package_TO_SOT_SMD:Texas_DRT-3U5, U6, U7
215pFCapacitor_SMD:C_0402_1005MetricC19, C20
22.2uFCapacitor_SMD:C_0402_1005MetricC24, C25
22.2uHInductor_SMD:L_Changjiang_FTC303015DL1, L2
24.7uFCapacitor_SMD:C_0402_1005MetricC1, C6
247kResistor_SMD:R_Array_Concave_4x0402RN1, RN2
2TLV62569DBVPackage_TO_SOT_SMD:SOT-23-5U2, U3
130MhzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY2
1450kCapacitor_SMD:C_0402_1005MetricR3
1CH569WPackage_DFN_QFN:QFN-68-1EP_8x8mm_P0.4mm_EP5.2x5.2mmU1
1Micro_SD_Card_Det_Hirose_DM3ATConnector_Card:microSD_HC_Hirose_DM3AT-SF-PEJM5J4
1SW_PushButton_Switch_SMD:SW_Push_SPST_NO_Alps_SKRKSW1
1USB3_AConnector_USB:USB3_A_Plug_Wuerth_692112030100_HorizontalJ2

Questions

How big is the Ovrdrive PCB?

It measures 36.4 × 15 mm and has 4 copper layers, 0.6 mm thick.

What parts does the Ovrdrive use?

57 parts, built around the CH569W, TLV62569DBV, DM3AT-SF-PEJM5 and TPD2EUSB30DRT. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Ovrdrive KiCad files?

From the o7-machinehum/phantomdrive repository on GitHub, at the commit this page was made from: the board is ee/ovrdrive/ovrdrive.kicad_pcb and its schematic ee/ovrdrive/ovrdrive.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Ovrdrive design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 4 layers117.5 × 30 mm4reel ee, the printed circuit board in 3D

    4reel ee

    o7-machinehum/4reel

    Stereo machine vision camera for outdoor mobile robotics.

    179 parts34MIT
  • 4 layers50 × 70 mmRp569, the printed circuit board in 3D

    Rp569

    kelu124/rp569

    RP569 - PIOs to usb3 ( rp2350 x ch569 )

    146 parts3
  • 6 layers57 × 25.9 mmR7FS7MOD, the printed circuit board in 3D

    R7FS7MOD

    Brazil-L/Lumeward-OpenSource

    Open-source Lumeward firmware and development tools

    228 parts2Apache-2.0
  • 4 layers60 × 80 mmWisp, the printed circuit board in 3D

    Wisp

    huulanka/wisp

    Open-source ESP32 room climate monitor — CO2, VOC, humidity, temperature and light sensing with custom PCB, MQTT/HomeKit integration, and OTA firmware updates. Full hardware + software, from schematic to BOM.

    91 partsMIT
  • 8 layers115.3 × 25.3 mmPROC091G, the printed circuit board in 3D

    PROC091G

    um-kiho/ti_radar

    AWR6843AOP (Antenna-on-Package) 60GHz FMCW 레이더를 이용한 존재 감지(Presence Detection) 시스템입니다. 내장 ARM Cortex-R4F MCU + C674x DSP에서 신호 처리 및 존재 판정을 수행하고, UART로 결과를 출력합니다.

    446 parts
  • 4 layers105 × 72 mmController, the printed circuit board in 3D

    Controller

    krasin/open_acoustic_camera

    125 parts1CERN-OHL-S-2.0
  • 4 layers47.3 × 49.6 mmCH569Board, the printed circuit board in 3D

    CH569Board

    kitspace-test-repos/kicad6-file-collection

    39 partsMIT