{"id":23300474,"url":"https://github.com/paulh002/sdrberry","last_synced_at":"2025-04-10T02:19:07.853Z","repository":{"id":37893067,"uuid":"385826598","full_name":"paulh002/sdrberry","owner":"paulh002","description":"Raspberry pi SDR tranceiver using lvgl gui","archived":false,"fork":false,"pushed_at":"2025-04-05T07:54:38.000Z","size":297828,"stargazers_count":142,"open_issues_count":8,"forks_count":14,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-10T02:19:02.833Z","etag":null,"topics":["ft8","plutosdr","radioberry","raspberry-pi","sdr","sdrplay","soapysdr"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paulh002.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-14T05:42:13.000Z","updated_at":"2025-04-09T20:43:03.000Z","dependencies_parsed_at":"2023-10-11T01:03:38.209Z","dependency_job_id":"4c658e66-0372-47bd-8bbb-1632f7a259c5","html_url":"https://github.com/paulh002/sdrberry","commit_stats":{"total_commits":496,"total_committers":2,"mean_commits":248.0,"dds":"0.0020161290322581182","last_synced_commit":"bd173168264712374490b755f066944775b53ae7"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulh002%2Fsdrberry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulh002%2Fsdrberry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulh002%2Fsdrberry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulh002%2Fsdrberry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paulh002","download_url":"https://codeload.github.com/paulh002/sdrberry/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248142906,"owners_count":21054672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ft8","plutosdr","radioberry","raspberry-pi","sdr","sdrplay","soapysdr"],"created_at":"2024-12-20T09:15:54.281Z","updated_at":"2025-04-10T02:19:07.841Z","avatar_url":"https://github.com/paulh002.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sdrberry\nRaspberry pi SDR transceiver / frontend using lvgl gui \n!!! This is an ongoing project code only for information purpose only. \nThe main goal for this project is to learn about c++ programming, liquid dsp, and for most the use of the GUI toolkit LVGL v8\nFunctionality is in beta currently\n\nThis source code is still in development.  \nGoal is to support Adalm pluto SDR, Radioberry, RTL-SDR, SDRPlay etc but it should also support other SDR receivers based on SoapySDR.\nAlso the goal is to support optical encoder and support I2C / serial interface for bandpass filtering\nI use an ESP32 as CAT controller with a service for an optical encoder.\nAlternative a Contour Shuttle express can be used as rotary controller and or a mouse. \n\nTo install you need to configure rasberry pi OS in text only mode (64 bit Bullseye), create a sd card or even better a usb stick sd cards tend to fail after a while,\nwith 64 bit bullseye CLI mode. Configure wifi and use raspi-config to switch on I2C and boot to CLI only with logon. \nCompiled using VisualGDB or cmake, gcc and gfortran (for wsjtx_lib which includes the wsjtx fortran code of Joe Taylor)\n\nRemote control is possible with the use of framebuffer-vnc https://github.com/ponty/framebuffer-vncserver a config file is in the install directory.\nCheck the event number for the touch and keyboard device and adjust the device number like event1 accordingly\n\ninstallation instruction in install_guide.txt\ninstall script install.sh installs all components based on a fresh raspberry pi SD card (OS should be updated and in CLI mode)\n\n## Hardware requirements\n- Raspberry pi 4 Model B or Pi 5\n- LCD screen 5 or 7 inch 800x480 touchscreen using DSI connector or the new raspberry Touch 2 7 inch display\n- It is preferred not to use a SD card but an USB stick like an Samsung Fit plus 32 GB or larger\n- Generic USB Audio adapter for audio in and output\n\n## This software makes use of opensource libraries like\n- Noise reduction code is an port from DD4WH https://github.com/df8oe/UHSDR/wiki/Noise-reduction  adapted for raspberry pi\n- WSJTX fortran library of Joe Taylor K1JT\n- Liquid-dsp of Joseph D. Gaeddert\n- Lvgl of Gabor Kiss-Vamosi\n- and others\n\n## Under development\n- webserver\n\n## ToDo\n- Support for Midi controller\n- Cheap USB Hid controllers\n- Optical encoder direct on GPIO (some hardware adaption needed) \n- Setup screen for Network and Wifi\n- Different noise reduction schemes like lms etc.\n- codec2 implementation (FreeDV)\n\n## Done\n- Adalm Pluto\n- Rtlsdr support\n- SDRPlay support\n- Radioberry support\n- Hackrf support\n- QSD / QSE support with hifiberry board\n- FM broadband (only receive)\n- FM Narrowband\n- SSB support\n- Transmitter part\n- USB CAT interface support (config serial controller in cfg file example ESP32 as CAT controller)\n- i2c filter support for PCF8574\n- USB controller with ESP32 (Optical controller for vfo and 2 mechanical encoders for volume and gain etc)\n- Add audio device selection\n- TFT brightness control\n- Support both Raspberry pi buster and Bullseye\n- CMake compilation\n- Morse code decoder\n- Support for Contour Shuttle Express\n- Receive, transmit FT8\n- Noise reduction (spectral noise reduction, Kim)\n- Support for audio sdr using Taylor directsdr (Hifiberry)\n- Mouse support\n- Keyboard for FT8\n- waterfall display\n- Cheap USB Hid Volume controllers as tuning controller\n- Add setup page for I2C configuration\n\n## Installation of libraries is necessary:\n- Liquid DSP\n- Alsa audio\n- SoapySDR\n- SoapyPlutoSDR (support for Adalm Pluto SDR)\n- SoapySDRPlay (support for SDRPlay devices)\n- SoapyRadioBerry (support radioberry)\n- libiio (support for Adalm Pluto SDR)\n- libad9361-iio (support for Adalm Pluto SDR)\n- pthread\n- liquid-dsp\n- fftw\n- civetweb\n- nlohmann json\n\n# Installation\n## Preparation before install\nTake a good quality USB drive and install the latest 64 bit Raspberry OS on it.\nI advise not to use SD cards, these are very slow and often fail in a short time.\nUse raspi-config to switch to console auto logon startup.\nUpdate the OS with the latest raspberry pi OS patches\n\n## Install and compile with cmake\nDownload the install file in pi home directory (the install script supports different SDR's)\nThe install script can install DSI, Raspberry PI Touch 2 7inch 1280x720 ,  Waveshare 7 inch display\nSDR Unit being used Supported: hackfr = HRF / HifiBerry = HFB / Pluto = PLT / RadioBerry = RDB / SDRPlay = SDP /RTLSDR RTL / No = No device\nIf you want to install the devices using current packages add Y to the install command\ninstall DEVICE LCD PACKAGE Y/N\n\nDSI is 16 bit color depth display (DSI / HDMI) the resolution is configurable in the setting file see the wiki. \nhttps://github.com/paulh002/sdrberry/wiki/Screen-resolution\n\n```\nwget https://raw.githubusercontent.com/paulh002/sdrberry/master/install/install.sh\nchmod +x install.sh\n./install.sh HFB DSI\n```\nRaspberry PI Touch 2 with Radioberry (32 bit colordepth !)\n```\nwget https://raw.githubusercontent.com/paulh002/sdrberry/master/install/install.sh\nchmod +x install.sh\n./install.sh RDB T2\n```\n## start sdrberry  \nsdrberry can be started in user mode or as root, this depends on the device being used for radioberry use sudo\n```\nsudo sdrberry \u003e sdrberry.log 2\u003e\u00261\n```\n\n## Mouse support\nsdrberry supports a mouse, to improve responsiveness the install script will add usbhid.mousepoll=2 to the commandline.txt  \n\n\n## DSI display 5inch or 7inch  \nIn the directory \"install/bullseye-7inch rpi\" are example config.txt and cmdline.txt files for rotating the screen\n5 inch DSI screens from waveshare do not need any adjustment. Sdrberry is currently tested for a resolution of 800 x 480. \nAlthough this can be changed in sdrberry.cpp line 47 and 48 it is not tested for other resolutions. There can be some issues.\n\n![sdrberry](https://github.com/paulh002/sdrberry/blob/0354b16771afa0fb7ccf55b9a41a7d6fa6422540/images/rb_tranceiver.jpg)\n\n![sdrberry](https://github.com/paulh002/sdrberry/blob/0354b16771afa0fb7ccf55b9a41a7d6fa6422540/images/IMG_20220203_ft8.jpg)\n\n[![Radioberry demo](https://i9.ytimg.com/vi_webp/ycU_IUmV8j4/mq1.webp?sqp=CMC2268G-oaymwEmCMACELQB8quKqQMa8AEB-AH-CYAC0AWKAgwIABABGBggSih_MA8=\u0026rs=AOn4CLC4GjVI4ExJf2BNTO02C6DS9CYR2g)](https://youtu.be/ycU_IUmV8j4?si=ixo44dyJ-GQGvl-Y)\n\n# I2C configuration\n![sdrberry](https://github.com/paulh002/sdrberry/blob/0354b16771afa0fb7ccf55b9a41a7d6fa6422540/images/setup_it2c.jpg)\n\n# ESP32 Remote control for raspberry pi\n![sdrberry](images/IMG_20231015_131803.jpg)\n\n# Web Server on port 8081\nFirst version of sdrberry webserver, goal is to remote control the functions of sdrberry.\nThis is still an experiment / beta version. To see what is the best way to integrate web with C++ application.\nWEB pages are build with VUE JS 3 and Primevue source code will be shared later in separate github repo.\n\nCopy sdrweb directory to pi home dir \nOpen the WSJTX webpage on http://raspberry_pi_ip:8081\n\n![sdrberry](https://github.com/paulh002/sdrberry/blob/0354b16771afa0fb7ccf55b9a41a7d6fa6422540/images/sdrweb.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulh002%2Fsdrberry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaulh002%2Fsdrberry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulh002%2Fsdrberry/lists"}