Skip to main content

Community developed controller for the Carvera CNC

Project description

Community Carvera Controller

The Community developed version of the Carvera Controller has a number of benefits and fixes above and beyond the Makera software. See the online Documentation site for installation and usage details.

Functionality Summary

  • 3-axis and advanced probing UI screens for various geometries (corners, axis, bore/pocket, angles) for use with a true 3D touch probe (not the included XYZ probe block)
  • Pendant device support, via WHB04 family of MPG devices. Such devices can be used to jog, run macros, and perform feed/speed overrides.
  • Options to reduce the autolevel probe area to avoid probing obstacles
  • Tooltip support for user guidance with over 110 tips and counting
  • Background images for bolt hole positions in probe/start screens; users can add their own too
  • Support for setting/changing to custom tool numbers beyond 1-6
  • Keyboard button based jog movement controls
  • No dial-home back to Makera
  • Single portable binary for Windows and Linux
  • Laser Safety prompt to remind operators to put on safety glasses
  • Multiple developers with their own Carvera machines "drinking their own [software] champagne" daily and working to improve the machine's capabilities.
  • Various Quality-of-life improvements:
    • Controller config settings (UI Density, screensaver disable, Allow MDI while machine running, virtual keyboard)
    • Enclosure light and External Ouput switch toggle in the center control panel
    • Machine reconnect functionality with stored last used machine network address
    • Set Origin Screen pre-populated with current offset values
    • Collet Clamp/Unclamp buttons in Tool Changer menu for the original Carvera
    • Better file browser upload-and-select workflow
    • Previous file browsing location is reopened and previously used locations stored to quick access list
    • Greater speed/feed override scaling range from 10% and up to 300%
    • Improved 3D gcode visualisations, including correct rendering of movements around the A axis

Contributing

Review this guide for how to contribute to this codebase.

Development Environment Setup

To contribute to this project or set up a local development environment, follow these steps to install dependencies and prepare your environment.

Prerequisites

  • Ensure you have Python installed on your system (preferably version 3.8 or later).
  • Poetry is required for dependency management. Poetry simplifies packaging and simplifies the management of Python dependencies.
  • One of the python dependencies QuickLZ will be compiled by Poetry when installed. Ensure that you have a compiler that Poetry/Pip can use and the Python headers. On a debian based Linux system this can be accomplished with sudo apt-get install -y python3-dev build-essential. On Windows installation of (just) the Visual C++ 14.x compiler is required, this can be accomplished with MSBuild tools package.
  • Squashfs-tools is required if building Linux AppImages. On Debian based systems it's provided by the package squashfs-tools. This is only required if packaging for linux.
  • linuxdeploy is required for building Linux AppImages. These must be installed and available in your PATH before building. You can install them using scripts/install_linux_prereqs.sh or by following the instructions on their GitHub page.
  • gettext is required for language file generation. gettext-iconv-windows project has a version with Windows packages.
  • For building iOS app, you need a working XCode installation as well as the build tool that can be installed with brew install autoconf automake libtool pkg-config
  • Building the Android app needs a Linux host. The prerequisites can be found here: buildozer prerequisites. A script to install them is provided in scripts/install_android_prereqs.sh. Be aware that buildozer downloads/installs multiple GB of Android development tooling.

Installing Poetry

Follow the official installation instructions to install Poetry. The simplest method is via the command line:

curl -sSL https://install.python-poetry.org | python3 -

or on Windows:

(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -

Once installed, make sure Poetry is in your system's PATH so you can run it from any terminal window. Verify the installation by checking the version:

poetry --version

Setting Up the Development Environment

Once you have Poetry installed, setting up the development environment is straightforward:

  1. Clone the repository

    git clone https://github.com/Carvera-Community/CarveraController.git
    
  2. Install the project dependencies

    poetry install
    

    On Windows the ios-dev dependencies cannot be satisfied, so instead you need to run: poetry install --without ios-dev

    This command will create a virtual environment (if one doesn't already exist) and install all required dependencies as specified in the pyproject.toml file.

  3. Activate the virtual environment (optional, but useful for running scripts directly)

    poetry env activate
    

    This step is usually not necessary since poetry run <command> automatically uses the virtual environment, but it can be helpful if you want to run multiple commands without prefixing poetry run.

Running the Project

You can run the Controller software using Poetry's run command without installation. This is handy for iterative development.

poetry run python -m carveracontroller

To run the iOS app, you first need to build its dependencies using the Local Packaging instructions below. The build script will open Xcode for you, or you can open the project manually by finding it in assets/packaging/ios/carveracontroller-ios.

Local Packaging

The application is packaged using PyInstaller (except for iOS). This tool converts Python applications into a standalone executable, so it can be run on systems without requiring management of a installed Python interpreter or dependent libraries. An build helper script is configured with Poetry and can be run with:

poetry run python scripts/build.py --os os --version version [--no-appimage]

The options for os are windows, macos, linux, pypi, ios or android. If selecting linux, an appimage is built by default unless --no-appimage is specified. For iOS, the project will be open in XCode and needs to be built from there to simplify the signing process.

The value of version should be in the format of X.Y.Z e.g., 1.2.3 or v1.2.3.

Setting up translations

The Carvera Controller UI natively uses the English language, but is capable of displaying other languages as well. Today only English and Simplified Chinese is supported. UI Translations are made using the string mapping file carveracontroller/locales/messages.pot and the individual language strings are stored in carveracontroller/locales/{lang}}/LC_MESSAGES/{lang}.po. During build the .po files are compiled into a binary .mo file using the msgfmt utility.

If you add or modify any UI text strings you need to update the messages.pot file and individual .po files to account for it. This way translators can help add translations for the new string in the respective .po language files.

Updating the .pot and .po strings, as well as compiling to .mo can be performed by running the following command:

poetry run python scripts/update_translations.py

This utility scans the python and kivvy code for new strings and updates the mapping files. It does not clear/overwrite previous translations.

Collected Data & Privacy

See the privacy page for more details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

carvera_controller_community-2.1.0rc1.tar.gz (21.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

carvera_controller_community-2.1.0rc1-py3-none-any.whl (21.4 MB view details)

Uploaded Python 3

File details

Details for the file carvera_controller_community-2.1.0rc1.tar.gz.

File metadata

File hashes

Hashes for carvera_controller_community-2.1.0rc1.tar.gz
Algorithm Hash digest
SHA256 740e424b065b9cbc79bb74dce2426479a4e66cd8552031a2d626fd29d4c293b9
MD5 2e626c55fc56bb1b051d86087074249c
BLAKE2b-256 65321fb5760771bdaeb023c90876381bc3d9cd4331cd88edbb20187b862f73fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for carvera_controller_community-2.1.0rc1.tar.gz:

Publisher: release.yaml on Carvera-Community/Carvera_Controller

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file carvera_controller_community-2.1.0rc1-py3-none-any.whl.

File metadata

File hashes

Hashes for carvera_controller_community-2.1.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 bc97f13cfef3b65b99e4a1c8e84d7ddb54ac25d6e91766e59b742b684531c1a8
MD5 7b05e97744341af4d5439e27424b8777
BLAKE2b-256 7de509e789f14e05867776b0220084b988d915c43c86dd83d7a91e59025b9637

See more details on using hashes here.

Provenance

The following attestation bundles were made for carvera_controller_community-2.1.0rc1-py3-none-any.whl:

Publisher: release.yaml on Carvera-Community/Carvera_Controller

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page