Arduino PLL control project

TSA5511 PLL Controller for Arduino

A PLL controller for TSA5511-based FM exciter and VCO projects. It combines an Arduino Nano, a 16x2 LCD, three pushbuttons, System Settings, Quick Menu, carefully managed EEPROM storage and automatic PLL communication recovery into a compact front-panel frequency controller.

Developed for exciter retrofits

Originally developed for replacing the proprietary controller of a DRFS06 exciter, while remaining useful for other TSA5511-based designs.

Menu driven

The LCD interface separates persistent System Settings from the direct Quick Menu, so configuration and everyday operation remain clear.

EEPROM aware

Persistent system settings, per-band operating states and user memories are restored after restart, while temporary actions stay out of EEPROM.

Interactive browser demo

Explore a functional simulation of the controller without physical hardware. Operate the virtual 16x2 LCD and buttons, navigate System Settings and the Quick Menu, inspect the virtual TSA5511 status and output ports, and trigger simulated I²C communication loss or a TSA5511 power cycle to observe the recovery behaviour.

The simulation does not communicate with a physical Arduino or TSA5511. Any saved demo settings remain local to the browser.

Launch the interactive demo

Project overview

This project provides a compact Arduino-based front-panel controller for TSA5511 PLL designs. It brings both persistent configuration and everyday operating functions to a 16x2 LCD interface, so frequency control, memory handling and RF-drive control can be handled directly from the hardware.

The controller is intended for VCO frequency control from 64 MHz up to 1,300 MHz, within the specification range of the TSA5511. It supports configurable VCO bands, selectable PLL crystal frequency, I²C address handling, periodic TSA5511 status monitoring, state-aware recovery from communication loss or unexpected PLL resets, lock indication, user memories, station-name editing, temporary RF-drive control, optional menu-title display and LCD backlight control.

Main features

Hardware overview

The hardware consists of an Arduino Nano or compatible board, a standard 16x2 LCD, three pushbuttons with 470 nF debounce capacitors, the TSA5511 PLL circuit and an optional PLL lock LED. The lock LED can also act as a blinking fault indicator, while the LCD displays the lock status directly.

Controller Arduino Nano or compatible board
User interface 16x2 LCD, DOWN / SET / UP buttons
PLL device TSA5511 with configurable I²C address
Typical use FM exciter, VCO and RF frequency-control projects

Pull-up resistors on SDA and SCL are required. If the I²C bus passes through RF-decoupling circuitry, lower pull-up values such as 1 kΩ or 2 kΩ may improve communication reliability. When using TSA5511 package variants with fewer available output ports, make sure that port mapping only selects physically available ports.

Operation and settings

In normal use, the VCO frequency is adjusted with UP and DOWN and confirmed with a short SET press. Holding SET cancels the pending frequency change and returns to the main screen unchanged. Holding UP or DOWN starts an accelerated sweep through the selected frequency band. If no confirmation is given, the frequency edit will time out unchanged. The System Settings menu discards unsaved changes on timeout, while Quick Menu actions are applied immediately. PLL lock is verified after programming. To prevent false unlock indications caused by FM modulation, lock-flag polling stops after lock has been detected, while periodic TSA5511 status monitoring remains active, including during menu operation and frequency editing. I²C communication loss is indicated and retried automatically. Any active menu is closed with unsaved changes discarded and any unconfirmed frequency edit is cancelled. After communication is restored, existing PLL programming is retained after a read-only interruption without POR; acquisition control and lock verification are resumed if required. Full reprogramming is performed only after an uncertain write or an unexpected TSA5511 reset indicated by POR.

About this landing page

This landing page provides a concise project overview and direct access to the interactive browser demo. The GitHub repository remains the authoritative source for the full Arduino sketch, detailed documentation, pin mappings and version history.

Source code and documentation

The complete Arduino sketch and project documentation are available in the public GitHub repository. Use the repository for the latest source code, detailed comments, pin mappings and version history.

Open the GitHub repository