Git Product home page Git Product logo

netquack's Introduction

PlatformIO CI Contributors Forks Stargazers Issues


RFQuack Logo

RFQuack

The only RF-analysis tool that quacks!

Documentation | Research Paper

View Demo · Report Bug · Request Feature

About RFQuack

RFQuack is a versatile RF-analysis tool that allows you to sniff, analyze, and transmit data over the air.

Similarly to RFCat RFQuack has a Python-based scriptable shell that allows you to set parameters, receive, transmit, and so on.

(back to top)

Supported Radios

We porting from (and contribute back to) RadioLib. So far, we support:

  • CC1101 OOK, 2-FSK, 4-FSK, MSK radio module
  • nRF24L01 2.4 GHz module
  • RF69 FSK, OOK radio module

Supported Arduino Platforms

In principle, RFQuack can run on any board and platform supported by PlatformIO. So far, we tested the following boards:

  • ESP32 - ESP32-based boards
  • Teensy - Teensy 2.x, 3.x and 4.x boards

Getting Started

This is an example of how you may give instructions on setting up RFQuack.

Prerequisites

You'll need the Protbuf Compiler, a sane Python 3.10, and PlatformIO (which itself requires some dependencies):

  • Protobuf Compiler
  • Python 3.10.x
  • PlatformIO

For more details, please refer to the Documentation.

(back to top)

Installation

An easy way to quick start is to have an ESP32 board and a CC1101 and/or RF69 (easier to find) radio module.

git clone --recursive https://github.com/rfquack/RFQuack
cd RFQuack
pip install -r requirements.pip
vim build.env  # set your parameters and :wq
make clean build flash

For more details, please refer to the Documentation.

(back to top)

Usage

An easy way to quick start is to connect the dongle via USB and use the CLI.

$ rfq tty -P /dev/ttyUSB0
2019-04-10 18:04:31 local RFQuack[20877] INFO Transport initialized
2019-04-10 18:04:31 local RFQuack[20877] INFO Transport initialized (QoS = 2): mid = 2

...

RFQuack(/dev/ttyUSB0, 115200,8,N,1)> q.radioA.set_modem_config(modulation="OOK", carrierFreq=434.437)

result = 0
message = 2 changes applied and 0 failed.

RFQuack(/dev/ttyUSB0, 115200,8,N,1)> q.radioA.rx()

result = 0
message =
...

For more details, please refer to the Documentation.

Roadmap

  • Add all relevant RadioLib modules
  • Test with more than 2 radio modules
  • Revisit Python CLI source code and use typed Python 3
  • Integrate with URH and GNU Radio
  • Make a web UI

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the proper template.

Don't forget to give the project a star! Thanks again!

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Run simple integration tests (make clean build)
  5. Push to the branch (git push origin feature/AmazingFeature)
  6. Open a Pull Request

(back to top)

License

Distributed under the GPL 2 License. See LICENSE for more information.

(back to top)

Acknowledgments

RFQuack wouldn't exist without the inspiration, feedback, and help received from related tools and awesome humans:

(back to top)

netquack's People

Contributors

fiorixf1 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

netquack's Issues

Publish Lambda source code too

Is there a proper "AWS way" to publish the code separately from the ZIP files and use a builder script that creates the ZIP files? That would ease maintenance.

Cleanup netquack-api.json

I guess the dcati6zcrh part should be made into a variable.

"servers": [
    {
      "url": "https://dcati6zcrh.execute-api.${AWS_REGION}.amazonaws.com/{basePath}",
      "variables": {
        "basePath": {
          "default": "/dev"
        }
      }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.