{"id":14961929,"url":"https://github.com/arduino/lab-micropython-installer","last_synced_at":"2025-09-09T04:40:33.271Z","repository":{"id":180741071,"uuid":"648241279","full_name":"arduino/lab-micropython-installer","owner":"arduino","description":"This repository hosts the entire code of the Arduino MicroPython Installer tool","archived":false,"fork":false,"pushed_at":"2024-08-12T15:28:28.000Z","size":56128,"stargazers_count":16,"open_issues_count":5,"forks_count":2,"subscribers_count":12,"default_branch":"main","last_synced_at":"2024-10-29T14:31:48.589Z","etag":null,"topics":["micropython"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arduino.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["arduino"],"custom":"https://www.arduino.cc/en/Main/Donate"}},"created_at":"2023-06-01T14:13:14.000Z","updated_at":"2024-08-18T12:37:05.000Z","dependencies_parsed_at":"2024-11-20T11:50:38.861Z","dependency_job_id":null,"html_url":"https://github.com/arduino/lab-micropython-installer","commit_stats":{"total_commits":370,"total_committers":3,"mean_commits":"123.33333333333333","dds":0.02972972972972976,"last_synced_commit":"c02f22f8ecb651afc909be1ccf3e0c7da33d54ba"},"previous_names":["arduino/lab-micropython-installer"],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/arduino/lab-micropython-installer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arduino%2Flab-micropython-installer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arduino%2Flab-micropython-installer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arduino%2Flab-micropython-installer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arduino%2Flab-micropython-installer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arduino","download_url":"https://codeload.github.com/arduino/lab-micropython-installer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arduino%2Flab-micropython-installer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274244220,"owners_count":25248157,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["micropython"],"created_at":"2024-09-24T13:28:14.056Z","updated_at":"2025-09-09T04:40:33.240Z","avatar_url":"https://github.com/arduino.png","language":"C","funding_links":["https://github.com/sponsors/arduino","https://www.arduino.cc/en/Main/Donate"],"categories":[],"sub_categories":[],"readme":"# 🐍 MicroPython Installer for Arduino\n\nMicroPython Installer for Arduino is a cross-platform tool that streamlines the process of downloading and installing MicroPython firmware on compatible Arduino boards. It is compatible with macOS, Linux, and Windows and is built using the Electron framework.\n\n## ✨ Features\n- Automatic download of MicroPython firmware.\n- Seamless installation process onto Arduino boards.\n- Cross-platform support (macOS, Linux, Windows).\n\n## 💻 System Requirements\nThere are no special system requirements for this tool beyond the prerequisites for running Electron applications.\n\n## 👀 Usage\nConnect your Arduino board to your computer.\nLaunch the application.\nFollow the on-screen prompts to download and install the MicroPython firmware.\n\n## ✅ Supported Boards\n- Arduino Portenta H7\n- Arduino Portenta C33\n- Arduino Nicla Vision\n- Arduino Giga\n- Arduino Nano RP2040\n- Arduino Nano ESP32\n- Arduino Nano 33 BLE\n\n## ⚙️ Installation\n\nYou can download the binary for your operating system from the [release page](https://github.com/arduino/lab-micropython-installer/releases).\n\n\u003e ⚠️ Windows users may have to first install the drivers for their board to be able to install MicroPython with this tool. The easiest way is to install the corresponding Arduino core via Arduino IDE or Arduino CLI. [Here](https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-board-manager) are detailed instructions on how to do this.\n\n## 🚑 Troubleshooting\n\n- If you get an error message such as \"No DFU capable device found\" make sure you install the drivers for the board first if you're on Windows. On Linux you may need to adjust the udev rules.\n- If in the log files you see that the tool is sending a REPL command to the board but doesn't get a response (hangs), please double check if you have either a tool on your computer running that occupies the serial port. It's also possible that your board is running a MicroPython script that occupies the serial port (check boot.py and main.py).\n\n## 🐛 Reporting Issues\nIf you encounter any issue, please open a bug report [here](https://github.com/arduino/lab-micropython-installer/issues). Please also add all generated log output to your issue. To get that, you need to launch the tool from the command line:\n- macOS: `\"/Applications/MicroPython Installer.app/Contents/MacOS/micropython-installer\"`\n- Windows: `micropython-installer.exe | echo`\n- Linux: `micropython-installer`\n\nYou may need to adjust the path depending on where the tool is installed on your system.\n\n## 🧑‍💻 Developer Installation\n\n```bash\n# Clone this repository\ngit clone https://github.com/arduino/lab-micropython-installer.git\n\n# Go into the repository\ncd micropython-installer-arduino\n\n# Install dependencies\nnpm install\n\n# Run the app\nnpm run start\n```\n\n## 📦 Packaging\n\nThe packaging is done via Electron Forge. The configuration can be found in [forge.config.js](./forge.config.js). To package the app, run:\n\n```bash\nnpm run make # Creates a ready-to-run application\n# or\nnpm run package # Creates a distributable file bundle\n```\n\n## 📣 Publishing\n\nThe CI takes care of making new releases. All that needs to be done is to bump the version with `npm version patch`, `npm version minor` or `npm version major` and push the tags with `git push --follow-tags`. \nWhen the CI is done the release will be in draft state so you can add release notes and publish it.\n\nTo do a development release, you can run e.g. `npm version preminor --preid=beta` to create a new minor version of the tool that contains the given suffix (e.g. v1.1.9-beta). For each successor development version you can run `npm version prerelease` which bumps the \"beta\" version to the next number (e.g. v1.1.0-beta.2).\n\nTo manually publish a new version (if you really need to), run:\n\n```bash\nnpm run publish\n```\n\n## 🫶 Adding Support for Other Boards\nTo add support for additional boards a few changes / additions may be required:\n- Add a descriptor for the device to [descriptors.js](./firmware-flash/logic/descriptors.js). The descriptor contains the VID and PID of the board plus some instructions on how to flash a firmware.\n- If the board requires a flashing tool other than the ones already supported, it needs to be added to [firmware-flash/bin](./firmware-flash/bin/) and the corresponding Node.js binding needs to be added to [commandRunner.js](./firmware-flash/logic/commandRunner.js)\n- An SVG asset of the board needs to be added to [assets/boards](./assets/boards/). The filename will be derived from the board manufacturer and product name in the descriptor.\n\n### 🙅 Limitations\n\nThis tool relies on the fact that all of the supported boards use a different MCU and hence expose different VID / PID pairs. Should at any point two or more boards share the same MCU it may not be possible to distinguish them when in ROM bootloader mode. For these boards the installation from bootloader needs to be disabled or a manual board selection by the user will have to be added.\n\n## 💪 Contributing\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n\n## 🤙 Contact\nFor questions, comments, or feedback about this tool, please create an issue on this repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farduino%2Flab-micropython-installer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farduino%2Flab-micropython-installer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farduino%2Flab-micropython-installer/lists"}