Advertisement · 728 × 90
#
Hashtag
#SI5351
Advertisement · 728 × 90
WSPR Tests – F4MOU

Tests #WSPR f4mou.fr?p=59
#hamradio #radioamateur #Propagation #SI5351 #OUTBACK2000 #antenna

0 0 0 0
Preview
Twelve Days of Christmas as Performed By 1980s Speech Chip In a curious historical twist, the “Twelve days of Christmas” are actually the days of revelry that followed the 25th. The preceding period, Advent, was traditionally a fast, not unlike …read more
0 0 0 0
Preview
Retro Style VFO Has Single-Digit Parts Count Not every project has to be complicated– reinventing the wheel has its place, but sometimes you find a module or two that does exactly what you want, and the project …read more
0 0 0 0
Photo of test setup with three blue SMA filters added to the CLK1 output to remove harmonics and sub-signal junk. All spurious are now more than 50 dBc.

Photo of test setup with three blue SMA filters added to the CLK1 output to remove harmonics and sub-signal junk. All spurious are now more than 50 dBc.

Si5351 CLK1 Output: Adding two low pass and one high pass filters cleans this right up. Spurious are now > 50 dBc!
#HamRadio #TestEquipment #Si5351

1 0 0 0
Preview
Arduino and SP0256A-AL2 – Part 5 This looks at another of the options from Part 4 – the I2C programmable Si5351 clock source. _**Warning!** I strongly recommend using old or second hand equipment for your experiments. I am not responsible for any damage to expensive instruments!_ If you are new to microcontrollers, see the Getting Started pages. ### I2C Si5351 Programmable Clock From the datasheet of the Si5351: _“The Si5351 is an I2C configurable clock generator that is ideally suited for replacing crystals, crystal oscillators, VCXOs, phase-locked loops (PLLs), and fanout buffers in cost-sensitive applications. Based on a PLL/VCXO + high resolution MultiSynth fractional divider architecture, the Si5351 can generate any frequency up to 160 MHz on each of its outputs with 0 ppm error.”_ The device itself requires a 3V to 3.6V supply, but typical breakouts seem to include a LDO regulator meaning it can be powered from 3V to 5V. Logic outputs are always 3V but the I2C lines will be the same as the power supply. ### The Circuit I’m using a breakout board like the one shown above. This has header pins for the three clock outputs, power and ground, and I2C. Although the si5351 device itself is a 3V3 device, most breakouts like this seem to include components to allow them to be powered by either 3V3 or 5V. I’m using 5V in my circuit. I’m only using one of the clocks, so output 0 is fed into the OSC1 input of the SP0256A-AL2. Otherwise the rest of the SP0256A-AL2/Arduino circuit is the same as for part 1. ### The Code There are two libraries I’ve found for this: * https://github.com/adafruit/Adafruit_Si5351_Library * https://github.com/etherkit/Si5351Arduino The Adafruit library is a fairly low-level interface to the device. The device basically has a multiplier which is used to set a PLL clock to somewhere between 600 and 900MHZ; and then a divisor to drop that back down to something useful. But the reality of setting the parameters is actually quite complicated. There is a full discussion of how to do it, with some example Arduino code, here: https://rfzero.net/tutorials/si5351a/ It is not for the faint hearted! Thankfully the second library mentioned above, by “EtherKit”, has a ‘set_freq()’ function that does it all for us. The code to use it is therefore fairly straight forward: #include <si5351.h> #include <Wire.h> Si5351 si5351; void clockSetup () { si5351.init(SI5351_CRYSTAL_LOAD_8PF, 0, 0); si5351.set_freq(300000000ULL, SI5351_CLK0); si5351.update_status(); } void setClock (uint64_t freq) { si5351.set_freq(freq, SI5351_CLK0); si5351.update_status(); delay(300); } The initialisation function requires three things: * Which of 6, 8 or 10pF capacitors are used with the external oscillator. * Frequency of the external oscillator. Passing in 0 uses the default, 25MHz. * A parameter for frequency correction. I’m just using 0. The set_freq() function takes a 64-bit value which gives a frequency in 0.01Hz units, so 3MHz is 3 followed by 8 zeros. This is an “unsigned long long” type, hence the “ULL” initialiser after the value in the code above. The other parameter states which clock to use – I’m just using clock 0. It is possible to wire up a pot to an analog input and set the frequency using something like the following: int alglast = 0; void checkClock (void) { int algval = analogRead(ALG_IN); if (algval != alglast) { uin64_t freq = 1000 + 5 * analogRead(ALG_IN); // in kHz setClock(freq*100000); // Convert to 0.01Hz units } alglast = algval; } This maps a pot reading onto frequency values between 1MHz and just over 6MHz in units of 5kHz. Alternatively, it is possible to set pitches for individual allophones. I’ve found that loosely speaking, 3MHz seems to correspond to talking at the pitch of G#2 (MIDI note 44) which is an audio pitch frequency of round 98Hz. 6MHz is, as you might expect, G#3 (MIDI note 56 at 196Hz). This means that the I can calculate the required clock frequency for a MIDI note M using the formula: * Freq = 3MHz * 2 ^ (M – 44)/12 This function will set the clock based on the MIDI note number: void midi2clock (int m) { if (m < 36 || m > 56) { return; } freq = 300000000 * pow (2.0, (((double)m-44.0)/12.0)); setClock (freq); } Note how I’ve limited the range to between C2 (36) and G#3 (56), which means frequencies of 1.889MHz to 6MHz. It would probably go a bit lower – down to 1MHz is probably practical from the point of view of the chip functioning, but not so useful from the point of view of how long it would take to say a single allophone. Anything higher will cause the SP0256A-AL2 to lock up in a funny state. But that gives me a good octave and a fifth, which is quite a useful and practical range. ### Closing Thoughts This is the most accurate and simplest to set up manner of providing a programmable clock I’ve found so far. The device itself is actually quite complex to use, but all that complexity has been hidden away in the Si5351 library published by EtherKit. The device sometimes seemed to get stuck in a weird state where is wasn’t recognised on the I2C bus. A power cycle or reset, or some combination of both, was usually required to get it going again. I don’t know if that was dodgy cables somewhere, but when it got stuck, curiously my nearby FM radio receiver lost its signal… Hmm. The downside of using the Arduino for both clock and speech control is that it isn’t possible to adjust the clock whilst the speech is happening. That would need some kind of parallel execution to manage that – either adding in another microcontroller, or maybe moving to a dual-core microcontroller. But as you can hear from the end of the video, this could still be pretty useful and I wish I’d had it for my Electric Lo-Fi Orchestra Concerto for a Rainy Day. Kevin ### Share this: * Click to share on X (Opens in new window) X * Click to share on Facebook (Opens in new window) Facebook * Like Loading... ### _Related_

Driving the SP0256A-AL2 from an Arduino with a SI5351 I2C programmable clock.

This is starting to get useful now (finally) :)

diyelectromusic.com/2025/09/08/arduino-and-s...

1 0 0 0
Post image

GiamMa-based researchers SDR R&D IoT: An Arduino (nano) & Si5351 based antenna analyzer based on K6BEZ design with modifications by DG7EAO #SoftwareDefinedRadio #VNA #Antenna #HF #VHF #VectorNetworkAnalyzer #Arduino #ArduinoNano #Si5351 #Ham #HamRadio #RF

0 0 0 0
Post image

GiamMa-based researchers SDR R&D IoT: Based on Si5351 VFO Radio ESP32 by paulh002 #SoftwareDefinedRadio #SDR #Transceiver #Si5351 #Arduino #PLL #VFO #TFT #ESP32 #HF #ShortWave #VHF #LNA #Ham #HamRadio

0 0 0 0
Post image

GiamMa-based researchers SDR R&D IoT: Universal VFO with Si5351 / Si570 (Support 4 different #TRX architecture) by andrey-belokon #SoftwareDefinedRadio #SDR #Transceiver #Si5351 #Si570 #Arduino #PLL #VFO #TFT #OLED #HF #ShortWave #VHF #LNA #Ham #HamRadio

0 0 0 0
Post image

GiamMa-based researchers SDR R&D IoT: Very simple Arduino & SI5351 GPSDO using the PPS (with 1/1000 Hz accuracy) from a GPS receiver by erikkaashoek #SoftwareDefinedRadio #SDR #Si5351 #Arduino #GPSDO #LCD #Low #Cost #GPS #Corrected #Frequency #Standard

0 0 0 0
Post image

GiamMa-based researchers SDR R&D IoT: Si5351 VFO with OLED 1.3 and builtin CW-key by andrey-belokon #SoftwareDefinedRadio #SDR #Transceiver #Si5351 #Arduino #PLL #VFO #OLED #HF #ShortWave #VHF #LNA #Ham #HamRadio #TRX

0 0 0 0
Post image

GiamMa-based researchers SDR R&D IoT: A Small Portable SWR Indicator and Signal Source for HF/VHF #SoftwareDefinedRadios #SDR #SWR #Arduino #Si5351 #HF #VHF #OLED #Display #Ham #HamRadio

0 0 0 0
Post image

GiamMa-based researchers SDR R&D IoT: Arduino Uno based graphical SWR HF/VHF 160-1.25m bands antenna analyzer, plotter based on Si5351 module by sh123 #SoftwareDefinedRadio #SDR #Antenna #Analyzer #VNA #SWR #HF #VHF #Arduino #Si5351 #Ham #HamRadio #LCD

0 0 0 0
Post image

GiamMa-based researchers SDR R&D IoT: This is a simple a& experimental modification that transforms your QCX into a (class-E driven) #SSB #transceiver #SoftwareDefinedRadio #SDR #Phase #VFO #Si5351 #Arduino #QRSS #QCX #QRP #FT8 #JS8 #FT4 #CW #ATMEGA328P

1 0 0 0
Post image

GiamMa-based researchers SDR R&D IoT: QCX #FT8 ( CW,JT65, RTTY, Hell) #transmission suite using Si5351 and Arduino with 5 watts of #RF #output power on a single HF band #SoftwareDefinedRadio #Si5351 #Arduino #IDE #ArduinoNIDE #Beacon #CW #JT65 #RTTY #Hell

0 0 0 0
Post image

GiamMa-based researchers SDR R&D IoT: Nano VFO for portable TRX #SoftwareDefinedRadio #SDR #Raduo #Si5351 #Si570 #VFO #Arduino #Nano #ArduinoNano #Beacon #QRSS #HamRadio #Ham #Radio #Single #IF #Superheterodyne #Direct #Conversion #OLED

0 0 0 0
Post image

GiamMa-based researchers SDR R&D IoT: Si5351 QRSS Beacon: An amateur radio #QRSS #transmitter (beacon) based on the #Si5351 #synthesizer & #Arduino Nano by VE2ZAZ #SoftwareDefinedRadio #HamRadio #Morse #Ham #HF #ShortWave #Output #Power #Configurable #SDR

0 0 0 0
Post image

GiamMa-based researchers SDR R&D IoT: #SDR #Raduo +Si5351 Phase VFO 1-150MHz SN74LVC1G3157DBVR microcircuit is used as a receiving mixer, frequency synthesizer on the #Si5351 & Arduino Nano V3 #SoftwareDefinedRadio #Arduino #Radio #HamRadio #HF #VHF #Ham

0 0 0 0