5.7  YAESU5 configuration -  frequency - FT920  example

You need to first look at the documentation on ASCII command masks.

The outgoing commands for all YAESU5 radios are five bytes:

  • four bytes of optional bcd (binary coded decimal) data
  • following by a hexadecimal opcode byte.
  • The readbytes and setbytes fields are always set to 10 (ie: 10 chars generating 5 bytes)

Set frequency  - FT920 example

The manual specifies the frequency in four bytes: P4   P3   P2   P1  followed by opcode =  0A

(Be aware that the FT818 manual notation is reversed, ie:  P1  P2  P3  P4  Opcode)

Thus:    56  34    42  01   will set  14.234560 MHz  (frequency resolution = 10 Hz)

We configure this in the catcodes table as: setmask = htcmedgf01   

ie: ten ascii characters which will be translated into five bytes.

In detail:    ht  cm  ed   gf   01.    t is replaced by tens,  h by hundreds, m by thousands

                               c by ten thousands   d by hundred thousands
                               e  by millions,     f by ten millions  g by hundred millions

(Note that their is no u = units because the resolution is 10Hz )

All a bit tricky ... but that's how it is! .... It works fine !

With YAESU5, the  setbytes field is ALWAYS set to 10.

Read frequency  FT920 example

The command ('Status update')  specified as;  Opcoded = 10  then  P1  **   **  P4

P1 = 03 returns  2 x14 bytes of data for:

 VFOA in bytes 0 -1 3   (specified as 1 to E)

 VFOB in bytes 14 - 27  (specified as 1 to E)

P4 is unused here with P1 = 03;

Within each 14 byte VFO block (I use 0 to 13 here, rather than the stated 1 to 14):

  • byte 0         Band selection  ??   what is it   .. no explanation
  • bytes 1 to 4         Operating frequency - Discovered to be in binary (not BCD)
  • bytes 5 and 6   Clarifier offset   - binary  2s complement
  • byte 7        Mode data
  • bytes 8        Flag .. clarifier on/off, antenna selection etc
  • bytes 9 and 10     Filter data
  • bytes 11 and 12   CTCSS decoder data
  • byte   13    Memory recall data

Therefore, for VFOA, we need bytes 1 to 4 of the first 14 byte block
   (= bytes 1 to 4 of the combined 28 byte block.)

We set the answermask to:  #28:04:01:FF:bbbbbbbb

This means:

  • Receive 28 bytes ( we have to inform the USB/serial code how many bytes to wait for.)
  • Extract 04 bytes starting at bytes 01
  • Ignore the FF   --   This is a mask to extract specific bits ... only for single byte extract.
  • bbbbbbbb   - translate the four bytes into 8 characters as a hexadecimal (binary) string.

The corresponding mask for VFOB is #28:15:01:FF:bbbbbbbb
ie: The same, but starting at byte 1 of the second 14 byte half of the block = 14 + 1 = 15.

We must set the answerbytes field to 8   = no of chars in bbbbbbbb.


This system is designed to fit into the existing character based system  (ASCII option)

All the interpretation is done on the server and returned to the web browser as a numeric string.
(ie: the data is transmitted back with the  value part of the returned data array = 14234560)

This is all perhaps a little complex - but hopefully, the examples for F818, FT847 and FT920

with assist in applying a configuration to other radios (with help from the iogroup if needed)

The actual answermask for data is the 8 characters: bbbbbbbb,

    hence we set answerbytes = 8  ( NOT 28 )  

Clarifier   FT920 (Rx only)

The clarifier is the one control where I can set up a slider with both on/off and reset buttons.
(and with two- way communication)