A DIY Flipper Zero–style multi-tool running on a Raspberry Pi Zero 2 W. Control HID attacks, sub-GHz RF, NFC, and USB storage tricks from any browser on your local network.
⚠️ For educational and authorized testing use only. Don't deploy this against systems or signals you don't own or have explicit permission to test.
Once installed (see below), launch the app on your Pi:
cd flipperpi/web
python3 app.pyThen visit http://<Pi-IP>:5000 from any device on the same network.
- Raspberry Pi Zero 2 W
- microSD card (8 GB+)
- (Optional) CC1101 RF module — connected via SPI
- (Optional) MFRC522 NFC reader — connected via SPI / I²C
Download the Raspberry Pi Imager and configure:
| Setting | Value |
|---|---|
| OS | Raspberry Pi OS Lite (64-bit) |
| Storage | Your microSD card |
| Hostname | flipperpi |
| SSH | ✅ Enabled |
| Wi-Fi | Your SSID & password |
💡 Click the gear icon in Imager to access SSH, Wi-Fi, and hostname options before flashing.
Flash the card and insert it into the Pi.
Power on the Pi Zero 2 W and SSH in from your PC:
ssh pi@flipperpi.localDefault password:
raspberry— change it on first login withpasswd.
Update the system:
sudo apt update && sudo apt upgrade -yInstall Python, Flask, and supporting libraries:
sudo apt install python3 python3-pip git -y
pip3 install flask spidev mfrc522If you're using the CC1101 RF module or NFC reader, enable the relevant interfaces:
sudo raspi-configEnable SPI (for CC1101) and I²C (for the NFC reader), then reboot:
sudo rebootFrom your host PC, copy the project to the Pi:
scp -r flipperpi_project_full pi@flipperpi.local:/home/pi/On the Pi, launch the app:
cd ~/flipperpi_project/flipperpi/web
python3 app.pyOpen your browser and navigate to:
http://flipperpi.local:5000
Enter the PIN you set in app.py (default: 1234).
| Button | Script | Function |
|---|---|---|
| 🎹 HID attack | hid_keyboard.py |
Emulates a keyboard for scripted input |
| 📡 RF send | cc1101_send.py |
Transmits a sub-GHz signal via CC1101 |
| 💳 NFC read | nfc_reader.py |
Reads an NFC/RFID tag |
| 💾 USB storage toggle | usb_storage_toggle.py |
Toggles USB mass-storage mode |
🔐 Change the default PIN in
app.pybefore exposing the Pi to anything beyond your trusted LAN.
To launch FlipperPi automatically at startup, edit /etc/rc.local:
sudo nano /etc/rc.localAdd this line before exit 0:
python3 /home/pi/flipperpi_project/flipperpi/web/app.py &Save and reboot:
sudo rebootThis project is licensed under the GNU Affero General Public License v3.0. See LICENSE for details.
Copyright © 2026 Danton Alexander