暫無描述

Chaka 0aa2d6f403 reworking uhf_data to seprate classes and adding a module framework 2 年之前
assets ef38b1eec8 experimental changes, might roll back or not 2 年之前
icons 4026ea0a9b partially working ui, with a BusFault error on app exit 2 年之前
scenes 32bc4114c7 somewhat working uhf write, will do till refractoring is done 2 年之前
README.md 889028ad4d Update README.md 2 年之前
application.fam cd4014e736 simple working read sequence complete. 2 年之前
uhf_app.c 32bc4114c7 somewhat working uhf write, will do till refractoring is done 2 年之前
uhf_app.h 59392b764b added landing app scene 2 年之前
uhf_app_i.h 4baca85a63 still experimental changes, epc, user not working 2 年之前
uhf_buffer.c 0aa2d6f403 reworking uhf_data to seprate classes and adding a module framework 2 年之前
uhf_buffer.h 0aa2d6f403 reworking uhf_data to seprate classes and adding a module framework 2 年之前
uhf_cmd.c 28b375c9f0 added steps to read all banks, not working yet 2 年之前
uhf_cmd.h 32bc4114c7 somewhat working uhf write, will do till refractoring is done 2 年之前
uhf_data.c 2555eb4f3d finished adding refactoring and adding save, read, view saved and delete saved 2 年之前
uhf_data.h 2555eb4f3d finished adding refactoring and adding save, read, view saved and delete saved 2 年之前
uhf_data_i.h 59392b764b added landing app scene 2 年之前
uhf_device.c 0feb37ed3d bug fix 2 年之前
uhf_device.h 4baca85a63 still experimental changes, epc, user not working 2 年之前
uhf_module.c 0aa2d6f403 reworking uhf_data to seprate classes and adding a module framework 2 年之前
uhf_module.h 0aa2d6f403 reworking uhf_data to seprate classes and adding a module framework 2 年之前
uhf_module_cmd.h 0aa2d6f403 reworking uhf_data to seprate classes and adding a module framework 2 年之前
uhf_tag.h 0aa2d6f403 reworking uhf_data to seprate classes and adding a module framework 2 年之前
uhf_worker.c 32bc4114c7 somewhat working uhf write, will do till refractoring is done 2 年之前
uhf_worker.h 4baca85a63 still experimental changes, epc, user not working 2 年之前

README.md

[UHF]RFID App for FlipperZero

FlipperZero

Overview

This repository contains a UHF RFID application developed for FlipperZero, a versatile multi-tool device. The app leverages the YRM100 module to enable UHF RFID functionality.

Features

  • Read Single UHF RFID tag.
  • View saved UHF RFID tag.
  • Write Single UHF RFID tag. (in progress)
  • Change Module setting parameters.
  • Easy-to-use interface on FlipperZero's display.
    • Extras
      • Read multiple tags at once
      • View multiple on a list view

Requirements

To run this application on FlipperZero, you will need:

Setup and Installation

  1. Ensure you have set up your FlipperZero device with the YRM100 module properly. You can also read more about how to setup the module from the Md5Stack Docs page. wiring diagram
  2. Clone this repository to the applications_user folder of your flipper firmware of your choice
  3. If you have VSCode setup with your flipper firmware.
    • ### Windows
      1. Press Ctrl+Shift+B on vscode while in the uhf_app folder
      2. Select the Launch App on Flipper option. And watch as the app launches on your flipper
      3. If you don't have vscode setup you can use the cli command ./fbt COMPACT=1 DEBUG=0 launch APPSRC=applications_user\uhf_rfid
    • ### MacOS ... tbd

Usage

  1. Power on your FlipperZero device.
  2. Connect the uhf module to the flipper via gpio.
  3. Navigate to the UHF RFID app on FlipperZero's menu.
  4. Currently Reading the EPC tag is the only usable option ... will further update this page as it development goes

Contributions

As this app is still in the development stage, I welcome contributions to this project. If you find any issues or want to enhance the application, feel free to create a pull request.

Future Plans

  • Code cleanup
  • Build a framework around the chip communication commands
  • Build a proper tag class

    // Ideal concept
    #include <stdint.h>
    #include <stdio.h>
    #include <string.h>
    
    typedef struct {
    int uart_fd; // UART file descriptor or other identifier
    } YRM100_RFID;
    
    void sendCommand(YRM100_RFID *rfid, const uint8_t *command, size_t length) {
    // Implementation to send the command through UART
    // Write the command to the UART interface using rfid->uart_fd
    }
    
    // Configuration functions:
    
    void setCommunicationBaudRate(YRM100_RFID *rfid) {
    uint8_t command[] = {0xBB, 0x00, 0x11, 0x00, 0x02, 0x00, 0xC0, 0xD3, 0x7E};
    sendCommand(rfid, command, sizeof(command));
    }
    
    void setWorkingArea(YRM100_RFID *rfid, uint8_t area) {
    uint8_t command[] = {0xBB, 0x00, 0x07, 0x00, 0x01, area, 0x09, 0x7E}; 
    sendCommand(rfid, command, sizeof(command));
    }
    
    // other method etc ... 
    
    // Ideal concept
    #include <stdint.h>
    #include <stdlib.h>
    
    typedef struct {
    uint8_t *killPassword;
    uint8_t *accessPassword;
    size_t size;
    } ReservedMemory;
    
    typedef struct {
    uint8_t *header;
    uint8_t *filter;
    uint8_t *partition;
    uint8_t *companyPrefix;
    uint8_t *itemReference;
    size_t size;
    } EPCMemory;
    
    typedef struct {
    uint8_t *tid;
    size_t size;
    } TIDMemory;
    
    typedef struct {
    uint8_t *userMemory;
    size_t size;
    } UserMemory;
    
    typedef struct {
    ReservedMemory reserved;
    EPCMemory epc;
    TIDMemory tid;
    UserMemory user;
    } ISO18000_6C_Tag;
    

Disclaimer

  • This application is provided as-is and may contain bugs or issues.
  • Use it at your own risk.
  • I am not responsible for any damage or loss caused by the usage of this app.

Extra Resources

Contact

For any inquiries or support, you can reach out to us at :