Coder Social home page Coder Social logo

jonas-koeritz / expresslrs-configurator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from expresslrs/expresslrs-configurator

0.0 1.0 0.0 226.94 MB

Cross platform configuration & build tool for the ExpressLRS radio link

License: GNU General Public License v3.0

Shell 0.01% JavaScript 5.55% TypeScript 94.15% HTML 0.29%

expresslrs-configurator's Introduction

ExpressLRS Configurator

Release License Chat Open Collective backers

ExpressLRS Configurator is a cross-platform build & configuration tool for the ExpressLRS - open source RC link for RC applications.

Need help? Confused? Join the Community!

Support ExpressLRS

Supporting ExpressLRS is as easy as contributing a feature, either code or just a fleshed out idea. Coding not your thing? Testing a Pull Request using the convenient Configurator tab and providing feedback is essential as well. We're all working together.

If you don't have the time to contribute in that way, consider making a small donation. Donations are used to buy test equipment, software licenses, and certificates needed to further the project and make it securely accessible. ExpressLRS accepts donations through Open Collective, which provides recognition of donors and transparency on how that support is utilized.

Open Collective backers

Quick Start Guide

If you have hardware that you want to flash, please refer to our guides on the website, and our FAQ

Installation

We provide a standalone program for 64bit Windows, Linux and Mac.

Download the installer from Releases page.

Notes

Windows

The minimum required version of windows is Windows 8.

macOS

Changes to the security model used in the latest versions of MacOS X 10.14 (Mojave) and 10.15 (Catalina) mean that the operating system will show an error message ('"ExpressLRS Configurator.app" cannot be openend because the developer cannot be verified') when trying to install the application.

To work around this, click ExpressLRS Configurator.app while pressing control key, and click Open. In the popup, you'll be able to forcefully open the application. (you may need to try this twice.)

Alternatively, run the following command in a terminal after installing:

sudo xattr -rd com.apple.quarantine /Applications/ExpressLRS\ Configurator.app

Linux

Linux users have to install udev rules for PlatformIO supported boards/devices. The latest version of rules may be found at https://raw.githubusercontent.com/platformio/platformio-core/master/scripts/99-platformio-udev.rules

This file must be placed at /etc/udev/rules.d/99-platformio-udev.rules (preferred location) or /lib/udev/rules.d/99-platformio-udev.rules (required on some broken systems).

Please open system Terminal and type:

# Recommended
curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/master/scripts/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules

# OR, manually download and copy this file to destination folder
sudo cp 99-platformio-udev.rules /etc/udev/rules.d/99-platformio-udev.rules

Restart "udev" management tool:

sudo service udev restart
# or
sudo udevadm control --reload-rules
sudo udevadm trigger

Ubuntu/Debian users may need to add own "username" to the "dialout" group if they are not "root", doing this issuing:

sudo usermod -a -G dialout $USER
sudo usermod -a -G plugdev $USER

Similarly, Arch users may need to add their user to the “uucp” group

sudo usermod -a -G uucp $USER
sudo usermod -a -G lock $USER
Ubuntu 18.XX / Older Debian installs troubleshooting

On Ubuntu 18.XX you are not able to get recent git version by default, and some other system dependencies are missing.

Read more about this in issue #26.

To work around that you can manually install required packages:

# install missing sys packages
sudo apt update
sudo apt-get install gconf2 gconf-service python3-distutils

# install git version >= 2.25
sudo add-apt-repository ppa:git-core/ppa
sudo apt update
sudo apt install git

Architecture

 - - - - - - - - - - - - - - - - - - - -
|          ExpressLRS-Configurator      |
|                   |                   |
|     renderer      |        main       |
|                   |                   |
|   configurator <----->  api-server    |
|                   |          |        |
|                   |          V        |
|                   |      platformio   |
|_ _ _ _ _ _ _ _ _ _|_ _ _ _ _ | _ _ _ _|
                               V
                      ExpressLRS hardware

This Electron application is split into two parts: a local API server that does all the work, and a UI layer. Both of these application layers communicate within each other using Graphql protocol.

Heavy use of TypeScript and @graphql-codegen/cli is made throughout the repository to ensure the datatypes transmitted between the API and UI layers are consistent at compile-time and Graphql ensuring the datatypes are consistent at runtime.

Starting Development

Prerequisites

  • node >=16.0
  • git >= 2.25
  • python >= 3.6
  • platformio >= 5.0

Start the app in the dev environment:

yarn install --frozen-lockfile
yarn start

In order to simulate WI-FI devices on your local network you can start application with MULTICAST_DNS_SIMULATOR_ENABLED environment variable:

npx cross-env MULTICAST_DNS_SIMULATOR_ENABLED=true yarn start

Other useful cli commands

Generate TypeScript types from Graphql schema and Queries located in src/ui/gql/queries:

yarn run gql-codegen

Screenshots

Main screen

Compile result

Credits

Legal disclaimer

The use and operation of this type of device may require a license, and some countries may forbid its use. It is entirely up to the end user to ensure compliance with local regulations. This is experimental software / hardware and there is no guarantee of stability or reliability. USE AT YOUR OWN RISK.

Join the community!

expresslrs-configurator's People

Contributors

andyclarke avatar avsaase avatar basters avatar deadbytefpv avatar dimitroffs avatar fog-yamato avatar freasy avatar jurgelenas avatar justinlampley avatar jyesmith avatar niklasvoigt avatar parkerbjur avatar pitts-mo avatar sfjuocekr avatar silentflyby avatar stoneddawg avatar sunjunkim avatar wenzhicode avatar wvarty avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.