https://github.com/Ralim/IronOS
Open Source Soldering Iron firmware
https://github.com/Ralim/IronOS
alternate firmware flash hex iron miniware pine64 pinecil soldering soldering-irons temperature temperature-control ts100 ts80 ts80p
Last synced: 19 days ago
JSON representation
Open Source Soldering Iron firmware
- Host: GitHub
- URL: https://github.com/Ralim/IronOS
- Owner: Ralim
- License: gpl-3.0
- Created: 2016-09-13T06:52:39.000Z (over 8 years ago)
- Default Branch: dev
- Last Pushed: 2025-03-27T20:28:18.000Z (27 days ago)
- Last Synced: 2025-04-01T21:14:48.852Z (22 days ago)
- Topics: alternate, firmware, flash, hex, iron, miniware, pine64, pinecil, soldering, soldering-irons, temperature, temperature-control, ts100, ts80, ts80p
- Language: C
- Homepage: https://ralim.github.io/IronOS/
- Size: 56.1 MB
- Stars: 7,572
- Watchers: 205
- Forks: 747
- Open Issues: 115
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Security: .github/security.md
Awesome Lists containing this project
- awesome - Ralim/IronOS - Open Source Soldering Iron firmware (C)
- awesome-repositories - Ralim/IronOS - Open Source Soldering Iron firmware (C)
- awesome-mcu - IronOS
- awesome-x - IronOS
- awesome-rainmana - Ralim/IronOS - Open Source Soldering Iron firmware (C)
README
[](https://github.com/Ralim/IronOS/actions/workflows/push.yml)
[](https://github.com/Ralim/IronOS)
[](https://github.com/Ralim/IronOS/graphs/contributors)
[](https://github.com/Ralim/IronOS/releases/latest)# IronOS - Open Source Flexible Firmware for Soldering Hardware
_This repository was formerly known as TS100, it's the same great code. Just with more supported devices._
Originally conceived as an alternative firmware for the _TS100_, this firmware has evolved into a complex soldering hardware control firmware.
The firmware implements all of the standard features of a _smart_ soldering hardware, with lots of little extras and tweaks.
I highly recommend reading the installation guide fully when installing on your device. And after install just explore the settings menu.For soldering hardware that is designed to be powered by _smart_ power sources such as _PD_ or _QC_, the firmware supports settings around the negotiated power and voltage.
For soldering hardware that is 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 hardware, take note of the _language code_ in the file name.
This project is considered feature complete for use on a daily basis, _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). Custom logos are edited on a computer and flashed in the same manner as firmware._
## Supported Hardware
| Device | DC | QC | PD | EPR\*\*\*\* | BLE | Tip Sense | Recommended Purchase | Notes |
| :------------: | :-: | :-: | :-: | :-: | :-: | :-------: | :------------------: | :-------------------------------------: |
| Miniware MHP30 | ❌ | ❌ | ✔️ | ❌ | ❌ | ✔️ | ✔️ | |
| Pinecil V1 | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ \* | |
| Pinecil V2 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Miniware TS101 | ✔️ | ❌ | ✔️ | ✔️ | ❌ | ✔️ | ✔️ \*\*\*\*\* | Full OLED resolution not yet supported. |
| Sequre S60 | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ✔️ | Full OLED resolution not yet supported. |
| Sequre S60P | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ✔️ | Full OLED resolution not yet supported. |
| Sequre T55 | ❌ | ❌ | ✔️ | ❌ | ❌ | N/A | ✔️ | Full OLED resolution not yet supported. |
| Miniware TS80P | ❌ | ✔️ | ✔️ | ❌ | ❌ | N/A | ✔️ | |
| Miniware TS100 | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌\*\* | |
| Miniware TS80 | ❌ | ✔️ | ❌ | ❌ | ❌ | N/A | ❌\*\*\* | |_Tip Sense_ refers to the device being able to choose between the _"regular"_ _TS100_ or _Hakko T12 style_ tips and _Pine64_'s custom shorter tips which have lower resistance and allow for more power. This is N/A for _TS80(P)_ as there is only one model of tip for them.
_Recommended Purchase_ is only referring to if you are buying a **new** device. Of course all the devices listed are supported and will work excellently for years to come.
The _TS101_ & _S60(P)_ irons and _MHP30_ & _T55_ plates feature a higher resolution OLED than other devices. Work is ongoing to support this fully, for now a cropped view is usable.
\* _PinecilV1_ stopped being manufactured a long time ago now, all models for sale online are generally clones (or old stock). Vendors are trying to sell these for more than _Pine64_ sells the _V2_ for now. Thus the _V1_ is **_no longer recommended_**.
\*\* 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_**.
\*\*\* _TS80_ is replaced by _TS80P_. Production ramped down a long time ago and it's just existing stock clearing the system. It's marked not recommended being optimistic that people might pause and buy the far superior _TS80P_ instead. This is the main reason why the _TS80_ is **_no longer recommended_**.
\*\*\*\* **EPR/PPS with 28V support** is _**disabled by default**_ due to [safety concerns](https://github.com/Ralim/IronOS/pull/2073), but to turn it back on set
_PD Mode_ option in _Power settings_ submenu to _Safe_ or _Default_.\*\*\*\*\* Some users confirm that there is a version of newer _TS101_ revision with another OLED screen model, which is not supported yet at all by _IronOS_ unfortunately. See [this bug report](https://github.com/Ralim/IronOS/issues/2063) for more information.
## Getting Started
To get started with _IronOS firmware_, please jump to [Getting Started Guide](https://ralim.github.io/IronOS/GettingStarted/).
## 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)## Builds
The links in the table below allow to download available builds directly:
- current _Stable Release_ is **`v2.22`**;
- _Development Build_ **dynamically** provides _**the latest successful build**_ from **`dev`** branch.| Device | Stable Release | Development Build |
|:---------------------:|:--------------:|:-----------------:|
| Pinecil V1 | [Pinecil.zip](https://github.com/Ralim/IronOS/releases/download/v2.22/Pinecil.zip) | [Pinecil.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/Pinecil.zip) |
| Pinecil V1/multilang | [Pinecil_multi-lang.zip](https://github.com/Ralim/IronOS/releases/download/v2.22/Pinecil_multi-lang.zip) | [Pinecil_multi-lang.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/Pinecil_multi-lang.zip) |
| Pinecil V2 | [PinecilV2.zip](https://github.com/Ralim/IronOS/releases/download/v2.22/PinecilV2.zip) | [PinecilV2.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/Pinecilv2.zip) |
| Pinecil V2/multilang | [PinecilV2_multi-lang.zip](https://github.com/Ralim/IronOS/releases/download/v2.22/PinecilV2_multi-lang.zip) | [PinecilV2_multi-lang.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/Pinecilv2_multi-lang.zip) |
| Miniware TS100 | [TS100.zip](https://github.com/Ralim/IronOS/releases/download/v2.22/TS100.zip) | [TS100.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/TS100.zip) |
| Miniware TS101 | [TS101.zip](https://github.com/Ralim/IronOS/releases/download/v2.22/TS101.zip) | [TS101.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/TS101.zip) |
| Miniware TS80 | [TS80.zip](https://github.com/Ralim/IronOS/releases/download/v2.22/TS80.zip) | [TS80.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/TS80.zip) |
| Miniware TS80P | [TS80P.zip](https://github.com/Ralim/IronOS/releases/download/v2.22/TS80P.zip) | [TS80P.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/TS80P.zip) |
| Miniware MHP30 | [MHP30.zip](https://github.com/Ralim/IronOS/releases/download/v2.22/MHP30.zip) | [MHP30.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/MHP30.zip) |
| Sequre S60 | [S60.zip](https://github.com/Ralim/IronOS/releases/download/v2.22/S60.zip) | [S60.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/S60.zip) |
| Sequre S60P | Not Released | [S60P.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/S60P.zip) |
| Sequre T55 | Not Released | [T55.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/T55.zip) |## Key Features
- PID style iron temperature control;
- automatic sleep with selectable sensitivity;
- adjustable & tweakable 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 18W or 24W 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;
- 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/)[^bootlogo];
- automatic LCD rotation based on the orientation;
- ... and many many other cool & hackable features![^changelog][^bootlogo]:
**BOOTUP LOGO NOTICE**:
IronOS supports both a bootup logo _AND_ bootup animations.
However, _**they are no longer included in this repo**_.
**Please, [read the docs](https://ralim.github.io/IronOS/Logo/) for more information**.[^changelog]:
[See the full changelog here](https://ralim.github.io/IronOS/History).## Basic Control
Supported device is controlled by two buttons which can be pressed in the following ways:
- short: ~1 second or so;
- long: more than 1 second;
- both (press & hold both of them together).Available buttons are:
- `+/A` button: near the front closer to the tip (for irons) or on the left side of the device (for plates);
- `-/B` button: near the back far from the tip (for irons) or on the right side of the device (for plates).After powering on the device for the first time with _IronOS_ installed and having the tip/plate plugged in, on the main menu in _standby mode_ the unit shows a pair of prompts for the two most common operations:
- pressing the `+/A` button enters the _soldering mode_;
- pressing the `-/B` button enters the _settings menu_;
- in _soldering mode_:
- short press of `+/A` / `-/B` buttons changes the soldering temperature;
- long press of the `+/A` button enables _boost mode_ (increasing soldering temperature to the adjustable setting as long as the button is pressed);
- long press of the `-/B` button enters _standby mode_ and stops heating;
- in _standby mode_:
- long press of the `+/A` button enters _soldering temperature adjust mode_ (the same as the one in the _soldering mode_, but allows to adjust the temperature before heating up);
- long hold of the `-/B` button enters the [_debug menu_](https://ralim.github.io/IronOS/DebugMenu/);
- in _menu mode_ (to make it short here):
- `-/B` scrolls & cycles through menus and submenus;
- `+/A` enters to menu & submenu settings or changes their values if they are activated already.Additional details are described in the [menu information](https://ralim.github.io/IronOS/Menu/).
## Remote Control
### Pinecil V2 only
Pinecil V2 has [_Bluetooth Low Energy_ module](https://ralim.github.io/IronOS/Bluetooth), which is supported by _IronOS_ since `2.21` release to control some of the settings using additional tools like [PineSAM](https://github.com/builder555/PineSAM) or [PineTool](https://github.com/lachlanbell/PineTool). In `2.21` and `2.22` releases the module was _on_ by default. However, **_Bluetooth_ is turned off in the settings by default in current `dev` builds and for the next releases** [due to security concerns](#1856).[^ble]
To enable _Bluetooth_ back:
- go to _Settings_ menu;
- press `-/B` button four times to scroll the menu for `Advanced settings`;
- press `+/A` button to open submenu;
- press `+/A` button to toggle/enable _Bluetooth_ feature;
- press `-/B` **and hold it** for just more than five seconds to exit from the _Settings_ menu.[^ble]:
This is related only to situations when a user restores default settings using menu, or when _IronOS_ update is taking place on a new device or on a device with a previous firmware version.## Translations
Is your preferred language missing localisation of some of the text?
Translations are stored as `json` files in the `Translations` folder.
_Pull requests_ are loved and accepted to enhance the firmware.## Thanks
If you love this firmware and want to continue my caffeine addiction, you can do so [here](https://paypal.me/RalimTek) (or email me for other options).
I also want to give a shout out to all of the [Fantastic Contributors](https://github.com/Ralim/IronOS/graphs/contributors).Especially to the following users, who have helped in various ways that are massively appreciated:
- [Dhiltonp](https://github.com/dhiltonp)
- [Mrkvozrout](https://github.com/Mrkvozrout)
- [JonnieZG](https://github.com/jonnieZG)
- [Federck](https://github.com/federck)
- [Jvitkauskas](https://github.com/jvitkauskas)
- [Doegox](https://github.com/doegox)
- [Perillamint](https://github.com/perillamint)
- [GeminiServer](https://github.com/GeminiServer)
- [Patrick Horlebein](https://github.com/PixelPirate)
- [Firebie](https://github.com/Firebie)
- [Agatti](https://github.com/agatti)
- [Discip](https://github.com/discip)
- [Paul Fertser](https://github.com/paulfertser)Plus the huge number of people who have contributed translations, your effort is massively appreciated.
## License
The code created by the community is covered by the [GNU GPLv3](https://www.gnu.org/licenses/gpl-3.0.html#license-text) license **unless noted elsewhere**.
Other components such as _FreeRTOS_ and _USB-PD_ have their own licenses.## Commercial Use
This software is provided _**"AS IS"**_, so I cannot provide any commercial support for the firmware.
However, you are more than welcome to distribute links to the firmware or provide hardware with this firmware.
**Please do not re-host the files, but rather link to this page, so that there are no old versions of the firmware scattered around**.