/workbench

A desktop app to help aid on-boarding and porting vehicles to openpilot for the masses.

Primary LanguageJavaScriptMIT LicenseMIT

Workbench for Openpilot

Workbench is a desktop application to help you manage your Comma EON(s) as well as assisting with installing Openpilot. It also has a goal of providing easier porting of new vehicles.

license

Help fuel development!

Think you can spare $1/month to support the open source efforts of Workbench and The Openpilot Community?
We receive zero funding from any commercial entity and all our code is MIT licensed so every little contribution helps...
Consider becoming a Patreon supporter and help us support you!

Getting Started

IMPORTANT: Workbench manages your EON over SSH. You must enable SSH in your Settings on EON.

Features

  • Scans your network for your EON so you don't need to find the IP.
  • Connects to EON via SSH (and automatically, installs SSH key for you)
  • Dumps you into an SSH shell connection to your EON with one click.
  • Has tabs for all of the various ZMQ messages sent in real-time over wifi from EON.
  • Automatic task scripts for EON configuration / maintenance.
  • Reinstall Comma Openpilot Release2

Upcoming Concepts / Features

  • Built-in Openpilot / EON IDE (code editor)
  • Real-time tuning
  • Backup videos
  • Review videos
  • Monitor uploads

For Workbench Developers

  1. Install necessary development dependencies:
  • Windows
    • Install windows-build-tools npm install -g windows-build-tools
  • macOS
    • Install xcode build tools: xcode-select --install
    • Install Homebrew if you don't have it. /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    • Install nvm or nodenv or some sort of nodejs version manager.
    • Now install zmq brew install zmq
  • Linux(You can see here what your Linux is based on.)
    • RPM-based
      • GraphicsMagick
      • libicns-utils
      • xz (Installed by default on some distributions.)
    • Debian-based
      • graphicsmagick
      • icnsutils
      • xz-utils
  1. Fork this repository to your own GitHub account and then clone it to your local device
  2. Change to the newly cloned directory cd workbench
  3. Install a version of nodejs with nvm or your node version manager. nvm install 8.14.0 is the version I recommend. nvm use 8.14.0
  4. Move to the cloned directory and install the dependencies: npm run setup
  5. Build the code and watch for changes: npm run dev
  6. Checkout a new branch for your feature... something like feature/what-is-it or bugfix/the-fix-for-something
  7. Push your change up to your own GitHub fork and create a New Pull Request to request your new feature / bugfix branch be upstreamed into the master for inclusion in the next release.

To make sure that your code works in the finished application, you can generate the binaries like this:

npm run package

After that, you will see the binary in the ./releases folder!

Known issues that can happen during development

Error related to node-pty-prebuilt

If after building during development you get an alert dialog related to node-pty issues, make sure its build process is working correctly by running yarn run package.

Error with codesign on macOS when running npm run dist

If you have issues in the codesign step when running npm run package on macOS, you can temporarily disable code signing locally by setting export CSC_IDENTITY_AUTO_DISCOVERY=false for the current terminal session.

Bug Reports / Feature Requests

Feel free to create issues for feature requests and/or bugs.

License

MIT