Posts

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

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 obtains faster communication and simplifies the ExtIO a little bit. -The ExtIO_SDDC.dll dialog is minimalistic. Ar

RX888

Image
Yesterday I received the RX888 designed by Justin Peng and Howard Su.  The first impression in o pening the shipping package  is that it is very small.    It is as big as the Cypress fx3 superspeed explorer kit ! Thanks to Guy Atkins'  SWLing post  I was able to resist the desire to open it right away to see the interior.   I started looking at HF. I connected it to my old I7-3770 pc and to the 10 meters wire antenna that I have on the balcony of my house.   My city is Turin and here the local transmitter in MW has frequency 999000 Hz synchronized to a high precision reference. I tuned this station and without calibration of the internal oscillator of R888 I measured an accuracy better than 1 ppm. This is not obvious after a transport of more than 10000 Km. In case there is the internal trimmer that allows you to calibrate the reference oscillator when you have a reliable reference. Frequency calibration test The ExtIO_RX888.dll v0.4 has the gain scale calibrated without subtractin

HF103 - ARM firmware

Image
The analog to digital converter (ADC) and the USB3.0 controller (FX3) are the main hardware components of HF103. HF103 block diagram The FX3 firmware sends the ADC output data stream to the USB3.0 host. Let's take a look inside the ADC and FX3 chip architecture. HF103_FX3 is the name of HF103 ARM firmware. This is a redraw from my previous BBRF103 FX3 code after a first reading of the book SuperSpeed Device Design ByExample John Hyde . I found it very useful in learning the FX3 software architecture and coding. I followed the book Project template, using the same name for files. Please refer to the book to have a far better description of the architecture. RunApplication.c is the application thread. USB_Handler.c manages USB traffic. USB_Descriptors.c defines the descriptors. StartStopApplication.c starts and stop application. DebugConsole.c is a debugging console. Support.c here are support procedures. Startup.c sets up the FX3 environment for the program. cyfxtx.c def

The PC part of SDR receiver, a cheap solution

Image
In the development of HF103 rc1 I used a dedicated PC and selected on Amazon an HP Elite 8300 SFF Small Form Factor Business Desktop Computer, Intel Quad-Core i7-3770 up to 3.9Ghz CPU, 8GB RAM, 256GB SSD , DVD, USB 3.0 , Windows 10 Professional (Renewed). It is a recycled PC !  I liked the SFF cover design as it allows you to open and close it very easily. This type of PC is used by Gamers who add an LP graphics card, I used it as it arrived without adding any card. Here a video shows the internals . I had no need to change the fans. It has the HP logo! I’ve been fond of HP since when I met HP instruments and documentation during my working days. See HP Origins - Hewlett Packard Documentary … my subconscious appreciates an SDR with HP logo... Minor mechanical defects may be there. I had to adjust the cover handle mechanism with my unit. I increased the ram to 16 GB as I had the memory sticks in my drawer and added a 1TB HDD to increase data storage space. After installing the Window

Measurement of noise figure of HF103 rc1

Image
     “ Fairly accurate comparative measurements may be made with HDSDR.  Please remember the method used, without reference to a suitably calibrated source measurements will not be absolute. But this method might provide an experimenter with a useful way of comparing equipment . “   Source:    Signal Measurement with HDSDR   Thanks to the HDSDR Authors and to G4ZFQ. My RF reference is a 14 pin metallic dip crystal oscillator at 20MHz with sine wave output. It’s output is 400 mVpp sine wave on 50 Ohm resistor. I placed a  20dB attenuator at the output so that the reference on a 50 Ohm load is  40mVpp,  -24dBm.  I measured the levels with an Hantek Oscilloscope.   The procedure to measure NF is as follow: - Connect the reference generator to HF103 antenna input and run the HDSDR application. - Set RFgain to 0dB attenuation. - Select the Smeter to rms mode (click with the mouse on peak/rms indication to toggle mode). This is important as peek/rms ratio is different for sinewave or noise.