Initial readme for v2

v2beta
F5OEO 2018-11-01 23:51:53 +01:00 zatwierdzone przez GitHub
rodzic 56e7a26627
commit b9395a0bca
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
1 zmienionych plików z 61 dodań i 81 usunięć

142
README.md
Wyświetl plik

@ -1,109 +1,89 @@
**rpitx** is a radio transmitter for Raspberry Pi (B, B+, PI2, PI3B,PI3B+,PIZero,PiZerow) that transmits RF directly to GPIO. It can handle frequencies from 5 KHz up to 1500 MHz.
![rpitx banner](/doc/Galois-pastemps.jpg)
# About rpitx
**rpitx** is a general radio frequency transmitter for Raspberry Pi which doesn't require any other hardware unless filter to avoid intererence. It can handle frequencies from 5 KHz up to 1500 MHz.
Before you transmit, know your laws. **rpitx** has not been tested for compliance with regulations governing transmission of radio signals. You are responsible for using your **rpitx** legally.
Rpitx is a software made for educational on RF system. It has not been tested for compliance with regulations governing transmission of radio signals. You are responsible for using your Raspberry Pi legally.
Rpitx is now based on a general Radio Frequency library : https://github.com/F5OEO/librpitx
_Created by Evariste Courjaud F5OEO. Code is GPL_
_Created by Evariste Courjaud F5OEO. See Licence for using it.
# Installation
Assuming a Raspbian Lite installation (stretch) : https://www.raspberrypi.org/downloads/raspbian/
Be sure to have git package installed :
```sh
sudo apt-get update
sudo apt-get install git
```
You can now clone the repository. A script (install.sh) is there for easy installation. You could inspect it and make steps manualy in case of any doubt. You can note that /boot/config.txt should be prompt to be modified during the installation. If it is not accepted, **rpitx** will be unstable.
```sh
git clone https://github.com/F5OEO/rpitx
cd rpitx
# make sure to have access to the internet to download packages
# or download and install them manually (libsndfile1-dev and imagemagick)
git checkout v2beta
./install.sh
```
Make a reboot in order to use **rpitx** in a stable state.
That's it !
```sh
sudo reboot
```
# Hardware
![bpf](/doc/bpf-warning.png)
Plug a wire on GPIO 4, means Pin 7 of the GPIO header ([header P1](http://elinux.org/RPi_Low-level_peripherals#General_Purpose_Input.2FOutput_.28GPIO.29)). This acts as the antenna. The optimal length of the wire depends the frequency you want to transmit on, but it works with a few centimeters for local testing.
# Short manual
## General
**rpitx** is the main software to transmit. It allows to transmit from:
- **IQ** files *.iq (can be generated by external software like [GNU Radio](http://gnuradio.org/)).
- **Frequency/Time** files *.ft (generally used to easily implement digital modes)
Usage:
```
rpitx [-i File Input][-m ModeInput] [-f frequency output] [-s Samplerate] [-l] [-p ppm] [-h]
-m {IQ(FileInput is a Stereo Wav contains I on left Channel, Q on right channel)}
{IQFLOAT(FileInput is a Raw float interlaced I,Q)}
{RF(FileInput is a (double)Frequency,Time in nanoseconds}
{RFA(FileInput is a (double)Frequency,(int)Time in nanoseconds,(float)Amplitude}
{VFO (constant frequency)}
-i path to File Input
-f float frequency to output on GPIO_18 pin 12 in khz : (130 kHz to 750 MHz),
-l loop mode for file input
-p float frequency correction in parts per million (ppm), positive or negative, for calibration, default 0.
-d int DMABurstSize (default 1000) but for very short message, could be decrease
-c 1 Transmit on GPIO 4 (Pin 7) instead of GPIO 18
-h help (this help).
```
## Modulation samples
Some modulations are included in this repository and can be easily extended. These scripts create files which can be used by rpitx.
Some output in IQ (like SSB) other in FT (like SSTV).
### Single Side Band modulation (SSB)
**pissb** converts an audio file (Wav 48KHZ mono only!) to [SSB](https://www.sigidwiki.com/wiki/Single_Sideband_Voice) (Upper Side Band right now) and outputs it
to an IQ file.
Assuming your audio file is in your current working directory:
# How to use it
![easymenu](/doc/easymenu.png)
## Easytest
**easytest** is the easiest way to start and see some demonstration. All transmission are made on free ISM band (434MHZ).
To launch it, go to rpitx folder and launch easytest.sh :
```sh
./pissb audio48mono.wav ssbIQ.wav
cd rpitx
./easytest.sh
```
You could then transmit it on 50MHz (please set a correct frequency to be legal)
```sh
sudo ./rpitx -m IQ -i ssbIQ.wav -f 50000 -l
```
A sample script `testssb.sh` is included.
Easy way to monitor what you are doing is by using a SDR software and a SDR receiver like a rtl-sdr one and set the frequency to 434MHZ.
### Broadcat Frequency Modulation (FM)
**pifm** converts an audio file (Wav) to broadcast FM using Christophe Jacquet (F8FTK) PiFmRds project fork : https://github.com/F5OEO/PiFmRds
### Carrier ###
![Carrier](/doc/Tunerpitx.png)
A simple carrier generated at 434MHZ.
See Readme from this project for instructions.
### Chirp ###
![Chirp](/doc/chirprpitx.png)
A carrier which move around 434MHZ.
### Slow Scan Television (SSTV)
**pisstv** converts an RGB picture to a [SSTV](https://www.sigidwiki.com/wiki/SSTV) .ft file.
The SSTV module will transmit using the Martin M1 encoding mode.
### Spectrum ###
![Spectrum](/doc/spectrumrpitx.png)
A picture is displayed on the waterfall on your SDR. Note that you should make some tweaks in order to obtain contrast and correct size depending on your reception and SDR software you use.
If you have a JPEG picture 320x256 you can convert it to an RGB picture with:
```sh
imagemagick convert -depth 8 picture.jpg picture.rgb
```
You can then transmit on 144.5Mhz (please set a correct frequency to be legal) :
```sh
./pisstv picture.rgb 144.5e6
```
A sample script `snapsstv.sh` grabs a picture from a PiCamera and then transmits it on 144.5 MHz.
### FM with RDS ###
![FMRDS](/doc/fmrds.png)
Broadcast FM with RDS. You should receive it with your SDR. This is the modulation that you should hear on your classical FM Radio receiver, but at this time, the frequency is too high.
### Fast Simple QSO (FSQ)
**pifsq** allows to send a text with the new [FSQ](https://www.sigidwiki.com/wiki/FSQ) modulation
### Single Side Band modulation (SSB) ###
![SSB](/doc/ssbrpitx.png)
This is the classical Hamradio analog voice modulation. Use your SDR in USB mode.
It is still under development.
### Slow Scan Television (SSTV) ###
![SSTV](/doc/sstvrpitx.JPG)
This is a picture transmission mode using audio modulation (USB mode). You need an extra software to decode and display it (qsstv,msstv...). This demo uses the Martin1 mode of sstv.
A sample script `testfsq.sh` allows to send a text with FSQ
### Opera (Beacon) ###
![opera](/doc/operarpitx.JPG)
This a beacon mode which sound like Morse. You need opera in mode 0.5 to decode.
### Weak Signal Propagation Reporter (WSPR)
**wsprrpi** allows to send wspr beacon https://en.wikipedia.org/wiki/WSPR_(amateur_radio_software)
It uses a fork from James (https://github.com/JamesP6000/WsprryPi) project and adpated to librpitx for frequency ehancement and cleaner spectrum (to be confirmed)
### Pocsag (pager mode) ###
![pocsag](/doc/pocsagrpitx.JPG)
This is a mode used by pagers. You need an extra software to decode. Set your SDR in NBFM mode.
See https://github.com/F5OEO/WsprryPi for instructions
### Freedv (digital voice) ###
![freedv](/doc/freedvrpitx.JPG)
This is state of the art opensource digital modulation. You need Freedv for demodulation.
### Variable Frequency Offset (VFO)
A **VFO** mode is provided to allows precise frequency resolution.
For example to set a carrier on 100MHz (please set a correct frequency to be legal)
```sh
sudo ./rpitx -m VFO -f 100000
```
## To continue
**rpitx** is a generic RF transmitter. There is a lot of modulation to do with it and also documentation to make all that easy to contribute. This will be the next step ! Feel free to inspect scripts, change parameters (frequencies, audio input, pictures...).
# Notes
# Credits
All rights of the original authors reserved.
Special thanks to Sylvain Azarian F4GKR for improving SSB modulation
Inspired by
* http://pe1nnz.nl.eu.org/2013/05/direct-ssb-generation-on-pll.html
* http://www.icrobotics.co.uk/wiki/index.php/Turning_the_Raspberry_Pi_Into_an_FM_Transmitter
* https://github.com/richardghirst/PiBits/pull/18
* http://www.bellard.org/dvbt/
I try to include all licences and authors in sourcecode. Need to write all references in this section.