Rotating controller for BIGRAS antenna rotators with touch screen



    The controller is primarily designed for BIGRAS rotators, but can also be used for other rotators using pulse feedback. By disabling vertical rotation, it is also possible to fully use RAK or BIGRAK rotators. With a small modification of the firmware, it can also be used with analog feedback (YAESU). This controller can be used with a 4" display. It is important that the display has an ST7796 type chip and the touch sensor is capacitive with an FT6336 chip.




    Available functions:

    The controller can be controlled in four ways. Of the two USB connectors on the board, one is a native USB 1.1 type, its speed is 12 Mbps. The other USB port is a USB-UART converter. Bd. In addition, a standard RS232 COM port can be used via a TTL-RS232 converter. Their speed can be adjusted between 300 and 230400 Bd. With the appropriate program, it is possible to control the antenna via WiFi as well. The mentioned options can even be used simultaneously. The settings are also accessible either directly from the controller via the serial port, or through WiFi, in which case we can change the settings by opening the appropriate web page. The main commands of the controller are compatible with the Yaesu GS232, so it should be selected if necessary. The full command set can be accessed via the serial port with the H command. In addition to Yaesu commands, it can also interpret FOXDELTA type commands and standard NMEA type GPGGA messages. If we have previously set our own coordinates, it calculates the azimuth and elevation of the given point based on the data in the messages, and then rotates the antenna in the direction of the given point. This function is mainly used when tracking high-altitude balloons (for example, the program called SondeMonitor has such an output, so this program can rotate the antenna directly). The controller can also emulate the PSTRotator and rotctld programs. If one of the programs we use, the control of the rotor is only possible with the PSTRotator or rotctl protocol (e.g. SatDump, Horus), we only need to set the appropriate port number in both places, and the IP address of the controller in the program we use, which we can see in the upper left corner of the Menu window. Of course, it is necessary to be connected to the WiFi network. The menu is accessed by pressing and holding the STOP button (until the menu window appears). Here, we can scroll by pressing (or holding down) the up and down buttons. After that, we can select the value in the selected line with the right-hand buttons. After pressing the SET button, for parameters where it appears, the value can be entered on the appearing keyboard. The Background parameter allows us to choose from several color combinations. Since the controller is suitable for several types of rotators, the data showed on the display also differs depending on whether there is elevation or not, and whether we prefer large numbers that are easier to see from afar or graphics and smaller numbers.

    Description:

   
The central element of the control circuit is an ESP32-S3 N16R8 type module. We need to purchase the module shown in the picture because there is also a version on the market in which the push buttons are directly above the USB connectors. However, that module is 2.54 mm narrower, so it will not fit into the PCB due to the location of the pin rows.

  OR  
Some manufacturers sell the module with a loaded demo program, which flashes the LED on the module after switching it on. If you have managed to obtain one, you need to open the RGB short circuit on the module. Next to the RGB LED there is another short circuit with label IN-OUT. This must be shorted! In order to simplify the preparation, a ready-made module, IBT_2 type was used to control the motor itself. Since the COM connections are already being phased out, it would not have been reasonable to integrate this on the printed circuit board, but if necessary, this module can also be connected separately. There are 5 push buttons on the display. Their function depends on the current situation. The function of which push button is used is indicated on the push button. If both horizontal and vertical rotation are active, then from left to right: antenna down, antenna up, stop or menu, antenna left (counterclockwise), antenna right (clockwise).

     

If only horizontal rotation is active, the leftmost button is for turning left, the rightmost button is for turning right, and the middle button is for stopping or menu.

     

The STOP button has several functions. Pressing it briefly stops the motors. If you hold it down for a little longer, a BLOCK label will appear. In this case, external commands are blocked, the rotor only responds to the buttons. This is indicated by a three-time beep. If you hold the STOP button down for a long time, you will enter the menu.

    

    If the rotor gets stuck or cannot rotate for other reasons, after 5 seconds an ERROR message will appear and the rotor will stop to protect the motors from overload. If an external command is received in this case, it will beep 3 times to indicate that it cannot execute the command. We can exit this state by pressing the STOP button.



    The functions described below are for convenience only and do not affect the main functions of the controller. Their installation is not necessary:
    The P1 and P2 potentiometers make it easier to turn the antenna to the desired position by setting the desired direction with the potentiometer and then pressing the appropriate area on display (see below) and the antenna will be set to the direction specified by the potentiometer. We can use a common potentiometer for the horizontal and vertical directions, or separate potentiometers for the horizontal and vertical directions.




    If a potentiometer is used, the red dot outside the azimuth circle indicates the direction of the potentiometer. If a display is set that does not show the potentiometer position numerically, touching the center of the azimuth circle will show the position of the potentiometers. The antenna can be turned in the direction indicated by the potentiometer by touching the area on the display where the azimuth or elevation value is written.

    By tapping the P button in the upper right corner, the antenna will rotate in the direction set by the Parking azimuth and Parking elevation parameters.

