Coder Social home page Coder Social logo

paulh002 / sdrberry Goto Github PK

View Code? Open in Web Editor NEW
45.0 11.0 7.0 290.49 MB

Raspberry pi SDR tranceiver using lvgl gui

License: GNU General Public License v3.0

C++ 70.46% C 27.96% CMake 0.15% Makefile 0.02% Shell 1.40%
plutosdr sdr raspberry-pi sdrplay radioberry ft8 soapysdr

sdrberry's People

Contributors

paulh002 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sdrberry's Issues

launch sdrberry with hackrf One

Hi Paul
I try to launch sdrberry with hackrf one but without success.
PothosSDR module is intalled, hackrf too, Hackrf is declared inside .cfg file but when I launch sdrberry process is blocked with line "start AMDemodulator" and nothing more happen.
What I have missed????
My config is last Bullseye OS on RPi 4 2Go.
PS: when I try to launch sdrberry with default .cfg file sdr screen appears but I can do nothing because no radioberry module is connected.

Project development

Hello! A very beautiful project. It is surprising that little is known about him. Will there be HPSDR support? And support for external buttons, such as in piHPSDR

questions ?

Why is it you build sopaysdr insted of installing the pkg ?

I am working to follow what your doing but its a long trail

Issue with building (GUI_ft8bar)

First, thanks for nice project and good work.

But i have some problems with the installation. I have tried to two fresh rasbian installations but all of them have failed to this error.

