Skip to content

Commit 6a6b32f

Browse files
authored
Merge branch 'dev' into settings-tool
2 parents 1664830 + 5aa6515 commit 6a6b32f

57 files changed

Lines changed: 393 additions & 220 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/docs.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ jobs:
2020
runs-on: ubuntu-latest
2121

2222
steps:
23-
- uses: actions/checkout@v4
23+
- uses: actions/checkout@v6
2424
with:
2525
fetch-depth: 0
26-
- uses: actions/setup-python@v5
26+
- uses: actions/setup-python@v6
2727
with:
2828
python-version: '3.12.3'
2929

.github/workflows/push.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
- name: Install dependencies (python)
3838
run: python3 -m pip install --break-system-packages bdflib pyyaml
3939

40-
- uses: actions/checkout@v4
40+
- uses: actions/checkout@v6
4141
with:
4242
submodules: true
4343

@@ -57,7 +57,7 @@ jobs:
5757
run: ./source/metadata.py ${{ matrix.model }}.json
5858

5959
- name: Archive ${{ matrix.model }} artifacts
60-
uses: actions/upload-artifact@v4
60+
uses: actions/upload-artifact@v7
6161
with:
6262
name: ${{ matrix.model }}
6363
path: |
@@ -83,7 +83,7 @@ jobs:
8383
run: apk add --no-cache gcc-riscv-none-elf g++-riscv-none-elf gcc-arm-none-eabi g++-arm-none-eabi newlib-riscv-none-elf newlib-arm-none-eabi findutils python3 py3-pip make git bash musl-dev
8484
- name: Install dependencies (python)
8585
run: python3 -m pip install --break-system-packages bdflib pyyaml
86-
- uses: actions/checkout@v4
86+
- uses: actions/checkout@v6
8787
with:
8888
submodules: true
8989

@@ -94,7 +94,7 @@ jobs:
9494
run: echo "GITHUB_CI_PR_SHA=${{github.event.pull_request.head.sha}}" >> "${GITHUB_ENV}"
9595

9696
- name: Build ${{ matrix.model }}
97-
run: make -C source/ -j$(nproc) model="${{ matrix.model }}" firmware-multi_compressed_European firmware-multi_compressed_Belorussian+Bulgarian+Russian+Serbian+Ukrainian firmware-multi_Chinese+Japanese
97+
run: make -C source/ -j$(nproc) model="${{ matrix.model }}" firmware-multi_compressed_European firmware-multi_compressed_Belarusian+Bulgarian+Russian+Serbian+Ukrainian firmware-multi_Chinese+Japanese
9898

9999
- name: Copy license files
100100
run: cp LICENSE scripts/LICENSE_RELEASE.md source/Hexfile/
@@ -103,7 +103,7 @@ jobs:
103103
run: ./source/metadata.py ${{ matrix.model }}_multi-lang.json
104104

105105
- name: Archive ${{ matrix.model }} artifacts
106-
uses: actions/upload-artifact@v4
106+
uses: actions/upload-artifact@v7
107107
with:
108108
name: ${{ matrix.model }}_multi-lang
109109
path: |
@@ -121,14 +121,14 @@ jobs:
121121

122122
steps:
123123
- name: Download all prebuilts
124-
uses: actions/download-artifact@v4
124+
uses: actions/download-artifact@v8
125125
with:
126126
path: source/Hexfile/
127127
merge-multiple: true
128128
- run: ls -R source/Hexfile
129129

