Orbitron DDE Azimuth Elevation To Serial

Control a satellite rotator automatically from Orbitron by sending it the azimuth via serial.

A couple of years ago I wrote some code with a library I found to listen to Orbitron using it’s DDE inter-process comms and send the satellite information string over serial to potentially drive an aerial rotator.

I’ve since updated the code and thought I would share it here.

Using DdeOrbitronToSerial

  • Don’t directly run the exe, you have to launch it from Orbtron itself by going to the rotor/radio tab, selecting the correct DDE driver, in this case it’s DDEOrbitronToSerial. Then click the button to the right of the dropdown to start sending data and launch the application:



  • The DDEOrbitronToSerial application should now launch and you will be able to select your COM port and output the satellite data to the serial port.
    • NB: You can edit additional options such as com port baud rate in the config file by clicking the open config button.



Any bug reports or feature requests are welcome!

34 thoughts on “Orbitron DDE Azimuth Elevation To Serial”

  1. Hello, I tryed this code, but I can’t receive the data I was wondering if is a coom speed problem as I didn’t find the way to set the com speed, and looking to the flashing led on my serial converter is seem quite high (I’ll try with an oscilloscope tomorrow ) Is it possible to have a way to set the com port speed?
    Thanks in advance, Matteo

    1. Hi Matteo,
      Thanks for the comment. You can edit the config file to change the baud rate. I can see that the config file is a bit awkward to update so perhaps I’ll put some specific options in too 🙂

  2. I have a Bushnell telescope with the motors to move it to what you want to see. The scope is shot. Motors work. The controller plugs into the base with only a phone or cat5 jack. I can’t remember offhand I’m not home to check. Would there be a way to output this to something like that? My plan is to take the tube off and mount a yagi.

    1. Hi,
      I don’t see why not. It depends what you need to feed into the controller.

      At the moment it outputs a string which is sent down a serial port. So if the motor controller takes serial it would be an easy code change but if the controller needs something else you may have to bodge together an intermediary unit. Feel free to post some more details, happy to take a look.

    1. Actually, I’ve verified that this does run on XP. Also, I wouldn’t recommend you use an unsupported OS, for security reasons at least.

  3. I am running orbitron to steer my sdr.
    To control my rotor as well i installed your package an updated the setup.cfg width the suggested line.
    But after restarting the Orbitron program your driver/program doesnt show up in the dropdown list.
    So are I am doing something wrong, using WIN10

    1. I’ve tested it on my Windows 10 machine and it works.

      If it’s not showing up in the drop down menu along with WispDDE and MyDDE then this is almost certainly a mistake in the Orbitron config.
      You mention restarting Orbitron – if you edited the config while Orbitron was running it may have overridden it on close, so make sure Orbitron isn’t running while you add the the lines to the config file.
      It may also be worth mentioning that you need to have your text editor running as an administrator to edit the Orbitron config file if you have installed it to the default location in program files.

      I hope that helps, feel free to post any other info if you don’t get it working.


      1. Thank you, I’ve been messing with it for a few hours because it wouldn’t show up in the Driver list. Is there a way that I don’t have to run Orbitron as an Administrator on my Windows 10 for the changes to work properly?

        1. I’m not certain but I think because Orbitron was written for older Windows versions it saves it’s configuration settings to a file in program files which normal level users don’t have write access to on Win 7 and onward. As far as I know most other settings won’t be able to be saved if Obritron is installed in the default program files directory.

          I think if you make your changes and run Orbitron as administrator just the once it should be able to read in the changes and then write them out again when it exits. This should be enough for the changes to persist and be read in the first time.

          My second choice would be to install Orbitron to a custom location, not in program files, where you as a normal permission level user will have write access.

          Third option may be to manually change the permissions of that settings file yourself so that your user has write access.

          I’m not sure if any of those would work or if there are better ways to do it but it’s my best guess!


    1. The serial output from the PC needs to go to something that can parse the data and drive the motors. The motors are not connected directly to the PC. My recommendation for an easy start would be to use an arduino and a motor driver module.

  4. Dear Alex,
    Thank you for sharing this. It was really helping for me. On my system everything is fine at software end, But my rotor controller didn’t accept commands like AZ300,EL13. It accept command like A300, E13 and it azimuth angle should go first on serial and then elevation angles. like from Orbitron if azimuth angle is 300 and elevation angle is -31. Then commands that will sent to rotor controller via serial should be A300 and next command should be E-31.
    Can you do this change in the software?
    It will be really appreciated.
    Thanking you in anticipation and waiting for your answer

    1. Hi,
      Thanks for the comment. I will have a look to see if I can add a method that will allow a user to specify a format string. That should help you out 🙂

    2. Hi,
      I’ve added a change that will allow you to specify a custom format string. Updated the download list. You could use “A[AZ], E[EL]”.
      Please have a go with that and let me know how it goes!


  5. Dear Alex,
    I have checked updated version, but it stops working when I link it with Orbitron. Previous versions does not have this issues.
    waiting to hear from you. Thank you so much.

    1. Can I get your email address? So that I can send you snap of the problem. I have also tested it on another system with windows 10, but it is causing same problem.

  6. Dear Alex,
    First of all, thank you so much for helping.
    It was my mistake, now it is working perfectly and sending command as A30, E-12.
    But my rotor controller accept first Azimuth and then elevation command. like A300 should go on serial first and then E30 should go on serial.
    and second thing is my rotor controller accept only positive angles, so most of time elevation angles are in negative, can you do some processing on it to make angle positive so that it would be accepted by rotor controller.
    Thank you so much for your help. hoping to listen from you soon. And how can I contact you, to learn more?

    1. I’m glad it’s working for you 🙂
      Can you give me some exact examples of what your system requires?
      Elevation when below the horizon (0 degs) is normally shown as negative so I would be interested in knowing the requirements for it to always be positive.


      1. Negative elevation is ok.
        Just split Azimuth and Elevation commands. First Azimuth command should go to the controller and then after few milli seconds delay, elevation command should go. Like
        delay of 1ms

  7. Sir
    How would you go about writing code for arduino uno to use just AZ only to rotate an antenna. I have my elevation fix . Not sure how to make the arduino look for the information.

    1. Hi,
      Assuming you have serial communication to your arduino you can use the serial commands to get the string sent from the dde azimuth orbitron plugin.
      When running my DDEObritronToSerial plugin you can give it a format string which it will use to format what it sends down the serial port to your, for example, arduino. In there just specify it to send [AZ] and in your arduino code it would be as simple as:

      while (Serial.available()) {
      azimuth = Serial.readString();
      I’ve not tested it but i believe readString will keep reading until the end of the string (I’m guessing a newline char for example). If not do it byte at a time – there are loads of reading serial port examples out there for arduinos.
      Hope it goes well.

  8. Hi Alex,

    First of all a big Thank you for your efforts in bringing out such a nice piece of DDE software.
    It works fine and the newest addition of custom output setting is just what was required. I did try the 2016 version earlier which was working fine.

    Now I am doing a project for AzEL rotor system , which is supposed to work in sync with a computer running Orbitron and “ALSO” standalone using a MicroController preferably an Arduino.

    Since you already have the Custom settings with
    [SN] [AZ] [EL] [DN] [UP]

    Could you please add the “Date” and “Time”
    [DATE] [TIME]
    also which will be very useful for extracting the
    DATE TIME AZ EL onto a microcontroller Memory via a PC and then can be used as a standalone system [ Microcontroller + Rotor system WITHOUT a PC] on the Field and made more portable.

    Arduino + Clock Module + Rotor System.

    It will be really appreciated and will be of immense use to all experimenters as well.

    Summary :

    [DATE] [TIME] for custom format string

    A Checkbox [] Zero when Negative Elevation

    Please consider if it’s not too complicated.

    Once again a BIG thank you for the DDE software.


    Sunil U K
    New Delhi India

    1. Thank you for your kind words. I’m glad people are finding it useful.
      Your request is something that can be done when I have some time.
      The zeroing of elevation should not be a problem.
      The only part I’d be concerned about is the format of the DATE and TIME strings.
      I would initially opt for dd-mm-yyyy or yyyy-mm-dd for the DATE and hh:mm:ss (where hh is 24hr) for TIME.

  9. Hello,
    i am trying for the first time the program but cannot understand if it is just for the Rotators or also for the radio.
    It will be great if it does both like the wispDDE as your one has the possibility to choose Comports greather of COM4 that WispDDE does not do but your one has this option but cannot, or i cannot find for the radio.
    Am i missing something or it does not have the radio Option.
    Also it will be great also if at the end of the pass it will stop moving the rotators ( as i see it contine moves the azimuth rotator even if the satellite is under the horizon ) and have the possibility of the Parking positions.
    Thanks for your work
    73’s de Enzo IK8OZV

    1. Thanks for the comment.
      This plugin for orbitron just sends the satellite data down a serial port. It is generally left to the receiving device to process it as the user wishes.
      For example, I would have a micro-controller receive the az and el data and drive a motor controller.

      It can send all available satellite information including position and radio data down one serial port but only one at this time.

      I can see a scenario where one may want to send the position down one port and the radio data down another though. I will consider this use case for the to do list!


  10. hello alex,
    I have successfully installed the DDEOrbitron to Serial to Orbitron plugin and exited the data from Orbitron sent from Loging. I plan to connect the output data from this orbitron to Arduino UnoR3 with L298N motor driver to drive Elevation and Azimuth motors. Have you ever tried programming this DDEOrbitron output on Arduino Uno R3?

    Warm regards…73 de

    1. Hi Andy,
      Glad to hear that it’s working for you 🙂
      Yes I have in the past used an arduino to receive the az and el info. Receiving the data is pretty straightforward – you receive the string down the serial port and extract the elements you need. The tricky bit is driving your motor and working out which direction it’s pointing.
      I’d be interested to hear how your build goes – best of luck!

  11. Hi Alex. how are you? I have a problem with win10. I follow the procedure but it does not appear in the drop-down window to choose the DDE.
    I did it on a machine that I have with XP and it worked. but in win 10 it does not appear.
    I have Oroitron 3.71 and DDE 2018.
    What should I do? can you help me?
    greetings from Argentina.

    1. Hi Sebastian,
      Thanks for the comment. I’m well thank you, hope you are too.

      I have heard of this from others but have not been able to reproduce the problem myself. I have just installed Orbitron and DDEOrbitronToSerial to a fresh Windows 10 machine and it worked well for me.

      1) When you edited the setup.cfg file did you have Orbitron running? I believe it overwrites the configuration everytime it exits – which would remove your change and not be there to load when it restarted.

      2) Could you perhaps change another setting in the configuration to double check that you can successfully edit the file and have those changes shown when you run Orbitron?

      3) Can you run DDEOrbitronToSerial.exe manually just to see if it starts up – it won’t do anything useful as there is no Orbitron feeding it data but it should show up a window.

      4) Double check the path in the configuration really does point to your DDEOrbitronToSerial.exe file (which should also have some library files alongside it)

      Let me know how those checks go, also perhaps let me know your exact installation steps.


Leave a Reply

Your email address will not be published. Required fields are marked *