Limewire is a driver that facilitates communication between Synnax and Limelight. Check out the Limewire Design Doc for all relevant information.
Project Lead: Rohan Satapathy
How you install Limewire will depend on whether you're installing it in a development environment or on the DAQ PC.
-
Make sure you have Python 3.12 or greater installed.
-
Install Poetry, a dependency manager and virtual environment manager for Python projects.
-
Clone the repository and
cd
into the project directory.git clone https://github.com/masa-umich/limewire.git cd limewire
-
Install the project dependencies.
poetry install
-
To run Limewire or the FC Simulator, run the following commands.
# Run this once to enter the virtual environment poetry shell python -m limewire [IP]:[port] # OR python -m fc_simulator [IP]:[port]
-
Install Ruff, a linter and code formatter for Python projects. If you use VS Code, you can install the VS Code Ruff Extension.
All code submitted to this project should be formatted using Ruff before being merged into
main
. An easy way to do this is configure your editor to enable "Format on Save".
Limewire is installed on the DAQ PC using uv
because it installs
Limewire in a virtual environment while globally exposing the limewire
command-line entry point. To download the latest version from GitHub, use
the following command.
uv tool upgrade limewire
Then, run Limewire.
limewire [IP]:[port]
This repository currently contains three packages in the src
directory:
limewire
: The Limewire driver, a TCP client that runs on the DAQ PC and process telemetry data from the flight computer.fc_simulator
: The Flight Computer Simulator, a TCP server that acts as a stand-in for the Flight Computer while its Ethernet issues are being debugged, enabling testing of Limewire.packets
: A set of utility classes that represent different types of packets within the Limelight Packet Structure.
At the moment, the FC Simulator is configured to send as many telemetry packets as possible to Limewire for a period of 10 seconds, then report the number of packets successfully transmitted.
To test Limewire, you need to run the FC Simulator on your development machine, then run Limewire on the DAQ PC. To do so, use the following instructions.
-
Make sure you're connected to the University of Michigan WiFi. If you aren't on campus, you can use the UMVPN service. If you need help getting this set up properly, contact Rohan Satapathy on Slack.
-
Find your public IP address. The method to do this varies based on your operating system, but you should end up with a IPv4 address that looks like
35.X.X.X
. On macOS, the command to do this isipconfig getifaddr en0
. -
Open a new terminal window and start the FC Simulator. Make sure you've activated the virtual environment with
poetry shell
first.python -m fc_simulator [public-ip-address]:8888
You might receive a pop-up asking if you want to allow Python to accept incoming network connections. Make sure this option is enabled.
-
Use
ssh
to access the DAQ PC.ssh [username]@[daq-pc-ip-address]
To get the username and IP address of the DAQ PC, contact Rohan Satapathy on Slack.
-
If Limewire has been updated on GitHub, install the latest version on the DAQ PC.
uv tool upgrade limewire
-
Run Limewire.
limewire [public-ip-address]:8888
If you would like to test Limewire locally, use the IP address 127.0.0.1
in place of [public-ip-address]
and run Limewire using python -m limewire 127.0.0.1:8888
on your local machine. You'll need to have two
terminals open -- one for Limewire and one for the FC simulator.