kopia lustrzana https://github.com/F5OEO/rpitx
Improved README formatting and wording
rodzic
177e7ef74a
commit
1c0bc9df9e
|
@ -0,0 +1,103 @@
|
|||
**rpitx** is a radio transmitter for Raspberry Pi (B, B+, PI2, PI3 and PI zero) that transmits RF directly to GPIO. It can handle frequencies from 5 KHz up to 500 MHz.
|
||||
|
||||
_Created by Evariste Courjaud F5OEO. Code is GPL_
|
||||
|
||||
# Installation
|
||||
```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)
|
||||
./install.sh
|
||||
```
|
||||
# Hardware
|
||||
Plug a wire on GPIO 18, means Pin 12 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 lenght 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).
|
||||
|
||||
### SSB modulation
|
||||
**pissb** converts an audio file (Wav 48KHZ mono only!) to SSB (USB right now) and outputs it
|
||||
to an IQ file.
|
||||
Assuming your audio file is in your current working directory:
|
||||
```sh
|
||||
./pissb audio48mono.wav ssbIQ.wav
|
||||
```
|
||||
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.
|
||||
|
||||
### FM modulation
|
||||
**pifm** converts an audio file (Wav, 48KHz, 1 channel, pcm_s16le codec) to Narrow band FM (12.5khz excursion) and outputs it to a .ft file.
|
||||
Assuming your audio file is in your current working directory
|
||||
```sh
|
||||
./pifm audio48mono.wav fm.ft
|
||||
```
|
||||
You could then transmit it on 100MHZ (please set a correct frequency to be legal)
|
||||
```sh
|
||||
sudo ./rpitx -m RF -i fm.ft -f 100000 -l
|
||||
```
|
||||
A sample script : `testfm.sh` is included.
|
||||
|
||||
### SSTV
|
||||
**pisstv** converts an RGB picture to an SSTV .ft file.
|
||||
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 transform it to a .ft file with:
|
||||
```sh
|
||||
./pisstv picture.rgb picture.ft
|
||||
```
|
||||
And then transmit it to 100MHZ (please set a correct frequency to be legal)
|
||||
```sh
|
||||
sudo ./rpitx -m RF -i picture.ft -f 100000
|
||||
```
|
||||
A sample script `snapsstv.sh` grabs a picture from a PiCamera and then transmits it on 50.105 MHz.
|
||||
|
||||
### FSQ
|
||||
**pifsq** allows to send a text with the new FSQ modulation
|
||||
It is still under development.
|
||||
A sample script `testfsq.sh` allows to send a text with FSQ
|
||||
|
||||
### 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
|
||||
```
|
||||
|
||||
# Notes
|
||||
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/
|
96
Readme.md
96
Readme.md
|
@ -1,96 +0,0 @@
|
|||
**rpitx** is a radio transmitter for Raspberry Pi (B,B+,PI2,PI3 and Pizero) which transmit RF directly to GPIO 5KHZ to 500MHZ.
|
||||
|
||||
|
||||
*(Created by Evariste Courjaud F5OEO. Code is GPL)*
|
||||
*
|
||||
<h1> Installation </h1>
|
||||
git clone https://github.com/F5OEO/rpitx
|
||||
cd rpitx
|
||||
make sure to have access to Internet to download packages : libsndfile1-dev and imagemagick otherwise install them manualy
|
||||
./install.sh
|
||||
|
||||
<h1>Hardware</h1>
|
||||
Plug a wire on GPIO 18, means Pin 12 of the GPIO header ([header P1](http://elinux.org/RPi_Low-level_peripherals#General_Purpose_Input.2FOutput_.28GPIO.29)): this act as the antenna. Length depend on transmit frequency, but with few centimeters it works for local testing.
|
||||
|
||||
<h1>Short manual</h1>
|
||||
|
||||
<h2> General </h2>
|
||||
**rpitx** is the main software to transmit. It allows to transmit
|
||||
- from **IQ** files *.iq (could be generated by external software like gnuradio or by some few examples of modulations).
|
||||
- from **Frequency/Time** files *.ft (generally used implement easily 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).
|
||||
|
||||
<h2> Modulation samples </h2>
|
||||
Some modulations are included in the software and can be easily extended. They create files which could be ingest by rpitx.
|
||||
Some output in IQ (like ssb) other in FT(like sstv)
|
||||
<h3> SSB modulation </h3>
|
||||
**pissb** convert an audio file (Wav 48KHZ mono only!) to SSB (USB right now) and output it on a IQ file.
|
||||
Assuming your audio file is in the folder
|
||||
```
|
||||
./pissb audio48mono.wav ssbIQ.wav
|
||||
```
|
||||
You could then transmit it on 50MHZ (please set a correct frequency to be legal)
|
||||
```
|
||||
sudo ./rpitx -m IQ -i ssbIQ.wav -f 50000 -l
|
||||
```
|
||||
A sample script : **testssb.sh** is included.
|
||||
<h3> FM modulation </h3>
|
||||
**pifm** convert an audio file (Wav, 48KHz, 1 channel, pcm_s16le codec) to Narrow band FM (12.5khz excursion) and output it on a .ft file.
|
||||
Assuming your audio file is in the folder
|
||||
```
|
||||
./pifm audio48mono.wav fm.ft
|
||||
```
|
||||
You could then transmit it on 100MHZ (please set a correct frequency to be legal)
|
||||
```
|
||||
sudo ./rpitx -m RF -i fm.ft -f 100000 -l
|
||||
```
|
||||
A sample script : **testfm.sh** is included.
|
||||
<h3> SSTV </h3>
|
||||
**pisstv** convert a picture(rgb) to a SSTV .ft file
|
||||
if you have a jpeg picture 320*256 you could transform it to rgb with imagemagick
|
||||
convert -depth 8 picture.jpg picture.rgb
|
||||
Then convert to .ft file :
|
||||
```
|
||||
./pisstv picture.rgb picture.ft
|
||||
```
|
||||
And then transmit it to 100MHZ (please set a correct frequency to be legal)
|
||||
```
|
||||
sudo ./rpitx -m RF -i picture.ft -f 100000
|
||||
```
|
||||
A sample script : **snapsstv.sh** allows to grab a picture from the Picamera and transmit it
|
||||
<h3> FSQ </h3>
|
||||
**pifsq** allows to send a text with the new FSQ modulation
|
||||
It is still in test.
|
||||
A sample script : **testfsq.sh** allows to send a text with FSQ
|
||||
<h3> VFO </h3>
|
||||
A **VFO** mode is provided to allows precise frequency resolution.
|
||||
Example for generate a carrier on 100MHZ(please set a correct frequency to be legal)
|
||||
```
|
||||
sudo ./rpitx -m VFO -f 100000
|
||||
```
|
||||
<h1> Notes </h1>
|
||||
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/
|
||||
|
||||
|
||||
|
Ładowanie…
Reference in New Issue