This is an old revision of the document!


Flipper One

Introducere

Proiectul Flipper One reprezinta o mini-replica a dispozitivului Flipper Zero, construita in jurul unei placi de dezvoltare cu microcontroller. Dispozitivul este capabil sa captureze, stocheze si retransmita semnale wireless provenite de la diverse telecomenzi (porti de garaj, prize wireless, sonerii fara fir, etc.), oferind utilizatorului un instrument portabil pentru analiza si interactiunea cu dispozitivele wireless din jur.

Ideea a pornit de la dorinta de a intelege mai bine cum functioneaza comunicatia wireless si dispozitivele de tip “multi-tool” pentru hackeri/pentesteri, dar la o scara redusa si la un cost accesibil. Spre deosebire de un Flipper Zero comercial, proiectul meu isi propune sa demonstreze functionalitatile de baza folosind componente standard.

Functionalitati principale:

  • captura semnalelor wireless de la telecomenzi 433 MHz
  • stocarea acestora in memorie (volatila sau pe card SD)
  • retransmiterea semnalelor capturate
  • navigare printr-un meniu afisat pe ecran, controlat cu butoane
  • indicarea starii curente a dispozitivului (idle, recording, replay) printr-un LED RGB

Optional, sistemul include si un modul RFID pentru citirea si emularea cardurilor, un modul ESP-01 pentru scanarea retelelor WiFi din jur, si un cititor de card SD pentru stocarea persistenta a semnalelor capturate.

Laboratoare folosite: GPIO (Lab 0), Intreruperi (Lab 2), Timere/PWM (Lab 3), SPI (Lab 5), plus comunicatie I2C si UART.

Descriere generală

Sistemul este organizat in jurul unei plăci Arduino UNO (ATmega328P), care coordoneaza toate celelalte module. Interactiunea cu utilizatorul se face printr-un ecran OLED pe care se afiseaza meniul si informatiile despre semnalele capturate, impreuna cu butoane pentru navigare si un LED RGB care indica starea curenta a dispozitivului.

Pentru ca pinii disponibili pe Arduino UNO nu ar fi fost suficienti pentru toate modulele, butoanele de navigare au fost mutate pe un expander I2C PCF8574, eliberand astfel 4 pini digitali pentru ESP-01 si modulele SPI.

Partea de captura si retransmitere a semnalelor wireless este realizata cu un receptor si un emitator de 433 MHz. La capturare, microcontrollerul foloseste o intrerupere externa pe pinul de date al receptorului si masoara duratele pulsurilor. La retransmitere, pulsurile salvate sunt regenerate prin emitator folosind un timer hardware.

Logica de functionare:

  1. Idle State: LED-ul RGB este albastru. Sistemul afiseaza meniul si asteapta input de la utilizator prin butoane.
  2. Recording State: LED-ul devine rosu. Receptorul wireless asculta in mod continuu, iar la detectarea unui semnal se masoara si se salveaza duratele pulsurilor.
  3. Replay State: LED-ul devine verde. Semnalul salvat este reconstruit pe pinul emitatorului folosind un timer hardware.
  4. Menu Navigation: Butoanele permit navigarea prin meniu (selectarea modului, vizualizarea semnalelor capturate, optiuni avansate cum ar fi RFID, WiFi scan).

Schema bloc Flipper One

Hardware Design

Stadiul actual al implementării hardware

În stadiul actual, proiectul este realizat pe un breadboard SYB-120, având ca unitate centrală un Arduino UNO R3 / ATmega328P. Pe montaj sunt conectate modulele principale pentru interacțiune și comunicație: display-ul OLED SPI, receptorul și emițătorul RF 433 MHz, LED-ul RGB, expanderul de pini PCF8574 împreună cu cele 4 butoane, modulul RFID/NFC PN532 și modulul ESP-01 alimentat separat la 3.3V prin AMS1117 și protejat pe linia RX prin convertor logic.

Partea de alimentare este organizată pe magistrale de breadboard: 5V, GND și 3.3V. Toate modulele au masă comună cu Arduino. Modulul MicroSD este inclus în schema finală și are liniile SPI și pinul CS planificate, dar în montajul curent alimentarea sa nu este încă finalizată: VCC pe 4G și GND pe 3G sunt marcate ca fire de tras.

Schema bloc hardware reală

Pentru verificarea conexiunilor punct-cu-punct, am inclus și varianta detaliată, cu nodurile/rândurile de breadboard marcate explicit:

Schema hardware detaliată a montajului

Componente folosite și rolul lor în proiect

