## SDR-PICO V1 and V2 [A project from Burkhard Kainka, DK7JD ](https://www.elektronik-labor.de/Raspberry/Pico38.html) The Raspberry Pi Pico can generate an HF (high-frequency) signal on its GPIO pins thanks to its dedicated GPIO assembly language, known as PIO (Programmable I/O). ## SDR-PICO V1 ![rpi](images/rpiV1.jpg "rpi") # 📡 Beacon Specifications ## 🧩 Hardware - **Microcontroller:** Raspberry Pi Pico (RP2040) - **Power supply:** USB or external +5V source - **GPS module** - **Optional RTC:** DS3231 real-time clock - **Amplifier:** 2N2222 (0.1 W max) - **Removable filter** - **PCB:** Available in Gerber format ## 💻 Software Compatibility - Arduino IDE 1.8+ - PlatformIO (OSX / Windows / Linux) ## 📶 Transmission Modes - WSPR - FT8 - Hell - RTTY - CW ## Schematics ![schematics](schematics/baliseHF_picoV11.png "schematics") ## PCB ![PCB_QRP11](images/PCB_QRP11.png "PCB_QRP11") ## RPI PICO ZERO PINOUT ![RP2040-Zero](images/RP2040-Zero.jpg "RP2040-Zero") ## Testing SDR-PICO V1 board ### With solar pannel no batteries 20m band ![test](images/test_low.jpg "test") ![20m-pico-wspr-solar](images/20m-pico-wspr-solar.png "20m-pico-wspr-solar") ### 20m band during one night ![20m_f4kmn](images/20m_f4kmn.png "20m_f4kmn") ### 40m band ![wspr40m_45mW](images/wspr40m_45mW.png "wspr40m_45mW") ![wspr40m_bis_dis](images/wspr40m_bis_dis.png "wspr40m_bis_dis") ## Raspberry Pi Pico RP2040 Specifications ### Core Features - **Microcontroller**: RP2040, designed by Raspberry Pi - **Processor**: Dual-core ARM Cortex-M0+ running at up to 133 MHz - **Memory**: 264 KB of SRAM and 2 MB of on-board QSPI Flash storage - **USB**: USB 1.1 with device and host support ### GPIO and Connectivity - **GPIO Pins**: 26 multi-function GPIO pins, including: - 2 × SPI, 2 × I2C, 2 × UART, 3 × 12-bit ADC, and 16 × PWM channels - **Programmable I/O (PIO)**: 2 PIO blocks, each with 4 state machines for custom peripheral support - **Debugging**: SWD debug pins available ### Power and Input - **Operating Voltage**: 3.3V (régulator via micro-USB or external power source) - **Low Power Consumption**: Power-efficient design with various sleep and dormant modes ### Software and Compatibility - **Supported Languages**: C/C++ and MicroPython - **Development Environment**: Official support for the Raspberry Pi Pico SDK, including integration with the Visual Studio Code (VS Code) IDE - **Alternative IDE**: Arduino IDE support via the Arduino-Pico core ## Configuration in putty (115200 bauds) It is now necessary to access the configuration menu. To do this, hold down the push button “bp menu” while connecting the USB connector to the Raspberry Pi Pico Zero. At this point, a serial communication port such as COMx should appear on Windows, or /dev/ttyACM0 on Linux. ```console >help Available commands Set transmission frequency : freq 7040100 Set offset value : offset -200 Set callsign : call F4XYZ Set locator : loc JN07 Set mode wspr rtty ft8 hell cw : mode wspr Set modulo in minutes : minute 10 Set number of repeated frames to send : nbframe 2 Set cw words per minute : wpm 15 Set transmission power (dBm) : dbm 10 Set email address : mail f4xyz at example.com Set gps baud rate : gpsbaud 9600 Scan I2C bus : scan Show nmea frame : nmea 1 Save current configuration to EEPROM : save Display current configuration : show Reset all parameters to default values : raz Restart RPI pico : restart Show this help message : help Exit menu : exit> ``` The minimum setup for a quick WSPR test is: ```console >raz Initialize parameters >freq 7040100 Set transmission frequency >call F4XYZ Enter callsign >loc JN07 Enter locator >mode wspr Select transmission mode >minute 2 Transmit every two minutes >dbm 10 Set power level information for WSPR >save Save configuration >show Display configuration >show Current configuration : freq : 7040100 Hz offset : -200 call : F4GOH locator : JN07 dbm : 10 dBm mode : WSPR wpm : 12 mail : none@example.com minute : 2 min nbframe : 1 Gps baud rate : 9600 Nmea debug is : OFF ``` #### Using Arduino IDE with Raspberry Pi Pico It is also possible to program the Raspberry Pi Pico using the Arduino IDE thanks to the Arduino-Pico core. **Installation steps:** 1. Open the Arduino IDE 2. Go to **File > Preferences** 3. In the field **"Additional Boards Manager URLs"**, add the following URL: ```console https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json ``` 4. Go to Tools > Board > Boards Manager 5. Search for "rp2040" 6. Install "Raspberry Pi Pico/RP2040" by Earle Philhower 7. Select your board via Tools > Board > Raspberry Pi Pico --- # SDR-PICO V2 ![rp2350_board](images/board_low2.jpg "rp2350_board") ## Schematics ![schematics](schematics/baliseHF_pico2350.png "schematics") ## PCB ![PCB_QRP20](images/PCB_QRP20.png "PCB_QRP20") ## RPI PICO ZERO PINOUT ![rp2350_lcd](images/rp2350_lcd.png "rp2350_lcd") ![rp2350_lcd_pinout](images/rp2350_lcd_pinout.png "rp2350_lcd_pinout") ## Raspberry Pi Pico RP2350 Specifications ### Core Features - **Microcontroller**: RP2350, designed by Raspberry Pi - **Processor**: Dual-core ARM Cortex-M33 running at up to 150 MHz (with optional RISC-V core depending on variant) - **Memory**: Up to 520 KB of SRAM and external QSPI Flash support (typically 2 MB or more depending on board) - **Security**: Arm TrustZone support and enhanced security features - **USB**: USB 1.1 with device and host support ### GPIO and Connectivity - **GPIO Pins**: Up to 30 multi-function GPIO pins, including: - SPI, I2C, UART, ADC, PWM (enhanced capabilities compared to RP2040) - **Programmable I/O (PIO)**: 3 PIO blocks with multiple state machines for advanced custom peripherals - **Analog**: Improved ADC performance - **Debugging**: SWD debug interface available ## testing SDR-PICO V2 board ## Configuration in putty (115200 bauds) It is now necessary to access the configuration menu. To do this, hold down the push button “bp menu” while connecting the USB connector to the Raspberry Pi Pico Zero. At this point, a serial communication port such as COMx should appear on Windows, or /dev/ttyACM0 on Linux. ```console >help Available commands Set transmission frequency : freq 7040100 Set offset value : offset -200 Set callsign : call F4XYZ Set locator : loc JN07 Set mode wspr rtty ft8 hell cw iambic : mode wspr Set band 160,80m,60m,40m,30m,20m,freq : band 40m Set modulo in minutes : minute 10 Set follow mode : follow 1 Set cw words per minute : wpm 15 Set iambic mode : iambic B Set transmission power (dBm) : dbm 10 Set email address : mail f4xyz at example.com Set gps baud rate : gpsbaud 9600 Scan I2C bus : scan Show nmea frame : nmea 1 Save current configuration to EEPROM : save Display current configuration : show Reset all parameters to default : raz Restart RPI pico : restart Show this help message : help Exit menu : exit ``` The minimum first setup for a quick WSPR test is: ```console >raz Initialize parameters >band 60m Set band >call F4XYZ Enter callsign >loc JN07 Enter locator >mode wspr Select transmission mode >minute 2 Transmit every two minutes >dbm 10 Set power level information for WSPR >save Save configuration >show Display configuration >show Current configuration : freq : 5288700 Hz offset : -200 call : F4GOH locator : JN07 dbm : 10 dBm mode : WSPR band : 60m wpm : 16 iambic mode : A mail : none@example.com minute : 2 min Gps baud rate : 9600 Nmea debug is : OFF Follow is : OFF > exit ``` ![rp2350_60m](images/band60m.png "rp2350_60m") To enable iambic mode and vand mode the 1st time is : ```console >raz >mode iambic Mode set to: IAMBIC >band 60m >wpm 15 >iambic B >save >exit > ``` ![rp2350_cw](images/board_cw.jpg "rp2350_cw") --- ## Usefull links for wspr reports - [WSPRnet (site officiel)](https://wsprnet.org/drupal/wsprnet/map) - [WSPR Live Map](https://www.wsprnet.org/drupal/wsprnet/map) - [WSPR Database Query](https://wsprnet.org/drupal/wsprnet/spots) - [PSKreporter (inclut WSPR et autres modes)](https://pskreporter.info/pskmap.html) - [WSPR Rocks](https://wsprocks.com/) - [QRP Labs WSPR viewer](https://www.qrp-labs.com/ultimate3/wsprview.html) ## Usefull links for wspr - [Code correcteur — Wikipédia](https://fr.wikipedia.org/wiki/Code_correcteur) - [WSPR Coding Process (PDF)](http://www.g4jnt.com/wspr_coding_process.pdf) ## Usefull links for filter design - [Tonnesoftware SVC Download](http://tonnesoftware.com/svcdownload.html) - [Mini Ring Core Calculator – Software Informer](https://mini-ring-core-calculator.software.informer.com/1.2/)