piWebCAT  - CAT control from a web-browser

I have recently developed piWebCAT   (May 2020)

piWebCAT provides CAT control from a web browser.

It uses a Raspberry Pi 4B computer  with Apache web server, MYSQL database and PHP7 server programming.

It works well on PC based browsers.

It is fine on my fast modern Android 7 tablet. (Touch tuning a little slower on an older tablet)


A piWebCAT RPi can optionally communicate with your radio via a 115 kbaud serial link to  EncoderCAT.
This allows simultaneous use of piWebCAT and EncoderCAT via your radio's single CAT connection.

You may wish to leave space in your EncoderCAT box for a Raspberry Pi !


piWebCAT's control window.  (The other windows are database editor and meter calibration)

The footer bar shows interface = ENCAT  baudrate = 115200.

This is because the RPI serial Tx and Rx on GPIO pins 8 and 10 can optionally connect through EncoderCAT to the radio.



piWebCAT hardware


RPi 4B web server + Serial piZero Rs232 card ( £9 )


RPi 4B web server + G3VPX piWebCAT PCB

This has RS232 and Icom CI-V connections.

The full width PCB brings connectors to the side of a box.


piWebCAT specification

               A tuning window with thee horizontal bands:  fast, medium and slow. (user definable tuning rates)

                 - tune by mouse (or finger) drag along these bands

               OR three mouse wheel tuning rates according to which band the mouse pointer is in.

                On an android tablet, tune by finger drag or by mouse wheel on bluetooth or OTG mouse.                

       Each slider has an adjacent value display (with scaling, dec.point, optional table lookup and units)
             Sliders are in three groups:  

         COMP, Mic Gain, Vox gain, RFpower, AF gain and squelch (probably unchanged) + 2 spare.

         Nine sliders with a reset to default button  - default defined by you in the database   -

         Nine sliders with an adjacent button:   mainly on/off.

- the association of button and slider is database defined and optional.

       Five are dedicated TX meter function selectors  - but you choose which five Tx metering values to offer.

The rest are under user configuration control for:
               - the CAT commands that they generate.
               - their action:   S = single momentary, T = toggling, G = grouped (share a common  code) etc

- their captions and the background colour of the button.


Design philosophy

I have attempted to maximise the use of a a user editable database in configuring  piWebCAT.
This means that there are very few controls tailored to the features of particular radios.
A example of an exception to this rule is Rx clarifier on the Fdx101D.

If we compare the FTdx101D IF shift and clarifier commands.
- IF shift is not a problem.  A single read/write command is used (IS00-0340; for -340Hz with the current VFO.)
       piWebCAT can display a centre-zero slider with text -340 Hz and a centre zeroing reset button.

- Rx Clarifier is more difficult.   The FTdx101D has an on/off command and a clear command.
     There are separate write-only commands for shift up increment and shift down decrement.
     - these can be combined into a single control, but doing it via a database is potentially messy (not done  ..yet!)


The project provides:


Software

piWebCAT was built using Microsoft's Expression 4  - a free downloadable web development package.

The design was done 100% in code. This kind of web page is too complex for WYSIWYG graphical layout.


You can use an FTP client program (eg: FileZilla) to download the complete piWebCAT code from the
usual Linux  /var/www/html folder on the RPi. You can then edit it and play with it using Expression 4.
You need to keep a copy of the original. Javascript and PHP code can be killed by a single wrong character
which can be very difficult to locate across multiple coded sections!!


The piWebCAT data path is:

    Javascript code in the web browser   < LAN >  PHP code in RPi webserver  < RS232 serial >   FTdx101D.


Note that the client javascript makes extensive use of jQuery (open source).

Communication with the server is by jQuery Ajax commands.

The editing grids use phpGrid  - a purchased Chinese product that is licensed to me for OEM distribution.
phpGrid makes extensive use of javascript jqGrid which is open source.