Hobcat installer download: hobcatsetup.exe
Hobcat internet update window
Hobcat MOX control
database browser help
Hobcat database browser setup
Hobcat USB Interface
Hobcat is developed as a PC control, configuration and monitoring program for the TrxAVR_Picastar transceiver control board.
TxrAVR is via USB.
TrxAVR uses a FT245R USB devicefrom FTDI (Future Technology Devices International Ltd).
This device and its supporting software provide a complete USB interface solution.
The device contains FIFO buffers, EEPROM, clock circuit and USB resistors.
FTDI provide PC drivers in the form of a dll (ftd2xx.dll). This dll is used by:
Hobcat connects to ft2dxx.dll which must be installed for Hobcat to run.
Hobcat source code and installation/upgrades
is written in Delphi 6 and uses developer addons: Raize components,
Express Quantum Grid suite, Embedded HTML help.
Recent source code is downloadable as: hobcat source code (It will not compile without the Delphi addons!)
Wise Installmaster 8.1. The installer program, HobcatSetup.exe is both an installer
It does the following:
Hobcat has built in FTP
upgrade utility which checks the homebrew-radios.net website for a newer version,
and then optionally downloads the latest hobcatsetup.exe. (.... has stopped working - under investigation!)
is written using a MDI (Multiple Document interface).
This allows several windows to open simultaneously (as with wordprocessor or spreadsheet documents).
The open documents are listed in the Windows menu. The windows may be shown one at a time or cascaded or tiled.
At present, Hobcat contains the following windows:
Hobcat provides menu options for configuration of a TrxAVR-Picastar transceiver vai USB link.
These are descibed in detail in the seup instructions:
Setup 1 Overview
Setup 2 USB
Setup 3 Prorgamming
Setup 4 DSP code¶ms etc
SWR - do a clibration
SWR - Calibration summary
With a large resolution monitor, Hobcat can display mulitple monitoring and control windows.
Hobcat's debug window is shown below:
Hobcat's debug display
is monitoring selected TxrAVR internal variables via the FT245R USB port.
The toolbar controls provide for 'singleshot' or repetitive monitoring.
Each variable needs only single line of code adding to TxrAVR's taDebug.c module.
eg: result &= dbSendVar("EncoderTest",(uint8_t*)&EncoderTest,'B','D');
This line of code includes the variable name as text and the formatting requiement (B = byte, D = decimal display)
- Thus no setting up is needed on the PC-based Hobcat program - It simply asks TxrAVR for the configured variables.
In the above display, the 9600baud messages from Encoders8 are controlling the values of the array of eight test variables, EncoderTest[0-7].
(The variable: StringRx0 shown above contains the latest Encoders8 output: $3+01 (which means encoder 3 increment by one)
The right pane has been
dedicated for the PORT, DDR and PIN registers of the Atmega2560's eleven I/O
Other Atmega2560 hardware registers can be optionally displayed in the left variables pane , eg: ADMUX, EIMSK etc as shown.
Hobcats DDS window is shown below;
The A and B VFO windows display all the
data in the A and B Vfo slots.
Mouse control and some key board control is provided.
VFO A/B switching is by left-clicking the frequency display.
(Right-clicking the frequency display allows manual frequency entry)
The above display shows XIT - selected
by a long pressof # on the transceiever or by the XIT button.
Split is on initially by default, as in Picastar.
VFOs are labelled R and T as in TrxAVR-Picastar and VOF frequencies are initially that or the previous
On transmit, the transmit VFO show as active (yellow digits) and has a transmit indicator.
Clicking the Split button
switches Split off but maintains XIT mode. With Split off, transmit frequency
is that of VFO A
VFO A freqeuncy window has been right-clicked
to allow manual frequency entry.
(The backspace and ESC keys are supported)
Version 1.055 added a MOX button to the DDS window. See: Hobcat MOX
Hobcats DSP window is shown
The minimum monitor resolution requirement is 1024x768. (800x600 is not supported!)
Hobcat's DSP display on receive is shown below:
The parameter names and max, min and multiplier are from User2b2.xjp, but the data is from TrxAVR.
parameter list EXCLUDES those parameters whose name in Use2b2.xjp is preceded
by an 'x'.
This fact is hard coded in TrxAVR-Picatar.
These locked parameters were optimised by G3XJP when Picastar development ended in September 2008
and should not need to be changed.
( They could in fact be changed in User2b2.xjp and then transmitted to TrxAVR....
this is seriously not recommended .... hence no access to them in Hobcat / TrxAVR)
Note the yellow edit
box. Clicking on the Noise blank level cell displays the grey down arrow.
A further click on this arrow displays the yellow spin edit box which allows the volume to be adjusted. TrxAVR_Picastar responds
as you adjust it.. and the value is stored in EEPROM). A final click away from the edit box completes the edit.
The bottom right controls display the status ot the corresponding TrxAVR switches and also provide PC control of these switches.
The G, Y and R buttons will switch parameter sets on TrxAVR-Picastar.
The enc column shows the assignment TrxAVR's rotary encoders and potentiomters to parameter control (see Encoders8).
TrxAVR supports upto eight encoders (labelled 1 to 8) and two patentiomters (labelled A and B). The assignment of these is made in TrxAVR.
The analogue pots are easy to connect but are of somewhat limited use as the parameter assumes the pot-defined value as soon as assigned.
Volume (2.1) is the most obvious use, and is modified to range 50-100 (rather than 0-100). The full ADC range of 0-1023 might not be achieved
and so the parameter range is controlled by ADC range 100-960. (ie the parameter control uses approx. 85% of the pot's rotation)
Note that when
you control the DSP with Hobcat, you are communnicating with the DSP through
TrxAVR which converts the USB commands
into serial telemetry to the DSP. The adjustments that you make are stored in TrxAVR's 24LC512 EEPROM and so are retained on power down/up.
However. if DDS39 = parameter-reset-mode is on, all parameters will be set to deafult backup values on startup.
with parameter 5.2 set to 2. This provides for simultaneous internal (S-meter,
graphic DSP display)
and external (Hobcat) monitoring.
I was able to confirm the correct operating of this DSP display by running Hobcat's DSP display (via USB) and G3XJP's DSP monitor display (via RS232) alongside each other in the PC screen.
The DSP unit has two-way 9600 baud telemetry with UART2 of TrxAVR's ATmega2560 controller.
This is routed through a 3.5mm jack socket which allows standard Picastar communication via serial link.
This is used by G3XJP's test and IF clalibration programs. (and some G3XJP loader functions if you wish)
Hobcat's DSP display on transmit is shown below:
Hobcat is written using Borland Delphi 6 with addon software:
These provides enhanced versions of standard windows controls, eg: flat buttons. The LED bar indicator is also due to Raize.
Quantum Grid Suite
This provides a superb set of components for data-aware grid and tree list development.
(superb = great effects from minimal coding!!)
The are four instances of their TdxDbgrid on the DSP window. The uppermost is the gain bar which is a grid with one row, one (visible) column and no header!
The grids are designed to display data from remote database datasets using SQL quereies. ( You can in fact do live editing of database tables accross the internet)
In Hobcat there is no database. However, DE provide a very useful TMEMdata component which is descendant of Deplhi's TDataSet component which is the common ancestor of various database access components. TMemdata has database-like fields. You link it to the grid, create some fields corresponding to the grid columns and then populate and add records, one for each grid row. TMEMdata is thus a tempory memory based database.
The meter bars and calibration markings are produced by intercepting the cell drawing message and drawing lines and rectangles. DE make it relatively easy: One mouse click creates a skeleton cell-owner-draw intercept routine with column number, row number, cell coordinates, cell drawing canvas etc etc all provided as parameters. (This routine will be called every time the cell is redrawn .. ie: on data upadates - but also .. repetitively .. when you move the window or drag something accross it..... all this is taken care of .. I dont have to do it))
Below is part of the cell owner -draw routine for the cell with eight abr meters
// The following parameter provided automatically
are used here:
// ACanvas - the drawing object with lines, rectangles, brushes, pens, drawing routiens etc
// ARect - a rectangle (left, top, right and bottom) which defines the grid cell that we are drawing
//ANode - the current mode (= grid row) -whose field values contain the data
//AColumn - the current grid column
//ADone - a true/false variable. We are in a interception before the start of the built in default cell drawing routine
// - setting ADone := true will block the default routine from overwriting our handwork
// In other situations, this owner draw facitily might just change a colour or font style for the cell (using AFont)
// and so ADone is not set as we want the default routine to draw the text but with our font changes.
dbpeak := ANode.Values[MeterDbPeakFieldIndex]; // read the peak value field for this node (row)
Pen.Style := psSolid; // Pen is a property of ACanvas
Pen.Mode := pmCopy;
Pen.Color := dxDBGrid_Meter.GridLineColor; // defined in a property editor table
Pen.Width := 1;
if AColumn = MCol_Meter then // if we drawing the meter-bar cell
Brush.Color := clWindow; // window colour to blank the cell
FillRect(ARect); // Blan teh cell. ARect has screen coordinates of the cells corners
for i := 1 to 9 do // we are dividing the 90dB bar into 9 x 10 blobs
x := Left+40*i; //Left is the X coord of cell left (+ 40 pixels per 10dB)
MoveTo(x,Top); // go to the top at this X position
LineTo(x,Top+2); // draw downwards a three pixel calibration line
MoveTo(x,Bottom-2); //go to cell bottom at this X position
LineTo(x,Bottom); // draw upwards a three pixel calibration line
// BarRect is a rectangle for the meter bar blobs
BarRect.Top := Top+3; // top of BarRect is 3px below top of cell (clears the cal marks)
BarRect.Bottom := Bottom-3; //bottom of BarRect is 3px above the bottom of cell
for i := 1 to dbpeak do // we will draw one bar for every dB
BarRect.Left := Left-2+i*4; // x coord = left of cell -2 + 4 x dBs
BarRect.Right := Left+i*4; // x coord = left of cell + 4 x dBs ( so 3 pixels wide)
Brush.Color := BarColours[(i-1) DIV 10]; // we already have table of nine colour codes
FillRect(BarRect); // draw the rectangular blob using BarRect coords, and Brush.color
ADone := true; // Block the subsequent built-in default cell drawing routine
end; // from doing anything to this cell that we have so carefully drawn!