Rotator control and the NodeMCU - a proof of concept

Basics

Inspired from the work of EA4TX and K3NG I decided to check, whether the ESP8266 based NodeMCU 1.0 (ESP-12E) is usable as a simple remote IP-based rotator control. You can get the NodeMCU in a decent quality on eBay.

Idea was, to link a local emulated serial port to the NodeMCU module. The HAM Radio applications are communicating via the standard Yaesu GS232A protocol with the emulated serial port.  This emulated serial port then forwards the serial requests to the NodeMCU.

 

Solution

Serial port

First problem was to find a working, and most of all free serial port emulation. I found with the HW VSP 3 serial port software a working solution for Windows. For private use, the single port version is free of charge.

After installation of the VSP 3 software simply create a new serial port on a free port number as shown below:

Ser1

Ser2

NodeMCU

 I'm using the NodeMCU in Arduino mode, means, that the NodeMCU can be programmed like any regular Arduino (more or less). A good starting point is SEEEDSTUDIOs beginner tutorial.

As far as I understand the NodeMCU has a very limited number of free usable port. For my Kenpro G-1000SA rotator I need one analog and two digital ports.

The analog port is used to pick up the value of the variable resistor inside the rotator. The two digital ports are used to drive two relais controlling the DC motor inside the rotator.

You can find the latest trial code here. In the file defines.h you have to

  • WIFI_SSID / WIFI_PASSWORD : change your desired WLAN-SSID & password
  • HTTP_USER / HTTP_PASSWORD : change the desired UserID & password for the Web-Interface
  • WIFI_DEVICE_NAME : change the desired mDNS name for the device

Then the NodeMCU should connect to your WLAN. To find the IP of the NodeMCU check your routers WLAN page to see the newly connected device. I propose to assign a meaningful name and a fixed IP to the NodeMCU so you can always connect with the same name from your broswer. With the latest code version, it should be also possible to connect via mDNS shortname - check the serial monitor during startup of the MCU.

The current code provides basic webpages and mainly supports the C, C2, L, R, W and M commands to horizontally move the rotator. Remember all is a simple, not completely tested code base!!!

The NodeMCU also provides a simple webserver. You can check the current status of the controller as well you can move the rotator my entering a new angle.

WEB MainWEB Status