summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authordiscip <[email protected]>2023-08-15 01:02:31 +0200
committerGitHub <[email protected]>2023-08-15 01:02:31 +0200
commit2b0bd00603ef5c952e5b43cf9684396acac97905 (patch)
treee1c0883f5a7489fc92d74f9bf95a53ac5560cf51
parent230e42b614d2544d0dc998c6f3d8a7b45063e519 (diff)
parent20e085487e08b901c7f0923c0a98200535beca80 (diff)
downloadIronOS-2b0bd00603ef5c952e5b43cf9684396acac97905.tar.gz
IronOS-2b0bd00603ef5c952e5b43cf9684396acac97905.zip
Merge branch 'dev' into discip-patch-2
-rw-r--r--Documentation/README.md1
-rw-r--r--Documentation/Troubleshooting.md15
-rw-r--r--Translations/translation_SK.json62
-rw-r--r--scripts/IronOS-mkdocs.yml1
-rw-r--r--scripts/IronOS.Dockerfile8
-rw-r--r--source/Core/Drivers/USBPD.cpp3
6 files changed, 53 insertions, 37 deletions
diff --git a/Documentation/README.md b/Documentation/README.md
index ff27c854..d809a45b 100644
--- a/Documentation/README.md
+++ b/Documentation/README.md
@@ -22,6 +22,7 @@
- [Startup Logo](../Documentation/Logo.md)
- Hardware
- [Hall Sensor (Pinecil)](../Documentation/HallSensor.md)
+ - [Bluetooth (Pinecil V2)](../Documentation/Bluetooth.md)
- [Hardware Notes](../Documentation/Hardware.md)
- [Troubleshooting](../Documentation/Troubleshooting.md)
- [Known Hardware Issues](../Documentation/HardwareIssues.md)
diff --git a/Documentation/Troubleshooting.md b/Documentation/Troubleshooting.md
index 1c9ef0eb..bb3962bd 100644
--- a/Documentation/Troubleshooting.md
+++ b/Documentation/Troubleshooting.md
@@ -75,10 +75,23 @@ If the tip does not heat up, it is worth trying to reflash the firmware first in
The main failure mode of the OLED display module is usually poor soldering on the OLED display cable to the main PCB.
As this is soldered by hand generally, it's the most prone to failures.
-If you have a poor connection or a floating pin, you can end up with a state where the screen works _sometimes_ and then freezes or only works on some power cycles. It might work on very old versions of IronOS but not the newest ones. You could try to reflow the pins for the OLED. On 96x16 screens, carefully peel it back from the adhesive and reflow the solder on the pins. If needed, replacement Oled screens are common and low cost.
+If you have a poor connection or a floating pin, you can end up with a state where the screen works _sometimes_ and then freezes or only works on some power cycles. It might work on very old versions of IronOS but not the newest ones. You could try to reflow the pins for the OLED. On 96x16 screens, carefully peel it back from the adhesive and reflow the solder on the pins.
As the OLED runs on an I2C bus, there are pull up resistors on the SDA and SCL pins. It is worth checking these as well, while they don't often fail, issues with these can cause _weird_ display issues.
+If after all of the checks OLED is still blank, or screen works but pixels are barely visible, although soldering iron itself is working (i.e., you can safely check that it's turning on, heating up & melting solder successfully), then it means that _most likely_ OLED is dead. But it can be relatively easily replaced. Models like `TS100`, `TS80`, and `TS80P` share the same OLED screen which can be bought online and used for replacement. To do so:
+
+- find & buy at electronics shop [of your choice] display with the following spec line:
+```OLED 0.69 inch / 14 pins / 96 x 16 pixels / **9616TSWC** / I2C IIC```
+
+- disassemble your soldering iron;
+- desolder old OLED and solder back new one;
+- assemble your soldering iron back.
+
+There are a few youtube videos how to do it like [this one for `TS100`](https://www.youtube.com/watch?v=HlWAY0oYPFI).
+
+Unfortunately, this is a well-known issue of screens with OLED technology: sooner or later the brightness is starting to _"fade out"_ until complete off. Usually common recommendations to prolong its lifetime are: reduce brightness & reduce too often updates (i.e., disable animations). But your results may vary since there were reports when users couldn't see anything after turning on soldering irons which were just laying in a box for a few months after buying. And there are users with first `TS100` models not having any issues with display at all.
+
## Tip heats when not in heating mode
⚠️ DISCONNECT YOUR TIP ⚠️
diff --git a/Translations/translation_SK.json b/Translations/translation_SK.json
index db16ff63..989d932b 100644
--- a/Translations/translation_SK.json
+++ b/Translations/translation_SK.json
@@ -4,7 +4,7 @@
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
- "message": "Calibration\ndone!"
+ "message": "Kalibrácia\ndokončená!"
},
"ResetOKMessage": {
"message": "Reset OK"
@@ -31,13 +31,13 @@
"message": "Únik\nTepla"
},
"WarningTipShorted": {
- "message": "!Tip Shorted!"
+ "message": "!Skrat hrotu!"
},
"SettingsCalibrationWarning": {
- "message": "Before rebooting, make sure tip & handle are at room temperature!"
+ "message": "Pred reštartovaním sa uistite, že hrot a rúčka je v izbovej teplote!"
},
"CJCCalibrating": {
- "message": "calibrating\n"
+ "message": "kalibrovanie\n"
},
"SettingsResetWarning": {
"message": "Naozaj chcete obnoviť továrenské nastavenia?"
@@ -64,16 +64,16 @@
"message": "Vyp"
},
"ProfilePreheatString": {
- "message": "Preheat\n"
+ "message": "Predhrievanie\n"
},
"ProfileCooldownString": {
- "message": "Cooldown\n"
+ "message": "Schladzovanie\n"
},
"DeviceFailedValidationWarning": {
"message": "Vaše zariadenie je pravdepodobne falzifikát!"
},
"TooHotToStartProfileWarning": {
- "message": "Too hot to\nstart profile"
+ "message": "Teplota príliž vysoká pre štart profilu"
}
},
"characters": {
@@ -133,7 +133,7 @@
},
"PDVpdo": {
"displayText": "PD\nVPDO",
- "description": "Enables PPS & EPR modes"
+ "description": "Zapína PPS & EPR režimy"
},
"BoostTemperature": {
"displayText": "Boost\nteplota",
@@ -156,60 +156,60 @@
"description": "Zamknutie tlačidiel - dlhé stlačenie oboch naraz počas spájkovania (Z=Zakázať | B=Okrem boost | P=Plné zamknutie)"
},
"ProfilePhases": {
- "displayText": "Profile\nPhases",
- "description": "Number of phases in profile mode"
+ "displayText": "Profilové\nFázy",
+ "description": "Počet fáz v profilovóm režime"
},
"ProfilePreheatTemp": {
- "displayText": "Preheat\nTemp",
- "description": "Preheat to this temperature at the start of profile mode"
+ "displayText": "Teplota\nPredhriatia",
+ "description": "Teplota na ktorú sa má predohriať na začiatku profilového režimu"
},
"ProfilePreheatSpeed": {
- "displayText": "Preheat\nSpeed",
- "description": "Preheat at this rate (degrees per second)"
+ "displayText": "Rýchlosť\nPredhriatia",
+ "description": "Rýchlosť predhrievania (stupňe za sekundu)"
},
"ProfilePhase1Temp": {
- "displayText": "Phase 1\nTemp",
- "description": "Target temperature for the end of this phase"
+ "displayText": "Teplota\nFáze 1",
+ "description": "Cieľová teplota na konci tejto fáze"
},
"ProfilePhase1Duration": {
- "displayText": "Phase 1\nDuration",
- "description": "Target duration of this phase (seconds)"
+ "displayText": "Trvanie\nFáze 1",
+ "description": "Doba trvania tejto fáze (sekundy)"
},
"ProfilePhase2Temp": {
- "displayText": "Phase 2\nTemp",
+ "displayText": "Teplota\nFáze 2",
"description": ""
},
"ProfilePhase2Duration": {
- "displayText": "Phase 2\nDuration",
+ "displayText": "Trvanie\nFáze 2",
"description": ""
},
"ProfilePhase3Temp": {
- "displayText": "Phase 3\nTemp",
+ "displayText": "Teplota\nFáze 3",
"description": ""
},
"ProfilePhase3Duration": {
- "displayText": "Phase 3\nDuration",
+ "displayText": "Trvanie\nFáze 3",
"description": ""
},
"ProfilePhase4Temp": {
- "displayText": "Phase 4\nTemp",
+ "displayText": "Teplota\nFáze 4",
"description": ""
},
"ProfilePhase4Duration": {
- "displayText": "Phase 4\nDuration",
+ "displayText": "Trvanie\nFáze 4",
"description": ""
},
"ProfilePhase5Temp": {
- "displayText": "Phase 5\nTemp",
+ "displayText": "Teplota\nFáze 5",
"description": ""
},
"ProfilePhase5Duration": {
- "displayText": "Phase 5\nDuration",
+ "displayText": "Trvanie\nFáze 4",
"description": ""
},
"ProfileCooldownSpeed": {
- "displayText": "Cooldown\nSpeed",
- "description": "Cooldown at this rate at the end of profile mode (degrees per second)"
+ "displayText": "Rýchlosť\nochladzovania",
+ "description": "Rýchlosť ochladzovania na konci profilového režimu (stupne za sekundu)"
},
"MotionSensitivity": {
"displayText": "Citlivosť\npohybu",
@@ -281,15 +281,15 @@
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
- "description": "Enables BLE"
+ "description": "Zapne BLE"
},
"PowerLimit": {
"displayText": "Obmedzenie\nvýkonu",
"description": "Obmedzenie výkonu podľa použitého zdroja (watt)"
},
"CalibrateCJC": {
- "displayText": "Calibrate CJC\nat next boot",
- "description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
+ "displayText": "Kalibrácia CJC\npri nasladujúcom štarte",
+ "description": "Pri nasledujúcom štarte bude kalibrovaná kompenzácia studeného spoja (nie je potrebné ak Delta T je < 5°C)"
},
"VoltageCalibration": {
"displayText": "Kalibrácia\nnap. napätia",
diff --git a/scripts/IronOS-mkdocs.yml b/scripts/IronOS-mkdocs.yml
index 196167aa..46d883fb 100644
--- a/scripts/IronOS-mkdocs.yml
+++ b/scripts/IronOS-mkdocs.yml
@@ -36,6 +36,7 @@ nav:
- Startup Logo: Logo.md
- Hardware:
- Hall Sensor (Pinecil): HallSensor.md
+ - Bluetooth (Pinecil V2): Bluetooth.md
- Hardware Notes: Hardware.md
- Troubleshooting: Troubleshooting.md
- Known Hardware Issues: HardwareIssues.md
diff --git a/scripts/IronOS.Dockerfile b/scripts/IronOS.Dockerfile
index c4514c1a..8da2e4af 100644
--- a/scripts/IronOS.Dockerfile
+++ b/scripts/IronOS.Dockerfile
@@ -14,14 +14,13 @@ WORKDIR /build/ironos
## - clang (required for clang-format to check C++ code formatting)
## - shellcheck (to check sh scripts)
-ARG APK_COMPS="gcc-riscv-none-elf gcc-arm-none-eabi newlib-riscv-none-elf \
- newlib-arm-none-eabi"
+ARG APK_COMPS="gcc-riscv-none-elf gcc-arm-none-eabi newlib-riscv-none-elf newlib-arm-none-eabi"
ARG APK_PYTHON="python3 py3-pip black"
ARG APK_MISC="findutils make git diffutils zip"
ARG APK_DEV="musl-dev clang bash clang-extra-tools shellcheck"
-# PIP packages to check & test Python code
-ARG PIP_PKGS='bdflib flake8'
+# PIP packages to check & test Python code, and generate docs
+ARG PIP_PKGS='bdflib flake8 pymdown-extensions mkdocs mkdocs-autolinks-plugin mkdocs-awesome-pages-plugin mkdocs-git-revision-date-plugin'
# Install system packages using alpine package manager
RUN apk add --no-cache ${APK_COMPS} ${APK_PYTHON} ${APK_MISC} ${APK_DEV}
@@ -32,4 +31,5 @@ RUN python3 -m pip install ${PIP_PKGS}
# Git trust to avoid related warning
RUN git config --global --add safe.directory /build/ironos
+# Copy the whole source tree working dir into container
COPY . /build/ironos
diff --git a/source/Core/Drivers/USBPD.cpp b/source/Core/Drivers/USBPD.cpp
index 6613bb9d..7bdd4113 100644
--- a/source/Core/Drivers/USBPD.cpp
+++ b/source/Core/Drivers/USBPD.cpp
@@ -123,7 +123,8 @@ bool parseCapabilitiesArray(const uint8_t numCaps, uint8_t *bestIndex, uint16_t
*bestIndex = 0xFF; // Mark unselected
*bestVoltage = 5000; // Default 5V
- uint8_t tipResistance = getTipResistanceX10();
+ // Fudge of 0.5 ohms to round up a little to account for us always having off periods in PWM
+ uint8_t tipResistance = getTipResistanceX10() + 5;
#ifdef MODEL_HAS_DCDC
// If this device has step down DC/DC inductor to smooth out current spikes
// We can instead ignore resistance and go for max voltage we can accept; and rely on the DC/DC regulation to keep under current limit