Posts

Showing posts with the label ExtIO_sddc

Controller host USB3.0 recovery

Image
For three years I have been using an  HP 8300 SFF  in the lab to play with BBRF013, RX888 etc. I have made many modifications to the PC. I added a second USB3.0 controller and about two weeks ago I replaced the system disk with an NVME disk. Almost every day I use BBRF103 or RX888. Suddenly yesterday I cannot connect BBRF103 to the original USB3.0 ports on the back of the PC. When I launch the application the message appears : Fortunately, I have two USB3.0 controllers installed . After trying to change cables and BBRF103 I noticed that everything worked consistently if I connected to the ports of the second USB3.0 controller. I tried resetting and switching off/on the PC several times without any success. The solution was:  - backup and make a restore point - in device management disable and uninstall the affected USB controller - shut down the PC - upon restarting the controller was detected and the driver reinstalled automatically and voila now it works again. Th...

Down sampling more

Image
ExtIO_sddc.dll is designed for use of BBRF103 / RX888  with HDSDR . The  input stream from the ADC ( 16bit , 64 MHz real signal)  is analyzed in an overlap and save method   (overlap-scrap)   with an FFT of dimension N = 8192 . After the low pass filtering convolution an output FFT - 1   of dimension M = 256  decimates the sampling rate to 2 MHz .  64 * 256 / 8192  =  2  MHz.  Signal tuning is made with circular shift in frequency and fine tuning using a complex mixer in time. This is a simplified diagram of SDDC: If we want to use a stand alone application deeper decimation and filtering is required to match the computer audio sampling. A possible block diagram of the application is: The Base Band Digital Processor module receives an I&Q input at 2 MHz and generates an output to demodulation module at "audio" speed.. Here  some numbers. /* F INPUT   FFT        FFT      ...

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 ...

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 a...

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 leve...

ExtIO_sddc.dll v1.01

Image
It is a tentative version of ExtIO_sddc.dll  that can operate with BBRF103,  HF103, RX888 as the FX3 Arm code detects the hardware type used. The sources are at  https://github.com/ik1xpv/ExtIO_sddc/releases   a compiled dll is at  https://drive.google.com... MD5 ef1579eeb47ee1fc4f3c8ec45520d81c extio_sddc_v1.01.dll Copy the dll in a directory with HDSDR.exe and libfftw3f-3.dll. Here a summary of changes. - First, there are a lot of new bugs... I'm sure :-) - The SDDC_FX3.img arm program detects the radio hardware.      If there is not a programmable Si5351a  the radio is a HF103 and operates only in HF      else      if there is a pull up (led blue) on GPIO54 of FX3 the radio is a BBRF103      else      it is a RX888. -The control protocol in between FX3 and ExtIO_sddc.dll is redesigned and the programming of Si5351a and R820T2 is now made by the SDDC_FX3.img code. It obta...