Git Product home page Git Product logo

smrp-pi's Introduction

smrp-pi

Short Message Radiopacket Protocol for Raspberry Pi (3b) Frequency Key Shifting experiment

SMRP-PI is a very simple FSK radio packet protocol for deliver short messages at about ~90 characters (ASCII/UTF-8) per minute. This experiment is more focused in some integrity instead of speed. This experiment takes advantage of "rpitx" project, which permits transmit radio using the PWM GPIO port of raspberry pi. This protocol is intended for transmit short-length information from weather stations, non-critical sensors, automatic digital signage updates, or some kind of notifications. The message is coded using generated square tones between 2 and 3000 Hz.

  • LEGAL NOTE *

For your safety (and specially for the radioelectric safety of your neighborhood) and licensing issues, this script doesn't contains rpitx python files that you need to work. So you should modify the code or use bash like this (while true; do python encode.py; sudo ./pifmrds -freq "$1" -audio sampleaudio.wav; done;).

This software is intended for licensed amateur radio operators as a proof-of-concept and should not be used by anyone. SMRP-PI uses "rpitx", a tool that transmit radio signals from PWM port of GPIO rpi. SQUARE radio signals ( = harmonics !!). This means that your emission will be retransmitted in some (undesired) places of the spectrum. In the most countries around the world, it is illegal to transmit radio without license and/or appropiate equipment. The transmit power of RPI (10 mW) is enough to create severe problems in a lot of devices. For security reasons, do not use this program on city environments, because you can interfere with pacemakers telemetry, electronic medical supplies, headphones, telephones, alarms, etc. If you want to securely test, use some band pass filters and strong attenuators to connect directly the GPIO pin to SDR antenna in. This is the way I do. If you do not use attenuators, the signal is strong enough to burn your SDR hardware, so be careful.

HOW IT WORKS:

  1. User types a message.
  2. The message is converted to hex.
  3. The hex characters are converted to audio signals at specific frequencies to a wav file.
  4. The WAV file is broadcasted (this is the step that you have to complete by yourself, i.ex. using bash or including rpitx as a python library).
  5. The receiver program detects the start tone, and listen for specific frequencies, which are translated to hex again.
  6. The receiver calculates the first 3 digits of a md5 hash calculated from the message and compares it with the 3 digits received after the "separator" tone.
  7. The end tone is received. If the checksums are equal, integrity is OK and the program shows the message.
  8. Receiver program exits decrypter, and go idle again.

smrp-pi's People

Contributors

disketteomelette avatar

Stargazers

 avatar  avatar

Watchers

 avatar

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.