This shows you the differences between two versions of the page.
|
pm:prj2026:atoader:george.simion2005 [2026/05/22 15:02] george.simion2005 |
pm:prj2026:atoader:george.simion2005 [2026/05/22 15:11] (current) george.simion2005 |
||
|---|---|---|---|
| Line 3: | Line 3: | ||
| ===== Introducere ===== | ===== Introducere ===== | ||
| - | Proiectul Flipper One reprezintă o **mini-replică a dispozitivului Flipper Zero**, construită în jurul unei plăci Arduino UNO cu microcontroller ATmega328P. | + | 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. |
| - | 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. | + | 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. | 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: | Funcționalități principale: | ||
| - | * capturarea semnalelor RF 433 MHz de la telecomenzi simple | + | * capturarea semnalelor RF 433 MHz de la telecomenzi simple |
| - | * retransmiterea semnalelor RF capturate | + | * retransmiterea semnalelor RF capturate |
| - | * citirea UID-urilor de pe carduri/tag-uri RFID/NFC folosind PN532 | + | * citirea UID-urilor de pe carduri/tag-uri RFID/NFC folosind PN532 |
| - | * salvarea semnalelor RF și a UID-urilor RFID pe card MicroSD | + | * salvarea semnalelor RF și a UID-urilor RFID pe card MicroSD |
| - | * scanarea rețelelor WiFi din jur folosind ESP-01 / ESP8266 | + | * scanarea rețelelor WiFi din jur folosind ESP-01 / ESP8266 |
| - | * afișarea stării sistemului pe ecran OLED | + | * afișarea stării sistemului pe ecran OLED |
| - | * control prin 4 butoane conectate prin expander I2C PCF8574 | + | * control prin 4 butoane conectate prin expander I2C PCF8574 |
| - | * feedback vizual prin LED RGB | + | * 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. | Î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: | 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 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ă. | + | * 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. | **Laboratoare folosite**: GPIO (Lab 0), Întreruperi (Lab 2), Timere/PWM (Lab 3), SPI (Lab 5), plus comunicatie I2C și UART software. | ||
| Line 42: | Line 42: | ||
| Logica generală de funcționare: | Logica generală de funcționare: | ||
| - | - **Idle State**: sistemul așteaptă apăsări de buton și afișează starea curentă pe OLED. | + | - **Idle State**: sistemul așteaptă apăsări de buton și afișează starea curentă pe OLED. |
| - | - **RF Capture**: receptorul RF ascultă semnalul și salvează duratele pulsurilor detectate. | + | - **RF Capture**: receptorul RF ascultă semnalul și salvează duratele pulsurilor detectate. |
| - | - **RF Replay**: semnalul RF salvat este retransmis prin emițătorul de 433 MHz. | + | - **RF Replay**: semnalul RF salvat este retransmis prin emițătorul de 433 MHz. |
| - | - **RFID Scan**: PN532 citește UID-ul unui card/tag RFID și îl afișează pe OLED/Serial. | + | - **RFID Scan**: PN532 citește UID-ul unui card/tag RFID și îl afișează pe OLED/Serial. |
| - | - **WiFi Scan**: ESP-01 scanează rețelele WiFi disponibile și transmite lista către Arduino. | + | - **WiFi Scan**: ESP-01 scanează rețelele WiFi disponibile și transmite lista către Arduino. |
| - | - **MicroSD Save**: datele RF și RFID pot fi salvate pe cardul MicroSD. | + | - **MicroSD Save**: datele RF și RFID pot fi salvate pe cardul MicroSD. |
| - | - **LED Feedback**: LED-ul RGB indică diferite stări sau moduri de test. | + | - **LED Feedback**: LED-ul RGB indică diferite stări sau moduri de test. |
| {{:pm:prj2026:atoader:flipperone_blockdiagram_george.simion2005.png?700|Schema bloc Flipper One}} | {{:pm:prj2026:atoader:flipperone_blockdiagram_george.simion2005.png?700|Schema bloc Flipper One}} | ||
| Line 59: | Line 59: | ||
| Partea de alimentare este organizată pe magistrale de breadboard: | Partea de alimentare este organizată pe magistrale de breadboard: | ||
| - | * **5V** pentru modulele compatibile cu 5V: OLED, PN532, PCF8574, module RF, MicroSD; | + | * **5V** pentru modulele compatibile cu 5V: OLED, PN532, PCF8574, module RF, MicroSD; |
| - | * **3.3V** pentru ESP-01, generat cu AMS1117; | + | * **3.3V** pentru ESP-01, generat cu AMS1117; |
| - | * **GND comun** pentru toate modulele. | + | * **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 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. | ||
| Line 115: | Line 115: | ||
| | **A4** | SDA comun: PCF8574 + PN532 | Linia hardware I2C SDA | | | **A4** | SDA comun: PCF8574 + PN532 | Linia hardware I2C SDA | | ||
| | **A5** | SCL comun: PCF8574 + PN532 | Linia hardware I2C SCL | | | **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: | ||
| + | |||
| + | <code> | ||
| + | 1 2 3 4 | ||
| + | 5 6 7 8 | ||
| + | </code> | ||
| + | |||
| + | ^ 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 ===== | ===== Software Design ===== | ||
| Line 132: | Line 257: | ||
| * [[https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf|Datasheet ATmega328P]] | * [[https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf|Datasheet ATmega328P]] | ||
| * [[https://www.nxp.com/docs/en/data-sheet/PCF8574.pdf|Datasheet PCF8574]] | * [[https://www.nxp.com/docs/en/data-sheet/PCF8574.pdf|Datasheet PCF8574]] | ||
| - | * [[https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf|Datasheet PN532]] | + | * [[https://www.nxp.com/docs/en/data-sheet/PN532_C1.pdf|Datasheet PN532]] |
| * [[https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf|Datasheet ESP8266]] | * [[https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf|Datasheet ESP8266]] | ||