Repository navigation
Installation
This page explains how to install FlatCAM Evo on Windows, Linux and macOS. It also explains how to run FlatCAM Evo from the source code, and how to start it for the first time.
| Your system | Recommended way | Section |
|---|---|---|
| Windows | Windows release package from the Releases page | Windows |
| Windows (developer or latest code) | Source code with conda / mamba, or pip and a virtual environment | From source |
| Debian / Ubuntu |
setup_ubuntu.sh script |
Linux |
| macOS | Source code with Homebrew Python and pip | macOS |
Read Glossary if a term is not clear.
- Python 3.10 or newer. Use a 64-bit Python. The OR-Tools path optimization works only on 64-bit Python.
- A working OpenGL context and graphics driver. The 2D canvas uses VisPy and needs OpenGL.
- The Python packages listed in
requirements.txt. The main packages are PyQt6, Shapely 2, NumPy, Rtree, VisPy, ezdxf, svglib, reportlab and lxml.
Check your Python version:
python --versionIf the version is lower than 3.10, install a newer Python first.
- Open the Releases page of the project:
https://github.com/MariusAdrian88/FlatCAM_Evo/releases. - Download the newest Windows package.
- Follow the instructions of the release for the installation. The package contains
FlatCAM.exe, which starts the program. - Start
FlatCAM.exe.
The package also contains FlatCAM-cli.exe (command line and headless mode) and FlatCAMUpdater.exe (the updater).
Screenshot placeholder:
images/Installation-1.png— the Releases page with the Windows package highlighted.
Note: FlatCAM Evo 1.0 cannot update itself. Install version 1.01 or newer with the installer one time. See Updates.
Install Python from python.org. Select Add python.exe to PATH during the setup.
Open PowerShell in the project folder, then run:
python -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python -m pip install -r requirements-optional.txtThe last command is optional. FlatCAM Evo runs without it.
If pip cannot install gdal:
- Download a GDAL wheel for your Python version from cgohlke/geospatial-wheels.
- Install the wheel with
python -m pip install <wheel file>. - Run the
requirements.txtcommand again.
Or use conda / mamba (see From source).
The script setup_ubuntu.sh in the project folder installs everything. It works on Debian, Ubuntu and other apt-based distributions.
cd FlatCAM_Evo
./setup_ubuntu.sh
.venv/bin/python flatcam.pyWhat the script does:
- It installs the system packages with
apt. It asks for yoursudopassword. - It creates the virtual environment
.venvin the project folder. - It installs the GDAL Python package. The version matches the GDAL system library.
- It installs
requirements.txt. - It tries to install
requirements-optional.txt. If this step fails, the script continues.
To use another Python 3.10 or newer, set the PYTHON variable:
PYTHON=python3.12 ./setup_ubuntu.shInstall the system libraries with your package manager. On Debian and Ubuntu, the packages are:
sudo apt install python3-venv python3-dev build-essential \
libgeos-dev libspatialindex-dev libfreetype6-dev gdal-bin libgdal-dev \
libgl1 libegl1 libxkbcommon-x11-0 libxcb-cursor0Then create the virtual environment and install the packages:
python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip
.venv/bin/python -m pip install "gdal==$(gdal-config --version)"
.venv/bin/python -m pip install -r requirements.txt
.venv/bin/python -m pip install -r requirements-optional.txtNewer distributions refuse a system-wide pip install. Always use the virtual environment.
The README describes a make install target. It adds FlatCAM Evo to the applications menu of your user. Use sudo make install to install it for all users. Use make remove to remove it.
Install Homebrew. Then install the system libraries and Python:
brew install python geos spatialindex freetype gdalCreate the virtual environment and install the packages in the project folder:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python -m pip install -r requirements-optional.txtIf gdal fails to install, check that the Homebrew gdal package is installed. Then run the pip command again.
git clone https://github.com/MariusAdrian88/FlatCAM_Evo.git
cd FlatCAM_EvoThe branch main is the stable branch. For the newest development code, run git checkout 1.0.
Conda installs the packages that need system libraries (GDAL, GEOS, libspatialindex, FreeType).
-
Install Miniforge. It includes
mamba. -
Create the environment from
environment.yml:mamba env create -f environment.yml
-
Activate the environment:
mamba activate flatcam
-
Start the program with
python flatcam.py.
The file environment.yml pins numpy==1.26.4. It installs ortools, pyqt6 and vtracer with pip inside the environment.
Use this way when you do not use conda. Follow the section for your system above. The packages are the same.
| File | Content | Needed |
|---|---|---|
requirements.txt |
Main Python packages | Yes |
requirements-optional.txt |
pyclipr, a faster Gerber fusion |
No |
environment.yml |
Conda environment with the same packages | Only for conda |
Optional packages and the features they add:
| Package | Feature | Without the package |
|---|---|---|
ortools |
MetaHeuristic and Basic path optimization of drill and mill paths | The path optimization is not available. |
rasterio with GDAL |
Image import plugin | The Image import plugin is not loaded. |
vtracer |
Tracing mode of the Image import plugin | The tracing mode is not available. |
pikepdf |
Alternative PDF parser | The built-in PDF parser is used. |
pyclipr |
Faster fusion of Gerber geometry when a file opens | FlatCAM Evo uses the slower method. |
From the project folder, with the environment active:
python flatcam.pyWithout an activated environment, use the Python of the virtual environment directly: .venv\Scripts\python.exe flatcam.py on Windows, or .venv/bin/python flatcam.py on Linux and macOS.
You can open files on the command line:
python flatcam.py board.FlatPrj
python flatcam.py top.gbr drills.drlWhat happens on the first start:
- FlatCAM Evo creates its data folder. See FAQ and Troubleshooting.
- The main window opens with the Project and Properties tabs.
- The log file
log.txtis written in the data folder.
Screenshot placeholder:
images/Installation-2.png— the main window after the first start, with the empty Project tab.
- Check the Python version. FlatCAM Evo needs Python 3.10 or newer.
- Check that the packages are installed in the active environment.
- If the message OpenGL initialization failed appears, see FAQ and Troubleshooting.
| Option | Use |
|---|---|
FILE |
Open a project (.FlatPrj), a script (.FlatScript, .tcl), or a Gerber, Excellon or G-code file. |
--shellfile=SCRIPT |
Run a Tcl script after the start. |
--shellvar=VALUE1,VALUE2 |
Define the Tcl variables shellvar_0, shellvar_1, and so on. |
--command=COMMANDS |
Run Tcl commands separated by semicolons. Use quotes. |
--headless |
Run without a window. See Command Line and Headless. |
- Read Getting Started for the basic workflow.
- Follow Tutorial Single-Sided PCB for a first board.
- Read User Interface to learn the main window.
FlatCAM Evo Manual · Source code · Report a problem · MIT license
Start here
- Installation
- Getting Started
- Tutorial: Single-Sided PCB
- Tutorial: Double-Sided PCB
- User Interface
- Keyboard Shortcuts
- Glossary
- FAQ and Troubleshooting
Files and projects
Objects
Editors
PCB operations
- Isolation Routing
- Non-Copper Clearing
- Paint
- Cutout
- Drilling
- Milling
- Follow
- Double-Sided
- Solder Paste
- Film
- Panelize
- Copper Thieving
- Fiducials
- Markers
- Punch Gerber
- Invert Gerber
- Etch Compensation
- Extract
- Rules Check
- QR Code
Utility plugins
- Align Objects
- Calculators
- Distance · Object Distance
- Optimal
- Move · Transform
- Subtract
- Image Import · PDF Import
- PCB Wizard
- Report
- Tcl Shell
Machine control (in development)
Advanced
- Tools Database
- Preprocessors
- Path Optimization
- Tcl Scripting
- Tcl Command Reference
- Developer Guide
- Translating
Preferences