Initial commit, migrated repo

This commit is contained in:
Boyan 2022-07-18 22:49:18 +03:00
parent 5f82fb381e
commit fc99371913
6 changed files with 110 additions and 1 deletions

View File

@ -1,3 +1,54 @@
# RaspiQRP # RaspiQRP
Making a raspberry pi zero 2 w into a QRP. This is a project that takes:
* an SDR stick
* a Raspberry Pi Zero 2 W
* an USB audio card
* some wires, indicators and screens
* an RF amplifier
and turns them into a full-fledged QRP!
Currently there is no prototype, yet there is a plan present, which is good.
The total cost of this device seems to be around 90€, while the cheapest QRP I found on Aliexpress is 100€.
This difference might seem insignificant, but I bet that you have at least 70% of the supplies needed somewhere in your shack.
The screens, buttons and leds are absolutely replaceable, but you'll need to tweak the code a it.
As of right now, the planned device will be composed of:
## 1. Raspberry Pi Zero
<img src="https://cdn.littlebird.com.au/images/files/000/032/722/large/LB-00152.jpg?1535774731" alt="raspi" width="200px" align="left">
<ul>
<li> To take input from a potentiometer(encoder) in order to shift the frequency that we want to TX/RX.</li>
<li> To control the RTL-SDR stick and pipe the audio to the speaker, through the USB audio card.</li>
<li> To stream audio from the microphone, and pipe it to <a href="https://github.com/F5OEO/rpitx">rpitx(this project is really cool)<sup>1</sup></a> which then will get amplified using the amp.</li>
</ul>
<sub>1. Please do read about this project, as it is vital stepping stone for this one.</sub>
<br><br>
<br><br>
<br><br>
## 2. Arduino TM4638 board
<img src="https://www.elektro-hofman.cz/_obchody/elektro-hofman.shop5.cz/prilohy/39/pametovy-modul-spi-na-sd-kartu-pro-arduino.jpg.big.jpg" width="200px" alt="TM4638" align="left"/>
<ul>
<li> Using <a href="https://github.com/gavinlyonsrepo/TM1638plus_RPI">this library</a>.</li>
<li> To spare us of the pain of wiring an LCD. </li>
<li> View the current frequency we're at. </li>
<li> To let us change the bands, using the 8 buttons on the bottom. </li>
<li> Indicate states of the device using the LEDs. </li>
</ul>
<br><br>
<br><br>
<br><br>
# Wiring
![Wiring image](./wiring/wiring_bb.png)
Sorry in advance for the trashy diagram, but this is my first ever attempt at wiring diagrams. The rtl-sdr and the audio card need to be put in the usb port, using a hub of some sort.

21
TODO.md Normal file
View File

@ -0,0 +1,21 @@
* [x] implement ssb
* [x] create main.py
* [x] eat dinner
* [ ] start working on an actual raspberry pi
* [ ] get all parts needed
* [x] calculate the entire cost, so you can boast that it's probably two-three times cheaper than the cheapest QRP out there
* [ ] write the code for the screen/leds/buttons
* [ ] wire rpitx and the sdr stick to use the same frequency and mod
* [ ] wire them both to the potentiometer
* [ ] get the frequency to show on the screen
* [ ] wire(and make) a PTT button
* [ ] make LEDs flash for tx and rx
* [ ] connect mic and speaker respectively to rpitx and the rtlsdr
* [ ] fix the inevitable audio issues
* [ ] fix them again
* [ ] one last time i swear
* [ ] if everything works as expected, add more modulations
* [ ] program the buttons to change modulations
* [ ] audio issues
* [ ] mayyybe try to make it look pretty, with a box or something
* [ ] **you need a fan for the amplifier BTW**

0
main.py Normal file
View File

37
modulations/ssb.sh Executable file
View File

@ -0,0 +1,37 @@
#!/bin/sh
# Pin logic
#selecting pin
GPIO=26
# "Prepare" it, whatever that means, I just copied it from SO
if [ ! -d /sys/class/gpio/gpio${GPIO} ]; then
echo "${GPIO}" > /sys/class/gpio/export
fi
echo "in" > /sys/class/gpio/gpio"${GPIO}"/direction
# old line
#(while true; do cat sampleaudio.wav; done)
while true; do
if [ 1 == "$(</sys/class/gpio/gpio"${GPIO}"/value)" ]; then
# REMOVE THIS
echo "Not pressed"
else
# do arecord -l or arecord -L to find your audio card and change hw:0,7 to the corresponding value
arecord -q -f cd -r 44100 -c2 -D hw:0,7 -t raw | csdr convert_i16_f \ | csdr fir_interpolate_cc 2 | csdr dsb_fc \ | csdr bandpass_fir_fft_cc 0.002 0.06 0.01 | csdr fastagc_ff \ | sudo ./sendiq -i /dev/stdin -s 96000 -f "$1" -t float
# maybe i just need to extract this command and put it in a subprocess... 🤔
fi
sleep .5
done
# this should work
# screen will probably be operated using python, so all we need to do there is to killall ssb.sh, then run a new one with new freq async subproc
# usage: bash ssb.sh "freq"

BIN
wiring/wiring.fzz Normal file

Binary file not shown.

BIN
wiring/wiring_bb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 KiB