2023-11-10 22:44:13 +00:00
|
|
|
# Digital controlled radio frequency oscillator for Raspberry Pi Pico
|
|
|
|
|
|
|
|
The library for Raspberry Pi Pico includes the headers and source code and all
|
|
|
|
necessary build files to build a custom application which turns pico into
|
|
|
|
precise PLL digital frequency oscillator of the portion of HF radio spectrum
|
|
|
|
1.1 to 9.4MHz with high resolution.
|
|
|
|
|
|
|
|
# Precise frequency resolution
|
|
|
|
The library provides 1 Hz frequency resolution in initialize function. This
|
|
|
|
resolution can be easily increased to 23 millihertz, which is limited by
|
|
|
|
24-bit register which is used in algorithm.
|
2023-11-10 22:53:37 +00:00
|
|
|
Currently the upper freq. limit is about 9.4 MHz and it is achieved only using
|
2023-11-10 22:44:13 +00:00
|
|
|
pi pico overclocking to 270MHz.
|
|
|
|
|
|
|
|
# Phased locked loop in C
|
|
|
|
The DCO uses phase locked loop principle programmed in C.
|
|
|
|
|
2023-11-10 22:59:28 +00:00
|
|
|
# *NO* additional hardware
|
|
|
|
The DCO provides the output signal on the GPIO pin. However if you want to
|
|
|
|
transmit the signal, you should calculate and provide a lowpass filter of
|
2023-11-10 23:36:59 +00:00
|
|
|
appropriate frequency. Please also figure out whether you possess rights
|
|
|
|
to emit radio frequency energy on desired frequency.
|
2023-11-10 22:44:13 +00:00
|
|
|
|
2023-11-10 22:53:37 +00:00
|
|
|
# Dual-core
|
|
|
|
The DCO uses extensively the secodary core of the pico. The first one is for
|
2023-11-10 22:59:28 +00:00
|
|
|
your ideas how to modulate the DCO to obtain a desired signal.
|
|
|
|
The DCO does *NOT* use any floating point operations - all time-critical
|
|
|
|
instructions run in 1 CPU cycle.
|
2023-11-10 22:53:37 +00:00
|
|
|
|
2023-11-10 22:44:13 +00:00
|
|
|
# Radio transmitters
|
|
|
|
Owing to the meager frequency step, it is possible to use 3, 5, or 7th harmonics
|
2023-11-10 23:43:53 +00:00
|
|
|
of generated frequency. The practical resolution will be quite the same - far
|
|
|
|
below 1 Hz. Such solution completely cover all HF and low band up to 65.8 MHz.
|
2023-11-10 22:44:13 +00:00
|
|
|
|
2023-11-12 22:35:14 +00:00
|
|
|
# Tests of RF spectrum quality
|
|
|
|
Sweep (5Hz step, carrier is 9.4MHz) test: https://youtu.be/nYC1VDBiz4o
|
|
|
|
Pseudorandom MFSK (5Hz step, carrier is 9.4MHz) test: https://www.youtube.com/shorts/CEPW8hwlG7k
|
|
|
|
|
2023-11-10 22:44:13 +00:00
|
|
|
# For what?
|
2023-11-10 23:43:53 +00:00
|
|
|
This is an experimental project of amateur radio hobby and it is devised by me
|
|
|
|
in order to experiment with QRP narrowband digital modes.
|
|
|
|
I am licensed radio amateur who is keen on experiments in the area of the
|
|
|
|
digital modes on HF.
|
|
|
|
My QRZ page is https://www.qrz.com/db/R2BDY
|
2023-11-10 22:44:13 +00:00
|
|
|
|
2023-11-13 08:56:28 +00:00
|
|
|

|
2023-11-10 23:35:18 +00:00
|
|
|
|
2023-11-10 22:44:13 +00:00
|
|
|
# Feedback
|
|
|
|
I gracefully appreciate any thoughts or comments on that matter.
|
2023-11-10 22:53:37 +00:00
|
|
|
I strongly appreciate if you use this project as a part of your one.
|
|
|
|
I have plans of building a transceiver on the base of this library.
|
2023-11-10 22:44:13 +00:00
|
|
|
|
|
|
|
# Quick-start
|
|
|
|
1. Install Raspberry Pi Pico SDK. Configure environment variables. Test whether
|
|
|
|
it is built successfully.
|
|
|
|
|
2023-11-13 08:56:28 +00:00
|
|
|
2. git clone this repository. cd pico-hf-oscillator ; ./build.sh
|
|
|
|
Check whether output file ./build/pico-hf-oscillator.uf2 appears.
|
2023-11-10 22:44:13 +00:00
|
|
|
|
|
|
|
3. Prepare the surrogate antenna (if you possess an SSB receiver) or pin-out
|
|
|
|
for an oscilloscope or a spectrum analyser. The default output pin is GPIO6.
|
|
|
|
|
|
|
|
4. Load the .uf2 file (2) into the Pico.
|
|
|
|
|
|
|
|
5. Initialy the running frequency is 9.4 MHz.
|
|
|
|
|
|
|
|
6. Set any other frequency ranging from 1.1 to 9.4 MHz by #define GEN_FRQ_HZ and build the project.
|
|
|
|
|
|
|
|
7. Provide the feedback by clicking like on the github page of the project.
|
2023-11-10 22:59:28 +00:00
|
|
|
|
|
|
|
|
|
|
|
Cheers,
|
|
|
|
Roman Piksaykin, amateur callsign R2BDY
|
|
|
|
https://www.qrz.com/db/R2BDY
|