ARSCTL - a flexible web interface for your antenna rotators
** PROJECT DEPRECATED ** This project is deprecated and has been replaced by remoteRotator.
The library has been used in several major contests at ED1R and has proven to be stable.
You can find a detailed description of arsctl on DH1TW's blog. The source code is also well documented.
Arsctl supports EA4TX' fabulous Antenna Rotator System (ARS) and Yaesu rotators with a USB / serial interface.
Arsctl is published under the GPL open source license. Feel free to fork and collaborate!
Arsctl has been developed and tested under OSX and Linux (Ubuntu). However it should also work with some minor tweaks on other Linux distributions and Windows. It works very well on small ARM devices, like the Raspberry Pi & Banana Pi.
Install a copy of the latest NodeJs version on your system. Note that the version in the Ubuntu repository is quite old. Better install it from the the Nodejs PPA.
Clone the arsctl repository with git on your local machine
git clone https://github.com/dh1tw/arsctl.git
Browse into arsctl's directory and install all the needed dependencies with Node's package manager (NPM). All dependencies are registered in package.json
Configure your rotator and webserver setup (config.js).
Run arsctl of the source code directory with
Open your browser and navigate to url put in the config file. For example http://localhost:4000
Installation (optional steps)
It is recommended to separate the config file from the source code (e.g. /etc/arsctl/myConfig.js) so that the config file doesn't get overwritten on the next software update. Some configuration file examples are included in the
Point to the location where your config file is located (in app.js).
It is recommended to daemonize arsctl and run arsctl as a service. For Ubuntu's Upstart a example file has been included in the
/examples/upstart_servicedirectory. This file should be copied to
If you want to use the standard HTTP port (or any other port below 1024) make sure that you execute arsctl under root priviliges.
For logging you might create and direct the application output to you a file, e.g. (
If you have more than one rotator connected through USB, Linux might assign them to different port names everytime you plug them in. In order to map a USB device to a specific port (e.g.
/dev/Rotator1) you have to create a custom udev rule with the Rotator's DeviceId, ProductId and SerialNr. The file with the custom rule has to be placed under Ubuntu in
/etc/udev/rules.d/. An example for a custom udev rules file is located in
Due to some bugs in the SerialPort Library, serial devices can't be properly removed. Therefor the application terminates when a Rotator gets disconnected. If you daemonize arsctl, it will automatically restart.