Skip to content

spx 02 rotor

Tomek Mrugalski edited this page Feb 19, 2022 · 5 revisions

This page details how to set up and properly use SPX-02 rotor by RF hamdesign.

Controller Overview

The SPX-02 rotor comes with a Rot2Prog controller that has USB interface:

SPX-02 controler (front)

SPX-02 controler (back)

It requires a 20A 15V DC power supply (seen on the first photo). There are two weird plugs that I forgot the names. The sockets come in a package, together with the rotor.

The connectors (left to right) are:

  1. 15V DC connection
  2. fuse
  3. on/off switch
  4. elevation connector (2 wires for motor, 2 wires for director sensor)
  5. azimuth connector (2 wires for motor, 2 wires for director sensor)
  6. USB type A
  7. RS-232 9-pin, used to connect to a mouse (!!!)

The mouse was included in the rotor package.

Manual control

There are several options. First, the buttons on the front. You can change azimuth and elevation by simply pressing.

Second is the mouse. It's a normal gaming-looking mouse. I don't really get it, but it has 4 buttons (left, right) and two extra under thumb. You can use it to control the rotor. Not by moving (so can't point as you normally would with a mouse), but rather use the buttons to slew left/right and up/down. So it's more like a remote on a cable. It's a bit weird, but I can imagine it being useful in some situations, e.g. you can have long cable and use it where you see the rotor and antenna.

Figuring out USB connection

To connect the controller to a PC, you need USB-A - USB-A cable. It was included in the package.

Under Linux you can see the list of all your USB devices using lsusb command:

$ lsusb 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 046d:c05a Logitech, Inc. M90/M100 Optical Mouse
Bus 001 Device 007: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)
Bus 001 Device 006: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 004: ID 048d:8297 Integrated Technology Express, Inc. IT8297 RGB LED Controller
Bus 001 Device 010: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC   <== SPX-02 controller
Bus 001 Device 005: ID 04b3:3025 IBM Corp. NetVista Full Width Keyboard
Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Note the bus and device id will be different on your system. You can get the details of the device:

$ lsusb -s 1:10 -v
Bus 001 Device 010: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x0403 Future Technology Devices International, Ltd
  idProduct          0x6001 FT232 Serial (UART) IC
  bcdDevice            6.00
  iManufacturer           1 FTDI
  iProduct                2 FT232R USB UART
  iSerial                 3 AG0JI3X4
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0020
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower               90mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              2 FT232R USB UART
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
can't get device qualifier: Resource temporarily unavailable
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0000
  (Bus Powered)

Now, you need to find out the device that corresponds to the serial port used to communicate with your controller. This is a bit specific to your computer, so here are general tips.

  1. if you have few USB devices, connected, this likely be /dev/ttyUSB0. If you have more, try ls -l /dev/ttyUSB*
  2. use this command (as root): dmesg | grep tty. These are kernel messages related to serial ports. Try unplugging and plugging the cable again. The kernel should print more messages about it.

In my case it was /dev/ttyUSB0. To communicate with the controller, you can use rotctl, which can run interactively or in batch mode. Later on, you will likely start using rotctld, which is a daemon version of rotctl that lets you do fancy stuff, such as remotely controlling it over TCP.

Using rotctl

If you have a different model, use rotctl -l to find out if your controller is supported or not.

IMPORTANT: To enable USB control mode, make sure the controller is in emulation. Mode. Keep pressing F button until it displays A on the first display. Then you're all set!

Use this command to get the rotor position:

$ rotctl -m 901  -r /dev/ttyUSB0 p
6.000000
48.000000

For rotator commands, see man rotctl.

Clone this wiki locally