Table of Contents
ERMX is the acronym for "Estação Remota de Monitoramento" with the added letter "x" as a reference to a variable, since the objective is to provide a framework to construct a usefull spectrum monitoring station from assorted components, that may be adapted to the specific needs of each project.
This repository stores the documentation and scripts for the installation and configuration of the main components of the ERMx project.
The following figure presents a general view main elements for ERMx.
- Antenna & Receiver: Is the data acquisition front-end, from the RF receiving antennas to the digitizer and DSP units that provides data streams with IF IQ data, spectrum sweeps, demodulated data and alarms. Each equipment may provide a different set of data as output.
- Processor: Is a generic data processor running linux or windows. It's the local brain of the monitoring station, responsible to perform data requests to the acquisition front-end, any additional processing for data analysis and tagging. It also manage interfaces and the local data repository.
- Support and Environment Control: may be composed of several elements that are accessory to the measurement, such as temperature control, security detectors, cameras, UPS and power supply management, etc.
- Router, Firewall and Network Interfaces: may be composed of several elements that interconnect elements within the station and from it to the outside world. Common solutions provide up to 3 interfaces including an ethernet cable, an integrated 4G or 5G modem to connect to to the mobile WAN network and a VPN connection, that allows for a secure communication with the server core
The ERMx project is composed of several modules and microservices that are responsible for the configuration of the controller PC running MS Windows.
The current version is available at WindowsSetupERMx.ps1
and performs simple configurations for the Windows OS to run the ERMx services.
The main modules for the next version are under construction and split the original module into several functions/modules in order to allow a more flexible configuration, including for other spectrum monitoring platforms.
They new modules are:
Script module | Description |
---|---|
config.json |
Configuration parameters that define the powershell script behavior |
ovpn_setup.ps1 |
Script to install and configure the OpenVPN client including routes to remote LAN |
proxy_setup.ps1 |
Script to configure proxy rules that enable the access to LAN services through the PC, mostly useful when the PC operates as gateway for the LAN services to OpenVPN remote clients |
rdp_setup.ps1 |
Script to configure the Windows RDP access, includes creating user and setting firewall rules |
openssh_setup.ps1 |
Script to install and configure the OpenSSH server, includes creating user and setting firewall rules |
smd_setup.ps1 |
Script to install and uninstall the Storage Manager Daemon |
smd_gui.ps1 |
Script that provides a gui to configure the Storage Manager Daemon |
storage_manager_daemon.ps1 |
Catalog files within specific folders following the same algorithm described at RF.Fusion. Additionally, manage the storage capacity to ensure minimum availability by deleting files using FIFO order. |
install_ermx.ps1 |
Script to install all the modules and microservices for ERMx in a single run |
setup_wizard.ps1 |
GUI interactive configuration and execution of setups |
- Create main repository and upload existing data
- Create new structure for the project providing new GUI and CLI scripts
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the GNU General Public License (GPL), version 3. See LICENSE.txt
for more information.
For additional information, please check https://www.gnu.org/licenses/quick-guide-gplv3.html
This license model was selected with the idea of enabling collaboration of anyone interested in projects listed within this group.
It is in line with the Brazilian Public Software directives, as published at: https://softwarepublico.gov.br/social/articles/0004/5936/Manual_do_Ofertante_Temporario_04.10.2016.pdf
Further reading material can be found at:
- http://copyfree.org/policy/copyleft
- https://opensource.stackexchange.com/questions/9805/can-i-license-my-project-with-an-open-source-license-but-disallow-commercial-use
- https://opensource.stackexchange.com/questions/21/whats-the-difference-between-permissive-and-copyleft-licenses/42#42
- Developed using VSCode
- GUI developed using PS Winforms Creator