3.11 piWebCAT - Memory selection.
The FTdx101D has a CAT command: MT to program a memory channel.
It sends channel number, VFO_A frequency, clarifier settings, mode, CTCSS data, simplex/shift.
All this is sent in one command, 50 characters in length. piWebCAT cannot handle this in any useful way.
(It could send a fixed long command but cannot edit so many components within the command.)
piWebCAT can select and apply memories that have been pre-programmed in the radio.
There are two ways to do this:
- Memory channel buttons each having a fixed, single channel assignment. cmdtype = MECH (fixed)
- A button to launch a numeric, memory selecting keypad. cmdtype = MPAD (fixed)
Both of the above commands are followed one second later by a 'pseudo button' on the client sending
an automatic 'copy selected memory to current VFO' command ( cmdtype = MTOV ).
If MTOV is not needed (eg: Yaesu FTdx101D), then it if it is not configured in the catcodes table it will
simply be lost.
For the IC-7000 (and ? other Icom radios), the automatic MTOV command is needed because the
'memory select' command selects the memory but does not apply it to the VFO.
Single channel buttons eg: for calling channels.
These are programmed like any other single press buttons (action = S).
Each such button has a record in the buttons (or buttonsciv) table.
You can configure multiple buttons sharing a common catcodes (or catcodesciv or catcodeshl) record.
Any code can be used,. However, the use of code = MECH will generate a 'copy memory to VFO'
command one second later with code = MTOV. If you don't need the 'copy after one second' feature,
(eg: with Yaesu) then don't configure an MTOV record in catcodes (or catcodesciv or catcodeshl).
Memory Selector See examples in IC-7000 - memory channel selection
piWebCAT has a keypad to select memories which have been preprogrammed on the radio.
The command must use code = MPAD
- both in the buttons table and the catcodes table (or buttonsciv and catcodesciv).
The buttons table entry has code = MPAD and
action = S (single momentary action. )
This causes the button to display the keypad.
The data will be the number of the button selection.
The catcodes table is configured with code = MPAD
and for the radio's memory selector command.
When you click the button, a numeric keypad pops up as shown. You simply select the memory by number and click OK. The OK button sends an MPAD command to the server.
In the above example, I have configured a spare button RR for this job.
I have set color to navy and caption to MPad.
(Note that the popup keypad appears at a fixed initial position, but can then be dragged around the window.)
When a memory channel is selected using the keypad, a memory indicator appears to the left of the frequency display, eg: M:17 as shown left.
The selected memory needs to quickly applied to the VFO
.. either automatically (Yaesu) or with the MOTV feature. This is because any consequential frequency change after three seconds will clear the indicator.
ASCII - eg: FTdx101D
For the FTdx101D, memory select is configured as setmask = MChtu;
( h, t and u map to hundreds, tens and units of the actual data to be sent = memory number).
The MC command selects the memory AND applies it to the current VFO.
Fixed channel buttons
You can program one or more buttons to select fixed memories.
Use code = MECH with one buttons record per button.
All buttons share a single catcodes record with code = MECH and configured with the MC command as above.
Only configure a code = MTOV command in catcodes ( as described above) if you radio's memory select command
does not copy the selected memory to the VFO.
Using the memories keypad
Program one button with caption = MPad code = MPAD to launch the keypad.
Program a catcodes record with code = MPAD and for the MC command as above.
Icom CI-V: IC7000 and more modern radios
The IC7000 has five memory banks, A to E and 105 memory channels in each bank, 0001 to 0105.
In addition, channels 0106 and 0107 are call channels, C1 and C2.
Important: data is sent as bcd (binary coded decimal)
If Icom specify data as 0106 that means you must set datadigits = 4, irrespective of the actual number.
(0106 will be sent as hexadecimal bytes 0x01 0x06)
If I select a memory bank, A to E on the radio, then that selection is retained.
I can then use the memory channel CAT command to select the channel.
This is: command = 0x08 sub-command = channel number (or data = channel number on current Icom radios)
I configured three buttons:
See left - 3 spare buttons configured. Described below. Also in CI-V configuration examples
Two single channel buttons for channels 106 and 107 (= C1 and C2)
action = S, vx = X, code = MECH and von = 106 / 107
A single button to launch the memory selecting numeric keypad.
We need in catcodesciv
- a record with code = MECH, cmdtype = C_DATA, command = 08. datadigits = 4
- a record with code = MPAD, cmdtype = C_DATA, command = 08. datadigits = 4
Modern Icom radios
I looked at the Icom IC-7610 advanced manual. It has 100 memory channels with the same CAT command
as the (15 yr old) IC7000. I could see no mention of memory banks A to E as used on the IC7000.
I have not provided an Icon memory bank selector in piWebCAT.
Note that the CI-V manuals for the two radios specify command 08 differently (but I think they are the same)
- IC-7000 - command = 08 subcommand = 0001 to 0105 no data cmdtype = C_DATA works ok.
- IC-7610 - command = 08 no subcommand data = 0001 to 0099 cmdtype = C_DATA should be ok