Home Category Blog
Example of Category Blog layout (FAQs/General category)
Infinity Project SD Memory for GLCD PDF Print E-mail
Written by Antonio Alfinito   
Monday, 28 July 2014 15:42

Infinity Project

an additional memory for GLCD

where to store programs


This is a project by FoxDelta Project Team



Documentation and Firmware are available here


Unlike projects, where a dedicated CPU and hardware to address a specific task are used, FoxDelta “Project INFINITY" Graphic CPU is developed keeping in mind the purpose to use same CPU/LCD/Hardware for various purposes or different projects.


Projects like

· PM4 (Dual Channel 500MHz RF Meter)

· SWM4 (Dual Channel GRAPHIC LCD SWR Meter)

· FC4 (FC4: 500MHZ Frequency Counter and RF Meter)

· SWRA (Antenna Analyzer)

· MultiMeter


are designed to fully implement the features offered by the Project INFINITY" Graphic CPU (GLCD in the following).

Due to the performances (small memory capacity) and to the architecture (mainly lack of dynamic memory allocation) of the pic 18F family, usually only one f/w application at the time can be flashed to the program memory and executed.

The current firmware architecture, common to all FoxDelta projects, segments the pic program memory (flash memory) in two areas: the upper area is hosting a special program called “Bootloader” the lower part is dedicate to store the user application.

The “Bootloader” is permanently resident in that memory area and it allows to “load” a new f/w from an external source (PC) and “reprogram” the content of the application area.

The PC stores in his large disk the user applications.

The primary job of the “Bootloader” is to talk with the PC receiving the f/w and copying it byte by byte to the pic program memory (flash memory).

At the end of this process it passes the control to the new application and remains stand by until his next activation.

This is the easiest method to upgrade an application to a new version or to replace it with a different one, because NO special h/w like a pic programmer is required. Just a PC, an USB cable and a free s/w are needed.

So with this implementation, switching from a FoxDelta project to a second one is just matter to connect the GLCD (via USB) to the PC and download the new application.

Although this is a very smart and simple job there are two constraints:

· need of a PC connection.

· loading a new application to pic means overwrite the current one recalling the original f/w of the second application stored in the pc. That is: current values (like status and calibration values) are lost while default values of the second application are restored.

This simple job when running GLCD stand alone (not connected to the PC) or when a precise calibration was done or when a frequent application switching is required, could be an unrealistic approach.

To go over these limits we developed the solution to

add to GLCD an external memory, where to store the available f/w, and a management system that allows to save current application status, select a new one, load and launch it.

We choose the Secure Digital Card (SD) as additional memory to be connected to GLCD and FAT16 as File System.

These choices are compliant with almost all PC OS and SD card readers, so they allow to prepare and manage this support without any additional buy.

Having no PC resources, this requires that the job to list available files, select the application, load and launch it, should implement by the pic.

For this purpose we developed a new “SD Bootloader” and a special “SD File System Manager”.

To keep the size of SD Bootloader as small as possible, in order to leave the rest of the memory free for user applications, and implement a file system compliant with the PC standards, the main functions of the file management are implemented by a separate module we called “SD File System Manager”.

This module is automatically loaded and discharged when needed.

SD File System Manager and SD Bootloader strictly cooperate to manage the f/w stored in the SD memory.




This is a project by FoxDelta Project Team

Last Updated on Monday, 28 July 2014 16:14
Audio Generator PDF Print E-mail
Written by Antonio Alfinito   
Saturday, 16 February 2013 17:24



by i2mkm and i2tzk




This is a project by FoxDelta Project Team


The “Audio Generator” project implements a Digital Direct Synthesizer (DDS), a type of frequency synthesizer used for creating arbitrary waveforms from a single, fixed-frequency reference clock.

In its simplest form this particular circuit configuration can be implemented from a precision clock reference, an address counter, a programmable memory, and a D/A converter.

Please, for more detailed notes, refer to “A Technical Tutorial on Digital Signal Synthesis”, Analog Devices and to the very reach literature on this argument available from the net.

We choose a mid-range Microchip 18F4550 pic to implement the main blocks of the DDS process, f/w takes care to run a 32 bits architecture counter and to host the lookup table in his memory. A very tight loop reading and outputting the table values allows to generate very good signals from 10Hz up to 50KHz.

The address counter stores the current phase value of the generated waveform. The rate at which the register (phase accumulator) is updated and his increment determine the frequency of the output waveform. By setting the increment value to different values, we are able to produce different frequencies.

The current phase accumulator value is used to perform a lookup operation in the table to determine the next output value. The lookup table contains one cycle of the waveform to be generated, 256 sample points which represent the waveform.

Standard lookup tables are present for generate sine, sawtooth and square wave while a customizable table can be designed and uploaded to the pic memory by a pc program (Windows) specially written for this purpose.

Because to produce different frequencies from 10Hz to 50KHz at 1Hz step we are incrementing by more than one the phase accumulator (or in other word we are up-sampling or down-sampling the waveform stored in the lookup table) this results in missing samples. Hence some embedded jitter is present.

