paulh002 / sdrberry Goto Github PK
View Code? Open in Web Editor NEWRaspberry pi SDR tranceiver using lvgl gui
License: GNU General Public License v3.0
Raspberry pi SDR tranceiver using lvgl gui
License: GNU General Public License v3.0
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.
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
Why is it you build sopaysdr insted of installing the pkg ?
I am working to follow what your doing but its a long trail
would like to see the HL2 supported
Do you have any plans to support RPITX?
https://github.com/F5OEO/librpitx
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```
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 ?
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 ....
E: Package 'libpython-dev' has no installation candidate
E: Package 'python-numpy' has no installation candidate
ned to be python3 now
can you please state in the readme what pi boards are the best 3a+/3b+/4 b?
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
/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
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?
#!/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
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.