Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite README.md to Include Example Configuration #18

Open
1 task
TylerFlar opened this issue Jan 4, 2025 · 0 comments
Open
1 task

Rewrite README.md to Include Example Configuration #18

TylerFlar opened this issue Jan 4, 2025 · 0 comments

Comments

@TylerFlar
Copy link
Contributor

Objective

To simplify the instructions for using this repository, it would be beneficial to provide an example of a hardware setup. Fortunately, we have a functioning hardware setup in the lab, so we can create a detailed diagram and instructions here. Additionally, providing a configuration that works with this hardware setup would be advantageous.

Requirements

  • The README.md MUST include a diagram, a parts list, and details about an example hardware setup using the repository.
  • Sections of the README.md that SHOULD be cut or condensed:
    • #### Connection Details
      - **SDR Connection:** USB 3.0 port
      - Required for high-bandwidth data transfer
      - Compatible with USRP, HackRF, and AirSpy devices
      - Hot-pluggable, but requires system restart after connection
      - **GPS Connection:**
      1. **I2C GPS Module Example:**
      - Connect to I2C Bus 1
      - Pin Connections:
      - SDA: Pin 3 (I2C1_SDA)
      - SCL: Pin 5 (I2C1_SCL)
      - VCC: Pin 1 (3.3V)
      - GND: Pin 6 (Ground)
      - Default I2C Address: 0x42
      - Recommended: Sparkfun NEO-M9N
      2. **Serial GPS Module Example:**
      - Connect to available serial port (e.g., /dev/ttyUSB0)
      - Default Baud Rate: 9600
      - Supports NMEA 0183 protocol
      - USB-to-Serial adapter recommended
      3. **Simulated GPS Example:**
      - No physical connections required
      - Used for testing and development
      - Configurable simulation speed
      - **Radio Connection (Online Mode):**
      1. **Serial Radio Example:**
      - Connect to USB port (e.g., /dev/ttyUSB0)
      - Default Baud Rate: 57600
      - Recommended: RFD900x Telemetry Modem
      2. **Simulated Radio Example:**
      - No physical connections required
      - Uses TCP/IP for communication
      - Default port: 50000
      - Useful for local testing
      - **USB Storage:**
      - Any available USB 2.0/3.0 port
      - FAT32 formatted drive required
      - Minimum recommended size: 8GB
      - Automounted to /media/\<USER\>/usb/
      This section should likely be replaced by the example configuration.
    • ## Operation Modes
      The system primarily operates in Online Mode with Ground Control Station (GCS) integration, while also supporting an Offline Mode for autonomous operations.
      ### Online Mode
      - Requires communication with the [Ground Control Station (GCS)](https://github.com/UCSD-E4E/radio-telemetry-tracker-drone-gcs)
      - Configuration and commands received remotely
      - Real-time data transmission and stored locally on the drone
      - Provides real-time location estimation but requires laptop with GCS to be present and connected to the drone
      Shorten to specify the requirement for the Ground Control Station (GCS), which allows for real-time location estimation but requires a laptop and 900 MHz serial radios.
    • ## Usage
      ### Online Mode Usage
      1. **Start the Ground Control Station**
      - Follow GCS setup instructions
      - Ensure radio communication is configured
      2. **Launch FDS**
      ```bash
      poetry run radio_telemetry_tracker_drone_fds
      ```
      3. **Operation**
      - Wait for GCS connection
      - Follow GCS interface for configuration and control
      - Monitor real-time data through GCS
      This section can likely be removed.
    • ## Automatic Startup
      To ensure the application runs automatically on system startup, you can create a **systemd** service. This is useful so when the microprocessor is powered on by the drone and the application can run without the need to manually start it. The configuration is also only loaded in offline mode when the program is started.
      1. **Create a systemd Service File:**
      Create a file named `radio_telemetry_tracker.service` in `/etc/systemd/system/`:
      ```bash
      sudo tee /etc/systemd/system/radio_telemetry_tracker.service <<EOF
      [Unit]
      Description=Radio Telemetry Tracker Drone FDS Service
      After=network.target
      [Service]
      User=your_username
      WorkingDirectory=/path/to/radio-telemetry-tracker-drone-fds
      ExecStart=/usr/bin/poetry run radio_telemetry_tracker_drone_fds
      Restart=always
      Environment=PATH=/usr/bin:/usr/local/bin
      Environment=POETRY_VIRTUALENVS_IN_PROJECT=true
      [Install]
      WantedBy=multi-user.target
      EOF
      ```
      **Replace the following placeholders:**
      - `your_username`: Your actual Linux username.
      - `/path/to/radio-telemetry-tracker-drone-fds`: The full path to your cloned repository.
      2. **Reload systemd and Enable the Service:**
      ```bash
      sudo systemctl daemon-reload
      sudo systemctl enable radio_telemetry_tracker.service
      sudo systemctl start radio_telemetry_tracker.service
      ```
      3. **Check Service Status:**
      ```bash
      sudo systemctl status radio_telemetry_tracker.service
      ```
      You should see output indicating that the service is active and running. If there are issues, logs can be viewed using:
      ```bash
      sudo journalctl -u radio_telemetry_tracker.service -f
      ```
      This section should be consolidated into the Software Installation section, as the program is intended to run at computer startup.

Tasks

  1. Review the configuration and parts list of the device setup in Sealab.
  2. Create a setup diagram to visualize the connections between the devices.
  3. Update the README.md.

Deliverables

  • Submit a pull request to the dev branch.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant