Skip to the content
2 layers30 × 30 mm0.96 OLED, the printed circuit board in 3D

A compact, standalone wireless security research device. Three tools in one — RF jammer, Wi-Fi deauther, and captive portal

Size
30 × 30 mm
Copper layers
2
Thickness
1.6 mm
Parts
64
Nets
33
Pads
118
Tracks, vias
191, 57
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
26 Apr 2026
Updated
17 Jun 2026

Overview

0.96 OLED is an open-source printed circuit board by rdhrobotics, from the rdhrobotics/RF-Hunter repository on GitHub. It is a 2-layer board of 30 × 30 mm with 64 parts on 33 nets, routed with 191 tracks and 57 vias.

Its parts include 10 capacitors, 9 resistors, 3 ICs, 3 switches and 1 diode. It belongs with the radio and wireless and lEDs and displays boards of this library.

README

README.md

RF Hunter — Wireless Security Research Platform

ESP8266 + nRF24L01 · OLED Display · Open Source Hardware & Firmware

License: MIT Platform: ESP8266 [blocked] Status: Active [blocked]

A compact, standalone wireless security research device. Three tools in one — RF jammer, Wi-Fi deauther, and captive portal testbed — controlled from a 128×64 OLED display and 6-button keypad. No laptop required.


RF-Hunter wireless security research device with OLED screen, keypad, and antenna

Buy a pre-built unit

If you want to skip the build and get straight to learning:

→ Buy RF-Hunter at rdhrobotics.in

→ RF-Hunter Documantation

Assembled, tested, and shipped. Includes quick-start card.


What it does

The RF-Hunter is a hardware platform for studying 2.4 GHz wireless security concepts hands-on. It runs three independent research modules from a unified launcher UI:

ModuleDescription
RF-HunternRF24 constant carrier jammer. BLE + all 2.4 GHz or Wi-Fi channels only..
Deauther Suitespacehuhn esp8266_deauther engine. Scan, select, deauth, beacon flood, probe attack.
WiPhiDeauth + EvilTwin + captive portal credential harvester with EEPROM vault.
RF Chat(bonus sketch) Point-to-point text chat over raw nRF24 radio.

Everything is navigated from the OLED + keypad, or remotely via the built-in web admin panel at 192.168.4.1.


Hardware

ComponentPart
MCUESP8266 (80/160 MHz, 2.4 GHz Wi-Fi)
RF modulenRF24L01+ PA+LNA
DisplaySH1106 128×64 OLED (I²C)
Input6-button ADC keypad (voltage divider)
StorageEEPROM — 5-slot credential vault, persists across reboots

Pinout

raw
nRF24L01   CE  → GPIO16
           CSN → GPIO15

SH1106     SDA → GPIO4
           SCL → GPIO5

ADC button thresholds

cpp
#define BTN_UP     135
#define BTN_DOWN   579
#define BTN_LEFT   426
#define BTN_RIGHT  634
#define BTN_ENTER  729
#define BTN_BACK   687

Adjust values to match your resistor network.


Firmware

Requirements

  • Arduino IDE 1.8+ or PlatformIO
  • ESP8266 board package
  • Libraries: RF24, ESP8266WiFi, DNSServer, ESP8266WebServer, SH1106Wire (ESP8266-OLED), ADCButton, ArduinoJson v5

Install

bash
git clone https://github.com/rdhrobotics/RF-Hunter.git

Open RFHunter/RFHunter.ino in Arduino IDE. Select Generic ESP8266 (Deauther) as the board. Flash at 115200 baud.

Repository structure

raw
RF-Hunter/
├── RFHunter/
│   └── RFHunter.ino        ← main sketch (all three tools)
│
├── Hardware Source/
│   ├── RD_Deauther.pdf // schematic
│   └── RD_Deauther.kicad_pro // Kicad Project

UI overview

raw
┌─────────────────┐
│     Main Menu   │  ← Launcher
│  > RF-Hunter    │
│    Deauther     │
│    WiPhi        │
└─────────────────┘
        │
        ├── RF-Hunter → select mode → running (BACK to stop)
        ├── Deauther  → full spacehuhn DisplayUI
        └── WiPhi     → scan → select AP → attack → captured PW

Hold BACK for 5 seconds from any mode to return to the launcher main menu.


Adding a new RF mode (3 steps)

The launcher uses a mode table — drop in a new attack without touching the state machine.

Step 1 — declare your functions:

cpp
void myMode_init();
void myMode_tick();

Step 2 — add a row to the table:

cpp
const NrfMode NRF_MODES[] = {
    { "BLE & All 2.4GHz", nrfAttackAllInit,  nrfAttackAllTick,  true },
    { "Just Wi-Fi",       nrfAttackWiFiInit, nrfAttackWiFiTick, true },
    { "My New Mode",      myMode_init,       myMode_tick,       false }, // ← add here
};

Step 3 — write the functions anywhere below. Done.


EEPROM layout

WiPhi saves captured credentials to EEPROM and survives power cycles.

raw
Addr 0        Magic byte (0xAB) — detects first boot
Addr 1–485    5 slots × (1 valid flag + 32 SSID + 64 PW)

WiPhi vault (in Launcher, offset to avoid deauther collision):
Addr 2000     Magic byte (0xBC)
Addr 2001+    Same slot layout × 5

Browse and delete saved passwords from the OLED: Main Menu → Saved Passwords.


Web admin panel

While WiPhi is running, connect to:

raw
SSID:     WiPhi_34732
Password: d347h320
URL:      http://192.168.4.1/admin

The web UI and OLED run simultaneously — control from either.


Open source

This project is fully open source — firmware and hardware both.

License
FirmwareMIT
Hardware (schematic, BOM)CERN OHL v2 Permissive

The Deauther Suite module uses the spacehuhn/esp8266_deauther engine, which is also MIT licensed.

Pull requests welcome. See CONTRIBUTING.md for guidelines.


Ethical use

This device is built for authorized security research, CTF competitions, and educational use.

  • Only use on networks and devices you own or have explicit written permission to test
  • Unauthorized deauthentication, RF jamming, or credential harvesting is illegal in most jurisdictions
  • The authors take no responsibility for misuse

Made with ❤️

by @rdhrobotics — open hardware for security education.

→ Buy pre-built at rdhrobotics.in

Parts

64
QtyValueFootprintReferences
20buzzardLabel, , , , , , , , , , , , , , , +4
710ke-radionica.com footprinti:0603RR1, R2, R3, R4, R6, R7, R8
42u2e-radionica.com footprinti:0603CC1, C2, C5, C8
4HOLE_3.2mme-radionica.com footprinti:HOLE_3.2mmH1, H2, H3, H4
310ue-radionica.com footprinti:1206CC3, C7, C9
2100ne-radionica.com footprinti:0603CC6, C10
2LOGOSoldered Graphics:Logo-Front-easyC-5mmG***, G***
2SMD-JUMPER-CONNECTED_TRACE_SLODERMASKe-radionica.com footprinti:SMD-JUMPER-CONNECTED_TRACE_SLODERMASKJP2, JP4
2SMD_JUMPERe-radionica.com footprinti:SMD_JUMPERJP5, JP6
2SMD_JUMPER_3_PAD_TRACEe-radionica.com footprinti:SMD_JUMPER_3_PAD_TRACEJP1, JP3
2easyC-SMDe-radionica.com footprinti:easyC-connectorK1, K2
11ue-radionica.com footprinti:0603CC4
12k2e-radionica.com footprinti:0402RR5
1390ke-radionica.com footprinti:0603RR9
1FIDUCIALe-radionica.com footprinti:FIDUCIAL_23FD1
1HEADER_MALE_4X1e-radionica.com footprinti:HEADER_MALE_4X1K3
1LOGOSoldered Graphics:Logo-Back-SolderedVERTICAL-6mmG***
1LOGOSoldered Graphics:Logo-Front-Soldered-3mmG***
1LOGOSoldered Graphics:Logo-Front-OSH-3.5mmG***
1NMOS-DUALe-radionica.com footprinti:SOT-363U1
1OLED_GME12864_30pe-radionica.com footprinti:OLED_GME128x64_30pU3
1SE5218e-radionica.com footprinti:SOT-23-5U2
1purplee-radionica.com footprinti:0402LEDD1

The 62 most common of 64 parts.

More from rdhrobotics/RF-Hunter

1
  • 2 layers45.8 × 60 mmRD Deauther, the printed circuit board in 3D

    RD Deauther

    rdhrobotics/RF-Hunter

    A compact, standalone wireless security research device. Three tools in one — RF jammer, Wi-Fi deauther, and captive portal

    55 parts

Similar boards

  • 2 layers76.5 × 120 mmNumpad project, the printed circuit board in 3D

    Numpad project

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    64 parts915
  • 2 layers160 × 99.1 mmFlat hierarchy, the printed circuit board in 3D

    Flat hierarchy

    drandyhaas/KiCadRoutingTools

    A set of Python/Rust tools to aid routing in KiCad

    64 parts744MIT
  • 2 layers49 × 53.2 mmDB25 External, the printed circuit board in 3D

    DB25 External

    BlueSCSI/BlueSCSI-v2

    BlueSCSI v2/Ultra - an open source, open hardware, SCSI emulator using the Pi Pico PR2040 and Pico 2 RP2350

    64 parts459GPL-3.0
  • 2 layers90 × 71 mmTd hv, the printed circuit board in 3D

    Td hv

    tdaede/td-crt

    tubes

    64 parts373
  • 2 layers28 × 30 mmOtterIron Devkit, the printed circuit board in 3D

    OtterIron Devkit

    Jana-Marie/Otter-Iron-PRO

    USB-PD soldering station for JBC C245 handles.

    64 parts321
  • 2 layers192.9 × 59.5 mmAlpha pro micro, the printed circuit board in 3D

    Alpha pro micro

    PyrooL/Alpha

    A 28-key semi-ortholinear mechanical keyboard designed by PyroL

    64 parts298MIT
  • 2 layers128 × 88 mmFireball revD, the printed circuit board in 3D

    Fireball revD

    ugcs/ddc

    Drone Show Software is software designed for drone shows, allowing flight path planning as well as control of dozens of drones simultaneously in a synchronized manner.

    64 parts223
  • 2 layers78 × 81 mmEncoder, the printed circuit board in 3D

    Encoder

    eddyem/stm32samples

    Code samples and ready projects based on bare-metal STM32

    64 parts208

Questions

How big is the 0.96 OLED PCB?

It measures 30 × 30 mm and has 2 copper layers, 1.6 mm thick.

What parts does the 0.96 OLED use?

64 parts. 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 0.96 OLED KiCad files?

From the rdhrobotics/RF-Hunter repository on GitHub, at the commit this page was made from: the board is Hardware Source/Ref_Resource/Display-OLED-I2C-White-0.96-hardware-design-main/Display-OLED-I2C-White-0.96-hardware-design-main/CAD/V1.3.0/0.96_OLED.kicad_pcb and its schematic Hardware Source/RD_Deauther.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the 0.96 OLED design in my own project?

Its repository states no licence, so its author keeps all rights: ask rdhrobotics before reusing the design.