Package: mgtron-gui
MGTron Signal Generator InterfaceA functional mutlti card interface for the MGTron Signal GeneratorThis project revolves around the MGTron signal generator.  The graphical user interface (GUI) is written purely in python.  There are some facets that utilize linux command line tools.  Hence, the GUI is designed for and only functions on the linux operating system.  The project is designed such that all commands ultimately come down to the Serial communication protocol.  Serial communication, via thepyseriallibrary, is from a linux operating system to an Arduino based microcontroller.  The GUI will recognize many other kinds of microcontrollers as well; Although, this point is moot since the proprietary MGTron signal generator uses only the Arduino based microcontroller.Set the frequency, power, and bandwidth of each of the eight channels.Send to all channels at once or individually.Easy one-click to turn off a generating channel.Choose a specific device based on its serial number.Easy install to most Linux distributions.Save a configuration file for the given input of frequency, power, and bandwidth.Pre-configurable configurations for up to eight devices.Pre-configurable mission buttons.Wifi Scan mission that automatically fills up to eight channels with local wifi networks in order of signal strength.ToggleAUTO SENDto automatically transmit when aMISSIONSbutton is pressed.Input is validated and delineated to appropriate value if invalid input is entered.Special FeaturesIf theCustom Savesave name is identical to a pre-configured mission button, the mission button will be updated to the new configuration.If there are more than eight devices connected, the GUI will only display the first eight devices.  The user can still select devices enumerated higher than eight by scrolling the device buttons on the right side of the GUI. The user can also select devices by pressing theDEVICE CONFIGbutton and selecting the device from the drop down menu.VisualizationInstallationRequirementsPython 3.10+gitinstall from GitHubgit clone https://github.com/cellantenna/mg_tron.gitcd mg_tronpython3.10 -m venv venv- Optional, but recommended.source venv/bin/activate- Required, if last line is executed.pip install -r requirements.txtpython -m mainKnown IssuesPermissionsDepending on your OS of choice, you may need to change the permissions of the serial port.  The following commands may be required to change the permissions of the serial port.sudo chmod 777 /dev/ttyACM*- temporary fixsudo usermod -a -G dialout $USER- permanent fix; reboot requiredsudo usermod -a -G uucp $USER- permanent fix; reboot requiredVersionUpdate to Python3.10GUI never launchesThe Teensy is not properly initialized. This appears to happen randomly in testing.  The solution is to power cycle the Teensy.  This can be done by unplugging the USB cable from the Teensy and plugging it back in.  The Teensy will then be recognized by the linux operating system and the GUI will launch.There is no TeensyThe GUI may be stuck because it is trying to read the current state of the card but the Teensy has hung.The log file is named mg.log and is located in the mg_tron directory.  The log file is overwritten everytime the GUI launches.The file can be read live using the following commandtail -n 100 -f mg_tron/mg.logIt is important to remember to input the full path of the log file.Wifi Scan brokenEnsure wifi is enabled on the device.