Spagett1 / pineflash

A tool to flash ironos to the pinecil soldering iron and possibly other pine64 devices in the future
Other
235 stars 13 forks source link
pine64 rust soldering

GitHub all downloads GitHub release (latest by date)

PineFlash

A GUI tool to flash IronOS to the Pinecil V1, V2 and future other pine products.

If you need help, or want to help out with development, I have a discord server and a bridged matrix space.

Features


Supported Devices

System Linux MacOS Windows
Pinecil V1 *
Pinecil V2 *

:desktop_computer: Install Options

  1. Easy install: use premade binaries, currently only available for Linux x86 distros and Windows x86.

  2. Build from Code: recommended if you are on MacOS, an ARM device, or doing development.

## :clamp: Premade Binaries ## Windows Download the latest pineflash exe file from the [releases page](https://github.com/Spagett1/PineFlash/releases). Then just double click it. ### RedHat distros (Fedora, Centos, Nobara, Rocky, etc.) Download the latest pineflash .rpm file from the [releases page](https://github.com/Spagett1/PineFlash/releases). Then just run. ``` sudo dnf install ./pineflash-*.x86_64.rpm ``` ### Arch based distros (Arch, Artix, Manjaro, Endeavor, etc.) Download the latest pineflash pkg.tar.zst file from the [releases page](https://github.com/Spagett1/PineFlash/releases). Then simply run. ``` sudo pacman -U pineflash-*-x86_64.pkg.tar.zst ``` ### Debian based distros (Debian, Ubuntu, PopOs, etc.) Download the latest pineflash .deb file from the [releases page](https://github.com/Spagett1/PineFlash/releases). Then just run. ``` sudo apt install ./pineflash_*_amd64.deb ``` ### Other Linux x86 distro's Download the latest pineflash .tar.xz file from the [releases page](https://github.com/Spagett1/PineFlash/releases). Extract the file. ``` tar -xf ./pineflash-*-x86_64.tar.xz ``` And copy the contents into your system ``` doas cp -r ./usr / ``` > **_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. ### MacOs Sorry we dont have built apps for you yet, head to the build from source section and use the unix install script. > **_NOTE:_** You will also need to run pineflash from the terminal, this is on the todo list to get fixed.
 
## :building_construction: Build from code Use this build method if the premade binaries do not support your architecture or you have dev purposes. ### :bookmark_tabs: Build Dependancies Install these if you don't have them (not needed if using the PKGBUILD).
General dependancy list This list covers linux distros which are not named below and macos. If your operating system has its own section, then please go there; it has package names tailored to your distro. If 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. ``` cmake rust git dfu-util - for pinecil V1 support blisp - for pinecil V2 support polkit - Linux only gcc ```
 
Dependencies for Debian ``` cmake rust-all (alternatively go to https://rustup.rs/) git dfu-util - for pinecil V1 support 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 ``` This line will install everything: ``` sudo 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 ```
 
Dependencies for Arch #### Runtime dependancies ``` dfu-util - for pinecil V1 support blisp - for pinecil V2 support, find this in the AUR fontconfig glibc gtk3 polkit ``` #### Build dependancies ``` base-devel cargo-ndk # To verify some integrity checksums of rust modules git optipng pkgconf rust ``` This line will install everything except blisp since it's in the aur. ``` sudo pacman -S --needed cmake rust git dfu-util polkit gcc pkgconf glibc base-devel fontconfig gtk3 ```
 
### :toolbox: Build option 1, handy scripts Handy scripts will compile and install PineFlash for you. ### Build Unix from script. (Macos and Linux) 1. To build from source code, first install build dependencies. 2. Download the source code with the following commands. ``` git clone https://github.com/Spagett1/PineFlash/ cd PineFlash ``` 3. Run the `generic_unix_install.sh` file which will build and install Pineflash. ### Build on Arch based distro's (Arch, Artix, Manjaro, Endeavor, Arch Arm, etc.) 1. All dependencies will be handled by the PKGBUILD 2. PineFlash is in the aur so you can install it just like any other aur package. ``` git clone https://aur.archlinux.org/pineflash-git.git cd pineflash-git makepkg -si ``` 3. Alternatively just use your favourite aur helper.
 
### :weight_lifting_man: Build option 2: manual build Old school style, this is recommended if you have issues with the scripts or want to help develop PineFlash. 1. Install all the build dependancies listed above. 2. Download the source code. ``` git clone https://github.com/Spagett1/PineFlash/ cd PineFlash ``` 4. 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") In the following instructions replace `platform` with your operating system (`linux` or `macos`) ``` curl -L "https://github.com/pine64/blisp/releases/download/v0.0.3/blisp-platform64-v0.0.3.zip" -o "blisp-platform64-v0.0.3.zip" unzip "blisp-platform-v0.0.3.zip" sudo mv ./blisp /usr/local/bin/blisp ``` :dart: Important: Don't forget to add blisp to your path 5. Then build pineflash itself ``` cargo build --release ``` 6. 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. 7. 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.) 8. Just run the program by typing it into the terminal. ``` pineflash ``` Alternatively just run it from your app launcher (unless your on macos).
 
 

:runner: Run

Linux: Pineflash should appear in app launcher options. Alternatively, you can run the command:

pineflash

MacOS: Sorry, no launcher icon yet, you'll need to run this command to run pineflash.

pineflash

Windows: Just run pineflash from the start menu.

If there is error message like

Cannot open DFU device ... (LIBUSB_ERROR_NOT_SUPPORTED)

during flash operation, then WinUSB drivers should be installed. See here for more details.

Boot Logo Art


## :electric_plug: Connect Pinecil to a PC 1. To do the firmware update, connect one end of a USB cable to the PC. 2. Then, hold down the `[-]` button **before** plugging the usb-c cable to the back of Pinecil. 3. 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. 4. See [Pinecil Wiki](https://wiki.pine64.org/wiki/Pinecil_Firmware) firmware details if you get stuck.
 

:spiral_calendar: Todo

:tea: Feel like supporting me?

Well you can buy me a coffee, or rather tea bags since i dont drink coffee ;)

Buy Me A Coffee

:book: References

Source