Componentă Rol în proiect Interfață / observații
Arduino UNO R3 / ATmega328P Microcontroller principal; rulează logica de meniu, captura și retransmiterea semnalelor GPIO, PWM, SPI, I2C, UART software
Breadboard SYB-120 Suport de prototipare și distribuție pentru 5V, 3.3V, GND și magistralele comune Conexiuni pe rânduri/coloane
OLED 1.3'' 128×64 SPI Afișează meniul, starea sistemului și datele citite/capturate SPI hardware + pini separați pentru RES, DC, CS
Receptor RF 433 MHz Citește semnale wireless de la telecomenzi DATA pe D2, folosit ca pin de întrerupere INT0
Emițător RF 433 MHz Retransmite semnalele RF salvate DATA pe D8, potrivit pentru generarea de pulsuri controlate
LED RGB KY-016 Indicator vizual pentru starea dispozitivului: idle / record / replay PWM pe D3, D5, D6
PCF8574 Extinde numărul de pini disponibili pentru butoane I2C pe A4/A5
4 butoane tactile Navigare prin meniu: UP, DOWN, OK, BACK Intrări P0-P3 pe PCF8574, conectate la GND la apăsare
PN532 RFID/NFC Citire carduri/tag-uri RFID/NFC SPI hardware, CS separat pe A2
ESP-01 / ESP8266 Scanare WiFi / funcții opționale de comunicație UART software: D4 primește TX ESP, D7 transmite către RX ESP prin convertor logic
AMS1117 3.3V Alimentare stabilă pentru ESP-01 VIN din 5V, VOUT pe magistrala de 3.3V
Convertor logic 5V ↔ 3.3V Protejează intrarea RX a ESP-01 de nivelul logic de 5V al Arduino D7 → HV1, LV1 → RX ESP
Cititor MicroSD Stocare persistentă pentru semnale capturate SPI hardware, CS pe A3; alimentare de finalizat

Maparea pinilor Arduino și justificare

Pin Arduino Conectat la De ce este folosit aici
3.3V Alimentare auxiliară, după caz; ESP este alimentat din AMS1117 ESP-01 are nevoie de 3.3V stabil, nu direct din pinul 3.3V Arduino
5V Magistrala de 5V pe breadboard: rând 2F și rând 59 Alimentează OLED, PN532, RF 433 MHz, PCF8574 și intrarea AMS1117
GND Magistrala comună GND: rândurile 1, 52, 55, 56, 60 Toate modulele trebuie să aibă masă comună pentru referință de semnal
D2 DATA receptor RF 433 MHz, prin 23X D2 este INT0 pe Arduino UNO, deci permite capturarea precisă a tranzițiilor semnalului RF
D3 LED RGB - canal R, 39I Pin PWM, folosit pentru controlul intensității culorii roșii
D4 ESP-01 pin 5 / TX ESP SoftwareSerial RX: Arduino primește date de la ESP; 3.3V este citit corect ca HIGH de ATmega328P
D5 LED RGB - canal G, 40I Pin PWM, folosit pentru controlul intensității culorii verzi
D6 LED RGB - canal B, 41I Pin PWM, folosit pentru controlul intensității culorii albastre
D7 HV1 pe convertor logic, 44D SoftwareSerial TX către ESP; trece prin convertor logic pentru a coborî nivelul de la 5V la 3.3V
D8 DATA emițător RF 433 MHz, 24Y Pin digital folosit pentru generarea semnalului retransmis
D9 RES OLED Reset hardware pentru display
D10 CS OLED Selectează OLED-ul pe magistrala SPI
D11 MOSI SPI, 13F Linia hardware MOSI, partajată între OLED, PN532 și MicroSD
D12 MISO SPI, 12F Linia hardware MISO, folosită de PN532 și MicroSD
D13 SCK SPI, 14F Clock hardware SPI, comun pentru OLED, PN532 și MicroSD
A0 DC OLED Selectare Data/Command pentru OLED
A1 liber Rezervă pentru extensii ulterioare
A2 NSS / CS PN532 Chip Select separat pentru RFID
A3 CS MicroSD Chip Select separat pentru cardul SD
A4 SDA PCF8574, 41A/41C Linia hardware I2C SDA
A5 SCL PCF8574, 40A/40C Linia hardware I2C SCL

Conexiuni fizice pe breadboard

Alimentare și magistrale

Zonă breadboard Conexiune Explicație
60, 55, 56 GND Rânduri folosite ca extensii de masă
59 5V Rând de distribuție pentru modulele alimentate la 5V
53A VIN AMS1117 Intrare regulator 3.3V, alimentată din 5V
52A GND AMS1117 Masă regulator
53H VOUT AMS1117 Ieșire 3.3V către magistrala 50F-J
50F-J 3.3V Alimentare ESP-01 prin rând comun
47D, 47F GND convertor logic Masă comună pentru level shifter
46D HV convertor logic Partea de 5V a convertorului logic
46F LV convertor logic Partea de 3.3V a convertorului logic
44D HV1 convertor logic Semnal TX Arduino de pe D7
44F / 43F LV1 convertor logic Semnal coborât la 3.3V către RX ESP-01

Expander PCF8574 și butoane