The main commands used to rotate the antenna are:

Waaa eee - turn the antenna horizontally to the aaa direction, vertically to the eee direction
A - azimuth stop
AZ=aaa - turn the antenna horizontally to the aaa direction
AZ=aaa EL=eee - turn the antenna horizontally to the aaa direction, vertically to the eee direction
E - elevation stop
EL=eee - turn the antenna vertically to the eee direction
S - all stop
Maaa - turn the antenna horizontally to the aaa direction
Keee - turn the antenna vertically to the eee direction
ML - turn the antenna counterclockwise
MR - turn the antenna clockwise
MU - turn the antenna up
MD - turn the antenna down
L - turn the antenna counterclockwise
R - turn the antenna clockwise
U - turn the antenna up
D - turn the antenna down
C - current position of the antenna in the horizontal direction
C2 - current position of the antenna in the horizontal and vertical directions
B - current position of the antenna in the vertical direction


In order for the antenna calibration to work properly, a limit switch must be built into the rotator mechanism, which stops the rotation in the horizontal direction at the starting position. Such a limit switch is originally built in the vertical direction, but in the horizontal direction - for reasons that are incomprehensible to me - it is not, so we have to include it. I guess no one would like their coaxial cable to break because it got wrapped around the antenna. This is not too difficult to solve, but it requires a little creativity based on what tools and limit switches are available to each person. In any case, you have to make sure that the switch is only active in one direction. This picture illustrates a possible solution. Here:
1 - vertical rod on the gear
2,3 - limit switches
4 - lever made of sheet metal for switching the limit switches
5 - gear
6 - auxiliary panel on which the lever shaft and the limit switches are mounted
The advantage of this solution is that there is a limit switch in both directions, and by properly adjusting the plate lever, the required overshoot can be achieved. The antenna should be fixed on the rotor so that the overshoot is the same at both ends. In this case, the value of the overshoot in the counterclockwise direction is entered in the menu as the "azimuth offset" value.

The wiring diagram:

    Settings:

    The most important parameters can be accessed in the menu. This can be accessed by long pressing the middle button (STOP). In this case, a multi-line menu appears in which you can scroll (UP, DOWN) to reach the appropriate menu item. These are the following:

AZ turn to: here we can set where the antenna should turn horizontally when we exit the menu
EL turn to: here we can set where the antenna should turn vertically when we exit the menu
Pulse/degree: here we can set how many pulses the rotor gives for 1 degree of rotation
Azimuth offset: how many degrees the antenna zero point is from the left end position
Elevation offset: how many degrees the horizontal position is from the limit switch
Max. azimuth: the antenna position in the upper end position
Max. elevation: the maximum allowed elevation for the given antenna system (90 or 180 degrees)
Beeper type: if the value is OFF, the beeper is turned off, it does not give a sound signal when a command is received on the serial port, DC - in case of active beeper, or a number that means the frequency of the beeper. Its value can be between 200 and 5000.
Elevation: ON or OFF, if the rotor is not suitable for vertical rotation, set this parameter to OFF
Overturn: ON or OFF, if the antenna allows overturning, then by setting this parameter to ON, the rotor can be used continuously in the horizontal direction between the offset and the value set with max. azimuth. In OFF state only between 0 and 360.
Autoturn: In ON state if the CW, CCW, UP or DOWN button is pressed for 5 seconds, then after the button is released the antenna will continue to rotate until either one of the buttons is pressed again or the rotor reaches the end position
Zero point: this parameter determines where the mechanical zero point of the rotator is, this can be in the south or north direction
WiFi: how WiFi should behave when starting. We can turn it off or set it to try to connect to the WiFi network when starting. If this fails, switch to AP mode.
Backlight: backlight intensity
COM baudrate: serial port speed
Degree size: position font size
Screensaver: screensaver, in case of 0 it is off (the display is constantly lit), in case of number, after this number of seconds the display turns off
Orientation: display orientation. This allows us to set whether the main switch on the front panel is on the right or left side.
Minimal turn: The minimum rotation speed of the rotor at which the antenna still rotates reliably. When starting, it accelerates from this speed to the maximum speed, and before stopping, it slows down to this speed so that the rotor is not affected by strong impacts. This is why the movement is more continuous even when tracking a satellite.
Background: color combinations used on the display
Timezone: set your own time zone if you do not want to see time in UTC. (Time difference between UTC and winter time. Daylight saving time is set automatically)
Time: ON or OFF, depending on whether you want to see the clock or not.
Potentiometer: set whether there is a potentiometer and if so, is it common for both directions or separate
UDP port: set the port for PSTRotator
TCP port: set the port for rotctl
Latitude: set your own latitude coordinate
Longitude: set your own longitude coordinate
Altitude: set your own altitude above sea level
WiFi name: set your own WiFi AP name
WiFi password: set your own WiFi password
Parking azimuth: set the parking position (if you want to use it)
Parking elevation: set the parking position (if you want to use it)
Calibrate calibrate the position of the rotator. In the horizontal direction, it can only be used with the subsequent installation of limit switches, in the vertical direction the limit switch is already installed
    If the WiFi SSID and password are set correctly, then after restarting, we will see the IP address obtained in the upper left corner of the menu window. We can access the settings via a browser at this IP address. The firmware version number is shown in the upper right corner. In case of successful connection, if the time display is enabled in the menu, the exact time will be displayed in UTC or local time at the top of the display, depending on the time zone set in the menu.



   