130130
- name: Upload JSONs in bulk as metadata
131-
uses: actions/upload-artifact@v4
131+
uses: actions/upload-artifact@v7
132132
with:
133133
name: metadata
134134
path: source/Hexfile/*.json
@@ -143,7 +143,7 @@ jobs:
143143
- name: Install dependencies (apk)
144144
run: apk add --no-cache python3 py3-pip make git bash findutils gcc musl-dev
145145

146-
- uses: actions/checkout@v4
146+
- uses: actions/checkout@v6
147147
with:
148148
submodules: true
149149

@@ -165,7 +165,7 @@ jobs:
165165
- name: Install dependencies (apk)
166166
run: apk add --no-cache make git diffutils findutils clang-extra-tools bash
167167

168-
- uses: actions/checkout@v4
168+
- uses: actions/checkout@v6
169169
with:
170170
submodules: true
171171

@@ -175,7 +175,7 @@ jobs:
175175
check-settings-docs:
176176
runs-on: ubuntu-24.04
177177
steps:
178-
- uses: actions/checkout@v4
178+
- uses: actions/checkout@v6
179179
- name: Run the menu docs generator
180180
run: python Translations/gen_menu_docs.py
181181
- name: Check that Documentation/Settings.md didn't change
@@ -190,7 +190,7 @@ jobs:
190190
- name: Install dependencies (apk)
191191
run: apk add --no-cache python3 py3-pip make git black
192192

193-
- uses: actions/checkout@v4
193+
- uses: actions/checkout@v6
194194
with:
195195
submodules: true
196196

@@ -207,7 +207,7 @@ jobs:
207207
name: check_shell
208208
runs-on: ubuntu-24.04
209209
steps:
210-
- uses: actions/checkout@v4
210+
- uses: actions/checkout@v6
211211
- name: shellcheck
212212
uses: reviewdog/action-shellcheck@v1
213213
with:
@@ -225,7 +225,7 @@ jobs:
225225
- name: Install dependencies (apk)
226226
run: apk add --no-cache git bash grep
227227

228-
- uses: actions/checkout@v4
228+
- uses: actions/checkout@v6
229229
with:
230230
submodules: true
231231
fetch-tags: true

Documentation/Bluetooth.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,14 @@ The Pinecilv2 has hardware support for Bluetooth Low Energy (BLE). This protocol
55
The BLE interface advertises three services, these provide access to live telemetry as well as the ability to read/write settings.
66
These are outlined in more detail below.
77

8+
## BLE Modes
9+
10+
The BLE setting in the Advanced menu supports three modes:
11+
12+
- **Off (0):** BLE is completely disabled. No advertising, no connections.
13+
- **On (1):** Full BLE access. All characteristics and settings can be read and written.
14+
- **Read-only (2):** BLE advertises and accepts connections. All characteristics can be read (live data, settings, bulk data). However, all write operations are rejected with a `WRITE_NOT_PERMITTED` error. This prevents remote users from changing settings, temperature, or triggering save/reset, while still allowing monitoring tools (e.g., fume extractors) to read temperature data. The BLE mode can only be changed from the physical device menu.
15+
816
Pinecil devices advertise themselves on BLE as `Pinecil-XXXXXXX`.
917
They also include the UUID `9eae1000-9d0d-48c5-AA55-33e27f9bc533` in the advertisement packet to allow for filtering.
1018

Documentation/DebugMenu.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
In this firmware there is extra debugging information in a hidden sub-menu.
44
This menu is meant to be simple, so it has no fancy GUI animations.
55

6-
- Access it by pressing the rear button (`-/B`) on the iron while it is on the home screen.
6+
- Access it by pressing and holding the rear button (`-/B`) on the iron while it is on the home screen.
77
- Use the front button (`+/A`) to scroll through the menu.
88
- To exit, use the rear button (`-/B`) again.
99

@@ -155,3 +155,4 @@ The mod method is shown in the [February 2022 PINE64 community updates](https://
155155
:--------
156156

157157

158+

Documentation/Development.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ make -j$(nproc) model=Pinecil firmware-multi_European
110110
To build a Cyrillic compressed multi-language firmware for the Pinecil with as many simultaneous jobs as there are logical processors on macOS:
111111

112112
```
113-
make -j$(sysctl -n hw.logicalcpu) model=Pinecil firmware-multi_compressed_Belorussian+Bulgarian+Russian+Serbian+Ukrainian
113+
make -j$(sysctl -n hw.logicalcpu) model=Pinecil firmware-multi_compressed_Belarusian+Bulgarian+Russian+Serbian+Ukrainian
114114
```
115115

116116
To build a custom multi-language firmware including English and Simplified Chinese for the TS80:

Documentation/Flashing/TS100.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ sgr1ff1n (Shane) commented in [issue 11](https://github.com/Ralim/IronOS/issues/
5555

5656
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.
5757

58-
@awigen has contributed a script [flash_ts100_linux.sh](https://raw.githubusercontent.com/Ralim/IronOS/dev/scripts/flash_ts100_linux.sh) that works on Ubuntu 16.04 as well as other distros.
58+
@awigen has contributed a script [flash_ts10X_linux.sh](https://raw.githubusercontent.com/Ralim/IronOS/dev/scripts/flash_ts10X_linux.sh) that works on Ubuntu 16.04 as well as other distros.
5959

6060
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.
6161
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!

Documentation/History.md

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,31 @@
11
# Version Changes
22

3+
## v2.23
4+
5+
6+
### High level changes
7+
8+
- Miniware I2C changed to bit-bang for improved compatibility with newer devices with STM32 clone IC's
9+
- Looping Boot Logo option (loops until button press)
10+
- More fixes for GD32 clones with Miniware devices
11+
- Bluetooth BLE is off by default (security)
12+
- Large internal code refactoring to make the screen drawing more flexible for larger OLEDs
13+
- Further improvements to drawing on larger screen resolutions
14+
- 4 Ohm tip support on Pinecil 1/2 + TS10x (Note this is at your own risk, not all hardware is designed for this)
15+
- Fixes for PPS mode on some USB-PD supplies
16+
- Rework of thermal runaway detection
17+
- Fixes to the ID numbers used for operating modes over BLE
18+
- Rework of the I2C on PinecilV2 to remove issues with temperature regulation and screen glitching
19+
- Default for USB-PD negotiation changed to use "safe" profile, to be conservative in selecting voltages.
20+
- Fixes for USB-PD to implement device capabilites. This should fix unit reboot issues with some laptops
21+
- Looots of translation & documentation updates ❤️
22+
- Fixes for RTOS issues / updated FreeRTOS version
23+
- Multiple fixes for _MHP30_ to help with clone STM32's
24+
- Share missing settings over _BLE_ for _Pinecil V2_
25+
- Add code for `ws2812b` LED mod for _Pinecil V2_ (Must be hand compiled).
26+
- Add option to swap A/B buttons in Settings menu
27+
- Disable _"double slide"_ animation between home and soldering screens if detailed view is set for both modes.
28+
329

430
## v2.22
531

@@ -150,8 +176,8 @@ For a small number of V2 Pinecil devices there appears to be an interference iss
150176
- USB-PD improvements (version one and two)
151177
- More configuration options for power pulse
152178
- All font / character encoding has been very reworked
153-
- More translation updates than one can count
154-
- More languages 😱
179+
- More translation updates than one can count
180+
- More languages 😱
155181

156182
### MHP30 support
157183

Documentation/Settings.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -383,11 +383,11 @@ Display detailed info in a smaller font on soldering screen
383383

384384
### Setting: Bluetooth
385385

386-
Should BLE be enabled at boot time.
386+
BLE mode: Off, full read/write access (+), or read-only mode (R) which blocks all writes over BLE.
387387

388388
On device help text:
389389

390-
Enables BLE
390+
Enables BLE (+=full access | R=read-only)
391391

392392
### Setting: Power limit
393393

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ build-all:
199199
# target to build multilang supported builds for Pinecil & PinecilV2
200200
build-multilang:
201201
@for modelml in $(MODELS_ML); do \
202-
$(MAKE) -C source/ -j2 model=$${modelml} firmware-multi_compressed_European firmware-multi_compressed_Belorussian+Bulgarian+Russian+Serbian+Ukrainian firmware-multi_Chinese+Japanese ; \
202+
$(MAKE) -C source/ -j2 model=$${modelml} firmware-multi_compressed_European firmware-multi_compressed_Belarusian+Bulgarian+Russian+Serbian+Ukrainian firmware-multi_Chinese+Japanese ; \
203203
mkdir -p $(OUT_DIR)/$${modelml}_multi-lang ; \
204204
cp $(OUT_HEX)/$${modelml}_multi_*.bin $(OUT_DIR)/$${modelml}_multi-lang ; \
205205
cp $(OUT_HEX)/$${modelml}_multi_*.hex $(OUT_DIR)/$${modelml}_multi-lang ; \

README.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ The _TS101_ & _S60(P)_ irons and _MHP30_ & _T55_ plates feature a higher resolut
4848

4949
\*\*\* _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_**.
5050

51-
\*\*\*\* **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
51+
\*\*\*\* **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
5252
_PD Mode_ option in _Power settings_ submenu to _Safe_ or _Default_.
5353

5454
\*\*\*\*\* 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.
@@ -75,16 +75,16 @@ The links in the table below allow to download available builds directly:
7575

7676
| Device | Stable Release | Development Build |
7777
|:---------------------:|:--------------:|:-----------------:|
78-
| 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) |
79-
| 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) |
80-
| 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) |
81-
| 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) |
82-
| 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) |
83-
| 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) |
84-
| 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) |
85-
| 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) |
86-
| 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) |
87-
| 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) |
78+
| Pinecil V1 | [Pinecil.zip](https://github.com/Ralim/IronOS/releases/download/v2.23/Pinecil.zip) | [Pinecil.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/Pinecil.zip) |
79+
| Pinecil V1/multilang | [Pinecil_multi-lang.zip](https://github.com/Ralim/IronOS/releases/download/v2.23/Pinecil_multi-lang.zip) | [Pinecil_multi-lang.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/Pinecil_multi-lang.zip) |
80+
| Pinecil V2 | [PinecilV2.zip](https://github.com/Ralim/IronOS/releases/download/v2.23/PinecilV2.zip) | [PinecilV2.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/Pinecilv2.zip) |
81+
| Pinecil V2/multilang | [PinecilV2_multi-lang.zip](https://github.com/Ralim/IronOS/releases/download/v2.23/PinecilV2_multi-lang.zip) | [PinecilV2_multi-lang.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/Pinecilv2_multi-lang.zip) |
82+
| Miniware TS100 | [TS100.zip](https://github.com/Ralim/IronOS/releases/download/v2.23/TS100.zip) | [TS100.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/TS100.zip) |
83+
| Miniware TS101 | [TS101.zip](https://github.com/Ralim/IronOS/releases/download/v2.23/TS101.zip) | [TS101.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/TS101.zip) |
84+
| Miniware TS80 | [TS80.zip](https://github.com/Ralim/IronOS/releases/download/v2.23/TS80.zip) | [TS80.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/TS80.zip) |
85+
| Miniware TS80P | [TS80P.zip](https://github.com/Ralim/IronOS/releases/download/v2.23/TS80P.zip) | [TS80P.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/TS80P.zip) |
86+
| Miniware MHP30 | [MHP30.zip](https://github.com/Ralim/IronOS/releases/download/v2.23/MHP30.zip) | [MHP30.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/MHP30.zip) |
87+
| Sequre S60 | [S60.zip](https://github.com/Ralim/IronOS/releases/download/v2.23/S60.zip) | [S60.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/S60.zip) |
8888
| Sequre S60P | Not Released | [S60P.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/S60P.zip) |
8989
| Sequre T55 | Not Released | [T55.zip](https://nightly.link/Ralim/IronOS/workflows/push/dev/T55.zip) |
9090

@@ -148,7 +148,7 @@ Additional details are described in the [menu information](https://ralim.github.
148148

149149
### Pinecil V2 only
150150

151-
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]
151+
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 2.23+** [due to security concerns](#1856).[^ble]
152152

153153
To enable _Bluetooth_ back:
154154
- go to _Settings_ menu;

0 commit comments

Comments
 (0)