Punct breadboard Conexiune Explicație
43A, 43C VCC PCF8574, legat la 59C Alimentează expanderul la 5V
42A, 42C GND PCF8574, legat la 56C Masă comună
41A, 41C SDA PCF8574, legat la A4 Date I2C
40A, 40C SCL PCF8574, legat la A5 Clock I2C
36E/F și 34E/F Buton UP Un capăt la P0, celălalt la GND
33E/F și 31E/F Buton DOWN Un capăt la P1, celălalt la GND
30E/F și 28E/F Buton OK Un capăt la P2, celălalt la GND
27E/F și 25E/F Buton BACK Un capăt la P3, celălalt la GND
A36, A33, A30, A27 P0, P1, P2, P3 Intrări PCF8574 pentru butoane
J34, J31, J28, J25 GND Revenirea butoanelor la masă

LED RGB

Punct breadboard Conexiune Explicație
39I LED R → D3 Canal roșu, PWM
40I LED G → D5 Canal verde, PWM
41I LED B → D6 Canal albastru, PWM
38I LED GND → 1G Catod comun la masă

Module RF 433 MHz

Modul Punct breadboard Conectat la Explicație
Receptor 433 MHz 24X C1 / GND Masă receptor
Receptor 433 MHz 23X D2 Arduino DATA receptor; se folosește întreruperea INT0
Receptor 433 MHz 21X G2 / 5V Alimentare receptor
Emițător 433 MHz 24Y D8 Arduino DATA emițător
Emițător 433 MHz 23Y H2 / 5V Alimentare emițător
Emițător 433 MHz 22Y C55 / GND Masă emițător

Magistrala SPI

Semnal Puncte breadboard Module conectate
SCK D13 → 14F, 14G PN532, 14H → 7G MicroSD OLED, PN532, MicroSD
MOSI D11 → 13F, 13G PN532, 13H → 6G MicroSD OLED, PN532, MicroSD
MISO D12 → 12F, 12G PN532, 12I → 5G MicroSD PN532, MicroSD

OLED SPI

Pin OLED Conectat la Explicație
GND 55D Masă comună
VCC 5V Arduino Alimentare display
SCK 14F / D13 Clock SPI
SDA / MOSI 13F / D11 Date SPI către display
RES D9 Reset display
DC A0 Selectare comandă/date
CS D10 Chip Select OLED

PN532 RFID/NFC

Pin PN532 Conectat la Explicație
SCK 14G Clock SPI
M / MISO 13G Date de la modul către Arduino
MO / SDA / TX 12G Date de la Arduino către modul
NSS / SCL / RX A2 Chip Select dedicat PN532
RST / R0 liber Momentan nu este controlat hardware
GND 56B Masă comună
5V 59D Alimentare modul

ESP-01

Pinii ESP-01 sunt notați cu modulul orientat cu antena/zig-zagul în față:

1 2 3 4
5 6 7 8
Pin ESP-01 Conectat la Explicație
1 56D GND
4 43F / LV1 convertor logic RX ESP, primește semnal de 3.3V din D7 prin level shifter
5 D4 Arduino TX ESP către RX SoftwareSerial Arduino
6 49I / 3.3V CH_PD/enable tras la 3.3V
8 49H / 3.3V Alimentare ESP-01

MicroSD

Pin MicroSD Conectat la Stadiu
SCK 7G, prin 14H conectat la magistrala SPI
MOSI 6G, prin 13H conectat la magistrala SPI
MISO 5G, prin 12I conectat la magistrala SPI
CS A3 conectat logic la Arduino
VCC 4G de tras
GND 3G de tras

Explicații schema

Principiul de conectare este următorul:

  • Toate modulele folosesc GND comun, deoarece semnalele digitale trebuie să aibă aceeași referință electrică.
  • Modulele SPI folosesc aceleași linii SCK, MOSI, MISO, iar fiecare modul este separat printr-un pin CS propriu: OLED pe D10, PN532 pe A2, MicroSD pe A3.
  • Receptorul RF este pus pe D2, deoarece acest pin are întreruperea externă INT0, utilă pentru măsurarea duratelor pulsurilor RF.
  • Emițătorul RF este pus pe D8, pin digital folosit pentru generarea semnalului retransmis.
  • LED-ul RGB este pus pe pini PWM pentru a putea indica starea sistemului prin culori: roșu pentru recording, verde pentru replay, albastru pentru idle.
  • Butoanele nu sunt legate direct la Arduino, ci la PCF8574, pentru a economisi pini pe Arduino. PCF8574 comunică prin I2C, deci ocupă doar A4 și A5.
  • ESP-01 funcționează la 3.3V. De aceea este alimentat din AMS1117, nu direct din pinul 3.3V al Arduino. Linia Arduino → ESP trece prin convertor logic, deoarece Arduino transmite la 5V, iar RX-ul ESP acceptă 3.3V.

Software Design

Rezultate Obţinute

Concluzii

Download

Jurnal

Bibliografie/Resurse

Resurse Hardware

Resurse Software

pm/prj2026/atoader/george.simion2005.1779104547.txt.gz · Last modified: 2026/05/22 15:02 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0