If you want to use WiFi, make sure to check in the menu whether WiFi is OFF. If so, turn it on. Select whether you want AP only, CLIENT only, or switch to AP+Client mode. If the controller cannot connect to the WiFi network, and if this function is not disabled, it will create an AP, which can be accessed either with the ROTOR-AP SSID or the 192.168.4.1 IP address. In this case, the password is 1234567890. If you have set WiFi, you must restart the controller, because it only checks the settings when you turn it on.
    The third way to set parameters is to send the appropriate commands over the serial port. The list of commands can be retrieved with the H or h command.

    Preparation:


   

    As you can see, the PCB is quite simple. It only contains a few components and connectors. There should be no major problems with purchasing the components either, because all resistors are 10 kΩ, and the ceramic capacitors are 100 nF. All are 0805 in size. Except for the zener and protection diodes, all diodes are shottky.





The display can also be connected directly, by attaching the 16-pin connector to one end of the ribbon cable and a single-row connector to the other end, which is connected according to the diagram. Alternatively, you can use an intermediate panel like this:


gerber file
   
Since the WiFi antenna is located on the module, make sure to either mount the controller in a plastic box or the metal box is not too closed so that the WiFi signal can escape from the box. In any case, the box should not be too closed for cooling reasons.
A 3D printed box for the controller is available here.



The power supply is not part of the controller. Choose a type of power supply that can withstand sudden changes in current consumption. I use a 24V 10A power supply used for LEDs. I set its voltage to a value below 20V (the minimum that can be set) using the trimmer inside. The value of the D6 diode is critical. A correct type of Zener diode must be used where, when turned off, the ESP32 - 21 port (interrupt) goes to the LOG0 state in time so that the processor has enough time to save the current position, but the voltage fluctuation that occurs when starting the motors (current consumption can be up to 10A) does not activate the interrupt. This largely depends on the quality of the power supply.


    Installation:

    The installation is very simple. You just need to run the appropriate bat file. The entire package is called rotator.zip (version 1.22). This zip file must be unpacked into a folder of your choice. The first time you use it, you should always use the install_with_factory_reset.bat file. First, connect the ESP panel to the computer. In the device manager, check what COM number the panel received. Open the aforementioned bat for edit, set the COM number, and correct the path to the python program. If python3 is in the PATH, then just write python at the beginning of the line. Save it, then run it. After that, you just have to wait for the bat to run. This takes a while, sometimes it seems like nothing is happening, but it does work in the background, so be patient. If the bat has run and the standard "Press a button..." message appears, then the installation is complete. If any other error message appears, it is likely that you entered the wrong COM number or there is a problem with python. To upgrade the firmware install_upgrade.bat should be run to keep the settings. The COM number and python path needs to be edited in this file as well.

partlist
 
Options for purchasing parts:

ESP32 module or ESP32S3-IPEX
Motorcontroller
UART-COM level converter
4.0" display
stabilizer
beeper
single row female conector
ribbon cable connector
socket header connector
main switch 15x21
powersubbly or here
green connectors or here
or
PV05-5.08-H-P EUROCLAMP
PV02-5.08-H-P EUROCLAMP
PV02-5.08-V-P EUROCLAMP
SH05-5.08 EUROCLAMP
SH02-5.08 EUROCLAMP

   
The drawings and the program in the processor are the intellectual property of the author. Its commercial use is only permitted with the written consent of the author!

A satellite tracking program was also created to control the antenna, which can be found at this address. With this program, it is possible to automatically track several satellites.