Нет описания

Chaka 2c182b8d6e Merge branch 'write_tag' of https://github.com/frux-c/uhf_rfid into write_tag 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 07e162a111 inital commit to add write tag 2 лет назад
README.md 889028ad4d Update README.md 2 лет назад
application.fam cd4014e736 simple working read sequence complete. 2 лет назад
uhf_app.c 68d639a81a now suspends UART on app exit and resumes on enter, and added success noise back 2 лет назад
uhf_app.h 59392b764b added landing app scene 2 лет назад
uhf_app_i.h 4baca85a63 still experimental changes, epc, user not working 2 лет назад
uhf_cmd.c 28b375c9f0 added steps to read all banks, not working yet 2 лет назад
uhf_cmd.h 2bd98c3f09 also refractoring read, missing some key features 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_worker.c 07e162a111 inital commit to add write tag 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 :