Proiectul Flipper One reprezintă o mini-replică a dispozitivului Flipper Zero, construită în jurul unei plăci Arduino UNO cu microcontroller ATmega328P. Dispozitivul este gândit ca un instrument portabil de testare și analiză pentru comunicații wireless simple, module RFID/NFC și rețele WiFi din apropiere.
Scopul proiectului este să demonstreze, la scară redusă și cu componente accesibile, funcționalități întâlnite în dispozitive de tip multi-tool: captură și retransmitere de semnale RF, citire RFID, scanare WiFi, salvare pe card MicroSD și interacțiune printr-un ecran OLED.
Spre deosebire de un dispozitiv comercial, Flipper One este realizat pe breadboard, folosind module separate și conexiuni explicite, ceea ce îl face util pentru înțelegerea modului în care comunică între ele componentele hardware.
Funcționalități principale:
În stadiul actual, partea RF, RFID, OLED, butoane, LED RGB, ESP și MicroSD este funcțională la nivel de testare. Pentru modulul ESP-01, capturarea/listarea rețelelor WiFi din jur funcționează prin comenzi AT.
Work in progress:
Laboratoare folosite: GPIO (Lab 0), Întreruperi (Lab 2), Timere/PWM (Lab 3), SPI (Lab 5), plus comunicatie I2C și UART software.
Sistemul este organizat în jurul unei plăci Arduino UNO R3 / ATmega328P, care coordonează toate modulele externe. Interacțiunea cu utilizatorul se face printr-un ecran OLED SPI, un set de 4 butoane conectate prin PCF8574 și un LED RGB folosit pentru feedback vizual.
Pentru economisirea pinilor Arduino, butoanele sunt conectate la un expander I2C PCF8574, astfel încât toate cele 4 intrări de control folosesc doar magistrala I2C formată din A4/SDA și A5/SCL.
Partea RF este realizată cu un receptor și un emițător de 433 MHz. Receptorul este conectat la pinul D2, care permite folosirea întreruperii externe INT0 pentru măsurarea precisă a tranzițiilor semnalului. Semnalul capturat este memorat ca o listă de durate ale pulsurilor, apoi poate fi retransmis prin emițătorul conectat la D8.
Modulul PN532 RFID/NFC este conectat pe I2C, împreună cu PCF8574. Această variantă a fost aleasă pentru stabilitate, deoarece separă complet RFID-ul de magistrala SPI folosită de OLED și MicroSD. PN532 este folosit pentru citirea UID-urilor cardurilor/tag-urilor compatibile ISO14443A.
Modulul ESP-01 / ESP8266 este folosit pentru scanarea rețelelor WiFi din jur. Acesta comunică cu Arduino prin SoftwareSerial: ESP transmite către Arduino pe D4, iar Arduino transmite către ESP pe D7. ESP-ul este alimentat separat la 3.3V prin AMS1117.
Modulul MicroSD este conectat pe magistrala SPI și este folosit pentru stocare persistentă. În implementarea curentă, semnalele RF capturate și UID-urile RFID citite pot fi salvate pe card, pentru a putea fi păstrate după resetarea dispozitivului.
Logica generală de funcționare:
Î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 OLED SPI, receptor RF 433 MHz, emițător RF 433 MHz, LED RGB, expander PCF8574 cu 4 butoane, modul PN532 RFID/NFC, modul ESP-01 și cititor MicroSD.
Partea de alimentare este organizată pe magistrale de breadboard:
Modulul PN532 este conectat pe I2C, nu pe SPI, pentru a evita conflictele cu OLED-ul și MicroSD-ul. Astfel, magistrala SPI este folosită de OLED și MicroSD, iar magistrala I2C este folosită de PCF8574 și PN532.
Modulul ESP-01 este conectat prin UART software. În montajul curent, Arduino transmite direct către RX-ul ESP-ului pe D7, iar ESP transmite către Arduino pe D4. ESP-ul rămâne alimentat exclusiv la 3.3V prin AMS1117.
MicroSD-ul este inclus funcțional în proiect și este folosit pentru salvarea datelor capturate: semnale RF și UID-uri RFID.
Pentru verificarea conexiunilor punct-cu-punct, am inclus și varianta detaliată, cu nodurile/rândurile de breadboard marcate explicit:
| Componentă | Rol în proiect | Interfață / observații |
|---|---|---|
| Arduino UNO R3 / ATmega328P | Microcontroller principal; coordonează modulele și rulează logica de test/captură | GPIO, PWM, SPI, I2C, UART software |
| Breadboard SYB-120 | Suport de prototipare și distribuție pentru 5V, 3.3V și GND | 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 | Primește semnale wireless de la telecomenzi simple | DATA pe D2, folosit ca pin de întrerupere INT0 |
| Emițător RF 433 MHz | Retransmite semnalele RF capturate | DATA pe D8 |
| LED RGB KY-016 | Indicator vizual pentru starea dispozitivului | PWM pe D3, D5, D6 |
| PCF8574 | Extinde numărul de pini disponibili pentru butoane | I2C pe A4/A5 |
| 4 butoane tactile | Controlul funcțiilor principale: RF, RFID, LED, ESP | Intrări P0-P3 pe PCF8574 |
| PN532 RFID/NFC | Citește UID-uri de carduri/tag-uri RFID/NFC | I2C pe A4/A5, IRQ pe A2, RESET pe A1 |
| ESP-01 / ESP8266 | Scanare/captură listă rețele WiFi din apropiere | UART software: D4 primește TX ESP, D7 transmite către RX ESP |
| AMS1117 3.3V | Alimentare stabilă pentru ESP-01 | VIN din 5V, VOUT pe magistrala de 3.3V |
| Cititor MicroSD | Stocare persistentă pentru RF și RFID | SPI hardware, CS pe A3 |
| Pin Arduino | Conectat la | De ce este folosit aici |
|---|---|---|
| 3.3V | Neutilizat ca sursă principală pentru ESP | ESP-ul este alimentat din AMS1117 pentru curent mai stabil |
| 5V | Magistrala de 5V: OLED, PN532, RF 433 MHz, PCF8574, MicroSD, VIN AMS1117 | Alimentează modulele compatibile cu 5V și intrarea regulatorului AMS1117 |
| GND | Magistrala comună GND | Toate modulele trebuie să aibă aceeași referință electrică |
| D2 | DATA receptor RF 433 MHz | D2 este INT0, util pentru capturarea tranzițiilor RF |
| D3 | LED RGB - canal R | Pin PWM pentru controlul roșului |
| D4 | ESP-01 TX către Arduino | SoftwareSerial RX; Arduino primește date de la ESP |
| D5 | LED RGB - canal G | Pin PWM pentru controlul verdelui |
| D6 | LED RGB - canal B | Pin PWM pentru controlul albastrului |
| D7 | ESP-01 RX direct | SoftwareSerial TX; Arduino trimite comenzi AT către ESP |
| D8 | DATA emițător RF 433 MHz | Pin digital folosit pentru retransmiterea semnalului RF |
| D9 | RES OLED | Reset hardware pentru display |
| D10 | CS OLED | Selectează OLED-ul pe magistrala SPI |
| D11 | MOSI SPI | Linie comună pentru OLED și MicroSD |
| D12 | MISO SPI | Linie folosită de MicroSD |
| D13 | SCK SPI | Clock SPI pentru OLED și MicroSD |
| A0 | DC OLED | Selectare comandă/date pentru OLED |
| A1 | RESET PN532 | Reset hardware pentru modulul RFID/NFC |
| A2 | IRQ / R0 PN532 | Linie IRQ pentru PN532 în modul I2C |
| A3 | CS MicroSD | Chip Select separat pentru cardul SD |
| A4 | SDA comun: PCF8574 + PN532 | Linia hardware I2C SDA |
| A5 | SCL comun: PCF8574 + PN532 | Linia hardware I2C SCL |
| Zonă breadboard | Conexiune | Explicație |
|---|---|---|
| Coloana/rândul GND comun | GND | Masă comună pentru toate modulele |
| Rând 59 | 5V | Distribuție 5V pentru modulele compatibile |
| Rând 49 | 3.3V | Distribuție 3.3V generată de AMS1117 |
| AMS1117 VIN | 5V | Intrarea regulatorului 3.3V |
| AMS1117 GND | GND comun | Masă regulator |
| AMS1117 VOUT | 3.3V / rând 49 | Alimentare ESP-01 |
| Conexiune | Explicație |
|---|---|
| VCC PCF8574 → 5V | Expander alimentat la 5V |
| GND PCF8574 → GND | Masă comună |
| SDA PCF8574 → A4 | Date I2C |
| SCL PCF8574 → A5 | Clock I2C |
| P0 → buton 1 | Funcție RF capture / replay |
| P1 → buton 2 | Funcție RFID scan |
| P2 → buton 3 | Funcție LED cycle |
| P3 → buton 4 | Funcție ESP WiFi scan |
| P4-P7 | Libere momentan |
| Conexiune | Explicație |
|---|---|
| LED R → D3 | Canal roșu, PWM |
| LED G → D5 | Canal verde, PWM |
| LED B → D6 | Canal albastru, PWM |
| LED GND → GND | Catod comun la masă |
| Modul | Conectat la | Explicație |
|---|---|---|
| Receptor 433 MHz GND | GND | Masă receptor |
| Receptor 433 MHz VCC | 5V | Alimentare receptor |
| Receptor 433 MHz DATA | D2 | DATA receptor; folosit cu întrerupere externă |
| Emițător 433 MHz GND | GND | Masă emițător |
| Emițător 433 MHz VCC | 5V | Alimentare emițător |
| Emițător 433 MHz DATA | D8 | Semnalul RF retransmis |
| Semnal | Pin Arduino | Module conectate |
|---|---|---|
| SCK | D13 | OLED, MicroSD |
| MOSI | D11 | OLED, MicroSD |
| MISO | D12 | MicroSD |
| CS OLED | D10 | Select display OLED |
| CS MicroSD | A3 | Select card SD |
| Pin OLED | Conectat la | Explicație |
|---|---|---|
| GND | GND | Masă comună |
| VCC | 5V | Alimentare display |
| SCK | D13 | Clock SPI |
| SDA / MOSI | D11 | Date SPI către display |
| RES | D9 | Reset display |
| DC | A0 | Selectare comandă/date |
| CS | D10 | Chip Select OLED |
| Pin PN532 | Conectat la | Explicație |
|---|---|---|
| 5V | 5V | Alimentare modul |
| GND | GND | Masă comună |
| MO / SDA / TX | A4 / SDA comun | Date I2C |
| NSS / SCL / RX | A5 / SCL comun | Clock I2C |
| R0 / IRQ | A2 | Linie IRQ |
| RST | A1 | Reset hardware |
| SCK | neconectat | Neutilizat în modul I2C |
| M / MISO | neconectat | Neutilizat în modul I2C |
Switch-uri PN532:
Pinii ESP-01 sunt notați cu modulul orientat cu antena/zig-zagul în sus:
1 2 3 4 5 6 7 8
| Pin ESP-01 | Conectat la | Explicație |
|---|---|---|
| 1 | GND | Masă |
| 2 | 3.3V | GPIO2 tras HIGH |
| 3 | 3.3V | GPIO0 tras HIGH pentru rulare normală |
| 4 | Arduino D7 direct | RX ESP; primește comenzile AT de la Arduino |
| 5 | Arduino D4 direct | TX ESP către Arduino |
| 6 | 3.3V | CH_PD / EN tras HIGH |
| 7 | 3.3V | RESET tras HIGH |
| 8 | 3.3V | Alimentare ESP-01 |
Observație: ESP-01 este alimentat doar la 3.3V din AMS1117. Linia D7 → RX ESP este conectată direct în montajul curent.
| Pin MicroSD | Conectat la | Explicație |
|---|---|---|
| VCC | 5V | Alimentare modul MicroSD |
| GND | GND | Masă comună |
| SCK | D13 | Clock SPI |
| MOSI | D11 | Date către card |
| MISO | D12 | Date de la card |
| CS | A3 | Chip Select MicroSD |
Principiul de conectare este următorul: