{"id":13594684,"url":"https://github.com/Spagett1/pineflash","last_synced_at":"2025-04-09T07:33:52.498Z","repository":{"id":64200488,"uuid":"538506551","full_name":"Spagett1/pineflash","owner":"Spagett1","description":"A tool to flash ironos to the pinecil soldering iron and possibly other pine64 devices in the future ","archived":false,"fork":false,"pushed_at":"2024-03-31T16:04:23.000Z","size":69513,"stargazers_count":171,"open_issues_count":13,"forks_count":11,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-03-31T17:21:55.285Z","etag":null,"topics":["pine64","rust","soldering"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Spagett1.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}},"created_at":"2022-09-19T13:06:05.000Z","updated_at":"2024-03-31T17:21:58.732Z","dependencies_parsed_at":"2023-01-15T04:01:34.241Z","dependency_job_id":"8877c9ae-6045-4e47-b4a2-239e23828c1a","html_url":"https://github.com/Spagett1/pineflash","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spagett1%2Fpineflash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spagett1%2Fpineflash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spagett1%2Fpineflash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spagett1%2Fpineflash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Spagett1","download_url":"https://codeload.github.com/Spagett1/pineflash/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247997885,"owners_count":21030696,"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","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":["pine64","rust","soldering"],"created_at":"2024-08-01T16:01:37.547Z","updated_at":"2025-04-09T07:33:48.033Z","avatar_url":"https://github.com/Spagett1.png","language":"Rust","funding_links":["https://www.buymeacoffee.com/spagett"],"categories":["Rust"],"sub_categories":[],"readme":"\n\u003ca href=\"https://github.com/Spagett1/PineFlash#pineflash\"\u003e\u003cimg src=\"https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FSpagett1%2FPineFlash\u0026count_bg=%23187BC0\u0026title_bg=%23555555\u0026icon=\u0026icon_color=%23E7E7E7\u0026title=hits\u0026edge_flat=true\"/\u003e\u003c/a\u003e\n[![GitHub all downloads](https://img.shields.io/github/downloads/spagett1/pineflash/total?color=187BC0\u0026style=flat-square)](https://github.com/Spagett1/PineFlash/releases/)\n[![GitHub release (latest by date)](https://img.shields.io/github/v/release/spagett1/pineflash?color=187BC0\u0026style=flat-square)](https://github.com/Spagett1/PineFlash/releases/)\n\n\n# PineFlash\n\n\u003cimg src=\"https://user-images.githubusercontent.com/77225642/234575696-e6ea62ae-7189-4a9b-bcfb-7f0c36271ace.png\" align=\"right\" width=\"425\" style=\"float:left\"\u003e\n\nA GUI tool to flash IronOS to the Pinecil V1, V2 and future other pine products.  \n\nIf you need help, or want to help out with development, I have a [discord server](https://discord.gg/NHrXJRan7D) and a bridged [matrix space](https://matrix.to/#/#spagett's_cookhouse_of_spaghetti_code.:matrix.org).\n\n## Features\n* Auto-fetch the newest stable release of IronOS firmware.\n* Allows manual installs of beta versions using a browse to file feature.\n* Selectable options: pick the iron type, pick the firmware version and download it.\n* Boot logo art upload supported for V1 and V2 (use custom \u0026 folder icon)\n\n\u003cbr clear=\"both\" /\u003e\n\n## Supported Devices \n | System  |\u003cimg width=\"17\" src=\"https://cdn.simpleicons.org/Linux/187BC0\" /\u003e Linux  | \u003cimg width=\"15\" src=\"https://cdn.simpleicons.org/Apple/187BC0\" /\u003e MacOS|  \u003cimg width=\"15\" src=\"https://cdn.simpleicons.org/Windows11/187BC0\" /\u003e Windows|\n | :-----: | :-----: | :-----: | :-----: |\n | Pinecil V1 |\u003cimg width=\"18\" src=\"https://cdn.simpleicons.org/cachet/187BC0\" /\u003e|\u003cimg width=\"18\" src=\"https://cdn.simpleicons.org/cachet/187BC0\" /\u003e*| \u003cimg width=\"18\" src=\"https://cdn.simpleicons.org/cachet/187BC0\" /\u003e  |\n | Pinecil V2 | \u003cimg width=\"18\" src=\"https://cdn.simpleicons.org/cachet/187BC0\" /\u003e   | \u003cimg width=\"18\" src=\"https://cdn.simpleicons.org/cachet/187BC0\" /\u003e*  |  \u003cimg width=\"18\" src=\"https://cdn.simpleicons.org/cachet/187BC0\" /\u003e  |\n* Pineflash on MacOS must be compiled from source.\n\n# :desktop_computer: Install Options\n\n\n1. Easy install: use premade binaries, currently only available for Linux x86 distros and Windows x86.\n\n2. Build from Code: recommended if you are on MacOS, an ARM device, or doing development.\n\n\u003cdetails\u003e\n  \u003csummary\u003e\n   \n## :clamp: Premade Binaries \n \u003c/summary\u003e\n\n## \u003cimg width=\"18\" src=\"https://cdn.simpleicons.org/Windows11/187BC0\" /\u003e Windows\nDownload the latest pineflash exe file from the [releases page](https://github.com/Spagett1/PineFlash/releases).\n\nThen just double click it.\n\n### \u003cimg width=\"18\" src=\"https://cdn.simpleicons.org/RedHat/\" /\u003e RedHat distros (Fedora, Centos, Nobara, Rocky, etc.)\nDownload the latest pineflash .rpm file from the [releases page](https://github.com/Spagett1/PineFlash/releases).\n\n Then just run.\n ```\n sudo dnf install ./pineflash-*.x86_64.rpm\n ```\n \n### \u003cimg width=\"18\" src=\"https://cdn.simpleicons.org/ArchLinux/187BC0\" /\u003e Arch based distros (Arch, Artix, Manjaro, Endeavor, etc.)\n\nDownload the latest pineflash pkg.tar.zst file from the [releases page](https://github.com/Spagett1/PineFlash/releases).\n\nThen simply run.\n```\nsudo pacman -U pineflash-*-x86_64.pkg.tar.zst\n```\n\n### \u003cimg width=\"18\" src=\"https://cdn.simpleicons.org/Debian\" /\u003e Debian based distros (Debian, Ubuntu, PopOs, etc.)\nDownload the latest pineflash .deb file from the [releases page](https://github.com/Spagett1/PineFlash/releases).\n\nThen just run.\n```\nsudo apt install ./pineflash_*_amd64.deb\n```\n\n### \u003cimg width=\"18\" src=\"https://cdn.simpleicons.org/Linux/CC5500\" /\u003e Other Linux x86 distro's\nDownload the latest pineflash .tar.xz file from the [releases page](https://github.com/Spagett1/PineFlash/releases).\n\nExtract the file.\n```\ntar -xf ./pineflash-*-x86_64.tar.xz\n```\n\nAnd copy the contents into your system \n```\ndoas cp -r ./usr /\n```\n\u003e **_NOTE:_**  Make sure you install dfu-util manually and that it is at least version 0.11 as older versions can have issues. Window manager users should ensure they have a pokit agent installed and enabled.\n\n### \u003cimg width=\"18\" src=\"https://cdn.simpleicons.org/Apple/818589\" /\u003e MacOs\nSorry we dont have built apps for you yet, head to the build from source section and use the unix install script. \n\n\u003e **_NOTE:_** You will also need to run pineflash from the terminal, this is on the todo list to get fixed.\n\n\u003c/details\u003e\n\u003cdiv style=\"clear:both;\"\u003e\u0026nbsp;\u003c/div\u003e\n\n \n\u003cdetails\u003e\n  \u003csummary\u003e\n   \n## :building_construction: Build from code \n \u003c/summary\u003e\n\n\nUse this build method if the premade binaries do not support your architecture or you have dev purposes.\n\n### :bookmark_tabs: Build Dependancies\n\nInstall these if you don't have them (not needed if using the PKGBUILD).\n\n\n\u003cdetails\u003e\n  \u003csummary\u003e\n\u003cimg width=\"17\" src=\"https://cdn.simpleicons.org/windowsterminal/F46D01\" /\u003e General dependancy list\n\u003c/summary\u003e\n\nThis list covers linux distros which are not named below and macos.\n\nIf your operating system has its own section, then please go there; it has package names tailored to your distro.\n\nIf you had to install more dependencies to get it to work, please open an issue to let us know the specific OS and packages you used.\n\n```\ncmake\nrust \ngit\ndfu-util - for pinecil V1 support\nblisp - for pinecil V2 support\npolkit - Linux only\ngcc         \n```\n\u003c/details\u003e\n\u003cdiv style=\"clear:both;\"\u003e\u0026nbsp;\u003c/div\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\n\u003cimg width=\"17\" src=\"https://cdn.simpleicons.org/debian/A81D33\" /\u003e Dependencies for Debian\n\u003c/summary\u003e\n\n```\ncmake\nrust-all (alternatively go to https://rustup.rs/)\ngit\ndfu-util - for pinecil V1 support\npolicykit-1\ng++\npkg-config \nlibglib2.0-dev\nbuild-essential    \nlibfontconfig-dev \nfontconfig-config  \nlibgdk3.0-cli-dev\nlibatk1.0-0   \nlibatk1.0-dev       \nlibgtk-3-dev             \n```\nThis line will install everything:\n```\nsudo apt install cmake rust-all git dfu-util policykit-1 g++ pkg-config libglib2.0-dev build-essential libfontconfig-dev fontconfig-config libgdk3.0-cli-dev libatk1.0-0 libatk1.0-dev libgtk-3-dev             \n```\n\n\u003c/details\u003e\n\u003cdiv style=\"clear:both;\"\u003e\u0026nbsp;\u003c/div\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\n\u003cimg width=\"17\" src=\"https://cdn.simpleicons.org/archlinux/187BC0\" /\u003e Dependencies for Arch\n \u003c/summary\u003e\n\n#### Runtime dependancies\n```\ndfu-util - for pinecil V1 support \nblisp - for pinecil V2 support, find this in the AUR\nfontconfig\nglibc\ngtk3\npolkit\n```\n#### Build dependancies\n```\nbase-devel\ncargo-ndk # To verify some integrity checksums of rust modules\ngit\noptipng\npkgconf\nrust\n```\nThis line will install everything except blisp since it's in the aur.\n```\nsudo pacman -S --needed cmake rust git dfu-util polkit gcc pkgconf glibc base-devel fontconfig gtk3\n```\n\n\u003c/details\u003e\n\u003cdiv style=\"clear:both;\"\u003e\u0026nbsp;\u003c/div\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\n  \n### :toolbox: Build option 1, handy scripts\n\n \u003c/summary\u003e\n \nHandy scripts will compile and install PineFlash for you.\n\n### \u003cimg width=\"17\" src=\"https://cdn.simpleicons.org/Linux/187BC0\" /\u003e Build Unix from script. (Macos and Linux)\n1. To build from source code, first install build dependencies.\n2. Download the source code with the following commands.\n```\ngit clone https://github.com/Spagett1/PineFlash/\ncd PineFlash\n```\n3. Run the `generic_unix_install.sh` file which will build and install Pineflash.\n\n### \u003cimg width=\"17\" src=\"https://cdn.simpleicons.org/archlinux/187BC0\" /\u003e  Build on Arch based distro's (Arch, Artix, Manjaro, Endeavor, Arch Arm, etc.) \n1. All dependencies will be handled by the PKGBUILD\n2. PineFlash is in the aur so you can install it just like any other aur package.\n```\ngit clone https://aur.archlinux.org/pineflash-git.git\ncd pineflash-git\nmakepkg -si\n```\n3. Alternatively just use your favourite aur helper.\n\u003c/details\u003e\n\u003cdiv style=\"clear:both;\"\u003e\u0026nbsp;\u003c/div\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\n   \n### :weight_lifting_man: Build option 2: manual build\n \u003c/summary\u003e\n\nOld school style, this is recommended if you have issues with the scripts or want to help develop PineFlash.\n \n1. Install all the build dependancies listed above.\n\n2. Download the source code.\n\n```\ngit clone https://github.com/Spagett1/PineFlash/\ncd PineFlash \n```\n\n4. Download blisp which is needed for pinecil V2 support, alternatively compile it if you are not on a 64 bit computer. [Instructions](\"https://github.com/pine64/blisp\")\n\nIn the following instructions replace `platform` with your operating system (`linux` or `macos`)\n```\ncurl -L \"https://github.com/pine64/blisp/releases/download/v0.0.3/blisp-platform64-v0.0.3.zip\" -o \"blisp-platform64-v0.0.3.zip\"\nunzip \"blisp-platform-v0.0.3.zip\"\nsudo mv ./blisp /usr/local/bin/blisp\n```\n:dart: Important: Don't forget to add blisp to your path \n\n5. Then build pineflash itself\n```\ncargo build --release\n```\n6. The resulting binary will be in `target/release/pineflash`, this can be moved into your path (`/usr/bin/pineflash`) or just run as a portable executable.\n\n7. Then copy the `assets/Pineflash.desktop` file to `/usr/share/applications` and copy `assets/pine64logo.png` to `/usr/share/pixmaps` for the shortcut to show up in launchers. (This does not apply to MacOs, you will have to run pineflash from the terminal for now, sorry.)\n\n8. Just run the program by typing it into the terminal.\n```\npineflash\n```\nAlternatively just run it from your app launcher (unless your on macos).\n\n\u003c/details\u003e\n\u003cdiv style=\"clear:both;\"\u003e\u0026nbsp;\u003c/div\u003e\n \n \n\u003c/details\u003e\n\u003cdiv style=\"clear:both;\"\u003e\u0026nbsp;\u003c/div\u003e\n\n## :runner: Run \n\n\u003cimg width=\"17\" src=\"https://cdn.simpleicons.org/Linux/CC5500\" /\u003e Linux: Pineflash should appear in app launcher options. Alternatively, you can run the command:  \n\n    pineflash\n\n\u003cimg width=\"17\" src=\"https://cdn.simpleicons.org/Apple/818589\" /\u003e MacOS: Sorry, no launcher icon yet, you'll need to run this command to run pineflash.\n\n    pineflash\n\n\u003cimg width=\"17\" src=\"https://cdn.simpleicons.org/Windows/187BC0\" /\u003e Windows: Just run pineflash from the start menu.  \n\nIf there is error message like  \n```\nCannot open DFU device ... (LIBUSB_ERROR_NOT_SUPPORTED)\n```\n\nduring flash operation, then `WinUSB` drivers should be installed. See [here](https://github.com/libusb/libusb/wiki/Windows#user-content-How_to_use_libusb_on_Windows) for more details.\n\n\n## Boot Logo Art\n\n- Select your Pinecil version.\n- Click on the folder icon to browse to the art file you want to load.\n- For the v2 you must have IronOs v2.22 installed to support boot logo.\n- If you encounter errors with flashing boot logo's to the v2 ensure your blisp version is at minimum 0.0.4.\n- See [IronOS-Meta](https://github.com/Ralim/IronOS-Meta/) to get premade art or details on how to make custom art.\n\n\u003cbr\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\n \n ## :electric_plug: Connect Pinecil to a PC\n \u003c/summary\u003e\n\n1. To do the firmware update, connect one end of a USB cable to the PC.\n2. Then, hold down the `[-]` button **before** plugging the usb-c cable to the back of Pinecil.\n3. Keep holding the `[-]` for ~10 seconds more before releasing the button. If you correctly entered flashing mode, the screen will be black/empty. If not, do it again, flip the cable, or try another cable, different port, or a different PC.\n4. See [Pinecil Wiki](https://wiki.pine64.org/wiki/Pinecil_Firmware) firmware details if you get stuck.\n\u003c/details\u003e\n\u003cdiv style=\"clear:both;\"\u003e\u0026nbsp;\u003c/div\u003e\n\n## :spiral_calendar: Todo\n\n- [x] Windows support.\n- [ ] MacOS premade binary\n- [ ] Launcher icon for macos, easier method to install\n- [x] Improve UI (colors, design, workflow).\n- [ ] Improve Light Mode.\n- [x] In app instructions for connecting pinecil to pc.\n- [ ] Flatpak and/or Appimage support for linux.\n- [ ] V2 boot logo art support when blisp supports it.\n\n## :tea: Feel like supporting me?\n\nWell you can buy me a coffee, or rather tea bags since i dont drink coffee ;)\n\n\u003ca href=\"https://www.buymeacoffee.com/spagett\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/default-orange.png\" alt=\"Buy Me A Coffee\" height=\"41\" width=\"174\"\u003e\u003c/a\u003e\n\n## :book: References\n\n- [Blisp](https://github.com/pine64/blisp) - Backend for flashing Pinecil V2\n- [Dfu-util](https://dfu-util.sourceforge.net/) - Backend for flashing Pinecil V1\n- [Pinecil](https://wiki.pine64.org/wiki/Pinecil) - The Pinecil Wiki page\n- [IronOS](https://github.com/Ralim/IronOS) - The firmware running on this soldering iron\n- [PineSAM](https://github.com/builder555/PineSAM) - A cool Bluetooth app to control Pinecil V2 from any browser\n- [Egui](https://github.com/emilk/egui) - The awesome GUI toolkit used to make this program\n- [InnoSetup](https://github.com/jrsoftware/issrc) - The software i use to generate windows releases\n- [FPM](https://github.com/jordansissel/fpm) - The tool i use to generate linux releases for all sorts of distros\n \n ## :dash: Stay fluxy my friends.\n \u003cimg src=\"https://user-images.githubusercontent.com/77225642/229288128-e6993505-47a2-4437-92cf-7b2a5de10677.png\" width=\"425\"\u003e\n \n[Source](https://www.reddit.com/r/PINE64official/comments/xk9vxu/most_interesting_man_in_the_world_i_dont_always/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSpagett1%2Fpineflash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSpagett1%2Fpineflash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSpagett1%2Fpineflash/lists"}