Loading ...
Sorry, an error occurred while loading the content.
 

Perseus CI-V protocol format details??

Expand Messages
  • DirkCL
    Hi All, Can anybody point me to the details of the Perseus CI-V message format? -I have installed & configured com0com to use COM10/COM11. -When I start up
    Message 1 of 7 , Apr 6, 2011
      Hi All,

      Can anybody point me to the details of the Perseus CI-V message format?

      -I have installed & configured com0com to use COM10/COM11.
      -When I start up Perseus, it says VCom on.
      -When I start up my serial communication program ( homebrew with Delphi) I can succesfully open COM11.

      But sending commands to Perseus does not work at all, no reaction whatsoever is seen, no error messages, so I'm obviously doing something very wrong.

      For example, the Perseus CI-V manual says that to get the receiver information, the command CMD $70 $0F should be sent.

      -What does CMD stands for?
      - I'm assuming $70 $15 should be send as binary bytes? Or is it "$70 $0F" in string format??
      - Most commands in ICOM CI-V manuals start with $FE and append $FD at the end. Does CMD stands for $FE ?


      Thanks for any pointers!


      Regards - Dirk
    • alx_mtc
      Try sending these hex values: FE FE 00 E0 03 FD FE FE: message begin 00: destination address (Perseus replies to any address) E0: source address (usually E0 is
      Message 2 of 7 , Apr 6, 2011
        Try sending these hex values:

        FE FE 00 E0 03 FD

        FE FE: message begin
        00: destination address (Perseus replies to any address)
        E0: source address (usually E0 is "generic")
        03: read frequency
        FD: command end


        Expected reply:

        FE FE EO 00 03 00 00 20 14 00 FD

        FE FE: message begin
        E0: source address
        00: destination address
        03: sending frequency
        00 00 20 14 00: the actual frequency*
        FD: command end


        *to decode it, reverse the bytes order and you'll get the BCD value for it: 00 14 20 00 00 -> 14.2 MHz

        Conversion from BCD values (XX) can be something as
        10*(XX >> 4) + (XX & 0x0F)


        --- In perseus_SDR@yahoogroups.com, "DirkCL" <dirk.claessens@...> wrote:
        >
        >
        >
        > Hi All,
        >
        > Can anybody point me to the details of the Perseus CI-V message format?
        >
        > -I have installed & configured com0com to use COM10/COM11.
        > -When I start up Perseus, it says VCom on.
        > -When I start up my serial communication program ( homebrew with Delphi) I can succesfully open COM11.
        >
        > But sending commands to Perseus does not work at all, no reaction whatsoever is seen, no error messages, so I'm obviously doing something very wrong.
        >
        > For example, the Perseus CI-V manual says that to get the receiver information, the command CMD $70 $0F should be sent.
        >
        > -What does CMD stands for?
        > - I'm assuming $70 $15 should be send as binary bytes? Or is it "$70 $0F" in string format??
        > - Most commands in ICOM CI-V manuals start with $FE and append $FD at the end. Does CMD stands for $FE ?
        >
        >
        > Thanks for any pointers!
        >
        >
        > Regards - Dirk
        >
      • DirkCL
        ... Thanks a lot for the fast reply and the explanation! I tried it for the Get Receiver Information command and got this: FE FE 00 E0 0F FD FE FE E0 00
        Message 3 of 7 , Apr 6, 2011
          --- In perseus_SDR@yahoogroups.com, "alx_mtc" <alessio.miani@...> wrote:
          >
          > Try sending these hex values:
          >
          > FE FE 00 E0 03 FD
          >
          > FE FE: message begin
          > 00: destination address (Perseus replies to any address)
          > E0: source address (usually E0 is "generic")
          > 03: read frequency
          > FD: command end
          >
          >
          > Expected reply:
          >
          > FE FE EO 00 03 00 00 20 14 00 FD
          >


          Thanks a lot for the fast reply and the explanation!

          I tried it for the Get Receiver Information command and got this:
          FE FE 00 E0 0F FD
          FE FE E0 00 0Fv4.0a|3.5|03068-A700-3A5D-CC59 FD

          The BCD byte-juggling is weird but managable.
          First thing to do:
          function Integer2BCD( Number: integer ): array of byte; :0)


          Thanks again - Dirk
        • alx_mtc
          You can find other useful information at the bottom of Perseus_oldver_release_notes.txt, which is included in the CD. Int2BCD could be just a couple of lines,
          Message 4 of 7 , Apr 7, 2011
            You can find other useful information at the bottom of Perseus_oldver_release_notes.txt, which is included in the CD.

            Int2BCD could be just a couple of lines, with a "while..do" cycle that processes the rightmost byte and outputs it in BCD, before dividing Number by 256 (or >>8) for the next cycle... until number is zero.
            You'd end up with the BCD version of the number, already reversed for CI-V use.


            --- In perseus_SDR@yahoogroups.com, "DirkCL" <dirk.claessens@...> wrote:
            >
            > Thanks a lot for the fast reply and the explanation!
            >
            > I tried it for the Get Receiver Information command and got this:
            > FE FE 00 E0 0F FD
            > FE FE E0 00 0Fv4.0a|3.5|03068-A700-3A5D-CC59 FD
            >
            > The BCD byte-juggling is weird but managable.
            > First thing to do:
            > function Integer2BCD( Number: integer ): array of byte; :0)
            >
            >
            > Thanks again - Dirk
            >
          • Dave GW4GTE
            chech this out: http://www.plicht.de/ekki/civ/civ-p0a.html Dave GW4GTE
            Message 5 of 7 , Apr 8, 2011
              chech this out:

              http://www.plicht.de/ekki/civ/civ-p0a.html

              Dave GW4GTE

              --- In perseus_SDR@yahoogroups.com, "DirkCL" <dirk.claessens@...> wrote:
              >
              >
              >
              > Hi All,
              >
              > Can anybody point me to the details of the Perseus CI-V message format?
              >
              > -I have installed & configured com0com to use COM10/COM11.
              > -When I start up Perseus, it says VCom on.
              > -When I start up my serial communication program ( homebrew with Delphi) I can succesfully open COM11.
              >
              > But sending commands to Perseus does not work at all, no reaction whatsoever is seen, no error messages, so I'm obviously doing something very wrong.
              >
              > For example, the Perseus CI-V manual says that to get the receiver information, the command CMD $70 $0F should be sent.
              >
              > -What does CMD stands for?
              > - I'm assuming $70 $15 should be send as binary bytes? Or is it "$70 $0F" in string format??
              > - Most commands in ICOM CI-V manuals start with $FE and append $FD at the end. Does CMD stands for $FE ?
              >
              >
              > Thanks for any pointers!
              >
              >
              > Regards - Dirk
              >
            • DirkCL
              ... Thanks, I ll look it up ( who reads _old_ releases notes? :0) ) ... I got the set/read freq. working fine now. But I have used strings instead of array of
              Message 6 of 7 , Apr 8, 2011
                --- In perseus_SDR@yahoogroups.com, "alx_mtc" <alessio.miani@...> wrote:
                >
                > You can find other useful information at the bottom of Perseus_oldver_release_notes.txt, which is included in the CD.
                >

                Thanks, I'll look it up ( who reads _old_ releases notes? :0) )



                > Int2BCD could be just a couple of lines, with a "while..do" cycle that processes the rightmost byte and outputs it in BCD, before dividing Number by 256 (or >>8) for the next cycle... until number is zero.
                > You'd end up with the BCD version of the number, already reversed for CI-V use.

                I got the set/read freq. working fine now. But I have used strings instead of array of byte. Delphi doesn't care what you force into a string and has a wealth of string handling stuff. ReverseString() came in handy.

                Regards - Dirk
              • DirkCL
                ... *Very* informative - Thanks! Regards - Dirk
                Message 7 of 7 , Apr 8, 2011
                  --- In perseus_SDR@yahoogroups.com, "Dave GW4GTE" <dave@...> wrote:
                  >
                  > chech this out:
                  >
                  > http://www.plicht.de/ekki/civ/civ-p0a.html
                  >
                  > Dave GW4GTE
                  >

                  *Very* informative - Thanks!

                  Regards - Dirk
                Your message has been successfully submitted and would be delivered to recipients shortly.