Flipper One

Introducere

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:

  • capturarea semnalelor RF 433 MHz de la telecomenzi simple
  • retransmiterea semnalelor RF capturate
  • citirea UID-urilor de pe carduri/tag-uri RFID/NFC folosind PN532
  • salvarea semnalelor RF și a UID-urilor RFID pe card MicroSD
  • scanarea rețelelor WiFi din jur folosind ESP-01 / ESP8266
  • afișarea stării sistemului pe ecran OLED
  • control prin 4 butoane conectate prin expander I2C PCF8574
  • feedback vizual prin LED RGB

Î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:

  • adăugarea unei analize mai avansate pentru rețelele WiFi detectate, de exemplu afișarea unui grafic simplu cu puterea semnalului sau distribuția pe canale;
  • adăugarea posibilității de conectare la o rețea WiFi cunoscută.

Laboratoare folosite: GPIO (Lab 0), Întreruperi (Lab 2), Timere/PWM (Lab 3), SPI (Lab 5), plus comunicatie I2C și UART software.

Descriere generală

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:

  1. Idle State: sistemul așteaptă apăsări de buton și afișează starea curentă pe OLED.
  2. RF Capture: receptorul RF ascultă semnalul și salvează duratele pulsurilor detectate.
  3. RF Replay: semnalul RF salvat este retransmis prin emițătorul de 433 MHz.
  4. RFID Scan: PN532 citește UID-ul unui card/tag RFID și îl afișează pe OLED/Serial.
  5. WiFi Scan: ESP-01 scanează rețelele WiFi disponibile și transmite lista către Arduino.
  6. MicroSD Save: datele RF și RFID pot fi salvate pe cardul MicroSD.
  7. LED Feedback: LED-ul RGB indică diferite stări sau moduri de test.

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 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:

  • 5V pentru modulele compatibile cu 5V: OLED, PN532, PCF8574, module RF, MicroSD;
  • 3.3V pentru ESP-01, generat cu AMS1117;
  • GND comun pentru toate modulele.

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.

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; 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

Maparea pinilor Arduino și justificare

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

Conexiuni fizice pe breadboard

Alimentare și magistrale

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

Expander PCF8574 și butoane

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

LED RGB

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ă

Module RF 433 MHz

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

Magistrala SPI

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

OLED SPI

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

PN532 RFID/NFC pe I2C

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:

  • SET0 → H
  • SET1 → L
  • mod de lucru: I2C

ESP-01

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.

MicroSD

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

Explicații schema

Principiul de conectare este următorul:

  • Toate modulele folosesc GND comun, deoarece semnalele digitale trebuie să aibă aceeași referință electrică.
  • OLED-ul și MicroSD-ul folosesc magistrala SPI hardware a Arduino UNO: D13/SCK, D11/MOSI și D12/MISO.
  • Fiecare modul SPI are propriul pin de selectare: OLED pe D10 și MicroSD pe A3.
  • RFID-ul PN532 este conectat pe I2C, împreună cu PCF8574, pentru a evita conflictele pe SPI.
  • Receptorul RF este pus pe D2, deoarece acest pin are întreruperea externă INT0.
  • Emițătorul RF este pus pe D8, pin digital folosit pentru generarea semnalului retransmis.
  • LED-ul RGB este pus pe pini PWM pentru a permite controlul culorilor.
  • Butoanele sunt conectate la PCF8574, pentru a economisi pini pe Arduino.
  • ESP-01 este alimentat din AMS1117 la 3.3V și comunică prin SoftwareSerial cu Arduino.
  • MicroSD-ul este folosit pentru salvarea persistentă a datelor RF și RFID.

Software Design

Rezultate Obţinute

Concluzii

Download

Jurnal

Bibliografie/Resurse

Resurse Hardware

Resurse Software

pm/prj2026/atoader/george.simion2005.txt · Last modified: 2026/05/22 15:11 by george.simion2005
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