Posts

FM band undersampling

Image
Why Use Oversampling when Undersampling Can do the Job? - Texas Instruments  :    “..If we use the sampling frequency less than twice the maximum frequency component in the signal, then it is called undersampling. Undersampling is also known as band pass sampling, harmonic sampling or super-Nyquist sampling. Nyquist-Shannon Sampling theorem, which is the modified version of the Nyquist sampling theorem, says that the sampling frequency needs to be twice the signal bandwidth and not twice the maximum frequency component, in order to be able to reconstruct the original signal perfectly from the sampled version.“ Justin Peng tweeted the result of his RX888 undersampling the FM band on  https://twitter.com/fei666888/status/1363859596784267265 At my location the FM band stations are very strong and internal HF LPF of RX888 is not enough to cancel the FM band alias. I need to add an external HF Low Pass Filter with higher attenuation of FM band. So I decided to bypass the internal filter alw

Filter in a box

Image
 In 2018 I read this paper  Band Pass Filter with Low Insertion Loss for 2m   by Dipl ing Tasić Siniša –Tasa YU1LM/QRP, I made my  PCB version for SMD components with a ground plane dimension of 50 x 20 mm so that  a  PCB of 10 x 10 cm  houses 10 filter boards . I mounted my first prototype with tin shield box and verified that the filter was fine in 2018. The point was that the  spacing of the inductors' turns requires some instrumentation to do easily the tuning. The tin shielding soldered box I made was quite laborious for me.  So the pcbs has been unused for two years. I placed the PCB gerber files and scheme in  repository   https://github.com/ik1xpv/ExtIO_sddc/tree/master/hardware/Filters Now with the very nice  SATSAGEN  by  Alberto IU1KVL the tuning of filter is fast and easy,  see  https://youtu.be/yjobY6vs4z0 .  SATSAGEN  requires  a   ADALM-Pluto    or   Pluto+    device. I used the 3D printer to make a PLA box to shield the filter  https://www.thingiverse.com/thing:4787

Another kind of bug. The thermal bug

Image
During the evolution of ExtIO_sddc code the Co-Authors and I made many  tests on different computers to verify operation.  One of the PC candidate was the laptop (Asus UX330U | 2017 | i7-7500U cpu) that I used  during early development of BBRF013 / ExtIO_sddc.dll. Starting January 2021 I noticed something very strange. The application HDSDR was on but the  audio stream was discontinuous and sometimes crashed.  I thought about some software bugs.  After some testing with different code versions and on other PCs I installed Open Hardware Monitor on this PC and I noticed that the problem was related to CPU temperature. I thought that the CPU cooling was not efficient even though the internal fan was spinning. When the CPU temperature reaches high value the CPU clock is decreased to dissipate less heat. The behavior modulates speed performance of the CPU. The PC is 4 years old so I fear dust inside, not good thermal conductivity of the heat pipe and many other nightmares. I opened the lapt

A look into the RX-888 mkII

Image
  The RX-888 mkII designed by Justin Peng and Howard Su  arrived!   It is an evolution of the first RX888. The curiosity won out and I opened it. Be careful if you decide to open your device because two heat pads are used to carry the heat from the R828D and the LTC2208 to the aluminium case. I managed to slide them out without damaging them by moving the PCB very gently. A plastic wide stick may help to push out the pads and after to reassemble the radio. The PCB layout is similar to RX888 In HF the input attenuator is a  PE4312   covering a 31.5 dB attenuation range. This replaces the 0, -10 ,-20 dB attenuator of RX888.  It is followed by the low pass filter at 64 MHz.  Then two switches PE4259   select the HF input or the VHF tuner R828D produced by Rafael Micro that replaces the R820T2. The added transformer connects in a balanced way to the R828D IF outputs. An AD8370  digitally controlled variable gain amplifier (VGA) provides precision gain control, high IP3, and low noise figur

fl2k_noise generator

Image
The  osmo-fl2k project  shows how to use an USB 3.0 VGA adapter as SDR transmitter.  Many thanks to Steve Markgraf. He presented it at OsmoDefCon 2018  https://youtu.be/VRvLVjLQSaw  . I made a  console tool named fl2k_noise that generates white noise in the full HF band. You can buy Fresco Logic 2000 based USB to VGA adapter in Aliexpress or Ebay for some 5-10$ price. See more info and the adapter scheme on  https://gitlab.hamburg.ccc.de/MarBle/fl2k-liberation/tree/assets The adapter was laying in my shack when I decided to test it as wide band (white) noise generator for HF band.  I selected an old VGA to VGA cable quite long and flexible and I cut it in the middle,  I cabled it as in the following scheme to adapt the 3 *75 Ohm input to the 50 Ohm output. The capacitors remove the VGA DC component and in case isolates the ANT bias tee of the receiver. The tentative code is in my repository  https://github.com/ik1xpv/fl2k_win  . It's a fork from  https://github.com/winterrace/fl2k_

Overclocking to 128 MHz

Image
When Justin used a 128 MHz clock for the ADC  I simply thought that it was not possible. I based this to the FX3014 specs that state the upper limit of GPIFII to 100MHz.   He was right and this kind of overclocking is possible, maybe because we don't use the FX3 in an extended temperature range or maybe because the GIPIFII state machine we use is simple. The transfer rate of the USB stream raises to 128 Msps with 16 bit samples i.e. 256 MBs. This requires a quite fast PC and it may raise some more problems in the transfer.  Nevertheless it runs on my PC (I7-3770)  and offers another advantage other than wider bandwidth. Howard Su noticed that the noise level when running in 128M mode decreases by some 3dB while the signals remain with the same amplitude.  What's happening is that we have a 3dB decimation gain as explained in   https://www.analog.com/en/ technical-articles/analog- tips-decimation-for-adcs.html  : " ... The SNR calculation of an ideal ADC must account for th

ExtIO_sddc.dll v1.1 RC1

Image
We need Experimenters' feedback to validate and test  this  release candidate.   ExtIO_sddc.dll v1.1 RC1 The source repository contains code from many co-authors.  I owe special thanks to Hayati Ayguen, Howard Su, Franco Venturi, Justin Peng and all the Others, their efforts are greatly appreciated and fundamental to the growth of this project. I'm learning a lot from them. Improvements - This release detects the following hardware BBRF103, RX888, HF103, RX888r2, RX999. - Supports 128M ADC sampling rate selection in the dialog GUI (Justin Peng and Howard Su). - Use of libsddc allows development of Linux support and Soapy integration (Franco Venturi    https://github.com/fventuri/libsddc  ). - Tune the LO with a 1Hz step everywhere (Hayati Ayguen  https://github.com/hayguen/pffft ). Possibly it will allow use of ExtIO_sddc.dll with  SDR applications other than HDSDR. - Move multi thread r2iq to a multi thread pipeline model to better leverage multi cores. Remove callback in USB