--- id: flasher title: Using Meshtastic Python Flasher sidebar_label: Python Flasher slug: /software/python/flasher sidebar_position: 5 --- import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import Link from "@docusaurus/Link"; :::caution This method is no longer supported. Please use a [supported method](/docs/getting-started/flashing-firmware). ::: *** :::caution Make sure not to power the radio on without first attaching the antenna! You could damage the radio chip! ::: ## Overview Meshtastic Flasher (aka m-flasher) is a graphical user interface for flashing [supported devices](/docs/hardware) with Meshtastic. The following operating systems are currently supported: Windows, Mac, and Ubuntu. ## Prerequisites ### Verify that Python3 is installed <Tabs groupId="operating-system" defaultValue="linux" values={[ {label: 'Linux', value: 'linux'}, {label: 'macOS', value: 'macos'}, {label: 'Windows', value: 'windows'}, ]}> <TabItem value="linux"> ```shell title="Check python3 version" python3 --version # If version is less than v3.6, please update python3 ``` </TabItem> <TabItem value="macos"> ```shell title="Check python3 version" python3 --version # If version is less than v3.6, please update python3 ``` </TabItem> <TabItem value="windows"> ```shell title="Check python3 version" python3 --version # If version is less than v3.9+, please update python3 ``` </TabItem> </Tabs> ### Install or Update Python3 <Tabs groupId="operating-system" defaultValue="linux" values={[ {label: 'Linux', value: 'linux'}, {label: 'macOS', value: 'macos'}, {label: 'Windows', value: 'windows'}, ]}> <TabItem value="linux"> ```shell title="Install python3, pip, and venv" sudo apt update sudo apt upgrade sudo apt install -y python3 python3-pip python3-venv ``` </TabItem> <TabItem value="macos"> - [Download directly from python.org](https://www.python.org/downloads/macos/) - [Homebrew](https://brew.sh/): `brew install python@3.9` - [MacPorts](https://www.macports.org/) </TabItem> <TabItem value="windows"> - [Download directly from python.org](https://www.python.org/downloads/windows/) </TabItem> </Tabs> ### Install or Upgrade App For **Windows**, the [installer](https://github.com/meshtastic/Meshtastic-gui-installer/releases/download/winapp1.0.3/meshtastic-flasher.zip) will manage installing python and flasher updates automatically. For **macOS** and **Linux**, it is recommended that you install using `pip`. Note: Update an existing installation using `pip install meshtastic-flasher -U` <Tabs groupId="operating-system" defaultValue="linux" values={[ {label: 'Linux', value: 'linux'}, {label: 'macOS', value: 'macos'}, {label: 'Windows', value: 'windows'}, ]}> <TabItem value="linux"> ```shell title="Install Meshtastic Flasher" python3 --version # ensure you are using at least python v3.6 # change to a directory where you want to create a python virtual environment mkdir some_dir cd some_dir # if the following command fails, it might tell you what package to install python3 -m venv venv # activate the python virtual environment source venv/bin/activate # your prompt should change - it should include "(venv) in the front # upgrade pip pip install --upgrade pip pip install meshtastic-flasher ``` ```shell title="Running Meshtastic Flasher" meshtastic-flasher ``` </TabItem> <TabItem value="macos"> ```shell title="Install Meshtastic Flasher" python3 --version # ensure you are using at least python v3.6 # change to a directory where you want to create a python virtual environment mkdir some_dir cd some_dir python3 -m venv venv # activate the python virtual environment source venv/bin/activate # your prompt should change - it should include "(venv) in the front # upgrade pip pip install --upgrade pip pip install meshtastic-flasher ``` ```shell title="Running Meshtastic Flasher" meshtastic-flasher ``` </TabItem> <TabItem value="windows"> ```shell title="Install Meshtastic Flasher" # open a command prompt # create a new directory for the python virtual environment cd c:\ mkdir some_dir cd some_dir # check that python version is sufficient, must be at least v3.9+ python -m venv venv # activate the python virtual environment venv\Scripts\activate # your prompt should change - it should have (venv) at the beginning pip install meshtastic-flasher ``` ```shell title="Running Meshtastic Flasher" meshtastic-flasher ``` </TabItem> </Tabs> ## Flashing the Device The Meshtastic Flasher will flash the latest firmware on esp32 and nrf52 devices. This is a newly developed application (as of February 1, 2022), so there may be some issues discovered as it is tested by users. There are three steps: 1. Click the **GET VERSIONS** button to get the versions available (from GitHub). 2. Click the **DETECT DEVICE** button to determine the port and device variant connected. 3. Click the **FLASH** button to flash the version selected using the port selected to the device. ## Issues? If you run into an issue, please create a ticket here: [Flasher Issues](https://github.com/meshtastic/Meshtastic-gui-installer/issues) The code can be found at the [Meshtastic-gui-installer repo](https://github.com/meshtastic/Meshtastic-gui-installer) ## Known limitations The following are known limitations: - Raspberry Pi is not available, since it is arm-based and there are no pre-built libraries for [PySide](https://wiki.qt.io/Qt_for_Python) - Ubuntu 20.04 is the version used for testing, it may work with other versions. - See [README](https://github.com/meshtastic/Meshtastic-gui-installer/blob/master/README.md) for more details. ## Connect and Configure Device After flashing the Meshtastic firmware to the device, you can proceed with the initial configuration. <div className="indexCtasBody"> <Link className={"button button--outline button--lg cta--button"} to={"/docs/getting-started/initial-config"} > Connect and Configure Device </Link> </div>