No announcement yet.

Problems talking to ROTATOR...

  • Filter
  • Time
  • Show
Clear All
new posts

  • Problems talking to ROTATOR...

    Hi fellow hams. I'm working on assembling a satellite station using Yaesu G-5500 rotator and HRD.

    I'm trying to use Arduino as the interface between my laptop and the G-5500 controller and rolling my own code. You may ask, why not use K3NG Arduino solution ? Well 2 reasons, it's very complicated code, mostly to try and make it versatile to run with almost any rotator and PC application. The other reason is my insatiable appetite for knowledge and suffering.

    I know how to write the Arduino code, but my attempt to 'talk' to the rotator program has be not too successful. I was hoping to use GS232 but currently I'm using the very simplest rotator interface protocol, EASYCOMM1.
    Of course there are many gotcha's such as having to stop the Arduino IDE or I cannot connect the ROTATOR program to connect the Arduino port.

    Problem #1:
    I'm "sniffing" the bytes on the serial port using Arduino and can get 32/33 bytes of data when setting the ROTATOR heading manually. Looking at the logfile, it sends an EASYCOMM1 string but then expects data back. Is that peculiar to HRD's ROTATOR or is it part of the EASYCOMM1 protocol ? Is the AZ/EL data ROTATOR expects back, displayed on the AZ/EL indicators in HRD ?

    Problem #2:
    When I use SATELLITE TRACKER to input data to ROTATOR, I never see any serial data sent to the Arduino.
    Any ideas what might be the cause ?
    Brian (AI6MK)

    Here is the logfile with just ROTATOR connected to COM9..
    23:44:35 DDE Server DDE Initialized, ID = 01000080

    23:44:35 General Loading layout from C:\Users\spongebob\AppData\Roaming\HRDLLC\HRD Rotator\WindowLayout001.xml

    23:44:35 Zoom Mercator X = 0, Y = 0, ZoomLat = -nan(ind), ZoomLon = 100.0
    23:44:35 Zoom Mercator X = 1144, Y = 572, ZoomLat = 100.0, ZoomLon = 100.0
    23:44:35 Zoom Mercator X = 1686, Y = 843, ZoomLat = 100.0, ZoomLon = 100.0

    23:44:35 Connect Rotator ......: EasyComm I
    23:44:35 Connect Protocol .....: EasyComm I
    23:44:35 Connect Step size ....: Auto
    23:44:35 Connect Min azimuth ..: 0
    23:44:35 Connect Max azimuth ..: 360
    23:44:35 Connect Elevation ....: Yes
    23:44:35 Connect Port .........: COM9
    23:44:35 Connect Speed ........: 9600
    23:44:35 Connect DCB ..........: 9600,n,8,1

    23:44:35 COM9 Rotator EasyComm I
    23:44:35 COM9 Connecting to COM9
    23:44:35 COM9 Setting I/O buffer queue sizes to 2048, 2048
    23:44:35 COM9 Setting device control to 9600,n,8,1
    23:44:35 COM9 Setting comms state
    23:44:35 COM9 DTR control ..: 1
    23:44:35 COM9 RTS control ..: 0
    23:44:35 COM9 XON char .....: 11
    23:44:35 COM9 XOFF char ....: 13
    23:44:35 COM9 Error char ...: 3F
    23:44:35 COM9 XON limit ....: 512
    23:44:35 COM9 XOFF limit ...: 512
    23:44:35 COM9 Setting timeouts
    23:44:35 COM9 Read interval ............: 2000
    23:44:35 COM9 Read total multiplier ....: 400
    23:44:35 COM9 Read total constant ......: 2000
    23:44:35 COM9 Write total multiplier ...: 200
    23:44:35 COM9 Write total constant .....: 1000
    23:44:35 COM9 Setting DTR, clearing RTS
    23:44:36 COM9 Connected to COM9

    23:44:36 DDE Server Registered service HRDRotator
    23:44:36 DDE Server ---
    23:44:36 DDE Server Callback:Type:000080A2
    23:44:36 DDE Server Callback:Conv:00000000
    23:44:36 DDE Server Callbackata:00000000
    23:44:36 DDE Server Callback:String1:HRDRotator
    23:44:36 DDE Server Callback:String2:HRDRotator(0X000C2D62)
    23:44:36 DDE Server Callback:Register

    23:44:36 Zoom Mercator X = 1686, Y = 843, ZoomLat = 100.0, ZoomLon = 100.0

    23:45:24 COM9 Setting position to AZ:329.0° (329.1°, Curr: 0.0°), EL:0.0° (0.0°, Curr: 0.0°), North: Yes
    23:45:24 COM9 Purging channel 00000654, flags 0000000F
    (This is where ROTATOR sends the EASYCOMM data)
    23:45:24 COM9 Set position> Send 41-5A-33-32-39-2E-30-20-45-4C-30-2E-30-20-55-50-30-30-30-20-58-58-58-20-44-4E-30-30-30-20-58-58-58-0A
    (Seems to be expecting current AZ/EL data from the controller, in my case the Arduino. is that right ?)
    23:45:26 COM9 Set position> Timeout reading 20 bytes from COM9
    23:45:26 COM9 Set position> Recv 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00

    23:45:37 Zoom Mercator X = 1036, Y = 518, ZoomLat = 100.0, ZoomLon = 100.0

  • #2
    Just an update for anyone following this issue. After lots, and i mean lots, of experimenting and searching the internet, I was able to get HRD/controller (Arduin) to work. It was pilot error, assisted by the poor doc for ROTATOR and SATELLITE TRACKING.

    PROBLEM #1. To send data to the controller, HRD needs to connect to the PORT defined in ROTATOR. Arduino (controller) is also connected to the port (USB). HRD tries to connect to the port, but Arduino automatically resets the port which stops the connection. Remedy that worked for me was to connect at 10uF CAP from RESET to GND on Arduino.
    This will also prevent the Arduino IDE from downloading code, so I added a switch to disconnect the 10uF CAP. The switch has an OPERATE position (10uF connected to GND) and a PROGRAM position (10uF disconnected).

    PROBLEM #2. For GS232A protocol, HRD uses 2 commands. "C2" to request AZ/EL data from the contoller, and "Waaa eee" to send data from SATELLITE TRACKER>ROTATOR to the controller.
    The format for C2 data is +0aaa+0eee. I was VERY lucky to find this on the HRD developers site. HRD uses the C2 data to update the AZ/EL gauges.
    To get HRD to spit out the Waaa eee data requires an act of God. It requires bringing up HRD SATELLITE app, connecting it to ROTATOR using DDE, with RX doppler enabled and DDE Track. If the satellite is in view, and the AZ or EL changes by more than a degree you will receiver the Waaa eee command from HRD.

    If you would like more details and some Arduino code fragments, let me know.
    73 de AI6MK (Brian)