Difference between revisions of "Pinecil Firmware"
(Added encountered problem with connecting for the first time while flashing on macOS) |
|||
(108 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
This article is about updating/flashing the [[Pinecil]] firmware. | This article is about updating/flashing the [[Pinecil]] firmware. | ||
== | == Overview == | ||
{{Hint|Pinecil is designed to use '''only 1 power port''' at any time. Only the USB-C cable should be plugged in during firmware updates. Never attempt to use both rear ports at the same time or the PC and Pinecil will be damaged.}} | {{Hint|Pinecil is designed to use '''only 1 power port''' at any time. Only the USB-C cable should be plugged in during firmware updates. Never attempt to use both rear ports at the same time or the PC and Pinecil will be damaged.}} | ||
[[File:Pinecil-V1andV2.png|400px|thumb|right]] | |||
The firmware that comes with the Pinecil is [https://ralim.github.io/IronOS/ open source Ralim's IronOS]. It's a good idea to check for updates regularly as development is very active and there may be enhancements or bug fixes. | The firmware that comes with the Pinecil is [https://ralim.github.io/IronOS/ open source Ralim's IronOS]. It's a good idea to check for updates regularly as development is very active and there may be enhancements or bug fixes. | ||
* Long hold down <code>'''[-]'''</code> to see the version | Depending on whether you have a Pinecil V1 or V2, they are updated using different flashers since they have completely different MCU chip (brains). The V1 is any Pinecil sold up to July 2022 (has a blue thumb grip). The V2 is any Pinecil sold after Aug 1, 2022 (has a green thumb grip). If you don't have the two models mentioned, then you might not have an [[Pinecil#Authenticity|authentic Pinecil]]. This article is designed and tested on authentic Pinecils only. | ||
* It is very hard to brick a Pinecil doing a firmware update because of the firmware is in | * Go to the appropriate section below depending on if you have a V1 or V2 model. | ||
* Long hold down <code>'''[-]'''</code> to see the current firmware version installed. | |||
* It is very hard to brick a Pinecil doing a firmware update because of the firmware is in ROM. Usually, just re-flashing it fixes it. Even if the other firmware caused the screen to go black, one could connect, put the Pinecil into flash mode, and flash again to an older or newer version of firmware or a beta version. | |||
* Pinecil V1 only uses *.hex files for both firmware and boot logo art. | * Pinecil V1 only uses *.hex files for both firmware and boot logo art. | ||
* Pinecil V2 uses only *.bin files for firmware. | * Pinecil V2 uses only *.bin files for firmware. | ||
{{Info| Loading boot logo art onto the V2 (BL706 MCU chip) is not yet possible. Volunteers are looking into this on both GitHub Blisp and GitHub IronOS. If you would like to see the progress or help with the code see [https://github.com/Ralim/IronOS/issues/1373#issuecomment-1414925011 Boot Logo Art ticket]}} | {{Info|Loading boot logo art onto the V2 (BL706 MCU chip) is not yet possible. Volunteers are looking into this on both GitHub Blisp and GitHub IronOS. If you would like to see the progress or help with the code see [https://github.com/Ralim/IronOS/issues/1373#issuecomment-1414925011 Boot Logo Art ticket]}} | ||
== Flash Mode == | |||
{{Note|Do not use the DC barrel jack while updating firmware or you may destroy your PC and Pinecil.}} | {{Note|Do not use the DC barrel jack while updating firmware or you may destroy your PC and Pinecil.}} | ||
Both V1 and V2 connect to the PC/laptop and enter the Flash mode the same way for updating purposes: | Both V1 and V2 connect to the PC/laptop and enter the Flash mode the same way for updating purposes: | ||
# Plug one end of the USB cable to the PC/laptop. | |||
# Long hold the <code>'''[-]'''</code> button ''before plugging'' the USB-C cable into the back of the Pinecil. Keep holding down the <code>'''[-]'''</code> for ~10-15 seconds after plugging in the cable, then release the button. | # Long hold the <code>'''[-]'''</code> button ''before plugging'' the USB-C cable into the back of the Pinecil. Keep holding down the <code>'''[-]'''</code> for ~10-15 seconds after plugging in the cable, then release the button. | ||
# Screen should be black/empty which means Pinecil is in Flashing Mode. If you have issues, try again, do not plug the USB-C cable into Pinecil until you first press & hold the <code>'''[-]'''</code> button. Flip the cable over or try another port/cable/PC if you still have issues. | # Screen should be black/empty which means Pinecil is in Flashing Mode. If you have issues, try again, do not plug the USB-C cable into Pinecil until you first press & hold the <code>'''[-]'''</code> button. Flip the cable over or try another port/cable/PC if you still have issues. | ||
# Unlike irons from other brands, Pinecil will not show in the PC as a USB data drive. | # Unlike irons from other brands, Pinecil will '''not''' show in the PC as a USB data drive. On Windows, you will hear a single beep when connected in flash mode. | ||
# Then use one of the flasher methods below based on the OS you have in order to flash new firmware | # Then use one of the flasher methods below based on the OS you have in order to flash new firmware ([[#Update_V1|older V1 instructions are lower down here]]). | ||
== Update V2: Windows == | |||
{{Note|Do not use the DC barrel jack while updating firmware or you may destroy your PC and Pinecil.}} | |||
'''Option 1: PineFlash''' GUI updater it's an all-in one app that downloads firmware and flashes. | |||
# Download the easy premade binary installer [https://github.com/Spagett1/PineFlash for Windows here]. | |||
# If PineFlash doesn't work, then try [https://github.com/pine64/blisp blisp terminal app]. | |||
= | '''Option 2: Blisp''', the rest of the instructions below are for [https://github.com/pine64/blisp Blisp]. | ||
# It is a CLI (command line interface or terminal) and needs a tool like Powershell 7 which is already installed on most Windows PCs. For using BLISP only a couple basic terminal commands are needed such as <code>cd</code> to change directories (folders). | |||
# If you prefer to use "command" terminal over Powershell, see instructions for Command in [[Pinecil_Firmware#Troubleshoot_V2_Flashing|Troubleshooting and then skip to #8 here]] | |||
# Can install newest Powershell [https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.3 from here]. | |||
# Rick click and run Powershell as administrator. | |||
# Enter this command <code>C:\> Set-ExecutionPolicy RemoteSigned</code> to enable powershell permissions. It only needs to be done one time and should persist on reboots. | |||
# Check that Powershell has correct permissions,enter <code>Get-ExecutionPolicy -list</code> | |||
# LocalMachine should be RemoteSigned. | |||
# For V2, download the [https://github.com/pine64/blisp#how-to-update-pinecil-v2 Blisp Flasher here]. | |||
# Next download the newest firmware, [https://github.com/Ralim/IronOS/releases/ release here]. Scroll down to the bottom of the page, under Assets, get the Pinecilv2.zip. | |||
# Right click on all zip files > properties, and check "Unblock" if present to unblock them, then extract the Blisp zip and the Pinecilv2 zip [https://github.com/builder555/PineSAM/discussions/106#discussion-4960445 screenshot of Unblock here]. If you don't see "Unblock" then keep going. | |||
# From the Pinecilv2 folder you extracted above, copy the <code>Pinecilv2_EN.bin</code> (English) file into the Blisp folder (same place as the Blisp.exe). Other languages are available, substitute the <code>Pinecil_EN.bin</code> file for the language file desired (follow 2-letter international language code). The Pinecil Zip can now be deleted, only the single BIN file in the language you want is used. | |||
# Run powershell as administrator. | |||
# Now, connect the Pinecil V2 to the PC: hold down the [-] '''Before''' plugging the cable to the back of Pinecil. See ([[#Flash Mode|Flash Mode section for details]]). | |||
# Screen on pinecil should be black/empty before proceeding; it means you are in the correct Flash mode. If you are curious, it will connect as a PORT COM device in Device Manager. If your screen is not black, then repeat the connect to PC above. If necessary, change cables or ports, or try a different PC/laptop. | |||
# Use <code>cd</code> to change to the Blisp folder (location of blisp.exe and Pinecil_EN.bin). | |||
#: <code>#example change to location of blisp folder</code> | |||
#: <code>PS C:\> cd G:\Users\name\Downloads\blisp\</code> | |||
# Execute this line (can replace the '''EN''' file name with the language bin selected). | |||
#: <code> #Type the .\ (dot and slash) or it will fail to find the files!</code> | |||
#: <code>.\blisp.exe write -c bl70x --reset .\Pinecilv2_EN.bin</code> | |||
# After update, unplug and reboot it, then hold down <code>'''[-]'''</code> for ~3 seconds to see the new version. | |||
# See [[#Troubleshoot_V2_Flashing|troubleshooting]] down below if it does not flash. | |||
== Bluetooth (BLE) Apps == | |||
* Must have newer Pinecil V2 model (green thumb grip). | |||
* First, update firmware to '''Ralim's IronOS 2.21''' or higher. 2.21 is the first stable release that has BLE support built-in for Pinecil V2. | |||
* Get the [https://github.com/builder555/PineSAM PineSAM app here] or try [https://joric.github.io/pinecil/ Joric's BLE website here]. These BLE apps are also listed in [[Pinecil#Development_Projects| Development Projects]] | |||
* [https://joric.github.io/pinecil/ Joric's BLE API] may be the easiest to get started with as it does not require anything to be installed. It runs off Chromium based browsers (since they are capable of BLE GATT) and shows a graph of Temperature/Watts (MacOS/iPhone and firefox don't work bc they do not have BLE GATT). Hint: some Chromium browsers like Vivaldi, may need to check <code>chrome://flags/ </code> and enable bluetooth options. | |||
* [https://github.com/builder555/PineSAM PineSAM] is BLE Settings and Menus and will run on any major OS. It allows change of all settings, and can be controlled from Mac, Linux, Windows, iPhone, Android and more; needs python script running as back end. For easy phone connection just open a browser address http://<ipaddress of PC running script>:8080/ (see PineSAM website for details) | |||
== Update V2: Linux and Mac == | |||
{{Note|Do not use the DC barrel jack while updating firmware or you may destroy your PC and Pinecil.}} | |||
'''Option 1: PineFlash''' is a GUI updater that downloads firmware and flashes. Download the easy premade binary for [https://github.com/Spagett1/PineFlash#desktop_computer-install-options Linux here]. | |||
# Extract the Blisp zip, and using a terminal, <code> cd </code> to the blisp folder. | # For MacOS, currently there is a 2-step script that will build PineFlash. | ||
# Download the latest [https://github.com/Ralim/IronOS/releases/ | # If you have issues with Pineflash, then use Blisp below. | ||
# Extract the zip file and put <code> Pinecilv2_EN.bin </code> (for English) into the Blisp folder (same place as the Blisp executable). Other languages are available, substitute the *EN.bin file for the language file desired (use the 2-digit international language code). If you have the Pinecil Zip, the rest could be deleted, only the single BIN file is needed. Select the appropriate two-letter code for your language. | <br> | ||
'''Option 2: Blisp Flasher''' [https://github.com/pine64/blisp#how-to-update-pinecil-v2 from here]. This is a CLI that runs in a terminal console; get the latest zip file for Linux or Mac. The main page has background info and there are instructions if you want to [https://github.com/pine64/blisp/wiki/Update-Pinecil-V2 build it from code] instead of using the easier premade executable. | |||
# Extract the Blisp zip, and using a terminal, <code>cd</code> to the blisp folder. | |||
# Download the latest [https://github.com/Ralim/IronOS/releases/ stable Pinecilv2.zip release] (scroll down to the Assets section, get the Pinecilv2.zip). | |||
# Extract the zip file and put <code>Pinecilv2_EN.bin</code> (for English) into the Blisp folder (same place as the Blisp executable). Other languages are available, substitute the *EN.bin file for the language file desired (use the 2-digit international language code). If you have the Pinecil Zip, the rest could be deleted, only the single BIN file is needed. Select the appropriate two-letter code for your language. If you accidentally flash *.dfu file on your Pinecil, it will not boot or work - be sure to only use the BIN file. | |||
# Connect the V2 to the PC and enter Flash mode: hold down the [-] before plugging the cable to the back of Pinecil. See ([[#Flash_Mode| Flash Mode section for details]]). If you are curious on Linux, it will connect as a serial ''ttyACM'' USB ACM type device. | # Connect the V2 to the PC and enter Flash mode: hold down the [-] before plugging the cable to the back of Pinecil. See ([[#Flash_Mode| Flash Mode section for details]]). If you are curious on Linux, it will connect as a serial ''ttyACM'' USB ACM type device. | ||
# Screen on pinecil should be black/empty before proceeding or you are not in Flash mode. | # Screen on pinecil should be black/empty before proceeding or you are not in Flash mode. | ||
# <code> cd </code> to the Blisp folder and | # '''Blisp must have executable permission set.''' | ||
# '''<code>cd </code>''' to the Blisp folder and '''<code>ls -l</code>''' to check permissions of blisp. | |||
# Make blisp executable: '''<code>chmod +x ./blisp</code>''' | |||
# Then execute: | |||
'''sudo ./blisp write -c bl70x --reset Pinecilv2_EN.bin''' | |||
11. After a successful update, unplug and reboot it, then hold down '''<code>[-]</code>''' for ~2 seconds to see the new version. | |||
12. See [[#Troubleshooting_V2_Flashing|troubleshooting]] down below if it does not flash. | |||
13. To use V2 with BLE Apps, see [[#Bluetooth_(BLE)_Apps |'''BLE Bluetooth''' here]]. | |||
== Troubleshoot V2 Flashing == | |||
# Double check that the command is typed exactly, e.g., in Windows, the dot\slash <code> .\ </code> can not be skipped in Powershell. | |||
# For Windows, instead of powershell, try '''command''' app (right click, run as administrator). Inside command, move/change to the blisp folder (cd command); [https://www3.ntu.edu.sg/home/ehchua/programming/howto/CMD_Survival.html#zz-2.1 example commands to move to folders]. | |||
# Two different samples work when Command (cmd) terminal is run as administrator. First move into the folder you have both blisp.exe and Pinecil_EN.bin. Then execute one of the following: | |||
C:\Users\yourName\Downloads\blisp1> blisp.exe write -c bl70x --reset Pinecilv2_EN.bin | |||
C:\Users\yourName\Downloads\blisp1> .\blisp.exe write -c bl70x --reset .\Pinecilv2_EN.bin | |||
[[File:Win-device-manager.png|right|500px|thumb| Pinecil V2 shows as Serial COM port]] | |||
# <li value="4"> If blisp output is "Device not found", but it shows in Windows device manager as a COM port, then it could be a failure of auto find. | |||
#* For Linux it would be similar but use ttyACM number from dmesg and not COM. | |||
#* Use the port argument to specify it manually. First get the COM number from device manager. These examples use COM3, but it's not always COM3 (you need to check). | |||
.\blisp.exe write -p COM3 -c bl70x --reset .\Pinecilv2_EN.bin | |||
.\blisp.exe write --port=COM3 --chip=bl70x --reset .\Pinecilv2_EN.bin | |||
[[File:BlispArguments.png|none|550px|left|thumb| Blisp arguments]] </li> | |||
# <li value="5"> In Windows, view "hidden devices" will show all hidden Ports(COM & LPT) even when pinecil V2 is not connected. This may help as some unknown devices may be claiming COM ports or in conflict. Open Device Manager, click View in the menu bar, and choose “Show hidden devices”. This shows devices/software that are already claiming COM ports but might not be connected presently. You can also watch pinecil V2 connect and disconnect live on Device manager to see the COM it is assigned. The COM number can even be changed in Device manager by going to the Port properties, Port Settings, Advanced. Some devices have issues in windows if they are not connected as a lower COM number, say between COM1 to COM4 ([https://www.virtual-serial-port.org/articles/com-port-on-windows-10/ reference]). You might discover several assigned invisible com ports for devices/software installed long ago. | |||
[[File:Show-hidden.png |none|550px|left|thumb| Windows Device Manager, Show all hidden COMM Ports]] | |||
[[File:Windows-Device-Manager.png|none|550px|left|thumb| Device manager, example Pinecil V2]] | |||
#Often, updating issues are related to the USB cable, or the port on the PC does not support a connection to Pinecil, try: | |||
# Often, updating issues are related to the USB cable, or the port on the PC does not support a connection to Pinecil, try: | #* flipping the cable over, different cables. Try both usb-C to C cables and also USB-C to USB-A cables (your cable may be power-only and not able to do firmware data transfers). All working usb-C to usb-C cables are designed to do at least low speed data transfer but some USB-A cables can only do power and will not work for firmware updates because they were not made to support data transfer. | ||
#* flipping the cable over, different cables. Try both | |||
#* Try other ports on the PC/laptop, or a different machine. There have been issues with some laptop USB-C ports not negotiating correctly, but the flashing worked using the USB-A port. Try a different OS if you can access one, some people who had issues on Linux for example were able to flash on Windows. Note that some virtual environments might have an issue with flashing to USB ports. | #* Try other ports on the PC/laptop, or a different machine. There have been issues with some laptop USB-C ports not negotiating correctly, but the flashing worked using the USB-A port. Try a different OS if you can access one, some people who had issues on Linux for example were able to flash on Windows. Note that some virtual environments might have an issue with flashing to USB ports. | ||
#* Don't use a hub, connect directly to a port, ports on the back of a PC may sometimes be better as they are directly connected to the motherboard. | #* Don't use a hub, connect directly to a port, ports on the back of a PC may sometimes be better as they are directly connected to the motherboard. </li> | ||
# On macOS when connecting the Pinecil for the first time the OS will prompt you to allow an external device to connect. After allowing unplug the Pinecil and plug it in boot mode again, otherwise the loader may fail to connect (Error: "Failed to receive response") | |||
# Follow the Flash mode instructions and make sure the [-] button is held down BEFORE plugging in the cable to the back of the Pinecil. And don't release for ~10 seconds. | # Follow the Flash mode instructions and make sure the [-] button is held down BEFORE plugging in the cable to the back of the Pinecil. And don't release for ~10 seconds. | ||
# If that doesn't work try holding down the <code>[-]</code> the whole time (don't | # If that doesn't work try holding down the <code>[-]</code> the whole time (don't let go of the button). | ||
# Blisp flashers are from Gamiee's open source [https://github.com/pine64/blisp Blisp code here]. It is only an updater for the BL706 MCU on the Pinecil V2. It is separate from the firmware files needed which are in located in GitHub Ralim's IronOS. The firmware contains all the menus, functions, and languages, and the flasher is the tool to push the firmware onto the MCU chip (the brain). Different MCU's need different flasher tools. | # Blisp flashers are from Gamiee's open source [https://github.com/pine64/blisp Blisp code here]. It is only an updater for the BL706 MCU on the Pinecil V2. It is separate from the firmware files needed which are in located in GitHub Ralim's IronOS. The firmware contains all the menus, functions, and languages, and the flasher is the tool to push the firmware onto the MCU chip (the brain). Different MCU's need different flasher tools. | ||
# If you have issues completing the update, try joining the live [[#Live_Community_Chat| Pinecil community chat]] to get tips from volunteers. | # If you have issues completing the update, try joining the live [[Pinecil#Live_Community_Chat| Pinecil community chat]] to get tips from volunteers. | ||
# If there was any special work-around you had to do to get the Blisp Flasher to work, or could not get it to work at all, post an [https://github.com/pine64/blisp/issues Issue in Github Blisp]. | # If there was any special work-around you had to do to get the Blisp Flasher to work, or could not get it to work at all, post an [https://github.com/pine64/blisp/issues Issue in Github Blisp]. | ||
# If you are running Windows in a virtual machine and the process fails, make sure you have ''Microsoft Visual C++ 2015-2022'' installed. | # If you are running Windows in a virtual machine and the process fails, make sure you have ''Microsoft Visual C++ 2015-2022'' installed. | ||
# All firmware releases and betas are located in the GitHub [https://github.com/Ralim/IronOS Ralim's IronOS here]. If you would like to add enhancements/features to the IronOS (firmware that runs the Pinecil) or have an issue, please look at the GitHub documents or submit an issue ticket. It is recommended to read through all the GitHub [https://ralim.github.io/IronOS/ IronOS documents] first as they may have the answers. Screen menus and troubleshooting is documented as well on IronOS and maintained by volunteers. | # All firmware releases and betas are located in the GitHub [https://github.com/Ralim/IronOS Ralim's IronOS here]. If you would like to add enhancements/features to the IronOS (firmware that runs the Pinecil) or have an issue, please look at the GitHub documents or submit an issue ticket. It is recommended to read through all the GitHub [https://ralim.github.io/IronOS/ IronOS documents] first as they may have the answers. Screen menus and troubleshooting is documented as well on IronOS and maintained by volunteers. | ||
== Build the Blisp Flasher from Code == | |||
# If there is a problem with the Blisp flasher, or you have a different Linux architecture like ARM, the Blisp can be built from code. | # If there is a problem with the Blisp flasher, or you have a different Linux architecture like ARM, the Blisp can be built from code. | ||
# See directions at [https://github.com/pine64/blisp/wiki/Update-Pinecil-V2 GitHub Blisp Wiki page]. | # See directions at [https://github.com/pine64/blisp/wiki/Update-Pinecil-V2#-build-blisp-flasher-from-code GitHub Blisp Wiki page]. | ||
# Blisp will only work on Pinecil V2 or devices with Bouffalo BL70x MCU chips. | # Blisp will only work on Pinecil V2 or devices with Bouffalo BL70x MCU chips and does not work for older Pinecil V1 that was sold before Aug. 1, 2022. | ||
== Update V1 == | |||
[[File:Pinecil-V1andV2.png|400px|thumb|right]] | |||
# Pinecil V1 uses a *.dfu file type for firmware. The newer Pinecil V2 only uses *.bin firmware type files. | # Pinecil V1 uses a *.dfu file type for firmware. The newer Pinecil V2 only uses *.bin firmware type files. | ||
# Pinecil V1 models were sold until July 2022 and then discontinued. | |||
# Boot logo art: the same flashers used to install IronOS firmware can be used to install the art. Boot logo art will not overwrite the firmware, it resides in a separate space on the chip. | # Boot logo art: the same flashers used to install IronOS firmware can be used to install the art. Boot logo art will not overwrite the firmware, it resides in a separate space on the chip. | ||
{{Note|Do not use the DC barrel jack while updating firmware or you may destroy your PC and Pinecil.}} | {{Note|Do not use the DC barrel jack while updating firmware or you may destroy your PC and Pinecil.}} | ||
=== V1 Windows or Mac === | |||
# Follow these instructions on GitHub and download the easy GUI updater app [https://ralim.github.io/IronOS/Flashing/Pinecil%20V1/ Pine64 Updater]. | # Follow these instructions on GitHub and download the easy GUI updater app [https://ralim.github.io/IronOS/Flashing/Pinecil%20V1/ Pine64 Updater]. | ||
# Install the app, and follow the screen prompts which requires connecting the Pinecil to the PC. | # Install the app, and follow the screen prompts which requires connecting the Pinecil to the PC. | ||
# Connect the Pinecil to the PC by holding down the [-] '''before''' plugging the cable into the back of Pinecil. Keep holding down the [-] button for about ~10 seconds even after plugging in the cable. | # Connect the Pinecil to the PC by holding down the [-] '''before''' plugging the cable into the back of Pinecil. Keep holding down the [-] button for about ~10 seconds even after plugging in the cable. | ||
# Screen on Pinecil should be black/empty before proceeding or you are not in Flash mode | # Screen on Pinecil should be black/empty before proceeding or you are not in Flash mode. Repeat the steps if needed. If that does not work, flip the cable, try a new cable, or port or different PC, then see the Troubleshooting section. | ||
# The app will automatically fetch the latest stable Ralim's IronOS firmware, pick the language desired from the drop down list. | # The app will automatically fetch the latest stable Ralim's IronOS firmware, pick the language desired from the drop down list. | ||
# The app also allows browsing to a local folder to install a specific beta firmware file or a boot logo that you may have downloaded or created. | # The app also allows browsing to a local folder to install a specific beta firmware file or a boot logo that you may have downloaded or created. | ||
# If multiple firmware flashing is done, the app must be closed and reopened. | # If multiple firmware flashing is done, the app must be closed and reopened. | ||
=== V1 Linux or Mac === | |||
# Option 1 for Linux, the simple command line DFU-Util can be used per [https://ralim.github.io/IronOS/Flashing/Pinecil%20V1/#bleeding-edge-latest IronOS instructions]. Make sure to update to the newest DFU-Util to prevent issues that some members reported with older versions of DFU-util. | # Option 1 for Linux, the simple command line DFU-Util can be used per [https://ralim.github.io/IronOS/Flashing/Pinecil%20V1/#bleeding-edge-latest IronOS instructions]. Make sure to update to the newest DFU-Util to prevent issues that some members reported with older versions of DFU-util. | ||
# Option 2 works for both Linux or Mac. Download the alternative [https://github.com/Laar3/PineFlash Pineflash GUI App] for Linux and Mac. | # Option 2 works for both Linux or Mac. Download the alternative [https://github.com/Laar3/PineFlash Pineflash GUI App] for Linux and Mac. | ||
# Connect the Pinecil to the PC | # Connect the Pinecil to the PC by holding down the [-] '''before''' plugging the cable into the back of Pinecil. Keep holding down the [-] button for about ~10 seconds even after plugging in the cable. | ||
# Screen on Pinecil should be black/empty before proceeding or you are not in Flash mode. | # Screen on Pinecil should be black/empty before proceeding or you are not in Flash mode. If that does not work, flip the cable, try a new cable, or port or different PC, then see the Troubleshooting section. | ||
# PineFlash app will automatically fetch the latest stable Ralim's IronOS firmware, pick the language desired from the drop down list. | # PineFlash app will automatically fetch the latest stable Ralim's IronOS firmware, pick the language desired from the drop down list. | ||
# Pineflash app also allows browsing to a local folder to install a specific beta firmware file or a boot logo that you may have downloaded or created. | # Pineflash app also allows browsing to a local folder to install a specific beta firmware file or a boot logo that you may have downloaded or created. | ||
== General Firmware Details == | |||
* Do not use the DC barrel jack while updating firmware or you may destroy your PC and Pinecil. Pinecil is designed to only use one power port at a time and never both at the same time. | * Do not use the DC barrel jack while updating firmware or you may destroy your PC and Pinecil. Pinecil is designed to only use one power port at a time and never both at the same time. | ||
Line 120: | Line 178: | ||
* To submit a feature request, or help Ralim enhance the code, create a ticket or start a discussion at [https://github.com/Ralim/IronOS/issues Ralim's IronOS] | * To submit a feature request, or help Ralim enhance the code, create a ticket or start a discussion at [https://github.com/Ralim/IronOS/issues Ralim's IronOS] | ||
* Ben (ralimtek) supports IronOS out of love for the IronOS creative open community. He volunteers countless hours coding, debugging, and enhancing IronOS with all the feature requests submitted. | * Ben (ralimtek) supports IronOS out of love for the IronOS creative open community. He volunteers countless hours coding, debugging, and enhancing IronOS with all the feature requests submitted. | ||
** To give some love back, donate to IronOS; [https://ko-fi.com/ralim buy Ralim a coffee/kofi] or [https://www.paypal.com/paypalme/RalimTek donate here]. | ** To give some love back, donate to IronOS; [https://ko-fi.com/ralim buy Ralim a coffee/kofi] or [https://www.paypal.com/paypalme/RalimTek donate here]. | ||
* One advantage of Pinecil (V1/V2) over other irons (i.e., Miniware) is you can not really brick them since Pinecil's bootloader is in ROM. If there is a problem, just flash the firmware again or a different version. This empowers people to experiment and do forks of the main IronOS firmware without as much risk. | * One advantage of Pinecil (V1/V2) over other irons (i.e., Miniware) is you can not really brick them since Pinecil's bootloader is in ROM. If there is a problem, just flash the firmware again or a different version. This empowers people to experiment and do forks of the main IronOS firmware without as much risk. | ||
* Problems with IronOS firmware? - read [https://ralim.github.io/IronOS/ documents here]. If the answer is not found, open a [https://github.com/Ralim/IronOS/issues ticket here] or join the [[#Live_Community_Chat|live Pinecil community chat]]. | * Problems with IronOS firmware? - read [https://ralim.github.io/IronOS/ documents here]. If the answer is not found, open a [https://github.com/Ralim/IronOS/issues ticket here] or join the [[#Live_Community_Chat|live Pinecil community chat]]. | ||
== Boot Logo Art == | |||
[[File:Boot-logo-dogbone.jpg|none|400px|thumb| dog bone by River M., pinecil v1]] [[File:PinecilV2-boot-logo-art.jpg|none|400px|thumb| animated IronOS logo, pinecil v2]] | |||
=== Get Art === | |||
* Boot logo art is art that you custom make or download from [https://github.com/Ralim/IronOS-Meta IronOS Meta]. It displays when you initially power on the Pinecil (boot up). | |||
* Download and extract all the premade Boot logo art from this [https://github.com/Ralim/IronOS-Meta/releases pinecil.zip file here]. | |||
* Note that for Pinecil V1, only the images with filename "dfu" will work, you can delete all other formats from the extracted zip. | |||
* Sample images of [https://github.com/Ralim/IronOS-Meta/tree/main/Bootup%20Logos#logos-preview premade free art]. | |||
* To make custom art, [https://ralim.github.io/IronOS/Logo/ follow instructions here]. | |||
* Some art is animated: the very small file size limit for boot logos prevents too many frames from being possible. | |||
[[File:IronOS.gif]] | |||
=== Install === | |||
* If you have Windows or Mac, you can use this GUI [https://github.com/pine64/pine64_updater/releases/ Pine64 flasher] (only works with V1 model). | |||
* If you have Linux or Windows or Mac, use this GUI [https://github.com/Spagett1/PineFlash/releases/ Pineflash] (works with V1 or V2). | |||
=== Pinecil V2 model === | |||
* Blisp flasher is now updated to allow uploading art files directly to V2 easily and without needing to do the more complex custom build of the firmware with an embedded art file. | |||
** Logo flashing has been working since release V2.22. Generate the logo with <code>img2logo.py</code> then flash the generated <code>.dfu</code> file using <code>blisp</code> just as you would with firmware | |||
[[Category:Pinecil]] | [[Category:Pinecil]] |
Latest revision as of 15:47, 20 July 2024
This article is about updating/flashing the Pinecil firmware.
Overview
The firmware that comes with the Pinecil is open source Ralim's IronOS. It's a good idea to check for updates regularly as development is very active and there may be enhancements or bug fixes.
Depending on whether you have a Pinecil V1 or V2, they are updated using different flashers since they have completely different MCU chip (brains). The V1 is any Pinecil sold up to July 2022 (has a blue thumb grip). The V2 is any Pinecil sold after Aug 1, 2022 (has a green thumb grip). If you don't have the two models mentioned, then you might not have an authentic Pinecil. This article is designed and tested on authentic Pinecils only.
- Go to the appropriate section below depending on if you have a V1 or V2 model.
- Long hold down
[-]
to see the current firmware version installed. - It is very hard to brick a Pinecil doing a firmware update because of the firmware is in ROM. Usually, just re-flashing it fixes it. Even if the other firmware caused the screen to go black, one could connect, put the Pinecil into flash mode, and flash again to an older or newer version of firmware or a beta version.
- Pinecil V1 only uses *.hex files for both firmware and boot logo art.
- Pinecil V2 uses only *.bin files for firmware.
Flash Mode
Both V1 and V2 connect to the PC/laptop and enter the Flash mode the same way for updating purposes:
- Plug one end of the USB cable to the PC/laptop.
- Long hold the
[-]
button before plugging the USB-C cable into the back of the Pinecil. Keep holding down the[-]
for ~10-15 seconds after plugging in the cable, then release the button. - Screen should be black/empty which means Pinecil is in Flashing Mode. If you have issues, try again, do not plug the USB-C cable into Pinecil until you first press & hold the
[-]
button. Flip the cable over or try another port/cable/PC if you still have issues. - Unlike irons from other brands, Pinecil will not show in the PC as a USB data drive. On Windows, you will hear a single beep when connected in flash mode.
- Then use one of the flasher methods below based on the OS you have in order to flash new firmware (older V1 instructions are lower down here).
Update V2: Windows
Option 1: PineFlash GUI updater it's an all-in one app that downloads firmware and flashes.
- Download the easy premade binary installer for Windows here.
- If PineFlash doesn't work, then try blisp terminal app.
Option 2: Blisp, the rest of the instructions below are for Blisp.
- It is a CLI (command line interface or terminal) and needs a tool like Powershell 7 which is already installed on most Windows PCs. For using BLISP only a couple basic terminal commands are needed such as
cd
to change directories (folders). - If you prefer to use "command" terminal over Powershell, see instructions for Command in Troubleshooting and then skip to #8 here
- Can install newest Powershell from here.
- Rick click and run Powershell as administrator.
- Enter this command
C:\> Set-ExecutionPolicy RemoteSigned
to enable powershell permissions. It only needs to be done one time and should persist on reboots. - Check that Powershell has correct permissions,enter
Get-ExecutionPolicy -list
- LocalMachine should be RemoteSigned.
- For V2, download the Blisp Flasher here.
- Next download the newest firmware, release here. Scroll down to the bottom of the page, under Assets, get the Pinecilv2.zip.
- Right click on all zip files > properties, and check "Unblock" if present to unblock them, then extract the Blisp zip and the Pinecilv2 zip screenshot of Unblock here. If you don't see "Unblock" then keep going.
- From the Pinecilv2 folder you extracted above, copy the
Pinecilv2_EN.bin
(English) file into the Blisp folder (same place as the Blisp.exe). Other languages are available, substitute thePinecil_EN.bin
file for the language file desired (follow 2-letter international language code). The Pinecil Zip can now be deleted, only the single BIN file in the language you want is used. - Run powershell as administrator.
- Now, connect the Pinecil V2 to the PC: hold down the [-] Before plugging the cable to the back of Pinecil. See (Flash Mode section for details).
- Screen on pinecil should be black/empty before proceeding; it means you are in the correct Flash mode. If you are curious, it will connect as a PORT COM device in Device Manager. If your screen is not black, then repeat the connect to PC above. If necessary, change cables or ports, or try a different PC/laptop.
- Use
cd
to change to the Blisp folder (location of blisp.exe and Pinecil_EN.bin).#example change to location of blisp folder
PS C:\> cd G:\Users\name\Downloads\blisp\
- Execute this line (can replace the EN file name with the language bin selected).
#Type the .\ (dot and slash) or it will fail to find the files!
.\blisp.exe write -c bl70x --reset .\Pinecilv2_EN.bin
- After update, unplug and reboot it, then hold down
[-]
for ~3 seconds to see the new version. - See troubleshooting down below if it does not flash.
Bluetooth (BLE) Apps
- Must have newer Pinecil V2 model (green thumb grip).
- First, update firmware to Ralim's IronOS 2.21 or higher. 2.21 is the first stable release that has BLE support built-in for Pinecil V2.
- Get the PineSAM app here or try Joric's BLE website here. These BLE apps are also listed in Development Projects
- Joric's BLE API may be the easiest to get started with as it does not require anything to be installed. It runs off Chromium based browsers (since they are capable of BLE GATT) and shows a graph of Temperature/Watts (MacOS/iPhone and firefox don't work bc they do not have BLE GATT). Hint: some Chromium browsers like Vivaldi, may need to check
chrome://flags/
and enable bluetooth options. - PineSAM is BLE Settings and Menus and will run on any major OS. It allows change of all settings, and can be controlled from Mac, Linux, Windows, iPhone, Android and more; needs python script running as back end. For easy phone connection just open a browser address http://<ipaddress of PC running script>:8080/ (see PineSAM website for details)
Update V2: Linux and Mac
Option 1: PineFlash is a GUI updater that downloads firmware and flashes. Download the easy premade binary for Linux here.
- For MacOS, currently there is a 2-step script that will build PineFlash.
- If you have issues with Pineflash, then use Blisp below.
Option 2: Blisp Flasher from here. This is a CLI that runs in a terminal console; get the latest zip file for Linux or Mac. The main page has background info and there are instructions if you want to build it from code instead of using the easier premade executable.
- Extract the Blisp zip, and using a terminal,
cd
to the blisp folder. - Download the latest stable Pinecilv2.zip release (scroll down to the Assets section, get the Pinecilv2.zip).
- Extract the zip file and put
Pinecilv2_EN.bin
(for English) into the Blisp folder (same place as the Blisp executable). Other languages are available, substitute the *EN.bin file for the language file desired (use the 2-digit international language code). If you have the Pinecil Zip, the rest could be deleted, only the single BIN file is needed. Select the appropriate two-letter code for your language. If you accidentally flash *.dfu file on your Pinecil, it will not boot or work - be sure to only use the BIN file. - Connect the V2 to the PC and enter Flash mode: hold down the [-] before plugging the cable to the back of Pinecil. See ( Flash Mode section for details). If you are curious on Linux, it will connect as a serial ttyACM USB ACM type device.
- Screen on pinecil should be black/empty before proceeding or you are not in Flash mode.
- Blisp must have executable permission set.
cd
to the Blisp folder andls -l
to check permissions of blisp.- Make blisp executable:
chmod +x ./blisp
- Then execute:
sudo ./blisp write -c bl70x --reset Pinecilv2_EN.bin
11. After a successful update, unplug and reboot it, then hold down [-]
for ~2 seconds to see the new version.
12. See troubleshooting down below if it does not flash.
13. To use V2 with BLE Apps, see BLE Bluetooth here.
Troubleshoot V2 Flashing
- Double check that the command is typed exactly, e.g., in Windows, the dot\slash
.\
can not be skipped in Powershell. - For Windows, instead of powershell, try command app (right click, run as administrator). Inside command, move/change to the blisp folder (cd command); example commands to move to folders.
- Two different samples work when Command (cmd) terminal is run as administrator. First move into the folder you have both blisp.exe and Pinecil_EN.bin. Then execute one of the following:
C:\Users\yourName\Downloads\blisp1> blisp.exe write -c bl70x --reset Pinecilv2_EN.bin C:\Users\yourName\Downloads\blisp1> .\blisp.exe write -c bl70x --reset .\Pinecilv2_EN.bin
- If blisp output is "Device not found", but it shows in Windows device manager as a COM port, then it could be a failure of auto find.
- For Linux it would be similar but use ttyACM number from dmesg and not COM.
- Use the port argument to specify it manually. First get the COM number from device manager. These examples use COM3, but it's not always COM3 (you need to check).
.\blisp.exe write -p COM3 -c bl70x --reset .\Pinecilv2_EN.bin
.\blisp.exe write --port=COM3 --chip=bl70x --reset .\Pinecilv2_EN.bin
- In Windows, view "hidden devices" will show all hidden Ports(COM & LPT) even when pinecil V2 is not connected. This may help as some unknown devices may be claiming COM ports or in conflict. Open Device Manager, click View in the menu bar, and choose “Show hidden devices”. This shows devices/software that are already claiming COM ports but might not be connected presently. You can also watch pinecil V2 connect and disconnect live on Device manager to see the COM it is assigned. The COM number can even be changed in Device manager by going to the Port properties, Port Settings, Advanced. Some devices have issues in windows if they are not connected as a lower COM number, say between COM1 to COM4 (reference). You might discover several assigned invisible com ports for devices/software installed long ago.
- Often, updating issues are related to the USB cable, or the port on the PC does not support a connection to Pinecil, try:
- flipping the cable over, different cables. Try both usb-C to C cables and also USB-C to USB-A cables (your cable may be power-only and not able to do firmware data transfers). All working usb-C to usb-C cables are designed to do at least low speed data transfer but some USB-A cables can only do power and will not work for firmware updates because they were not made to support data transfer.
- Try other ports on the PC/laptop, or a different machine. There have been issues with some laptop USB-C ports not negotiating correctly, but the flashing worked using the USB-A port. Try a different OS if you can access one, some people who had issues on Linux for example were able to flash on Windows. Note that some virtual environments might have an issue with flashing to USB ports.
- Don't use a hub, connect directly to a port, ports on the back of a PC may sometimes be better as they are directly connected to the motherboard.
- On macOS when connecting the Pinecil for the first time the OS will prompt you to allow an external device to connect. After allowing unplug the Pinecil and plug it in boot mode again, otherwise the loader may fail to connect (Error: "Failed to receive response")
- Follow the Flash mode instructions and make sure the [-] button is held down BEFORE plugging in the cable to the back of the Pinecil. And don't release for ~10 seconds.
- If that doesn't work try holding down the
[-]
the whole time (don't let go of the button). - Blisp flashers are from Gamiee's open source Blisp code here. It is only an updater for the BL706 MCU on the Pinecil V2. It is separate from the firmware files needed which are in located in GitHub Ralim's IronOS. The firmware contains all the menus, functions, and languages, and the flasher is the tool to push the firmware onto the MCU chip (the brain). Different MCU's need different flasher tools.
- If you have issues completing the update, try joining the live Pinecil community chat to get tips from volunteers.
- If there was any special work-around you had to do to get the Blisp Flasher to work, or could not get it to work at all, post an Issue in Github Blisp.
- If you are running Windows in a virtual machine and the process fails, make sure you have Microsoft Visual C++ 2015-2022 installed.
- All firmware releases and betas are located in the GitHub Ralim's IronOS here. If you would like to add enhancements/features to the IronOS (firmware that runs the Pinecil) or have an issue, please look at the GitHub documents or submit an issue ticket. It is recommended to read through all the GitHub IronOS documents first as they may have the answers. Screen menus and troubleshooting is documented as well on IronOS and maintained by volunteers.
Build the Blisp Flasher from Code
- If there is a problem with the Blisp flasher, or you have a different Linux architecture like ARM, the Blisp can be built from code.
- See directions at GitHub Blisp Wiki page.
- Blisp will only work on Pinecil V2 or devices with Bouffalo BL70x MCU chips and does not work for older Pinecil V1 that was sold before Aug. 1, 2022.
Update V1
- Pinecil V1 uses a *.dfu file type for firmware. The newer Pinecil V2 only uses *.bin firmware type files.
- Pinecil V1 models were sold until July 2022 and then discontinued.
- Boot logo art: the same flashers used to install IronOS firmware can be used to install the art. Boot logo art will not overwrite the firmware, it resides in a separate space on the chip.
V1 Windows or Mac
- Follow these instructions on GitHub and download the easy GUI updater app Pine64 Updater.
- Install the app, and follow the screen prompts which requires connecting the Pinecil to the PC.
- Connect the Pinecil to the PC by holding down the [-] before plugging the cable into the back of Pinecil. Keep holding down the [-] button for about ~10 seconds even after plugging in the cable.
- Screen on Pinecil should be black/empty before proceeding or you are not in Flash mode. Repeat the steps if needed. If that does not work, flip the cable, try a new cable, or port or different PC, then see the Troubleshooting section.
- The app will automatically fetch the latest stable Ralim's IronOS firmware, pick the language desired from the drop down list.
- The app also allows browsing to a local folder to install a specific beta firmware file or a boot logo that you may have downloaded or created.
- If multiple firmware flashing is done, the app must be closed and reopened.
V1 Linux or Mac
- Option 1 for Linux, the simple command line DFU-Util can be used per IronOS instructions. Make sure to update to the newest DFU-Util to prevent issues that some members reported with older versions of DFU-util.
- Option 2 works for both Linux or Mac. Download the alternative Pineflash GUI App for Linux and Mac.
- Connect the Pinecil to the PC by holding down the [-] before plugging the cable into the back of Pinecil. Keep holding down the [-] button for about ~10 seconds even after plugging in the cable.
- Screen on Pinecil should be black/empty before proceeding or you are not in Flash mode. If that does not work, flip the cable, try a new cable, or port or different PC, then see the Troubleshooting section.
- PineFlash app will automatically fetch the latest stable Ralim's IronOS firmware, pick the language desired from the drop down list.
- Pineflash app also allows browsing to a local folder to install a specific beta firmware file or a boot logo that you may have downloaded or created.
General Firmware Details
- Do not use the DC barrel jack while updating firmware or you may destroy your PC and Pinecil. Pinecil is designed to only use one power port at a time and never both at the same time.
- Get the beta and release firmware from GitHub with update instructions
- To submit a feature request, or help Ralim enhance the code, create a ticket or start a discussion at Ralim's IronOS
- Ben (ralimtek) supports IronOS out of love for the IronOS creative open community. He volunteers countless hours coding, debugging, and enhancing IronOS with all the feature requests submitted.
- To give some love back, donate to IronOS; buy Ralim a coffee/kofi or donate here.
- One advantage of Pinecil (V1/V2) over other irons (i.e., Miniware) is you can not really brick them since Pinecil's bootloader is in ROM. If there is a problem, just flash the firmware again or a different version. This empowers people to experiment and do forks of the main IronOS firmware without as much risk.
- Problems with IronOS firmware? - read documents here. If the answer is not found, open a ticket here or join the live Pinecil community chat.
Boot Logo Art
Get Art
- Boot logo art is art that you custom make or download from IronOS Meta. It displays when you initially power on the Pinecil (boot up).
- Download and extract all the premade Boot logo art from this pinecil.zip file here.
- Note that for Pinecil V1, only the images with filename "dfu" will work, you can delete all other formats from the extracted zip.
- Sample images of premade free art.
- To make custom art, follow instructions here.
- Some art is animated: the very small file size limit for boot logos prevents too many frames from being possible.
Install
- If you have Windows or Mac, you can use this GUI Pine64 flasher (only works with V1 model).
- If you have Linux or Windows or Mac, use this GUI Pineflash (works with V1 or V2).
Pinecil V2 model
- Blisp flasher is now updated to allow uploading art files directly to V2 easily and without needing to do the more complex custom build of the firmware with an embedded art file.
- Logo flashing has been working since release V2.22. Generate the logo with
img2logo.py
then flash the generated.dfu
file usingblisp
just as you would with firmware
- Logo flashing has been working since release V2.22. Generate the logo with