

Ovrdrive
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
10CH569W
QFN-68-EP(8x8)-20℃~+85℃ 120MHz 2.3V~3.6V 32 Bit 448KB 49 Built-in+External FLASH Others Power-on reset (POR)、Undervoltage detection (BOR/LVD/LVR/LVI)、Watchdog reset、Software reset、External pin reset (NRST)、Built-in general-purpose timer QFN-68-EP(8x8) Microcontrollers (MCU/MPU/SOC) ROHSWCH (Nanjing Qinheng Microelectronics)Microcontrollers (MCU/MPU/SOC)TLV62569DBV
SOT-23-5-40℃~+125℃@(TJ) 1 1.5MHz 2.5V~5.5V 2A 600mV~5.5V Adjustable Buck Buck Built-in Yes SOT-23-5 DC-DC Converters ROHSTexas InstrumentsDC-DC ConvertersDM3AT-SF-PEJM5
SMD-25℃~+85℃ 1.68mm Connector and Ejector MicroSD Card (TF Card) No Push-Push SMD SD Card / Memory Card Connector ROHSHirose ElectricSD Card / Memory Card ConnectorTPD2EUSB30DRT
SOT(9x3)-40℃~+85℃ 0.7pF 2 45W 5.5V 5A@8/20us 7V 8V ESD IEC 61000-4-2、IEC 61000-4-5 Unidirectional SOT(9x3) ESD and Surge Protection (TVS/ESD) ROHSTexas InstrumentsESD And Surge Protection (TVS/ESD)CL05A226MQ5N6J8
040222uF 6.3V X5R ±20% 0402 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHSSamsung Electro-MechanicsMultilayer Ceramic Capacitors MLCC - SMD/SMTRC0402FR-07100KL
UncategorisedUnknown makerSRN3015-2R2M
SMD,3x3mm1.65A 1.8A 2.2uH 72mΩ Magnetic Shielded Inductor ±20% SMD,3x3mm Power Inductors ROHSBournsPower InductorsCAT10-473J4LF
0402x44 47kΩ 62.5mW 8 ±200ppm/℃ ±5% 0402x4 Resistor Networks, Arrays ROHSBournsResistor Networks & ArraysABM8-30.000MHZ-12-B1U-T
SMD3225-4P-20℃~+70℃ 12pF 30MHz 40Ω ±10ppm ±10ppm SMD3225-4P Crystals ROHSAbraconCrystalsSKRKAEE020
SMD,3.9x2.9mm-40℃~+85℃ 1.6N 12V 2.9mm 200,000 Cycles 2mm 3.9mm 50mA Round Button SMD(SMT) Tab SPST-NO Surface Mount,Vertical SMD,3.9x2.9mm Tactile Switches ROHSALPSALPINETactile Switches
README
readme.md
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.
|-- 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 softwareGetting Started
git submodule update --init --recursive --checkout --force
cd wch-ch56x-isp
make # Build the ISP toolInstall the toolchain
The HydraUSB3 project requires the patched HydraUSB3 xPack GCC 12.2.0-1, which
supports the WCH-Interrupt-fast interrupt attribute:
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
make UART=1 # Enable UARTBuild 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.
# 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.shThe four builds are written to build/CTR_100K, build/CTR_600K,
build/XTS_100K, and build/XTS_600K.
Unlocking Drive
# 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+dOn 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
./scripts/release_hardware.shSecurity 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| Qty | Value | Footprint | References |
|---|---|---|---|
| 15 | 100nF | Capacitor_SMD:C_0402_1005Metric | C3, C4, C8, C10, C14, C15, C16, C17, C18, C21, C22, C23, C26, C27, C28 |
| 7 | 22uF | Capacitor_SMD:C_0402_1005Metric | C2, C5, C7, C9, C11, C12, C13 |
| 6 | Fiducial | Fiducial:Fiducial_0.5mm_Mask1mm | FID1, FID2, FID3, FID4, FID5, FID6 |
| 4 | 100k | Capacitor_SMD:C_0402_1005Metric | R1, R2, R4, R5 |
| 4 | TestPoint | TestPoint:TestPoint_Pad_1.0x1.0mm | TP1, TP2, TP3, TP4 |
| 3 | TPD2EUSB30 | Package_TO_SOT_SMD:Texas_DRT-3 | U5, U6, U7 |
| 2 | 15pF | Capacitor_SMD:C_0402_1005Metric | C19, C20 |
| 2 | 2.2uF | Capacitor_SMD:C_0402_1005Metric | C24, C25 |
| 2 | 2.2uH | Inductor_SMD:L_Changjiang_FTC303015D | L1, L2 |
| 2 | 4.7uF | Capacitor_SMD:C_0402_1005Metric | C1, C6 |
| 2 | 47k | Resistor_SMD:R_Array_Concave_4x0402 | RN1, RN2 |
| 2 | TLV62569DBV | Package_TO_SOT_SMD:SOT-23-5 | U2, U3 |
| 1 | 30Mhz | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y2 |
| 1 | 450k | Capacitor_SMD:C_0402_1005Metric | R3 |
| 1 | CH569W | Package_DFN_QFN:QFN-68-1EP_8x8mm_P0.4mm_EP5.2x5.2mm | U1 |
| 1 | Micro_SD_Card_Det_Hirose_DM3AT | Connector_Card:microSD_HC_Hirose_DM3AT-SF-PEJM5 | J4 |
| 1 | SW_Push | Button_Switch_SMD:SW_Push_SPST_NO_Alps_SKRK | SW1 |
| 1 | USB3_A | Connector_USB:USB3_A_Plug_Wuerth_692112030100_Horizontal | J2 |
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 mm

- 4 layers50 × 70 mm

- 6 layers112 × 98 mm

- 6 layers57 × 25.9 mm

R7FS7MOD
Brazil-L/Lumeward-OpenSource
Open-source Lumeward firmware and development tools
228 parts2Apache-2.0 - 4 layers60 × 80 mm

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 mm

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 mm

- 4 layers47.3 × 49.6 mm
