diff options
-rw-r--r-- | .github/workflows/docs.yml | 35 | ||||
-rw-r--r-- | Bootup Logo/README.md | 2 | ||||
-rw-r--r-- | Documentation/DebugMenu.md | 6 | ||||
-rw-r--r-- | Documentation/Flashing/MHP30.md | 120 | ||||
-rw-r--r-- | Documentation/Flashing/Pinecil V1.md (renamed from Documentation/Flashing.md) | 419 | ||||
-rw-r--r-- | Documentation/Flashing/Pinecil V2.md | 32 | ||||
-rw-r--r-- | Documentation/Flashing/TS100.md | 120 | ||||
-rw-r--r-- | Documentation/Flashing/TS80(P).md | 118 | ||||
-rw-r--r-- | Documentation/GettingStarted.md | 23 | ||||
-rw-r--r-- | Documentation/HallSensor.md | 22 | ||||
-rw-r--r-- | Documentation/HardwareIssues.md | 2 | ||||
-rw-r--r-- | Documentation/Menu.md | 4 | ||||
-rw-r--r-- | Documentation/Power.md | 4 | ||||
-rw-r--r-- | Documentation/Troubleshooting.md | 2 | ||||
-rw-r--r-- | Documentation/index.md | 72 | ||||
-rw-r--r-- | README.md | 35 | ||||
-rw-r--r-- | mkdocs.yml | 30 |
17 files changed, 742 insertions, 304 deletions
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 00000000..8af8318b --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,35 @@ + +name: Docs + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request + push: + branches: [ dev, docs ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + + +# Allow one concurrent deployment +concurrency: + group: "pages" + cancel-in-progress: true + + +jobs: + deploy-docs: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - uses: actions/setup-python@v4 + + - run: pip install --upgrade pip && pip install mkdocs mkdocs-gen-files + - run: git config user.name 'github-actions[bot]' && git config user.email 'github-actions[bot]@users.noreply.github.com' + + - name: Publish docs + run: mkdocs gh-deploy
\ No newline at end of file diff --git a/Bootup Logo/README.md b/Bootup Logo/README.md index b56b3457..30aeabd6 100644 --- a/Bootup Logo/README.md +++ b/Bootup Logo/README.md @@ -4,4 +4,4 @@ IronOS supports both a bootup logo _AND_ bootup animations. However, they are no longer included in this repo. -[Please read the docs](../Documentation/Logo.md) +[Please read the docs](https://ralim.github.io/IronOS/Logo/) diff --git a/Documentation/DebugMenu.md b/Documentation/DebugMenu.md index 057f312c..1197b6d8 100644 --- a/Documentation/DebugMenu.md +++ b/Documentation/DebugMenu.md @@ -35,7 +35,7 @@ This may change during power up as the sources are negotiated in turn. - **DC** input (dumb)
- **QC** input (We used QC2/3 negotiation for current supply)
- **PD W. VBus** input (PD subsystem is used to negotiate for current supply); and VBus is connected to your input power source
-- **PD No VBus** input (PD subsystem is used to negotiate for current supply); and VBus is **NOT** connected to your input power source. If it is Not required or possible to do a special mod of your PCB (i.e. late model V1, some early Green PCB models) then [PD No VBus] displays on-screen ([see details and PD Debug section below](/Documentation/DebugMenu.md#pd-debug-menu)).
+- **PD No VBus** input (PD subsystem is used to negotiate for current supply); and VBus is **NOT** connected to your input power source. If it is Not required or possible to do a special mod of your PCB (i.e. late model V1, some early Green PCB models) then [PD No VBus] displays on-screen ([see details and PD Debug section below](https://ralim.github.io/IronOS/DebugMenu/#pd-debug-menu)).
### Vin
@@ -50,7 +50,7 @@ This can be used with RTip for assessing temperature processing performance. This is the handle temperature or more accurately the reading of the Cold Junction Compensation (CJC) temperature sensor. This is expressed in °C. Range of 20-40 °C is normal depending on how hot/cold the room is and how long power has been plugged in which warms the PCB further.
This is used for CJC of the tip temperature.
- > If CHan is extremely high, this indicates the temperature sensor isn't reading correctly ([see Troubleshooting](/Documentation/Troubleshooting.md))
+ > If CHan is extremely high, this indicates the temperature sensor isn't reading correctly ([see Troubleshooting](https://ralim.github.io/IronOS/Troubleshooting/))
### Max C
@@ -95,7 +95,7 @@ This indicates the high-water mark for the stack for the PID thread. The smaller ### Hall
This appears if your device is capable of having a hall effect sensor installed (Pinecil).
-This shows the current magnetic field strength reading from the sensor. It is used to check if the sensor is operational, and for diagnostics and optimal placement of magnets on a stand (higher number is better/stronger). [See Hall Sensor for details](/Documentation/HallSensor.md).
+This shows the current magnetic field strength reading from the sensor. It is used to check if the sensor is operational, and for diagnostics and optimal placement of magnets on a stand (higher number is better/stronger). [See Hall Sensor for details](https://ralim.github.io/IronOS/HallSensor/).
# PD Debug menu
diff --git a/Documentation/Flashing/MHP30.md b/Documentation/Flashing/MHP30.md new file mode 100644 index 00000000..ff8484b0 --- /dev/null +++ b/Documentation/Flashing/MHP30.md @@ -0,0 +1,120 @@ +# Flashing / Upgrading your iron + +## Downloading source file + +In the development of this firmware, there are three _types_ of firmware released. +These are the "Main" stable releases, which generally have high confidence in being bug free. +Release candidates are released slightly more often, and these are generally perfectly fine for everyday use. These are released early to allow for translation checking and for wonderful people to help spot bugs and regressions. +Finally, there are the "mainline" builds, which are built from the main git branch. +These are built on every change and can be found on the Actions tab (see below). + +### Main release + +Main releases are made to the [releases page](https://github.com/Ralim/IronOS/releases). +Download the zip file that matches your model of soldering iron and extract it. +Select the appropriate file type for your unit, in general Miniware devices need `.hex` and Pinecil needs `.dfu`. +Flash according to details below + +### Bleeding edge / latest + +For the _latest_ code, you will need to download the zip file from the artifacts page on the build for what you want. +Head to the [Actions](https://github.com/Ralim/IronOS/actions) page and then select the run for the appropriate branch you would like. +In general you probably want `master`. + +Once you click on a run, scroll down to the "Artifacts" section and then click on your model to download a zip file. +Then this works the same as a production release (use the correct file). + +# MHP30 + +This is completely safe, but if it goes wrong just put the `.hex` file from the official website ([MHP30](https://www.minidso.com/forum.php?mod=viewthread&tid=4385&extra=page%3D1) onto the unit and you're back to the old firmware. Downloads for the `.hex` files to flash are available on the [releases page.](https://github.com/Ralim/IronOS/releases) The file you want is called MHP30.zip. Inside the zip file (make sure to extract the file before flashing with it) will be a file called `MHP30_{Language-Code}.hex`. + +Officially the bootloader on the devices only works under Windows (use the built-in File Explorer, as alternative file managers or copy handlers like Teracopy will fail). However, users have reported that it does work under Mac, and can be made to work under Linux _sometimes_. Details over on the [wiki page](https://github.com/Ralim/IronOS/wiki/Upgrading-Firmware). + +1. Hold the button closest to the tip (MHP30 the left button on the back), and plug in the USB to the computer. +2. The unit will appear as a USB drive. (Screen will say `DFU` on it.) +3. Drag the `.hex` file onto the USB drive. +4. The unit will disconnect and reconnect. +5. The filename will have changed to end in _.RDY_ or _.ERR_ +6. If it ends with _.RDY_ you're done! Otherwise, something went wrong. +7. If it didn't work the first time, try copying the file again without disconnecting the device, often it will work on the second shot. +8. Disconnect the USB and power up the device. You're good to go. + +For the more adventurous out there, you can also load this firmware onto the device using an SWD programmer, for easier installation follow the guide at the end of this document. + +On the USB-C port, `USB_D+` is shorted to `SWDIO` and `USB_D-` is shorted to `SWCLK` so debugging works without disassembly (attach while staying in the bootloader). Installing [IronOS-dfu](https://github.com/Ralim/IronOS-dfu) is recommended as it allows reliable flashing of binary files with [dfu-util](http://dfu-util.sourceforge.net/). + +Noting that for the MHP30 the stock firmware checks a checksum at the end of the first 8k that has to be valid or else it goes into "demo mode". + +## Mac + +sgr1ff1n (Shane) commented in [issue 11](https://github.com/Ralim/IronOS/issues/11) that upgrading worked on their Mac as per normal: + +> I just wanted to say that I was able to update the firmware on my ts100 from the stock version to 1.08 found in this repository using my Mac. I simply followed the same steps however through Finder. I have a MacBook Pro (13-inch, Mid 2012) running Sierra 10.12.4 (16E195). + +## Linux + +While in the past there were reports of unreliable upgrades, the consensus in [issue 11](https://github.com/Ralim/IronOS/issues/11) is that things work mostly as expected in Linux. + +@awigen has contributed a script [flash_ts100_linux.sh](https://raw.githubusercontent.com/Ralim/IronOS/master/Flashing/flash_ts100_linux.sh) that works on Ubuntu 16.04 as well as other distros. + +If you want to do it manually (or if the script does not work for some reason) the general procedure is the same as for Windows, the differences are in the way to mount the unit and copy the firmware. +Remember that after flashing, the firmware filename will have changed to end in `.RDY` or `.ERR` or `.NOT` and only `.RDY` means the flashing was successful! + +- The unit has to be mounted as `msdos` type (thanks @balrog-kun for having spotted it). You may disable automount, but unmounting the automounted drive and remounting as `msdos` works fine. You do not need to turn off automounting, but you do need to unmount the device with `umount`. +- It is recommended to use an all-caps filename for the firmware, even if successful flashing were done with lower case names. +- Avoid USB hubs, plug directly in your computer. +- If it fails, try again several times without unplugging. Just let it remount. + +Example, to be run as root, once the unit has been plugged in DFU mode and auto-mounted: + +```bash +FW=ts100.hex +unset NAME +eval $(lsblk -P -p -d --output NAME,MODEL|grep "DFU[ _]Disk") +[ -z ${NAME+x} ] && exit 1 # Could not find DFU device +umount "$NAME" +mkdir /tmp/mntdfu +mount -t msdos "$NAME" /tmp/mntdfu +cp "$FW" "/tmp/mntdfu/$(basename $FW|tr a-z A-Z)" +sync +umount /tmp/mntdfu +rmdir /tmp/mntdfu +``` + +Device will reboot and automount will rerun if not disabled. +Check the extension of your firmware, it should be `.RDY` now. + +## FAQ + +#### The file is showing up with the extension `.ERR` + +This can occur during the programming process if any of the checks in the bootloader fail. This is often triggered by anti-virus software or using a non-Windows host OS. + +First, try just copying the file a second time. + +1. Attach the iron in DFU mode. +2. Copy the `.hex` file to the device. +3. The device disconnects and connects with the `.ERR` file. +4. Copy the same `.hex` file again **⛔ DO NOT TRY AND DELETE THE OLD ONE ⛔**. +5. The device will disconnect and reconnect again. +6. The device _should_ now have the `.RDY` file. +7. You're done. + +If this fails and you are on Mac or Linux reading the wiki page about programming can help. There is also a very long issue thread going through all of the different attempts around this too. + +If you are on Windows, it's often best to try another computer (friends, work, partners etc.). + +#### Device randomly disconnects or does not show up in DFU mode + +1. Check if the USB cable you are using has the data pins; test it on another device. There are a surprisingly large number of micro-USB cables that are power _only_. + +2. Try other USB ports. Often different USB controllers will interact with the units differently due to design quirks in the Miniware design. + +### Alternative bootloader + +If you are an advanced user, and you have used `usb-dfu` tools before, or you would like to learn; there is an alternative bootloader for these irons. +This will **NOT** show up as a USB storage drive, but instead show up using a standard DFU protocol device. You can then use dfu tools or GUIs to upgrade the iron using the `.bin` files that are posted to the releases page. + +To install this alternative bootloader, follow the instructions [here](https://github.com/Ralim/IronOS-dfu/blob/mainline/docs/Bootloader.md). + +Note that this is only recommended for users who know what they are doing. If you don't understand how this works, please don't flash this. diff --git a/Documentation/Flashing.md b/Documentation/Flashing/Pinecil V1.md index 41376abc..49517935 100644 --- a/Documentation/Flashing.md +++ b/Documentation/Flashing/Pinecil V1.md @@ -1,260 +1,159 @@ -# Flashing / Upgrading your iron
-
-## Downloading source file
-
-In the development of this firmware, there are three _types_ of firmware released.
-These are the "Main" stable releases, which generally have high confidence in being bug free.
-Release candidates are released slightly more often, and these are generally perfectly fine for everyday use. These are released early to allow for translation checking and for wonderful people to help spot bugs and regressions.
-Finally, there are the "mainline" builds, which are built from the main git branch.
-These are built on every change and can be found on the Actions tab (see below).
-
-### Main release
-
-Main releases are made to the [releases page](https://github.com/Ralim/IronOS/releases).
-Download the zip file that matches your model of soldering iron and extract it.
-Select the appropriate file type for your unit, in general Miniware devices need `.hex` and Pinecil needs `.dfu`.
-Flash according to details below
-
-### Bleeding edge / latest
-
-For the _latest_ code, you will need to download the zip file from the artifacts page on the build for what you want.
-Head to the [Actions](https://github.com/Ralim/IronOS/actions) page and then select the run for the appropriate branch you would like.
-In general you probably want `master`.
-
-Once you click on a run, scroll down to the "Artifacts" section and then click on your model to download a zip file.
-Then this works the same as a production release (use the correct file).
-
-# Miniware devices (TS100, TS80, TS80P & MHP30)
-
-This is completely safe, but if it goes wrong just put the `.hex` file from the official website ([TS100](https://www.minidso.com/forum.php?mod=viewthread&tid=868&extra=page%3D1), [TS80](https://www.minidso.com/forum.php?mod=viewthread&tid=3202&extra=page%3D1), [TS80P](https://www.minidso.com/forum.php?mod=viewthread&tid=4070&extra=page%3D1) & [MHP30](https://www.minidso.com/forum.php?mod=viewthread&tid=4385&extra=page%3D1)) onto the unit and you're back to the old firmware. Downloads for the `.hex` files to flash are available on the [releases page.](https://github.com/Ralim/IronOS/releases) The file you want is called _(MODEL)\_EN.hex_ unless you want the translations, they are (MODEL)\__language short name_.hex. Where (MODEL) is either TS100 or TS80.
-
-Officially the bootloader on the devices only works under Windows (use the built-in File Explorer, as alternative file managers or copy handlers like Teracopy will fail). However, users have reported that it does work under Mac, and can be made to work under Linux _sometimes_. Details over on the [wiki page](https://github.com/Ralim/ts100/wiki/Upgrading-Firmware).
-
-1. Hold the button closest to the tip (MHP30 the left button on the back), and plug in the USB to the computer.
-2. The unit will appear as a USB drive. (Screen will say `DFU` on it.)
-3. Drag the `.hex` file onto the USB drive.
-4. The unit will disconnect and reconnect.
-5. The filename will have changed to end in *.RDY* or *.ERR*
-6. If it ends with *.RDY* you're done! Otherwise, something went wrong.
-7. If it didn't work the first time, try copying the file again without disconnecting the device, often it will work on the second shot.
-8. Disconnect the USB and power up the device. You're good to go.
-
-For the more adventurous out there, you can also load this firmware onto the device using an SWD programmer, for easier installation follow the guide at the end of this document.
-
-On the bottom of the MCU riser PCB, there are 4 pads for programming. On v2.51A PCB revision `USB_D+` is shorted to `SWDIO` and `USB_D-` is shorted to `SWCLK` so debugging works without disassembly (attach while staying in the bootloader). Installing [IronOS-dfu](https://github.com/Ralim/IronOS-dfu) is recommended as it allows reliable flashing of binary files with [dfu-util](http://dfu-util.sourceforge.net/).
-
-There is a complete device flash backup included in this repository. (Note this includes the bootloader, so will need an SWD programmer to load onto the unit).
-
-For the TS80 the SWD pins are used for the QC negotiation, so you can actually connect to the SWD power via the USB connector.
-
-## Mac
-
-sgr1ff1n (Shane) commented in [issue 11](https://github.com/Ralim/ts100/issues/11) that upgrading worked on their Mac as per normal:
-
-> I just wanted to say that I was able to update the firmware on my ts100 from the stock version to 1.08 found in this repository using my Mac. I simply followed the same steps however through Finder. I have a MacBook Pro (13-inch, Mid 2012) running Sierra 10.12.4 (16E195).
-
-## Linux
-
-While in the past there were reports of unreliable upgrades, the consensus in [issue 11](https://github.com/Ralim/ts100/issues/11) is that things work mostly as expected in Linux.
-
-@awigen has contributed a script [flash_ts100_linux.sh](https://raw.githubusercontent.com/Ralim/ts100/master/Flashing/flash_ts100_linux.sh) that works on Ubuntu 16.04 as well as other distros.
-
-If you want to do it manually (or if the script does not work for some reason) the general procedure is the same as for Windows, the differences are in the way to mount the unit and copy the firmware.
-Remember that after flashing, the firmware filename will have changed to end in `.RDY` or `.ERR` or `.NOT` and only `.RDY` means the flashing was successful!
-
-- The unit has to be mounted as `msdos` type (thanks @balrog-kun for having spotted it). You may disable automount, but unmounting the automounted drive and remounting as `msdos` works fine. You do not need to turn off automounting, but you do need to unmount the device with `umount`.
-- It is recommended to use an all-caps filename for the firmware, even if successful flashing were done with lower case names.
-- Avoid USB hubs, plug directly in your computer.
-- If it fails, try again several times without unplugging. Just let it remount.
-
-Example, to be run as root, once the unit has been plugged in DFU mode and auto-mounted:
-
-```bash
-FW=ts100.hex
-unset NAME
-eval $(lsblk -P -p -d --output NAME,MODEL|grep "DFU[ _]Disk")
-[ -z ${NAME+x} ] && exit 1 # Could not find DFU device
-umount "$NAME"
-mkdir /tmp/mntdfu
-mount -t msdos "$NAME" /tmp/mntdfu
-cp "$FW" "/tmp/mntdfu/$(basename $FW|tr a-z A-Z)"
-sync
-umount /tmp/mntdfu
-rmdir /tmp/mntdfu
-```
-
-Device will reboot and automount will rerun if not disabled.
-Check the extension of your firmware, it should be `.RDY` now.
-
-# Pinecil V2 (Pine64)
-- The MCU in V2 is Bouffalo BL706 and does *not* use usb-dfu for flashing as the previous MCU did.
-- The current firmware (2.18) is very fresh and no upgrade is available/needed.
-- When an update is released for V2, then IronOS will also include an update method to follow.
-- Background on the [BL706 chipset](https://lupyuen.github.io/articles/bl706)
-
-# Pinecil V1 (Pine64)
-
-- The MCU used in Pinecil supports usb-dfu. Reference [Pinecil Wiki](https://wiki.pine64.org/wiki/Pinecil).
-- Recommended Updater: the [Pine64 Updater](https://github.com/pine64/pinecil-firmware-updater/releases), is an easy-to-use GUI app. It is fast and works in several types of OS, i.e. Windows/Mac. It will automatically fetch the newest stable version of IronOS from GitHub.
-- Troubleshooting: if you have issues using the Pine64 Updater or your install fails, please go to troubleshooting tips below.
-- Community chat: if troubleshooting doesn't work, then join the Pine64 > Pinecil channel. There are knowledgeable members in Discord/Telegram/Matrix. Discord has a bridge bot connection to Telegram and Matrix so that all pine volunteers/members can see advice for Pinecil and related items or just get tips on which Power supply to purchase.
-- One advantage of Pinecil is that you cannot permanently damage it doing a firmware update (because DFU is in ROM); an update could render Pinecil temporarily inoperable if you flash an invalid firmware. But no worries, simply re-flashing with a working firmware copy will fix everything.
-- USB-C cable is required to do an update. Generally, all USB controllers work, but some hubs have issues, so it is preferred to avoid USB hubs for updates.
-- Alternate Update Methods: if your OS is not currently supported by the [Updater](https://github.com/pine64/pinecil-firmware-updater/releases) or it does not meet your needs, i.e., you want to install a beta version, the below manual methods may be used.
-
-## Linux and Mac
-
-### Steps
-
-⛔ Do not use the DC barrel jack while updating firmware or you may destroy your PC. ⛔
-
-1. Highly recommend updating `dfu-util` to the newest version before starting.
-2. Download and extract the firmware package from GitHub [IronOS Releases](https://github.com/Ralim/IronOS/releases).
-4. Enter DFU mode: press and hold (`-`) button at the back of the iron before you connect the USB-C cable.
-5. Connect USB to PC, and USB-C to back of Pinecil, keep holding (`-`) button down.
-6. Once the USB cable is connected at two ends, wait ~10 seconds more, then release the (`-`) button.
-7. The screen will stay **black/off** to indicate the Pinecil is in DFU mode. This is normal.
-8. Using `dfu-util` you can flash the firmware using a command line like this:
-
-```
-dfu-util -D Pinecil_EN.dfu
-```
-
-Choose the file name from the folder with the appropriate 2-letter country code for your chosen language (i.e., EN = English).
-
-### Troubleshooting:
-- If you get a message stating that `More than one DFU capable USB device found!` when running the above command you probably have an old version of `dfu-util` installed. Might be worth updating. You can still install on the old version, but you will have to specify which DFU interface to flash to. Running the command `dfu-util -l` will show you if there are several DFU devices detected. Example:
-```
-Found DFU: [28e9:0189] ver=0100, devnum=48, cfg=1, intf=0, path="1-1", alt=1, name="@Option Bytes /0x1FFFF800/01*016Be", serial="??"
-Found DFU: [28e9:0189] ver=0100, devnum=48, cfg=1, intf=0, path="1-1", alt=0, name="@Internal Flash /0x08000000/128*001Kg", serial="??"
-```
-In this example we see that more than one part of the Pinecil is detected as a DFU interface and we need to specify which one we want to flash to. We want the `Internal Flash` so in this case we can use `alt=0` to identify which interface to target. The command would then look like this:
-```
-dfu-util -D Pinecil_EN.dfu -a 0
-```
-- Note: if you use an older release of `dfu-util` and do not see `alt=0, name="@Internal Flash /0x08000000/128*001Kg"` when running `dfu-util -l` you likely will not be able to update without first updating 'dfu-util'.
-- If your update is crashing part-way into the update, there is sometimes an issue with older/fussy USB controllers (they can show up/disappear/then show up again)
- - Try a direct connection to the USB port, do not use a USB hub, and use shorter cable. If possible, pick a port connected to the main board.
- - Switch to a different PC/Laptop and use different ports. USB-C ports are recommended but some have also reported having a fussy C port.
- - Hold down the (-) button for the entire firmware update, do not release until near the end.
-- `DC Low` message: a pc/laptop cannot fully power Pinecil, it generally can only get 5 V (non-PD) to communicate for firmware updates and Pinecil will report 'DC Low'. This is normal.
-- If `dfu-util` aborts with an error like
- ```
- dfu-util: Cannot open DFU device 28e9:0189 found on devnum 42 (LIBUSB_ERROR_IO)
- ```
- and `dmesg` reports USB errors like these
- ```
- kernel: usb 1-1: reset full-speed USB device number 42 using xhci_hcd
- kernel: usb 1-1: device descriptor read/64, error -71
- kernel: usb 1-1: device descriptor read/64, error -71
- kernel: usb 1-1: reset full-speed USB device number 42 using xhci_hcd
- kernel: usb 1-1: device descriptor read/64, error -71
- kernel: usb 1-1: device descriptor read/64, error -71
- kernel: usb 1-1: reset full-speed USB device number 42 using xhci_hcd
- kernel: usb 1-1: Device not responding to setup address.
- kernel: usb 1-1: Device not responding to setup address.
- kernel: usb 1-1: device not accepting address 42, error -71
- ```
- then try to disable USB autosuspend.
- This can be done with a set of udev rules specifically for the Pinecil:
- ```udev
- SUBSYSTEM=="usb", ATTR{idVendor}=="28e9", ATTR{idProduct}=="0189", MODE:="0660"
- SUBSYSTEM=="usb", ATTR{idVendor}=="28e9", ATTR{idProduct}=="0189", GROUP="plugdev"
- SUBSYSTEM=="usb", ATTR{idVendor}=="28e9", ATTR{idProduct}=="0189", TEST=="power/control", ATTR{power/control}="on"
- ```
-
-
-## Windows
-
-Two Options for Windows
-
-### Option 1: use command line
-
-### Steps
-
-⛔ Do not use the DC barrel jack while updating firmware or you may destroy your PC. ⛔
-
-1. Using command line `dfu-util` is similar to above for Linux / Mac.
-2. Highly recommend updating `dfu-util` to the newest version.
-3. Download and extract the firmware package from GitHub [IronOS Releases](https://github.com/Ralim/IronOS/releases).
-4. Enter DFU mode: press and hold (-) button at the back of the iron (do not release).
-5. Connect USB to PC, and USB-C to the back of Pinecil, keep holding (-) button down.
-6. Screen will stay **black/off** to indicate the Pinecil is in DFU mode. This is normal.
-7. After the USB cable is connected at both ends, wait ~10 seconds more, then release the (-) button.
-8. Open PowerShell or Command window.
-9. Change to the directory of the unzipped firmware files
-10. Using `dfu-util,` flash the firmware using a command like this:
-
-```
-dfu-util -D Pinecil_EN.dfu
-```
- - If you have errors, see Troubleshooting [above](/Documentation/Flashing.md#troubleshooting).
-
-
-### Option 2: use the GUI tool from chip vendor
-
-### Steps
-
-⛔ Do not use the DC barrel jack while updating firmware or you may destroy your PC. ⛔
-
-1. If you are uncomfortable with the command line, then this chip vendor supplied GUI tool/drivers is an option.
-2. Download and extract the firmware package from GitHub [IronOS Releases](https://github.com/Ralim/IronOS/releases).
-3. Download both the `GD32 MCU DFU TOOL` and the `GD32 Dfu Drivers`.
- - GD32 DFU Tool [here](http://www.gd32mcu.com/en/download?kw=GD32+MCU+Dfu+Tool&lan=en). If the link breaks, search for "GD32 MCU Dfu Tool" at this [link](http://www.gd32mcu.com/en/download/).
- - GD32 DFU Drivers [here](http://www.gd32mcu.com/en/download?kw=GD32+Dfu+Drivers&lan=en). If the link breaks, search for "GD32 Dfu Drivers" at this [link](http://www.gd32mcu.com/en/download/).
- - Check properties of both downloads, tick Unblock if needed, then Unzip
-4. Install the drivers and the GD32 DFU tool (ignore prompts to update the tool).
-5. Enter DFU mode: press and hold (`-`) button at the back of Pinecil (do not release).
-6. Connect Pinecil to a PC via USB cable (do not release the (`-`) yet).
-7. Screen will stay **black/off** to indicate the Pinecil is in DFU mode. This is normal.
-8. You may hear a beep from Windows as it connects to Pinecil in DFU mode.
-9. If you see windows notification that it `does not recognize USB device`, then you didn't connect, repeat step 3-8.
-10. Open the GD32 DFU Tool (ignore prompts to update tool).
-11. At the top of the DFU tool, you should see `GD DFU DEVICE 1` appear if you successfully connected Pinecil.
-12. If DFU Device box at top is blank, then Pinecil is not connected in DFU mode, repeat steps 3-11.
-13. If it has been more than 10 seconds since you connected the USB cable, Release the (`-`) button. (don't use Upload from Device section)
-14. Select `Download to device` > Open > Browse to folder you unzipped in step 2.
-15. Select the `hex` file for language. English is Pinecil_EN.hex , tick `Verify after download`.
-16. Click `OK` at bottom. After a few minutes you will see 0-100%, Download successfully! Click `Leave DFU` at the top.
-17. Disconnect Pinecil cable from PC, plug it into a power supply.
-18. Do not need to press any buttons, a new screen should appear.
-19. To confirm upgrade, hold the minus (`-`) button down for a few seconds, it then shows new firmware version v2.xx.x....date
-
- - If you have errors, see Troubleshooting [above](/Documentation/Flashing.md#troubleshooting).
-
-
-
-## FAQ
-
-#### [Miniware] The file is showing up with the extension `.ERR`
-
-This can occur during the programming process if any of the checks in the bootloader fail. This is often triggered by anti-virus software or using a non-Windows host OS.
-
-First, try just copying the file a second time.
-
-1. Attach the iron in DFU mode.
-2. Copy the `.hex` file to the device.
-3. The device disconnects and connects with the `.ERR` file.
-4. Copy the same `.hex` file again **⛔ DO NOT TRY AND DELETE THE OLD ONE ⛔**.
-5. The device will disconnect and reconnect again.
-6. The device _should_ now have the `.RDY` file.
-7. You're done.
-
-If this fails and you are on Mac or Linux reading the wiki page about programming can help. There is also a very long issue thread going through all of the different attempts around this too.
-
-If you are on Windows, it's often best to try another computer (friends, work, partners etc.).
-
-#### [Miniware] Device randomly disconnects or does not show up in DFU mode
-
-1. Check if the USB cable you are using has the data pins; test it on another device. There are a surprisingly large number of micro-USB cables that are power _only_.
-
-2. Try other USB ports. Often different USB controllers will interact with the units differently due to design quirks in the Miniware design.
-
-### [Miniware] Alternative bootloader
-
-If you are an advanced user, and you have used `usb-dfu` tools before, or you would like to learn; there is an alternative bootloader for these irons.
-This will **NOT** show up as a USB storage drive, but instead show up using a standard DFU protocol device. You can then use dfu tools or GUIs to upgrade the iron using the `.bin` files that are posted to the releases page.
-
-To install this alternative bootloader, follow the instructions [here](https://github.com/Ralim/IronOS-dfu/blob/mainline/docs/Bootloader.md).
-
-Note that this is only recommended for users who know what they are doing. If you don't understand how this works, please don't flash this.
+# Flashing / Upgrading your iron + +## Downloading source file + +In the development of this firmware, there are three _types_ of firmware released. +These are the "Main" stable releases, which generally have high confidence in being bug free. +Release candidates are released slightly more often, and these are generally perfectly fine for everyday use. These are released early to allow for translation checking and for wonderful people to help spot bugs and regressions. +Finally, there are the "mainline" builds, which are built from the main git branch. +These are built on every change and can be found on the Actions tab (see below). + +### Main release + +Main releases are made to the [releases page](https://github.com/Ralim/IronOS/releases). +Download the zip file that matches your model of soldering iron and extract it. +Select the appropriate file type for your unit, in general Miniware devices need `.hex` and Pinecil needs `.dfu`. +Flash according to details below + +### Bleeding edge / latest + +For the _latest_ code, you will need to download the zip file from the artifacts page on the build for what you want. +Head to the [Actions](https://github.com/Ralim/IronOS/actions) page and then select the run for the appropriate branch you would like. +In general you probably want `master`. + +Once you click on a run, scroll down to the "Artifacts" section and then click on your model to download a zip file. +Then this works the same as a production release (use the correct file). + +# Pinecil V1 + +- The MCU used in Pinecil supports usb-dfu. Reference [Pinecil Wiki](https://wiki.pine64.org/wiki/Pinecil). +- Recommended Updater: the [Pine64 Updater](https://github.com/pine64/pinecil-firmware-updater/releases), is an easy-to-use GUI app. It is fast and works in several types of OS, i.e. Windows/Mac. It will automatically fetch the newest stable version of IronOS from GitHub. +- Troubleshooting: if you have issues using the Pine64 Updater or your install fails, please go to troubleshooting tips below. +- Community chat: if troubleshooting doesn't work, then join the Pine64 > Pinecil channel. There are knowledgeable members in Discord/Telegram/Matrix. Discord has a bridge bot connection to Telegram and Matrix so that all pine volunteers/members can see advice for Pinecil and related items or just get tips on which Power supply to purchase. +- One advantage of Pinecil is that you cannot permanently damage it doing a firmware update (because DFU is in ROM); an update could render Pinecil temporarily inoperable if you flash an invalid firmware. But no worries, simply re-flashing with a working firmware copy will fix everything. +- USB-C cable is required to do an update. Generally, all USB controllers work, but some hubs have issues, so it is preferred to avoid USB hubs for updates. +- Alternate Update Methods: if your OS is not currently supported by the [Updater](https://github.com/pine64/pinecil-firmware-updater/releases) or it does not meet your needs, i.e., you want to install a beta version, the below manual methods may be used. + +## Linux and Mac + +### Steps + +⛔ Do not use the DC barrel jack while updating firmware or you may destroy your PC. ⛔ + +1. Highly recommend updating `dfu-util` to the newest version before starting. +2. Download and extract the firmware package from GitHub [IronOS Releases](https://github.com/Ralim/IronOS/releases). +3. Enter DFU mode: press and hold (`-`) button at the back of the iron before you connect the USB-C cable. +4. Connect USB to PC, and USB-C to back of Pinecil, keep holding (`-`) button down. +5. Once the USB cable is connected at two ends, wait ~10 seconds more, then release the (`-`) button. +6. The screen will stay **black/off** to indicate the Pinecil is in DFU mode. This is normal. +7. Using `dfu-util` you can flash the firmware using a command line like this: + +``` +dfu-util -D Pinecil_EN.dfu +``` + +Choose the file name from the folder with the appropriate 2-letter country code for your chosen language (i.e., EN = English). + +### Troubleshooting: + +- If you get a message stating that `More than one DFU capable USB device found!` when running the above command you probably have an old version of `dfu-util` installed. Might be worth updating. You can still install on the old version, but you will have to specify which DFU interface to flash to. Running the command `dfu-util -l` will show you if there are several DFU devices detected. Example: + +``` +Found DFU: [28e9:0189] ver=0100, devnum=48, cfg=1, intf=0, path="1-1", alt=1, name="@Option Bytes /0x1FFFF800/01*016Be", serial="??" +Found DFU: [28e9:0189] ver=0100, devnum=48, cfg=1, intf=0, path="1-1", alt=0, name="@Internal Flash /0x08000000/128*001Kg", serial="??" +``` + +In this example we see that more than one part of the Pinecil is detected as a DFU interface and we need to specify which one we want to flash to. We want the `Internal Flash` so in this case we can use `alt=0` to identify which interface to target. The command would then look like this: + +``` +dfu-util -D Pinecil_EN.dfu -a 0 +``` + +- Note: if you use an older release of `dfu-util` and do not see `alt=0, name="@Internal Flash /0x08000000/128*001Kg"` when running `dfu-util -l` you likely will not be able to update without first updating 'dfu-util'. +- If your update is crashing part-way into the update, there is sometimes an issue with older/fussy USB controllers (they can show up/disappear/then show up again) + - Try a direct connection to the USB port, do not use a USB hub, and use shorter cable. If possible, pick a port connected to the main board. + - Switch to a different PC/Laptop and use different ports. USB-C ports are recommended but some have also reported having a fussy C port. + - Hold down the (-) button for the entire firmware update, do not release until near the end. +- `DC Low` message: a pc/laptop cannot fully power Pinecil, it generally can only get 5 V (non-PD) to communicate for firmware updates and Pinecil will report 'DC Low'. This is normal. +- If `dfu-util` aborts with an error like + ``` + dfu-util: Cannot open DFU device 28e9:0189 found on devnum 42 (LIBUSB_ERROR_IO) + ``` + and `dmesg` reports USB errors like these + ``` + kernel: usb 1-1: reset full-speed USB device number 42 using xhci_hcd + kernel: usb 1-1: device descriptor read/64, error -71 + kernel: usb 1-1: device descriptor read/64, error -71 + kernel: usb 1-1: reset full-speed USB device number 42 using xhci_hcd + kernel: usb 1-1: device descriptor read/64, error -71 + kernel: usb 1-1: device descriptor read/64, error -71 + kernel: usb 1-1: reset full-speed USB device number 42 using xhci_hcd + kernel: usb 1-1: Device not responding to setup address. + kernel: usb 1-1: Device not responding to setup address. + kernel: usb 1-1: device not accepting address 42, error -71 + ``` + then try to disable USB autosuspend. + This can be done with a set of udev rules specifically for the Pinecil: + ```udev + SUBSYSTEM=="usb", ATTR{idVendor}=="28e9", ATTR{idProduct}=="0189", MODE:="0660" + SUBSYSTEM=="usb", ATTR{idVendor}=="28e9", ATTR{idProduct}=="0189", GROUP="plugdev" + SUBSYSTEM=="usb", ATTR{idVendor}=="28e9", ATTR{idProduct}=="0189", TEST=="power/control", ATTR{power/control}="on" + ``` + +## Windows + +Two Options for Windows + +### Option 1: use command line + +### Steps + +⛔ Do not use the DC barrel jack while updating firmware or you may destroy your PC. ⛔ + +1. Using command line `dfu-util` is similar to above for Linux / Mac. +2. Highly recommend updating `dfu-util` to the newest version. +3. Download and extract the firmware package from GitHub [IronOS Releases](https://github.com/Ralim/IronOS/releases). +4. Enter DFU mode: press and hold (-) button at the back of the iron (do not release). +5. Connect USB to PC, and USB-C to the back of Pinecil, keep holding (-) button down. +6. Screen will stay **black/off** to indicate the Pinecil is in DFU mode. This is normal. +7. After the USB cable is connected at both ends, wait ~10 seconds more, then release the (-) button. +8. Open PowerShell or Command window. +9. Change to the directory of the unzipped firmware files +10. Using `dfu-util,` flash the firmware using a command like this: + +``` +dfu-util -D Pinecil_EN.dfu +``` + +- If you have errors, see Troubleshooting above. + +### Option 2: use the GUI tool from chip vendor + +### Steps + +⛔ Do not use the DC barrel jack while updating firmware or you may destroy your PC. ⛔ + +1. If you are uncomfortable with the command line, then this chip vendor supplied GUI tool/drivers is an option. +2. Download and extract the firmware package from GitHub [IronOS Releases](https://github.com/Ralim/IronOS/releases). +3. Download both the `GD32 MCU DFU TOOL` and the `GD32 Dfu Drivers`. + - GD32 DFU Tool [here](http://www.gd32mcu.com/en/download?kw=GD32+MCU+Dfu+Tool&lan=en). If the link breaks, search for "GD32 MCU Dfu Tool" at this [link](http://www.gd32mcu.com/en/download/). + - GD32 DFU Drivers [here](http://www.gd32mcu.com/en/download?kw=GD32+Dfu+Drivers&lan=en). If the link breaks, search for "GD32 Dfu Drivers" at this [link](http://www.gd32mcu.com/en/download/). + - Check properties of both downloads, tick Unblock if needed, then Unzip +4. Install the drivers and the GD32 DFU tool (ignore prompts to update the tool). +5. Enter DFU mode: press and hold (`-`) button at the back of Pinecil (do not release). +6. Connect Pinecil to a PC via USB cable (do not release the (`-`) yet). +7. Screen will stay **black/off** to indicate the Pinecil is in DFU mode. This is normal. +8. You may hear a beep from Windows as it connects to Pinecil in DFU mode. +9. If you see windows notification that it `does not recognize USB device`, then you didn't connect, repeat step 3-8. +10. Open the GD32 DFU Tool (ignore prompts to update tool). +11. At the top of the DFU tool, you should see `GD DFU DEVICE 1` appear if you successfully connected Pinecil. +12. If DFU Device box at top is blank, then Pinecil is not connected in DFU mode, repeat steps 3-11. +13. If it has been more than 10 seconds since you connected the USB cable, Release the (`-`) button. (don't use Upload from Device section) +14. Select `Download to device` > Open > Browse to folder you unzipped in step 2. +15. Select the `hex` file for language. English is Pinecil_EN.hex , tick `Verify after download`. +16. Click `OK` at bottom. After a few minutes you will see 0-100%, Download successfully! Click `Leave DFU` at the top. +17. Disconnect Pinecil cable from PC, plug it into a power supply. +18. Do not need to press any buttons, a new screen should appear. +19. To confirm upgrade, hold the minus (`-`) button down for a few seconds, it then shows new firmware version v2.xx.x....date + +- If you have errors, see Troubleshooting above. diff --git a/Documentation/Flashing/Pinecil V2.md b/Documentation/Flashing/Pinecil V2.md new file mode 100644 index 00000000..82ce680c --- /dev/null +++ b/Documentation/Flashing/Pinecil V2.md @@ -0,0 +1,32 @@ +# Flashing / Upgrading your iron + +## Downloading source file + +In the development of this firmware, there are three _types_ of firmware released. +These are the "Main" stable releases, which generally have high confidence in being bug free. +Release candidates are released slightly more often, and these are generally perfectly fine for everyday use. These are released early to allow for translation checking and for wonderful people to help spot bugs and regressions. +Finally, there are the "mainline" builds, which are built from the main git branch. +These are built on every change and can be found on the Actions tab (see below). + +### Main release + +Main releases are made to the [releases page](https://github.com/Ralim/IronOS/releases). +Download the zip file that matches your model of soldering iron and extract it. +Select the appropriate file type for your unit, in general Miniware devices need `.hex` and Pinecil needs `.dfu`. +Flash according to details below + +### Bleeding edge / latest + +For the _latest_ code, you will need to download the zip file from the artifacts page on the build for what you want. +Head to the [Actions](https://github.com/Ralim/IronOS/actions) page and then select the run for the appropriate branch you would like. +In general you probably want `master`. + +Once you click on a run, scroll down to the "Artifacts" section and then click on your model to download a zip file. +Then this works the same as a production release (use the correct file). + +# Pinecil V2 + +- The MCU in V2 is Bouffalo BL706 and does _not_ use usb-dfu for flashing as the previous MCU did. +- The current firmware (2.18) is very fresh and no upgrade is available/needed. +- When an update is released for V2, then IronOS will also include an update method to follow. +- Background on the [BL706 chipset](https://lupyuen.github.io/articles/bl706) diff --git a/Documentation/Flashing/TS100.md b/Documentation/Flashing/TS100.md new file mode 100644 index 00000000..c5b8d1d2 --- /dev/null +++ b/Documentation/Flashing/TS100.md @@ -0,0 +1,120 @@ +# Flashing / Upgrading your iron + +## Downloading source file + +In the development of this firmware, there are three _types_ of firmware released. +These are the "Main" stable releases, which generally have high confidence in being bug free. +Release candidates are released slightly more often, and these are generally perfectly fine for everyday use. These are released early to allow for translation checking and for wonderful people to help spot bugs and regressions. +Finally, there are the "mainline" builds, which are built from the main git branch. +These are built on every change and can be found on the Actions tab (see below). + +### Main release + +Main releases are made to the [releases page](https://github.com/Ralim/IronOS/releases). +Download the zip file that matches your model of soldering iron and extract it. +Select the appropriate file type for your unit, in general Miniware devices need `.hex` and Pinecil needs `.dfu`. +Flash according to details below + +### Bleeding edge / latest + +For the _latest_ code, you will need to download the zip file from the artifacts page on the build for what you want. +Head to the [Actions](https://github.com/Ralim/IronOS/actions) page and then select the run for the appropriate branch you would like. +In general you probably want `master`. + +Once you click on a run, scroll down to the "Artifacts" section and then click on your model to download a zip file. +Then this works the same as a production release (use the correct file). + +# TS100 + +This is completely safe, but if it goes wrong just put the `.hex` file from the official website ([TS100](https://www.minidso.com/forum.php?mod=viewthread&tid=868&extra=page%3D1) onto the unit and you're back to the old firmware. Downloads for the `.hex` files to flash are available on the [releases page.](https://github.com/Ralim/IronOS/releases) The file you want is called TS100.zip. Inside the zip file (make sure to extract the file before flashing with it) will be a file called `TS100_{Language-Code}.hex`. + +Officially the bootloader on the devices only works under Windows (use the built-in File Explorer, as alternative file managers or copy handlers like Teracopy will fail). However, users have reported that it does work under Mac, and can be made to work under Linux _sometimes_. Details over on the [wiki page](https://github.com/Ralim/IronOS/wiki/Upgrading-Firmware). + +1. Hold the button closest to the tip (MHP30 the left button on the back), and plug in the USB to the computer. +2. The unit will appear as a USB drive. (Screen will say `DFU` on it.) +3. Drag the `.hex` file onto the USB drive. +4. The unit will disconnect and reconnect. +5. The filename will have changed to end in _.RDY_ or _.ERR_ +6. If it ends with _.RDY_ you're done! Otherwise, something went wrong. +7. If it didn't work the first time, try copying the file again without disconnecting the device, often it will work on the second shot. +8. Disconnect the USB and power up the device. You're good to go. + +For the more adventurous out there, you can also load this firmware onto the device using an SWD programmer, for easier installation follow the guide at the end of this document. + +On the bottom of the MCU riser PCB, there are 4 pads for programming. On v2.51A PCB revision `USB_D+` is shorted to `SWDIO` and `USB_D-` is shorted to `SWCLK` so debugging works without disassembly (attach while staying in the bootloader). Installing [IronOS-dfu](https://github.com/Ralim/IronOS-dfu) is recommended as it allows reliable flashing of binary files with [dfu-util](http://dfu-util.sourceforge.net/). + +On some newer TS100 units, the SWD pins are wired up to the USB pins, on older ones they are not sadly. + +## Mac + +sgr1ff1n (Shane) commented in [issue 11](https://github.com/Ralim/IronOS/issues/11) that upgrading worked on their Mac as per normal: + +> I just wanted to say that I was able to update the firmware on my ts100 from the stock version to 1.08 found in this repository using my Mac. I simply followed the same steps however through Finder. I have a MacBook Pro (13-inch, Mid 2012) running Sierra 10.12.4 (16E195). + +## Linux + +While in the past there were reports of unreliable upgrades, the consensus in [issue 11](https://github.com/Ralim/IronOS/issues/11) is that things work mostly as expected in Linux. + +@awigen has contributed a script [flash_ts100_linux.sh](https://raw.githubusercontent.com/Ralim/IronOS/master/Flashing/flash_ts100_linux.sh) that works on Ubuntu 16.04 as well as other distros. + +If you want to do it manually (or if the script does not work for some reason) the general procedure is the same as for Windows, the differences are in the way to mount the unit and copy the firmware. +Remember that after flashing, the firmware filename will have changed to end in `.RDY` or `.ERR` or `.NOT` and only `.RDY` means the flashing was successful! + +- The unit has to be mounted as `msdos` type (thanks @balrog-kun for having spotted it). You may disable automount, but unmounting the automounted drive and remounting as `msdos` works fine. You do not need to turn off automounting, but you do need to unmount the device with `umount`. +- It is recommended to use an all-caps filename for the firmware, even if successful flashing were done with lower case names. +- Avoid USB hubs, plug directly in your computer. +- If it fails, try again several times without unplugging. Just let it remount. + +Example, to be run as root, once the unit has been plugged in DFU mode and auto-mounted: + +```bash +FW=ts100.hex +unset NAME +eval $(lsblk -P -p -d --output NAME,MODEL|grep "DFU[ _]Disk") +[ -z ${NAME+x} ] && exit 1 # Could not find DFU device +umount "$NAME" +mkdir /tmp/mntdfu +mount -t msdos "$NAME" /tmp/mntdfu +cp "$FW" "/tmp/mntdfu/$(basename $FW|tr a-z A-Z)" +sync +umount /tmp/mntdfu +rmdir /tmp/mntdfu +``` + +Device will reboot and automount will rerun if not disabled. +Check the extension of your firmware, it should be `.RDY` now. + +## FAQ + +#### The file is showing up with the extension `.ERR` + +This can occur during the programming process if any of the checks in the bootloader fail. This is often triggered by anti-virus software or using a non-Windows host OS. + +First, try just copying the file a second time. + +1. Attach the iron in DFU mode. +2. Copy the `.hex` file to the device. +3. The device disconnects and connects with the `.ERR` file. +4. Copy the same `.hex` file again **⛔ DO NOT TRY AND DELETE THE OLD ONE ⛔**. +5. The device will disconnect and reconnect again. +6. The device _should_ now have the `.RDY` file. +7. You're done. + +If this fails and you are on Mac or Linux reading the wiki page about programming can help. There is also a very long issue thread going through all of the different attempts around this too. + +If you are on Windows, it's often best to try another computer (friends, work, partners etc.). + +#### Device randomly disconnects or does not show up in DFU mode + +1. Check if the USB cable you are using has the data pins; test it on another device. There are a surprisingly large number of micro-USB cables that are power _only_. + +2. Try other USB ports. Often different USB controllers will interact with the units differently due to design quirks in the Miniware design. + +### Alternative bootloader + +If you are an advanced user, and you have used `usb-dfu` tools before, or you would like to learn; there is an alternative bootloader for these irons. +This will **NOT** show up as a USB storage drive, but instead show up using a standard DFU protocol device. You can then use dfu tools or GUIs to upgrade the iron using the `.bin` files that are posted to the releases page. + +To install this alternative bootloader, follow the instructions [here](https://github.com/Ralim/IronOS-dfu/blob/mainline/docs/Bootloader.md). + +Note that this is only recommended for users who know what they are doing. If you don't understand how this works, please don't flash this. diff --git a/Documentation/Flashing/TS80(P).md b/Documentation/Flashing/TS80(P).md new file mode 100644 index 00000000..deaa6b98 --- /dev/null +++ b/Documentation/Flashing/TS80(P).md @@ -0,0 +1,118 @@ +# Flashing / Upgrading your iron + +## Downloading source file + +In the development of this firmware, there are three _types_ of firmware released. +These are the "Main" stable releases, which generally have high confidence in being bug free. +Release candidates are released slightly more often, and these are generally perfectly fine for everyday use. These are released early to allow for translation checking and for wonderful people to help spot bugs and regressions. +Finally, there are the "mainline" builds, which are built from the main git branch. +These are built on every change and can be found on the Actions tab (see below). + +### Main release + +Main releases are made to the [releases page](https://github.com/Ralim/IronOS/releases). +Download the zip file that matches your model of soldering iron and extract it. +Select the appropriate file type for your unit, in general Miniware devices need `.hex` and Pinecil needs `.dfu`. +Flash according to details below + +### Bleeding edge / latest + +For the _latest_ code, you will need to download the zip file from the artifacts page on the build for what you want. +Head to the [Actions](https://github.com/Ralim/IronOS/actions) page and then select the run for the appropriate branch you would like. +In general you probably want `master`. + +Once you click on a run, scroll down to the "Artifacts" section and then click on your model to download a zip file. +Then this works the same as a production release (use the correct file). + +# TS80 / TS80P + +This is completely safe, but if it goes wrong just put the `.hex` file from the official website ([TS80](https://www.minidso.com/forum.php?mod=viewthread&tid=868&extra=page%3D1)/[TS80P](https://www.minidso.com/forum.php?mod=viewthread&tid=4070&extra=page%3D1) onto the unit and you're back to the old firmware. Downloads for the `.hex` files to flash are available on the [releases page.](https://github.com/Ralim/IronOS/releases) The file you want is called TS80.zip or TS80P.zip. Inside the zip file (make sure to extract the file before flashing with it) will be a file called `TS80_{Language-Code}.hex`/`TS80P_{Language-Code}.hex`. + +Officially the bootloader on the devices only works under Windows (use the built-in File Explorer, as alternative file managers or copy handlers like Teracopy will fail). However, users have reported that it does work under Mac, and can be made to work under Linux _sometimes_. Details over on the [wiki page](https://github.com/Ralim/TS80/wiki/Upgrading-Firmware). + +1. Hold the button closest to the tip (MHP30 the left button on the back), and plug in the USB to the computer. +2. The unit will appear as a USB drive. (Screen will say `DFU` on it.) +3. Drag the `.hex` file onto the USB drive. +4. The unit will disconnect and reconnect. +5. The filename will have changed to end in _.RDY_ or _.ERR_ +6. If it ends with _.RDY_ you're done! Otherwise, something went wrong. +7. If it didn't work the first time, try copying the file again without disconnecting the device, often it will work on the second shot. +8. Disconnect the USB and power up the device. You're good to go. + +For the more adventurous out there, you can also load this firmware onto the device using an SWD programmer, for easier installation follow the guide at the end of this document. + +On the USB port, `USB_D+` is shorted to `SWDIO` and `USB_D-` is shorted to `SWCLK` so debugging works without disassembly (attach while staying in the bootloader). Installing [IronOS-dfu](https://github.com/Ralim/IronOS-dfu) is recommended as it allows reliable flashing of binary files with [dfu-util](http://dfu-util.sourceforge.net/). + +## Mac + +sgr1ff1n (Shane) commented in [issue 11](https://github.com/Ralim/IronOS/issues/11) that upgrading worked on their Mac as per normal: + +> I just wanted to say that I was able to update the firmware on my TS100 from the stock version to 1.08 found in this repository using my Mac. I simply followed the same steps however through Finder. I have a MacBook Pro (13-inch, Mid 2012) running Sierra 10.12.4 (16E195). + +## Linux + +While in the past there were reports of unreliable upgrades, the consensus in [issue 11](https://github.com/Ralim/IronOS/issues/11) is that things work mostly as expected in Linux. + +@awigen has contributed a script [flash_TS100_linux.sh](https://raw.githubusercontent.com/Ralim/IronOS/master/Flashing/flash_TS100_linux.sh) that works on Ubuntu 16.04 as well as other distros. + +If you want to do it manually (or if the script does not work for some reason) the general procedure is the same as for Windows, the differences are in the way to mount the unit and copy the firmware. +Remember that after flashing, the firmware filename will have changed to end in `.RDY` or `.ERR` or `.NOT` and only `.RDY` means the flashing was successful! + +- The unit has to be mounted as `msdos` type (thanks @balrog-kun for having spotted it). You may disable automount, but unmounting the automounted drive and remounting as `msdos` works fine. You do not need to turn off automounting, but you do need to unmount the device with `umount`. +- It is recommended to use an all-caps filename for the firmware, even if successful flashing were done with lower case names. +- Avoid USB hubs, plug directly in your computer. +- If it fails, try again several times without unplugging. Just let it remount. + +Example, to be run as root, once the unit has been plugged in DFU mode and auto-mounted: + +```bash +FW=TS80.hex +unset NAME +eval $(lsblk -P -p -d --output NAME,MODEL|grep "DFU[ _]Disk") +[ -z ${NAME+x} ] && exit 1 # Could not find DFU device +umount "$NAME" +mkdir /tmp/mntdfu +mount -t msdos "$NAME" /tmp/mntdfu +cp "$FW" "/tmp/mntdfu/$(basename $FW|tr a-z A-Z)" +sync +umount /tmp/mntdfu +rmdir /tmp/mntdfu +``` + +Device will reboot and automount will rerun if not disabled. +Check the extension of your firmware, it should be `.RDY` now. + +## FAQ + +#### The file is showing up with the extension `.ERR` + +This can occur during the programming process if any of the checks in the bootloader fail. This is often triggered by anti-virus software or using a non-Windows host OS. + +First, try just copying the file a second time. + +1. Attach the iron in DFU mode. +2. Copy the `.hex` file to the device. +3. The device disconnects and connects with the `.ERR` file. +4. Copy the same `.hex` file again **⛔ DO NOT TRY AND DELETE THE OLD ONE ⛔**. +5. The device will disconnect and reconnect again. +6. The device _should_ now have the `.RDY` file. +7. You're done. + +If this fails and you are on Mac or Linux reading the wiki page about programming can help. There is also a very long issue thread going through all of the different attempts around this too. + +If you are on Windows, it's often best to try another computer (friends, work, partners etc.). + +#### Device randomly disconnects or does not show up in DFU mode + +1. Check if the USB cable you are using has the data pins; test it on another device. There are a surprisingly large number of micro-USB cables that are power _only_. + +2. Try other USB ports. Often different USB controllers will interact with the units differently due to design quirks in the Miniware design. + +### Alternative bootloader + +If you are an advanced user, and you have used `usb-dfu` tools before, or you would like to learn; there is an alternative bootloader for these irons. +This will **NOT** show up as a USB storage drive, but instead show up using a standard DFU protocol device. You can then use dfu tools or GUIs to upgrade the iron using the `.bin` files that are posted to the releases page. + +To install this alternative bootloader, follow the instructions [here](https://github.com/Ralim/IronOS-dfu/blob/mainline/docs/Bootloader.md). + +Note that this is only recommended for users who know what they are doing. If you don't understand how this works, please don't flash this. diff --git a/Documentation/GettingStarted.md b/Documentation/GettingStarted.md index 0dbcf43d..3843d746 100644 --- a/Documentation/GettingStarted.md +++ b/Documentation/GettingStarted.md @@ -1,12 +1,20 @@ # Getting Started Getting started with IronOS on your Pinecil/TS80/TS80P/TS100. -If your device did not come with IronOS already installed, or if you need to update to the latest version; please see the [Flashing Guide](/Documentation/Flashing.md). It is recommended to update to the newest stable release. +If your device did not come with IronOS already installed, or if you need to update to the latest version; please see the flashing guide for your device: + +- [MHP30](https://ralim.github.io/IronOS/Flashing/MHP30) +- [Pinecil V1](https://ralim.github.io/IronOS/Flashing/Pinecil%20V1/) +- [Pinecil V2](https://ralim.github.io/IronOS/Flashing/Pinecil%20V2/) +- [TS80 / TS80P](https://ralim.github.io/IronOS/Flashing/TS80%28P%29/) +- [TS100](https://ralim.github.io/IronOS/Flashing/TS100) + +It is recommended to update to the newest stable release. Once your Iron has been flashed, on first power on it _may_ warn you about the system settings being reset. _Do not panic_; this is 100% completely normal. This is here to note to you that they have been reset to handle the internal structure changing. -If you receive a warning about the accelerometer or USB-PD not being detected, please see [here](/Documentation/HardwareIssues.md). +If you receive a warning about the accelerometer or USB-PD not being detected, please see [here](https://ralim.github.io/IronOS/HardwareIssues/). ## The Home screen (or idle screen) @@ -14,7 +22,7 @@ This is the landing page of the firmware, from here you can choose to either go By default this will show a screen similar to the one below: -![Home Screen](/Documentation/images/HomeScreen.png) +![Home Screen](https://raw.githubusercontent.com/Ralim/IronOS/dev/Documentation/images/HomeScreen.png) Note that this may be drawn mirrored depending on the orientation of your screen (detailed mode shows a different home screen). @@ -26,7 +34,7 @@ In the settings, you can turn on a detailed idle screen instead. The buttons sti Depending on how your device is being powered, at right side of the screen, the firmware will either show the voltage your unit is being provided with, a battery icon (if battery mode is enabled) or a power plug icon. -If you see an (**X**) where the soldering iron should be, this indicates that the firmware can't see the tip connected. This could indicate a problem with the iron or tip. First, try removing the tip screw and tip and gently reinstalling both; ensure that the tip is seated all the way back. If the issue persists please see the [hardware issues section](/Documentation/HardwareIssues.md). +If you see an (**X**) where the soldering iron should be, this indicates that the firmware can't see the tip connected. This could indicate a problem with the iron or tip. First, try removing the tip screw and tip and gently reinstalling both; ensure that the tip is seated all the way back. If the issue persists please see the [hardware issues section](https://ralim.github.io/IronOS/HardwareIssues/). This OLED screen features burn-in protection; if no buttons or movement have been detected for a while it will automatically blank the screen to reduce burn-in when the iron is left unattended. Any movement or button press will wake the screen. @@ -36,7 +44,7 @@ Additionally to the two icons shown, there are two "hidden" actions that can be If you press and hold the button near the tip (`+/A`), this enters the temperature adjustment screen. Normally this is not required; but if you would like to adjust the set temperature _before_ the tip starts to heat, this can be useful. -If you press and hold the button near the rear of the iron (`-/B`), it will take you into the [debug menu](/Documentation/DebugMenu.md). +If you press and hold the button near the rear of the iron (`-/B`), it will take you into the [debug menu](https://ralim.github.io/IronOS/DebugMenu/). ## Soldering Mode @@ -59,14 +67,13 @@ In Sleep mode, the temperature of the iron automatically lowers to 150 °C (defa Simply picking up or moving the iron will wake it back up into soldering mode. You can also press any button and this will also wake the iron up. #### Optional Hall Effect Feature (Pinecil only): -Pinecil has an unpopulated footprint (U14) for a hall effect sensor (Si7210-B-00-IV). Adding the sensor and placing a neodymium magnet on the holder stand will trigger Pinecil to sleep after it enters the stand, and Zzzz will appear on-screen. The magnet is positioned on the stand in proximity to the sensor/handle which then activates one of 10 user defined settings (0=off, 1=lowest sensitivity, 9=highest sensitivity). Read the Hall Sensor document for [details on installation](/Documentation/HallSensor.md). +Pinecil has an unpopulated footprint (U14) for a hall effect sensor (Si7210-B-00-IV). Adding the sensor and placing a neodymium magnet on the holder stand will trigger Pinecil to sleep after it enters the stand, and Zzzz will appear on-screen. The magnet is positioned on the stand in proximity to the sensor/handle which then activates one of 10 user defined settings (0=off, 1=lowest sensitivity, 9=highest sensitivity). Read the Hall Sensor document for [details on installation](https://ralim.github.io/IronOS/HallSensor/). ### Idle Shutdown If, after entering sleep mode, the iron still does not see movement for a much longer time (default=10 minutes); it will shut down and return to the home screen. - ## Settings Menu The settings menu is the most evolving aspect of the firmware, so each option is not documented here. However, do not panic, as every menu option has an on-screen description so you don't _need_ to come back here to figure them all out. @@ -82,7 +89,7 @@ You can long hold buttons to change through options faster, and there is some ac There is a small scrollbar that appears along the right edge of the screen to indicate how far through the current list you are (looks like a dot). -Additionally, this scrollbar will blink rapidly when you are on the last value in a range of a sub-menu. For example, if you are in Motion Sensitivity, which has a range of 0 - 9, it will blink when you are at 9. +Additionally, this scrollbar will blink rapidly when you are on the last value in a range of a sub-menu. For example, if you are in Motion Sensitivity, which has a range of 0 - 9, it will blink when you are at 9. I highly recommend taking a few minutes to go through all of the options in the menu to get a feel for what you can change, almost every aspect of the internal system is adjustable to suit your needs. diff --git a/Documentation/HallSensor.md b/Documentation/HallSensor.md index e3e5133d..cca5e2af 100644 --- a/Documentation/HallSensor.md +++ b/Documentation/HallSensor.md @@ -8,16 +8,16 @@ Simply moving the iron or pressing any button will wake it back up into solderin ### Optional Hall Effect Feature (Pinecil only): -Inside the [Sleep Menu](https://github.com/Ralim/IronOS/blob/dev/Documentation/Settings.md#setting-sleep-temp) is an additional type of sleep setting. Pinecil has an unpopulated footprint (**U14**) for a hall effect sensor, Silicon Labs **Si7210-B-00-IV**. After installing the hall effect sensor (HES), it is possible to auto-trigger Pinecil to enter sleep mode when it enters the stand, and *Zzzz* will appear (or text in detailed mode). This could be a fun enhancement for any Pinecil and adds a feature typically only found in more expensive high-end irons. The HES is available at many electronic stores for ~$2-$6. +Inside the [Sleep Menu](https://ralim.github.io/IronOS/Settings/#setting-sleep-temp) is an additional type of sleep setting. Pinecil has an unpopulated footprint (**U14**) for a hall effect sensor, Silicon Labs **Si7210-B-00-IV**. After installing the hall effect sensor (HES), it is possible to auto-trigger Pinecil to enter sleep mode when it enters the stand, and _Zzzz_ will appear (or text in detailed mode). This could be a fun enhancement for any Pinecil and adds a feature typically only found in more expensive high-end irons. The HES is available at many electronic stores for ~$2-$6. After installing the HES on the PCB, place a magnet on the stand close enough to the sensor to activate one of ten user selectable settings. - - 0=off, 1=1000, 2=750, 3=500, 4=250, 5=150, 6=100, 7=75, 8=50, 9=25 (9 has the highest sensitivity to magnets) - - Setting of 1 might be used if you solder on PCBs with magnets and do not wish Pinecil to auto-sleep constantly. A very strong/large magnet would be required on the stand to activate the sleep mode if you use setting 1. - - Setting of 9 would be useful if you only had a small magnet and are not concerned about Pinecil falsely triggering sleep mode near magnetized items/tools. - - Actively watch the _hall_ number change while you slowly move the magnet around to seek the best locations & whether you have too many or too few magnets. Position the magnet(s) where you have the highest hall number will ensure consistent sleep mode when you place the iron in the stand. This requires some experimenting. - - [See debug menu for how to display the _Hall_ number](/Documentation/DebugMenu.md) - - Note that the sensor is physically located near the copper contacts for the tip at the front of the handle. [Reference Schematics U14](https://files.pine64.org/doc/Pinecil/Pinecil_schematic_v1.0a_20201120.pdf). - - Neodymium magnets are recommended. If using small magnets, 2-3 may be required, but too many could also be detrimental. - - Positioning/type/quantity of magnets is important for best results. Sometimes too many magnets breaks the effect by distorting the magnetic field **[as seen in this demo video](https://www.youtube.com/shorts/afkqKwCX00I)**. The video shows magnets at the top of the stand, and the pinecil goes correctly into Zzzz with *only* those magnets. When more magnets are added at the side, the Pinecil did not go to sleep, which is contrary to the goal. See the PDF below for details on magnetic fields with SI7210-B. - - Orientation of North and South faces of magnets is important to increase reaction of the hall sensor [see data sheet SI7210-B-00-IV](https://www.silabs.com/documents/public/application-notes/an1018-si72xx-sensors.pdf). - + +- 0=off, 1=1000, 2=750, 3=500, 4=250, 5=150, 6=100, 7=75, 8=50, 9=25 (9 has the highest sensitivity to magnets) +- Setting of 1 might be used if you solder on PCBs with magnets and do not wish Pinecil to auto-sleep constantly. A very strong/large magnet would be required on the stand to activate the sleep mode if you use setting 1. +- Setting of 9 would be useful if you only had a small magnet and are not concerned about Pinecil falsely triggering sleep mode near magnetized items/tools. +- Actively watch the _hall_ number change while you slowly move the magnet around to seek the best locations & whether you have too many or too few magnets. Position the magnet(s) where you have the highest hall number will ensure consistent sleep mode when you place the iron in the stand. This requires some experimenting. +- [See debug menu for how to display the _Hall_ number](https://ralim.github.io/IronOS/DebugMenu/) +- Note that the sensor is physically located near the copper contacts for the tip at the front of the handle. [Reference Schematics U14](https://files.pine64.org/doc/Pinecil/Pinecil_schematic_v1.0a_20201120.pdf). +- Neodymium magnets are recommended. If using small magnets, 2-3 may be required, but too many could also be detrimental. +- Positioning/type/quantity of magnets is important for best results. Sometimes too many magnets breaks the effect by distorting the magnetic field **[as seen in this demo video](https://www.youtube.com/shorts/afkqKwCX00I)**. The video shows magnets at the top of the stand, and the pinecil goes correctly into Zzzz with _only_ those magnets. When more magnets are added at the side, the Pinecil did not go to sleep, which is contrary to the goal. See the PDF below for details on magnetic fields with SI7210-B. +- Orientation of North and South faces of magnets is important to increase reaction of the hall sensor [see data sheet SI7210-B-00-IV](https://www.silabs.com/documents/public/application-notes/an1018-si72xx-sensors.pdf). diff --git a/Documentation/HardwareIssues.md b/Documentation/HardwareIssues.md index 423f9a07..16fd7c95 100644 --- a/Documentation/HardwareIssues.md +++ b/Documentation/HardwareIssues.md @@ -28,7 +28,7 @@ The best way to see if this is the case is to measure the resistance across the you are expecting to see measurements in the range of 4-10 ohms. Anything higher than 10 ohms is _generally_ an issue. ## Iron will not heat up and displays a high temperature -Check the Rtip and CHan numbers ([see debug menu](/Documentation/DebugMenu.md)). Extremly high CHan is suspect to a problem with the cold junction compensation temperature sensor. +Check the Rtip and CHan numbers ([see debug menu](https://ralim.github.io/IronOS/DebugMenu/)). Extremly high CHan is suspect to a problem with the cold junction compensation temperature sensor. For Pinecil V1, inspect near U10 which is the TMP36 sensor ([see issue here](https://github.com/Ralim/IronOS/issues/1234)). You may be able to reflow/resolder the TMP36 chip at U10 to correct a weak solder joint. diff --git a/Documentation/Menu.md b/Documentation/Menu.md index b073cf0c..869547c1 100644 --- a/Documentation/Menu.md +++ b/Documentation/Menu.md @@ -7,7 +7,7 @@ In this firmware for these soldering irons, all settings are adjustable on the d In this mode the iron works as you would expect, pressing either button will take you to a temperature change screen. - Use each button to go up/down in temperature. Pressing both buttons exits the temperature menu (or wait 3 seconds and it will time out). - Pressing both buttons or holding the rear button (`-/B`) will exit Soldering Mode. -- Holding the front button (`+/A`) will enter [Boost mode](/Documentation/Menu.md#boost-mode) (if enabled). +- Holding the front button (`+/A`) will enter [Boost mode](https://ralim.github.io/IronOS/Menu/#boost-mode) (if enabled). ## Settings mode @@ -38,7 +38,7 @@ To calibrate your iron: 7. Press both buttons at the same time to Save and Exit to the menu ### Calibrate Tip CJC -This performs a Tip Cold Junction Calibration (CJC) ([see Temperature for details](/Documentation/Temperature.md)). This is normally not needed unless you have an issue with tip temperature or your tips are wearing out prematurely. Changing tip lengths does not necessarily mean a calibration is needed. Check first that your tips are not defective, and measured resistance is close to specifications (Pinecil/TS100 short tips 6.2 Ω, long tips 8 Ω, TS80(P) ~4.5 Ω). +This performs a Tip Cold Junction Calibration (CJC) ([see Temperature for details](https://ralim.github.io/IronOS/Temperature/)). This is normally not needed unless you have an issue with tip temperature or your tips are wearing out prematurely. Changing tip lengths does not necessarily mean a calibration is needed. Check first that your tips are not defective, and measured resistance is close to specifications (Pinecil/TS100 short tips 6.2 Ω, long tips 8 Ω, TS80(P) ~4.5 Ω). What this is for: some tips have an offset on their readings which causes issues, i.e., the actual temperature of the tip is much higher than displayed. To calibrate this out, perform the following steps. diff --git a/Documentation/Power.md b/Documentation/Power.md index c6b57702..e2a08db3 100644 --- a/Documentation/Power.md +++ b/Documentation/Power.md @@ -39,8 +39,8 @@ Therefore the Pinecil and TS100 perform poorly when run off 12V power supplies a These soldering irons use a FET to switch the power to the soldering iron tip. This is a P-MOSFET and its controlled via a small transistor circuit, which in turn is controlled via the MCU (i.e., STM32). The MCU controls this PWM output proportional to the output from the PID control loop running in the software. -To measure the tip temperature in the iron, the iron has a small op-amp connected across the terminals at the cold end of the tip. This is setup to measure the voltage across the same terminals that are used to power the tip. In order to read the very small voltage generated by the [thermocouple cold junction](/Documentation/Temperature.md), the iron's output must be turned off for a moment. +To measure the tip temperature in the iron, the iron has a small op-amp connected across the terminals at the cold end of the tip. This is setup to measure the voltage across the same terminals that are used to power the tip. In order to read the very small voltage generated by the [thermocouple cold junction](https://ralim.github.io/IronOS/Temperature/), the iron's output must be turned off for a moment. Once the output is turned off (via the FET), the system has a recovery time as the tip capacitance discharges and the op-amp exits saturation. After this delay period, the MCU's ADC (analog-to-digital converter) samples the output of the op-amp 8 times quickly and then sets a flag to turn the PWM output back on. -This enforces a small dead time in the output signal while this occurs, so there is a balance between sampling the temperature often to maintain a stable tip temperature control and sampling less often to increase the maximum power deliverable to the tip ([see Complexity of measurement](/Documentation/Temperature.md#complexity-of-measurement)). +This enforces a small dead time in the output signal while this occurs, so there is a balance between sampling the temperature often to maintain a stable tip temperature control and sampling less often to increase the maximum power deliverable to the tip ([see Complexity of measurement](https://ralim.github.io/IronOS/Temperature/#complexity-of-measurement)). diff --git a/Documentation/Troubleshooting.md b/Documentation/Troubleshooting.md index 5eacc38b..7f4c8bb4 100644 --- a/Documentation/Troubleshooting.md +++ b/Documentation/Troubleshooting.md @@ -2,7 +2,7 @@ If your device is not operating as expected; and you are within the manufacturer support window, please first contact your manufacturer and RMA / warranty your device. -If your iron is not working as expected, [the Debug menu](DebugMenu.md) exposes internal measurements to help you narrow down the root cause of the issue. +If your iron is not working as expected, [the Debug menu](https://ralim.github.io/IronOS/DebugMenu/) exposes internal measurements to help you narrow down the root cause of the issue. Alongside all of these, issues with the soldering of the main MCU could cause all of these as well; and should always be checked. diff --git a/Documentation/index.md b/Documentation/index.md new file mode 100644 index 00000000..543fa259 --- /dev/null +++ b/Documentation/index.md @@ -0,0 +1,72 @@ +# IronOS - Flexible Soldering iron control Firmware + +The firmware implements all of the standard features of a 'smart' soldering iron, with lots of little extras and tweaks. +I highly recommend reading the installation guide fully when installing on your iron. And after install just explore the settings menu. + +For soldering irons that are designed to be powered by 'smart' power sources (PD and QC), the firmware supports settings around the negotiated power and voltage. +For soldering irons that are designed to be powered by batteries (TS100 & Pinecil), settings for a cutoff voltage for battery protection are supported. + +Currently **31** languages are supported. When downloading the firmware for your soldering iron, take note of the language code in the file name. + +This project is considered feature complete for use as a soldering iron, _so please suggest any feature improvements you would like!_ + +_This firmware does **NOT** support the USB port while running for changing settings. This is done through the onscreen menu only. Logos are edited on a computer and flashed like firmware._ + +| Device | DC | QC | PD | EPR | BLE | Battery | Recommended | +| :--------: | :-: | :-: | :-: | :-: | :-: | :-----: | :---------: | +| MHP30 | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ✔️ | +| Pinecil V1 | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ | +| Pinecil V2 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | +| TS80P | ❌ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ | +| TS100 | ✔️ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | +| TS80 | ❌ | ✔️ | ❌ | ❌ | ❌ | ✔️ | ❌ | + +\*Please note that Miniware started shipping TS100's using cloned STM32 Chips. While these do work with IronOS, their DFU bootloader works terribly, and it is hard to get it to successfully flash larger firmware images like IronOS without timing out. This is the main reason why the TS100 is **_no longer recommended_**. + +## Getting Started + +To get started with IronOS firmware, please jump to [Getting Started Guide](https://ralim.github.io/IronOS/GettingStarted/). +But the [TL;DR](https://www.merriam-webster.com/dictionary/TL%3BDR) is to press the button near the front of the iron to heat up. Use the button near the back of the iron to enter the settings menu. +Long hold the rear button in soldering mode to exit back to the start screen. + +## Installation + +For notes on installation for your device, please refer to the flashing guide for your device: + +- [MHP30](https://ralim.github.io/IronOS/Flashing/MHP30) +- [Pinecil V1](https://ralim.github.io/IronOS/Flashing/Pinecil%20V1/) +- [Pinecil V2](https://ralim.github.io/IronOS/Flashing/Pinecil%20V2/) +- [TS80 / TS80P](https://ralim.github.io/IronOS/Flashing/TS80%28P%29/) +- [TS100](https://ralim.github.io/IronOS/Flashing/TS100) + +## Key Features + +- PID style iron temperature control +- Automatic sleep with selectable sensitivity +- Motion wake support +- All settings exposed in the intuitive menu +- (TS100) Set a voltage lower limit for Lithium batteries so you don't kill your battery pack +- (TS80) Set 18 W or 24 W settings for your power bank +- (TS80P) Automatically negotiates appropriate PD and falls back to QC mode like TS80 +- (Pinecil) Supports all 3 power modes (PD, QC, DC In). +- (Pinecilv2) Supports USB-PD EPR for 28V operation. +- Improved readability Fonts, supporting multiple languages +- Use hardware features to improve reliability +- Can disable movement detection if desired +- Boost mode lets you temporarily change the temperature when soldering (i.e. raise the temperature for short periods) +- (TS100/Pinecil) Battery charge level indicator if power source set to a lipo cell count +- (TS80/TS80P/Pinecil) Power bank operating voltage is displayed +- [Custom boot up logo support](https://ralim.github.io/IronOS/Logo/) +- Automatic LCD rotation based on the orientation + +## Menu System + +This new firmware uses a new menu system to allow access to the settings on the device. +When on the main screen and having the tip plugged in, the unit shows a pair of prompts for the two most common operations. + +- Pressing the button near the tip enters the _soldering mode_ +- Pressing the button near the USB end enters the _settings menu_ +- When not in _soldering mode_, holding down the button near the tip will enter _soldering temperature adjust mode_ (This is the same as the one in the _soldering mode_, but allows to adjust the temperature before heating up), in _soldering mode_ however this will activate _boost mode_ as long as you hold down the button. +- Holding down the button near the USB end will show the _[debug menu](https://ralim.github.io/IronOS/DebugMenu/)._ In _soldering mode_ this ends the heating. + +Operation details are over in the [Menu information.](https://ralim.github.io/IronOS/Menu/) @@ -18,29 +18,34 @@ Currently **31** languages are supported. When downloading the firmware for your This project is considered feature complete for use as a soldering iron, _so please suggest any feature improvements you would like!_ -_This firmware does **NOT** support the USB port while running for changing settings. This is done through the onscreen menu only. Logos are edited using the tool or python script and uploaded in DFU mode._ +_This firmware does **NOT** support the USB port while running for changing settings. This is done through the onscreen menu only. Logos are edited on a computer and flashed like firmware._ - -| Device | DC | QC | PD | EPR | BLE | Battery | Recommended | -|:----------:|:--:|:--:|:--:|:---:|:---:|:-------:|:-----------:| -| MHP30 |❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ✔️ | -| Pinecil V1 |✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ | -| Pinecil V2 |✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | -| TS80P |❌ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ | -| TS100 |✔️ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | -| TS80 |❌ | ✔️ | ❌ | ❌ | ❌ | ✔️ | ❌ | +| Device | DC | QC | PD | EPR | BLE | Battery | Recommended | +| :--------: | :-: | :-: | :-: | :-: | :-: | :-----: | :---------: | +| MHP30 | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ✔️ | +| Pinecil V1 | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ | +| Pinecil V2 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | +| TS80P | ❌ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ | +| TS100 | ✔️ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | +| TS80 | ❌ | ✔️ | ❌ | ❌ | ❌ | ✔️ | ❌ | \*Please note that Miniware started shipping TS100's using cloned STM32 Chips. While these do work with IronOS, their DFU bootloader works terribly, and it is hard to get it to successfully flash larger firmware images like IronOS without timing out. This is the main reason why the TS100 is **_no longer recommended_**. ## Getting Started -To get started with IronOS firmware, please jump to [Getting Started Guide](Documentation/GettingStarted.md). +To get started with IronOS firmware, please jump to [Getting Started Guide](https://ralim.github.io/IronOS/GettingStarted/). But the [TL;DR](https://www.merriam-webster.com/dictionary/TL%3BDR) is to press the button near the front of the iron to heat up. Use the button near the back of the iron to enter the settings menu. Long hold the rear button in soldering mode to exit back to the start screen. ## Installation -For notes on installation for your device, please refer to the [Flashing Guide](Documentation/Flashing.md). +For notes on installation for your device, please refer to the flashing guide for your device: + +- [MHP30](https://ralim.github.io/IronOS/Flashing/MHP30) +- [Pinecil V1](https://ralim.github.io/IronOS/Flashing/Pinecil%20V1/) +- [Pinecil V2](https://ralim.github.io/IronOS/Flashing/Pinecil%20V2/) +- [TS80 / TS80P](https://ralim.github.io/IronOS/Flashing/TS80%28P%29/) +- [TS100](https://ralim.github.io/IronOS/Flashing/TS100) ## Key Features @@ -59,7 +64,7 @@ For notes on installation for your device, please refer to the [Flashing Guide]( - Boost mode lets you temporarily change the temperature when soldering (i.e. raise the temperature for short periods) - (TS100/Pinecil) Battery charge level indicator if power source set to a lipo cell count - (TS80/TS80P/Pinecil) Power bank operating voltage is displayed -- [Custom boot up logo support](Documentation/Logo.md) +- [Custom boot up logo support](https://ralim.github.io/IronOS/Logo/) - Automatic LCD rotation based on the orientation ## Menu System @@ -70,9 +75,9 @@ When on the main screen and having the tip plugged in, the unit shows a pair of - Pressing the button near the tip enters the _soldering mode_ - Pressing the button near the USB end enters the _settings menu_ - When not in _soldering mode_, holding down the button near the tip will enter _soldering temperature adjust mode_ (This is the same as the one in the _soldering mode_, but allows to adjust the temperature before heating up), in _soldering mode_ however this will activate _boost mode_ as long as you hold down the button. -- Holding down the button near the USB end will show the _[debug menu](Documentation/DebugMenu.md)._ In _soldering mode_ this ends the heating. +- Holding down the button near the USB end will show the _[debug menu](https://ralim.github.io/IronOS/DebugMenu/)._ In _soldering mode_ this ends the heating. -Operation details are over in the [Menu information.](Documentation/Menu.md) +Operation details are over in the [Menu information.](https://ralim.github.io/IronOS/Menu/) ## Thanks diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000..da403d62 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,30 @@ +site_name: IronOS +site_url: https://ralim.github.io/IronOS/ +repo_url: https://github.com/ralim/IronOS/ +site_description: "IronOS Open Source Soldering Iron firmware for Miniware and Pinecil" +docs_dir: Documentation +nav: + - Home: index.md + - Getting Started: GettingStarted.md + - Flashing the firmware: + - MHP30: Flashing/MHP30.md + - Pinecil V1: Flashing/Pinecil V1.md + - Pinecil V2: Flashing/Pinecil V2.md + - TS80(P): Flashing/TS80(P).md + - TS100: Flashing/TS100.md + - Operation: + - Main Menu: Menu.md + - Settings: Settings.md + - Debug Menu: DebugMenu.md + - Power: Power.md + - Temperature: Temperature.md + - Startup Logo: Logo.md + - Hardware: + - Hall Sensor (Pinecil): HallSensor.md + - Hardware Notes: Hardware.md + - Troubleshooting: Troubleshooting.md + - Known Hardware Issues: HardwareIssues.md + - Translations: Translation.md + - Development: Development.md + +theme: readthedocs |