SDR-Berry is an open-source software-defined radio (SDR) transceiver project based on the Raspberry Pi, utilizing the LVGL graphical user interface. This is an ongoing project aimed primarily at learning C++ programming, digital signal processing (Liquid DSP), and the use of the LVGL v8 GUI toolkit. The functionality is currently in the testing phase, and the source code is still under development.
The goal is to support devices such as Adalm Pluto SDR, Radioberry, RTL-SDR, SDRPlay, and others based on SoapySDR. Additionally, there are plans to support external optical encoders and implement bandpass filter control via I2C/serial interfaces. The project uses an ESP32 as a CAT controller, providing optical encoder services. Alternatively, a Contour Shuttle Express can be used as a controller, or a mouse can be utilized.
Installation requires configuring the Raspberry Pi operating system in text mode (64-bit Bullseye), and it is recommended to use a USB storage device (such as Samsung Fit Plus 32GB or larger) instead of an SD card, as SD cards are prone to damage. Configuration should be done in CLI mode using 64-bit Bullseye, enabling I2C and setting it to boot in CLI mode via raspi-config.The project is compiled using VisualGDB or CMake, requiring gcc and gfortran (for wsjtx_lib, which includes Joe Taylor’s wsjtx Fortran code).
Hardware Requirements• Raspberry Pi 4B or Raspberry Pi 5• 5-inch or 7-inch 800×480 touchscreen using DSI interface, or the new Raspberry Pi Touch 2 7-inch display• Recommended to use USB storage devices like Samsung Fit Plus 32GB or larger instead of SD cards• Generic USB audio adapter for audio input and output development features in progress• Web server functionality is a to-do item• Support for MIDI controllers• Inexpensive USB HID controllers• Direct use of optical encoders on GPIO (requires some hardware adaptation)• Set up the screen for network and Wi-Fi configuration• Various noise suppression schemes, such as LMS, etc.• Implementation of codec2 (FreeDV) digital voice is completed• Adalm Pluto support• RTL-SDR support• SDRPlay support• Radioberry support• HackRF support• QSD/QSE support (with Hifiberry board)• WFM (receive only)• FM• SSB support• Transmit section• USB CAT interface support (set serial controller in configuration file, e.g., ESP32 as CAT controller)• I2C filter support (for PCF8574)• USB controller using ESP32 (optical controller for VFO, and two mechanical encoders for volume and gain, etc.)• Add audio device selection• TFT brightness control• Support for Raspberry Pi Buster and Bullseye• CMake compilation• Morse code decoder• Support for Contour Shuttle Express• Receive and transmit FT8• Noise suppression (spectrum noise suppression, Kim)• Support for audio SDR using Tayloe DirectSDR (Hifiberry)• Mouse support• Keyboard for FT8• Waterfall display• Inexpensive USB HID volume controller as tuning controller• Add settings page for I2C configuration
SDR-Berry is a feature-rich and continuously evolving SDR platform suitable for radio enthusiasts, amateur radio operators, and developers interested in SDR technology. It supports a variety of SDR devices and communication modes, providing flexible hardware interfaces and an intuitive GUI operation interface. The SDR-Berry open-source project offers an interesting new way for broadcasting enthusiasts.