Only frequencies equal to the clock frequency divided by the waveform length and its sub multiples are not sampled and therefore they do not suffer from this problem.

Generally speaking, skipping some samples doesn’t represent a problem when generating a sine or similar waveform, the following filter stage absorbs most of this aliasing.

Waveform jitter is an issue generating an arbitrary function specially if the designed output is composed by a pulses burst. For this reason we decided to implement two algorithms processing the custom lookup table, obtaining a satisfactory work around to the jitter problem.

First algorithm CUSTOM_1 manages the sampling rate the same way as done for the standard tables: fixed clock and variable phase accumulator. The second one CUSTOM_2 is always full reading the table and different frequencies are obtained varying the sampling rate, this way the waveform is always drawn by 256 samples, no aliasing or jitter.

Of course, reading and outputting 256 samples whit a midrange pic device, implies some limitation to the max frequency generated but this guaranties the accuracy of the produced signal. Being the sampling rate 1uS, the max frequency is limited to a 256uS period.

To keep low the hardware cost, a ladder, made up of resistor pairs, makes the A/D converter, we recommend to select 1% tolerance resistors for these components.

A low-pass filter and a buffer amplifier bring the signal to the output connector.

Because we want also to output a square wave or a custom burst at digital TTL level, we added a Schimtt trigger stage to properly adjust the signal level.

