/Orion

Frontend for Odyssey Engine, written in Flutter, for the Apollo series of control boards.

Primary LanguageDartGNU General Public License v3.0GPL-3.0

Orion: The Resin UI     Discord Link

GitHub license GitHub release

Orion is a user interface designed to control Odyssey. It's tailored for the Apollo series of control boards and the Prometheus MSLA Open Source Resin 3D Printer.

⚠️ Orion is currently under active development. We recommend exercising caution when using it for the first time and advise against unattended printing.

Table of Contents

About Orion

Orion is designed to make 3D printing with the Prometheus MSLA Open Source Resin 3D Printer and Apollo series of control boards a breeze. It provides:

  • A user-friendly interface for controlling mSLA printers
  • Real-time monitoring of print progress and status
  • File management for uploading and selecting print files
  • Customizable print settings for optimal results

Features

Orion offers a range of features designed to enhance your 3D printing experience:

  • User-friendly Interface: An intuitive interface for controlling mSLA printers, suitable for both beginners and experienced users.
  • Real-time Monitoring: Keep track of your print progress and status in real-time.
  • File Management: Simplified process of uploading and selecting print files.
  • Customizable Print Settings: Fine-tune your prints according to your specific needs.

Getting Started

To get started with Orion, follow one of these steps:

Variant 1: Installing PrometheusOS

PrometheusOS is an all-in-one solution that includes both Odyssey and Orion. Here's how to install it:

  1. Prerequisites: Ensure you have a Raspberry Pi model compatible with PrometheusOS.
  2. Installation: Visit the PrometheusOS GitHub page and follow the detailed instructions there to install PrometheusOS on your Raspberry Pi.

Variant 2: Manual Compilation

If you prefer to have more control over the build process, you can manually compile the Orion project using the Dart and Flutter extensions in Visual Studio Code. Here's how:

  1. Prerequisites: Ensure that you have Visual Studio Code installed on your machine. You also need to have the Dart and Flutter extensions installed.
  2. Open the Project: Open the Orion project in Visual Studio Code.
  3. Prepare the Environment: Fetch the project dependencies by running the command flutter pub get in the terminal.
  4. Build the Project: Build the project by running the command flutter build linux --target-platform linux-arm64 in the terminal.
  5. Verify the Build: Check the build directory in the Orion project directory for the compiled Flutter bundle.
  6. Deploy the Application: Deploy the Flutter bundle to your Raspberry Pi.

Variant 3: Using the Orion Script

The orionpi.sh script is a convenient way to build and deploy Orion to a Raspberry Pi. Here's how to use it:

  1. Prerequisites: Ensure that you have flutterpi_tool installed on your host machine. On the target machine (Raspberry Pi), you should have flutter-pi installed.
  2. Prepare the Script: Download the orionpi.sh script from the Orion repository and give it execute permissions using the command chmod +x orionpi.sh.
  3. Run the Script: Run the script with the necessary arguments. The command should look like this:
    ./orionpi.sh <IP_ADDRESS> <USERNAME> <PASSWORD>.
  4. Wait for Completion: The script will build the Flutter bundle, copy it to the Raspberry Pi, and run it.
  5. Verify the Deployment: Check if the Orion application is running on your Raspberry Pi.

Contributing

We welcome and appreciate contributions to Orion! If you're interested in contributing, please:

  1. Fork the Repository: Fork the Orion repository and create a new branch for your feature or bug fix.
  2. Make Your Changes: Implement your feature or fix the bug, ensuring that the code passes all tests.
  3. Submit a Pull Request: Submit a pull request with a clear and detailed description of your changes.

License

Orion is licensed under the GPLv3 License.

Contact

If you have any questions, feedback, or suggestions, please don't hesitate to contact us on Discord!