/usr/bin/ld: CMakeFiles/sdrberry.dir/sdrberry.cpp.o: in function `tabview_event_cb(_lv_event_t*)':
/home/riksha/sdrberry/sdrberry.cpp:188: undefined reference to `gui_ft8bar::hide(bool)'
/usr/bin/ld: /home/riksha/sdrberry/sdrberry.cpp:153: undefined reference to `gui_ft8bar::hide(bool)'
/usr/bin/ld: /home/riksha/sdrberry/sdrberry.cpp:158: undefined reference to `gui_ft8bar::hide(bool)'
/usr/bin/ld: /home/riksha/sdrberry/sdrberry.cpp:163: undefined reference to `gui_ft8bar::hide(bool)'
/usr/bin/ld: /home/riksha/sdrberry/sdrberry.cpp:168: undefined reference to `gui_ft8bar::hide(bool)'
/usr/bin/ld: CMakeFiles/sdrberry.dir/sdrberry.cpp.o:/home/riksha/sdrberry/sdrberry.cpp:173: more undefined references to `gui_ft8bar::hide(bool)' follow
/usr/bin/ld: CMakeFiles/sdrberry.dir/sdrberry.cpp.o: in function `tabview_event_cb(_lv_event_t*)':
/home/riksha/sdrberry/sdrberry.cpp:184: undefined reference to `GuiFt8Setting::set_group()'
/usr/bin/ld: /home/riksha/sdrberry/sdrberry.cpp:192: undefined reference to `guift8bar'
/usr/bin/ld: /home/riksha/sdrberry/sdrberry.cpp:192: undefined reference to `guift8setting'
/usr/bin/ld: CMakeFiles/sdrberry.dir/sdrberry.cpp.o: in function `select_mode(int, bool)':
/home/riksha/sdrberry/sdrberry.cpp:646: undefined reference to `gui_ft8bar::setmonitor(bool)'
/usr/bin/ld: /home/riksha/sdrberry/sdrberry.cpp:631: undefined reference to `gui_ft8bar::setmonitor(bool)'
/usr/bin/ld: /home/riksha/sdrberry/sdrberry.cpp:608: undefined reference to `gui_ft8bar::setmonitor(bool)'
/usr/bin/ld: /home/riksha/sdrberry/sdrberry.cpp:614: undefined reference to `gui_ft8bar::setmonitor(bool)'
/usr/bin/ld: CMakeFiles/sdrberry.dir/sdrberry.cpp.o: in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_data() const':
/usr/include/c++/10/bits/basic_string.h:186: undefined reference to `guift8bar'
/usr/bin/ld: CMakeFiles/sdrberry.dir/sdrberry.cpp.o: in function `main':
/home/riksha/sdrberry/sdrberry.cpp:315: undefined reference to `gui_ft8bar::init(_lv_obj_t*, _lv_group_t*, _lv_group_t*, int, short, short)'
/usr/bin/ld: CMakeFiles/sdrberry.dir/sdrberry.cpp.o: in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_data() const':
/usr/include/c++/10/bits/basic_string.h:187: undefined reference to `mouse_cursor_icon'
/usr/bin/ld: /usr/include/c++/10/bits/basic_string.h:187: undefined reference to `guift8bar'
/usr/bin/ld: CMakeFiles/sdrberry.dir/DigitalTransmission.cpp.o: in function `DigitalTransmission::operator()()':
/home/riksha/sdrberry/DigitalTransmission.cpp:50: undefined reference to `gui_ft8bar::ClearTransmit()'
/usr/bin/ld: CMakeFiles/sdrberry.dir/DigitalTransmission.cpp.o: in function `__gnu_cxx::new_allocator<char>::~new_allocator()':
/usr/include/c++/10/ext/new_allocator.h:89: undefined reference to `guift8bar'
/usr/bin/ld: CMakeFiles/sdrberry.dir/FT8Generator.cpp.o: in function `FT8Generator::generate(int, encoding, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
/home/riksha/sdrberry/FT8Generator.cpp:96: undefined reference to `pack77(char const*, unsigned char*)'
/usr/bin/ld: /home/riksha/sdrberry/FT8Generator.cpp:124: undefined reference to `ft8_encode(unsigned char const*, unsigned char*)'
/usr/bin/ld: /home/riksha/sdrberry/FT8Generator.cpp:153: undefined reference to `save_wav(float const*, int, int, char const*)'
/usr/bin/ld: /home/riksha/sdrberry/FT8Generator.cpp:120: undefined reference to `ft4_encode(unsigned char const*, unsigned char*)'
/usr/bin/ld: CMakeFiles/sdrberry.dir/gui_ft8.cpp.o: in function `press_part_event_cb(_lv_event_t*)':
/home/riksha/sdrberry/gui_ft8.cpp:35: undefined reference to `gui_ft8bar::setMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int)'
/usr/bin/ld: /home/riksha/sdrberry/gui_ft8.cpp:37: undefined reference to `gui_ft8bar::setMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int)'
/usr/bin/ld: CMakeFiles/sdrberry.dir/gui_ft8.cpp.o: in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_data() const':
/usr/include/c++/10/bits/basic_string.h:186: undefined reference to `guift8bar'
/usr/bin/ld: CMakeFiles/sdrberry.dir/gui_ft8.cpp.o: in function `gui_ft8::add_line(int, int, int, int, int, double, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
/home/riksha/sdrberry/gui_ft8.cpp:145: undefined reference to `gui_ft8bar::GetFilter[abi:cxx11]()'
/usr/bin/ld: /home/riksha/sdrberry/gui_ft8.cpp:147: undefined reference to `gui_ft8bar::GetFilter[abi:cxx11]()'
/usr/bin/ld: CMakeFiles/sdrberry.dir/gui_ft8.cpp.o: in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()':
/usr/include/c++/10/bits/basic_string.h:658: undefined reference to `guift8bar'
/usr/bin/ld: CMakeFiles/sdrberry.dir/Keyboard.cpp.o: in function `Keyboard::Keyboard()':
/home/riksha/sdrberry/Keyboard.cpp:63: undefined reference to `KeyboardTranslator::KeyboardTranslator()'
/usr/bin/ld: CMakeFiles/sdrberry.dir/Keyboard.cpp.o: in function `Keyboard::GetKeys[abi:cxx11]()':
/home/riksha/sdrberry/Keyboard.cpp:110: undefined reference to `KeyboardTranslator::GetScancodeFromTable(SDL_ScancodeTable, int)'
/usr/bin/ld: /home/riksha/sdrberry/Keyboard.cpp:124: undefined reference to `KeyboardTranslator::SendKeyboardKey(std::chrono::duration<long long, std::ratio<1ll, 1000000000ll> >, unsigned char, SDL_Scancode, SDL_KeyboardEvent&)'
/usr/bin/ld: /home/riksha/sdrberry/Keyboard.cpp:119: undefined reference to `KeyboardTranslator::SendKeyboardKey(std::chrono::duration<long long, std::ratio<1ll, 1000000000ll> >, unsigned char, SDL_Scancode, SDL_KeyboardEvent&)'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/sdrberry.dir/build.make:1064: sdrberry] Error 1
make[1]: *** [CMakeFiles/Makefile2:119: CMakeFiles/sdrberry.dir/all] Error 2
make: *** [Makefile:149: all] Error 2```

ok new day new string

so going back to questions.

1 ) using pkgs where possible. I honestly would like to try and get this working based on pkgs .

what part of soapysdr are you using ? is it just the libs and modules ?

  1. what part of liquid-dsp are you using ? do I can match pkgs to see what is out there.

Dont take it wrong its just if we make this more mainline on bookworm and get higns going I can then work on getting sdrberry made into a deb that would make a quicker install. As most users want something more out of the box then have to build and wait..

I plan to make the script cover both when the time comes. just learning how your doing things. I see this as a great projct .

On par wit what the hfsignals bitx is.

I also want to make it work on other arm boards because there are boards lower in price then what the pi4 is right now that have better cpu's and performance.

But there is also the Tinker Boards that alot of people also use. intel based that this would be good on.

just asking feedback to work with you ....

Update Documents

can you please state in the readme what pi boards are the best 3a+/3b+/4 b?

libraries

Paul, this is a great project, but I'm having no luck figuring out its dependencies.

Do you have a list of the actual names of these library packages and some hints about where to find them?

thanks,

M

it installed it.

/root/sdrberry/build/_deps/wsjtx_lib-src/wsjtx_lib.cpp:6:10: fatal error: fftw3.h: No such file or directory
6 | #include <fftw3.h>
| ^~~~~~~~~
compilation terminated.
make[2]: *** [_deps/wsjtx_lib-build/CMakeFiles/wsjtx_lib.dir/build.make:76: _deps/wsjtx_lib-build/CMakeFiles/wsjtx_lib.dir/wsjtx_lib.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:227: _deps/wsjtx_lib-build/CMakeFiles/wsjtx_lib.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
[ 0%] Building CXX object _deps/wsjtx_lib-build/CMakeFiles/wsjtx_lib.dir/wsjtx_lib.cpp.o
/root/sdrberry/build/_deps/wsjtx_lib-src/wsjtx_lib.cpp:6:10: fatal error: fftw3.h: No such file or directory
6 | #include <fftw3.h>
| ^~~~~~~~~
compilation terminated.
make[2]: *** [_deps/wsjtx_lib-build/CMakeFiles/wsjtx_lib.dir/build.make:76: _deps/wsjtx_lib-build/CMakeFiles/wsjtx_lib.dir/wsjtx_lib.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:227: _deps/wsjtx_lib-build/CMakeFiles/wsjtx_lib.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

Cannot install due to wsjtx_lib.h missing

Hi, there. This looks like a really good project and I would like to try it.

I am having this issue where using the install script:
/home/pi/sdrberry/sdrberry.cpp:20:10: fatal error: wsjtx_lib.h: No such file or directory 20 | #include "wsjtx_lib.h"
I could not find any reference on how to install this dependancy?

new build script install_sdrberry.sh

#!/bin/bash
wrkdir='/usr/src'
usrdir='/home/sdrberry'

#Set SDR Unit being used Supported: hackfr = HRF / HifiBerry = HFB / Pluto = PLT / RadioBerry = RDB
sdrboard='HRF'

#Enable BlueTooth
BlueZ='YES'

#enable LCD 5 / 7 / 7b / 7c
LCD="7c"

#opt to use pre built pkgs
PACKAGES='YES'

#if false; then
sudo apt update
sudo apt install -y build-essential git cmake g++ libpython3-dev python3-numpy swig
libdw-dev fortran g++ swig hackrf libhackrf-dev libfftw3-dev nala
ninja-build libiio-dev libiio-dev libiio-utils libasound-dev
libboost-all-dev python3 librtaudio-dev soapysdr-tools libfftw3-dev
libglfw3-dev
sudo ldconfig

#cd to work dir . If does not exist exit script
cd $wrkdir || exit

if [[ $BlueZ == 'YES' ]]; then
if [[ $PACKAGES == 'YES' ]]; then
sudo apt-get install -y libusb-dev libreadline-dev libglib2.0-dev libudev-dev
libdbus-1-dev libical-dev docutils-common bluez bluez-asla-utils bluez-test-scripts
bluez-tools
else
wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.60.tar.xz
tar xvf bluez-5.60.tar.xz
sudo apt-get install -y libusb-dev libreadline-dev libglib2.0-dev libudev-dev libdbus-1-dev libical-dev
sudo apt-get install -y ap
cd bluez-5.60 || exit
./configure --enable-library
make -j4
sudo make install
fi
fi

#cd to work dir . If does not exist exit script
cd $wrkdir || exit

if [[ $PACKAGES == 'YES' ]]; then
sudo apt install libsoapysdr-dev
else
git clone https://github.com/pothosware/SoapySDR.git
cd SoapySDR || exit
git pull origin master
mkdir build
cd build || exit
cmake ..
make -j4
sudo make install
sudo ldconfig
fi

#cd to work dir . If does not exist exit script
cd $wrkdir || exit

if [[ $sdrboard == HRF ]] ; then
if [[ $PACKAGES == 'YES' ]]; then
sudo apt install soapysdr0.8-module-hackrf
else
git clone https://github.com/pothosware/SoapyHackRF
cd SoapyHackRF || exit
mkdir build
cd build || exit
cmake ..
make
sudo make install
sudo ldconfig
fi
fi

#cd to work dir . If does not exist exit script
cd $wrkdir || exit

if [[ $sdrboard == HFB ]] ; then
git clone https://github.com/paulh002/SoapyHifiBerry
cd SoapyHifiBerry || exit
mkdir build
cd build || exit
cmake ..
make
sudo make install
sudo ldconfig
fi

if [[ $sdrboard == PLT ]] ; then
git clone https://github.com/pothosware/SoapyPlutoSDR
cd SoapyPlutoSDR || exit
mkdir build
cd build || exit
cmake ..
make
sudo make install
sudo ldconfig
fi

if [[ $sdrboard == RDB ]] ; then
#-----------------------------------------------------------------------------
echo "Installing Radioberry driver..."
git clone --depth=1 https://github.com/pa3gsb/Radioberry-2.x

sudo apt-get -y install raspberrypi-kernel-headers
sudo apt-get -y install linux-headers-rpi
sudo apt-get -y install device-tree-compiler
sudo apt-get -y install pigpio

#unregister radioberry driver
sudo modprobe -r radioberry

if [ ! -d "/lib/modules/$(uname -r)/kernel/drivers/sdr" ]; then
	sudo mkdir /lib/modules/$(uname -r)/kernel/drivers/sdr
fi

#cd Radioberry-2.x/SBC/rpi-4/device_driver/driver
cd SoapyRadioberry/driver || exit
make

sudo cp radioberry.ko /lib/modules/$(uname -r)/kernel/drivers/sdr
sudo dtc -@ -I dts -O dtb -o radioberry.dtbo radioberry.dts
sudo cp radioberry.dtbo /boot/overlays
#add driver to config.txt
sudo grep -Fxq "dtoverlay=radioberry" /boot/config.txt || sudo sed -i '$ a dtoverlay=radioberry' /boot/config.txt
sudo cp ./radioberry.rbf /lib/firmware/.

#cd to work dir . If does not exist exit script 
cd  $wrkdir || exit

sudo depmod	
#register radioberry driver
sudo modprobe radioberry
sudo chmod 666 /dev/radioberry
#show radioberry driver info.
sudo modinfo radioberry

echo ""
echo "Radioberry driver installed."
#-----------------------------------------------------------------------------

fi

#cd to work dir . If does not exist exit script
cd $wrkdir || exit

#build Liquid-dsp
if [[ $PACKAGES == 'YES' ]]; then
sudo apt install libliquid-dev libliquid1 1.5.0-2
else
git clone https://github.com/jgaeddert/liquid-dsp
sudo apt-get install -y automake autoconf
cd liquid-dsp || exit
git checkout v1.6.0
./bootstrap.sh
./configure
make -j4
sudo make install
sudo ldconfig
fi

#cd to work dir . If does not exist exit script
cd $wrkdir || exit

if [[ $PACKAGES == 'YES' ]]; then
sudo apt install librtaudio-dev librtaudio6
else
git clone https://github.com/paulh002/rtaudio
cd rtaudio || exit
mkdir build
cd build || exit
cmake ..
make
sudo make install
sudo ldconfig
fi
#cd to work dir . If does not exist exit script
cd $wrkdir || exit

if [[ $sdrboard == PLT ]] ; then
if [[ $PACKAGES == 'YES' ]]; then
sudo apt install libad9361-dev libad9361-0 python3-ad9361
else
git clone https://github.com/analogdevicesinc/libad9361-iio
cd libad9361-iio || exit
cmake ./CMakeLists.txt
mkdir build
make -j4
sudo make install
sudo ldconfig
fi
fi

#cd to work dir . If does not exist exit script
cd $wrkdir || exit

#Remove if not planning to use bluetooth.
sudo apt-get remove -y pulseaudio

if [[ $sdrboard == 'HRF' ]]; then
# put sdrberry config in users home dir
wget https://raw.githubusercontent.com/paulh002/sdrberry/master/install/sdrberry_settings_hackrf.cfg
mv sdrberry_settings_hackrf.cfg $usrdir/sdrberry_settings.cfg
elif [[ $sdrboard == 'HFB' ]]; then
# put sdrberry config in users home dir
wget https://raw.githubusercontent.com/paulh002/sdrberry/master/install/sdrberry_settings.cfg
mv sdrberry_settings.cfg $usrdir/sdrberry_settings.cfg
elif [[ $sdrboard == 'PLT' ]]; then
# put sdrberry config in users home dir
wget https://raw.githubusercontent.com/paulh002/sdrberry/master/install/sdrberry_settings_pluto.cfg
mv sdrberry_settings_pluto.cfg $usrdir/sdrberry_settings.cfg
elif [[ $sdrboard == 'RDB' ]]; then
wget https://raw.githubusercontent.com/paulh002/sdrberry/master/install/sdrberry_settings_radioberry.cfg
mv sdrberry_settings_radioberry.cfg $usrdir/sdrberry_settings.cfg
fi

#build sdrberry
git clone -b updates --depth 1 https://github.com/richneese/sdrberry
cd sdrberry || exit
git checkout Dev
mkdir build
cd build && cmake .. && make
sudo make install

#cd to work dir . If does not exist exit script
cd $wrkdir || exit

cp ./sdrberry/install/sdrstart.sh $usrdir
chmod +x $usrdir/sdrstart.sh

#Do LCD Screen Setup
if [[ $LCD == '5' || $LCD == '7' || $LCD == '7b' ]]; then
#Enable Waveshare 7inch_DSI_LCD_(5/7/7B) 800x480
echo dtoverlay=vc4-kms-v3d >> /boot/config.txt
echo dtoverlay=vc4-kms-dsi-7inch >> /boot/config.txt

fi

if [[ $LCD == '7c' ]]; then
#Enable Waveshare 7inch DSI LCD (C) 1024×600 driver:
git clone https://github.com/waveshare/Waveshare-DSI-LCD
cd Waveshare-DSI-LCD/6.1.21/64 || exit
sudo bash ./WS_xinchDSI_MAIN.sh 70C I2C1
fi

#cd to work dir . If does not exist exit script
cd $wrkdir || exit

#enable I2C
sudo sed -i 's/$/ vt.global_cursor_default=0 usbhid.mousepoll=2/' /boot/cmdline.txt
sudo sed -i '/dtparam=i2c_arm=on/s/^#//g' /boot/config.txt

#Do Cleanup
rm -rf sdrberry rtaudio liquid-dsp SoapyHifiBerry SoapyHackRF SoapySDR sdrberry_settings_*

sudo reboot

Board support

do you plan to support the radio berry ?[
https://www.amazon.com/AURSINC-SDR-Radioberry-Raspberry-Broadband/dp/B0C2PTW8XW/ ?
I am lookign at this unit to build a radio

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.