====== 4.4GHz RF Synthesizer Board - ADF4351 - Theory, Setup, Reverse Engineering, Experiments ======
The ADF4351 is an RF frequency synthesizer capable of producing tones from 37MHz to 4.4GHz. But how well does it perform? and can it work with open source software?
* [[https://odysee.com/@OpenTechLab:f/otl-005-adf4531-setup:b|odysee]]
* [[https://www.youtube.com/watch?v=xJ0Mfuj0KUQ|YouTube]]
* [[https://peertube.social/videos/watch/8b1ae319-b693-44f0-a142-f77dffba864d|peertube.social]]
* 0:00:00 - Introduction
* 0:01:38 - Board Overview
* 0:09:28 - Software, Hardware and VirtualBox Setup
* 0:23:15 - SPI Decoding with sigrok
* 0:32:23 - USB Packet Capture with usbmon
* 0:46:24 - Synthesizer Theory of Operation
* 0:57:14 - pyadf435x Open Source Software Suite, Decompiling .Net Code
* 1:07:29 - Testing RF output with an RTL-SDR and gqrx
* 1:17:38 - Python Scripting Experiments and Inspectrum
===== ADF4351 =====
* [[http://www.analog.com/en/products/rf-microwave/pll-synth/fractional-n-plls/adf4351.html|ADF4351 Product Page]]
* [[http://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/eval-adf4351.html|EVAL-ADF4351 Evaluation Board Product Page]]
===== Hardware =====
* [[https://www.banggood.com/35M-4_4GHz-PLL-RF-Signal-Source-Frequency-Synthesizer-ADF4351-Development-Board-p-1129041.html?p=SD062212952342201708 on Banggood|ADF4351 Board]] @ $19.38
* [[https://www.banggood.com/EZ-USB-FX2LP-CY7C68013A-USB-Core-Board-Development-Board-Logic-Analyzer-p-1183409.html?p=SD062212952342201708|Cypress FX2LP Board on Banggood]] @ $6.97
* [[https://www.banggood.com/USB-Logic-Analyzer-24M-8CH-Microcontroller-ARM-FPGA-Debug-Tool-p-1177821.html?p=SD062212952342201708|FX2-based Logic Analyzer on Banggood]] @ $9.13
* BA5SBA RTL-SDR Software Defined Radio
* [[https://archive.fo/ynd17|Kit]] @ $24.90 **(WARNING: Very Hard to Assemble)**
* [[http://archive.is/sVfc8|Assembled]] @ $30.67
===== Software =====
* [[https://sigrok.org|Sigrok/PulseView]]
* [[http://www.triplespark.net/elec/periph/USB-FX2/software/|cycfx2prog]]
* [[https://www.virtualbox.org/|VirtualBox]]
* [[https://www.wireshark.org/|Wireshark]]
* [[https://walac.github.io/pyusb/|pyusb]]
* [[http://ilspy.net/|ILSpy]]
* [[http://gqrx.dk/|gqrx]]
* [[https://github.com/miek/inspectrum|Inspectrum]]
===== Sigrok =====
==== ADF4351 Decoder ====
* [[http://sigrok.org/gitweb/?p=libsigrokdecode.git;a=tree;f=decoders/adf435x|Protocol Decoder Source Code]]
* [[http://sigrok.org/gitweb/?p=sigrok-dumps.git;a=tree;f=spi/adf4351|Protocol Dump]]
===== usbmon =====
* [[https://www.kernel.org/doc/Documentation/usb/usbmon.txt|usbmon Documentation (usbmon.txt)]]
===== circuitjs Simulations =====
* [[http://www.falstad.com/circuit/circuitjs.html?cct=$+1+0.000005+15.472767971186109+60+5+50%0A158+416+208+448+208+0%0Ac+512+208+512+240+0+0.000001+-2.3891475723100717%0Ar+512+272+576+272+0+3000%0Ar+512+304+576+304+0+100000%0Aw+576+272+576+304+0%0Ag+576+304+576+336+0%0AR+128+160+64+160+0+2+120+2.5+2.5+0+0.5%0Aw+128+192+128+304+0%0Aw+128+304+416+304+0%0Aw+416+176+416+208+0%0AO+128+304+80+304+0%0Aa+336+112+416+112+1+15+-15+1000000+2.714639305921044+2.7146664523141033%0Aw+304+96+336+96+0%0Aw+336+128+336+176+0%0Aw+336+176+416+176+0%0Aw+416+176+416+112+0%0A161+128+160+176+160+0%0Ar+224+160+304+160+0+500%0Aw+304+96+304+160+0%0Ac+304+160+304+208+0+0.00009+2.714666452315499%0Ar+304+208+304+256+0+1000%0Ag+304+256+304+272+0%0Ao+6+64+0+4110+5+0.00009765625+0+2+6+3%0Ao+10+64+0+4110+5+0.00009765625+0+1%0Ao+19+64+0+4099+5+0.0125+1+2+19+3%0A|1:1 Phase-Locked Loop]]
* [[http://www.falstad.com/circuit/circuitjs.html?cct=$+1+0.000005+10.20027730826997+53+5+50%0A155+128+96+144+96+2+0%0A155+128+256+160+256+2+0%0Aw+224+96+400+96+0%0Aw+400+96+400+192+0%0Aw+224+256+400+256+0%0Aw+400+256+400+224+0%0Af+400+256+464+256+4+1.5+0.02%0Af+416+160+464+160+5+1.5+0.02%0Aw+224+160+416+160+0%0Aw+464+176+464+208+0%0Aw+464+208+464+240+0%0Ag+464+272+464+320+0%0AR+464+144+464+80+0+0+40+5+0+0+0.5%0AR+128+128+48+128+0+2+120+2.5+2.5+0+0.5%0AR+128+288+48+288+0+2+115+2.5+2.5+0+0.5%0AR+128+96+96+96+0+0+40+5+0+0+0.5%0AR+128+256+96+256+0+0+40+5+0+0+0.5%0Aw+128+208+128+160+0%0Aw+304+208+304+352+0%0Aw+304+352+128+352+0%0Aw+128+352+128+320+0%0Aw+464+208+528+208+0%0Ar+528+208+528+144+0+1000%0Ar+528+208+528+272+0+1000%0AR+528+144+528+80+0+0+40+5+0+0+0.5%0Ag+528+272+528+320+0%0AO+528+208+576+208+0%0Aw+128+208+304+208+0%0A150+400+208+304+208+0+2+0+5%0Ao+13+64+0+4102+5+0.00009765625+0+2+13+3%0Ao+14+64+0+4102+5+0.00009765625+0+2+14+3%0Ao+26+64+0+4102+5+0.00009765625+0+1%0A|Phase Detector Internals]]
* [[http://www.falstad.com/circuit/circuitjs.html?cct=$+1+0.000005+6.724437240923179+61+5+50%0A158+416+192+448+192+0%0Ac+512+192+512+224+0+1e-7+-3.1835372114314087%0Ar+512+256+576+256+0+3000%0Ar+512+288+576+288+0+100000%0Aw+576+256+576+288+0%0Ag+576+288+576+320+0%0AR+128+144+64+144+0+2+300+2.5+2.5+0+0.5%0Ag+304+224+304+256+0%0Aw+416+160+416+192+0%0Aa+336+96+416+96+1+15+-15+1000000+1.3290828616666983+1.3290961524953149%0Aw+304+80+336+80+0%0Aw+336+112+336+160+0%0Aw+336+160+416+160+0%0Aw+416+160+416+96+0%0A161+128+144+176+144+0%0Ar+224+144+304+144+0+2000%0Aw+304+80+304+144+0%0Ac+304+144+304+176+0+0.000009999999999999999+1.329096152495355%0A155+128+240+144+240+0+5%0Aw+224+240+224+208+0%0Aw+224+208+128+208+0%0Aw+128+208+128+176+0%0Aw+224+304+224+336+0%0Aw+224+336+96+336+0%0Aw+96+336+96+240+0%0Aw+96+240+128+240+0%0Aw+128+272+64+272+0%0Aw+64+272+64+352+0%0Aw+64+352+416+352+0%0Aw+416+352+416+288+0%0AO+416+352+480+352+0%0Ar+304+176+304+224+0+1000%0Ao+6+8+0+4110+5+0.000048828125+0+2+6+3%0Ao+30+8+0+4110+5+0.00009765625+0+1%0A|1:2 Phase-Locked Loop]]
===== pyadf435x =====
* **[[https://github.com/jhol/pyadf435x|pyadf4351x on GitHub]]**
===== Microcontroller Tool-Chain ====
==== Cypress FX2 ====
* [[http://sdcc.sourceforge.net/|SDCC (Small Devices C Compiler)]]
* [[https://github.com/djmuhlestein/fx2lib|fx2lib]]
===== Credits =====
* Intro Music: [[http://freemusicarchive.org/music/Logan_Takahashi/Live_at_WFMU_on_Champ_Sound_with_DJ_Guy_4282016/|Logan Takashi - Orb-O]] (CC-BY-NC-ND).
===== Around the Web =====
* [[https://hackaday.com/2017/04/12/4-4-ghz-frequency-synthesis-made-easy/|HackADay Article]]