Having a very flexible hardware design we decided to include in the “Arbitrary Audio Generator” project some additional functions useful for testing the Ham radio equipment.

  • A two tones generator has been implemented, two non-harmonically related sine waves of equal amplitude at 400Hz/2600Hz or 800Hz/1000Hz are generated.

  • noise generator producing WHITE and PINK noise. The “White Noise” generator implements the Linear Congruential Generator (LCG) algorithm. The “Pink Noise is generated by putting the white noise through a “pinking” filter which removes more energy as the frequency increases. The algorithm implemented applies to the white noise generator a weighted sum of first order filters to approximate a 10dB/decade filter (Paul Kellet's "economy" method).

  • AFSK tones. FSK signal is obtained switching between two continuously running oscillators at 2125Hz and 2295Hz, this method assure to maintain the phase coherency of each single tone allowing optimum decoding of weak signals.


AUDIO GENERATOR main features :

· Smart and very cheap hardware implementation

· Free firmware and software for the Ham Radio Community

· Generate standard sine, sawtooth and square wave from 10Hz to 50KHz

· Generate two tones for cat-eye SSB test

· Generate AFSK tones (2125/2295 Hz)

· Generate white and pink noise

· Generate arbitrary waveform

· Special PC program allows to design custom waveforms and upload the generator memory


Last Updated on Saturday, 16 February 2013 19:10
FC3 PDF Print E-mail
Written by Antonio Alfinito   
Thursday, 06 September 2012 17:12




FC3 project

a Frequency Counter up to 500MHz






This is a project by FoxDelta Project Team






Fc3 is designed and developed for Radio Amateurs looking for economical frequency counter for their hobby work and wish to measure RF signal Level at the same time.

Analog Device's AD8307 is used to measure RF level very accurately in dBm, Vpp, Vpeak or Vrms.

Counter works with PC or as a stand-alone. PC Connection is auto detected and so is stand-alone mode.

Front panel push buttons are provided for RF Meter Mode and HF to VHF Frequency measurement modes.

A PC program Windows based specially designed for FC3 by Tony/I2TZK is provided for configuration of IF Off-sets and AD8307 related parameter configuration thru USB interface.

Program reflects also the LCD panel frequency readout and the two pushbutton.

Complete KIT uses AD8307, ADA4789 and MC12080 in SMT package and are supplied pre-soldered on PCB for those who do not like to solder these tiny devices.

Assembled FC3 may also be available, refer to FoxDelta web site for any detail about FC3 kit.

FC3 Frequency Counter main features are:


  • · USB and DC12V Powered
  • · Measure RF Level using AD8307
  • · Display signal level in dBm, Vpp, Vpeak and Vrms
  • · Count frequency up to 500MHZ.
  • · HF, VHF and autorange modes.
  • · 2 x 16 LCD Display with backlight control
  • · 50 ohms input impedance for both ranges
  • · Frequency "off-sets" set by PC program.
  • · Calibration and other parameters set by PC program




Last Updated on Thursday, 06 September 2012 17:20
VintageCAT Print E-mail
Written by Antonio Alfinito   
Wednesday, 04 July 2012 16:19




VintageCAT project:

the way to add a CAT (Computer Aided Tuning) interface

to any “old style” rig


by Tony, i2tzk and Mirko, ik2mkm July 2012


VintageCAT Download


“VintageCAT” is a very simple ONE WAY interface that acquires from the rig the receiving frequency, the mode (CW, USB, LSB, etc.) and the SMeter level, digitalizes the values and sends them to the PC emulating CAT messages.

"VintageCAT" has been specially designed to interface "old tubes receivers", an optional LCD panel can show real time the receiving frequency and the mode.


Fig. 1

Any PC program that implements the Kenwood CAT protocol can communicate via the VintageCAT interface with the receiver and read the status of the rig.

Any “old style” radio without CAT option can be connected to VintageCAT and interfaced to the PC.



Hardware main features:

- A smart and cheap hardware collects from the rig:

- Vfo receiving frequency: A high impedance front end has been designed to achieve great noise immunity.

- Modes and bands: 6 inputs are available for modes (CW, USB, LSB, FM, AM, FSK) and up to 9 auxiliary input for bands. All inputs are opto-isolated to prevent high voltages or rapidly changing voltages from damaging the interface components and the PIC ports.

- S-Meter level: from S0 to S9+60.

- Microcomputer Microchip 18F2550 takes care to digitalize, elaborate frequency, mode and SMeter level and to respond to the PC commands.

- USB port to communicate with the PC emulating a virtual serial port.

- +5Volt supply is extracted from the PC USB port or from an external power supply for stand-alone operations.

- TCXO oscillator guaranties the clock stability and precision to readout +/- 1Hz

- Optional LCD to display the receiver frequency.



- Counter to measure the VFO frequency selectable at +/-1Hz or +/-10Hz accuracy.

- Automatic addition/subtraction of the IF offset based on selectable algorithms.

- AD conversion of the SMeter voltage 10bits accuracy adjusted and converted as required by the Kenwood CAT protocol.

- Detection of 6 receiving modes: CW, USB, LSB, FM, AM, FSK.

- Optional up to 9 auxiliary inputs that could be used for bands selection if required by the computational frequency algorithm.

- Emulate the Kenwood CAT protocol commands: read frequency, read mode and SMeter level.

- A bootloader for any further f/w upgrade without the usage of a pic programmer has been integrated into the source code.



- Dedicate Windows program to setup IF offset algorithm, SMeter minimum level and other parameters.

- Dedicate Windows program to display the receiving frequency, mode and SMeter level.

- Any PC program that implements the Kenwood CAT protocol can communicate with VintageCAT and read the status of the radio.

Fig. 2

Dedicate application “VintageCAT.exe” has been developed to read and display from the rig the receiving frequency, mode and SMeter level


Any PC program that implements the Kenwood CAT protocol can communicate via the VintageCAT interface with the receiver and read the rig status.

Fig. 4

Displaying the correct receiver frequency depends on several parameters.

Basically the signal that feeds VintageCAT interface could be taken from the Vfo, first or second mixer or any circuit block depending on the receiver layout, so different methods must be used to readout exactly the tuned frequency.

To allow the usage of VintageCAT with a largest number of receivers, several algorithms have been implemented.

List includes three “general purpose” methods:

· Frequency Counter.  Use this one if no adjustment is needed, the counter will show exactly the frequency of the input signal.

· Generic Frequency Table. Use this one when different offsets must be applied depending on the range of the input frequency.

· Generic Band Table. Use this one when each band requires a different offset or you want manually select the offset.

and two dedicate Drake C line :

· Drake R4C

· Drake TR4C





Last Updated on Saturday, 01 September 2012 18:30
SWR Analyzer PDF Print E-mail
Written by Antonio Alfinito   
Friday, 15 June 2012 08:38


SWR Analyzer project’s notes

by i2tzk




This is a project by FoxDelta Project Team



The "SWR Analyzer" is a smart, cheap and easy to assemble "Antenna Analyzer".

The project is focused to measure the antenna performances across the HF Ham radio bands without any need to connect the transmitter to the antenna.

The following picture is an example of the Mosley Pro67 antenna analysis:

Fig. 1


The “SWR Analyzer” is a Scalar (or single port) Network Analyzer, the following figure shows the hardware architecture.

Fig. 2


Main elements of the diagram are :

- Microchip PIC18F2553

- DDS generator  AD9851

- Return Loss Bridge

- Detector AD8307


The microcontroller PIC18F2553 interfaces the PC receiving commands to drive a RF  generator (DDS) and sending back the voltage values read from the Return Loss Bridge.


The Analog Devices AD9851 is a Direct Digital Synthesizer (DDS) device which can generates a sinusoidal wave output up to 180MHz. The microcontroller drives the DDS to generate the RF signal sweepped in the HF frequency range from 1MHz to 35MHz, that feeds one end of the Return Loss Bridge.


The return loss bridge is the wideband resistive bridge network used to verify the impedance at the antenna connector. It works by comparing the "unknown" antenna impedance to a purely resistive 50 ohms, the output  DC voltage  corresponds to the level of impedance mismatch between the 50 ohms  and the antenna impedance.


Generally, the higher the DC voltage output, the worst the impedance mismatch is.


The following stage (AD8307 configured as detector/differential comparator) amplifies the RLB output converting the signal level to a decibel form and delivering it to the microcontroller.


The Analog to Digital Converter (ADC)  embedded into the microcontroller  provides to generates the digital measure of the impedance, the measure is sent back to the PC.

Finally the PC program calculates the dBm values, translates the measure in a SWR figure and plots the mismatch diagram of the antenna.


The PC program, Windows based, allows to explore a single HF Band or the full range from 1 to 30MHz and plot the resonance figure.



This is a project by FoxDelta Project Team

Last Updated on Saturday, 25 August 2012 09:25

Page 1 of 2