15 Jan. 2023 - Constant S9+60 level, for all 1-30 Mhz range

Hello folks !

Ditched AGC auto level but opted for DAC via substractor OPAMP to control output voltage for a steady level. Also, with eye glasses I’ ve detected that AD603 out impedance is not 50 but 500 ohms, that only coz THD was way above normal and had to read datasheet once again. Stupid I know, but mistakes are making life greater ! Never had eye glasses in 48 years, but that time has come unfortunately !

Home made SigGen
SIG-130 RXPv1

As per Digital AGC article, I thought why not building a useful signal generator, precise and clean one ?
From your imagination to reality

For quite some time, I wanted to design and build a signal generator, HF only

Covering a 31.5 dB attenuation range in 0.5 dB steps, high linearity  from 1 MHz through 4 GHz. Only 30dB range will be used , to ease Arduino computation.


Digital RF attenuator
  • I would say the price is OK
Feel at home

Just an ideea, nothing built yet !. I want precise output voltage , cheap components, easy to DIY .
For the time being, I will focus to parallel mode even if serial is available. A registry shifter or latched buffer i2c GPIO extender is a good option to reduce Arduino pins, time will tell !

1 to 30 Mhz output

A simple not expensive AD9850 will be used. High level of harmonics above 35 Mhz will be filtered with a 9-11 poles low pass filter.

Multiple cascaded PE4312 attenuators

To get a good range between S1 and S9+60 and above, a well designed adjustable 120 dB attenuator is needed. For this purpose, 4 x PE4312 will be used.

AGC constant level output

While generating frequencies between 1 to 30 Mhz, the AD8950 output signal will vary as amplitude. To overcome this, I will be using a DAC combined with AD603 to produce a steady 50 mV R.M.S. output signal before ATT network.

Premium PCB design

To get the best from this design, a well PCB is needed. Shielding, ground impedance, VCC and signal isolation, there are many things involved to get a good DIY Lab Tool. I am confident I can overcome all above !

Arduino + Nextion = Love

Cannot build a valuable SigGen today without looking good also ! A high shielded Arduino and Nextion display will be used to drive this beast on, also will have to be as EMI isolated as humanly possible !

Arduino 4 x 6 bit addressing

How to ?
MCP23008-E/SS to the rescue I2C 8 bit GPIO extender
  • All 4 extenders on same bus with different addresses
  • No Latch enable pins, no bulky cables
  • Serialized execution, write all 6 bits ATT per ATT in parallel mode via I2C GPIO extenders
  • Only 4 Arduino pins used : GND, VDD , SCL and SDA

Until something practical will be made, until a schematic will be drawn, here are my thoughts, this and thats :

  • Si5351 output 1 and 2 way above wanted signal will be  mixed into a diode ring mixer. There will be many signals at the output, will be dirty for sure but bigger the distance , better the filtering ! e.g.  : 61 mhz  – 60 = 1Mhz out ,  90 mhz – 60 mhz = 30 mhz out 
  • The difference will be filtered and amplified by an AD603 , level detected by AD8307 and via a substractor Opamp will be AGC controlled to get a steady 100 mV output.
  • This output will be Low pass filtered before detection, I would say a 7 or 9 poles  40 Mhz Low pass filter will be enough to reject all garbages
  • AD8950 sine output will be filtered above 35 Mhz and level adjusted by DAC via AD603 with 2 corrections per Mhz to get a steady output voltage.
  • This steady 50 mV will be variable divided by a network of 4 x PE 4312, 30dB ATT each to get a minus 120 dB total ATT.
  • Arduino keypad and knob will set ATT with a 0.5 dB resolution, by multiplexing using parallel 6 bits for each PE4312 using  i2c 8bit extenders latch enable pin
  • Strong shielding is required to get best results, also a Nextion touch screen will be used to minimize physical needed buttons .

Leave a Reply

Your email address will not be published. Required fields are marked *