Compare commits

..

9 Commits

Author SHA1 Message Date
discip
d0e0c8704d Merge branch 'dev' into epr-pinecil-og 2023-07-02 21:20:44 +02:00
discip
3d4fb386b5 Merge branch 'dev' into epr-pinecil-og 2023-06-29 21:58:29 +02:00
discip
c99d19a569 Merge branch 'dev' into epr-pinecil-og 2023-03-15 00:25:14 +01:00
discip
4db4aebed2 Merge branch 'dev' into epr-pinecil-og 2023-03-14 22:25:59 +01:00
discip
5e723ada61 Merge branch 'dev' into epr-pinecil-og 2023-03-13 23:28:23 +01:00
discip
8f648721e7 Merge branch 'dev' into epr-pinecil-og 2023-03-11 15:34:38 +01:00
Ben V. Brown
86454348f5 Merge branch 'dev' into epr-pinecil-og 2022-11-07 20:18:59 +11:00
Ben V. Brown
76db4033f3 Merge branch 'dev' into epr-pinecil-og 2022-10-23 23:00:00 +11:00
Ben V. Brown
4696f0f907 Enable EPR if vbus is not connected 2022-09-18 18:48:35 +10:00
597 changed files with 112815 additions and 79125 deletions

View File

@@ -1,38 +1,39 @@
name: Docs
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request
push:
branches: [dev, docs]
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@v4
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: '3.12.3'
- uses: actions/setup-python@v4
- run: |
pip install --upgrade pip &&
pip install mkdocs mkdocs-gen-files pymdown-extensions \
mkdocs-git-revision-date-plugin mkdocs-autolinks-plugin \
mkdocs-awesome-pages-plugin
- run: git config user.name 'github-actions[bot]' && git config user.email 'github-actions[bot]@users.noreply.github.com'
- name: Publish docs

View File

@@ -1,78 +1,64 @@
name: CI
on:
push:
pull_request:
branches:
- master
- dev
- main
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-22.04
runs-on: ubuntu-20.04
container:
image: alpine:3.19
image: alpine:3.16
strategy:
matrix:
model:
[
"TS100",
"TS80",
"TS80P",
"Pinecil",
"MHP30",
"Pinecilv2",
"S60",
"S60P",
"T55",
"TS101",
]
model: ["TS100", "TS80", "TS80P", "Pinecil", "MHP30", "Pinecilv2", "S60", "TS101"]
fail-fast: true
steps:
- name: Install dependencies (apk)
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
run: apk add --no-cache gcc-riscv-none-elf gcc-arm-none-eabi newlib-riscv-none-elf newlib-arm-none-eabi findutils python3 py3-pip make git bash
- name: Install dependencies (python)
run: python3 -m pip install --break-system-packages bdflib
run: python3 -m pip install bdflib
- uses: actions/checkout@v4
- uses: actions/checkout@v3
with:
submodules: true
- name: Git ownership exception
run: git config --global --add safe.directory /__w/IronOS/IronOS && git config --global safe.directory "$GITHUB_WORKSPACE"
- name: Git meta info
run: echo "GITHUB_CI_PR_SHA=${{github.event.pull_request.head.sha}}" >> "${GITHUB_ENV}"
- name: Build ${{ matrix.model }}
- name: build ${{ matrix.model }}
run: cd source && ./build.sh -m ${{ matrix.model }}
- name: Copy license files
run: cp LICENSE scripts/LICENSE_RELEASE.md source/Hexfile/
- name: Generate json index file
run: ./source/metadata.py ${{ matrix.model }}.json
- name: copy license text
run: |
cp LICENSE source/Hexfile/LICENSE
cp scripts/LICENSE_RELEASE.md source/Hexfile/LICENSE_RELEASE.md
- name: Archive ${{ matrix.model }} artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.model }}
path: |
source/Hexfile/${{ matrix.model }}_*.hex
source/Hexfile/${{ matrix.model }}_*.dfu
source/Hexfile/${{ matrix.model }}_*.bin
source/Hexfile/${{ matrix.model }}.json
source/Hexfile/LICENSE
source/Hexfile/LICENSE_RELEASE.md
if-no-files-found: error
- name: Generate json index file
run: cd source && python3 metadata.py ${{ matrix.model }}.json
- name: Archive ${{ matrix.model }} index file
uses: actions/upload-artifact@v3
with:
name: metadata
path: source/Hexfile/${{ matrix.model }}.json
build_multi-lang:
runs-on: ubuntu-22.04
runs-on: ubuntu-20.04
container:
image: alpine:3.19
image: alpine:3.16
strategy:
matrix:
model: ["Pinecil", "Pinecilv2"]
@@ -80,114 +66,91 @@ jobs:
steps:
- name: Install dependencies (apk)
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
run: apk add --no-cache gcc-riscv-none-elf newlib-riscv-none-elf findutils python3 py3-pip make git bash musl-dev
- name: Install dependencies (python)
run: python3 -m pip install --break-system-packages bdflib
run: python3 -m pip install bdflib
- uses: actions/checkout@v4
- uses: actions/checkout@v3
with:
submodules: true
- name: Git ownership exception
run: git config --global --add safe.directory /__w/IronOS/IronOS && git config --global safe.directory "$GITHUB_WORKSPACE"
- name: Git meta info
run: echo "GITHUB_CI_PR_SHA=${{github.event.pull_request.head.sha}}" >> "${GITHUB_ENV}"
- name: build ${{ matrix.model }}
run: cd source && make -j$(nproc) model="${{ matrix.model }}" firmware-multi_compressed_European firmware-multi_compressed_Bulgarian+Russian+Serbian+Ukrainian firmware-multi_Chinese+Japanese
- name: Build ${{ matrix.model }}
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
- name: Copy license files
run: cp LICENSE scripts/LICENSE_RELEASE.md source/Hexfile/
- name: Generate json index file
run: ./source/metadata.py ${{ matrix.model }}_multi-lang.json
- name: copy license text
run: |
cp LICENSE source/Hexfile/LICENSE
cp scripts/LICENSE_RELEASE.md source/Hexfile/LICENSE_RELEASE.md
- name: Archive ${{ matrix.model }} artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.model }}_multi-lang
path: |
source/Hexfile/${{ matrix.model }}_*.hex
source/Hexfile/${{ matrix.model }}_*.dfu
source/Hexfile/${{ matrix.model }}_*.bin
source/Hexfile/${{ matrix.model }}_multi-lang.json
source/Hexfile/LICENSE
source/Hexfile/LICENSE_RELEASE.md
if-no-files-found: error
upload_metadata:
needs: [build, build_multi-lang]
runs-on: ubuntu-20.04
- name: Generate json index file
run: cd source && python3 metadata.py ${{ matrix.model }}_multi-lang.json
steps:
- name: Download all prebuilts
uses: actions/download-artifact@v4
with:
path: source/Hexfile/
merge-multiple: true
- run: ls -R source/Hexfile
- name: Upload JSONs in bulk as metadata
uses: actions/upload-artifact@v4
- name: Archive ${{ matrix.model }} index file
uses: actions/upload-artifact@v3
with:
name: metadata
path: source/Hexfile/*.json
if-no-files-found: error
path: source/Hexfile/${{ matrix.model }}_multi-lang.json
tests:
runs-on: ubuntu-22.04
runs-on: ubuntu-20.04
container:
image: alpine:3.19
image: alpine:3.16
steps:
- name: Install dependencies (apk)
- name: deps
run: apk add --no-cache python3 py3-pip make git bash findutils gcc musl-dev
- uses: actions/checkout@v4
- uses: actions/checkout@v3
with:
submodules: true
- name: Install dependencies (python)
run: python3 -m pip install --break-system-packages bdflib
- name: install black
run: python3 -m pip install bdflib
- name: Run python tests
run: ./Translations/make_translation_test.py
run: cd Translations && chmod +x make_translation_test.py && ./make_translation_test.py
- name: Run BriefLZ tests
run: make -C source/ Objects/host/brieflz/libbrieflz.so && ./Translations/brieflz_test.py
run: |
cd source
make Objects/host/brieflz/libbrieflz.so
cd ../Translations
chmod +x brieflz_test.py
./brieflz_test.py
check_c-cpp:
runs-on: ubuntu-22.04
check_formatting:
runs-on: ubuntu-20.04
container:
image: alpine:3.19
image: alpine:3.16
steps:
- name: Install dependencies (apk)
run: apk add --no-cache make git diffutils findutils clang-extra-tools bash
- uses: actions/checkout@v4
with:
submodules: true
- name: Check format style with clang-format
run: make clean check-style
check_python:
runs-on: ubuntu-22.04
container:
image: alpine:3.19
steps:
- name: Install dependencies (apk)
- name: deps
run: apk add --no-cache python3 py3-pip make git black
- uses: actions/checkout@v4
- uses: actions/checkout@v3
with:
submodules: true
- name: Install dependencies (python)
run: python3 -m pip install --break-system-packages bdflib flake8
- name: install black
run: python3 -m pip install bdflib flake8
- name: Check formatting with clang-format
run: cd source && make clean && make check-style
- name: Check python formatting with black
run: black --check Translations
@@ -195,11 +158,11 @@ jobs:
- name: Check python with flake8
run: flake8 Translations
check_shell:
name: check_shell
shellcheck:
name: runner / shellcheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v3
- name: shellcheck
uses: reviewdog/action-shellcheck@v1
with:
@@ -207,24 +170,3 @@ jobs:
reporter: github-pr-review # Change reporter.
exclude: "./.git/*" # Optional.
check_all_files_with_shebangs: "false" # Optional.
check_docs:
runs-on: ubuntu-22.04
container:
image: alpine:3.19
steps:
- name: Install dependencies (apk)
run: apk add --no-cache git bash grep
- uses: actions/checkout@v4
with:
submodules: true
fetch-tags: true
fetch-depth: 0
- name: Git ownership exception
run: git config --global --add safe.directory /__w/IronOS/IronOS && git config --global safe.directory "$GITHUB_WORKSPACE"
- name: Check and verify documentation
run: ./scripts/deploy.sh docs

82
.gitignore vendored
View File

@@ -1,5 +1,3 @@
#### Generic ####
# Object files
*.o
*.ko
@@ -7,7 +5,6 @@
*.elf
*.d
*.DS_Store
# Precompiled Headers
*.gch
*.pch
@@ -34,22 +31,33 @@
# Debug files
*.dSYM/
*.su
source/.metadata/*
# Custom scripts & misc. files
TS100/KiCad/TS100.bak
Logo GUI/TS100 Logo Editor/TS100 Logo Editor/obj/
Logo GUI/TS100 Logo Editor/TS100 Logo Editor/bin/
*.cache
Translation Editor/.vscode/
Translation Editor/__pycache__/
*.pyc
*.lst
*.mk
*.list
source/Hexfile/
source/Objects/
ci/artefacts/
ci/secrets/unencrypted/
codeship.aes
.vscode/settings.json
# Auto generated files
*.cache
codeship.aes
CoreCompileInputs.cache
source/Core/Inc/unit.h
source/Core/Gen/
# IDE configs
.vs/*
.settings/*
.cproject.swp
..cproject.swp
# Visual Studios
.vscode/*
@@ -57,7 +65,6 @@ CoreCompileInputs.cache
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.vscode/settings.json
# Eclipse
.metadata
@@ -113,24 +120,11 @@ local.properties
.scala_dependencies
.worksheet
# source code tagging systems (GNU Global, ctags, cscope)
GPATH
GRTAGS
GTAGS
*tags
*tags/
.*tags
.*tags/
cscope.*
cscope/
.cscope/
#### Jetbrains: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm ####
# Jetbrains
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff
.idea/
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
@@ -180,39 +174,7 @@ fabric.properties
# Editor-based Rest Client
.idea/httpRequests
#### IronOS project specific files ####
# Binaries
source/Hexfile/
source/Objects/
BUILDS/
# Autogenerated
source/Core/Gen/
source/Core/Inc/unit.h
# Deploy
scripts/ci/artefacts/
scripts/ci/secrets/unencrypted/
# Generated static local docs
site/
# Translations
Translations/__pycache__/
Translation Editor/__pycache__/
Translation Editor/.vscode/
# misc.
CoreCompileInputs.cache
.vscode/settings.json
source/compile_commands.json
source/.metadata/*
# TS100 related
TS100/KiCad/TS100.bak
Logo GUI/TS100 Logo Editor/TS100 Logo Editor/obj/
Logo GUI/TS100 Logo Editor/TS100 Logo Editor/bin/
# Tests/linters/sanitizers
source/check-style.log
.ash_history
.idea/

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,99 +0,0 @@
# Bluetooth Low Energy
The Pinecilv2 has hardware support for Bluetooth Low Energy (BLE). This protocol allows reading and writing of parameters to the Pinecil during runtime.
The BLE interface advertises three services, these provide access to live telemetry as well as the ability to read/write settings.
These are outlined in more detail below.
Pinecil devices advertise themselves on BLE as `Pinecil-XXXXXXX`.
They also include the UUID `9eae1000-9d0d-48c5-AA55-33e27f9bc533` in the advertisement packet to allow for filtering.
Unless otherwise noted, all data is sent and received as Little-Endian.
As of the time of writing this, notifications are not fully implemented so data will need to be polled. Notification/Indication support will come when there is time to implement it.
## Using the BLE Interface
It is advised to follow the below points when first implementing a BLE integration. Of course once the integration is working feel free to deviate from these. These are just _suggested_ ideas to help kickstart.
1. When filtering for devices, its preferable to filter by the UUID `9eae1000-9d0d-48c5-AA55-33e27f9bc533`, rather than by the device name if possible.
2. Upon first collection check if the three expected services exist; if they don't the user may have selected an incorrect device.
3. It's best to read the live bulk endpoint over the live service when its easy to do so (one read vs ~15).
1. However if you are just updating one or two line items it may be more efficient to just read these on the live service.
2. Feel free to test both and decide.
4. When reading settings from the device; the association of number <-> setting is fixed, but you may see settings you don't yet know about, make sure you can handle these.
5. You probably don't want to show unknown setting's to the user though.
6. Read the device firmware revision and ensure you can decode it. If BLE is revised it may be essential for handling versions cleanly.
7. It's advisable to keep an eye on the IronOS repository or at least setup the Github watch for release notifications.
1. Future releases may revise some BLE aspects or add new settings for example.
## Services
Below is a description of each service. Note that the exact settings are not listed for brevity; it's best to refer to [the uuid lists](https://github.com/Ralim/IronOS/blob/dev/source/Core/BSP/Pinecilv2/ble_characteristics.h) and the [handlers](https://github.com/Ralim/IronOS/blob/dev/source/Core/BSP/Pinecilv2/ble_handlers.cpp) alongside this.
### Live
`UUID: d85ef000-168e-4a71-AA55-33e27f9bc533`
The live services has one characteristic per reading. The readings (in order) are:
When implementing these; the ones that are not obvious are generally found in the debugging menu. Values are encoded as an unsigned 32 bit number for all results.
1. Live temperature (In C)
2. Live set point
3. DC input voltage
4. Handle temperature (In C)
5. Power level
6. Power source
7. Tip resistance
8. uptime
9. Time of last movement
10. Maximum temperature settable
11. Raw tip reading
12. Hall sensor
13. Operating mode
14. Estimated wattage
### Settings
`UUID: f6d80000-5a10-4eba-AA55-33e27f9bc533`
The settings service has two special entries; for saving and resetting settings.
Otherwise all settings are enumerated using UUID's of the format : `f6d7ZZZZ-5a10-4eba-AA55-33e27f9bc533))` where `ZZZZ` is the setting number as matched from [Settings.h](https://github.com/Ralim/IronOS/blob/dev/source/Core/Inc/Settings.h#L16).
All data is read and written in fixed unsigned 16 bit numbers.
#### Settings save
To save the settings write a `0x0001` to `f6d7FFFF-5a10-4eba-AA55-33e27f9bc533`.
Its advised to not save settings on each change but instead to give the user a save button _or_ save after a timeout. This is just to reduce write cycles on the internal flash.
#### Settings reset
To reset all settings to defaults; write a `0x0001` to `f6d7FFFE-5a10-4eba-AA55-33e27f9bc533`.
This will reset settings immediately.
### Bulk
`UUID: 9eae1000-9d0d-48c5-AA55-33e27f9bc533`
The bulk endpoint is where extra data is located with varying read sizes.
#### Live data
The bulk live data endpoint provides all of the data provided in the live endpoint, as one large single-read binary blob. This is designed for applications that are showing large amounts of data as this is more efficient for reading.
#### Accelerometer Name
_Not yet implemented_
#### Build ID
This encodes the current build ID to allow viewing and handling when the BLE format changes.
#### Device Serial Number
This is generally the device CPU serial number. For most devices this can be used as an ID. On PinecilV2 its the MAC address.
#### Device Unique ID
This is only relevant on the PinecilV2. This is a random ID that is burned in at the factory. This is used by the online authenticity checker tool.

View File

@@ -9,43 +9,9 @@ This menu is meant to be simple, so it has no fancy GUI animations.
## Menu items
Items are shown in the menu on a single line, so they use short codes.
### Version
There is a static line on top which is presented on every sub-screen and reflects exact version of firmware. Version line on top has the following format - `vX.YYN.[ZZZZZZZZ]`:
- X: major version
- Y: minor version
- N: build type:
- R - git-related **r**elease tag vXX.YY
- T - git-related release **t**ag but version is not vXX.YY !
- D - git-related **d**ev branch
- B - git-related custom **b**ranch
- E - git-related from d**e**tached commit
- G - neither above but **g**it-related
- C - build from github **C**I during _pull request_
- H - build outside of a git tree (i.e. release tarball or **h**omebrew customization without git)
- S - something **s**pecial[^ERR]
- V - something **v**ery special[^ERR]
[^ERR]: `S` and `V` are reserved letters for cases when source of firmware is having very unique origin & configuration
- Z: short commit ID hash with 8 digits generated automatically from git (for git-related build types only)
I.e.:
- `v2.22H` means firmware built locally from tarball with release version of `2.22`
- `v2.22D.1A2B3C4D` means firmware with development version of `2.22` from git `dev` branch & with commit ID `1A2B3C4D` (so it can be traced for debug purposes)
- `v2.22R.5E6F7G8H` means firmware with official release version of `2.22` and it's properly tagged with `v2.22` git tag & with commit ID `5E6F7G8H`'
---
**Additional scroll-able items appear in this order**:
### Timestamp
- This is a timestamp of firmware compilation and it has the following format: `YYYYMMDD HHMMSS` (i.e., `20230701 213456` means it has been built in July, 1st, 2023 at 9:34:56 pm)
Items are shown in the menu on a single line, so they use short codes and appear in this order:
### ID
- This is used by Irons that have an ID and serial number to help check if the iron is authentic. All Pinecil V1 show the same ID number as this is the number programmed into the MCU.
- The new Pinecil V2 released Aug. 2, 2022 now uses MCU BL706, which enables generating a unique ID/Serial number to every iron. This can be used to verify your [Pinecil authenticity here](https://pinecil.pine64.org/).
@@ -86,6 +52,7 @@ This is the handle temperature or more accurately the reading of the Cold Juncti
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](https://ralim.github.io/IronOS/Troubleshooting/))
### Max C
This indicates the max temperature in °C that the system estimates it can measure the tip reliably to.
@@ -139,7 +106,6 @@ Pressing (`+`) cycles through elements, and (`-`) or unplugging will exit the me
The first page shows the PD negotiation stage number; which can be used for diagnosing if PD is not working. Once negotiation is complete; use (`+`) button to advance to other screens which show the different proposals advertised for voltage and current (State 12 means all is good with the PD charger).
#### Below is a method for user modification to convert some early models of Pinecil V1 to safely support 24V on the DC5525 barrel.
⚠️ Warning: do this at your own risk, read everything in this document, and go to the [Pine64 community chat](https://wiki.pine64.org/wiki/Pinecil#Community_links) if you desire advice. An incorrect cut of the trace could render the Pinecil non-working.
Background: a simple user modification to the PCB on _some models_ of original V1 allows it to safely use DC barrel 24V by cutting a trace line to the Vbus which held it back to 21V. You can check whether your Pinecil V1 needs the update or can benefit from it by using a hidden trick in the PD debug menu.

View File

@@ -14,42 +14,6 @@ You will need to update the build settings for include paths and point to the ne
In the `source` folder there is a `Makefile` that can be used to build the repository using command line tools.
When running the `make` command, specify which model of the device and the language(s) you would like to use.
### Windows (MSYS2 environment)
1. Download `msys2` install package from the [official website](https://msys2.org) and install it according to the instruction there;
2. Install requried packages (here and for the future commands use **`mingw64.exe`** terminal):
```
$ pacman -S mingw-w64-x86_64-arm-none-eabi-gcc mingw-w64-x86_64-libwinpthread-git python3 python3-pip make unzip git
```
3. Download _3rd party RISC-V toolchain_ `xpack-riscv-none-elf-gcc-...-win32-x64.zip` from [this repository](https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases);
4. Move downloaded `xpack-riscv-none-elf-gcc-...-win32-x64.zip` to `msys64` _Windows_ directory (e.g., `C:\msys64\`);
5. Extract files from `xpack-riscv-none-elf-gcc-...-win32-x64.zip` and go back to _home_ directory:
```
$ cd /
$ unzip xpack-riscv-none-elf-gcc-...-win32-x64.zip
$ cd ~
```
6. Permanently set `PATH` environment variable, so all required toolchains could be available for `make` and for other build scripts:
```
$ echo 'export PATH=/xpack-riscv-none-elf-gcc-.../bin:${PATH}' >> ~/.bashrc
$ source ~/.bashrc
```
7. Additionally, `OpenOCD` and/or `ST-Link` can be installed as well to help with flashing:
```
$ pacman -S mingw-w64-x86_64-openocd
$ pacman -S mingw-w64-x86_64-stlink
```
8. Clone _IronOS_ repo:
```
$ git clone --recursive https://github.com/Ralim/IronOS.git
$ cd IronOS
```
9. Follow steps _4-8_ from [macOS section](#macos);
10. `pip` can be updated inside `venv` only:
```
$ python3 -m pip install --upgrade pip
```
### macOS
Use the following steps to set up a build environment for IronOS on the command line (in Terminal).
@@ -110,7 +74,7 @@ make -j$(nproc) model=Pinecil firmware-multi_European
To build a Cyrillic compressed multi-language firmware for the Pinecil with as many simultaneous jobs as there are logical processors on macOS:
```
make -j$(sysctl -n hw.logicalcpu) model=Pinecil firmware-multi_compressed_Belorussian+Bulgarian+Russian+Serbian+Ukrainian
make -j$(sysctl -n hw.logicalcpu) model=Pinecil firmware-multi_compressed_Bulgarian+Russian+Serbian+Ukrainian
```
To build a custom multi-language firmware including English and Simplified Chinese for the TS80:
@@ -169,7 +133,7 @@ On Windows follow the instructions on the official documentation to install 'Win
3. Build the firmware for Pinecil V2:
```sh
cd source/
cd source/source
./build.sh -l EN -m Pinecilv2
```

View File

@@ -26,9 +26,9 @@ 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 corresponding `.hex` file from [the official website](https://e-design.com.cn/en/NewsDetail/4203645.html) ([mirror backup](https://github.com/Ralim/IronOS-Meta/tree/main/Firmware/Miniware)) 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`.
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](#mac), and can be made to work under [Linux](#linux) _sometimes_ (look for details below).
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.)

View File

@@ -26,9 +26,9 @@ 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 corresponding `.hex` file from [the official website](https://e-design.com.cn/en/NewsDetail/4203645.html) ([mirror backup](https://github.com/Ralim/IronOS-Meta/tree/main/Firmware/Miniware)) 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`.
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](#mac), and can be made to work under [Linux](#linux) _sometimes_ (look for details below).
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.)

View File

@@ -26,9 +26,9 @@ 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 corresponding `.hex` file from [the official website](https://e-design.com.cn/en/NewsDetail/4203645.html) ([mirror backup](https://github.com/Ralim/IronOS-Meta/tree/main/Firmware/Miniware)) 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`.
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](#mac), and can be made to work under [Linux](#linux) _sometimes_ (look for details below).
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.)
@@ -39,8 +39,6 @@ Officially the bootloader on the devices only works under Windows (use the built
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.
If you get a message when copying: "Are you sure you want to move this file without its properties?" then this can cause an issue where the iron thinks that the file has finished copying before it actually has and can cause a .ERR file. Since this dialog prompt is caused by copying a file from NTFS to FAT (the iron's filesystem) in windows, you can fix this by formatting a thumbdrive as FAT32 and then storing the hex file on that before copying the file to the iron. As there will be no NTFS properties on the file when stored on a FAT32 filesystem, there will be no prompt, and the copy will then proceed normally.
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/).

View File

@@ -9,7 +9,7 @@ If your device did not come with IronOS already installed, or if you need to upd
- [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 when you first receive your device to ensure you are up to date.
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.

View File

@@ -2,11 +2,11 @@
## Sleep Mode Menu
In sleep mode, the iron automatically lowers the temperature to 150°C (default). This default setting was chosen as it is just below the melting point of a wide range of solders. A lower standby temperature helps reduce the oxidation rate and prevent damage to the soldering tips. As a general rule, when not in use, unplug the unit or let it go into sleep mode to extend the life of the replaceable tips. The default sleep temperature can be adjusted to your preference.
In Sleep mode, the iron automatically lowers the temperature to 150 °C (default). This default was chosen as it is just below the melting point of many solders. A stand-by lower temperature helps reduce the rate of oxidation and prevents damage to iron tips. In general, when not using the iron, unplug it or let it sleep to increase the longevity of replaceable tips. The default sleep temperature can be customized.
Simply moving the iron or pressing any button will wake it back up into soldering mode. The sensitivity is adjustable. It is recommended to adjust this to suit your environment so that it reliably stays in sleep mode when not in use, but does not go into sleep mode when in use. (This may vary depending on the amount of movement during soldering.)
Simply moving the iron or pressing any button will wake it back up into soldering mode.
### Optional Hall Effect Feature (Pinecil (v1/v2) only):
### Optional Hall Effect Feature (Pinecil only):
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.

View File

@@ -1,90 +1,8 @@
## Notes on the various supported hardware
Below are short summaries / notes around the hardware. This is not an in-depth comparison of the features of the units. Please do your own research before purchasing.
Due to descisions out of our control, Miniware no longer provides source-code/schematics/support for any open source firmware on their devices. This does mean that only (TS100/TS80/TS80P) are "open" to any extent. TS80P is pushing that as it was never open at all but just happens to be very close to the TS80. While this generally shouldn't affect the performance of the device, it does mean that their newer products can be slow to be supported or some issues are harder to resolve.
Sequre has so far been supportive of the S60 by providing schematics.
The Pine64 units (Pinecil) are schematics-available (i.e you can download them on the Pine64 Wiki). They are currently the only vendor that has provided financial support of the project. They are also the only vendor that allows contact directly to the engineering teams for hardware issues. This results in generally better support for these devices. It does **not** mean that this firmware is designed around them, but it does help however that they are designed with this firmware in mind as Ralim talks to them. Where possible features are designed to work across all devices but the time for support may vary depending on the hardware and its quirks.
## A quick note on power supplies
For all devices listed **except** the MHP30:
These soldering irons do *NOT* contain DC/DC converters.
This means that your power at the tip is a function of the supplied voltage. Just because the iron "supports" running at a wide range of voltages, you should always use a voltage near the upper limit where possible.
It is highly recommended to use a PD adapter where possible as this allows the iron to _know_ the limitations of your supply.
The marked irons can only turn the tip on and off in software, this means that they can't control the maximum power drawn from the supply. This is why when using PD the iron may select a lower voltage than your power supplies maximum. This is to prevent your power supply failing from over current. For more information about power management underhood, please, [see the related documentation section](https://ralim.github.io/IronOS/Power/).
For the MHP30, it contains a buck DC/DC, which means it can utilise most power supplies fairly well, but you should still aim for highest voltage that is reasonable to use.
### TS100
The TS100 was the first supported soldering iron, and is generally a very capable device.
Its now generally not reccomended to buy new as other devices have all of its features and more, and can often be the same price or cheaper. It's still fully supported though, nothing will be taken away from it.
- can run from 9-25V DC;
- provides a power range that is determined by the input voltage;
- voltages below 12V don't overly work well for any substantial mass;
- the original firmware can be found [here](https://e-design.com.cn/en/NewsDetail/4203645.html)([mirror backup](https://github.com/Ralim/IronOS-Meta/tree/main/Firmware/Miniware)).
![](https://brushlesswhoop.com/images/ts100-og.jpg)
### TS101
The TS101 is the direct replacement of the TS100 with the same tip compatibility.
It adds a spring pressure tip holding mechanism instead of using a screw so tips are easier to swap on the fly (But are held less securely and can pull out depending on the use case). It adds USB-C PD support and the hardware is compatible with 28V EPR power supplies (under both IronOS and official firmware).
It unfortunately uses an STM32 clone MCU with quirks, so performance of the screen isn't as good as it could be but its perfectly usable. The bootloader for programming is the biggest weakness of this device and programming can be a pain. Fortunately, IronOS is relatively stable feature wise, so you shouldn't need to update the device often.
The Miniware bootup logo is burned into their bootloader, so IronOS cant remove this. IronOS can show your own logo when it starts however. There are quirks to loading a logo on this device, so be sure to read the documentation if you are coming from other devices.
### TS80
TS80 is a successor to TS100, it moves to custom smaller tips that perform better at lower wattages. It is optimised for a 9V/2A Quick Charge 3.0 power supply. This is commonly found on older power banks on the USB-A port.
It does **not** support USB-PD and will not work when powered from a USB-C power supply in most cases.
- uses _Quick Charge 3.0_ / _QC3_ capable charger only (18W max);
- doesn't support PD as it is not designed on the hardware level;
- the original firmware can be found [here](https://e-design.com.cn/en/NewsDetail/4203645.html)([mirror backup](https://github.com/Ralim/IronOS-Meta/tree/main/Firmware/Miniware)).
![Image of TS80](https://core-electronics.com.au/media/catalog/product/4/2/4244-01.jpg)
### TS80P
The TS80P is the direct successor to the TS80 and essentially what the TS80 should have been from its debut. It is nearly identical except it adds USB-PD support for far better compatibility with modern power banks as well as a faster tip removal method.
- supports _Quick Charge 3.0_ (_QC3_: 9V/2A,12V/1.5A 18W max);
- supports _Power Delivery_ (_PD_: 9V/3A & 12V/3A, 30W max)\*\*;
- the original firmware can be found [here](https://e-design.com.cn/en/NewsDetail/4203645.html)([mirror backup](https://github.com/Ralim/IronOS-Meta/tree/main/Firmware/Miniware)).
\*\*: use valid PD device that supports 12V/3A as power source to get full 30W potential, otherwise the iron will fall back to 9V/18W power mode.
![](https://static.eleshop.nl/mage/media/catalog/product/cache/10/image/800x/040ec09b1e35df139433887a97daa66f/s/-/s-l1600_5.jpg)
### MHP30
MHP30 is a **M**ini **H**ot **P**late:
- accelerometer is the MSA301, this is mounted roughly in the middle of the unit;
- USB-PD is using the FUSB302;
- the hardware I2C bus on PB6/7 is used for the MSA301 and FUSB302;
- the OLED is the same SSD1306 as everything else, but its on a bit-banged bus;
- the original firmware can be found [here](https://e-design.com.cn/en/NewsDetail/4203645.html)([mirror backup](https://github.com/Ralim/IronOS-Meta/tree/main/Firmware/Miniware)).
### Pinecil
Pincecil:
- first model of soldering iron from PINE64;
- the default firmware can be found [here](https://files.pine64.org/os/Pinecil/Pinecil_firmware_20201115.zip).
![](https://pine64.com/wp-content/uploads/2020/11/pinecil-bb2-04.jpg?v=0446c16e2e66)
- Accelerometer is the MSA301, this is mounted roughly in the middle of the unit
- USB-PD is using the FUSB302
- The hardware I2C bus on PB6/7 is used for the MSA301 and FUSB302
- The OLED is the same SSD1306 as everything else, but its on a bit-banged bus

View File

@@ -1,80 +1,6 @@
# Version Changes
## v2.22
### New Hardware Support
#### Sequre S60
The [Sequre S60](https://sequremall.com/products/sequre-s60-nano-electric-soldering-iron-support-pd-qc-power-supply-compatible-with-c210-soldering-iron-tips-precision-electronic-mobile-phone-repair-tool-anti-static-soldering-pen?variant=42361945096380) uses JBC tips, which makes it quite useful for the smaller tip types and extra options available.
#### TS101
The TS101 is the evolution of the TS100, picking up USB-PD.
It has otherwise similar tip support to the TS100/Pinecil/PinecilV2.
Absolutely massive kudos goes to @VioletEternity for her work on the reverse engineering of this. If you at all are helped by IronOS running on this device more credit goes to her than to I. Also big thanks to @whitequark for organising + supporting + magic.
### Features & changes
#### PinecilV2 notes
1. BLE is fixed on all devices.
2. Bootup Logo support is finalised and working.
3. Improved the tip control, improving accuracy and remove most oscillations.
#### Profile heating mode for MHP30
This lets you define a heat profile and run this profile akin to a proper reflow device.
This can be used on the MHP30 by long-holding the A button (aka start button).
Profile can be edited in settings.
#### Note on newer OLED's
To prevent this release being held up forever, the TS101 and S60 are being released with a limitation on the OLED screen.
The current code will only draw to the upper left corner of the screen.
Assets have been made for rendering this at full size, but the code is not complete yet.
#### Smaller updates
- Filtering added to MHP tilt-exit to make it less sensitive
- Warning if a tip is detected to be shorted (TS101 + PinecilV2)
- Translation updates ❤️
- Documentation updates
- Lots of tooling and code cleanups
## v2.21
### Features & changes
- Bluetooth Low Energy support for PinecilV2
- Large cleanup of translation files; and refactor of how we handle fonts for translations
- Fixes for I2C corruption on PinecilV2
- Option for using adjustable profiles on USB-PD or not
- Cleanups and improvements to the generated [documents website](https://ralim.github.io/IronOS)
### PinecilV2 notes
For Pinecil V2 users blisp is currently my recommended CLI tool for updating the device. It is built for all main OS's automatically. This does not apply to V1 devices. If your iron came with a blue grip, its a V1 and update the same as always. If your device came with a green silicone grip its a V2 device.
Alternatively you can use Spagett1's PineFlash tool that should provide a GUI interface for PinecilV1 & PinecilV2.
For a small number of V2 Pinecil devices there appears to be an interference issue between the Bluetooth Low Energy and some devices; more information here. If this occurs to you, please let us know in the issue and rollback to 2.20 for now.
## v2.20
- First "full" release for PinecilV2
- Loots of documentation updates
- Documentation is [now nicely readable as a site](https://ralim.github.io/IronOS/GettingStarted)
- A fair collection of bugfixes for PinecilV2
- Cold Junction Calibration was reworked and now occurs _at next boot_ to make it easier to perform when the device is cold
## v2.19
## V2.19
- Bug-fix Infinite Boot Logo
- Shutdown settings for MHP30
- Accelerometer sensitivity for MHP30
@@ -83,9 +9,7 @@ For a small number of V2 Pinecil devices there appears to be an interference iss
- Updated translations
- Improved documents, added features table
## v2.18
## V2.18
- Support for animated bootup logo's
- Bootup logo's moved to their own IronOS-Meta repo
- New Vietnamese translation (limited due to screen size)
@@ -93,11 +17,8 @@ For a small number of V2 Pinecil devices there appears to be an interference iss
- Updated translations
- Better Instructions/documents
## v2.17
### Features & changes
## V2.17
### Big changes
- Indicate status of VBus for modding Pinecil (debug menu)
- Better hall effect sensor sensitivity adjustment (larger range with more steps)
- Temperature increment will "round" to nearest multiple of increase amount
@@ -111,9 +32,7 @@ For a small number of V2 Pinecil devices there appears to be an interference iss
- Fixed automatic orientation for newer TS80P's with the SC7 accelerometer
- User interface slight changes
- New `metadata.zip` file to allow the Pine Updater to automatically fetch information on releases
### Notes
- VBus mod detection may not play well with all PPS chargers. If your iron reboots when you view this in the debug menu its not a fault. ([#1226](https://github.com/Ralim/IronOS/issues/1226))
- `metadata.zip` is only designed for use by automatic software, ignore it for normal use
- More details on Pinecil VBus mod coming via other channels.
@@ -122,38 +41,39 @@ For a small number of V2 Pinecil devices there appears to be an interference iss
- -> Release has been updated to build `e065be3` after one bug with the BMA223 was found.
## v2.16
## V2.16
- Overhaul of the Timer+ADC setup with help from @sandmanRO
- Overhaul of the PID with help from @sandmanRO
- Settings _should_ now upgrade in place to future versions, with resets only happening to new/changed settings
- Shows error if tip runaway (failed temperature sensor) is detected
- USB-PD now has a timeout, to allow forcing QC3 negotiation to start faster
- QC3 Voltages are now adjustable to user desired setpoint
- Added a small tolerance to allow "overvoltage" on QC3 above unit specifications.
- Please note: Doing this is entirely at your own risk!
- New Advanced view that is much nicer to use and a very good daily driver option from @Mel-kior
- OLED brightness and contrast thanks to @alvinhochun
- Scrollbar is fixed so it doesnt jump around when menus are shown/hidden
- Moved to `.dfu` files from `.bin` to make flashing commands easier
- Every language had translation updates I believe
- Romanian language added
* Overhaul of the Timer+ADC setup with help from @sandmanRO
* Overhaul of the PID with help from @sandmanRO
* Settings _should_ now upgrade in place to future versions, with resets only happening to new/changed settings
* Shows error if tip runaway (failed temperature sensor) is detected
* USB-PD now has a timeout, to allow forcing QC3 negotiation to start faster
* QC3 Voltages are now adjustable to user desired setpoint
* Added a small tolerance to allow "overvoltage" on QC3 above unit specifications.
* * Please note: Doing this is entirely at your own risk!
* New Advanced view that is much nicer to use and a very good daily driver option from @Mel-kior
* OLED brightness and contrast thanks to @alvinhochun
* Scrollbar is fixed so it doesnt jump around when menus are shown/hidden
* Moved to `.dfu` files from `.bin` to make flashing commands easier
* Every language had translation updates I believe
* Romanian language added
## v2.15
## V2.15
### Features & changes
- MHP30 support
- Multi-lingual firmware combinations now exist for Pinecil
- More fine grained voltage controlled options
- USB-PD improvements (version one and two)
- More configuration options for power pulse
- All font / character encoding has been very reworked
- More translation updates than one can count
- More languages 😱
## Feature upgrades:
### MHP30 support
* MHP30 support
* Multi-lingual firmware combinations now exist for Pinecil
* More fine grained voltage controlled options
* USB-PD improvements (version one and two)
* More configuration options for power pulse
* All font / character encoding has been very reworked
* More translation updates than one can count
* More languages 😱
### MHP30
The MHP30 is a small reflow station from Miniware.
Thanks to a massive amount of help from @g3gg0 this firmware brings the beginnings of support for this unit.
@@ -164,8 +84,7 @@ Programs the same as any one Miniware unit using drag and drop.
The flood doors are now open for feature requests for this unit :)
## v2.14
## V2.14
- Fixing auto rotation bug in the LIS accelerometer in the TS80/TS80P
- Adds support for two new accelerometers
@@ -182,8 +101,7 @@ The flood doors are now open for feature requests for this unit :)
- Cleanup the folder name of the source code #800
- clang-format spec setup #801
## v2.13
## V2.13
- First _official_ Pinecil release
- All of the wire for Pinecil releases added
@@ -200,8 +118,7 @@ The flood doors are now open for feature requests for this unit :)
- Fixed bug with accelerometer model on Pinecil
- Rework of all of the temperature curves for better accuracy
## v2.12
## V2.12
- Only released as pre-release
- [TS80P] Improvements to the PD negotiation to handle a few more adapters cleanly
@@ -209,42 +126,36 @@ The flood doors are now open for feature requests for this unit :)
- Clean up the menu (removed both enables and settings, so that you can turn things off easier)
- Removing the very old single line menu style.
## v2.11
## V2.11
- First TS80P support
- Added in a USB-PD driver stack for the FUSB302
- Fixed some graphical glitches
## v2.10
## V2.10
- GUI polish (animations and scroll bars)
- Power pulse to keep power supplies alive
- Adjustable tip response gain
## v2.09
## V2.09
- Adjustable steps in temperature adjustment
- Git hash now in build string
- Adjustable language to set if US units are available or not
- Some minor QC3 improvements
## v2.08
## V2.08
- Fixes auto start in sleep mode
- Power limiters
## v2.07
## V2.07
- QC fixes
- Cosmetic fixes for leading 0's
## v2.06
## V2.06
- Warning on settings reset
- Temp temp re-write
@@ -252,33 +163,27 @@ The flood doors are now open for feature requests for this unit :)
- Hide some leading 0's
- Menu timeouts
## v2.05
## V2.05
- Language updates
## v2.04
## V2.04
- GUI updates
## v2.03
## V2.03
- Support for new accelerometers
## v2.02
## V2.02
- Adds small font
## v2.01
## V2.01
- Newer settings menu
## v2.00
## V2.00
- Complete re-write of the low layer system to use the STM32 HAL for easier development
- This allowed easier setup for the new ADC auto measuring system
@@ -288,96 +193,80 @@ The flood doors are now open for feature requests for this unit :)
- Added detailed screen views
- Added smaller font for said screen views
## v1.17
## V1.17
- Added blinking cooldown display
- Allowed smaller sleep timeout values
- New font!
- Automatic startup option
## v1.16
## V1.16
- Added automatic rotation support
- Added power display graph
## v1.15
## V1.15
- Added support for a custom bootup logo to be programmed via the DFU bootloader
## v1.14
## V1.14
- Changed input voltage cutoff to be based on cell count rather than voltage
## v1.13
## V1.13
- Swapped buttons for menu to prevent accidentally changing first menu item
- Added auto key repeat
## v1.12
## V1.12
- Increases sensitivity options to be 1\*9 with 0 off state
- Fixes issue where going from COOL \*> soldering can leave screen off
## v1.11
## V1.11
- Boost mode
- Change sensitivity options to be 1\*8
## v1.10
## V1.10
- Adds help text to settings
- Improves settings for the display update rate
## v1.09
## V1.09
- Adds display modes, for slowing down or simplifying the display
## v1.08
## V1.08
- Fix settings menu not showing flip display
## v1.07
## V1.07
- Adds shutdown time to automatically shutdown the iron after inactivity
## v1.06
## V1.06
- Changes H and C when the iron is heating to the minidso chevron like images
## v1.05
## V1.05
- Adds ability to calibrate the input voltage measurement
## v1.04
## V1.04
- Increased accuracy of the temperature control
- Improved PID response slightly
- Allows temperature offset calibration
- Nicer idle screen
## v1.03
## V1.03
- Improved Button handling
- Ability to set motion sensitivity
- DC voltmeter page shows input voltage
## v1.02
## V1.02
- Adds hold both buttons on IDLE to access the therometer mode
- Changes the exit soldering mode to be holding both buttons (Like original firmware)

View File

@@ -1,101 +1,56 @@
# Startup Logo / Animation
# Startup Logos
When the device starts, you can have it optionally show either a static image or an animation. You can also set if these should stay on the screen or dismiss after some amount of time.
These can be an elegant way to personalise your device or just mark it as your one at a meetup where there may be multiple.
All devices supported by IronOS support this logo, and follow a similar process for setting one up. Please read the below general information as well as any model specific notes.
Bootup logos are stored at the end of the flash storage in the Iron; next to the user settings. By locating them at the end of storage they are not erased during the normal firmware upgrade process. Once a logo is set it should stay (unless we need to change things in the main firmware); so to erase your logo you will also find that we generate an erase file. Alternatively your method of flashing _may_ support doing a full erase flash which will also work for this.
This firmware supports a user created bootup logo.
By default, there is _not_ one included in the firmware. This means that once flashed they generally stay. If you want no logo again, you would have to flash a blank image to the bootup logo.
## Generating the Logo files
Because logos are stored at a fixed location in the device's internal flash; we can use the same method to flash these as you would normal firmware.
This does also mean that we need to convert the image/animation file into the format that IronOS understands.
IronOS uses a pre-processed file format to dramatically reduce the amount of space required to store the image; allowing for animations and saving space.
In the [IronOS-Meta](https://github.com/Ralim/IronOS-Meta) repository is a `python` script to convert images into this pre-processed file format.
Additionally, memebers of the community have contributed back their logo images as well. We provide these pre-converted for all models and ready to use in [IronOS-Meta/releases](https://github.com/Ralim/IronOS-Meta/releases).
There are community logo's already converted and ready to use in [IronOS-Meta/releases](https://github.com/Ralim/IronOS-Meta/releases).
Download the zip for Pinecil or Miniware and then install using the instructions in the Flashing section below.
If you want to make custom art then it needs to be converted with the Python script.
You can checkout the repository or use the download-as-zip button in the Github web interface to download the code.
If you want to make custom art then it needs to be converted with a Python script. The script and other needed files are in [IronOS-Meta](https://github.com/Ralim/IronOS-Meta/). Go to that folder, then it is easiest to select the green Code button (upper right), then Download Zip. This way you get all the files you need and some extras. You only need what is inside Boot Logos. Put your custom image inside the Boot Logos folder with all python script files already there.
Inside the download code is a `Boot Logos` folder, inside here is the python script required for logo conversion.
It is easiest if you copy your logo file to be converted into this folder too, in order to keep commands shorter.
The Python script converts an image passed into it on the command line into both a `.hex` file and a `.dfu` to be uploaded to the iron in DFU mode. The image can be in color and any size, but it will be resized and converted to 1-bit color. However, it looks best if you create a 96x16 image (Png or Bmp) in any image editor and color the pixels black & white manually.
The image can be in color and any size, but it will be resized and converted to 1-bit color. However, it looks best if you create a 96x16 image (`png` or `bmp`) in any image editor and color the pixels black & white manually. The thresholding used for converting colour to B&W may not always work as well as one would hope.
The converter requires at least Python3 and Pillow apps. Follow online instructions for installing Python and Pillow.
The converter requires at least Python3 and Pillow apps. Follow online instructions for installing Python and Pillow on your machine. Any reasonably recent version should work well.
For Windows, it is recommended to use Windows PowerShell instead of Command.
Open Powershell (run as administrator), type python to install it, it will open microsoft store where you can install it free.
Go back to Powershell and install Pillow. What works can vary, but this command may work:
When running the script on the Windows operating system; it is recommended to use `Powershell` rather than the old `Command Prompt`.
python -m pip install Pillow
or
python3 -m pip install pillow
For installing pillow; you can install it via your package manager (Debian and similar distros) or via pip. To install via pip the command should be `python -m pip install pillow`.
If the above does not work, see [this page](https://stackoverflow.com/a/20061019/6705343) on StackOverflow about installing Pillow.
Now that Python and Pillow are successfuly installed, you can convert an image.
In your shell you can now execute `python img2logo.py input.png out -m ${model}` to convert the file `input.png` and create output files in the folder `out`.
The model should be replaced by one of the following options:
Go back to Powershell and type this command (change infile.png to the name of your image):
- `miniware` for older Miniware Irons -> TS100, TS80, TS80P
- `pinecilv1` for the Pinecil V1
- `pinecilv2` for the Pinecil V2
- `ts101` for the Miniware TS101 [^1] [^2]
- `s60` for the Sequre S60 [^1]
- `mhp30` for the Miniware MHP30
- `python img2logo.py infile.png out -m` for Miniware
- `python img2logo.py infile.png out -p` for Pinecil
Different models are used for different flash locations for the image storage.
This means that files are **not** interchangeable between devices. If you are flashing multiple devices you will need to create a different file for different models.
After processing its expected to have a `.hex` and `.dfu` file created to be used. Which one to use will depend on your device.
Run `python img2logo.py --help` to see available options. Replace the word python with python3 if you have multiple versions of python installed.
Note: make sure your image file is in the same folder as script files (img2logo.py, output_dfu.py, output_hex.py).
[^1] Note that these devices have larger resolution screens that the logo system supports right now. Fixes are coming for this soon, roughly scheduled for 2.23.
[^2] The TS101 requires extra steps, see below.
### TS101 Quirks
When Miniware designed the TS101 they cut cost by using an STM32 clone with some odd quirks. They also re-wrote their USB bootloader, which has introduced new bugs for us to deal with.
Their bootloader appears to have kept the existing limit of not being able to flash small hex files, but they no longer fall for the older "just repeat the content" trick and instead reject the file.
Additionally, while the MCU in use has 128K of flash, their bootloader (at least for me) fails to write to anything above 99K. It _looks_ like a watchdog reset or hard crash. Unsure.
This has flow on effects, where the settings can still be located in the upper ~28K of flash, but it cant be used for anything we flash over USB.
Of that 100K we can use, they waste 32K of it for their bootloader (Old bootloaders were 16K).
This means the main "app" of IronOS is limited to around 67K (100K-32K for bootloader, -1K for logo).
For this device the Logo is not located at the end of flash but instead at the last writable page (99K).
Additionally, as we need to do a large write, to avoid having to waste more flash space; the logo is merged with the normal firmware. This means that the firmware and logo are flashed together once.
Future updates can be done without merging as it will leave the logo data there as normal firmware doesnt touch that area of flash.
To do this, download the latest version of IronOS and merge it with the logo using the `--merge` command line argument.
To create the logo file for a TS101 the full command looks like `python3 img2logo.py <image file path> <output folder path> -m ts101 --merge <Path to main firmware>`.
For this reason, there are no TS101 logo's generated by the IronOS-Meta repo.
## Flashing the Logo
### Upload via virtual disk (TS100,TS101,TS80,TS80P,S60,MHP30)
### Miniware (TS100/TS80/TS80P)
If you normally update your firmware by having your device show up as a flash drive this is the method for you.
This applies to all Miniware + S60 devices running the stock DFU bootloader.
Upload the HEX file to the iron in DFU mode and, if the file's extension changes to .RDY, your custom splash screen should show up on startup.
You perform this the same way as if you were flashing a new firmware, and all the existing notes around this apply.
Place your device into update mode (usually by holding the B button when connecting your device to your pc via USB).
Upload the `.hex` file you created earlier as if it was a firmware update. Do any normal tricks required for firmware flashing if any are required.
Afterwards the firmware should indicate that it has worked (often by creating a `.rdy` file).
If you have flashed the `IronOS-dfu` alternative bootloader, you should use the `.dfu` files instead
At this point unplug your iron and re-connect it to power to start normally and the logo should welcome you.
### Pinecil V1
### Upload via GUI flash tool (PinecilV1/V2)
For Pinecil V1, we require using dfu-util to flash the logo art (Pinecil does not use hex).
[Pine64 Updater](https://github.com/pine64/pine64_updater/releases) is the easiest way to load the Bootup logo onto Pinecil as it already includes the necessary DFU library. Connect Pinecil to a PC, and open the Updater the same as updating firmware.
Select Custom > Browse to the DFU image file you just made > Update to install.
If you normally upload your firmware using a helper application, they should accept the files from the bootlogo the same as the normal firmware.
Try the `.dfu` file first and then the `.hex`. If neither work then the application may not be updated to be able to handle boot logos. And you may need to use a different/newer tool.
The bootup logo is stored in a separate location than the IronOS firmware and you do not have to worry about it changing or breaking the IronOS.
### Upload via dfu-util (PinecilV1/IronOS-DFU)
You could also use dfu-util and use Command line to install it.
For the PinecilV1 and for any devices that have been converted to use `IronOS-DFU` as the bootloader you can flash these via the `dfu-util` command line tool.
For these flash as per usual using the `.dfu` file. Afterwards power cycle and the logo should show up.
### Upload via blisp (PinecilV2)
For the PinecilV2 we suggest `blisp` as the command line tool to use if you are not using a GUI tool. `blsip` has been updated to accept `.dfu` files as well as the `.bin` files it historically used. As such you use the `.dfu` file for the logo and flash as per normal otherwise and it will work and reboot at the end. It should show you your new logo after flashing.
- `dfu-util -D logo_file.dfu`

View File

@@ -1,72 +0,0 @@
# Requesting support for a new device
IronOS is largely designed to run on devices that are using _fairly_ modern microcontrollers at their core. Generally this means an ARM Cortex or RISC-V processor.
At this point in time it is not planned to support 8051 or similar cored devices. This is largely due to the reliance on FreeRTOS at the moment.
When requesting a port for a new device, please try and find out if the hardware meets the below requirements.
The feature list's below are organised into three categories; Hard requirements that as of current must be met, soft requirements that _should_ be met for full featured performance and the final category of planned _but not yet implemented_ features; which can be implemented but can result in delays as these are not yet implemented.
Aside from the below, keep in mind IronOS is really designed for soldering irons. This has expanded out into hot-plates as they are exceptionally similar devices.
## Hard requirements
1. Supported processor (Arm Cortex or RISC-V). (Though generally anything that has an existing FreeRTOS port is possible).
2. 64K of flash or larger (See note A)
3. 16K of ram or larger
4. Device has one or more heating elements that can be controlled by a main temperature sensor
5. If the main temperature sensor is a thermocouple, a reference temperature sensor for cold junction compensation must exist and be close to the sensor contacts
6. Means of the user updating the device without opening
7. Known pinmap for the microcontroller. (see note B)
## Soft requirements
1. USB-PD is strongly preferred over Quick Charge; Quick Charge only devices are considered legacy and will likely not be prioritiesd.
2. Open source or at the least schematics available is **strongly** preferred and will prioritise the device.
3. Likewise friendly vendors will help dramatically with support, due to both questions and also appearances to help the community.
4. Hardware PWM wired up to the tip control is nice to have but not essential
5. Very strong preference against devices that use the endless sea of STM32 clones.
## Planned features
These features are planned for eventual support, but will likely not be done until devices need them.
- Colour screens
- More than 2 buttons for input, or encoder inputs
- WiFi/Zigbee/ any other networking
## Notes
### Note A - Flash storage space
64KB is generally the minimum recommended size for the hardware to have.
Larger is _definitely_ preferred as it enables more features or the multi-pack language firmwares.
Keep in mind that on some devices we loose space to a USB DFU bootloader (Older STM32F1's) so the firmware _can_ work with less. But it can come at the cost of features.
128KB or larger is **great**.
For devices that have BLE or WiFi or other features, often code requirements are significantly larger. These are considered non essential features so will be ignored if we run into size issues.
### Note B - Pinmap for the microcontroller
In order to be able to write the interfacing code to communicate with the hardware, we need to know what pins on the microcontroller go to what hardware.
It is also loosely required to have an understanding of the rest of the device, we do not need details on a lot of the boring aspects,but if for example a USB-PD interface IC is used we would want to know which one.
## Example request for adding a new device
Device Name:
Device Type:
Approximate Price:
Example purchase locations:
### Hardware details
Microcontroller version: `STM32F103C8Tx`
Flash size (If external to the MCU):`N/A`
Microcontroller Pinout: <!-- Either link to manufacturer information, a forum documenting this or a discussion where the pinout has been roughly figured out already-->
Device type: <!-- Soldering Iron/Hot Plate/ Reflow oven etc-->
Device meets hard requirements list []
Device meets soft requirements list []
Device features USB-PD []
Device features USB-QC []
Device features DC Input []
Device features BLE []

View File

@@ -6,14 +6,13 @@ This *means* that the power provided in the tip is 100% controlled by the supply
Irons at their simplest are just a resistor (Ω) connected to your power source via a switch.
- When the switch is on, the power in the resistor is: *`P(watts) = V(volts) \times\ I(current=amps)`*
- Current through the resistor is: *`I(amps) = V(volts) ÷ Ω (resistance)`*
- When the switch is on, the power in the resistor is: $P(watts) = V(volts) \times\ I(current=amps)$
- Current through the resistor is: $I(amps) = V(volts) ÷ Ω (resistance)$
- Combining these gives some common equations for Power
*`P(watts) = V(volts) * I(amps)`* or *`P = V^2 ÷ Ω`*
$P(watts) = V(volts) * I(amps)$ or $P = V^2 ÷ Ω$
The resistance of the tip is a fixed constant in ohms (Ω):
- 6.2 Ω Pine64 short tip
- 8.0 Ω TS100/Pinecil long tip
- 4.5 Ω TS80(P)
@@ -21,8 +20,6 @@ The resistance of the tip is a fixed constant in ohms (Ω):
This means the power delivered to the soldering tip is proportional to the voltage squared.
Therefore the Pinecil and TS100 perform poorly when run off 12V power supplies and may issue a `Thermal Runaway` message (weak power supply).
#### Use an [Ohm calculator](https://www.rapidtables.com/calc/electric/power-calculator.html#dc) to quickly derive watts.
| Type | Volts| / | Tip Ω | = | Amps | * | Volts | = | Watts |
@@ -47,8 +44,3 @@ To measure the tip temperature in the iron, the iron has a small op-amp connecte
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](https://ralim.github.io/IronOS/Temperature/#complexity-of-measurement)).
## Power sources
Supported by IronOS hardware may use different power sources (chargers/powerbanks/battery packs) with different standards & protocols (QC/PD/etc). For more information collected by the community on that, please, [see the related documentation section](https://ralim.github.io/IronOS/PowerSources/).

View File

@@ -1,80 +0,0 @@
# Power sources
Supported by IronOS hardware may use different power sources (chargers/powerbanks/battery packs) with different standards & protocols (QC/PD/etc). This document contains information collected by the community with tested power sources.
This is not ads but first hands-on experience results from real users since some chargers/powerbanks regardless labels on the box may not fully support what's declared!
## QC(3)
### Compatible Devices (QuickCharge for TS80/P)
The following table is the list of compatible device and remarks when powering up the TS80 through it for both stock firmware from MiniDso and IronOS. The list of devices below are primarily taken from [#349](https://github.com/Ralim/ts100/issues/349#issuecomment-449559806)
| Device Name | Stock FW | IronOS FW |
|-------------|:--------:|:---------:|
| Anker PowerCore II Slim 10000 Powerbank | Not Working | Good |
| [Aukey 26.5/30 Ah Powerbank (PB-Y3)](https://www.aukey.com/products/30000mah-power-bank-with-quick-charge-3-0/) | OK\*\* (15sec t/o) | OK\*\* (15sec t/o) |
| Aukey QC3 Charger | Good | Only 5V |
| [Aukey QC3 Charging Station (PA-T11)](https://www.aukey.com/products/6-port-charging-station-with-quick-charge-3-0-pa-t11/) | Good | Good |
| Besiter 20000mah QC3 | Not Working | Only 5V |
| BlitzWolf BW-P5 | Not Working\* | Unknown |
| BlitzWolf BW-PF2 | OK\*\* (10sec t/o) | OK\*\* (10sec t/o) |
| BlitzWolf BW-PL3 | Low Voltage | OK |
| BlitzWolf BW-PL4 | Unknown | Not Working |
| BlitzWolf BW-S6 | Unknown | OK |
| Charmast 20800 mAh QC 3.0 | Low Voltage\* | Good |
| Clas Ohlson Powerbank USB-C 10050 mAh, Clas Ohlson | Unknown | OK\*\* |
| [Cygnett 20,000mAh USB-C](https://www.cygnett.com/products/20-000mah-usb-c-power-bank-in-black)| Not Working | Good |
| [HAME H13D](https://www.amazon.com/dp/B07GWMFW82) 10000mAh PD/QC3.0 Power Bank | OK\*\* (30sec t/o) | OK\*\* (30sec t/o?) |
| HIPER 10000 mAh 18W PD+QC3.0 (MPX10000) | Low Voltage | OK\*\* (30sec t/o) |
| [iMuto Portable Charger 30000mAh](https://www.amazon.com/gp/product/B01MXCMGB8/ref=ppx_yo_dt_b_asin_title_o05_s00) | Low Voltage | Good |
| ISDT BG-8S | Good | Good |
| [iVoler Quick Charge 3.0 USB C 30W 2-Port USB](https://www.amazon.de/dp/B077P8ZZB8/) | Good | Good |
| [imuto X6L Pro 30000 mah](https://www.amazon.com/dp/B01MXCMGB8) | Not Working | Bad |
| Interstep 10000 mAh 18W PD+QC3.0+FCP+AFC (MPX10000) | Good | OK\*\* (30sec t/o) |
| Jackery Black 420 | Low Voltage | Good |
| Kogan Premium 80W 5 Port USB Charger| Low Voltage | Good |
| Nokia AD-18WE | Unknown | OK |
| [Omars 2000mAh USB-C PD+QC3.0 (OMPB20KBUPLT / OMPB20KPLT)](https://www.amazon.com/dp/B07CMLVR6C) | OK\*\* (20sec t/o) | Unknown |
| Polaroid PS100 Powerbank (https://polaroid.com/products/ps100) | Good | Good |
| Xiaomi 10000mAh Mi Power Bank Pro (PLM03ZM) | Good | Unknown |
| Xiaomi 10000mAh Mi Power Bank 2i (PLM09ZM) | Good | Good |
| Xiaomi 20000mAh Mi Power Bank 3 (PLM07ZM) | Unknown | Good Type A, Bad Type C |
| [ZeroLemon ToughJuice](https://www.amazon.com/dp/B01CZR3LT2/) 30000mAh PD/QC2.0 Power Bank | OK\*\* (20sec t/o) | OK\*\* (20sec t/o?) |
| [URUAV XT-60 to USB module](https://www.banggood.com/URUAV-XT-60-to-USB-Charger-Converter-Support-3S-6S-LiPo-Battery-10_5V-32V-Input-3V-20V-Output-45W-Max-Fast-Charging-Adapter-For-RC-Racing-Drone-p-1475876.html) | Unknown | Good |
\* Need further tests on newer firmware
\*\* Most Power Banks shut down if current draw drops below 50mA, assuming that charging is complete and avoiding overcharging. Custom firmware is designed to avoid this until it enters Zzzz mode.
### DIY QC3.0
You may also build your own QC3.0 power source that requires this little [thing](https://www.tindie.com/products/soubitos/qualcomm-qc2-3-diy-8-32vin-36-12vout-3a-max/) and have at least 3S lithium packs or any input voltage from 8 to 32V.
You can also go for an [alternate module](https://www.banggood.com/DC-Buck-Module-12V24V-to-QC3_0-Single-USB-Mobile-Charging-Board-p-1310585.html) which has at least one good review of it.
**DISCLAIMER:** _**We do not hold any responsibility for accidents that happen when building your own QC3.0 power source!!!**_
## PD
The following additional table is the list of devices compatible with hardware which requires Power Delivery support (>= 30W). Devices from the list have been successfully tested & used with TS80P in PD mode. Please, keep in mind that:
- PD can be provided only through usb-c <-> usb-c cable;
- not only a charger but a cable itself should be capable to carry higher wattages.
### Compatible Devices (PowerDelivery for TS80P)
| Device Name | IronOS FW |
|-------------|:---------:|
| Traver Charger QC09 (45W max)\* | OK |
| Xiaomi AD65GEU Mi 65W Fast Charger with GaN Tech (AD65GEU, 65W max) | OK |
\* Comes as an _option_ for extra price in the package with TS80P from [official store](https://aliexpress.com/item/4000764937427.html) or from [NovelLife store separately](https://aliexpress.com/item/4001316262433.html) on AliExpress.
Please, DO NOT BUY cheap "fast chargers with QC/PD support" for a few dollars online (i.e., less than ~10$): if you check reviews, then you see that they are phonies - even if you get lucky, you probably get 5V/1A max from them.

View File

@@ -1,33 +0,0 @@
<!-- THIS FILE IS AUTOGENERATED by "scripts/deploy.sh docs_readme" based on nav section in scripts/IronOS-mkdocs.yml config -->
<!-- THIS FILE IS NOT SUPPOSED TO BE EDITED MANUALLY -->
#### This is autogenerated README for brief navigation through github over official documentation for IronOS project
#### This documentation is also available [here online](https://ralim.github.io/IronOS)
- [Home](../Documentation/index.md)
- [Getting Started](../Documentation/GettingStarted.md)
- Flashing the firmware
- [MHP30](../Documentation/Flashing/MHP30.md)
- [Pinecil V1](../Documentation/Flashing/Pinecil%20V1.md)
- [Pinecil V2](../Documentation/Flashing/Pinecil%20V2.md)
- [TS80(P)](../Documentation/Flashing/TS80(P).md)
- [TS100](../Documentation/Flashing/TS100.md)
- Operation
- [Main Menu](../Documentation/Menu.md)
- [Settings](../Documentation/Settings.md)
- [Debug Menu](../Documentation/DebugMenu.md)
- [Power](../Documentation/Power.md)
- [Temperature](../Documentation/Temperature.md)
- [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)
- [Power sources](../Documentation/PowerSources.md)
- [New Hardware Requirements](../Documentation/PortingToNewDevice.md)
- [Translations](../Documentation/Translation.md)
- [Development](../Documentation/Development.md)
- [Changelog](../Documentation/History.md)

View File

@@ -14,18 +14,6 @@ But it is helpful to do some basic diagnostics first just in case the issue is e
The **VAST** majority of issues are poor soldering or cold solder joints.
If you can open up your iron, give it a good look at all the connection points, and use another iron to reflow any suspicious ones, this can fix most issues.
## Tip Shorted warning
If you are powering up a device that supports tip resistance detection (TS101 and Pinecilv2 as of present), the firmware checks the readings of the raw tip resistance and sorts these into three "bins". `8 ohm tips`, `6.2 ohm tips` and `tip-shorted`. The tip resistance is used when negotiating USB-PD and in thermal calculations.
The `tip-shorted` option is selected if your tip is measured to be abnormally small. This could indicate a failed driver mosfet or a failed tip.
When this warning is shown; heating will be disabled to protect from damage. As trying to heat a shorted tip can damage the iron itself.
It is best to take out your tip and manually measure and verify the tip's resistance. It should be 6-8 ohms (depending on tip type). When measuring resistances this small some multimeters can struggle. If you have access to a current limited bench power supply, you can try doing a 4 wire measurement by measuring the voltage drop on the tip while applying a known current. `(R=V/I)`.
If the tip measures correctly you may have a damaged driver mosfet; it would be ideal to open your iron and test the mosfet is operating correctly.
If after both of these checks everything looks as expected, feel free to open a discussion on IronOS to talk about the issue (Or for Pinecil the community chat can be a much faster response).
## High tip temp reading when the tip is cool
If you are finding the tip is reading high; the first fields to check in the Debug menu are `RTip` and `CHan`.
@@ -75,23 +63,10 @@ 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 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.
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 ⚠️

View File

@@ -8,7 +8,7 @@ For soldering irons that are designed to be powered by batteries (TS100 & Pineci
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 stable & feature complete for everyday use with a supported device, _so please suggest any feature improvements you would like!_
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._
@@ -39,12 +39,6 @@ For notes on installation for your device, please refer to the flashing guide fo
- [TS80 / TS80P](https://ralim.github.io/IronOS/Flashing/TS80%28P%29/)
- [TS100](https://ralim.github.io/IronOS/Flashing/TS100)
But the _generic_ [TL;DR](https://www.merriam-webster.com/dictionary/TL%3BDR) is to:
- [download firmware from here](https://github.com/Ralim/IronOS/releases) for the correct model with suitable language support;
- put a device into DFU/bootloader mode (usually by keep holding A/+/front button while connecting a device to power source to power device on);
- flash the firmware by drag-n-drop the firmware file using a file manager of your OS **or** using a separate flashing tool.
## Key Features
- PID style iron temperature control
@@ -76,25 +70,3 @@ When on the main screen and having the tip plugged in, the unit shows a pair of
- 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/)
## Feedback
If you would like to:
- report any issue related to IronOS
- request a feature
- provide some suggestion
then you can [fill this form](https://github.com/Ralim/IronOS/issues/new/choose) using github account\*.
And if you would like to:
- ask more generic question about IronOS/supported hardware/something you're curious about/etc.
- reach out community to chat with
- share your soldering & DIY skills
- share some interesting finding
- share useful related hardware/software with others
or _anything_ like that, then you can use forum-like [Discussions here](https://github.com/Ralim/IronOS/discussions).
\*: You may need to create it first if you don't have one - it's free of charge.

View File

@@ -1,3 +1,4 @@
version: "3"
name: "ironos"
services:
builder:
@@ -8,4 +9,5 @@ services:
dockerfile: scripts/IronOS.Dockerfile
command: /bin/sh
volumes:
- ./:/build/ironos:Z
- ./scripts/ci:/build/ci:Z
- ./:/build/source:Z

192
Makefile
View File

@@ -19,6 +19,8 @@ ifdef DOCKER_COMPOSE
DOCKER_BIN:=$(DOCKER_COMPOSE)
else ifdef DOCKER_TOOL
DOCKER_BIN:=$(DOCKER_TOOL) compose
else
$(error ERROR: Can't find docker-compose nor docker tool. Please, install docker and try again)
endif # DOCKER_* checks
endif # DOCKER_BIN
@@ -27,14 +29,6 @@ ifndef MKDOCS
MKDOCS:=mkdocs
endif
# build output related directories
ifdef OUT
OUT_DIR=$(OUT)
else
OUT_DIR=$(CURDIR)/BUILDS
endif
OUT_HEX=$(CURDIR)/source/Hexfile
### global static variables
@@ -51,91 +45,64 @@ DOCKER_CMD=$(DOCKER_BIN) -f $(DOCKER_YML) run --rm builder
# MkDocs config
MKDOCS_YML=$(CURDIR)/scripts/IronOS-mkdocs.yml
# supported models
MODELS=TS100 TS80 TS80P Pinecil MHP30 Pinecilv2 S60 TS101 S60P T55 # target names & dir names
MODELS_ML=Pinecil Pinecilv2 # target names
MODELS_MULTILANG=Pinecil_multi-lang Pinecilv2_multi-lang # dir names
# zip command (to pack artifacts)
ZIP=zip -q -j -r
### targets
# default target to show help
help:
@echo
@echo "Welcome!"
@echo "This is $(INFO)"
@echo "Welcome!\nThis is $(INFO)"
@echo "To read more about supported commands (aka \"targets\"), type \"make list\"."
@echo "But if you're impatient then just type \"make docker-build\" - it will:"
@echo " * download, configure & start docker container"
@echo " * compile builds of IronOS firmware for all supported models inside that container"
@echo " * export generated binaries to \"scripts/ci/artefacts/\" local directory"
@echo "\t * download, configure & start docker container"
@echo "\t * compile builds of IronOS firmware for all supported models inside that container"
@echo "\t * export generated binaries to \"scripts/ci/artefacts/\" local directory"
@echo "Patches are welcome. Happy Hacking!"
@echo
# target to list supported targets with additional info
list:
@echo
@echo ""
@echo "Supported top-level targets:"
@echo " * help - shows short basic help"
@echo " * list - this output"
@echo " * docker-shell - start docker container with shell inside to work on IronOS with all tools needed"
@echo " * docker-build - compile builds of IronOS for supported models inside docker container and place them to $(OUT_DIR) (set OUT env var to override: OUT=/path/to/dir make ...)"
@echo " * docker-clean - delete created docker image for IronOS & its build cache objects (to free a lot of space)"
@echo " * docker-clean-cache - delete build cache objects of IronOS docker image EXCEPT the image itself"
@echo " * docker-clean-image - delete docker image for IronOS EXCEPT its build cache objects"
@echo " * docs - generate \"site\"/ directory with documentation in a form of static html files using ReadTheDocs framework and $(MKDOCS_YML) local config file"
@echo " * docs-deploy - generate & deploy docs online to gh-pages branch of current github repo"
@echo " * tests - run set of checks, linters & tests (equivalent of github CI IronOS project settings for push trigger)"
@echo " * clean-build - delete generated files & dirs produced during builds EXCEPT docker image & its build cache"
@echo " * clean-full - delete generated files & dirs produced during builds INCLUDING docker image & its build cache"
@echo "\t * help - shows short basic help"
@echo "\t * list - this output"
@echo "\t * docker-shell - start docker container with shell inside to work on IronOS with all tools needed"
@echo "\t * docker-build - compile builds of IronOS for supported models inside docker container and place them to \"scripts/ci/artefacts/\""
@echo "\t * docker-clean - delete created docker container (but not pre-downloaded data for it)"
@echo "\t * docs - generate \"site\"/ directory with documentation in a form of static html files using ReadTheDocs framework and $(MKDOCS_YML) local config file"
@echo "\t * docs-deploy - generate & deploy docs online to gh-pages branch of current github repo"
@echo "\t * clean-full - delete files & directories generated by all the targets above "
@echo ""
@echo "NOTES on supported pass-trough targets:"
@echo " * main Makefile is located in source/ directory and used to build the firmware itself;"
@echo " * this top-level Makefile supports to call targets from source/Makefile;"
@echo " * if you set up development environment right on your host, then to build firmware locally, you can just type right from here:"
@echo "\t * main Makefile is located in source/ directory and used to build the firmware itself;"
@echo "\t * this top-level Makefile supports to call targets from source/Makefile;"
@echo "\t * if you set up development environment right on your host, then to build firmware locally, you can just type right from here:"
@echo
@echo " $$ make firmware-LANG_ID model=MODEL_ID"
@echo "\t> make firmware-LANG_ID model=MODEL_ID"
@echo
@echo "Full list of current supported IDs:"
@echo " * LANG_ID: $(shell echo "`ls Translations/ | grep -e "^translation_.*.json$$" | sed -e 's,^translation_,,g; s,\.json$$,,g; ' | tr '\n' ' '`")"
@echo " * MODEL_ID: $(MODELS)"
@echo "\t * LANG_ID: BE BG CS DA DE EL EN ES FI FR HR HU IT JA_JP LT NB NL_BE NL PL PT RO RU SK SL SR_CYRL SR_LATN SV TR UK VI YUE_HK ZH_CN ZH_TW"
@echo "\t * MODEL_ID: TS100 TS101 TS80 TS80P MHP30 Pinecil Pinecilv2 S60"
@echo
@echo "For example, to make a local build of IronOS firmware for TS100 with English language, just type:"
@echo
@echo " $$ make firmware-EN model=TS100"
@echo "\n\t> make firmware-EN model=TS100"
@echo
# detect availability of docker
docker-check:
ifeq ($(DOCKER_BIN),)
@echo "ERROR: Can't find docker-compose nor docker tool. Please, install docker and try again"
@exit 1
else
@true
endif
# bash one-liner to generate langs for "make list":
# echo "`ls Translations/ | grep -e "^translation_.*.json$" | sed -e 's,^translation_,,g; s,\.json$,,g; ' | tr '\n' ' '`"
# former start_dev.sh
docker-shell: docker-check $(DOCKER_DEPS)
docker-shell: $(DOCKER_DEPS)
$(DOCKER_CMD)
# former build.sh
docker-build: docker-check $(DOCKER_DEPS)
$(DOCKER_CMD) make build-all
docker-build: $(DOCKER_DEPS)
$(DOCKER_CMD) /bin/bash /build/ci/buildAll.sh
# delete docker image
docker-clean-image:
# delete container
docker-clean:
-docker rmi ironos-builder:latest
# delete docker build cache objects
docker-clean-cache:
-docker system prune --filter label=ironos-builder:latest --force
# delete docker image & cache related to IronOS container
docker-clean: docker-clean-image docker-clean-cache
# generate docs in site/ directory (DIR for -d is relative to mkdocs.yml file location, hence use default name/location site by setting up ../site)
docs: $(MKDOCS_YML) Documentation/* Documentation/Flashing/* Documentation/images/*
$(MKDOCS) build -f $(MKDOCS_YML) -d ../site
@@ -144,102 +111,15 @@ docs: $(MKDOCS_YML) Documentation/* Documentation/Flashing/* Documentation/im
docs-deploy: $(MKDOCS_YML) Documentation/* Documentation/Flashing/* Documentation/images/*
$(MKDOCS) gh-deploy -f $(MKDOCS_YML) -d ../site
# routine check to verify documentation
test-md:
@echo ""
@echo "---- Checking documentation... ----"
@echo ""
@./scripts/deploy.sh docs
# shell style & linter check (github CI version of shellcheck is more recent than alpine one so the latter may not catch some policies)
test-sh:
@echo ""
@echo "---- Checking shell scripts... ----"
@echo ""
@for f in `find ./scripts -type f -iname "*.sh" ! -name "flash_ts100_linux.sh"` ; do shellcheck "$${f}"; done;
# python-related tests & checks
test-py:
@echo ""
@echo "---- Checking python code... ----"
@echo ""
flake8 Translations
black --check Translations
@$(MAKE) -C source/ Objects/host/brieflz/libbrieflz.so
./Translations/brieflz_test.py
./Translations/make_translation_test.py
# clang-format check for C/C++ code style
test-ccpp:
@echo ""
@echo "---- Checking C/C++ code... ----"
@echo ""
$(MAKE) -C source/ clean check-style
# meta target for tests & checks based on .github/workflows/push
tests: test-md test-sh test-py test-ccpp
@echo ""
@echo "All tests & checks have been completed successfully."
@echo ""
# former scripts/ci/buildAll.sh - all in one to build all firmware & place the produced binaries into one output directory
build-all:
@mkdir -p $(OUT_DIR)
@chmod 0777 $(OUT_DIR)
cd source && bash ./build.sh
@echo "All Firmware built"
@for model in $(MODELS); do \
mkdir -p $(OUT_DIR)/$${model} ; \
cp -r $(OUT_HEX)/$${model}_*.bin $(OUT_DIR)/$${model}/ ; \
cp -r $(OUT_HEX)/$${model}_*.hex $(OUT_DIR)/$${model}/ ; \
cp -r $(OUT_HEX)/$${model}_*.dfu $(OUT_DIR)/$${model}/ ; \
done;
@echo "Resulting output directory: $(OUT_DIR)"
# target to build multilang supported builds for Pinecil & PinecilV2
build-multilang:
@for modelml in $(MODELS_ML); do \
$(MAKE) -C source/ -j2 model=$${modelml} firmware-multi_compressed_European firmware-multi_compressed_Belorussian+Bulgarian+Russian+Serbian+Ukrainian firmware-multi_Chinese+Japanese ; \
mkdir -p $(OUT_DIR)/$${modelml}_multi-lang ; \
cp $(OUT_HEX)/$${modelml}_multi_*.bin $(OUT_DIR)/$${modelml}_multi-lang ; \
cp $(OUT_HEX)/$${modelml}_multi_*.hex $(OUT_DIR)/$${modelml}_multi-lang ; \
cp $(OUT_HEX)/$${modelml}_multi_*.dfu $(OUT_DIR)/$${modelml}_multi-lang ; \
done;
@echo "Resulting output directory: $(OUT_DIR)"
# target to reproduce zips according to github CI settings; artifacts will be in $(OUT_DIR)/CI/*.zip
ci: tests build-all build-multilang
@mkdir -p $(OUT_DIR)/metadata;
@for m in $(MODELS) $(MODELS_MULTILANG); do \
cp LICENSE scripts/LICENSE_RELEASE.md $(OUT_DIR)/$${m}/ ; \
$(ZIP) $(OUT_DIR)/$${m}.zip $(OUT_DIR)/$${m} ; \
./source/metadata.py $${m}.json $${m}; \
cp $(OUT_HEX)/$${m}.json $(OUT_DIR)/metadata; \
done;
@$(ZIP) $(OUT_DIR)/metadata.zip $(OUT_DIR)/metadata
@mkdir -p $(OUT_DIR)/CI
@mv $(OUT_DIR)/*.zip $(OUT_DIR)/CI
@chmod 0777 $(OUT_DIR)/CI
@chmod 0666 $(OUT_DIR)/CI/*.zip
@echo "Resulting artifacts directory: $(OUT_DIR)/CI"
# pass-through target for Makefile inside source/ dir
%:
$(MAKE) -C source/ $@
# global clean-up target for produced/generated files inside tree
clean-build:
$(MAKE) -C source/ clean-all
rm -Rf site
rm -Rf $(OUT_DIR)
make -C source/ $@
# global clean-up target
clean-full: clean-build docker-clean
clean-full: docker-clean
make -C source/ clean-all
rm -Rf site
rm -Rf scripts/ci/artefacts
.PHONY: docker-shell docker-build docker-clean docs clean-full
# phony targets
.PHONY: help list
.PHONY: docker-check docker-shell docker-build docker-clean-image docker-clean-cache docker-clean
.PHONY: docs docs-deploy
.PHONY: test-md test-sh test-py test-ccpp tests
.PHONY: build-all build-multilang ci
.PHONY: clean-build clean-full

184
README.md
View File

@@ -3,57 +3,42 @@
[![Contributors](https://img.shields.io/github/contributors-anon/ralim/ironos?color=blue&style=flat)](https://github.com/Ralim/IronOS/graphs/contributors)
[![Latest Release](https://img.shields.io/github/v/release/ralim/IronOS)](https://github.com/Ralim/IronOS/releases/latest)
# IronOS - Open Source Flexible Firmware for Soldering Hardware
# IronOS - Flexible Soldering iron control Firmware
_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.
Originally conceived as an alternative firmware for the TS100, this firmware has evolved into a complex soldering iron 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.
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 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.
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 hardware, take note of the _language code_ in the file name.
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 on a daily basis, _so please suggest any feature improvements you would like!_
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). Custom logos are edited on a computer and flashed in the same manner as firmware._
_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._
## Supported Hardware
| Device | DC | QC | PD | EPR | BLE | Battery | Recommended |
| :--------: | :-: | :-: | :-: | :-: | :-: | :-----: | :---------: |
| MHP30 | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ✔️ |
| Pinecil V1 | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ |
| Pinecil V2 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| TS80P | ❌ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ |
| TS100 | ✔️ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌* |
| TS80 | ❌ | ✔️ | ❌ | ❌ | ❌ | ✔️ | ❌** |
| 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 | ❌\*\*\* | |
\*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_**.
_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_.
\**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_**.
## Getting Started
To get started with _IronOS firmware_, please jump to [Getting Started Guide](https://ralim.github.io/IronOS/GettingStarted/).
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
@@ -65,104 +50,49 @@ For notes on installation for your device, please refer to the flashing guide fo
- [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]
- 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/)[^bootlogo]
- Automatic LCD rotation based on the orientation
[^bootlogo]:
**BOOTUP LOGO NOTICE**:
[^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).
## Menu System
## Basic Control
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.
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).
- 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.
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.
Operation details are over in the [Menu information.](https://ralim.github.io/IronOS/Menu/)
## 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.
Translations are stored as `json` files in the Translations folder.
PR's are loved and accepted to enhance the firmware.
## Thanks
@@ -187,13 +117,13 @@ Especially to the following users, who have helped in various ways that are mass
Plus the huge number of people who have contributed translations, your effort is massively appreciated.
## License
## Licence
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.
The code created by the community is GNU GPLv3. Unless noted elsewhere.
Other components such as FreeRTOS/USB-PD have their own licence.
## 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**.
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 irons with this software on them.
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.

0
Translations/brieflz.py Executable file → Normal file
View File

0
Translations/brieflz_test.py Executable file → Normal file
View File

View File

@@ -76,13 +76,13 @@ def filter_translation(lang: dict, defs: dict, macros: frozenset):
return False
for category in ("menuOptions", "menuGroups", "menuValues"):
for _, record in enumerate(defs[category]):
for category in ("menuOptions", "menuGroups"):
for index, record in enumerate(defs[category]):
if check_excluded(record):
lang[category][record["id"]]["displayText"] = ""
lang[category][record["id"]]["description"] = ""
for _, record in enumerate(defs["messagesWarn"]):
for index, record in enumerate(defs["messagesWarn"]):
if check_excluded(record):
lang["messagesWarn"][record["id"]]["message"] = ""
@@ -146,13 +146,12 @@ def get_constants() -> List[Tuple[str, str]]:
("SmallSymbolState", "State"),
("SmallSymbolNoVBus", "No VBus"),
("SmallSymbolVBus", "VBus"),
("LargeSymbolSleep", "Zzz "),
]
def get_debug_menu() -> List[str]:
return [
datetime.today().strftime("%Y%m%d %H%M%S"),
datetime.today().strftime("%d-%m-%y"),
"ID ",
"ACC ",
"PWR ",
@@ -203,9 +202,9 @@ def get_letter_counts(defs: dict, lang: dict, build_version: str) -> Dict:
"""From the source definitions, language file and build version; calculates the ranked symbol list
Args:
defs (dict): Definitions
lang (dict): Language lookup
build_version (str): The build version id to ensure its letters are included
defs (dict): _description_
lang (dict): _description_
build_version (str): _description_
Returns:
Dict: _description_
@@ -249,15 +248,6 @@ def get_letter_counts(defs: dict, lang: dict, build_version: str) -> Dict:
msg = obj[eid]["description"]
big_font_messages.append(msg)
obj = lang["menuValues"]
for mod in defs["menuValues"]:
eid = mod["id"]
msg = obj[eid]["displayText"]
if test_is_small_font(msg):
small_font_messages.append(msg)
else:
big_font_messages.append(msg)
obj = lang["menuGroups"]
for mod in defs["menuGroups"]:
eid = mod["id"]
@@ -1123,12 +1113,6 @@ def get_translation_strings_and_indices_text(
encode_string_and_add(
lang_data["displayText"], "menuOptions" + record["id"] + "displayText"
)
for index, record in enumerate(defs["menuValues"]):
lang_data = lang["menuValues"][record["id"]]
# Add to translations the menu text and the description
encode_string_and_add(
lang_data["displayText"], "menuValues" + record["id"] + "displayText"
)
for index, record in enumerate(defs["menuGroups"]):
lang_data = lang["menuGroups"][record["id"]]
@@ -1216,21 +1200,6 @@ def get_translation_strings_and_indices_text(
f" .{record['id']} = {start_index}, // {escape(lang_data)}\n"
)
for _, record in enumerate(defs["menuValues"]):
# Add to translations the menu text and the description
lang_data = lang["menuValues"][record["id"]]
key = "menuValues" + record["id"] + "displayText"
translated_index = translated_string_lookups[key]
string_index = translated_index.byte_encoded_translation_index
start_index = (
string_index_commulative_lengths[string_index]
+ translated_index.str_start_offset
)
translation_indices_text += (
f" .{record['id']} = {start_index}, // {escape(lang_data)}\n"
)
translation_indices_text += "\n"
# Now for the fun ones, where they are nested and ordered
@@ -1260,7 +1229,6 @@ def get_translation_strings_and_indices_text(
translation_indices_text = write_grouped_indexes(
translation_indices_text, "SettingsShortNames", "menuOptions", "displayText"
)
translation_indices_text = write_grouped_indexes(
translation_indices_text,
"SettingsMenuEntriesDescriptions",
@@ -1295,63 +1263,6 @@ def get_translation_sanity_checks_text(defs: dict) -> str:
return sanity_checks_text
def get_version_suffix(ver) -> str:
# Check env var from push.yml first:
# - if it's pull request then use vX.YY + C.ID for version line as in *C*I with proper tag instead of merge tag for detached tree
if os.environ.get("GITHUB_CI_PR_SHA", "") != "":
return "C" + "." + os.environ["GITHUB_CI_PR_SHA"][:8].upper()
# - no github PR SHA ID, hence keep checking
suffix = str("")
try:
# Use commands _hoping_ they won't be too new for one environments nor deprecated for another ones:
## - get commit id; --short=8 - the shorted hash with 8 digits (increase/decrease if needed!)
sha_id = f"{subprocess.check_output(['git', 'rev-parse', '--short=8', 'HEAD']).strip().decode('ascii').upper()}"
## - if the exact commit relates to tag, then this command should return one-line tag name:
tag = f"{subprocess.check_output(['git', 'tag', '--points-at', '%s' % sha_id]).strip().decode('ascii')}"
if (
f"{subprocess.check_output(['git', 'rev-parse', '--symbolic-full-name', '--short', 'HEAD']).strip().decode('ascii')}"
== "HEAD"
):
return "E" + "." + sha_id
else:
## - get short "traditional" branch name (as in `git branch` for that one with asterisk):
branch = f"{subprocess.check_output(['git', 'symbolic-ref', '--short', 'HEAD']).strip().decode('ascii')}"
if tag and "" != tag:
# _Speculate_ on tag that it's Release...
if ver == tag:
# ... but only if double-check for tag is matched
suffix = "R"
else:
# ... otherwise it's tagged but not a release version!
suffix = "T"
elif branch and "" != branch:
# _Hardcoded_ current main development branch...
if "dev" == branch:
suffix = "D"
# ... or some other branch
else:
suffix = "B"
else:
# Something else but from Git
suffix = "G"
# Attach SHA commit to ID a build since it's from git anyway
suffix += "." + sha_id
except subprocess.CalledProcessError:
# No git tree so _probably_ Homebrew build from source
suffix = "H"
except OSError:
# Something _special_?
suffix = "S"
if "" == suffix:
# Something _very_ special!
suffix = "V"
return suffix
def read_version() -> str:
with open(HERE.parent / "source" / "version.h") as version_file:
for line in version_file:
@@ -1359,7 +1270,11 @@ def read_version() -> str:
matches = re.findall(r"\"(.+?)\"", line)
if matches:
version = matches[0]
version += get_version_suffix(version)
try:
version += f".{subprocess.check_output(['git', 'rev-parse', '--short=7', 'HEAD']).strip().decode('ascii').upper()}"
# --short=7: the shorted hash with 7 digits. Increase/decrease if needed!
except OSError:
version += " git"
return version

0
Translations/objcopy.py Executable file → Normal file
View File

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Беларуская",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "Каліброўка\nзроблена!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "Некантралюемае\nразаграванне"
},
"WarningTipShorted": {
"message": "!Кароткае замыканне на джале!"
},
"SettingsCalibrationWarning": {
"message": "Пераканайцеся, што пры наступнай загрузцы наканечнік і ручка маюць пакаёвую тэмпературу!"
},
@@ -51,35 +48,44 @@
"InputVoltageString": {
"message": "Сілкаванне В: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Чаканне...\n"
},
"SleepingTipAdvancedString": {
"message": "Джала: \n"
},
"OffString": {
"message": "Выкл."
},
"ProfilePreheatString": {
"message": "Разагрэць\n"
"message": "Preheat\n"
},
"ProfileCooldownString": {
"message": "Астудзіць\n"
"message": "Cooldown\n"
},
"DeviceFailedValidationWarning": {
"message": "Ваша прылада, хутчэй за ўсё, падробка!"
},
"TooHotToStartProfileWarning": {
"message": "Занадта горача\nкаб запусціць профіль"
"message": "Too hot to\nstart profile"
}
},
"characters": {
"SettingRightChar": "П",
"SettingLeftChar": "Л",
"SettingAutoChar": "А",
"SettingOffChar": "O",
"SettingSlowChar": "М",
"SettingMediumChar": "С",
"SettingFastChar": "Х",
"SettingStartNoneChar": "В",
"SettingStartSolderingChar": "П",
"SettingStartSleepChar": "Ч",
"SettingStartSleepOffChar": "К",
"SettingLockDisableChar": "А",
"SettingLockBoostChar": "Т",
"SettingLockFullChar": "П"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "\nРэжым"
},
"USBPDModeNoDynamic": {
"displayText": "Няма\nдынамікі"
},
"USBPDModeSafe": {
"displayText": "Бяспечны\nрэжым"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Крыніца\nсілкавання",
@@ -151,8 +128,8 @@
"displayText": "PD\nпрыпынак",
"description": "Час чакання ўзгаднення PD з крокам 100 мс для сумяшчальнасці з некаторымі зараднымі зараднымі прыладамі QC (0: адключана)"
},
"USBPDMode": {
"displayText": "PD\nРэжым",
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Уключае рэжымы PPS & EPR."
},
"BoostTemperature": {
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "Аўта\nстарт",
"description": "Рэжым, у якім запускаецца паяльнік пры падачы сілкавання (П=Пайка | Ч=Чаканне | К=Чаканне пры комн. тэмп.)"
"description": "Рэжым, у якім запускаецца паяльнік пры падачы сілкавання (В=Выкл. | П=Пайка | Ч=Чаканне | К=Чаканне пры комн. тэмп.)"
},
"TempChangeShortStep": {
"displayText": "Крок тэмп.\nкар. нац.",
@@ -173,67 +150,67 @@
},
"LockingMode": {
"displayText": "Дазволіць\nблок. кнопак",
"description": "Пры рабоце падоўжаны націск дзьвух кнопак блакуе іх (Т=Толькі турба | П=Поўная блакіроўка)"
"description": "Пры рабоце падоўжаны націск дзьвух кнопак блакуе іх (А=Адключана | Т=Толькі турба | П=Поўная блакіроўка)"
},
"ProfilePhases": {
"displayText": "Фазы\nпрофілю",
"description": "Колькасць фаз у рэжыме профілю"
"displayText": "Profile\nPhases",
"description": "Number of phases in profile mode"
},
"ProfilePreheatTemp": {
"displayText": "Тэмпература\nразагравання",
"description": "Разагрэйце да гэтай тэмпературы ў пачатку профільнага рэжыму"
"displayText": "Preheat\nTemp",
"description": "Preheat to this temperature at the start of profile mode"
},
"ProfilePreheatSpeed": {
"displayText": "Хуткасть\nразагравання",
"description": "Разагрэйце з гэтай хуткасцю (градусы ў секунду)"
"displayText": "Preheat\nSpeed",
"description": "Preheat at this rate (degrees per second)"
},
"ProfilePhase1Temp": {
"displayText": "Фаза 1\nтэмпература",
"description": "Мэтавая тэмпература ў канцы гэтай фазы"
"displayText": "Phase 1\nTemp",
"description": "Target temperature for the end of this phase"
},
"ProfilePhase1Duration": {
"displayText": "Фаза 1\nпрацягласць",
"description": "Мэтавая працягласць гэтай фазы (секунды)"
"displayText": "Phase 1\nDuration",
"description": "Target duration of this phase (seconds)"
},
"ProfilePhase2Temp": {
"displayText": "Фаза 2\nтэмпература",
"description": "Мэтавая тэмпература ў канцы гэтай фазы"
"displayText": "Phase 2\nTemp",
"description": ""
},
"ProfilePhase2Duration": {
"displayText": "Фаза 2\nпрацягласць",
"description": "Мэтавая працягласць гэтай фазы (секунды)"
"displayText": "Phase 2\nDuration",
"description": ""
},
"ProfilePhase3Temp": {
"displayText": "Фаза 3\nтэмпература",
"description": "Мэтавая тэмпература ў канцы гэтай фазы"
"displayText": "Phase 3\nTemp",
"description": ""
},
"ProfilePhase3Duration": {
"displayText": "Фаза 3\nпрацягласць",
"description": "Мэтавая працягласць гэтай фазы (секунды)"
"displayText": "Phase 3\nDuration",
"description": ""
},
"ProfilePhase4Temp": {
"displayText": "Фаза 4\nтэмпература",
"description": "Мэтавая тэмпература ў канцы гэтай фазы"
"displayText": "Phase 4\nTemp",
"description": ""
},
"ProfilePhase4Duration": {
"displayText": "Фаза 4\nпрацягласць",
"description": "Мэтавая працягласць гэтай фазы (секунды)"
"displayText": "Phase 4\nDuration",
"description": ""
},
"ProfilePhase5Temp": {
"displayText": "Фаза 5\nтэмпература",
"description": "Мэтавая тэмпература ў канцы гэтай фазы"
"displayText": "Phase 5\nTemp",
"description": ""
},
"ProfilePhase5Duration": {
"displayText": "Фаза 5\nпрацягласць",
"description": "Мэтавая працягласць гэтай фазы (секунды)"
"displayText": "Phase 5\nDuration",
"description": ""
},
"ProfileCooldownSpeed": {
"displayText": "Хуткасць\nастывання",
"description": "Астуджаць з гэтай хуткасцю ў канцы профільнага рэжыму (градусы ў секунду)"
"displayText": "Cooldown\nSpeed",
"description": "Cooldown at this rate at the end of profile mode (degrees per second)"
},
"MotionSensitivity": {
"displayText": "Адчувальнасць\nакселерометра",
"description": "Адчувальнасць акселерометра (1=Мін. | ... | 9=Макс.)"
"description": "Адчувальнасць акселерометра (0=Выкл. | 1=Мін. | ... | 9=Макс.)"
},
"SleepTemperature": {
"displayText": "Тэмп.\nчакання",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "Эфект Хола\nадчувальнасць",
"description": "Узровень адчувальнасці датчыка хола ў рэжыме сну (1=Мін. | ... | 9=Макс.)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Інтэрвал перад пачаткам \"рэжыму сну\", калі эфект Хола перавышае парог"
"description": "Узровень адчувальнасці датчыка хола ў рэжыме сну (0=Выкл. | 1=Мін. | ... | 9=Макс.)"
},
"TemperatureUnit": {
"displayText": "Адзінкі\nтэмпературы",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "Хуткасць\nанімацыі",
"description": "Хуткасць анімацыі гузікаў у галоўным меню (Мілісекунды) (Н=Нізкая | С=Сярэдняя | В=Высокая)"
"description": "Хуткасць анімацыі гузікаў у галоўным меню (Мілісекунды) (А=Адключана | Н=Нізкая | С=Сярэдняя | В=Высокая)"
},
"AnimLoop": {
"displayText": "Зацыкленая\nанімацыя",
@@ -305,7 +278,7 @@
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Уключыць BLE"
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Межы\nмагутнасці",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Мова:\n BY Беларуская",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,8 +3,8 @@
"languageLocalName": "Български",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"message": "Калибрирането\nе завършено!"
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Нулиране"
@@ -13,291 +13,264 @@
"message": "Настройките бяха\nнулирани!"
},
"NoAccelerometerMessage": {
"message": "Не е открит\nакселерометър!"
"message": "No accelerometer\ndetected!"
},
"NoPowerDeliveryMessage": {
"message": "Не е открито\nUSB-PD захранване!"
"message": "No USB-PD IC\ndetected!"
},
"LockingKeysString": {
"message": "ЗАКЛЮЧ"
"message": "LOCKED"
},
"UnlockingKeysString": {
"message": "ОТКЛЮЧ"
"message": "UNLOCKED"
},
"WarningKeysLockedString": {
"message": "!ЗАКЛЮЧ!"
"message": "!LOCKED!"
},
"WarningThermalRunaway": {
"message": "Неконтролируемо\nпрегряване"
},
"WarningTipShorted": {
"message": "!КС на човка!"
"message": "Thermal\nRunaway"
},
"SettingsCalibrationWarning": {
"message": "Преди рестартиране се уверете, че човка и дръжката са на стайна температурата!"
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "калибриране\n"
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Сигурни ли сте, че искате да върнете фабричните настройки?"
},
"UVLOWarningString": {
"message": "НИС.НАПР."
"message": "Ниско DC Напрежение"
},
"UndervoltageString": {
"message": "Ниско напрежение\n"
"message": "Ниско Напрежение\n"
},
"InputVoltageString": {
"message": "Входно V: \n"
},
"SleepingSimpleString": {
"message": "Сън"
},
"SleepingAdvancedString": {
"message": "Сън...\n"
"message": "Хър Хър Хър...\n"
},
"SleepingTipAdvancedString": {
"message": "Човка:\n"
"message": "Връх: \n"
},
"OffString": {
"message": "Изкл."
},
"ProfilePreheatString": {
"message": "Загряване\n"
"message": "Preheat\n"
},
"ProfileCooldownString": {
"message": "Охлаждане\n"
"message": "Cooldown\n"
},
"DeviceFailedValidationWarning": {
"message": "Вероятно, устройство е фалшификат!"
"message": "Your device is most likely a counterfeit!"
},
"TooHotToStartProfileWarning": {
"message": "Твърде горещо за\nстартиране на профила"
"message": "Too hot to\nstart profile"
}
},
"characters": {
"SettingRightChar": "Д",
"SettingLeftChar": "Л",
"SettingAutoChar": "А",
"SettingSlowChar": "Н",
"SettingMediumChar": "С",
"SettingFastChar": "В",
"SettingStartSolderingChar": "З",
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "И",
"SettingStartSolderingChar": "Р",
"SettingStartSleepChar": "С",
"SettingStartSleepOffChar": "П",
"SettingLockBoostChar": "Т",
"SettingLockFullChar": "П"
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Настройки на\nзахранването",
"displayText": "Power\nsettings",
"description": ""
},
"SolderingMenu": {
"displayText": "Настройки на\nзапояване",
"displayText": "Поялник\nНастройки",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Авто\nизключване",
"displayText": "Режими\nНастройки",
"description": ""
},
"UIMenu": {
"displayText": "Интерфейс\n",
"displayText": "Интерфейс\nНастройки",
"description": ""
},
"AdvancedMenu": {
"displayText": "Допълнителни\nнастройки",
"displayText": "Разширени\nНастройки",
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Вкл.\nPPSиERP"
},
"USBPDModeNoDynamic": {
"displayText": "Изкл.\n"
},
"USBPDModeSafe": {
"displayText": "Вкл.без\nискане"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Гранично\nнапрежение",
"description": "Минимално напрежение, за да не се изтощи батерията (DC 10V) (S 3,3V за клетка)"
"displayText": "Източник\nзахранване",
"description": "Източник на захранване. Минимално напрежение. (DC 10V) (S 3,3V за клетка)"
},
"MinVolCell": {
"displayText": "Мин.\nнапрежение",
"description": "Минимално допустимо напрежение на акумулаторна клетка (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
"displayText": "Minimum\nvoltage",
"description": "Minimum allowed voltage per battery cell (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"displayText": "Напреж.\nна QC",
"description": "Максимална напрежение с QC захранвания"
"displayText": "Мощност на\nзахранване",
"description": "Мощност на избраното захранване"
},
"PDNegTimeout": {
"displayText": "PD\nинтервал",
"description": "PD интервал за договаряне на захранването на стъпки от 100 мс за съвместимост с някои QC захранвания (0=Изкл.)"
"displayText": "PD\ntimeout",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"USBPDMode": {
"displayText": "PD\nрежим",
"description": "Вкл.без искане: включи PPS и EPR без да искате повече мощност"
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Турбо\nтемп.",
"description": "Температурата за \"турбо\" режим"
"description": "Температура за \"турбо\" режим"
},
"AutoStart": {
"displayText": "Автоматичен\nработен режим",
"description": "Режим на поялника при включване на захранването (З=Запояване | С=Сън | П=Покой на стайна температурата)"
"description": "Режим на поялника при включване на захранването. (И=Изключен | Р=Работен | С=Сън | П=Сън температура помещение)"
},
"TempChangeShortStep": {
"displayText": "Промяна T\nбързо",
"description": "Промяна на температурата при бързо натискане на бутон"
"displayText": "Промяна T\nбързо?",
"description": "Промяна на температура при бързо натискане на бутон!"
},
"TempChangeLongStep": {
"displayText": "Промяна Т\nзадържане",
"description": "Промяна на температурата при задържане на бутон"
"displayText": "Промяна Т\nзадържане?",
"description": "Промяна на температура при задържане на бутон!"
},
"LockingMode": {
"displayText": "Бутони за\nзаключване",
"description": "Докато запоявате, задръжте двата бутона, за да превключите заключването им (Т=Турбо режим | П=Пълно)"
"displayText": "Allow locking\nbuttons",
"description": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"ProfilePhases": {
"displayText": "Брой\nетапи",
"description": "Броят на етапите в режим на термичен профил"
"displayText": "Profile\nPhases",
"description": "Number of phases in profile mode"
},
"ProfilePreheatTemp": {
"displayText": "Температурата\nна загряване",
"description": "Температурата на загряване в началото на режим на термичен профил"
"displayText": "Preheat\nTemp",
"description": "Preheat to this temperature at the start of profile mode"
},
"ProfilePreheatSpeed": {
"displayText": "Скорост на\nзагряване",
"description": "Скорост на предварително загряване (градуси в секунда)"
"displayText": "Preheat\nSpeed",
"description": "Preheat at this rate (degrees per second)"
},
"ProfilePhase1Temp": {
"displayText": "Етап 1\nТемпературата",
"description": "Температурата в края на този етап"
"displayText": "Phase 1\nTemp",
"description": "Target temperature for the end of this phase"
},
"ProfilePhase1Duration": {
"displayText": "Етап 1\nПродължителност",
"description": "Продължителност на този етап (в секунди)"
"displayText": "Phase 1\nDuration",
"description": "Target duration of this phase (seconds)"
},
"ProfilePhase2Temp": {
"displayText": "Етап 2\nТемпературата",
"displayText": "Phase 2\nTemp",
"description": ""
},
"ProfilePhase2Duration": {
"displayText": "Етап 2\nПродължителност",
"displayText": "Phase 2\nDuration",
"description": ""
},
"ProfilePhase3Temp": {
"displayText": "Етап 3\nТемпературата",
"displayText": "Phase 3\nTemp",
"description": ""
},
"ProfilePhase3Duration": {
"displayText": "Етап 3\nПродължителност",
"displayText": "Phase 3\nDuration",
"description": ""
},
"ProfilePhase4Temp": {
"displayText": "Етап 4\nТемпературата",
"displayText": "Phase 4\nTemp",
"description": ""
},
"ProfilePhase4Duration": {
"displayText": "Етап 4\nПродължителност",
"displayText": "Phase 4\nDuration",
"description": ""
},
"ProfilePhase5Temp": {
"displayText": "Етап 5\nТемпературата",
"displayText": "Phase 5\nTemp",
"description": ""
},
"ProfilePhase5Duration": {
"displayText": "Етап 5\nПродължителност",
"displayText": "Phase 5\nDuration",
"description": ""
},
"ProfileCooldownSpeed": {
"displayText": "Скорост на\nохлаждане",
"description": "Скорост на охлаждане в края на режим на термичен профил (градуси в секунда)"
"displayText": "Cooldown\nSpeed",
"description": "Cooldown at this rate at the end of profile mode (degrees per second)"
},
"MotionSensitivity": {
"displayText": "Чувствител.\nна движение",
"description": "Чувствителност на движение на акселерометър (1=Слабо | ... | 9=Силно)"
"displayText": "Усещане\nза движение",
"description": "Усещане за движение (0=Изключено | 1=Слабо | ... | 9=Силно)"
},
"SleepTemperature": {
"displayText": "Темп.\nсън",
"description": "Температурата при режим \"сън\""
"description": "Температура при режим \"сън\" (C)"
},
"SleepTimeout": {
"displayText": "Време\nсън",
"description": "Включване в режим \"сън\" (секунди | минути)"
"description": "Включване в режим \"сън\" след: (Минути | Секунди)"
},
"ShutdownTimeout": {
"displayText": "Време\nизкл.",
"description": "Изключване след (минути)"
"description": "Изключване след (Минути)"
},
"HallEffSensitivity": {
"displayText": "Датчик\nна Хол",
"description": "Чувствителност на сензора към магнитно поле (1=Слабо | ... | 9=Силно)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Интервалът преди началото на \"режим на заспиване\", когато ефектът на Хол надвиши прага"
"displayText": "Hall sensor\nsensitivity",
"description": "Sensitivity to magnets (0=Изключено | 1=Слабо | ... | 9=Силно)"
},
"TemperatureUnit": {
"displayText": "Единици за\nтемпературата",
"description": "Единици за температурата (C=Целзии | F=Фаренхайт)"
"displayText": "Единици за\nтемпература",
"description": "Единици за температура (C=Целзии | F=Фаренхайт)"
},
"DisplayRotation": {
"displayText": "Ориентация\nна дисплея",
"description": "Ориентация на дисплея (Д=Дясна ръка | Л=Лява ръка | А=Авто)"
"description": "Ориентация на дисплея (R=Дясна Ръка | L=Лява Ръка | A=Автоматично)"
},
"CooldownBlink": {
"displayText": "Мигай при\nтопъл поялник",
"description": "След изключване от работен режим, индикатора за температурата да мига докато човката на поялника все още е топла"
"description": "След изключване от работен режим, индикатора за температура да мига докато човката на поялника все още е топла"
},
"ScrollingSpeed": {
"displayText": "Скорост\nна текста",
"description": "Скорост на движение на този текст (Н=Ниска | B=Висока)"
"description": "Скорост на движение на този текст"
},
"ReverseButtonTempChange": {
"displayText": "Размяна\nбутони +/-",
"description": "Обръщане на бутоните + и - за промяна на температурата на човка на поялника"
"displayText": "Размяна\nбутони +-?",
"description": "Обръщане на бутоните \"+\" и \"-\" за промяна на температурата на върха на поялника"
},
"AnimSpeed": {
"displayText": "Скорост на\nанимацията",
"description": "Скорост на анимация на иконата в главното меню (Н=Ниска | C=Средна | B=Висока)"
"displayText": "Anim.\nspeed",
"description": "Pace of icon animations in menu (O=off | S=slow | M=medium | F=fast)"
},
"AnimLoop": {
"displayText": "Анимац.\nцикъл",
"description": "Зациклена анимация на иконите в главното меню"
"displayText": "Anim.\nloop",
"description": "Loop icon animations in main menu"
},
"Brightness": {
"displayText": "Яркост\nна екрана",
"description": "Регулирайте яркостта на екрана"
"displayText": "Screen\nbrightness",
"description": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"displayText": "Инвертиране\nна екрана",
"description": "Инверсия на пикселите на екрана"
"displayText": "Invert\nscreen",
"description": "Invert the OLED screen colors"
},
"LOGOTime": {
"displayText": "Продължит.\nлогото",
"description": "Продължителност на логото за стартиране (в секунди)"
"displayText": "Boot logo\nduration",
"description": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"displayText": "Детайлен\nекран в покой",
"description": "Покажи детайлна информация със ситен шрифт на екрана в режим на покой"
"description": "Покажи детайлна информация със ситен шрифт на екрана в режим на покой."
},
"AdvancedSoldering": {
"displayText": "Детайлен\nработен екран",
@@ -305,43 +278,39 @@
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Включи BLE"
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Лимит на\nмощност",
"description": "Максимална мощност на поялника (вати)"
"description": "Максимална мощност на поялника (Watt)"
},
"CalibrateCJC": {
"displayText": "Калибриране\nна темп.",
"description": "Калибриране на температурата (CJC) при следващо включване (не се изисква, ако разликата е по-малка от 5 °С)"
"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)"
},
"VoltageCalibration": {
"displayText": "Калибриране\nнапрежение",
"description": "Калибриране на входното напрежениеадръжте бутонa за изход)"
"displayText": "Калибриране\nнапрежение?",
"description": "Калибриране на входното напрежение. Задръжте бутонa за изход"
},
"PowerPulsePower": {
"displayText": "Захранващ\nимпулс",
"description": "Поддържане на интензивност на захранващия импулс (вати)"
"description": "Поддържане на интензивност на захранващия импулс"
},
"PowerPulseWait": {
"displayText": "Закъснение\nна импулса",
"description": "Пауза между импулсите, които предпазват захранването от автоматично изключване (x 2,5 с)"
"displayText": "Power pulse\ndelay",
"description": "Delay before keep-awake-pulse is triggered (x 2,5с)"
},
"PowerPulseDuration": {
"displayText": "Продължит.\nна импулса",
"description": "Дължината на импулса, който предпазва захранването от автоматично изключване (x 250 мс)"
"displayText": "Power pulse\nduration",
"description": "Keep-awake-pulse duration (x 250мс)"
},
"SettingsReset": {
"displayText": "Фабрични\nнастройки",
"displayText": "Фабрични\nнастройки?",
"description": "Връщане на фабрични настройки"
},
"LanguageSwitch": {
"displayText": "Език:\n BG Български",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Český",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "Kalibrace\ndokončena!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "Teplotní\nOchrana"
},
"WarningTipShorted": {
"message": "!Zkrat na hrotu!"
},
"SettingsCalibrationWarning": {
"message": "Před restartem se ujistěte, že hrot a držák mají pokojovou teplotu!"
},
@@ -51,35 +48,44 @@
"InputVoltageString": {
"message": "Napětí: \n"
},
"SleepingSimpleString": {
"message": "Zzz "
},
"SleepingAdvancedString": {
"message": "Režim spánku...\n"
},
"SleepingTipAdvancedString": {
"message": "Hrot: \n"
},
"OffString": {
"message": "Vyp"
},
"ProfilePreheatString": {
"message": "Předehřívání\n"
"message": "Preheat\n"
},
"ProfileCooldownString": {
"message": "Zchlazování\n"
"message": "Cooldown\n"
},
"DeviceFailedValidationWarning": {
"message": "Vaše zařízení je pravěpodobně padělek!"
"message": "Vaše zařízení je s nejvyšší pravděpodobností padělek!"
},
"TooHotToStartProfileWarning": {
"message": "Teplota příliš vysoká pro start profilu"
"message": "Too hot to\nstart profile"
}
},
"characters": {
"SettingRightChar": "P",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "D",
"SettingSlowChar": "P",
"SettingMediumChar": "S",
"SettingFastChar": "R",
"SettingStartNoneChar": "V",
"SettingStartSolderingChar": "P",
"SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "M",
"SettingLockDisableChar": "Z",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "U"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Zdroj\nnapájení",
@@ -151,8 +128,8 @@
"displayText": "PD\ntimeout",
"description": "Maximální prodleva při jednání PD ve 100ms krocích pro kompatibilitu s některými QC nabíječkami"
},
"USBPDMode": {
"displayText": "PD\nMode",
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Povoluje režimy PPS & EPR"
},
"BoostTemperature": {
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "Chování\npři startu",
"description": "P=pájecí teplota | S=spánková teplota | M=zahřát hrot po pohybu"
"description": "V=vypnuto | P=pájecí teplota | S=spánková teplota | M=zahřát hrot po pohybu"
},
"TempChangeShortStep": {
"displayText": "Krok teploty\nkrátký?",
@@ -173,67 +150,67 @@
},
"LockingMode": {
"displayText": "Povolit zamč.\ntlačítek",
"description": "Při pájení podržte obě tlačítka pro jejich zamčení (B=pouze v režimu boost | U=úplné zamčení)"
"description": "Při pájení podržte obě tlačítka pro jejich zamčení (Z=zakázáno | B=pouze v režimu boost | U=úplné zamčení)"
},
"ProfilePhases": {
"displayText": "Profilové\nFáze",
"description": "Počet fází v profilovém režimu"
"displayText": "Profile\nPhases",
"description": "Number of phases in profile mode"
},
"ProfilePreheatTemp": {
"displayText": "Teplota\nPředehřátí",
"description": "Teplota na kterou předehřát na začátku profilového režimu"
"displayText": "Preheat\nTemp",
"description": "Preheat to this temperature at the start of profile mode"
},
"ProfilePreheatSpeed": {
"displayText": "Rychlost\nPředehřívání",
"description": "Rychlost předehřívání (stupně za sekundu)"
"displayText": "Preheat\nSpeed",
"description": "Preheat at this rate (degrees per second)"
},
"ProfilePhase1Temp": {
"displayText": "Teplota\nFáze 1",
"description": "Cílová teplota na konci této fáze"
"displayText": "Phase 1\nTemp",
"description": "Target temperature for the end of this phase"
},
"ProfilePhase1Duration": {
"displayText": "Trvání\nFáze 1",
"description": "Doba trvání této fáze (sekundy)"
"displayText": "Phase 1\nDuration",
"description": "Target duration of this phase (seconds)"
},
"ProfilePhase2Temp": {
"displayText": "Teplota\nFáze 2",
"displayText": "Phase 2\nTemp",
"description": ""
},
"ProfilePhase2Duration": {
"displayText": "Trvání\nFáze 2",
"displayText": "Phase 2\nDuration",
"description": ""
},
"ProfilePhase3Temp": {
"displayText": "Teplota\nFáze 3",
"displayText": "Phase 3\nTemp",
"description": ""
},
"ProfilePhase3Duration": {
"displayText": "Trvání\nFáze 3",
"displayText": "Phase 3\nDuration",
"description": ""
},
"ProfilePhase4Temp": {
"displayText": "Teplota\nFáze 4",
"displayText": "Phase 4\nTemp",
"description": ""
},
"ProfilePhase4Duration": {
"displayText": "Trvání\nFáze 4",
"displayText": "Phase 4\nDuration",
"description": ""
},
"ProfilePhase5Temp": {
"displayText": "Teplota\nFáze 5",
"displayText": "Phase 5\nTemp",
"description": ""
},
"ProfilePhase5Duration": {
"displayText": "Trvání\nFáze 5",
"displayText": "Phase 5\nDuration",
"description": ""
},
"ProfileCooldownSpeed": {
"displayText": "Rychlost\nochlazování",
"description": "Rychlost ochlazování na konci profilového režimu (stupně za sekundu)"
"displayText": "Cooldown\nSpeed",
"description": "Cooldown at this rate at the end of profile mode (degrees per second)"
},
"MotionSensitivity": {
"displayText": "Citlivost\nna pohyb",
"description": "1=nejméně citlivé | ... | 9=nejvíce citlivé"
"description": "0=vyp | 1=nejméně citlivé | ... | 9=nejvíce citlivé"
},
"SleepTemperature": {
"displayText": "Teplota\nve spánku",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "Citlivost\nHall. čidla",
"description": "Citlivost Hallova čidla pro detekci spánku (1=nejméně citlivé | ... | 9=nejvíce citlivé)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Interval před začátkem \"režimu spánku\", kdy Hallův efekt překročí práh"
"description": "Citlivost Hallova čidla pro detekci spánku (0=vypnuto | 1=nejméně citlivé | ... | 9=nejvíce citlivé)"
},
"TemperatureUnit": {
"displayText": "Jednotka\nteploty",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "Anim.\nrychlost",
"description": "Tempo animace ikon v menu (P=pomalu | S=středně | R=rychle)"
"description": "Tempo animace ikon v menu (O=vypnuto | P=pomalu | S=středně | R=rychle)"
},
"AnimLoop": {
"displayText": "Anim.\nsmyčka",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Jazyk:\n CS Český",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Dansk",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "Thermal\nRunaway"
},
"WarningTipShorted": {
"message": "!Tip Shorted!"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
@@ -51,12 +48,18 @@
"InputVoltageString": {
"message": "Input V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Dvale...\n"
},
"SleepingTipAdvancedString": {
"message": "Tip: \n"
},
"OffString": {
"message": "Off"
},
"ProfilePreheatString": {
"message": "Preheat\n"
},
@@ -74,12 +77,15 @@
"SettingRightChar": "H",
"SettingLeftChar": "V",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "S",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "D",
"SettingStartSleepOffChar": "R",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Strøm\nKilde",
@@ -151,9 +128,9 @@
"displayText": "PD\ntimeout",
"description": "PD-forhandlingstimeout i trin på 100 ms for kompatibilitet med nogle QC-opladere"
},
"USBPDMode": {
"displayText": "PD\nMode",
"description": "No Dynamic disables EPR & PPS, Safe mode does not use padding resistance"
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Boost\ntemp",
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "Start-up\nOpførsel",
"description": "Start automatisk med lodning når strøm sættes til. (L=Lodning | D=Dvale tilstand | R=Dvale tilstand rumtemperatur)"
"description": "Start automatisk med lodning når strøm sættes til. (S=Slukket | L=Lodning | D=Dvale tilstand | R=Dvale tilstand rumtemperatur)"
},
"TempChangeShortStep": {
"displayText": "Temp ændring\nkort",
@@ -173,7 +150,7 @@
},
"LockingMode": {
"displayText": "Tillad låsning\naf knapperne",
"description": "Hold begge knapper nede under lodning for at låse dem (B=kun boost-tilstand | F=fuld låsning)"
"description": "Hold begge knapper nede under lodning for at låse dem (D=deaktiver | B=kun boost-tilstand | F=fuld låsning)"
},
"ProfilePhases": {
"displayText": "Profile\nPhases",
@@ -233,7 +210,7 @@
},
"MotionSensitivity": {
"displayText": "Bevægelses\nfølsomhed",
"description": "Bevægelsesfølsomhed (1=Mindst følsom | ... | 9=Mest følsom)"
"description": "Bevægelsesfølsomhed (0=Slukket | 1=Mindst følsom | ... | 9=Mest følsom)"
},
"SleepTemperature": {
"displayText": "Dvale\ntemp",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "Hall sensor\nfølsomhed",
"description": "følsomhed overfor magneten (1=Mindst følsom | ... | 9=Mest følsom)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Intervallet før starten af \"dvaletilstand\", når Hall-effekten overskrider tærsklen"
"description": "følsomhed overfor magneten (0=Slukket | 1=Mindst følsom | ... | 9=Mest følsom)"
},
"TemperatureUnit": {
"displayText": "Temperatur\nEnhed",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "Anim.\nHastighed",
"description": "Hastigheden for ikonanimationer i menuen (S=langsomt | M=medium | F=hurtigt)"
"description": "Hastigheden for ikonanimationer i menuen (O=fra | S=langsomt | M=medium | F=hurtigt)"
},
"AnimLoop": {
"displayText": "Anim.\nsløfe",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Sprog:\n DA Dansk",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Deutsch",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "Erfolgreich\nkalibriert!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "Thermal\nRunaway"
},
"WarningTipShorted": {
"message": "!Lötspitze\nkurzgeschlossen!"
},
"SettingsCalibrationWarning": {
"message": "Vor dem Neustart bitte sicherstellen, dass Lötspitze & Gerät Raumtemperatur haben!"
},
@@ -51,12 +48,18 @@
"InputVoltageString": {
"message": "V Eingang: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Ruhemodus...\n"
},
"SleepingTipAdvancedString": {
"message": "Temp: \n"
},
"OffString": {
"message": "Aus"
},
"ProfilePreheatString": {
"message": "Vorwärmen\n"
},
@@ -74,12 +77,15 @@
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "A",
"SettingSlowChar": "L",
"SettingMediumChar": "M",
"SettingFastChar": "S",
"SettingStartNoneChar": "A",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "R",
"SettingStartSleepOffChar": "K",
"SettingLockDisableChar": "A",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "V"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Spannungs-\nquelle",
@@ -151,8 +128,8 @@
"displayText": "PD\ntimeout",
"description": "PD Abfragedauer in 100ms Schritten (Kompatibilität mit best. QC-Ladegeräten)"
},
"USBPDMode": {
"displayText": "PD\nMode",
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Aktiviert PPS & EPR"
},
"BoostTemperature": {
@@ -161,19 +138,19 @@
},
"AutoStart": {
"displayText": "Start im\nLötmodus",
"description": "Heizverhalten beim Einschalten der Spannungsversorgung (L=Lötmodus | R=Ruhemodus | K=Ruhemodus mit kalter Spitze)"
"description": "Heizverhalten beim Einschalten der Spannungsversorgung (A=aus | L=Lötmodus | R=Ruhemodus | K=Ruhemodus mit kalter Spitze)"
},
"TempChangeShortStep": {
"displayText": "Temp-Schritt\nDruck kurz",
"description": "Schrittweite für Temperaturänderung bei kurzem Tastendruck"
"description": "Schrittweite für Temperaturwechsel bei kurzem Tastendruck"
},
"TempChangeLongStep": {
"displayText": "Temp-Schritt\nDruck lang",
"description": "Schrittweite für Temperaturänderung bei langem Tastendruck"
"description": "Schrittweite für Temperaturwechsel bei langem Tastendruck"
},
"LockingMode": {
"displayText": "Tasten-\nsperre",
"description": "Langes Drücken beider Tasten im Lötmodus sperrt diese (B=nur Boost | V=vollständig)"
"description": "Langes drücken beider Tasten im Lötmodus sperrt diese (A=aus | B=nur Boost | V=vollständig)"
},
"ProfilePhases": {
"displayText": "Profile\nPhasen",
@@ -193,7 +170,7 @@
},
"ProfilePhase1Duration": {
"displayText": "Phase 1\nDauer",
"description": "Dauer dieser Phase (Sekunden)"
"description": "Zieldauer dieser Phase (Sekunden)"
},
"ProfilePhase2Temp": {
"displayText": "Phase 2\nTemperatur",
@@ -233,11 +210,11 @@
},
"MotionSensitivity": {
"displayText": "Bewegungs-\nempfindlichk.",
"description": "1=minimal | ... | 9=maximal"
"description": "0=aus | 1=minimal | ... | 9=maximal"
},
"SleepTemperature": {
"displayText": "Ruhe-\ntemperatur",
"description": "Ruhetemperatur der Lötspitze"
"description": "Ruhetemperatur der Spitze"
},
"SleepTimeout": {
"displayText": "Ruhever-\nzögerung",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "Empfindlichkeit\nder Hall-Sonde",
"description": "Empfindlichkeit der Hall-Sonde um den Ruhemodus auszulösen (1=minimal | ... | 9=maximal)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Dauer vor dem Wechsel in den \"Ruhemodus\", nachdem die Hall-Sonde auslöst"
"description": "Empfindlichkeit der Hall-Sonde um den Ruhemodus auszulösen (0=aus | 1=minimal | ... | 9=maximal)"
},
"TemperatureUnit": {
"displayText": "Temperatur-\neinheit",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "Anim.\nGeschw.",
"description": "Geschwindigkeit der Icon-Animationen im Menü (L=langsam | M=mittel | S=schnell)"
"description": "Geschwindigkeit der Icon-Animationen im Menü (A=aus | L=langsam | M=mittel | S=schnell)"
},
"AnimLoop": {
"displayText": "Anim.\nSchleife",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Sprache:\n DE Deutsch",
"description": ""
},
"SolderingTipType": {
"displayText": "Löt-\nspitzentyp",
"description": "Wählen Sie den Typ der eingesetzten Spitze"
}
}
}

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Greek",
"tempUnitFahrenheit": true,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "Βαθμονόμηση\nολοκληρώθηκε!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "Θερμική\nΦυγή"
},
"WarningTipShorted": {
"message": "!Tip Shorted!"
},
"SettingsCalibrationWarning": {
"message": "Πριν την επανεκκίνηση, βεβαιωθείτε ότι η μύτη και η συσκ. είναι σε θερμ. δωματίου!"
},
@@ -51,12 +48,18 @@
"InputVoltageString": {
"message": "Είσοδος V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Υπνος...\n"
},
"SleepingTipAdvancedString": {
"message": "Μύτη: \n"
},
"OffString": {
"message": "Απ."
},
"ProfilePreheatString": {
"message": "Preheat\n"
},
@@ -74,12 +77,15 @@
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "Α",
"SettingOffChar": "0",
"SettingSlowChar": "Α",
"SettingMediumChar": "Μ",
"SettingFastChar": "Γ",
"SettingStartNoneChar": "0",
"SettingStartSolderingChar": "Κ",
"SettingStartSleepChar": "Ζ",
"SettingStartSleepOffChar": "Υ",
"SettingLockDisableChar": "Α",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "Π"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Πηγή\nενέργειας",
@@ -151,8 +128,8 @@
"displayText": "χρονικό όριο\nPD",
"description": "Χρονικό όριο διαπραγμάτευσης PD σε βήματα 100ms για συμβατότητα με κάποιους φορτιστές QC"
},
"USBPDMode": {
"displayText": "PD\nMode",
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Ενεργοποιεί λειτουργίες PPS & EPR."
},
"BoostTemperature": {
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "Ζέσταμα\nκατά την εν.",
"description": "Κ=θερμ. κόλλησης | Z=αναμονή σε θερμοκρασία ύπνου μέχρι την κίνηση | Υ=αναμονή χωρίς ζέσταμα μέχρι την κίνηση"
"description": "0=off | Κ=θερμ. κόλλησης | Z=αναμονή σε θερμοκρασία ύπνου μέχρι την κίνηση | Υ=αναμονή χωρίς ζέσταμα μέχρι την κίνηση"
},
"TempChangeShortStep": {
"displayText": "Αλλαγή θερμοκ.\nστιγμιαίο",
@@ -173,7 +150,7 @@
},
"LockingMode": {
"displayText": "Κλείδωμα\nπλήκτρων",
"description": "Κατά την κόλληση, κρατήστε και τα δύο πλήκτρα για κλείδωμα (B=μόνο λειτ. boost | Π=πλήρες κλείδωμα)"
"description": "Κατά την κόλληση, κρατήστε και τα δύο πλήκτρα για κλείδωμα (A=απενεργοποίηση | B=μόνο λειτ. boost | Π=πλήρες κλείδωμα)"
},
"ProfilePhases": {
"displayText": "Profile\nPhases",
@@ -233,7 +210,7 @@
},
"MotionSensitivity": {
"displayText": "Ευαισθησία\nκίνησης",
"description": "1=λιγότερο ευαίσθητο | ... | 9=περισσότερο ευαίσθητο"
"description": "0=off | 1=λιγότερο ευαίσθητο | ... | 9=περισσότερο ευαίσθητο"
},
"SleepTemperature": {
"displayText": "Θερμοκρ.\nύπνου",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "Ευαισθ. αισθ. \nφαιν. Hall",
"description": "Ευαισθησία του αισθητήρα φαινομένου Hall για εντοπισμό αδράνειας (1=λιγότερο ευαίσθητο | ... | 9=περισσότερο ευαίσθητο)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Το διάστημα πριν από την \"λειτουργία ύπνου\" ξεκινά όταν το εφέ αίθουσας είναι πάνω από το όριο"
"description": "Ευαισθησία του αισθητήρα φαινομένου Hall για εντοπισμό αδράνειας (0=off | 1=λιγότερο ευαίσθητο | ... | 9=περισσότερο ευαίσθητο)"
},
"TemperatureUnit": {
"displayText": "Μονάδες\nθερμοκρασίας",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "Ταχύτητα\nκιν. εικονιδ.",
"description": "Ρυθμός κίνησης εικονιδίων στο μενού (Α=αργός | Μ=μέτριος | Γ=γρήγορος)"
"description": "Ρυθμός κίνησης εικονιδίων στο μενού (0=off | Α=αργός | Μ=μέτριος | Γ=γρήγορος)"
},
"AnimLoop": {
"displayText": "Επανάληψη\nκιν. εικονιδ.",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Γλώσσα:\n EL Ελληνικά",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,7 +3,7 @@
"languageLocalName": "English",
"tempUnitFahrenheit": true,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "Thermal\nRunaway"
},
"WarningTipShorted": {
"message": "!Tip Shorted!"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
@@ -51,12 +48,18 @@
"InputVoltageString": {
"message": "Input V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Sleeping...\n"
},
"SleepingTipAdvancedString": {
"message": "Tip: \n"
},
"OffString": {
"message": "Off"
},
"ProfilePreheatString": {
"message": "Preheat\n"
},
@@ -74,12 +77,15 @@
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "O",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "Z",
"SettingStartSleepOffChar": "R",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
@@ -105,39 +111,10 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Power\nsource",
"description": "Set cutoff voltage to prevent battery overdischarge (DC=10V) (S=3.3V per cell, disable PWR limit)"
"description": "Set cutoff voltage to prevent battery overdrainage (DC 10V) (S=3.3V per cell, disable PWR limit)"
},
"MinVolCell": {
"displayText": "Minimum\nvoltage",
@@ -151,9 +128,9 @@
"displayText": "PD\ntimeout",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"USBPDMode": {
"displayText": "PD\nMode",
"description": "No Dynamic disables EPR & PPS, Safe mode does not use padding resistance"
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Boost\ntemp",
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "Start-up\nbehavior",
"description": "S=heat to soldering temp | Z=standby at sleep temp until moved | R=standby without heating until moved"
"description": "O=off | S=heat to soldering temp | Z=standby at sleep temp until moved | R=standby without heating until moved"
},
"TempChangeShortStep": {
"displayText": "Temp change\nshort",
@@ -173,7 +150,7 @@
},
"LockingMode": {
"displayText": "Allow locking\nbuttons",
"description": "While soldering, hold down both buttons to toggle locking them (B=boost mode only | F=full locking)"
"description": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"ProfilePhases": {
"displayText": "Profile\nPhases",
@@ -233,7 +210,7 @@
},
"MotionSensitivity": {
"displayText": "Motion\nsensitivity",
"description": "1=least sensitive | ... | 9=most sensitive"
"description": "0=off | 1=least sensitive | ... | 9=most sensitive"
},
"SleepTemperature": {
"displayText": "Sleep\ntemp",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "Hall sensor\nsensitivity",
"description": "Sensitivity to magnets (1=least sensitive | ... | 9=most sensitive)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
"description": "Sensitivity to magnets (0=off | 1=least sensitive | ... | 9=most sensitive)"
},
"TemperatureUnit": {
"displayText": "Temperature\nunit",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "Anim.\nspeed",
"description": "Pace of icon animations in menu (S=slow | M=medium | F=fast)"
"description": "Pace of icon animations in menu (O=off | S=slow | M=medium | F=fast)"
},
"AnimLoop": {
"displayText": "Anim.\nloop",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Language:\n EN English",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Castellano",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "¡Calibracion\nlista!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "Térmico\nFuera de control"
},
"WarningTipShorted": {
"message": "¡Punta en Corto!"
},
"SettingsCalibrationWarning": {
"message": "¡Antes de reiniciar, asegúrese de que la punta y el mango estén a temperatura ambiente!"
},
@@ -51,12 +48,18 @@
"InputVoltageString": {
"message": "Voltaje: \n"
},
"SleepingSimpleString": {
"message": "Reposo"
},
"SleepingAdvancedString": {
"message": "En reposo...\n"
},
"SleepingTipAdvancedString": {
"message": "Punta: \n"
},
"OffString": {
"message": "Apagado"
},
"ProfilePreheatString": {
"message": "Precalentado\n"
},
@@ -74,12 +77,15 @@
"SettingRightChar": "D",
"SettingLeftChar": "I",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "L",
"SettingMediumChar": "M",
"SettingFastChar": "R",
"SettingStartNoneChar": "N",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "R",
"SettingStartSleepOffChar": "F",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Modo por\nDefecto"
},
"USBPDModeNoDynamic": {
"displayText": "Dinámico\nNo"
},
"USBPDModeSafe": {
"displayText": "Modo\nSeguro"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Fuente\nde energía",
@@ -150,9 +127,10 @@
"PDNegTimeout": {
"displayText": "PD\ntiempo de espera",
"description": "Timeout de negociación de PD en pasos de 100ms para compatibilidad con algunos cargadores QC (0: apagado)"
},
"USBPDMode": {
"displayText": "PD\nMode",
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Permite modos PPS & EPR"
},
"BoostTemperature": {
@@ -161,7 +139,7 @@
},
"AutoStart": {
"displayText": "Calentar\nal enchufar",
"description": "Calentado automático al iniciar (S=entrar en modo soldar | R=solo entrar en reposo | F=en reposo pero mantiene la punta fría)"
"description": "Calentado automático al iniciar (N=no | S=entrar en modo soldar | R=solo entrar en reposo | F=en reposo pero mantiene la punta fría)"
},
"TempChangeShortStep": {
"displayText": "Cambio temp.\npuls. cortas",
@@ -173,7 +151,7 @@
},
"LockingMode": {
"displayText": "Permitir botones\nbloqueo",
"description": "Mientras suelda, mantenga pulsados ambos botones para alternar su bloqueo (B=sólo modo boost | F=bloqueo total)"
"description": "Mientras suelda, mantenga pulsados ambos botones para alternar su bloqueo (D=desactivar | B=sólo modo boost | F=bloqueo total)"
},
"ProfilePhases": {
"displayText": "Fases de\nPerfil",
@@ -233,7 +211,7 @@
},
"MotionSensitivity": {
"displayText": "Detección de\nmovimiento",
"description": "Tiempo de reacción al agarrar (1=menos sensible | ... | 9=más sensible)"
"description": "Tiempo de reacción al agarrar (0=no | 1=menos sensible | ... | 9=más sensible)"
},
"SleepTemperature": {
"displayText": "Temperatura\nen reposo",
@@ -249,11 +227,7 @@
},
"HallEffSensitivity": {
"displayText": "Hall Eff\nSensibilidad",
"description": "Sensibilidad del sensor de efecto Hall en la detección de reposo (1=menos sensible | ... | 9=más sensible)"
},
"HallEffSleepTimeout": {
"displayText": "Tiempo reposo\nSensor Hall",
"description": "Intervalo antes de que \"sleep mode\" empiece cuando sensorhall supera límite"
"description": "Sensibilidad del sensor de efecto Hall en la detección de reposo (0=no | 1=menos sensible | ... | 9=más sensible)"
},
"TemperatureUnit": {
"displayText": "Unidad de\ntemperatura",
@@ -277,7 +251,7 @@
},
"AnimSpeed": {
"displayText": "Anim.\nvelocidad",
"description": "Velocidad de animaciones de iconos en el menú (L=baja | M=media | R=alta)"
"description": "Velocidad de animaciones de iconos en el menú (O=apagado | L=baja | M=media | R=alta)"
},
"AnimLoop": {
"displayText": "Anim.\nbucle",
@@ -338,10 +312,6 @@
"LanguageSwitch": {
"displayText": "Idioma:\n ES Castellano",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -1,347 +0,0 @@
{
"languageCode": "ET",
"languageLocalName": "Eesti",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"message": "Kalibreerimine\ntehtud!"
},
"ResetOKMessage": {
"message": "Vaikesätted\ntaastatud"
},
"SettingsResetMessage": {
"message": "Osad seadistused\non muutunud!"
},
"NoAccelerometerMessage": {
"message": "Kiirendusandurit\nei tuvastatud!"
},
"NoPowerDeliveryMessage": {
"message": "USB-PD IC\nei tuvastatud!"
},
"LockingKeysString": {
"message": "LUKUS"
},
"UnlockingKeysString": {
"message": "AVATUD"
},
"WarningKeysLockedString": {
"message": "!LUKUS!"
},
"WarningThermalRunaway": {
"message": "Termiline\närajooks"
},
"WarningTipShorted": {
"message": "!Otsik lühises!"
},
"SettingsCalibrationWarning": {
"message": "Enne taaskäivitamist veenduge, et otsik ja käepide on toatemperatuuril!"
},
"CJCCalibrating": {
"message": "kalibreerimine\n"
},
"SettingsResetWarning": {
"message": "Kas olete kindel, et soovite taastada vaikesätted?"
},
"UVLOWarningString": {
"message": "DC MADAL"
},
"UndervoltageString": {
"message": "Alapinge\n"
},
"InputVoltageString": {
"message": "Sisend V: \n"
},
"SleepingAdvancedString": {
"message": "Unerežiim...\n"
},
"SleepingTipAdvancedString": {
"message": "Otsik: \n"
},
"ProfilePreheatString": {
"message": "Eelkuumutus\n"
},
"ProfileCooldownString": {
"message": "Jahtumine\n"
},
"DeviceFailedValidationWarning": {
"message": "Teie seade on tõenäoliselt võltsing!"
},
"TooHotToStartProfileWarning": {
"message": "Liiga kuum,\net alustada profiili"
}
},
"characters": {
"SettingRightChar": "P",
"SettingLeftChar": "V",
"SettingAutoChar": "A",
"SettingSlowChar": "A",
"SettingMediumChar": "K",
"SettingFastChar": "T",
"SettingStartSolderingChar": "J",
"SettingStartSleepChar": "Z",
"SettingStartSleepOffChar": "P",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "T"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Toiteseaded\n",
"description": ""
},
"SolderingMenu": {
"displayText": "Jootmise\nseaded",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Unerežiimi\nseaded",
"description": ""
},
"UIMenu": {
"displayText": "Kasutaja-\nliides",
"description": ""
},
"AdvancedMenu": {
"displayText": "Täpsemad\nseaded",
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Toiteallikas\nDC",
"description": "Määrab katkestuspinge, et vältida aku liigset tühjenemist. (DC 10V) (S=3,3V elemendi kohta, eemaldab voolupiirangud)"
},
"MinVolCell": {
"displayText": "Minimaalne\npinge",
"description": "Minimaalne lubatud pinge akuelemendi kohta (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "QC\npinge",
"description": "Maks. QC pinge, mida jootekolb läbirääkima peaks"
},
"PDNegTimeout": {
"displayText": "PD\naegumine",
"description": "PD läbirääkimise aegumine 100ms sammudena, et tagada ühilduvus osade QC laadijatega"
},
"USBPDMode": {
"displayText": "PD\nMode",
"description": "Võimaldab PPS- ja EPR-režiimi"
},
"BoostTemperature": {
"displayText": "Boost\ntemp",
"description": "Kolviotsiku temperatuur \"boost režiimis\""
},
"AutoStart": {
"displayText": "Käitumine\nkäivitusel",
"description": "J=kuumuta jootmistemperatuurini | Z=unerežiim, kuni seadet liigutatakse | P=unerežiim toatemperatuuril, kuni seadet liigutatakse"
},
"TempChangeShortStep": {
"displayText": "Temp. muut\nlühike",
"description": "Temperatuuri muutmine lühikese vajutusega"
},
"TempChangeLongStep": {
"displayText": "Temp. muut\npikk",
"description": "Temperatuuri muutmine pika vajutusega"
},
"LockingMode": {
"displayText": "Luba nuppude\nlukustamine",
"description": "Hoidke jootmise ajal mõlemad nupud all, et lülitada nende lukustamist (B=ainult boostrežiimis | T=täielik lukustamine)."
},
"ProfilePhases": {
"displayText": "Profiil\nfaasid",
"description": "Faaside arv profiilirežiimis"
},
"ProfilePreheatTemp": {
"displayText": "Eelkuumutus\ntemp.",
"description": "Eelkuumuta sellele temperatuurile profiilirežiimi alguses"
},
"ProfilePreheatSpeed": {
"displayText": "Eelkuumutus\nkiirus",
"description": "Eelkuumuta sellise kiirusega (kraadi sekundis)."
},
"ProfilePhase1Temp": {
"displayText": "Faas 1\ntemp.",
"description": "Selle faasi lõpu sihttemperatuur"
},
"ProfilePhase1Duration": {
"displayText": "Faas 1\nkestus",
"description": "Selle faasi sihtkestus (sekundites)"
},
"ProfilePhase2Temp": {
"displayText": "Faas 2\ntemp.",
"description": ""
},
"ProfilePhase2Duration": {
"displayText": "Faas 2\nkestus",
"description": ""
},
"ProfilePhase3Temp": {
"displayText": "Faas 3\ntemp.",
"description": ""
},
"ProfilePhase3Duration": {
"displayText": "Faas 3\nkestus",
"description": ""
},
"ProfilePhase4Temp": {
"displayText": "Faas 4\ntemp.",
"description": ""
},
"ProfilePhase4Duration": {
"displayText": "Faas 4\nkestus",
"description": ""
},
"ProfilePhase5Temp": {
"displayText": "Faas 5\ntemp.",
"description": ""
},
"ProfilePhase5Duration": {
"displayText": "Faas 5\nkestus",
"description": ""
},
"ProfileCooldownSpeed": {
"displayText": "Jahtumise\nkiirus",
"description": "Jahtumine selle kiirusega profiilirežiimi lõpus (kraadi sekundis)"
},
"MotionSensitivity": {
"displayText": "Liikumise\ntundlikkus",
"description": "1=vähetundlikuim | ... | 9=kõige tundlikum"
},
"SleepTemperature": {
"displayText": "Unerežiimi\ntemp",
"description": "Kolviotsiku temperatuur \"unerežiimis\""
},
"SleepTimeout": {
"displayText": "Unerežiimi\nviide",
"description": "Aeg enne \"unerežiimi\" algust (s=sekundid | m=minutid)"
},
"ShutdownTimeout": {
"displayText": "Seiskumise\nviide",
"description": "Aeg enne jootekolvi välja lülitamist (m=minutid)"
},
"HallEffSensitivity": {
"displayText": "Halli anduri\ntundlikkus",
"description": "Tundlikkus magnetite suhtes (1=vähetundlikum | ... | 9=kõige tundlikum)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Intervall enne \"unerežiimi\" käivitub, kui saaliefekt on üle läve"
},
"TemperatureUnit": {
"displayText": "Temperatuuri\nühik",
"description": "C=°Celsius | F=°Fahrenheit"
},
"DisplayRotation": {
"displayText": "Ekraani\norienteeritus",
"description": "P=paremakäeline | V=vasakukäeline | A=automaatne"
},
"CooldownBlink": {
"displayText": "Jahtumisel\nvilkumine",
"description": "Vilguta otsiku temperatuuri, kui see jahtub ja on veel ohtlikult kuum"
},
"ScrollingSpeed": {
"displayText": "Kerimise\nkiirus",
"description": "Infoteksti kerimise kiirus (A = aeglane | K = kiire)"
},
"ReverseButtonTempChange": {
"displayText": "Vaheta\n+ - nupud",
"description": "Temperatuurinuppude asukohtade vahetus"
},
"AnimSpeed": {
"displayText": "Anim.\nkiirus",
"description": "Menüüikoonide animatsiooni kiirus (A=aeglane | K=keskmine | T=tempokas)"
},
"AnimLoop": {
"displayText": "Pidevad\nanim.",
"description": "Esitage menüüs pidevalt animatsioone"
},
"Brightness": {
"displayText": "Ekraani\nheledus",
"description": "Seadista OLED ekraani heledust"
},
"ColourInversion": {
"displayText": "Ekraani\ninverteerimine",
"description": "Inverteeri OLED ekraani värvid"
},
"LOGOTime": {
"displayText": "Alguslogo\nkestus",
"description": "Aeg, mille jooksul näidatakse logo peale kolvi käivitamist (s=sekundites)"
},
"AdvancedIdle": {
"displayText": "Andmed\npuhkeolekus",
"description": "Näita unerežiimis üksikasjalikumat teavet väiksemas kirjas"
},
"AdvancedSoldering": {
"displayText": "Andmed\njootmisel",
"description": "Näita jootmisel üksikasjalikumat teavet väiksemas kirjas"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Luba BLE"
},
"PowerLimit": {
"displayText": "Võimsus-\npiirang",
"description": "Suurim lubatud võimsus mida kolb võib kasutada (W=vatti)"
},
"CalibrateCJC": {
"displayText": "Kalibr. CJC\ntuleval käivit.",
"description": "Kalibreeri külmaühenduse kompensatsioon (CJC) järgmisel käivitamisel (ei ole vajalik, kui Delta T on < 5°C)"
},
"VoltageCalibration": {
"displayText": "Kalibreeri\nsisendpinge",
"description": "Sisendpinge (VIN) kalibreerimine (väljumiseks vajutage pikalt)"
},
"PowerPulsePower": {
"displayText": "Impulsi\ntugevus",
"description": "Ärkvelolekuimpulsi tugevus (vattides). Vajalik, vältimaks akupanga uinumist."
},
"PowerPulseWait": {
"displayText": "Impulsi\nviivitus",
"description": "Viivitus enne ärkvelolekuimpulsi käivitumist (x 2,5s)"
},
"PowerPulseDuration": {
"displayText": "Impulsi\nkestus",
"description": "Ärkvelolekuimpulsi kestus (x 250ms)"
},
"SettingsReset": {
"displayText": "Taasta\nvaikesätted",
"description": "Nulli kõik seadistused vaikesätetele"
},
"LanguageSwitch": {
"displayText": "Keel:\n ET Eesti",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,14 +3,14 @@
"languageLocalName": "Suomi",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"message": "Kalibrointi\nvalmis!"
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Tehdasasetukset\npalautettu!"
"message": "Palautus"
},
"SettingsResetMessage": {
"message": "Tehdasasetukset\npalautettu!"
"message": "Asetukset\npalautettu!"
},
"NoAccelerometerMessage": {
"message": "Kiihtyvyysanturi\npuuttuu!"
@@ -19,67 +19,73 @@
"message": "USB-PD IC\npuuttuu!"
},
"LockingKeysString": {
"message": "Näppäinlukko\nkäytössä."
"message": " LUKITTU"
},
"UnlockingKeysString": {
"message": "Näppäimet\nkäytössä."
"message": "AUKI"
},
"WarningKeysLockedString": {
"message": "!Näppäimet\nlukittu!"
"message": "!LUKKO!"
},
"WarningThermalRunaway": {
"message": "!Lämmönsäätelyn\nhäiriö!"
},
"WarningTipShorted": {
"message": "!Kärki\noikosulussa!"
"message": "Thermal\nRunaway"
},
"SettingsCalibrationWarning": {
"message": "Varmista laitteen ja kärjen huoneenlämpöisyys ennen uudelleenkäynnistystä!"
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "Kalibroidaan\n"
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Haluatko varmasti palauttaa oletusarvot?"
},
"UVLOWarningString": {
"message": "DC jännite alhainen."
"message": "DC ALH."
},
"UndervoltageString": {
"message": "Alijännite.\n"
"message": "Alijännite\n"
},
"InputVoltageString": {
"message": "Jännite: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Lepotila...\n"
},
"SleepingTipAdvancedString": {
"message": "Kärki: \n"
},
"OffString": {
"message": "Off"
},
"ProfilePreheatString": {
"message": "Esilämmitetään\n"
"message": "Preheat\n"
},
"ProfileCooldownString": {
"message": "Jäähtyy\n"
"message": "Cooldown\n"
},
"DeviceFailedValidationWarning": {
"message": "Laite saattaa olla väärennös!"
"message": "Your device is most likely a counterfeit!"
},
"TooHotToStartProfileWarning": {
"message": "Lämpötila liian korkea\nprofiilin aloitukseen!"
"message": "Too hot to\nstart profile"
}
},
"characters": {
"SettingRightChar": "O",
"SettingLeftChar": "V",
"SettingAutoChar": "A",
"SettingOffChar": "P",
"SettingSlowChar": "A",
"SettingMediumChar": "M",
"SettingFastChar": "S",
"SettingStartNoneChar": "E",
"SettingStartSolderingChar": "J",
"SettingStartSleepChar": "L",
"SettingStartSleepOffChar": "H",
"SettingLockDisableChar": "P",
"SettingLockBoostChar": "V",
"SettingLockFullChar": "K"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "USB-PD\noletus-t"
},
"USBPDModeNoDynamic": {
"displayText": "USB-PD\nvakaa-ti"
},
"USBPDModeSafe": {
"displayText": "USB-PD\nturva-ti"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Virtalähde\nDC",
@@ -145,95 +122,95 @@
},
"QCMaxVoltage": {
"displayText": "QC\njännite",
"description": "Ensisijainen maksimi QC jännite."
"description": "Ensisijainen maksimi QC jännite"
},
"PDNegTimeout": {
"displayText": "PD\naikakatkais",
"description": "PD neuvottelun aikakatkaisu 100ms askelin joitakin QC-latureita varten."
"displayText": "PD\ntimeout",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"USBPDMode": {
"displayText": "PD\ntila",
"description": "Vakaa tila ei käytä EPR & PPS, turva-tila ei käytä vastuksen pehmustusta."
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Tehostus-\nlämpötila",
"description": "Tehostustilan lämpötila."
"description": "Tehostustilan lämpötila"
},
"AutoStart": {
"displayText": "Autom.\nkäynnistys",
"description": "Käynnistää virrat kytkettäessä juotostilan automaattisesti. (J=juotostila | L=Lepotila | H=Lepotila huoneenlämpö)"
"description": "Käynnistää virrat kytkettäessä juotostilan automaattisesti. (E=Ei käytössä | J=juotostila | L=Lepotila | H=Lepotila huoneenlämpö)"
},
"TempChangeShortStep": {
"displayText": "Lämmön muutos\nlyhyt painal.",
"description": "Lämpötilan muutos lyhyellä painalluksella."
"description": "Lämpötilan muutos lyhyellä painalluksella"
},
"TempChangeLongStep": {
"displayText": "Lämmön muutos\npitkä painal.",
"description": "Lämpötilan muutos pitkällä painalluksella."
"description": "Lämpötilan muutos pitkällä painalluksella"
},
"LockingMode": {
"displayText": "Salli nappien\nlukitus",
"description": "Kolvatessa paina molempia näppäimiä lukitaksesi ne (V=vain tehostus | K=kaikki)"
"description": "Kolvatessa paina molempia näppäimiä lukitaksesi ne (P=pois | V=vain tehostus | K=kaikki)"
},
"ProfilePhases": {
"displayText": "Profiili\nvaiheet",
"description": "Vaiheiden määrä profiilitilassa."
"displayText": "Profile\nPhases",
"description": "Number of phases in profile mode"
},
"ProfilePreheatTemp": {
"displayText": "Esilämmityksen\nlämpötila",
"description": "Esilämmittää tähän lämpötilaan profiilitilan alussa."
"displayText": "Preheat\nTemp",
"description": "Preheat to this temperature at the start of profile mode"
},
"ProfilePreheatSpeed": {
"displayText": "Esilämmityksen\nnopeus",
"description": "Esilämmityksen nopeus (asteita/sekunti)"
"displayText": "Preheat\nSpeed",
"description": "Preheat at this rate (degrees per second)"
},
"ProfilePhase1Temp": {
"displayText": "Vaiheen 1\nTemp",
"description": "Kohdelämpötila tämän vaiheen lopussa."
"displayText": "Phase 1\nTemp",
"description": "Target temperature for the end of this phase"
},
"ProfilePhase1Duration": {
"displayText": "Vaiheen 1\nkesto",
"description": "Tämän vaiheen ajankäyttö (sekunteina) Saattaa kestää kauemmin jos lämmitys hitaampaa."
"displayText": "Phase 1\nDuration",
"description": "Target duration of this phase (seconds)"
},
"ProfilePhase2Temp": {
"displayText": "Vaiheen 2\nlämpötila",
"description": "Kohdelämpötila tämän vaiheen lopussa."
"displayText": "Phase 2\nTemp",
"description": ""
},
"ProfilePhase2Duration": {
"displayText": "Vaiheen 2\nkesto",
"description": "Tämän vaiheen ajankäyttö (sekunteina) Saattaa kestää kauemmin jos lämmitys hitaampaa."
"displayText": "Phase 2\nDuration",
"description": ""
},
"ProfilePhase3Temp": {
"displayText": "Vaiheen 3\nlämpötila",
"description": "Kohdelämpötila tämän vaiheen lopussa."
"displayText": "Phase 3\nTemp",
"description": ""
},
"ProfilePhase3Duration": {
"displayText": "Vaiheen 3\nkesto",
"description": "Tämän vaiheen ajankäyttö (sekunteina) Saattaa kestää kauemmin jos lämmitys hitaampaa."
"displayText": "Phase 3\nDuration",
"description": ""
},
"ProfilePhase4Temp": {
"displayText": "Vaiheen 4\nlämpötila",
"description": "Kohdelämpötila tämän vaiheen lopussa."
"displayText": "Phase 4\nTemp",
"description": ""
},
"ProfilePhase4Duration": {
"displayText": "Vaiheen 4\nkesto",
"description": "Tämän vaiheen ajankäyttö (sekunteina) Saattaa kestää kauemmin jos lämmitys hitaampaa."
"displayText": "Phase 4\nDuration",
"description": ""
},
"ProfilePhase5Temp": {
"displayText": "Vaiheen 5\nlämpötila",
"description": "Kohdelämpötila tämän vaiheen lopussa."
"displayText": "Phase 5\nTemp",
"description": ""
},
"ProfilePhase5Duration": {
"displayText": "Vaiheen 5\nkesto",
"description": "Tämän vaiheen ajankäyttö (sekunteina) Saattaa kestää kauemmin jos lämmitys hitaampaa."
"displayText": "Phase 5\nDuration",
"description": ""
},
"ProfileCooldownSpeed": {
"displayText": "Jäähtymis\nnopeus",
"description": "Jäähtymisnopeus profiilitilan lopussa (asteita sekunnissa)"
"displayText": "Cooldown\nSpeed",
"description": "Cooldown at this rate at the end of profile mode (degrees per second)"
},
"MotionSensitivity": {
"displayText": "Liikkeen\nherkkyys",
"description": "1=vähäinen herkkyys | ... | 9=suurin herkkyys"
"description": "0=pois päältä | 1=vähäinen herkkyys | ... | 9=suurin herkkyys"
},
"SleepTemperature": {
"displayText": "Lepotilan\nlämpötila",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "Hall-\nherk.",
"description": "Hall-efektianturin herkkyys lepotilan tunnistuksessa (1=vähäinen herkkyys | ... | 9=suurin herkkyys)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Aikaväli ennen \"lepotilaa\" alkaa, kun hall-efekti ylittää kynnyksen"
"description": "Hall-efektianturin herkkyys lepotilan tunnistuksessa (0=pois päältä | 1=vähäinen herkkyys | ... | 9=suurin herkkyys)"
},
"TemperatureUnit": {
"displayText": "Lämpötilan\nyksikkö",
@@ -277,27 +250,27 @@
},
"AnimSpeed": {
"displayText": "Animaation\nnopeus",
"description": "Animaatioiden nopeus valikossa (A=alhainen | K=keskiverto | S=suuri)"
"description": "Animaatioiden nopeus valikossa (P=pois | A=alhainen | K=keskiverto | S=suuri)"
},
"AnimLoop": {
"displayText": "Animaation\ntoistaminen",
"description": "Toista animaatiot valikossa."
"description": "Toista animaatiot valikossa"
},
"Brightness": {
"displayText": "Näytön\nkirkkaus",
"description": "Säädä OLED-näytön kirkkautta."
"displayText": "Screen\nbrightness",
"description": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"displayText": "Käänteiset\nvärit",
"description": "Asettaa käänteiset värit OLED-näyttöön."
"displayText": "Invert\nscreen",
"description": "Invert the OLED screen colors"
},
"LOGOTime": {
"displayText": "Käynnistysl\naika näytöllä",
"description": "Aseta käynnistyslogon aika näytöllä (s=sekunteja)"
"displayText": "Boot logo\nduration",
"description": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"displayText": "Tiedot\nlepotilassa",
"description": "Näyttää yksityiskohtaisemmat tiedot pienellä fontilla lepotilassa."
"description": "Näyttää yksityiskohtaisemmat pienemmällä fontilla tiedot lepotilassa."
},
"AdvancedSoldering": {
"displayText": "Tarkempi\njuotosnäyttö",
@@ -305,23 +278,23 @@
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "BLE käyttöön."
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Tehon-\nrajoitus",
"description": "Suurin sallittu teho (Watti)"
},
"CalibrateCJC": {
"displayText": "Kalibroi CJC\nensi käynnist",
"description": "Ensi käynnistyksessä kärjen Cold Junction Compensation kalibroidaan (ei tarpeellista jos Delta T on < 5°C)"
"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)"
},
"VoltageCalibration": {
"displayText": "Kalibroi\ntulojännite?",
"description": "Tulojännitteen kalibrointi (VIN) (paina pitkään poistuaksesi)"
"description": "Tulojännitten kalibrointi (VIN) (paina pitkään poistuaksesi)"
},
"PowerPulsePower": {
"displayText": "Herätyspulssin\nvoimakkuus",
"description": "Herätyspulssin voimakkuus (Watteina)"
"description": "Herätyspulssin voimakkuus (Watti)"
},
"PowerPulseWait": {
"displayText": "Pulssin\nodotusaika",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Kieli:\n FI Suomi",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,8 +3,8 @@
"languageLocalName": "Français",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"message": "Étalonnage\nterminé !"
"CJCCalibrationDone": {
"message": "Étalonnage\nterminé!"
},
"ResetOKMessage": {
"message": "Reset OK"
@@ -19,37 +19,37 @@
"message": "USB-PD\nnon détecté !"
},
"LockingKeysString": {
"message": "VERROUIL"
"message": "VERROUIL"
},
"UnlockingKeysString": {
"message": "DEVERROUILLÉ"
"message": "DEVERROU"
},
"WarningKeysLockedString": {
"message": "! VERR. !"
},
"WarningThermalRunaway": {
"message": "Surchauffe\ncritique"
},
"WarningTipShorted": {
"message": "!Court-circuit Panne!"
"message": "Emballement\nthermique"
},
"SettingsCalibrationWarning": {
"message": "Avant de redémarrer, assurez-vous que la panne et la poignée sont à température ambiante !"
},
"CJCCalibrating": {
"message": "Étalonnage\n"
"message": "Etalonnage\n"
},
"SettingsResetWarning": {
"message": "Voulez-vous vraiment réinitialiser les paramètres aux valeurs par défaut ?"
},
"UVLOWarningString": {
"message": "TENSION FAIBLE"
"message": "DC FAIBL"
},
"UndervoltageString": {
"message": "Sous-tension\n"
},
"InputVoltageString": {
"message": "Tension d'entrée:\n"
"message": "V d'entrée: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "En veille...\n"
@@ -57,11 +57,14 @@
"SleepingTipAdvancedString": {
"message": "Panne: \n"
},
"OffString": {
"message": "Off"
},
"ProfilePreheatString": {
"message": "Préchauffage\n"
"message": "Preheat\n"
},
"ProfileCooldownString": {
"message": "Refroidissement\n"
"message": "Cooldown\n"
},
"DeviceFailedValidationWarning": {
"message": "Votre appareil semble être une contrefaçon !"
@@ -74,12 +77,15 @@
"SettingRightChar": "D",
"SettingLeftChar": "G",
"SettingAutoChar": "A",
"SettingOffChar": "D",
"SettingSlowChar": "L",
"SettingMediumChar": "M",
"SettingFastChar": "R",
"SettingStartNoneChar": "D",
"SettingStartSolderingChar": "A",
"SettingStartSleepChar": "V",
"SettingStartSleepOffChar": "O",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "V"
},
@@ -105,43 +111,14 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Mode\npar Défaut"
},
"USBPDModeNoDynamic": {
"displayText": "Non\nDynamique"
},
"USBPDModeSafe": {
"displayText": "Mode\nSafe"
},
"TipTypeAuto": {
"displayText": "Détéction\nAuto."
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nCourt"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Source\nd'alim.",
"description": "Source d'alimentation. Définit la tension de coupure (DC 10V) (S 3.3V par cellule, désactive la limite de puissance)"
"description": "Source d'alimentation. Règle la tension de coupure (DC 10V) (S 3.3V par cellules, désactive la limite de puissance)"
},
"MinVolCell": {
"displayText": "Tension\nminimale",
"description": "Tension minimale autorisée par cellule (3S : 3 - 3.7V | 4-6S : 2.4 - 3.7V)"
"description": "Tension minimale autorisée par cellule (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "Tension\nQC",
@@ -149,19 +126,19 @@
},
"PDNegTimeout": {
"displayText": "Délai\nexpir. PD",
"description": "Délai de gociation PD par paliers de 100ms pour la compatibilité avec certains chargeurs QC"
"description": "Délai de la negociation PD par étapes de 100ms pour la compatiblité avec certains chargeurs QC"
},
"USBPDMode": {
"displayText": "Mode\nPD",
"description": "Aucune dynamique ne désactive EPR & PPS, le mode sécurisé n'utilise pas de résistance de protection"
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Temp.\nboost",
"description": "Température utilisée en \"mode boost\""
},
"AutoStart": {
"displayText": "Chauffer audémarrage",
"description": "A=activé | V=mode veille | O=mode veille à température ambiante"
"displayText": "Chauffer au\ndémarrage",
"description": "D=désactivé | A=activé | V=mode veille | O=mode veille à température ambiante"
},
"TempChangeShortStep": {
"displayText": "Incrément\nappui court",
@@ -173,27 +150,27 @@
},
"LockingMode": {
"displayText": "Verrouiller\nles boutons",
"description": "Pendant la soudure, appuyer sur les deux boutons pour les verrouiller (B=boost seulement | V=verr. total)"
"description": "Pendant la soudure, appuyer sur les deux boutons pour les verrouiller (D=désactivé | B=boost seulement | V=verr. total)"
},
"ProfilePhases": {
"displayText": "Profile\nPhases",
"description": "Nombre de phases dans le mode de profile"
"description": "Number of phases in profile mode"
},
"ProfilePreheatTemp": {
"displayText": "Temp.\nPréchauffage",
"description": "Préchauffer à cette température au début du mode de profile"
"displayText": "Preheat\nTemp",
"description": "Preheat to this temperature at the start of profile mode"
},
"ProfilePreheatSpeed": {
"displayText": "Vitesse\nPréchauffage",
"description": "Préchauffer à cette vitesse (degrés par seconde)"
"displayText": "Preheat\nSpeed",
"description": "Preheat at this rate (degrees per second)"
},
"ProfilePhase1Temp": {
"displayText": "Temp.\nPhase 1",
"description": "Température séléctionnée pour la fin de cette phase"
"displayText": "Phase 1\nTemp",
"description": "Target temperature for the end of this phase"
},
"ProfilePhase1Duration": {
"displayText": "Durée\nPhase 1",
"description": "Durée séléctionnée pour cette phase (secondes)"
"displayText": "Phase 1\nDuration",
"description": "Target duration of this phase (seconds)"
},
"ProfilePhase2Temp": {
"displayText": "Phase 2\nTemp",
@@ -228,12 +205,12 @@
"description": ""
},
"ProfileCooldownSpeed": {
"displayText": "Vitesse de\nRefroidissement",
"description": "Refroidissement à ce rythme à la fin du mode profil (degrés par seconde)"
"displayText": "Cooldown\nSpeed",
"description": "Cooldown at this rate at the end of profile mode (degrees per second)"
},
"MotionSensitivity": {
"displayText": "Sensibilité\nau mouvement",
"description": "1=très peu sensible | ... | 9=extrêmement sensible"
"description": "0=désactivé | 1=peu sensible | ... | 9=très sensible"
},
"SleepTemperature": {
"displayText": "Temp.\nveille",
@@ -249,18 +226,14 @@
},
"HallEffSensitivity": {
"displayText": "Sensibilité\ncapteur effet hall",
"description": "Sensibilité du capteur à effet Hall pour la mise en veille (1=peu sensible | ... | 9=très sensible)"
},
"HallEffSleepTimeout": {
"displayText": "TempsVeille\nCapteurHall",
"description": "Intervalle avant le démarrage du \"mode veille\" lorsque l'effet Hall est supérieur au seuil"
"description": "Sensibilité du capteur à effet Hall pour la mise en veille (0=désactivé | 1=peu sensible | ... | 9=très sensible)"
},
"TemperatureUnit": {
"displayText": "Unité de température",
"displayText": "Unité de\ntempérature",
"description": "C=Celsius | F=Fahrenheit"
},
"DisplayRotation": {
"displayText": "Orientation de l'écran",
"displayText": "Orientation\nde l'écran",
"description": "D=droitier | G=gaucher | A=automatique"
},
"CooldownBlink": {
@@ -268,7 +241,7 @@
"description": "Faire clignoter la température lors du refroidissement tant que la panne est chaude"
},
"ScrollingSpeed": {
"displayText": "Vitesse de défilement",
"displayText": "Vitesse de\ndéfilement",
"description": "Vitesse de défilement du texte (R=rapide | L=lent)"
},
"ReverseButtonTempChange": {
@@ -276,8 +249,8 @@
"description": "Inverser les boutons d'ajustement de température"
},
"AnimSpeed": {
"displayText": "Vitesse anim. icônes",
"description": "Vitesse des animations des icônes dans le menu (L=lente | M=moyenne | R=rapide)"
"displayText": "Vitesse\nanim. icônes",
"description": "Vitesse des animations des icônes dans le menu (D=désactivé | L=lente | M=moyenne | R=rapide)"
},
"AnimLoop": {
"displayText": "Rejouer\nanim. icônes",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Langue:\n FR Français",
"description": ""
},
"SolderingTipType": {
"displayText": "Soudure\nType de panne",
"description": "Séléctionner le type de panne utilisé"
}
}
}

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Hrvatski",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "Kalibracija\ndovršena!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "Neispravan\ngrijač"
},
"WarningTipShorted": {
"message": "!Tip Shorted!"
},
"SettingsCalibrationWarning": {
"message": "Prije restarta provjerite da su vrh i ručka na sobnoj temperaturi!"
},
@@ -51,12 +48,18 @@
"InputVoltageString": {
"message": "Napon V: \n"
},
"SleepingSimpleString": {
"message": "Zzz "
},
"SleepingAdvancedString": {
"message": "SPAVAM...\n"
},
"SleepingTipAdvancedString": {
"message": "Vrh: \n"
},
"OffString": {
"message": "Off"
},
"ProfilePreheatString": {
"message": "Preheat\n"
},
@@ -74,12 +77,15 @@
"SettingRightChar": "D",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "U",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "B",
"SettingStartNoneChar": "U",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "T",
"SettingStartSleepOffChar": "H",
"SettingLockDisableChar": "O",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "Z"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Izvor\nnapajanja",
@@ -151,9 +128,9 @@
"displayText": "USB-PD\ntimeout",
"description": "Timeout za USB-Power Delivery u koracima od 100ms za kompatibilnost s nekim QC punjačima"
},
"USBPDMode": {
"displayText": "PD\nMode",
"description": "No Dynamic disables EPR & PPS, Safe mode does not use padding resistance"
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Boost\ntemp",
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "Auto\nstart",
"description": "Ako je aktivno, lemilica po uključivanju napajanja odmah počinje grijati. (L=lemljenje | T=spavanje toplo | H=spavanje hladno)"
"description": "Ako je aktivno, lemilica po uključivanju napajanja odmah počinje grijati. (U=ugašeno | L=lemljenje | T=spavanje toplo | H=spavanje hladno)"
},
"TempChangeShortStep": {
"displayText": "Korak temp\nkratki pritisak",
@@ -173,7 +150,7 @@
},
"LockingMode": {
"displayText": "Zaključavanje\ntipki",
"description": "Tokom lemljenja, držite obje tipke kako biste ih zaključali ili otključali (B=zaključan boost | Z=zaključano sve)"
"description": "Tokom lemljenja, držite obje tipke kako biste ih zaključali ili otključali (O=otključano | B=zaključan boost | Z=zaključano sve)"
},
"ProfilePhases": {
"displayText": "Profile\nPhases",
@@ -233,7 +210,7 @@
},
"MotionSensitivity": {
"displayText": "Osjetljivost\npokreta",
"description": "Osjetljivost prepoznavanja pokreta. (1=najmanje osjetljivo | ... | 9=najosjetljivije)"
"description": "Osjetljivost prepoznavanja pokreta. (0=ugašeno | 1=najmanje osjetljivo | ... | 9=najosjetljivije)"
},
"SleepTemperature": {
"displayText": "Temp\nspavanja",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "Osjetljivost\nHall senzora",
"description": "Osjetljivost senzora magnetskog polja za detekciju spavanja (N=Najmanja | S=Srednja | V=Visoka)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Interval prije pokretanja \"načina mirovanja\" kada je Hall efekt iznad praga"
"description": "Osjetljivost senzora magnetskog polja za detekciju spavanja (U=Ugašeno | N=Najmanja | S=Srednja | V=Visoka)"
},
"TemperatureUnit": {
"displayText": "Jedinica\ntemperature",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "Brzina\nanimacije",
"description": "Brzina animacije ikona u menijima (S=sporo | M=srednje | B=brzo)"
"description": "Brzina animacije ikona u menijima (U=ugašeno | S=sporo | M=srednje | B=brzo)"
},
"AnimLoop": {
"displayText": "Ponavljanje\nanimacije",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Jezik:\n HR Hrvatski",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Magyar",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "Kalibráció\nkész!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "Kontrollálatlan\nhőmérséklet!"
},
"WarningTipShorted": {
"message": "!Tip Shorted!"
},
"SettingsCalibrationWarning": {
"message": "Újraindítás előtt a hegy és az eszköz legyen szobahőmérsékletű!"
},
@@ -51,12 +48,18 @@
"InputVoltageString": {
"message": "Bemenet V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Alvás...\n"
},
"SleepingTipAdvancedString": {
"message": "Hegy: \n"
},
"OffString": {
"message": "Ki"
},
"ProfilePreheatString": {
"message": "Preheat\n"
},
@@ -74,12 +77,15 @@
"SettingRightChar": "J",
"SettingLeftChar": "B",
"SettingAutoChar": "A",
"SettingOffChar": "0",
"SettingSlowChar": "L",
"SettingMediumChar": "K",
"SettingFastChar": "Gy",
"SettingStartNoneChar": "K",
"SettingStartSolderingChar": "F",
"SettingStartSleepChar": "A",
"SettingStartSleepOffChar": "Sz",
"SettingLockDisableChar": "K",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "T"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Áram\nforrás",
@@ -151,9 +128,9 @@
"displayText": "PD\nidőtúllépés",
"description": "PD egyeztetés időkerete (kompatibilitás QC töltőkkel) (x 100ms)"
},
"USBPDMode": {
"displayText": "PD\nMode",
"description": "No Dynamic disables EPR & PPS, Safe mode does not use padding resistance"
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Boost\nhőmérséklet",
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "Automatikus\nindítás",
"description": "Bekapcsolás után automatikusan lépjen forrasztás módba (F=forrasztás | A=alvó mód | Sz=szobahőmérséklet)"
"description": "Bekapcsolás után automatikusan lépjen forrasztás módba (K=ki | F=forrasztás | A=alvó mód | Sz=szobahőmérséklet)"
},
"TempChangeShortStep": {
"displayText": "Hőm. állítás\nrövid",
@@ -173,7 +150,7 @@
},
"LockingMode": {
"displayText": "Lezárás\nengedélyezés",
"description": "Forrasztás közben mindkét gombot hosszan lenyomva lezárja a kezelést (B=csak \"boost\" módban | T=teljes lezárás)"
"description": "Forrasztás közben mindkét gombot hosszan lenyomva lezárja a kezelést (K=ki | B=csak \"boost\" módban | T=teljes lezárás)"
},
"ProfilePhases": {
"displayText": "Profile\nPhases",
@@ -233,7 +210,7 @@
},
"MotionSensitivity": {
"displayText": "Mozgás\nérzékenység",
"description": "Mozgás érzékenység beállítása (1=legkevésbé érzékeny | ... | 9=legérzékenyebb)"
"description": "Mozgás érzékenység beállítása (0=kikapcsolva | 1=legkevésbé érzékeny | ... | 9=legérzékenyebb)"
},
"SleepTemperature": {
"displayText": "Alvási\nhőmérséklet",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "Alvásérzékelő\nérzékenység",
"description": "Alvásérzékelő gyorsulásmérő érzékenysége (1=legkevésbé érzékeny | ... | 9=legérzékenyebb)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Az \"alvó üzemmód\" előtti intervallum akkor kezdődik, amikor a hall-effektus meghaladja a küszöbértéket"
"description": "Alvásérzékelő gyorsulásmérő érzékenysége (0=kikapcsolva | 1=legkevésbé érzékeny | ... | 9=legérzékenyebb)"
},
"TemperatureUnit": {
"displayText": "Hőmérséklet\nmértékegysége",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "Animáció\nsebessége",
"description": "Menüikonok animációjának sebessége (L=lassú | K=közepes | Gy=gyors)"
"description": "Menüikonok animációjának sebessége (0=ki | L=lassú | K=közepes | Gy=gyors)"
},
"AnimLoop": {
"displayText": "Folytonos\nanimáció",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Nyelv:\n HU Magyar",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Italiano",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "Calibrazione\ncompletata!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "Temperatura\nfuori controllo"
},
"WarningTipShorted": {
"message": "Punta in cortocircuito!"
},
"SettingsCalibrationWarning": {
"message": "Prima di riavviare assicurati che la punta e l'impugnatura siano a temperatura ambiente!"
},
@@ -51,12 +48,18 @@
"InputVoltageString": {
"message": "V in: \n"
},
"SleepingSimpleString": {
"message": "Zzz "
},
"SleepingAdvancedString": {
"message": "Riposo\n"
},
"SleepingTipAdvancedString": {
"message": "Punta: \n"
},
"OffString": {
"message": "OFF"
},
"ProfilePreheatString": {
"message": "Preriscaldamento\n"
},
@@ -74,12 +77,15 @@
"SettingRightChar": "D",
"SettingLeftChar": "S",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "L",
"SettingMediumChar": "M",
"SettingFastChar": "V",
"SettingStartNoneChar": "D",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "R",
"SettingStartSleepOffChar": "A",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "T",
"SettingLockFullChar": "C"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Modalità\npredefinita"
},
"USBPDModeNoDynamic": {
"displayText": "Modalità\nstatica"
},
"USBPDModeSafe": {
"displayText": "Modalità\nsicura"
},
"TipTypeAuto": {
"displayText": "Rilevaz.\nauto"
},
"TipTypeT12Long": {
"displayText": "TS100\nlunga"
},
"TipTypeT12Short": {
"displayText": "Pine\ncorta"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Sorgente\nalimentaz",
@@ -149,19 +126,19 @@
},
"PDNegTimeout": {
"displayText": "Abilitazione\nUSB PD",
"description": "Imposta il tempo di negoziazione del protocollo USB Power Delivery con alimentatori compatibili [0: disattiva; multipli di 100 ms]"
"description": "Regola il massimo tempo utile per la negoziazione del protocollo USB Power Delivery con alimentatori compatibili [0: disattiva; multipli di 100 ms]"
},
"USBPDMode": {
"displayText": "Modalità\nUSB PD",
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Abilita le modalità Power Delivery PPS ed EPR"
},
"BoostTemperature": {
"displayText": "Temp\nturbo",
"displayText": "Temp\nTurbo",
"description": "Imposta la temperatura della funzione turbo [°C/°F]"
},
"AutoStart": {
"displayText": "Avvio\nautomatico",
"description": "Attiva automaticamente il saldatore quando viene alimentato [S: saldatura; R: riposo; A: temperatura ambiente]"
"description": "Attiva automaticamente il saldatore quando viene alimentato [D: disattiva; S: saldatura; R: riposo; A: temperatura ambiente]"
},
"TempChangeShortStep": {
"displayText": "Temp passo\nbreve",
@@ -173,11 +150,11 @@
},
"LockingMode": {
"displayText": "Blocco\ntasti",
"description": "Blocca i tasti durante la modalità saldatura; tieni premuto entrambi per bloccare o sbloccare [T: consenti Turbo; C: blocco completo]"
"description": "Blocca i tasti durante la modalità saldatura; tieni premuto entrambi per bloccare o sbloccare [D: disattiva; T: consenti Turbo; C: blocco completo]"
},
"ProfilePhases": {
"displayText": "Fasi modalità\nprofilo",
"description": "Imposta il numero di fasi da implementare per un profilo di riscaldamento personalizzato"
"description": "Imposta il numero di fasi da attuare per un profilo di riscaldamento personalizzato"
},
"ProfilePreheatTemp": {
"displayText": "Temperatura\npreriscaldamento",
@@ -185,7 +162,7 @@
},
"ProfilePreheatSpeed": {
"displayText": "Velocità\npreriscaldamento",
"description": "Imposta la velocità di preriscaldamento [°C/s]"
"description": "Imposta la velocità di preriscaldamento [gradi al secondo]"
},
"ProfilePhase1Temp": {
"displayText": "Temperatura\nfase 1",
@@ -229,11 +206,11 @@
},
"ProfileCooldownSpeed": {
"displayText": "Velocità\nraffreddamento",
"description": "Imposta la velocità di raffreddamento al termine del profilo di riscaldamento [°C/s]"
"description": "Imposta la velocità di raffreddamento al termine del profilo di riscaldamento [gradi al secondo]"
},
"MotionSensitivity": {
"displayText": "Sensibilità\nal movimento",
"description": "Imposta la sensibilità al movimento per uscire dalla modalità riposo [1: minima; 9: massima]"
"description": "Imposta la sensibilità al movimento per uscire dalla modalità riposo [0: nessuna; 1: minima; 9: massima]"
},
"SleepTemperature": {
"displayText": "Temperatura\nriposo",
@@ -241,19 +218,15 @@
},
"SleepTimeout": {
"displayText": "Timer\nriposo",
"description": "Imposta un timer per entrare in modalità riposo [secondi/minuti]"
"description": "Imposta il timer per entrare in modalità riposo [secondi/minuti]"
},
"ShutdownTimeout": {
"displayText": "Timer\nspegnimento",
"description": "Imposta un timer per lo spegnimento [minuti]"
"description": "Imposta il timer per lo spegnimento [minuti]"
},
"HallEffSensitivity": {
"displayText": "Sensore\nHall",
"description": "Regola la sensibilità del sensore ad effetto Hall per entrare in modalità riposo [1: minima; 9: massima]"
},
"HallEffSleepTimeout": {
"displayText": "Timer\nHall",
"description": "Imposta un timer per entrare in modalità riposo quando il sensore ad effetto Hall è al di sopra della soglia di attivazione [secondi]"
"description": "Regola la sensibilità del sensore ad effetto Hall per entrare in modalità riposo [0: nessuna; 1: minima; 9: massima]"
},
"TemperatureUnit": {
"displayText": "Unità di\ntemperatura",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "Velocità\nanimazioni",
"description": "Imposta la velocità di riproduzione delle animazioni del menù principale [L: lenta; M: media; V: veloce]"
"description": "Imposta la velocità di riproduzione delle animazioni del menù principale [O: OFF; L: lenta; M: media; V: veloce]"
},
"AnimLoop": {
"displayText": "Ciclo\nanimazioni",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Lingua:\n IT Italiano",
"description": ""
},
"SolderingTipType": {
"displayText": "Tipo di\npunta",
"description": "Seleziona il modello della punta in uso"
}
}
}

65
Translations/translation_JA_JP.json Normal file → Executable file
View File

@@ -3,7 +3,7 @@
"languageLocalName": "日本語",
"tempUnitFahrenheit": true,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "Calibration done!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "過熱"
},
"WarningTipShorted": {
"message": "!Tip Shorted!"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
@@ -51,12 +48,18 @@
"InputVoltageString": {
"message": "Input V: "
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Sleeping..."
},
"SleepingTipAdvancedString": {
"message": "Tip: "
},
"OffString": {
"message": "オフ"
},
"ProfilePreheatString": {
"message": "Preheat"
},
@@ -74,12 +77,15 @@
"SettingRightChar": "右",
"SettingLeftChar": "左",
"SettingAutoChar": "自",
"SettingOffChar": "×",
"SettingSlowChar": "遅",
"SettingMediumChar": "中",
"SettingFastChar": "速",
"SettingStartNoneChar": "×",
"SettingStartSolderingChar": "熱",
"SettingStartSleepChar": "待",
"SettingStartSleepOffChar": "室",
"SettingLockDisableChar": "×",
"SettingLockBoostChar": "ブ",
"SettingLockFullChar": "全"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "下限電圧",
@@ -151,9 +128,9 @@
"displayText": "PD\ntimeout",
"description": "一部のQC電源との互換性のため、PDネゴシエーションをタイムアウトする時間 <x100msミリ秒>"
},
"USBPDMode": {
"PDVpdo": {
"displayText": "PD VPDO",
"description": "No Dynamic disables EPR & PPS, Safe mode does not use padding resistance"
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "ブースト温度",
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "自動加熱",
"description": "電源投入時に自動的に加熱する <熱=半田付けモード | 待=スタンバイモード | 室=室温スタンバイモード>"
"description": "電源投入時に自動的に加熱する <×=オフ | 熱=半田付けモード | 待=スタンバイモード | 室=室温スタンバイモード>"
},
"TempChangeShortStep": {
"displayText": "温度変化 短",
@@ -173,7 +150,7 @@
},
"LockingMode": {
"displayText": "ボタンロック",
"description": "半田付けモード時に両方のボタンを長押しし、ボタンロックする <ブ=ブーストのみ許可 | 全=すべてをロック>"
"description": "半田付けモード時に両方のボタンを長押しし、ボタンロックする <×=オフ | ブ=ブーストのみ許可 | 全=すべてをロック>"
},
"ProfilePhases": {
"displayText": "Profile Phases",
@@ -233,7 +210,7 @@
},
"MotionSensitivity": {
"displayText": "動きの感度",
"description": "1=最低感度 | ... | 9=最高感度"
"description": "0=オフ | 1=最低感度 | ... | 9=最高感度"
},
"SleepTemperature": {
"displayText": "待機温度",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "磁界感度",
"description": "スタンバイモードに入るのに使用される磁場センサーの感度 <1=最低感度 | ... | 9=最高感度>"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "ホール効果が閾値を超えたときに\"「スリープモード」\"が開始されるまでの間隔"
"description": "スタンバイモードに入るのに使用される磁場センサーの感度 <0=オフ | 1=最低感度 | ... | 9=最高感度>"
},
"TemperatureUnit": {
"displayText": "温度単位",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "動画の速度",
"description": "メニューアイコンのアニメーションの速さ <遅=低速 | 中=中速 | 速=高速>"
"description": "メニューアイコンのアニメーションの速さ <×=再生しない | 遅=低速 | 中=中速 | 速=高速>"
},
"AnimLoop": {
"displayText": "動画をループ",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "言語: 日本語",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Lietuvių",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "Perkaitimo\npavojus"
},
"WarningTipShorted": {
"message": "!Tip Shorted!"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
@@ -51,12 +48,18 @@
"InputVoltageString": {
"message": "Įvestis V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Miegu...\n"
},
"SleepingTipAdvancedString": {
"message": "Antg: \n"
},
"OffString": {
"message": "Išj"
},
"ProfilePreheatString": {
"message": "Preheat\n"
},
@@ -74,12 +77,15 @@
"SettingRightChar": "D",
"SettingLeftChar": "K",
"SettingAutoChar": "A",
"SettingOffChar": "I",
"SettingSlowChar": "L",
"SettingMediumChar": "V",
"SettingFastChar": "G",
"SettingStartNoneChar": "N",
"SettingStartSolderingChar": "T",
"SettingStartSleepChar": "M",
"SettingStartSleepOffChar": "K",
"SettingLockDisableChar": "I",
"SettingLockBoostChar": "T",
"SettingLockFullChar": "V"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Maitinimo\nšaltinis",
@@ -151,9 +128,9 @@
"displayText": "PD\nlaikas",
"description": "PD suderinimo laikas žingsniais po 100ms suderinamumui su kai kuriais QC įkrovikliais"
},
"USBPDMode": {
"displayText": "PD\nMode",
"description": "No Dynamic disables EPR & PPS, Safe mode does not use padding resistance"
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Turbo\ntemperat.",
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "Automatinis\npaleidimas",
"description": "Ar pradėti kaitininti iš karto įjungus lituoklį (T=Taip | M=Miegas | K=Miegoti kambario temperatūroje)"
"description": "Ar pradėti kaitininti iš karto įjungus lituoklį (N=Ne | T=Taip | M=Miegas | K=Miegoti kambario temperatūroje)"
},
"TempChangeShortStep": {
"displayText": "Temp.keitim.\ntrump.spust.",
@@ -173,7 +150,7 @@
},
"LockingMode": {
"displayText": "Mygtukų\nužraktas",
"description": "Lituodami, ilgai paspauskite abu mygtukus, kad juos užrakintumėte (T=leidžiamas tik Turbo režimas | V=Visiškas užrakinimas)"
"description": "Lituodami, ilgai paspauskite abu mygtukus, kad juos užrakintumėte (I=Išjungta | T=leidžiamas tik Turbo režimas | V=Visiškas užrakinimas)"
},
"ProfilePhases": {
"displayText": "Profile\nPhases",
@@ -233,7 +210,7 @@
},
"MotionSensitivity": {
"displayText": "Judesio\njautrumas",
"description": "Judesio jautrumas (1=Mažiausias | ... | 9=Didžiausias)"
"description": "Judesio jautrumas (0=Išjungta | 1=Mažiausias | ... | 9=Didžiausias)"
},
"SleepTemperature": {
"displayText": "Miego\ntemperat.",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "Holo\njutiklis",
"description": "Holo jutiklio jautrumas nustatant miegą (1=Mažiausias | ... | 9=Didžiausias)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Intervalas prieš \"miego režimą\" prasideda, kai salės efektas viršija slenkstį"
"description": "Holo jutiklio jautrumas nustatant miegą (0=Išjungta | 1=Mažiausias | ... | 9=Didžiausias)"
},
"TemperatureUnit": {
"displayText": "Temperatūros\nvienetai",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "Animacijų\ngreitis",
"description": "Paveiksliukų animacijų greitis meniu punktuose (L=Lėtas | V=Vidutinis | G=Greitas)"
"description": "Paveiksliukų animacijų greitis meniu punktuose (I=Išjungtas | L=Lėtas | V=Vidutinis | G=Greitas)"
},
"AnimLoop": {
"displayText": "Animacijų\npakartojimas",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Kalba:\n LT Lietuvių",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Norsk bokmål",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "Termisk\nrømling"
},
"WarningTipShorted": {
"message": "!Tip Shorted!"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
@@ -51,12 +48,18 @@
"InputVoltageString": {
"message": "Innspenn.: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Dvale...\n"
},
"SleepingTipAdvancedString": {
"message": "Spiss: \n"
},
"OffString": {
"message": "Av"
},
"ProfilePreheatString": {
"message": "Preheat\n"
},
@@ -74,12 +77,15 @@
"SettingRightChar": "H",
"SettingLeftChar": "V",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "I",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "D",
"SettingStartSleepOffChar": "R",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Kilde\n",
@@ -151,9 +128,9 @@
"displayText": "PD-\ntidsavb.",
"description": "PD-forhandlingstidsavbrudd i steg på 100 ms for kompatibilitet med noen QC-ladere"
},
"USBPDMode": {
"displayText": "PD\nMode",
"description": "No Dynamic disables EPR & PPS, Safe mode does not use padding resistance"
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "KTmp\n",
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "AStart\n",
"description": "Start automatisk med lodding når strøm kobles til. (L=Lodding | D=Dvale | R=Dvale romtemperatur)"
"description": "Start automatisk med lodding når strøm kobles til. (I=Inaktiv | L=Lodding | D=Dvale | R=Dvale romtemperatur)"
},
"TempChangeShortStep": {
"displayText": "Temp-endring\nkort",
@@ -173,7 +150,7 @@
},
"LockingMode": {
"displayText": "Tillat å låse\nknapper",
"description": "Mens du lodder, hold nede begge knapper for å bytte mellom låsemodus (B=kun boost | F=full lås)"
"description": "Mens du lodder, hold nede begge knapper for å bytte mellom låsemodus (D=deaktiver | B=kun boost | F=full lås)"
},
"ProfilePhases": {
"displayText": "Profile\nPhases",
@@ -233,7 +210,7 @@
},
"MotionSensitivity": {
"displayText": "BSensr\n",
"description": "Bevegelsesfølsomhet (1=Minst følsom | ... | 9=Mest følsom)"
"description": "Bevegelsesfølsomhet (0=Inaktiv | 1=Minst følsom | ... | 9=Mest følsom)"
},
"SleepTemperature": {
"displayText": "DTmp\n",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "Hall-sensor\nfølsomhet",
"description": "Sensitiviteten til Hall-effekt-sensoren for å detektere inaktivitet (1=Minst følsom | ... | 9=Mest følsom)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Intervall før \"dvalemodus\" starter når halleffekten er over terskelen"
"description": "Sensitiviteten til Hall-effekt-sensoren for å detektere inaktivitet (0=Inaktiv | 1=Minst følsom | ... | 9=Mest følsom)"
},
"TemperatureUnit": {
"displayText": "TmpEnh\n",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "Anim.\nhastighet",
"description": "Hastigheten til animasjonene i menyen (S=slow | M=medium | F=fast)"
"description": "Hastigheten til animasjonene i menyen (O=off | S=slow | M=medium | F=fast)"
},
"AnimLoop": {
"displayText": "Anim.\nloop",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Språk:\n NB Norsk bm",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,41 +3,38 @@
"languageLocalName": "Nederlands",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"message": "Kalibratie\nklaar!"
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Sommige instellingen\nzijn veranderd!"
"message": "Instellingen\nzijn gereset!"
},
"NoAccelerometerMessage": {
"message": "Geen accelerometer\ngedetecteerd!"
},
"NoPowerDeliveryMessage": {
"message": "Geen USB-PD IC\ngedetecteerd!"
"message": "Geen USB-PD IC \ngedetecteerd!"
},
"LockingKeysString": {
"message": "GEBLOKKEERD"
},
"UnlockingKeysString": {
"message": "VRIJ"
"message": "GEDEBLOKKEERD"
},
"WarningKeysLockedString": {
"message": "!GEBLOKKEERD!"
},
"WarningThermalRunaway": {
"message": "Thermisch\nop hol geslagen"
},
"WarningTipShorted": {
"message": "!Kortgesloten Soldeerpunt!"
"message": "Verwarming\nOncontroleerbaar"
},
"SettingsCalibrationWarning": {
"message": "Voordat je opnieuw opstart: zorg dat de soldeerpunt op kamertemperatuur is!"
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "Kalibreren\n"
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Weet je zeker dat je de fabrieksinstellingen terug wilt zetten?"
@@ -46,46 +43,55 @@
"message": "DC Laag"
},
"UndervoltageString": {
"message": "Te lage spanning\n"
"message": "Onderspanning\n"
},
"InputVoltageString": {
"message": "Ingangs spanning: \n"
"message": "Voeding V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Slaapt...\n"
"message": "Slaapstand...\n"
},
"SleepingTipAdvancedString": {
"message": "Punt: \n"
},
"OffString": {
"message": "Uit"
},
"ProfilePreheatString": {
"message": "Voorverwarmen\n"
"message": "Preheat\n"
},
"ProfileCooldownString": {
"message": "Afkoelen\n"
"message": "Cooldown\n"
},
"DeviceFailedValidationWarning": {
"message": "Jou apparaat is waarschijnlijk een namaak!"
"message": "Jouw toestel is wellicht een namaak-versie!"
},
"TooHotToStartProfileWarning": {
"message": "Te warm om\nprofiel te starten"
"message": "Too hot to\nstart profile"
}
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "U",
"SettingSlowChar": "L",
"SettingMediumChar": "M",
"SettingMediumChar": "G",
"SettingFastChar": "S",
"SettingStartSolderingChar": "T",
"SettingStartNoneChar": "U",
"SettingStartSolderingChar": "G",
"SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "Z",
"SettingStartSleepOffChar": "B",
"SettingLockDisableChar": "U",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "V"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Energie-\ninstellingen",
"displayText": "Voeding\ninstellingen",
"description": ""
},
"SolderingMenu": {
@@ -93,11 +99,11 @@
"description": ""
},
"PowerSavingMenu": {
"displayText": "Slaap-\nstand",
"displayText": "Slaap\nModes",
"description": ""
},
"UIMenu": {
"displayText": "Gebruiker-\nsomgeving",
"displayText": "Weergave\ninstellingen",
"description": ""
},
"AdvancedMenu": {
@@ -105,243 +111,206 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Vermogens\nbron",
"description": "Minimale spanning om de batterij te beschermen tegen te ver ontladen (DC 10V) (S=3,3V per cell, zet PWR limiet uit)"
"displayText": "Spannings-\nbron",
"description": "Spanningsbron. Stelt drempelspanning in. (DC 10V) (S 3.3V per cel)"
},
"MinVolCell": {
"displayText": "Minimum\nspanning",
"description": "Minimale toegelaten voltage per cel (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
"displayText": "Minimum\nvoltage",
"description": "Minimum toegestaan voltage per cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "QC\nspanning",
"description": "Maximale QC spanning de soldeerbout zou moeten aanvragen"
"displayText": "QC\nvoltage",
"description": "Maximaal QC voltage dat gevraagd mag worden"
},
"PDNegTimeout": {
"displayText": "PD ver-\nloop tijd",
"description": "PD onderhandelings verlooptijd, afstemmingsduur in stappen van 100 ms (voor compatibiliteit met sommige QC laders)"
"displayText": "PD\ntimeout",
"description": "PD afstemmingsduur in stappen van 100ms (voor compatibiliteit met sommige QC laders)"
},
"USBPDMode": {
"displayText": "PD\nMode",
"description": "Zet PPS & EPR modes aan"
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Boost\ntemp",
"description": "Tip temperatuur tijdens \"boost-modus\""
"description": "Punt temperatuur in boostmode"
},
"AutoStart": {
"displayText": "start-\ngedrag",
"description": "T=verwarm naar soldeer temp | S=standby op slaap temp tot bewogen | Z=standby zonder verwarmen tot bewogen"
"displayText": "Opstart\ngedrag",
"description": "Gedrag bij opstarten (U=Uit | G=Gebruiks-temperatuur | S=Slaapstand-temperatuur tot beweging | B=Uit tot beweging)"
},
"TempChangeShortStep": {
"displayText": "temp veran-\ndering kort",
"description": "Temperatuur veranderings stap bij korte druk op de knop"
"displayText": "Temp veranderen\nkort",
"description": "Temperatuur verandering bij kort drukken"
},
"TempChangeLongStep": {
"displayText": "temp veran-\ndering lang",
"description": "Temperatuur veranderings stap bij lange druk op de knop"
"displayText": "Temp veranderen\nlang",
"description": "Temperatuur verandering bij lang drukken"
},
"LockingMode": {
"displayText": "Vergrendel-\nings knoppen",
"description": "Houd tijdens het solderen beide knoppen ingedrukt om de vergrendeling in of uit te schakelen (B=alleen boost-modus | V=volledige vergrendeling)"
"displayText": "Knopblokkering\ninschakelen",
"description": "Tijdens solderen lang op beide knoppen drukken blokkeert de knoppen (U=Uit | B=Alleen boost mode | V=Volledig blokkeren)"
},
"ProfilePhases": {
"displayText": "Profiel\nfases",
"description": "Nummer van fases in profiel modus"
"displayText": "Profile\nPhases",
"description": "Number of phases in profile mode"
},
"ProfilePreheatTemp": {
"displayText": "Voorverwarm\ntemperatuur",
"description": "Voorverwarm naar deze temperatuur op de start van profiel modus"
"displayText": "Preheat\nTemp",
"description": "Preheat to this temperature at the start of profile mode"
},
"ProfilePreheatSpeed": {
"displayText": "Voorverwarm\nsnelheid",
"description": "Voorverwarm op deze snelheid (graden per seconden)"
"displayText": "Preheat\nSpeed",
"description": "Preheat at this rate (degrees per second)"
},
"ProfilePhase1Temp": {
"displayText": "Fase 1\ntemperatuur",
"description": "Doel temperatuur op het einde van deze fase"
"displayText": "Phase 1\nTemp",
"description": "Target temperature for the end of this phase"
},
"ProfilePhase1Duration": {
"displayText": "Fase\nduur",
"description": "Doel tijdsduur van deze fase (in seconden)"
"displayText": "Phase 1\nDuration",
"description": "Target duration of this phase (seconds)"
},
"ProfilePhase2Temp": {
"displayText": "Fase 2\ntemperatuur",
"displayText": "Phase 2\nTemp",
"description": ""
},
"ProfilePhase2Duration": {
"displayText": "Fase 2\nduur",
"displayText": "Phase 2\nDuration",
"description": ""
},
"ProfilePhase3Temp": {
"displayText": "Fase 3\ntemperatuur",
"displayText": "Phase 3\nTemp",
"description": ""
},
"ProfilePhase3Duration": {
"displayText": "Fase 3\nduur",
"displayText": "Phase 3\nDuration",
"description": ""
},
"ProfilePhase4Temp": {
"displayText": "Fase 4\ntemperatuur",
"displayText": "Phase 4\nTemp",
"description": ""
},
"ProfilePhase4Duration": {
"displayText": "Fase 4\nduur",
"displayText": "Phase 4\nDuration",
"description": ""
},
"ProfilePhase5Temp": {
"displayText": "Fase 5\ntemperatuur",
"displayText": "Phase 5\nTemp",
"description": ""
},
"ProfilePhase5Duration": {
"displayText": "Fase 5\nduur",
"displayText": "Phase 5\nDuration",
"description": ""
},
"ProfileCooldownSpeed": {
"displayText": "Afkoel\nsnelheid",
"description": "De snelheid van afkoelen op het eind van profiel modus (graden per seconden)"
"displayText": "Cooldown\nSpeed",
"description": "Cooldown at this rate at the end of profile mode (degrees per second)"
},
"MotionSensitivity": {
"displayText": "Bewegings-\ngevoeligheid",
"description": "Bewegingsgevoeligheid (1=minst gevoelig | ... | 9=meest gevoelig)"
"description": "Bewegingsgevoeligheid (0=uit | 1=minst gevoelig | ... | 9=meest gevoelig)"
},
"SleepTemperature": {
"displayText": "Slaap\ntemp",
"description": "Temperatuur in slaapstand (°C)"
"description": "Punt temperatuur in slaapstand"
},
"SleepTimeout": {
"displayText": "Slaap ver-\ntraging",
"description": "Interval voor \"slaap stand\" start (Minuten | Seconden)"
"displayText": "Slaap\ntime-out",
"description": "Tijd voordat slaapmodus wordt geactiveerd (S=seconden | M=minuten)"
},
"ShutdownTimeout": {
"displayText": "Uitschakel\nna",
"description": "Automatisch afsluiten na (Minuten)"
"displayText": "Uitschakel\ntime-out",
"description": "Tijd voordat soldeerbout automatisch uitschakelt (M=minuten)"
},
"HallEffSensitivity": {
"displayText": "Hall sensor\ngevoeligheid",
"description": "Gevoeligheid naar de magneten (1=minst gevoelig | ... | 9=meest gevoelig)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Interval voordat de \"slaapmodus\" start wanneer het Hall-effect boven de drempelwaarde komt"
"description": "Gevoeligheid van de Hall effect sensor om naar slaapmodus te gaan (0=uit | 1=minst gevoelig | ... | 9=meest gevoelig)"
},
"TemperatureUnit": {
"displayText": "Temperatuur\neenheid",
"description": "C=°Celsius | F=°Fahrenheit"
"description": "Temperatuureenheid (C=Celsius | F=Fahrenheit)"
},
"DisplayRotation": {
"displayText": "Scherm-\noriëntatie",
"description": "R=Rechtshandig | L=Linkshandig | A=Automatisch"
"description": "Schermoriëntatie (R=Rechtshandig | L=Linkshandig | A=Automatisch)"
},
"CooldownBlink": {
"displayText": "Afkoel\nknipper",
"description": "Temperatuur knippert in hoofdmenu tijdens afkoeling"
"displayText": "Afkoel\nflitsen",
"description": "Temperatuur laten flitsen in het hoofdmenu zo lang de punt nog warm is"
},
"ScrollingSpeed": {
"displayText": "Scroll\nsnelheid",
"description": "Scrollsnelheid van de tekst. (Langzaam | Snel)"
"description": "Snelheid waarmee de tekst scrolt (S=Snel | L=Langzaam)"
},
"ReverseButtonTempChange": {
"displayText": "Wissel\n+ - knoppen",
"description": "Wissel de knoppen voor temperatuur controle om"
"displayText": "Draai\n+ - knoppen om",
"description": "Keer de +- knoppen van de temperatuurregeling om"
},
"AnimSpeed": {
"displayText": "Anim.\nsnelheid",
"description": "Snelheid van de icoon animaties in het menu (Langzaam | Middel | Snel)"
"displayText": "Animatie\nsnelheid",
"description": "Tempo van de icoon animaties in het hoofdmenu (U=uit | L=langzaam | G=gemiddeld | S=snel)"
},
"AnimLoop": {
"displayText": "Anim.\nherhaling",
"displayText": "Animatie\nherhaling",
"description": "Herhaal icoon animaties in hoofdmenu"
},
"Brightness": {
"displayText": "Scherm\nhelderheid",
"description": "Verander de helderheid van het OLED scherm"
"description": "Pas helderheid van het OLED scherm aan"
},
"ColourInversion": {
"displayText": "Inverteer\nscherm",
"description": "Keer de kleuren van het OLED scherm om"
"description": "Inverteer de kleuren van het OLED scherm"
},
"LOGOTime": {
"displayText": "Opstart\nlogo duur",
"description": "Zet het duur van het opstart logo (s=seconden)"
"displayText": "Opstart logo\nduur",
"description": "Stelt de weergaveduur van het opstartlogo in (s=seconden)"
},
"AdvancedIdle": {
"displayText": "Detail\nslaapscherm",
"description": "Gedetailleerde informatie in een kleiner lettertype in het slaapscherm"
"displayText": "Gedetailleerd\nstartscherm",
"description": "Gedetailleerde informatie weergeven in een kleine letters op het startscherm."
},
"AdvancedSoldering": {
"displayText": "Detail\nsoldeerscherm",
"description": "Gedetailleerde informatie in kleiner lettertype in soldeerscherm"
"displayText": "Gedetailleerd\nsoldeerscherm",
"description": "Gedetailleerde informatie weergeven in een kleiner lettertype op het soldeerscherm"
},
"BluetoothLE": {
"displayText": "Blue-\ntooth",
"description": "Zet Bluetooth aan"
"displayText": "Bluetooth\n",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "P\nlimiet",
"description": "Gemiddelde maximale vermogen dat de soldeerbout mag gebruiken (W=watt)"
"displayText": "Vermogen\nlimiet",
"description": "Maximaal vermogen (W=Watt)"
},
"CalibrateCJC": {
"displayText": "Kalibreer CJC\nbij opstart",
"description": "Bij de volgende opstart tip \"Cold Junction Compensation\" wordt gekalibreerd (niet nodig als Delta T < 5°C)"
"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)"
},
"VoltageCalibration": {
"displayText": "Kalibreer vo-\nedingsspanning",
"description": "VIN Kalibreren (lang in te drukken om te annuleren)"
"displayText": "Kalibreer\ninput-voltage?",
"description": "Start VIN Kalibratie (druk lang om te sluiten)"
},
"PowerPulsePower": {
"displayText": "Power\npuls",
"description": "Power van de aanhoud puls (W=watt)"
"displayText": "Stroom\nPuls",
"description": "Intensiteit van stroompuls om voeding aan te houden (watt)"
},
"PowerPulseWait": {
"displayText": "Energie pulse\nvertraging",
"description": "Vertraging voordat de aanhoud puls wordt geactiveerd (x 2,5s)"
"displayText": "Stroompuls\ninterval",
"description": "Tijdsduur tussen voeding wakker-blijf-pulsen (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Power pulse\nduur",
"description": "Aanhoud pulse duur (x 250 ms)"
"description": "Duur van voeding-wakker-blijf-pulsen (x 250ms)"
},
"SettingsReset": {
"displayText": "Instellingen\nresetten?",
"description": "Alle instellingen terug zetten naar fabrieksinstellingen"
"description": "Alle instellingen terugzetten naar fabrieksinstellingen"
},
"LanguageSwitch": {
"displayText": "Taal:\n NL Nederlands",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,20 +3,20 @@
"languageLocalName": "Vlaams",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"message": "Calibratie\ngedaan!"
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Sommige settings\nzijn veranderd!"
"message": "Certain settings\nwere changed!"
},
"NoAccelerometerMessage": {
"message": "Geen accelerometer\ngedectecteerd!"
"message": "No accelerometer\ndetected!"
},
"NoPowerDeliveryMessage": {
"message": "Geen USB-PD IC\ngedetecteerd!"
"message": "No USB-PD IC\ndetected!"
},
"LockingKeysString": {
"message": "LOCKED"
@@ -28,22 +28,19 @@
"message": "!LOCKED!"
},
"WarningThermalRunaway": {
"message": "Thermisch\nop hol geslagen"
},
"WarningTipShorted": {
"message": "!Soldeerpunt kortgesloten!"
"message": "Thermal\nRunaway"
},
"SettingsCalibrationWarning": {
"message": "Voordat je opnieuw opstart: stel zeker dat de soldeerpunt op kamertemperatuur is!"
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "Calibreren\n"
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Weet je zeker dat je de fabrieksinstellingen terug wilt zetten?"
"message": "Ben je zeker dat je alle standaardwaarden wil resetten?"
},
"UVLOWarningString": {
"message": "Onderspanning"
"message": "Voedingsspanning LAAG"
},
"UndervoltageString": {
"message": "Onderspanning\n"
@@ -51,12 +48,18 @@
"InputVoltageString": {
"message": "Voedingsspanning: \n"
},
"SleepingSimpleString": {
"message": "Zzz "
},
"SleepingAdvancedString": {
"message": "Slaapstand...\n"
},
"SleepingTipAdvancedString": {
"message": "Punt: \n"
},
"OffString": {
"message": "Uit"
},
"ProfilePreheatString": {
"message": "Preheat\n"
},
@@ -64,176 +67,150 @@
"message": "Cooldown\n"
},
"DeviceFailedValidationWarning": {
"message": "Jou apparaat is waarschijnlijk namaak!"
"message": "Your device is most likely a counterfeit!"
},
"TooHotToStartProfileWarning": {
"message": "Te warm om\nprofiel te starten!"
"message": "Too hot to\nstart profile"
}
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "T",
"SettingMediumChar": "M",
"SettingFastChar": "S",
"SettingStartNoneChar": "F",
"SettingStartSolderingChar": "T",
"SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "K",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Vermogens-\ninstellingen",
"displayText": "Power\nsettings",
"description": ""
},
"SolderingMenu": {
"displayText": "Soldeer\ninstellingen",
"displayText": "Soldeer\nInstellingen",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Slaap-\nstanden",
"displayText": "Slaap\nstanden",
"description": ""
},
"UIMenu": {
"displayText": "Gebruikers-\ninterface",
"displayText": "Gebruikers-\nInterface",
"description": ""
},
"AdvancedMenu": {
"displayText": "Geavanceerde\ninstellingen",
"displayText": "Gevorderde\nInstellingen",
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Spannings-\nbron",
"description": "Minimale toegelate voltage"
"description": "Spanningsbron. Stelt minimumspanning in. (DC 10V) (S 3.3V per cel)"
},
"MinVolCell": {
"displayText": "Minimum\nvoltage",
"description": "Minimale toegelaten voltage per cel (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
"description": "Minimum allowed voltage per cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "Vermogen\nwatt",
"displayText": "Vermogen\nWatt",
"description": "Vermogen van de adapter"
},
"PDNegTimeout": {
"displayText": "PD\ntimeout",
"description": "PD afstemmingsduur in stappen van 100ms (voor compatibiliteit met sommige QC laders)"
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"USBPDMode": {
"displayText": "PD\nMode",
"description": "Zet PPS & EPR modes aan"
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Verhog\nings temp",
"displayText": "Verhogings\ntemp",
"description": "Verhogingstemperatuur"
},
"AutoStart": {
"displayText": "start-\ntemperatuur",
"description": "Breng de soldeerbout op temperatuur bij het opstarten. (T=Soldeertemperatuur | S=Slaapstand-temperatuur | K=Slaapstand kamertemperatuur)"
"displayText": "Auto\nstart",
"description": "Breng de soldeerbout op temperatuur bij het opstarten. (F=Uit | T=Soldeertemperatuur | S=Slaapstand-temperatuur | K=Slaapstand kamertemperatuur)"
},
"TempChangeShortStep": {
"displayText": "temp veran\ndering kort",
"description": "Temperatuurveranderingsstap bij korte druk op de knop"
"displayText": "Temp change\nshort",
"description": "Temperature-change-increment on short button press"
},
"TempChangeLongStep": {
"displayText": "temp veran\ndering lang",
"description": "Temperatuurveranderingsstap bij lange druk op de knop"
"displayText": "Temp change\nlong",
"description": "Temperature-change-increment on long button press"
},
"LockingMode": {
"displayText": "Vergrendel-\ning knoppen",
"description": "Houd tijdens het solderen beide knoppen ingedrukt om de vergrendeling in of uit te schakelen (B=alleen boost-modus | F=volledige vergrendeling)"
"displayText": "Allow locking\nbuttons",
"description": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"ProfilePhases": {
"displayText": "Profiel\nfases",
"description": "Nummer van fases in profiel modus"
"displayText": "Profile\nPhases",
"description": "Number of phases in profile mode"
},
"ProfilePreheatTemp": {
"displayText": "Voorverwarm\ntemperatuur",
"description": "Voorverwarm naar deze temperatuur op de start van profiel modus"
"displayText": "Preheat\nTemp",
"description": "Preheat to this temperature at the start of profile mode"
},
"ProfilePreheatSpeed": {
"displayText": "Voorverwarm\nsnelheid",
"description": "Voorverwarm op deze snelheid (graden per seconden)"
"displayText": "Preheat\nSpeed",
"description": "Preheat at this rate (degrees per second)"
},
"ProfilePhase1Temp": {
"displayText": "Fase 1\ntemperatuur",
"description": "Doel temperatuur op het einde van deze fase"
"displayText": "Phase 1\nTemp",
"description": "Target temperature for the end of this phase"
},
"ProfilePhase1Duration": {
"displayText": "Fase\nduur",
"description": "Doel tijdsduur van deze fase (in seconden)"
"displayText": "Phase 1\nDuration",
"description": "Target duration of this phase (seconds)"
},
"ProfilePhase2Temp": {
"displayText": "Fase 2\ntemperatuur",
"displayText": "Phase 2\nTemp",
"description": ""
},
"ProfilePhase2Duration": {
"displayText": "Fase 2\nduur",
"displayText": "Phase 2\nDuration",
"description": ""
},
"ProfilePhase3Temp": {
"displayText": "Fase 3\ntemperatuur",
"displayText": "Phase 3\nTemp",
"description": ""
},
"ProfilePhase3Duration": {
"displayText": "Fase 3\nduur",
"displayText": "Phase 3\nDuration",
"description": ""
},
"ProfilePhase4Temp": {
"displayText": "Fase 4\ntemperatuur",
"displayText": "Phase 4\nTemp",
"description": ""
},
"ProfilePhase4Duration": {
"displayText": "Fase 4\nduur",
"displayText": "Phase 4\nDuration",
"description": ""
},
"ProfilePhase5Temp": {
"displayText": "Fase 5\ntemperatuur",
"displayText": "Phase 5\nTemp",
"description": ""
},
"ProfilePhase5Duration": {
"displayText": "Fase 5\nduur",
"displayText": "Phase 5\nDuration",
"description": ""
},
"ProfileCooldownSpeed": {
"displayText": "Afkoel\nsnelheid",
"description": "De snelheid van afkoelen op het eind van profiel modus (graden per seconden)"
"displayText": "Cooldown\nSpeed",
"description": "Cooldown at this rate at the end of profile mode (degrees per second)"
},
"MotionSensitivity": {
"displayText": "Bewegings-\ngevoeligheid",
"description": "Bewegingsgevoeligheid (1=minst gevoelig | ... | 9=meest gevoelig)"
"description": "Bewegingsgevoeligheid (0=uit | 1=minst gevoelig | ... | 9=meest gevoelig)"
},
"SleepTemperature": {
"displayText": "Slaap\ntemp",
@@ -248,12 +225,8 @@
"description": "Automatisch afsluiten time-out (Minuten)"
},
"HallEffSensitivity": {
"displayText": "Hall sensor\ngevoeligheid",
"description": "Gevoeligheid naar de magneten (1=minst gevoelig | ... | 9=meest gevoelig)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Interval voordat de \"slaapmodus\" start wanneer het Hall-effect boven de drempelwaarde komt"
"displayText": "Hall sensor\nsensitivity",
"description": "Sensitivity to magnets (0=uit | 1=minst gevoelig | ... | 9=meest gevoelig)"
},
"TemperatureUnit": {
"displayText": "Temperatuur\nschaal",
@@ -268,80 +241,76 @@
"description": "Temperatuur knippert in hoofdmenu tijdens afkoeling."
},
"ScrollingSpeed": {
"displayText": "Scroll\nsnelheid",
"description": "Scrollsnelheid van de tekst."
"displayText": "Scrol\nsnelheid",
"description": "Scrolsnelheid van de tekst."
},
"ReverseButtonTempChange": {
"displayText": "Wissel\n+ - knoppen",
"description": "Wissel de knoppen voor temperatuur controle"
"displayText": "Swap\n+ - keys",
"description": "Reverse assignment of buttons for temperature adjustment"
},
"AnimSpeed": {
"displayText": "Anim.\nsnelheid",
"description": "Snelheid van de icoon animaties in het menu (T=sloom | M=middel | S=snel)"
"displayText": "Anim.\nspeed",
"description": "Pace of icon animations in menu (O=off | T=slow | M=medium | S=fast)"
},
"AnimLoop": {
"displayText": "Anim.\nherhaling",
"description": "Herhaal icoon animaties in hoofdmenu"
"displayText": "Anim.\nloop",
"description": "Loop icon animations in main menu"
},
"Brightness": {
"displayText": "Scherm\nhelderheid",
"description": "Verander de helderheid van het OLED scherm"
"displayText": "Screen\nbrightness",
"description": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"displayText": "Omkeer\nscherm",
"description": "Omkeer de kleuren van het OLED scherm"
"displayText": "Invert\nscreen",
"description": "Invert the OLED screen colors"
},
"LOGOTime": {
"displayText": "Opstart\nlogo lengte",
"description": "Zet het lengte van het opstart logo (s=seconden)"
"displayText": "Boot logo\nduration",
"description": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"displayText": "Gedetailleerd\nslaapscherm",
"description": "Gedetailleerde informatie in een kleiner lettertype in het slaapscherm"
"description": "Gedetailleerde informatie in een kleiner lettertype in het slaapscherm."
},
"AdvancedSoldering": {
"displayText": "Gedetailleerd\nsoldeerscherm",
"description": "Gedetailleerde informatie in kleiner lettertype in soldeerscherm"
"description": "Gedetailleerde informatie in kleiner lettertype in soldeerscherm."
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Zet Bluetooth aan"
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Power\nlimit",
"description": "Gemiddelde maximale power dat de soldeerbout mag gebruiken (W=watt)"
"description": "Average maximum power the iron can use (W=watt)"
},
"CalibrateCJC": {
"displayText": "Calibreer CJC\nbij opstart",
"description": "Bij de volgende opstart tip Cold Junction Compensation wordt gecalibreerd (niet nodig als Delta T < 5°C)"
"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)"
},
"VoltageCalibration": {
"displayText": "Calibreervo-\nedingsspanning?",
"displayText": "Calibreer\nvoedingsspanning?",
"description": "VIN Calibreren. Bevestigen door knoppen lang in te drukken."
},
"PowerPulsePower": {
"displayText": "Power\npuls",
"description": "Power van de wakker-houd-puls (W=watt)"
"displayText": "Power\npulse",
"description": "Intensity of power of keep-awake-pulse (W=watt)"
},
"PowerPulseWait": {
"displayText": "Power pulse\nvertraging",
"description": "Vertraging voordat de wakker-houd-puls wordt geactiveerd (x 2,5s)"
"displayText": "Power pulse\ndelay",
"description": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Power pulse\nduur",
"displayText": "Power pulse\nduration",
"description": "Keep-awake-pulse duration (x 250ms)"
},
"SettingsReset": {
"displayText": "Instellingen\nresetten?",
"description": "Alle instellingen resetten"
"description": "Alle instellingen resetten."
},
"LanguageSwitch": {
"displayText": "Spraak:\n NL_BE Vlaams",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,8 +3,8 @@
"languageLocalName": "Polski",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"message": "Skalibrowano!"
"CJCCalibrationDone": {
"message": "Kalibracja\nwykonana!"
},
"ResetOKMessage": {
"message": "Reset OK"
@@ -19,7 +19,7 @@
"message": "Nie rozpoznano\nkont. USB-PD IC!"
},
"LockingKeysString": {
"message": "ZABLOK."
"message": " ZABLOK."
},
"UnlockingKeysString": {
"message": "ODBLOK."
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "Ucieczka\ntermiczna"
},
"WarningTipShorted": {
"message": "!Zwarty grot!"
},
"SettingsCalibrationWarning": {
"message": "Upewnij się, że końcówka i uchwyt mają temperaturę pokojową podczas następnego rozruchu!"
},
@@ -51,35 +48,44 @@
"InputVoltageString": {
"message": "Nap. wej.: \n"
},
"SleepingSimpleString": {
"message": "Zzz!"
},
"SleepingAdvancedString": {
"message": "Tr. uśpienia\n"
},
"SleepingTipAdvancedString": {
"message": "Grot: \n"
},
"OffString": {
"message": "Wył"
},
"ProfilePreheatString": {
"message": "Rozgrzewanie\n"
"message": "Preheat\n"
},
"ProfileCooldownString": {
"message": "Schładzanie\n"
"message": "Cooldown\n"
},
"DeviceFailedValidationWarning": {
"message": "Twoje urządzenie jest najprawdopodobniej podróbką!"
},
"TooHotToStartProfileWarning": {
"message": "Zbyt gorące, aby\nuruchomić profil"
"message": "Too hot to\nstart profile"
}
},
"characters": {
"SettingRightChar": "P",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "W",
"SettingMediumChar": "M",
"SettingFastChar": "S",
"SettingStartNoneChar": "B",
"SettingStartSolderingChar": "T",
"SettingStartSleepChar": "Z",
"SettingStartSleepOffChar": "O",
"SettingLockDisableChar": "W",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "P"
},
@@ -105,63 +111,34 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Tryb\ndomyślny"
},
"USBPDModeNoDynamic": {
"displayText": "Nie\ndynamiczny"
},
"USBPDModeSafe": {
"displayText": "Tryb\nbezpieczny"
},
"TipTypeAuto": {
"displayText": "Auto\nwykrycie"
},
"TipTypeT12Long": {
"displayText": "Długi\nTS100"
},
"TipTypeT12Short": {
"displayText": "Krótki\nPine"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Źródło\nzasilania",
"description": "Źródło zasilania. Ustaw napięcie odcięcia. (DC 10V) (S=3.3V dla ogniw Li, wyłącz limit mocy)"
"description": "Źródło zasilania. Ustaw napięcie odcięcia. (DC 10V) (S 3.3V dla ogniw Li, wyłącz limit mocy)"
},
"MinVolCell": {
"displayText": "Minimalne\nnapięcie",
"description": "Minimalne dozwolone napięcie na komórkę (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"displayText": "Napięcie QC",
"displayText": "QC\nnapięcie",
"description": "Maksymalne napięcie, które lutownica będzie próbowała wynegocjować z ładowarką Quick Charge (V)"
},
"PDNegTimeout": {
"displayText": "Limit czasu\nPD",
"description": "Limit czasu negocjacji PD w krokach co 100ms dla zgodności z niektórymi ładowarkami QC (0: wyłączone)"
"description": "Limit czasu negocjacji PD w krokach co 100 ms dla zgodności z niektórymi ładowarkami QC (0: wyłączone)"
},
"USBPDMode": {
"displayText": "Tryb PD",
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Włącza tryby PPS & EPR."
},
"BoostTemperature": {
"displayText": "Temp.\nboost",
"description": "Temp. w trybie \"boost\" "
"description": "Temperatura w trybie \"boost\" "
},
"AutoStart": {
"displayText": "Aut. uruch.\ntr. lutowania",
"description": "Automatyczne uruchamianie trybu lutowania po włączeniu zasilania. (T: lutowanie | Z: uśpienie | O: uśpienie w temp. pokojowej)"
"description": "Automatyczne uruchamianie trybu lutowania po włączeniu zasilania. (B: wyłączone | T: lutowanie | Z: uśpienie | O: uśpienie w temp. pokojowej)"
},
"TempChangeShortStep": {
"displayText": "Zm. temp.\nkr. przyc.",
@@ -173,67 +150,67 @@
},
"LockingMode": {
"displayText": "Blokada\nprzycisków",
"description": "W trybie lutowania, wciśnij oba przyciski aby je zablokować (B=tylko Boost | P=pełna blokada)"
"description": "W trybie lutowania, wciśnij oba przyciski aby je zablokować (O=Wyłączona | B=tylko Boost | P=pełna blokada)"
},
"ProfilePhases": {
"displayText": "Fazy\nprofilu",
"description": "Liczba faz w trybie profilu"
"displayText": "Profile\nPhases",
"description": "Number of phases in profile mode"
},
"ProfilePreheatTemp": {
"displayText": "Temp.\nrozgrzewania",
"description": "Rozgrzanie do tej temp. na początku trybu profilu"
"displayText": "Preheat\nTemp",
"description": "Preheat to this temperature at the start of profile mode"
},
"ProfilePreheatSpeed": {
"displayText": "Prędk.\nrozgrzewania",
"description": "Tempo rozgrzewania (stopnie na sekundę)"
"displayText": "Preheat\nSpeed",
"description": "Preheat at this rate (degrees per second)"
},
"ProfilePhase1Temp": {
"displayText": "Temp.\nfazy 1",
"description": "Docelowa temp. na koniec tej fazy"
"displayText": "Phase 1\nTemp",
"description": "Target temperature for the end of this phase"
},
"ProfilePhase1Duration": {
"displayText": "Dług.\nfazy 1",
"description": "Docelowy czas trwania tej fazy (sekundy)"
"displayText": "Phase 1\nDuration",
"description": "Target duration of this phase (seconds)"
},
"ProfilePhase2Temp": {
"displayText": "Temp.\nfazy 2",
"displayText": "Phase 2\nTemp",
"description": ""
},
"ProfilePhase2Duration": {
"displayText": "Dług.\nfazy 2",
"displayText": "Phase 2\nDuration",
"description": ""
},
"ProfilePhase3Temp": {
"displayText": "Temp.\nfazy 3",
"displayText": "Phase 3\nTemp",
"description": ""
},
"ProfilePhase3Duration": {
"displayText": "Dług.\nfazy 3",
"displayText": "Phase 3\nDuration",
"description": ""
},
"ProfilePhase4Temp": {
"displayText": "Temp.\nfazy 4",
"displayText": "Phase 4\nTemp",
"description": ""
},
"ProfilePhase4Duration": {
"displayText": "Dług.\nfazy 4",
"displayText": "Phase 4\nDuration",
"description": ""
},
"ProfilePhase5Temp": {
"displayText": "Temp.\nfazy 5",
"displayText": "Phase 5\nTemp",
"description": ""
},
"ProfilePhase5Duration": {
"displayText": "Dług.\nfazy 5",
"displayText": "Phase 5\nDuration",
"description": ""
},
"ProfileCooldownSpeed": {
"displayText": "Prędk.\nschładzania",
"description": "Tempo schładzania na koniec trybu profilu (stopnie na sekundę)"
"displayText": "Cooldown\nSpeed",
"description": "Cooldown at this rate at the end of profile mode (degrees per second)"
},
"MotionSensitivity": {
"displayText": "Czułość\nwykr. ruchu",
"description": "Czułość wykrywania ruchu (1: Minimalna | ... | 9: Maksymalna)"
"description": "Czułość wykrywania ruchu (0: Wyłączona | 1: Minimalna | ... | 9: Maksymalna)"
},
"SleepTemperature": {
"displayText": "Temp.\nuśpienia",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "Czułość\ncz. Halla",
"description": "Czułość czujnika Halla, używanego do przechodznia w tryb uśpienia (1: Minimalna | ... | 9: Maksymalna)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Odstęp przed rozpoczęciem \"trybu uśpienia\", gdy efekt Halla przekracza próg"
"description": "Czułość czujnika Halla, używanego do przechodznia w tryb uśpienia (0: Wyłączona | 1: Minimalna | ... | 9: Maksymalna)"
},
"TemperatureUnit": {
"displayText": "Jednostka\ntemperatury",
@@ -264,8 +237,8 @@
"description": "Obrót ekranu (P: dla praworęcznych | L: dla leworęcznych | A: automatycznie)"
},
"CooldownBlink": {
"displayText": "Mig. podczas\nschładzania",
"description": "Temperatura miga podczas schładzania, gdy grot jest wciąż gorący"
"displayText": "Mig. podczas\nwychładzania",
"description": "Temperatura miga podczas wychładzania, gdy grot jest wciąż gorący"
},
"ScrollingSpeed": {
"displayText": "Sz. przew.\ntekstu",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "Prędkosć\nanimacji",
"description": "Prędkość animacji ikon w menu (W: mała | M: średnia | S: duża)"
"description": "Prędkość animacji ikon w menu (O: wył. | W: mała | M: średnia | S: duża)"
},
"AnimLoop": {
"displayText": "Zapętlona\nanimacja",
@@ -296,7 +269,7 @@
"description": "Ustawia czas wyświetlania loga podczas uruchamiania (s=sekund)"
},
"AdvancedIdle": {
"displayText": "Szczegółowy\nekran bezczyn.",
"displayText": "Szeczegółowy\nekran bezczy.",
"description": "Wyświetla szczegółowe informacje za pomocą mniejszej czcionki na ekranie bezczynności"
},
"AdvancedSoldering": {
@@ -305,7 +278,7 @@
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Włącza Bluetooth Low Energy"
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Ogr.\nmocy",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Język:\n PL Polski",
"description": ""
},
"SolderingTipType": {
"displayText": "Typ grotu",
"description": "Wybierz typ zamontowanego grotu"
}
}
}

View File

@@ -3,8 +3,8 @@
"languageLocalName": "Português",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"message": "Calibração\nfeita!"
"CJCCalibrationDone": {
"message": "Calibração\nefetuada!"
},
"ResetOKMessage": {
"message": "Reset OK"
@@ -28,16 +28,13 @@
"message": "!Bloqueado!"
},
"WarningThermalRunaway": {
"message": "Avalanche\nTérmica"
},
"WarningTipShorted": {
"message": "!Tip Shorted!"
"message": "Thermal\nRunaway"
},
"SettingsCalibrationWarning": {
"message": "Antes de reiniciar certifique-se que o ferro está à temperatura ambiente!"
},
"CJCCalibrating": {
"message": "a calibrar\n"
"message": "calibrar\n"
},
"SettingsResetWarning": {
"message": "Definições de fábrica?"
@@ -51,49 +48,58 @@
"InputVoltageString": {
"message": "Tensão: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Repouso...\n"
},
"SleepingTipAdvancedString": {
"message": "Ponta: \n"
},
"OffString": {
"message": "Off"
},
"ProfilePreheatString": {
"message": "Pré-Aquecer\n"
"message": "Preheat\n"
},
"ProfileCooldownString": {
"message": "Arrefecer\n"
"message": "Cooldown\n"
},
"DeviceFailedValidationWarning": {
"message": "O seu dispositivo provavelmente é falsificado!"
},
"TooHotToStartProfileWarning": {
"message": "Demasiado quente para\niniciar perfil"
"message": "Too hot to\nstart profile"
}
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "C",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "D",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "H",
"SettingStartSleepOffChar": "A",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Opções de\nEnergia",
"displayText": "Configurações de\nenergia",
"description": ""
},
"SolderingMenu": {
"displayText": "Opções de\nSolda",
"displayText": "Configurações\nSolda",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Modo de\nRepouso",
"displayText": "Modos\nRepouso",
"description": ""
},
"UIMenu": {
@@ -101,39 +107,10 @@
"description": ""
},
"AdvancedMenu": {
"displayText": "Opções\nAvançadas",
"displayText": "Menu\nAvançado",
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Fonte\nalimentação",
@@ -151,17 +128,17 @@
"displayText": "PD tempo\nlimite",
"description": "Tempo limite de negoiciação de PD de 100ms para compatibilidade com alguns carregadores é (0: disabled)"
},
"USBPDMode": {
"displayText": "PD\nMode",
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Activa o modo PPS & EPR"
},
"BoostTemperature": {
"displayText": "Temp.\nModo Turbo",
"displayText": "Temp.\nModo turbo",
"description": "Ajuste de temperatura do \"modo turbo\""
},
"AutoStart": {
"displayText": "Aquecimento\nautomático",
"description": "Aquece a ponta automaticamente ao ligar (S=soldagem | H=hibernar | A=hibernar temp. ambiente)"
"description": "Aquece a ponta automaticamente ao ligar (D=desligar | S=soldagem | H=hibernar | A=hibernar temp. ambiente)"
},
"TempChangeShortStep": {
"displayText": "Mudança temp.\ncurta",
@@ -172,68 +149,68 @@
"description": "A temperatura será aumentada com um click longo"
},
"LockingMode": {
"displayText": "Permitir bloq.\nbotões",
"description": "Durante a solda premir os dois botões para alternar entre (B=modo turbo | F=bloqueio total)"
"displayText": "Permitir bloquear\nbotões",
"description": "Durante a solda premir os dois botões para alternar entre (D=desativados | B=modo turbo | F=bloqueio total)"
},
"ProfilePhases": {
"displayText": "Profile\nPhases",
"description": "Number of phases in profile mode"
},
"ProfilePreheatTemp": {
"displayText": "Temperatura\nPré-aquecimento",
"description": "Pré-aquecer a esta temperatura quando o perfil é selecionado"
"displayText": "Preheat\nTemp",
"description": "Preheat to this temperature at the start of profile mode"
},
"ProfilePreheatSpeed": {
"displayText": "Velocidade\nPré-aquecimento",
"description": "Ritmo de pré-aquecimento (graus por segundo)"
"displayText": "Preheat\nSpeed",
"description": "Preheat at this rate (degrees per second)"
},
"ProfilePhase1Temp": {
"displayText": "Temp.\nFase 1",
"description": "Temperatura alvo no final desta fase"
"displayText": "Phase 1\nTemp",
"description": "Target temperature for the end of this phase"
},
"ProfilePhase1Duration": {
"displayText": "Duração\nFase 1",
"description": "Duração alvo desta fase (segundos)"
"displayText": "Phase 1\nDuration",
"description": "Target duration of this phase (seconds)"
},
"ProfilePhase2Temp": {
"displayText": "Temp.\nFase 2",
"displayText": "Phase 2\nTemp",
"description": ""
},
"ProfilePhase2Duration": {
"displayText": "Duração\nFase 2",
"displayText": "Phase 2\nDuration",
"description": ""
},
"ProfilePhase3Temp": {
"displayText": "Temp.\nFase 3",
"displayText": "Phase 3\nTemp",
"description": ""
},
"ProfilePhase3Duration": {
"displayText": "Duração\nFase 3",
"displayText": "Phase 3\nDuration",
"description": ""
},
"ProfilePhase4Temp": {
"displayText": "Temp.\nFase 4",
"displayText": "Phase 4\nTemp",
"description": ""
},
"ProfilePhase4Duration": {
"displayText": "Duração\nFase 4",
"displayText": "Phase 4\nDuration",
"description": ""
},
"ProfilePhase5Temp": {
"displayText": "Temp.\nFase 5",
"displayText": "Phase 5\nTemp",
"description": ""
},
"ProfilePhase5Duration": {
"displayText": "Duração\nFase 5",
"displayText": "Phase 5\nDuration",
"description": ""
},
"ProfileCooldownSpeed": {
"displayText": "Velocidade\nArrefecimento",
"description": "Arrefecer a este ritmo após sair do perfil selecionado (graus por segundo)"
"displayText": "Cooldown\nSpeed",
"description": "Cooldown at this rate at the end of profile mode (degrees per second)"
},
"MotionSensitivity": {
"displayText": "Sensibilidade\nmovimento",
"description": "Sensibilidade ao movimento (1=Menor | ... | 9=Maior)"
"description": "Sensibilidade ao movimento (0=Desligado | 1=Menor | ... | 9=Maior)"
},
"SleepTemperature": {
"displayText": "Temperatura\nrepouso",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "Sensibilidade de\nmagnetismo",
"description": "Sensibilidade de magnetismo (1=Menor | ... | 9=Maior)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Intervalo antes do início do \"modo de suspensão\" quando o efeito Hall está acima do limite"
"description": "Sensibilidade de magnetismo (0=Desligado | 1=Menor | ... | 9=Maior)"
},
"TemperatureUnit": {
"displayText": "Unidade\ntemperatura",
@@ -276,8 +249,8 @@
"description": "Inverte o funcionamento dos botões de ajuste da temperatura"
},
"AnimSpeed": {
"displayText": "Velocidade\nde animação",
"description": "Velocidade das animações no menu (S=lenta | M=média | F=rápida)"
"displayText": "Velocidade de\nanimação",
"description": "Velocidade das animações no menu (O=off | S=lenta | M=média | F=rápida)"
},
"AnimLoop": {
"displayText": "Repetir\nanimações",
@@ -292,7 +265,7 @@
"description": "Inverte as cores do ecrã OLED"
},
"LOGOTime": {
"displayText": "Tempo img.\nno arranque",
"displayText": "Duração do\nlogo no arranque",
"description": "Define a duração do logotipo no arranque em (s=segundos)"
},
"AdvancedIdle": {
@@ -308,7 +281,7 @@
"description": "Ativa o Bluetooth Low Energy (BLE)"
},
"PowerLimit": {
"displayText": "Limite\npotência",
"displayText": "Limite de\npotência",
"description": "Potência máxima a usar (W=watt)"
},
"CalibrateCJC": {
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Idioma:\n PT Português",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Română",
"tempUnitFahrenheit": true,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "Încălzire\nEşuată"
},
"WarningTipShorted": {
"message": "!Tip Shorted!"
},
"SettingsCalibrationWarning": {
"message": "Înainte de repornire, asiguraţi-vă că vârful şi mânerul sunt la temperatura camerei!"
},
@@ -51,12 +48,18 @@
"InputVoltageString": {
"message": "Intrare V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Adormit...\n"
},
"SleepingTipAdvancedString": {
"message": "Tip: \n"
},
"OffString": {
"message": "Nu"
},
"ProfilePreheatString": {
"message": "Preheat\n"
},
@@ -74,12 +77,15 @@
"SettingRightChar": "D",
"SettingLeftChar": "S",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "Î",
"SettingMediumChar": "M",
"SettingFastChar": "R",
"SettingStartNoneChar": "O",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "Z",
"SettingStartSleepOffChar": "R",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Sursa de\nalimentare",
@@ -151,9 +128,9 @@
"displayText": "PD\ntimeout",
"description": "Timp limită de negociere pentru tranzacţia PD, în paşi de 100ms, pentru compatibilitate cu alimentatoarele QC"
},
"USBPDMode": {
"displayText": "PD\nMode",
"description": "No Dynamic disables EPR & PPS, Safe mode does not use padding resistance"
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Modifică\ntemp. impuls",
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "Auto\nstart",
"description": "Start letcon în modul de lipire la pornire (S=lipire | Z=repaus | R=repaus la temperatura camerei)"
"description": "Start letcon în modul de lipire la pornire (O=oprit | S=lipire | Z=repaus | R=repaus la temperatura camerei)"
},
"TempChangeShortStep": {
"displayText": "Schimbare temp.\napăsare scută",
@@ -173,7 +150,7 @@
},
"LockingMode": {
"displayText": "Blocare\nbutoane",
"description": "Când lipiţi, apăsaţi lung ambele butoane, pentru a le bloca (B=numai \"modul boost\" | F=blocare completă)"
"description": "Când lipiţi, apăsaţi lung ambele butoane, pentru a le bloca (D=dezactivare | B=numai \"modul boost\" | F=blocare completă)"
},
"ProfilePhases": {
"displayText": "Profile\nPhases",
@@ -233,7 +210,7 @@
},
"MotionSensitivity": {
"displayText": "Sensibilitate\nla miscare",
"description": "Sensibilitate senzor miscare (1=puţin sensibil | ... | 9=cel mai sensibil)"
"description": "Sensibilitate senzor miscare (0=oprit | 1=puţin sensibil | ... | 9=cel mai sensibil)"
},
"SleepTemperature": {
"displayText": "Temp\nrepaus",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "Sensibilitate\nsenzor Hall",
"description": "Sensibilitate senzor cu efect Hall pentru a detecta repausul (1=putin sensibil | ... | 9=cel mai sensibil)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Intervalul înainte de începerea \"modului de repaus\" când efectul de sală este peste prag"
"description": "Sensibilitate senzor cu efect Hall pentru a detecta repausul (0=oprit | 1=putin sensibil | ... | 9=cel mai sensibil)"
},
"TemperatureUnit": {
"displayText": "Unitate de\ntemperatură",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "Animaţii\nviteză",
"description": "Ritmul animaţiilor pictogramei din meniu (Î=încet | M=mediu | R=rapid)"
"description": "Ritmul animaţiilor pictogramei din meniu (O=oprit | Î=încet | M=mediu | R=rapid)"
},
"AnimLoop": {
"displayText": "Animaţii\nbuclă",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Limbă:\n RO Română",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,20 +3,20 @@
"languageLocalName": "Русский",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "Калибровка\nзавершена!"
},
"ResetOKMessage": {
"message": "Готово!"
"message": "Сброс OK"
},
"SettingsResetMessage": {
"message": "Настройки\nсброшены!"
},
"NoAccelerometerMessage": {
"message": "Акселерометр\nне обнаружен!"
"message": "Не определен\nакселерометр!"
},
"NoPowerDeliveryMessage": {
"message": "Питание по USB-PD\nне обнаружено"
"message": "USB-PD питание\nне обнаружено"
},
"LockingKeysString": {
"message": "ЗАБЛОК"
@@ -28,10 +28,7 @@
"message": "!ЗАБЛОК!"
},
"WarningThermalRunaway": {
"message": "Неуправляемый\nразогрев"
},
"WarningTipShorted": {
"message": "!КЗ на жале!"
"message": "Неуправляемый\nРазогрев"
},
"SettingsCalibrationWarning": {
"message": "Пожалуйста, убедитесь, что жало и корпус имеют комнатную температуру при следующей загрузке!"
@@ -43,20 +40,26 @@
"message": "Вы уверены, что хотите сбросить настройки к значениям по умолчанию?"
},
"UVLOWarningString": {
"message": "НИЗ.НАПР"
"message": "НАПРЯЖ--"
},
"UndervoltageString": {
"message": "Низ. напряжение\n"
},
"InputVoltageString": {
"message": "Питание(В):\n"
"message": "Питание В: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Сон...\n"
"message": "Ожидание...\n"
},
"SleepingTipAdvancedString": {
"message": "Жало: \n"
},
"OffString": {
"message": "Вык"
},
"ProfilePreheatString": {
"message": "Преднагрев\n"
},
@@ -64,7 +67,7 @@
"message": "Остывание\n"
},
"DeviceFailedValidationWarning": {
"message": "Вероятно, это поддельное устройство!"
"message": "Вероятно, это устройство подделка!"
},
"TooHotToStartProfileWarning": {
"message": "Слишком горячо для\nстарта профиля"
@@ -74,210 +77,180 @@
"SettingRightChar": "П",
"SettingLeftChar": "Л",
"SettingAutoChar": "А",
"SettingOffChar": "О",
"SettingSlowChar": "М",
"SettingMediumChar": "С",
"SettingFastChar": "Б",
"SettingStartNoneChar": "В",
"SettingStartSolderingChar": "П",
"SettingStartSleepChar": "С",
"SettingStartSleepChar": "О",
"SettingStartSleepOffChar": "К",
"SettingLockDisableChar": "О",
"SettingLockBoostChar": "Т",
"SettingLockFullChar": "П"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Настройки\nпитания",
"displayText": "Параметры\nпитания",
"description": ""
},
"SolderingMenu": {
"displayText": "Настройки\nпайки",
"displayText": "Параметры\nпайки",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Авто\nвыключение",
"displayText": "Режимы\nсна",
"description": ""
},
"UIMenu": {
"displayText": "Интерфейс\n",
"displayText": "Параметры\nинтерфейса",
"description": ""
},
"AdvancedMenu": {
"displayText": "Доп.\nнастройки",
"displayText": "Дополнител.\nнастройки",
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Вкл.\nPPSиEPR"
},
"USBPDModeNoDynamic": {
"displayText": "Откл.\n"
},
"USBPDModeSafe": {
"displayText": "Вкл.без\nзапроса"
},
"TipTypeAuto": {
"displayText": "Авто\nопред-е"
},
"TipTypeT12Long": {
"displayText": "TS100\nстанд."
},
"TipTypeT12Short": {
"displayText": "Pine\nкоротк."
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80(P)\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Предельное\nнапряжение",
"description": "Установка минимально предельного напряжения от аккумулятора для предотвращения глубокого разряда (DC 10В | S 3,3В на ячейку, без ограничения мощности)"
"displayText": "Источник\nпитания",
"description": "Источник питания. Устанавливает напряжение отсечки. (DC 10В) (S 3,3В на ячейку, без лимита мощности)"
},
"MinVolCell": {
"displayText": "Мин.\nнапряжение",
"description": "Минимально разрешённое напряжение на ячейку (3S: 3 - 3,7В | 4S-6S: 2,4 - 3,7В)"
"displayText": "Мин.\nнапр.",
"description": "Минимальное разрешенное напряжение на ячейку (3S: 3 - 3,7V | 4S-6S: 2,4 - 3,7V)"
},
"QCMaxVoltage": {
"displayText": "Напр-е\nдля QC",
"description": "Максимальное напряжение для согласования с источником питания по QC"
"displayText": "Ограничение\nнапряжения QC",
"description": "Максимальное напряжение для согласования с QC источником питания"
},
"PDNegTimeout": {
"displayText": "Интервал\nPD",
"description": "Интервал согласования питания по Power Delivery с шагом 100 мс для совместимости с некоторыми источниками питания по QC (0=Откл.)"
"displayText": "PD\nтайм-аут",
"description": "Power Delivery тайм-аут согласования с шагом 100 мс для совместимости с некоторыми быстрыми зарядными QC (0: отключено)"
},
"USBPDMode": {
"displayText": "Режим\nPD",
"description": "Вкл.без запроса: включить PPS и EPR без запроса большей мощности"
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Включает режимы PPS & EPR."
},
"BoostTemperature": {
"displayText": "t° турбо\nрежима",
"description": "Температура жала в турбо-режиме"
},
"AutoStart": {
"displayText": "Режим при\nвключении",
"description": "Режим, в котором включается паяльник (П=Пайка | С=Сон | К=Ожидание при комн. темп.)"
"displayText": "Авто\nстарт",
"description": "Режим, в котором запускается паяльник при подаче питания (В=Выкл. | П=Пайка | О=Ожидание | К=Ожидание при комн. темп.)"
},
"TempChangeShortStep": {
"displayText": "Шаг t° при\nкор.наж-ии",
"displayText": "Шаг темп.\nкор. наж.",
"description": "Шаг изменения температуры при коротком нажатии кнопок"
},
"TempChangeLongStep": {
"displayText": "Шаг t° при\nдол.наж-ии",
"description": "Шаг изменения температуры при долгом нажатии кнопок"
"displayText": "Шаг темп.\nдлин. наж.",
"description": "Шаг изменения температуры при длинном нажатии кнопок"
},
"LockingMode": {
"displayText": "Разрешить\nблок. кнопок",
"description": "Блокировать кнопки при их долгом нажатии в режиме пайки (Т=Только турбо | П=Полная блокировка)"
"description": "При работе длинное нажатие обеих кнопок блокирует их (О=Отключено | Т=Только турбо | П=Полная блокировка)"
},
"ProfilePhases": {
"displayText": "Этапы\nпрофиля",
"displayText": "Профиль\nЭтапы",
"description": "Количество этапов в режиме профиля"
},
"ProfilePreheatTemp": {
"displayText": "Температура\nпреднагрева",
"description": "Температура предварительного нагрева в начале режима термопрофиля"
"displayText": "Преднагрев\nТемпература",
"description": "Разогреть до этой температуры в начале режима профиля"
},
"ProfilePreheatSpeed": {
"displayText": "Скорость\nпреднагрева",
"description": "Скорость предварительного нагрева в начале режима термопрофиля (в градусах в секунду)"
"displayText": "Преднагрев\nСкорость",
"description": "Предварительный нагрев с этой скоростью (градусов в секунду)"
},
"ProfilePhase1Temp": {
"displayText": "Температура\n1-го этапа",
"description": "Необходимая температура в конце 1-го этапа"
"displayText": "Этап 1\nТемпература",
"description": "Целевая температура в конце этого эатпа"
},
"ProfilePhase1Duration": {
"displayText": "Длительность\n1-го этапа",
"description": "Необходимая длительность 1-го этапа (в секундах)"
"displayText": "Этап 1\nДлительность",
"description": "Целевая длительность этого этапа (секунды)"
},
"ProfilePhase2Temp": {
"displayText": "Температура\n2-го этапа",
"displayText": "Этап 2\nТемпература",
"description": ""
},
"ProfilePhase2Duration": {
"displayText": "Длительность\n2-го этапа",
"displayText": "Этап 2\nДлительность",
"description": ""
},
"ProfilePhase3Temp": {
"displayText": "Температура\n3-го этапа",
"displayText": "Этап 3\nТемпература",
"description": ""
},
"ProfilePhase3Duration": {
"displayText": "Длительность\n3-го этапа",
"displayText": "Этап 3\nДлительность",
"description": ""
},
"ProfilePhase4Temp": {
"displayText": "Температура\n4-го этапа",
"displayText": "Этап 4\nТемпература",
"description": ""
},
"ProfilePhase4Duration": {
"displayText": "Длительность\n4-го этапа",
"displayText": "Этап 4\nДлительность",
"description": ""
},
"ProfilePhase5Temp": {
"displayText": "Температура\n5-го этапа",
"displayText": "Этап 5\nТемпература",
"description": ""
},
"ProfilePhase5Duration": {
"displayText": "Длительность\n5-го этапа",
"displayText": "Этап 5\nДлительность",
"description": ""
},
"ProfileCooldownSpeed": {
"displayText": "Скорость\nостывания",
"description": "Скорость остывания в конце режима термопрофиля (в градусах в секунду)"
"displayText": "Остывание\nСкорость",
"description": "Остывать с такой скоростью в конце режима профиля (градусов в секунду)"
},
"MotionSensitivity": {
"displayText": "Чувствительн.\nакселерометра",
"description": "Чувствительность акселерометра (1=мин. | ... | 9=макс.)"
"description": "Чувствительность акселерометра (0=Выкл. | 1=мин. | ... | 9=макс.)"
},
"SleepTemperature": {
"displayText": "t° при\nсне",
"description": "Температура жала в режиме сна"
"displayText": "Темп.\nожидания",
"description": "Температура жала в режиме ожидания"
},
"SleepTimeout": {
"displayText": "Интервал\nсна",
"description": "Время до перехода в режим сна (секунды | минуты)"
"displayText": "Таймаут\nожидания",
"description": "Время до перехода в режим ожидания (Минуты | Секунды)"
},
"ShutdownTimeout": {
"displayText": "Интервал\nотключ-я",
"description": "Время до выключения паяльника (в минутах)"
"displayText": "Таймаут\nвыключения",
"description": "Время до выключения паяльника (минуты)"
},
"HallEffSensitivity": {
"displayText": "Датчик\nХолла",
"description": "Чувствительность датчика Холла к магнитному полю (1=мин. | ... | 9=макс.)"
},
"HallEffSleepTimeout": {
"displayText": "Интервал\nдатчика Холла",
"description": "Время между превышением датчиком Холла порогового значения и режимом сна"
"description": "Чувствительность датчика Холла к переходу в спящий режим (0=Выкл. | 1=мин. | ... | 9=макс.)"
},
"TemperatureUnit": {
"displayText": "Единицы\nизмерения",
"displayText": "Единицы\nтемпературы",
"description": "Единицы измерения температуры (C=°Цельcия | F=°Фаренгейта)"
},
"DisplayRotation": {
"displayText": "Поворот\nэкрана",
"description": "Поворот экрана (П=Правша | Л=Левша | А=Авто)"
"displayText": "Ориентация\nэкрана",
"description": "Ориентация экрана (П=Правая рука | Л=Левая рука | А=Авто)"
},
"CooldownBlink": {
"displayText": "Мигание t°\nпри остывании",
"description": "Мигать температурой на экране при остывании, пока жало ещё горячее"
"description": "Мигать температурой на экране охлаждения, пока жало еще горячее"
},
"ScrollingSpeed": {
"displayText": "Скорость\nтекста",
"description": "Скорость прокрутки текста (М=Медленная | Б=Быстрая)"
},
"ReverseButtonTempChange": {
"displayText": "Поменять\nкнопки +/-",
"displayText": "Поменять\nкнопки+-",
"description": "Поменять кнопки изменения температуры"
},
"AnimSpeed": {
"displayText": "Скорость\nанимации",
"description": "Скорость анимации иконок в главном меню (М=Медленная| С=Средняя | Б=Быстрая)"
"description": "Скорость анимации иконок в главном меню (О=Отключено | М=Медленная| С=Средняя | Б=Быстрая)"
},
"AnimLoop": {
"displayText": "Зацикленная\nанимация",
@@ -285,31 +258,31 @@
},
"Brightness": {
"displayText": "Яркость\nэкрана",
"description": "Уровень яркости пикселей на экране"
"description": "Настройки контраста/яркости OLED экрана"
},
"ColourInversion": {
"displayText": "Инверсия\nэкрана",
"description": "Инвертировать пиксели на экране"
"description": "Инвертировать цвета на OLED экране"
},
"LOGOTime": {
"displayText": "Длит-ть\nлоготипа",
"displayText": "Длительность\nпоказа логотипа",
"description": "Длительность отображения логотипа (в секундах)"
},
"AdvancedIdle": {
"displayText": "Подробный\nэкран ожидания",
"description": "Показывать дополнительную информацию на экране ожидания уменьшенным шрифтом"
"displayText": "Подробный\nреж. ожидания",
"description": "Отображать детальную информацию уменьшенным шрифтом на экране ожидания"
},
"AdvancedSoldering": {
"displayText": "Подробный\nэкран пайки",
"description": "Показывать дополнительную информацию на экране пайки уменьшенным шрифтом"
"description": "Показывать детальную информацию на экране пайки"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Включить BLE"
"description": "Активирует BLE"
},
"PowerLimit": {
"displayText": "Предел\nмощ-ти",
"description": "Максимальная мощность, которую может использовать паяльник (в ваттах)"
"displayText": "Предел\nмощности",
"description": "Максимальная мощность, которую может использовать паяльник (Ватт)"
},
"CalibrateCJC": {
"displayText": "Калибровка\nтемпературы",
@@ -320,28 +293,24 @@
"description": "Калибровка входного напряжения (долгое нажатие для выхода)"
},
"PowerPulsePower": {
"displayText": "Сила имп.\nпитания",
"description": "Сила импульса, удерживающего от автовыключения источник питания (в ваттах)"
"displayText": "Сила имп.\nпитания Вт",
"description": "Сила импульса удерживающего от сна повербанк или другой источник питания"
},
"PowerPulseWait": {
"displayText": "Пауза имп.\nпитания (К)",
"description": "Коэффициент паузы между импульсами, удерживающими от автовыключения источник питания (К x 2,5 с)"
"displayText": "Пауза имп.\nпитания с",
"description": "Пауза между импульсами удерживающими источник питания от сна (x 2,5с)"
},
"PowerPulseDuration": {
"displayText": "Длина имп.\nпитания (К)",
"description": "Коэффициент длины импульса, удерживающего от автовыключения источник питания (К x 250 мс)"
"displayText": "Длина имп.\nпитания мс",
"description": "Длина импульса удерживающего от сна источник питания (x 250мс)"
},
"SettingsReset": {
"displayText": "Сброс\nнастроек",
"description": "Сброс настроек к значениям по умолчанию"
"displayText": "Сброс\nНастроек",
"description": "Сброс настроек к значеням по умолчанию"
},
"LanguageSwitch": {
"displayText": "Язык:\n RU Русский",
"description": ""
},
"SolderingTipType": {
"displayText": "Тип\nжала",
"description": "Выбор типа установленного жала"
}
}
}

View File

@@ -3,8 +3,8 @@
"languageLocalName": "Slovenčina",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"message": "Kalibrácia\ndokončená!"
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Reset OK"
@@ -30,14 +30,11 @@
"WarningThermalRunaway": {
"message": "Únik\nTepla"
},
"WarningTipShorted": {
"message": "!Skrat hrotu!"
},
"SettingsCalibrationWarning": {
"message": "Pred reštartovaním sa uistite, že hrot a rúčka sú v izbovej teplote!"
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "kalibrovanie\n"
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Naozaj chcete obnoviť továrenské nastavenia?"
@@ -51,35 +48,44 @@
"InputVoltageString": {
"message": "Vstupné U: \n"
},
"SleepingSimpleString": {
"message": "Chrr"
},
"SleepingAdvancedString": {
"message": "Pokojový režim.\n"
},
"SleepingTipAdvancedString": {
"message": "Hrot: \n"
},
"OffString": {
"message": "Vyp"
},
"ProfilePreheatString": {
"message": "Predhrievanie\n"
"message": "Preheat\n"
},
"ProfileCooldownString": {
"message": "Schladzovanie\n"
"message": "Cooldown\n"
},
"DeviceFailedValidationWarning": {
"message": "Vaše zariadenie je pravdepodobne falzifikát!"
},
"TooHotToStartProfileWarning": {
"message": "Teplota príliš vysoká pre štart profilu"
"message": "Too hot to\nstart profile"
}
},
"characters": {
"SettingRightChar": "P",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "Z",
"SettingSlowChar": "P",
"SettingMediumChar": "S",
"SettingFastChar": "R",
"SettingStartNoneChar": "V",
"SettingStartSolderingChar": "Z",
"SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "I",
"SettingLockDisableChar": "Z",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "P"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Zdroj\nnapätia",
@@ -151,9 +128,9 @@
"displayText": "Čas vypršania\nPower Delivery",
"description": "Čas vyjednávania Power Delivery v 100ms krokoch pre kompatibilitu s niektorými QC nabíjačkami (0: vypnuté)"
},
"USBPDMode": {
"displayText": "PD\nMode",
"description": "Zapína PPS & EPR režimy"
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Boost\nteplota",
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "Automatické\nspustenie",
"description": "Pri štarte spustiť režim spájkovania (Z=Spájkovanie | S=Spanok | I=Spanok izbová teplota)"
"description": "Pri štarte spustiť režim spájkovania (V=Vyp | Z=Spájkovanie | S=Spanok | I=Spanok izbová teplota)"
},
"TempChangeShortStep": {
"displayText": "Malý krok\nteploty",
@@ -173,67 +150,67 @@
},
"LockingMode": {
"displayText": "Povoliť zámok\ntlačidiel",
"description": "Zamknutie tlačidiel - dlhé stlačenie oboch naraz počas spájkovania (B=Okrem boost | P=Plné zamknutie)"
"description": "Zamknutie tlačidiel - dlhé stlačenie oboch naraz počas spájkovania (Z=Zakázať | B=Okrem boost | P=Plné zamknutie)"
},
"ProfilePhases": {
"displayText": "Profilové\nFázy",
"description": "Počet fáz v profilovóm režime"
"displayText": "Profile\nPhases",
"description": "Number of phases in profile mode"
},
"ProfilePreheatTemp": {
"displayText": "Teplota\nPredhriatia",
"description": "Teplota na ktorú sa má predohriať na začiatku profilového režimu"
"displayText": "Preheat\nTemp",
"description": "Preheat to this temperature at the start of profile mode"
},
"ProfilePreheatSpeed": {
"displayText": "Rýchlosť\nPredhriatia",
"description": "Rýchlosť predhrievania (stupňe za sekundu)"
"displayText": "Preheat\nSpeed",
"description": "Preheat at this rate (degrees per second)"
},
"ProfilePhase1Temp": {
"displayText": "Teplota\nFáza 1",
"description": "Cieľová teplota na konci tejto fázy"
"displayText": "Phase 1\nTemp",
"description": "Target temperature for the end of this phase"
},
"ProfilePhase1Duration": {
"displayText": "Trvanie\nFáza 1",
"description": "Doba trvania tejto fázy (sekundy)"
"displayText": "Phase 1\nDuration",
"description": "Target duration of this phase (seconds)"
},
"ProfilePhase2Temp": {
"displayText": "Teplota\nFáza 2",
"displayText": "Phase 2\nTemp",
"description": ""
},
"ProfilePhase2Duration": {
"displayText": "Trvanie\nFáza 2",
"displayText": "Phase 2\nDuration",
"description": ""
},
"ProfilePhase3Temp": {
"displayText": "Teplota\nFáza 3",
"displayText": "Phase 3\nTemp",
"description": ""
},
"ProfilePhase3Duration": {
"displayText": "Trvanie\nFáza 3",
"displayText": "Phase 3\nDuration",
"description": ""
},
"ProfilePhase4Temp": {
"displayText": "Teplota\nFáza 4",
"displayText": "Phase 4\nTemp",
"description": ""
},
"ProfilePhase4Duration": {
"displayText": "Trvanie\nFáza 4",
"displayText": "Phase 4\nDuration",
"description": ""
},
"ProfilePhase5Temp": {
"displayText": "Teplota\nFáza 5",
"displayText": "Phase 5\nTemp",
"description": ""
},
"ProfilePhase5Duration": {
"displayText": "Trvanie\nFáza 5",
"displayText": "Phase 5\nDuration",
"description": ""
},
"ProfileCooldownSpeed": {
"displayText": "Rýchlosť\nochladzovania",
"description": "Rýchlosť ochladzovania na konci profilového režimu (stupne za sekundu)"
"displayText": "Cooldown\nSpeed",
"description": "Cooldown at this rate at the end of profile mode (degrees per second)"
},
"MotionSensitivity": {
"displayText": "Citlivosť\npohybu",
"description": "Citlivosť detekcie pohybu (1=Min | ... | 9=Max)"
"description": "Citlivosť detekcie pohybu (0=Vyp | 1=Min | ... | 9=Max)"
},
"SleepTemperature": {
"displayText": "Pokojová\nteplota",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "Citliv.\nHall",
"description": "Citlivosť Hallovho senzora pre detekciu spánku (1=Min | ... | 9=Max)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Interval pred spustením \"režimu spánku\" keď je hall efekt nad prahovou hodnotou"
"description": "Citlivosť Hallovho senzora pre detekciu spánku (0=Vyp | 1=Min | ... | 9=Max)"
},
"TemperatureUnit": {
"displayText": "Jednotka\nteploty",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "Rýchlosť\nanimácií",
"description": "Rýchlosť animácií ikoniek v menu (P=pomaly | S=stredne | R=rýchlo)"
"description": "Rýchlosť animácií ikoniek v menu (O=off | P=pomaly | S=stredne | R=rýchlo)"
},
"AnimLoop": {
"displayText": "Opakovanie\nanimácií",
@@ -305,15 +278,15 @@
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Zapne BLE"
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Obmedzenie\nvýkonu",
"description": "Obmedzenie výkonu podľa použitého zdroja (watt)"
},
"CalibrateCJC": {
"displayText": "Kalibrácia CJC\npri nasledujúcom štarte",
"description": "Pri nasledujúcom štarte bude kalibrovaná kompenzácia studeného spoja (nie je potrebné ak Delta T je < 5°C)"
"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)"
},
"VoltageCalibration": {
"displayText": "Kalibrácia\nnap. napätia",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Jazyk:\n SK Slovenčina",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Slovenščina",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "Thermal\nRunaway"
},
"WarningTipShorted": {
"message": "!Tip Shorted!"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
@@ -51,12 +48,18 @@
"InputVoltageString": {
"message": "Vhodna U: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Spim...\n"
},
"SleepingTipAdvancedString": {
"message": "Konica \n"
},
"OffString": {
"message": "Off"
},
"ProfilePreheatString": {
"message": "Preheat\n"
},
@@ -74,12 +77,15 @@
"SettingRightChar": "D",
"SettingLeftChar": "L",
"SettingAutoChar": "S",
"SettingOffChar": "U",
"SettingSlowChar": "P",
"SettingMediumChar": "M",
"SettingFastChar": "H",
"SettingStartNoneChar": "U",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "Z",
"SettingStartSleepOffChar": "V",
"SettingLockDisableChar": "O",
"SettingLockBoostChar": "L",
"SettingLockFullChar": "P"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Vir\nnapajanja",
@@ -151,9 +128,9 @@
"displayText": "PD\ntimeout",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"USBPDMode": {
"displayText": "PD\nMode",
"description": "No Dynamic disables EPR & PPS, Safe mode does not use padding resistance"
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Pospešena\ntemp.",
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "Samodejni\nzagon",
"description": "Samodejno gretje konice ob vklopu (S=spajkanje | Z=spanje | V=spanje na sobni temperaturi)"
"description": "Samodejno gretje konice ob vklopu (U=ugasnjeno | S=spajkanje | Z=spanje | V=spanje na sobni temperaturi)"
},
"TempChangeShortStep": {
"displayText": "Kratka sprememba\ntemperature?",
@@ -173,7 +150,7 @@
},
"LockingMode": {
"displayText": "Omogoči\nzaklep gumbov",
"description": "Za zaklep med spajkanjem drži oba gumba (L=le pospešeno | P=polno)"
"description": "Za zaklep med spajkanjem drži oba gumba (O=onemogoči | L=le pospešeno | P=polno)"
},
"ProfilePhases": {
"displayText": "Profile\nPhases",
@@ -233,7 +210,7 @@
},
"MotionSensitivity": {
"displayText": "Občutljivost\npremikanja",
"description": "1=najmanjša | ... | 9=največja"
"description": "0=izklopljeno | 1=najmanjša | ... | 9=največja"
},
"SleepTemperature": {
"displayText": "Temp. med\nspanjem",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "Občut.\nHall son",
"description": "Občutljivost Hallove sonde za zaznavanje spanja (1=najmanjša | ... | 9=največja)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Interval pred začetkom \"načina mirovanja\", ko je Hallov učinek nad pragom"
"description": "Občutljivost Hallove sonde za zaznavanje spanja (0=izklopljeno | 1=najmanjša | ... | 9=največja)"
},
"TemperatureUnit": {
"displayText": "Enota za\ntemperaturo",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "Anim.\nspeed",
"description": "Pace of icon animations in menu (P=slow | M=medium | H=fast)"
"description": "Pace of icon animations in menu (O=off | P=slow | M=medium | H=fast)"
},
"AnimLoop": {
"displayText": "Anim.\nloop",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Jezik:\n SL Slovenščina",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Српски",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "Thermal\nRunaway"
},
"WarningTipShorted": {
"message": "!Tip Shorted!"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
@@ -51,12 +48,18 @@
"InputVoltageString": {
"message": "Ул. напон: \n"
},
"SleepingSimpleString": {
"message": "Сан"
},
"SleepingAdvancedString": {
"message": "Спавање...\n"
},
"SleepingTipAdvancedString": {
"message": "Врх: \n"
},
"OffString": {
"message": "Иск"
},
"ProfilePreheatString": {
"message": "Preheat\n"
},
@@ -74,12 +77,15 @@
"SettingRightChar": "Д",
"SettingLeftChar": "Л",
"SettingAutoChar": "А",
"SettingOffChar": "O",
"SettingSlowChar": "С",
"SettingMediumChar": "M",
"SettingFastChar": "Б",
"SettingStartNoneChar": "И",
"SettingStartSolderingChar": "Л",
"SettingStartSleepChar": "С",
"SettingStartSleepOffChar": "X",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Врста\nнапајања",
@@ -151,9 +128,9 @@
"displayText": "PD\ntimeout",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"USBPDMode": {
"displayText": "PD\nMode",
"description": "No Dynamic disables EPR & PPS, Safe mode does not use padding resistance"
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Темп.\nпојачања",
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "Врући\nстарт",
"description": "Лемилица одмах по покретању прелази у режим лемљења и греје се. (Л=лемљење | С=спавати | X=спавати собна температура)"
"description": "Лемилица одмах по покретању прелази у режим лемљења и греје се. (И=искључити | Л=лемљење | С=спавати | X=спавати собна температура)"
},
"TempChangeShortStep": {
"displayText": "Temp change\nshort",
@@ -173,7 +150,7 @@
},
"LockingMode": {
"displayText": "Allow locking\nbuttons",
"description": "While soldering, hold down both buttons to toggle locking them (B=boost mode only | F=full locking)"
"description": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"ProfilePhases": {
"displayText": "Profile\nPhases",
@@ -233,7 +210,7 @@
},
"MotionSensitivity": {
"displayText": "Осетљивост\nна покрет",
"description": "Осетљивост сензора покрета. (1=најмање осетљиво | ... | 9=најосетљивије)"
"description": "Осетљивост сензора покрета. (0=искључено | 1=најмање осетљиво | ... | 9=најосетљивије)"
},
"SleepTemperature": {
"displayText": "Темп.\nспавања",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "Hall sensor\nsensitivity",
"description": "Sensitivity to magnets (1=најмање осетљиво | ... | 9=најосетљивије)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Интервал пре почетка \"режима спавања\" када је ефекат Хола изнад прага"
"description": "Sensitivity to magnets (0=искључено | 1=најмање осетљиво | ... | 9=најосетљивије)"
},
"TemperatureUnit": {
"displayText": "Јединица\nтемпературе",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "Anim.\nspeed",
"description": "Pace of icon animations in menu (С=slow | M=medium | Б=fast)"
"description": "Pace of icon animations in menu (O=off | С=slow | M=medium | Б=fast)"
},
"AnimLoop": {
"displayText": "Anim.\nloop",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Jезик:\n SR Српски",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Srpski",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "Thermal\nRunaway"
},
"WarningTipShorted": {
"message": "!Tip Shorted!"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
@@ -51,12 +48,18 @@
"InputVoltageString": {
"message": "Ul. napon: \n"
},
"SleepingSimpleString": {
"message": "Zzz"
},
"SleepingAdvancedString": {
"message": "Spavanje...\n"
},
"SleepingTipAdvancedString": {
"message": "Vrh: \n"
},
"OffString": {
"message": "Isk"
},
"ProfilePreheatString": {
"message": "Preheat\n"
},
@@ -74,12 +77,15 @@
"SettingRightChar": "D",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "B",
"SettingStartNoneChar": "I",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "X",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Vrsta\nnapajanja",
@@ -151,9 +128,9 @@
"displayText": "PD\ntimeout",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"USBPDMode": {
"displayText": "PD\nMode",
"description": "No Dynamic disables EPR & PPS, Safe mode does not use padding resistance"
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Temp.\npojačanja",
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "Vrući\nstart",
"description": "Lemilica odmah po pokretanju prelazi u režim lemljenja i greje se. (L=lemljenje | S=spavati | X=spavati sobna temperatura)"
"description": "Lemilica odmah po pokretanju prelazi u režim lemljenja i greje se. (I=isključiti | L=lemljenje | S=spavati | X=spavati sobna temperatura)"
},
"TempChangeShortStep": {
"displayText": "Temp change\nshort",
@@ -173,7 +150,7 @@
},
"LockingMode": {
"displayText": "Allow locking\nbuttons",
"description": "While soldering, hold down both buttons to toggle locking them (B=boost mode only | F=full locking)"
"description": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"ProfilePhases": {
"displayText": "Profile\nPhases",
@@ -233,7 +210,7 @@
},
"MotionSensitivity": {
"displayText": "Osetljivost\nna pokret",
"description": "Osetljivost senzora pokreta. (1=najmanje osetljivo | ... | 9=najosetljivije)"
"description": "Osetljivost senzora pokreta. (0=isključeno | 1=najmanje osetljivo | ... | 9=najosetljivije)"
},
"SleepTemperature": {
"displayText": "Temp.\nspavanja",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "Hall sensor\nsensitivity",
"description": "Sensitivity to magnets (1=najmanje osetljivo | ... | 9=najosetljivije)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
"description": "Sensitivity to magnets (0=isključeno | 1=najmanje osetljivo | ... | 9=najosetljivije)"
},
"TemperatureUnit": {
"displayText": "Jedinica\ntemperature",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "Anim.\nspeed",
"description": "Pace of icon animations in menu (S=slow | M=medium | B=fast)"
"description": "Pace of icon animations in menu (O=off | S=slow | M=medium | B=fast)"
},
"AnimLoop": {
"displayText": "Anim.\nloop",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Jezik:\n SR Srpski",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,11 +3,11 @@
"languageLocalName": "Svenska",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"message": "Kalibrering\nfärdig!"
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Återställning\nOK"
"message": "Reset OK"
},
"SettingsResetMessage": {
"message": "Inställningar\nåterställda"
@@ -28,16 +28,13 @@
"message": "!LÅST!"
},
"WarningThermalRunaway": {
"message": "Termisk\nFlykt"
},
"WarningTipShorted": {
"message": "!Spets Kortsluten!"
"message": "Thermal\nRunaway"
},
"SettingsCalibrationWarning": {
"message": "Före omstart, säkerställ att spetsen och handtaget är i rumstemperatur!"
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "kalibrerar\n"
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Är du säker på att du vill återställa inställningarna?"
@@ -51,35 +48,44 @@
"InputVoltageString": {
"message": "Inspän. V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Viloläge...\n"
},
"SleepingTipAdvancedString": {
"message": "Spets: \n"
},
"OffString": {
"message": "Av"
},
"ProfilePreheatString": {
"message": "Förvärmning\n"
"message": "Preheat\n"
},
"ProfileCooldownString": {
"message": "Nedkyldning\n"
"message": "Cooldown\n"
},
"DeviceFailedValidationWarning": {
"message": "Din enhet är sannerligen oäkta!"
"message": "Your device is most likely a counterfeit!"
},
"TooHotToStartProfileWarning": {
"message": "För varm för att\nstarta profilen!"
"message": "Too hot to\nstart profile"
}
},
"characters": {
"SettingRightChar": "H",
"SettingLeftChar": "V",
"SettingAutoChar": "A",
"SettingOffChar": "A",
"SettingSlowChar": "L",
"SettingMediumChar": "M",
"SettingFastChar": "S",
"SettingStartNoneChar": "A",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "V",
"SettingStartSleepOffChar": "R",
"SettingLockDisableChar": "A",
"SettingLockBoostChar": "T",
"SettingLockFullChar": "F"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Ström-\nkälla",
@@ -148,12 +125,12 @@
"description": "Maximal QC-spänning enheten skall efterfråga"
},
"PDNegTimeout": {
"displayText": "PD\npauser",
"description": "PD förhandlings pauser i 100ms steg för kompatibilitet med vissa PD laddare"
"displayText": "PD\ntimeout",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"USBPDMode": {
"displayText": "PD\nMode",
"description": "Slår på PPS & EPR lägen"
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Turbo-\ntemp",
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "Auto\nstart",
"description": "Startar automatiskt lödpennan vid uppstart. (L=Lödning | V=Viloläge | R=Viloläge Rumstemperatur)"
"description": "Startar automatiskt lödpennan vid uppstart. (A=Av | L=Lödning | V=Viloläge | R=Viloläge Rumstemperatur)"
},
"TempChangeShortStep": {
"displayText": "Temp.just\nkorttryck",
@@ -173,67 +150,67 @@
},
"LockingMode": {
"displayText": "Tillåt lås\nvia knappar",
"description": "Vid lödning, håll nere bägge knappar för att slå på lås (T=Bara turbo | F=Fullt lås)"
"description": "Vid lödning, håll nere bägge knappar för att slå på lås (A=Av | T=Bara turbo | F=Fullt lås)"
},
"ProfilePhases": {
"displayText": "Profil-\nfaser",
"description": "Antal faser i profil läge"
"displayText": "Profile\nPhases",
"description": "Number of phases in profile mode"
},
"ProfilePreheatTemp": {
"displayText": "Förvärmnings-\ntemp",
"description": "Förvärm till denna temperatur i början av provil läget"
"displayText": "Preheat\nTemp",
"description": "Preheat to this temperature at the start of profile mode"
},
"ProfilePreheatSpeed": {
"displayText": "Förvärmnings-\nhastighet",
"description": "Förvärm enligt denna hastighet (grader per sekund)"
"displayText": "Preheat\nSpeed",
"description": "Preheat at this rate (degrees per second)"
},
"ProfilePhase1Temp": {
"displayText": "Fas 1\nTemp",
"description": "Måltemperatur i slutet av denna fas"
"displayText": "Phase 1\nTemp",
"description": "Target temperature for the end of this phase"
},
"ProfilePhase1Duration": {
"displayText": "Fas 1\nTidslängd",
"description": "Mållängd av denna fasen (sekunder)"
"displayText": "Phase 1\nDuration",
"description": "Target duration of this phase (seconds)"
},
"ProfilePhase2Temp": {
"displayText": "Fas 2\nTemp",
"displayText": "Phase 2\nTemp",
"description": ""
},
"ProfilePhase2Duration": {
"displayText": "Fas 2\nTidslängd",
"displayText": "Phase 2\nDuration",
"description": ""
},
"ProfilePhase3Temp": {
"displayText": "Fas 3\nTemp",
"displayText": "Phase 3\nTemp",
"description": ""
},
"ProfilePhase3Duration": {
"displayText": "Fas 3\nTidslängd",
"displayText": "Phase 3\nDuration",
"description": ""
},
"ProfilePhase4Temp": {
"displayText": "Fas 4\nTemp",
"displayText": "Phase 4\nTemp",
"description": ""
},
"ProfilePhase4Duration": {
"displayText": "Fas 4\nTidslängd",
"displayText": "Phase 4\nDuration",
"description": ""
},
"ProfilePhase5Temp": {
"displayText": "Fas 5\nTemp",
"displayText": "Phase 5\nTemp",
"description": ""
},
"ProfilePhase5Duration": {
"displayText": "Fas 5\nTidslängd",
"displayText": "Phase 5\nDuration",
"description": ""
},
"ProfileCooldownSpeed": {
"displayText": "Nedkylnings-\nhastighet",
"description": "Kyl ned i denna hastighet i slutet av profilen (grader per sekund)"
"displayText": "Cooldown\nSpeed",
"description": "Cooldown at this rate at the end of profile mode (degrees per second)"
},
"MotionSensitivity": {
"displayText": "Rörelse-\nkänslighet",
"description": "Rörelsekänslighet (1=minst känslig | ... | 9=mest känslig)"
"description": "Rörelsekänslighet (0=Av | 1=minst känslig | ... | 9=mest känslig)"
},
"SleepTemperature": {
"displayText": "Vilo-\ntemp",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "Sensor-\nkänslght",
"description": "Känslighet för halleffekt-sensorn för viloläges-detektering (1=minst känslig | ... | 9=mest känslig)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
"description": "Känslighet för halleffekt-sensorn för viloläges-detektering (0=Av | 1=minst känslig | ... | 9=mest känslig)"
},
"TemperatureUnit": {
"displayText": "Temperatur-\nenheter",
@@ -277,23 +250,23 @@
},
"AnimSpeed": {
"displayText": "Anim.-\nhastighet",
"description": "Animationshastighet för ikoner i menyer (L=långsam | M=medel | S=snabb)"
"description": "Animationshastighet för ikoner i menyer (A=av | L=långsam | M=medel | S=snabb)"
},
"AnimLoop": {
"displayText": "Anim.\nloop",
"description": "Loopa animationer i huvudmeny"
},
"Brightness": {
"displayText": "Skärmens\nLjusstyrka",
"description": "Justera OLED skärmens ljusstyrka"
"displayText": "Screen\nbrightness",
"description": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"displayText": "Invertera\nskärm",
"description": "Invertera OLED skärmens färger"
"displayText": "Invert\nscreen",
"description": "Invert the OLED screen colors"
},
"LOGOTime": {
"displayText": "Start logo\nTidslängd",
"description": "Sätt uppstartslogotypens tidslängd (s=sekunder)"
"displayText": "Boot logo\nduration",
"description": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"displayText": "Detaljerad\nvid inaktiv",
@@ -305,31 +278,31 @@
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Tillåter BLE"
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Max-\neffekt",
"description": "Maximal effekt som enheten kan använda (Watt)"
},
"CalibrateCJC": {
"displayText": "Kalibrera CJC\nnästa uppstart",
"description": "Vid nästa uppstart kommer spets Cold Junction Compensation kalibreras (ej nödvändigt om Delta T är < 5°C)"
"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)"
},
"VoltageCalibration": {
"displayText": "Kalibrera\ninspänning?",
"description": "Inspänningskalibrering. Knapparna justerar, håll inne för avslut"
},
"PowerPulsePower": {
"displayText": "Effekt\npuls",
"description": "Intensiteten av effekt för håll-vaken-puls (W=watt)"
"displayText": "Power\npulse",
"description": "Intensity of power of keep-awake-pulse (W=watt)"
},
"PowerPulseWait": {
"displayText": "Effekt puls\nfördröjning",
"description": "Fördröjning innan håll-vaken-pulsen skickas (x 2.5s)"
"displayText": "Power pulse\ndelay",
"description": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Effekt puls\ntidsmängd",
"description": "Håll-vaken-puls varaktighet (x 250ms)"
"displayText": "Power pulse\nduration",
"description": "Keep-awake-pulse duration (x 250ms)"
},
"SettingsReset": {
"displayText": "Fabriks-\ninställ?",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Språk:\n SV Svenska",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,8 +3,8 @@
"languageLocalName": "Türkçe",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"message": "Kalibrasyon\ntamam!"
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
"message": "Sıfırlama Tamam"
@@ -13,31 +13,28 @@
"message": "Ayarlar\nSıfırlandı"
},
"NoAccelerometerMessage": {
"message": "İvme sensörü\ntespit edilmedi!"
"message": "No accelerometer\ndetected!"
},
"NoPowerDeliveryMessage": {
"message": "USB-PD IC\ntespit edilmedi!"
"message": "No USB-PD IC\ndetected!"
},
"LockingKeysString": {
"message": "KİLİTLİ"
"message": "LOCKED"
},
"UnlockingKeysString": {
"message": "KİLİT AÇIK"
"message": "UNLOCKED"
},
"WarningKeysLockedString": {
"message": "!KİLİTLİ!"
"message": "!LOCKED!"
},
"WarningThermalRunaway": {
"message": "Termal\nKaçak"
},
"WarningTipShorted": {
"message": "!Uç Kısa Devre!"
"message": "Thermal\nRunaway"
},
"SettingsCalibrationWarning": {
"message": "Yeniden başlatmadan önce uç ve sapın oda sıcaklığında olduğundan emin olun!"
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "kalibre ediliyor\n"
"message": "calibrating\n"
},
"SettingsResetWarning": {
"message": "Ayarları varsayılan değerlere sıfırlamak istediğinizden emin misiniz?"
@@ -51,41 +48,50 @@
"InputVoltageString": {
"message": "Giriş V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Bekleme Modu...\n"
},
"SleepingTipAdvancedString": {
"message": "Uç: \n"
},
"OffString": {
"message": "Kapalı"
},
"ProfilePreheatString": {
"message": "Ön Isıtma\n"
"message": "Preheat\n"
},
"ProfileCooldownString": {
"message": "Soğuma\n"
"message": "Cooldown\n"
},
"DeviceFailedValidationWarning": {
"message": "Cihazınız büyük olasılıkla sahte!"
"message": "Your device is most likely a counterfeit!"
},
"TooHotToStartProfileWarning": {
"message": "Profil başlatmak için\nçok sıcak"
"message": "Too hot to\nstart profile"
}
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "O",
"SettingOffChar": "K",
"SettingSlowChar": "Y",
"SettingMediumChar": "O",
"SettingFastChar": "H",
"SettingStartNoneChar": "K",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "U",
"SettingStartSleepOffChar": "S",
"SettingLockDisableChar": "K",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Güç\nAyarları",
"displayText": "Power\nsettings",
"description": ""
},
"SolderingMenu": {
@@ -105,55 +111,26 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "GÇKYN\n",
"description": "\"Güç Kaynağı\". En düşük çalışma voltajını ayarlar. (DC 10V) (S 3.3V hücre başına)"
},
"MinVolCell": {
"displayText": "Minimum\nVoltaj",
"description": "Pil hücresi başına izin verilen minimum voltaj (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
"displayText": "Minimum\nvoltage",
"description": "Minimum allowed voltage per battery cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "QC\nvoltajı",
"description": "Max istenecek QC voltajı"
"displayText": "QC\nvoltage",
"description": "Max QC voltage the iron should negotiate for"
},
"PDNegTimeout": {
"displayText": "PD\nTimeout",
"description": "Bazı QC şarj cihazlarıyla uyumluluk için 100ms adımlarında PD pazarlık zaman aşımı"
"displayText": "PD\ntimeout",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"USBPDMode": {
"displayText": "PD\nMode",
"description": "PPS & EPR modlarını etkinleştirir"
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "YKSC\n",
@@ -161,79 +138,79 @@
},
"AutoStart": {
"displayText": "OTOBAŞ\n",
"description": "Güç verildiğinde otomatik olarak lehimleme modunda başlat. (L=Lehimleme Modu | U=Uyku Modu | S=Uyku Modu Oda Sıcaklığı)"
"description": "Güç verildiğinde otomatik olarak lehimleme modunda başlat. (K=Kapalı | L=Lehimleme Modu | U=Uyku Modu | S=Uyku Modu Oda Sıcaklığı)"
},
"TempChangeShortStep": {
"displayText": "Sıcaklık değişimi\nkısa",
"displayText": "Temp change\nshort",
"description": "Kısa basışlardaki sıcaklık derecesi atlama oranı"
},
"TempChangeLongStep": {
"displayText": "Sıcaklık değişimi\nuzun",
"displayText": "Temp change\nlong",
"description": "Uzun başışlardaki sıcaklık derecesi atlama oranı"
},
"LockingMode": {
"displayText": "Kilitleme\nİzni",
"description": "Lehimleme sırasında, her iki düğmeye basılı tutarak kilitleme modunu değiştirin (B=Sadece performans modu | F=tam kilit)"
"displayText": "Allow locking\nbuttons",
"description": "While soldering, hold down both buttons to toggle locking them (K=Kapalı | B=boost mode only | F=full locking)"
},
"ProfilePhases": {
"displayText": "Profil\nAşamaları",
"description": "Profil modundaki aşamaların sayısı"
"displayText": "Profile\nPhases",
"description": "Number of phases in profile mode"
},
"ProfilePreheatTemp": {
"displayText": "Ön Isıtma\nSıcaklık",
"description": "Profil modunun başlangıcında bu sıcaklığa kadar ön ısıtma yapar"
"displayText": "Preheat\nTemp",
"description": "Preheat to this temperature at the start of profile mode"
},
"ProfilePreheatSpeed": {
"displayText": "Ön Isıtma\nHızı",
"description": "Bu hızda ön ısıtma yapın (saniye başına derece)"
"displayText": "Preheat\nSpeed",
"description": "Preheat at this rate (degrees per second)"
},
"ProfilePhase1Temp": {
"displayText": "Aşama 1\nSıcaklık",
"description": "Bu aşamanın sonunda hedeflenen sıcaklık"
"displayText": "Phase 1\nTemp",
"description": "Target temperature for the end of this phase"
},
"ProfilePhase1Duration": {
"displayText": "Aşama 1\nSüre",
"description": "Bu aşamanın hedef süresi (saniye)"
"displayText": "Phase 1\nDuration",
"description": "Target duration of this phase (seconds)"
},
"ProfilePhase2Temp": {
"displayText": "Aşama 2\nSıcaklık",
"displayText": "Phase 2\nTemp",
"description": ""
},
"ProfilePhase2Duration": {
"displayText": "Aşama 2\nSüre",
"displayText": "Phase 2\nDuration",
"description": ""
},
"ProfilePhase3Temp": {
"displayText": "Aşama 3\nSıcaklık",
"displayText": "Phase 3\nTemp",
"description": ""
},
"ProfilePhase3Duration": {
"displayText": "Aşama 3\nSüre",
"displayText": "Phase 3\nDuration",
"description": ""
},
"ProfilePhase4Temp": {
"displayText": "Aşama 4\nSıcaklık",
"displayText": "Phase 4\nTemp",
"description": ""
},
"ProfilePhase4Duration": {
"displayText": "Aşama 4\nSüre",
"displayText": "Phase 4\nDuration",
"description": ""
},
"ProfilePhase5Temp": {
"displayText": "Aşama 5\nSıcaklık",
"displayText": "Phase 5\nTemp",
"description": ""
},
"ProfilePhase5Duration": {
"displayText": "Aşama 5\nSüre",
"displayText": "Phase 5\nDuration",
"description": ""
},
"ProfileCooldownSpeed": {
"displayText": "Soğuma\nHızı",
"description": "Profil modunun sonunda bu hızda soğuma yapın (saniye başına derece)"
"displayText": "Cooldown\nSpeed",
"description": "Cooldown at this rate at the end of profile mode (degrees per second)"
},
"MotionSensitivity": {
"displayText": "HARHAS\n",
"description": "Hareket Hassasiyeti (1=En az duyarlı | ... | 9=En duyarlı)"
"description": "Hareket Hassasiyeti (0=Kapalı | 1=En az duyarlı | ... | 9=En duyarlı)"
},
"SleepTemperature": {
"displayText": "BKSC\n",
@@ -248,12 +225,8 @@
"description": "Kapatma Zaman Aşımı (Dakika)"
},
"HallEffSensitivity": {
"displayText": "Hall Sensör\nHassasiyeti",
"description": "Mıknatıslara duyarlılık (1=En az duyarlı | ... | 9=En duyarlı)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Hall etkisi eşiğin üzerinde olduğunda \"uyku modu\" başlamadan önceki aralık"
"displayText": "Hall sensor\nsensitivity",
"description": "Sensitivity to magnets (0=Kapalı | 1=En az duyarlı | ... | 9=En duyarlı)"
},
"TemperatureUnit": {
"displayText": "SCKBRM\n",
@@ -272,28 +245,28 @@
"description": "Bu yazının kayma hızı (Y=Yavaş | H=Hızlı)"
},
"ReverseButtonTempChange": {
"displayText": "Düğme Yerleri\nRotasyonu",
"displayText": "Swap\n+ - keys",
"description": "\"Düğme Yerleri Rotasyonu\" Sıcaklık ayar düğmelerinin yerini değiştirin"
},
"AnimSpeed": {
"displayText": "Animasyon\nHızı",
"description": "Menüdeki simge animasyonlarının hızı (Y=Yavaş | O=Orta | H=Hızlı)"
"displayText": "Anim.\nspeed",
"description": "Pace of icon animations in menu (K=Kapalı | Y=Yavaş | O=Orta | H=Hızlı)"
},
"AnimLoop": {
"displayText": "Animasyon\nDöngüsü",
"description": "Ana menüde simge animasyonlarının döngüsü"
"displayText": "Anim.\nloop",
"description": "Loop icon animations in main menu"
},
"Brightness": {
"displayText": "Ekran\nparlaklığı",
"description": "OLED ekran parlaklığını ayarlar"
"displayText": "Screen\nbrightness",
"description": "Adjust the OLED screen brightness"
},
"ColourInversion": {
"displayText": "Ekran\nRenkleri",
"description": "OLED ekran renklerini ters çevir"
"displayText": "Invert\nscreen",
"description": "Invert the OLED screen colors"
},
"LOGOTime": {
"displayText": "Boot Logo\nSüresi",
"description": "Boot logo süresi (s=saniye)"
"displayText": "Boot logo\nduration",
"description": "Set boot logo duration (s=seconds)"
},
"AdvancedIdle": {
"displayText": "AYRBİL\n",
@@ -305,31 +278,31 @@
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Bluetooth LE'yi etkinleştirir"
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Güç\nlimiti",
"displayText": "Power\nlimit",
"description": "Havyanın kullanacağı en yüksek güç (W=Watts)"
},
"CalibrateCJC": {
"displayText": "CJC Kalibrasyonu\nSonraki Boot'ta",
"description": "Sonraki boot'ta uç Soğuk Nokta Kompansasyonu kalibre edilecek (Delta T < 5°C ise gerekmez)"
"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)"
},
"VoltageCalibration": {
"displayText": "VOL KAL?\n",
"description": "Voltaj Girişi Kalibrasyonu. Düğmeler ayarlar, çıkmak için uzun bas."
},
"PowerPulsePower": {
"displayText": "Güç\nDarbeleri",
"displayText": "Power\npulse",
"description": "Güç girişi voltajı ölçüm yoğunluğunu sık tut."
},
"PowerPulseWait": {
"displayText": "Güç Darbesi\nGecikmesi",
"description": "Uyanık tutma darbesinin tetiklenmeden önceki gecikme süresi (x 2.5s)"
"displayText": "Power pulse\ndelay",
"description": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"displayText": "Güç Darbesi\nSüresi",
"description": "Uyanık tutma darbesi süresi (x 250ms)"
"displayText": "Power pulse\nduration",
"description": "Keep-awake-pulse duration (x 250ms)"
},
"SettingsReset": {
"displayText": "SIFIRLA?\n",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Dil:\n TR Türkçe",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Українська",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "КХС\nвідкалібровано!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "Некерований\nрозігрів"
},
"WarningTipShorted": {
"message": "!Жало закорочено!"
},
"SettingsCalibrationWarning": {
"message": "Під час наступного завантаження переконайтеся, що жало і ручка мають кімнатну температуру!"
},
@@ -51,35 +48,44 @@
"InputVoltageString": {
"message": "Жив.(B): \n"
},
"SleepingSimpleString": {
"message": "ZzZzz"
},
"SleepingAdvancedString": {
"message": "Сон...\n"
"message": "Очікування...\n"
},
"SleepingTipAdvancedString": {
"message": "Жало: \n"
},
"OffString": {
"message": "Вимк"
},
"ProfilePreheatString": {
"message": "Попередній\nрозігрів"
"message": "Preheat\n"
},
"ProfileCooldownString": {
"message": "Охолодження\n"
"message": "Cooldown\n"
},
"DeviceFailedValidationWarning": {
"message": "Вірогідно ваш пристрій підробний!"
},
"TooHotToStartProfileWarning": {
"message": "Занадто гараче для\nзміни профілів"
"message": "Too hot to\nstart profile"
}
},
"characters": {
"SettingRightChar": "П",
"SettingLeftChar": "Л",
"SettingAutoChar": "A",
"SettingOffChar": "B",
"SettingSlowChar": "Н",
"SettingMediumChar": "С",
"SettingFastChar": "М",
"SettingStartNoneChar": "В",
"SettingStartSolderingChar": "П",
"SettingStartSleepChar": "С",
"SettingStartSleepChar": "О",
"SettingStartSleepOffChar": "К",
"SettingLockDisableChar": "В",
"SettingLockBoostChar": "Т",
"SettingLockFullChar": "П"
},
@@ -93,7 +99,7 @@
"description": ""
},
"PowerSavingMenu": {
"displayText": "Режим сну\n",
"displayText": "Режим\nсну",
"description": ""
},
"UIMenu": {
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Режим\nЗамовчуванню"
},
"USBPDModeNoDynamic": {
"displayText": "Без\nДинамічного"
},
"USBPDModeSafe": {
"displayText": "Безпечний\nРежим"
},
"TipTypeAuto": {
"displayText": "Авто\nВизначення"
},
"TipTypeT12Long": {
"displayText": "TS100\nДовге"
},
"TipTypeT12Short": {
"displayText": "Pine\nКоротке"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Джерело\nживлення",
@@ -145,127 +122,123 @@
},
"QCMaxVoltage": {
"displayText": "Потужність\nдж. живлення",
"description": "Потужність ДЖ в Ватах"
"description": "Потужність джерела живлення в Ватах"
},
"PDNegTimeout": {
"displayText": "PD\nЗатримка",
"description": "Затримка у 100мс інкрементах для PD для сумісності з деякими версіями QC (0: вимкнена)"
"displayText": "PD\nзатримка",
"description": "Затримка у 100мс інкрементах для PD для сумісності з деякими QC зарядними пристроями (0: вимкнено)"
},
"USBPDMode": {
"displayText": "PD\nРежим",
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Вмикає режими PPS & EPR."
},
"BoostTemperature": {
"displayText": "Темпер.\nТурбо",
"description": "Температура \"Турбо\" режиму"
"description": "Температура в \"Турбо\" режимі"
},
"AutoStart": {
"displayText": "Гарячий\nстарт",
"description": "Режим запуску паяльника (П=Пайка | С=Сон | К=Сон при кімн. темп.)"
"description": "Режим в якому запускається паяльник при ввімкненні (В=Вимк. | П=Пайка | О=Очікування | К=Очікування при кімн. темп.)"
},
"TempChangeShortStep": {
"displayText": "Зміна темп.\nкоротким",
"description": "Зміна температуру при короткому натисканні!"
"displayText": "Зміна темп.\nкоротко?",
"description": "Змінювати температуру при короткому натисканні!"
},
"TempChangeLongStep": {
"displayText": "Зміна темп.\nдовгим",
"description": "Зміна температуру при довгому натисканні!"
"displayText": "Зміна темп.\nдовго?",
"description": "Змінювати температуру при довгому натисканні!"
},
"LockingMode": {
"displayText": "Дозволити\nблок. кнопок",
"description": "Під час пайки тривале натискання обох кнопок заблокує їх (Т=Тільки турбо | П=Повне)"
"description": "Під час пайки тривале натискання обох кнопок заблокує їх (В=Вимк | Т=Тільки турбо | П=Повне)"
},
"ProfilePhases": {
"displayText": "Етапи\nпрофілів",
"description": "Кількість етапів в режимі профілів"
"displayText": "Profile\nPhases",
"description": "Number of phases in profile mode"
},
"ProfilePreheatTemp": {
"displayText": "Температура\nПоп.Розігріву",
"description": "Попередньо розігріти до цієї температури на початку режимку профілів"
"displayText": "Preheat\nTemp",
"description": "Preheat to this temperature at the start of profile mode"
},
"ProfilePreheatSpeed": {
"displayText": "Швидкість\nПоп.Розігріву",
"description": "Розігрівати з швидкістю (t° у сек)"
"displayText": "Preheat\nSpeed",
"description": "Preheat at this rate (degrees per second)"
},
"ProfilePhase1Temp": {
"displayText": "Етап 1\nТемпература",
"description": "Температура на кінці цього етапу"
"displayText": "Phase 1\nTemp",
"description": "Target temperature for the end of this phase"
},
"ProfilePhase1Duration": {
"displayText": "Етап 1\nТривалість",
"description": "Тривалість цього етапу (сек)"
"displayText": "Phase 1\nDuration",
"description": "Target duration of this phase (seconds)"
},
"ProfilePhase2Temp": {
"displayText": "Етап 2\nТемпература",
"displayText": "Phase 2\nTemp",
"description": ""
},
"ProfilePhase2Duration": {
"displayText": "Етап 2\nТривалість",
"displayText": "Phase 2\nDuration",
"description": ""
},
"ProfilePhase3Temp": {
"displayText": "Етап 3\nТемпература",
"displayText": "Phase 3\nTemp",
"description": ""
},
"ProfilePhase3Duration": {
"displayText": "Етап 3\nТривалість",
"displayText": "Phase 3\nDuration",
"description": ""
},
"ProfilePhase4Temp": {
"displayText": "Етап 4\nТемпература",
"displayText": "Phase 4\nTemp",
"description": ""
},
"ProfilePhase4Duration": {
"displayText": "Етап 4\nТривалість",
"displayText": "Phase 4\nDuration",
"description": ""
},
"ProfilePhase5Temp": {
"displayText": "Етап 5\nТемпература",
"displayText": "Phase 5\nTemp",
"description": ""
},
"ProfilePhase5Duration": {
"displayText": "Етап 5\nТривалість",
"displayText": "Phase 5\nDuration",
"description": ""
},
"ProfileCooldownSpeed": {
"displayText": "Швидкість\nОхолодження",
"description": "Швидкість охолодження на кінці режиму профілів (t° у сек)"
"displayText": "Cooldown\nSpeed",
"description": "Cooldown at this rate at the end of profile mode (degrees per second)"
},
"MotionSensitivity": {
"displayText": "Чутливість\nдатчику руху",
"description": "Акселерометр (1=мін. чутливості | ... | 9=макс. чутливість)"
"displayText": "Чутливість\nсенсору руху",
"description": "Акселерометр (0=Вимк. | 1=мін. чутливості | ... | 9=макс. чутливості)"
},
"SleepTemperature": {
"displayText": "Темпер.\nсну",
"description": "Температура режиму сну (C° | F°)"
"description": "Температура режиму очікування (C° | F°)"
},
"SleepTimeout": {
"displayText": "Тайм-аут\nсну",
"description": "Час до переходу до сну (Хв | Сек)"
"description": "Час до переходу в режим очікування (Хвилини | Секунди)"
},
"ShutdownTimeout": {
"displayText": "Часу до\nвимкнення",
"description": "Час до вимкнення (Хв)"
"description": "Час до вимкнення (Хвилини)"
},
"HallEffSensitivity": {
"displayText": "Чутливість\nДатчику Холла",
"description": "Чутливість датчика Холла при виявленні сну (1=мін. чутливість | ... | 9=макс. чутливість)"
},
"HallEffSleepTimeout": {
"displayText": "Датчик Холла\nЧас сну",
"description": "Проміжок часу до \"часу сну\" за умови спрацювання датчику Холла"
"displayText": "Чутливість\nЕфекту Холла",
"description": "Чутливість датчика ефекту Холла при виявленні сну (0=Вимк. | 1=мін. чутливості | ... | 9=макс. чутливості)"
},
"TemperatureUnit": {
"displayText": "Формат темпе-\nратури(C°/F°)",
"description": "Одиниця виміру температури (C=Цельсій | F=Фаренгейт)"
},
"DisplayRotation": {
"displayText": "Обертання\nекрану",
"description": "Орієнтація екрану (П=Правша | Л=Лівша | A=Автооберт.)"
"displayText": "Автоповорот\nекрану",
"description": "Орієнтація дисплея (П=Правша | Л=Лівша | A=Автоповорот)"
},
"CooldownBlink": {
"displayText": "Показ t° при\nохолодженні",
"description": "Показувати температуру на екрані охолодження, поки жало залишається гарячим, при цьому екран мерехтить"
"description": "Показувати температуру на екрані охолодження, поки жало залишається гарячим, при цьому екран моргає"
},
"ScrollingSpeed": {
"displayText": "Швидкість\nтексту",
@@ -277,11 +250,11 @@
},
"AnimSpeed": {
"displayText": "Швидкість\nанімації",
"description": "Швидкість анімації іконок у меню (Н=Низькa | С=Середня | М=Максимальна)"
"description": "Швидкість анімації іконок у головному меню (В=Вимк | Н=Низькa | С=Середня | М=Максимальна)"
},
"AnimLoop": {
"displayText": "Циклічна\nанімація",
"description": "Циклічна анімація іконок у меню"
"description": "Циклічна анімація іконок в головному меню"
},
"Brightness": {
"displayText": "Яскравість\nекрану",
@@ -292,8 +265,8 @@
"description": "Інвертувати кольори на OLED екрані"
},
"LOGOTime": {
"displayText": "Тривалість\nлоготипу при запуску",
"description": "Поточна тривалість показу лого при запуску (сек)"
"displayText": "Тривалість\nлоготипу завантаження",
"description": "Встановити тривалість показу лого при завантаженні (с=секунд)"
},
"AdvancedIdle": {
"displayText": "Детальний ре-\nжим очікуван.",
@@ -305,15 +278,15 @@
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Увімкнути BLE"
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "Макс.\nпотуж.",
"description": "Макс. потужність, яку може використовувати паяльник (Ватт)"
"description": "Макс. потужність, яку може використовувати паяльник (Ват)"
},
"CalibrateCJC": {
"displayText": "Калібрувати КХС\nпри наступному запуску",
"description": "При наступному запуску буде відкалібровано Компенсацію Холодного Спаю жала (непотрібне при різниці температур < 5°C)"
"displayText": "Калібрувати КХС\nпри наступному завантаженні",
"description": "При наступному завантаження буде відкалібровано Компенсацію Холодного Спаю жала (непотрібне при різниці температур < 5°C)"
},
"VoltageCalibration": {
"displayText": "Калібрування\nнапруги",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "Мова:\n UK Українська",
"description": ""
},
"SolderingTipType": {
"displayText": "Тип Жала",
"description": "Оберіть відповідний тип жала"
}
}
}

View File

@@ -1,347 +0,0 @@
{
"languageCode": "UZ",
"languageLocalName": "O'zbek",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"message": "Kalibrovka\nyakunlandi!"
},
"ResetOKMessage": {
"message": "Sozlamalar\ntiklandi"
},
"SettingsResetMessage": {
"message": "Ayrim sozlamalar\no'zgartirildi"
},
"NoAccelerometerMessage": {
"message": "Akselerometr\ntopilmadi!"
},
"NoPowerDeliveryMessage": {
"message": "USB-PD IC\ntopilmadi!"
},
"LockingKeysString": {
"message": "QULFLANDI"
},
"UnlockingKeysString": {
"message": "QULF OCHILDI"
},
"WarningKeysLockedString": {
"message": "!QULFLANGAN!"
},
"WarningThermalRunaway": {
"message": "Issiqlik\nqochishi"
},
"WarningTipShorted": {
"message": "!Uchida qisqa tutashuv!"
},
"SettingsCalibrationWarning": {
"message": "Qayta yuklashdan oldin, uchi va tutqich xona haroratida ekanligiga ishonch hosil qiling!"
},
"CJCCalibrating": {
"message": "Kalibrovka\nqilinmoqda"
},
"SettingsResetWarning": {
"message": "Sozlamalarni standart holatga qaytarishni istaysizmi?"
},
"UVLOWarningString": {
"message": "DC PAST"
},
"UndervoltageString": {
"message": "Past kuchlanish\n"
},
"InputVoltageString": {
"message": "Kirish kuchlanishi: \n"
},
"SleepingAdvancedString": {
"message": "Uyqu holati...\n"
},
"SleepingTipAdvancedString": {
"message": "Uch: \n"
},
"ProfilePreheatString": {
"message": "Qizdirish\n"
},
"ProfileCooldownString": {
"message": "Sovutish\n"
},
"DeviceFailedValidationWarning": {
"message": "Qurilmangiz soxta bo'lishi mumkin!"
},
"TooHotToStartProfileWarning": {
"message": "Profilni boshlash uchun\njuda issiq"
}
},
"characters": {
"SettingRightChar": "O",
"SettingLeftChar": "C",
"SettingAutoChar": "A",
"SettingSlowChar": "S",
"SettingMediumChar": "O",
"SettingFastChar": "T",
"SettingStartSolderingChar": "P",
"SettingStartSleepChar": "U",
"SettingStartSleepOffChar": "X",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "T"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Quvvat\nsozlamalari",
"description": ""
},
"SolderingMenu": {
"displayText": "Paylash\nsozlamalari",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Uyqu\nrejimi",
"description": ""
},
"UIMenu": {
"displayText": "Foydalanuvchi\ninterfeysi",
"description": ""
},
"AdvancedMenu": {
"displayText": "Kengaytirilgan\nsozlamalar",
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Quvvat\nmanbai",
"description": "Batareya haddan tashqari zaryadsizlanishini oldini olish uchun kuchlanish chegarasini o'rnatish (DC 10V) (S=3.3V har bir yacheyka uchun, quvvat PWR chegarasini o'chirish)"
},
"MinVolCell": {
"displayText": "Minimal\nkuchlanish",
"description": "Batareya yacheyka uchun minimal ruxsat etilgan kuchlanish (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "QC\nvoltage",
"description": "Max QC voltage the iron should negotiate for"
},
"PDNegTimeout": {
"displayText": "PD\ntimeout",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"USBPDMode": {
"displayText": "PD\nMode",
"description": "No Dynamic disables EPR & PPS, Safe mode does not use padding resistance"
},
"BoostTemperature": {
"displayText": "Kuchaytirish\nharorati",
"description": "\"Boost mode\" rejimida uch harorati"
},
"AutoStart": {
"displayText": "Boshlash\nholati",
"description": "P=paylash temperaturasigacha qizdirish | U=qo'zg'atilmagunicha uyqu rejimida ushlash | X=qo'zg'atilmagunicha qizdirilmagan holda ushlash"
},
"TempChangeShortStep": {
"displayText": "Tugmaning qisqa\nbosilishi",
"description": "Qisqa bosilgandagi harorat o'zgarishi-oshirish"
},
"TempChangeLongStep": {
"displayText": "Tugmaning uzoqroq\nbosilishi",
"description": "Uzoqroq bosilgandagi harorat o'zgarishi-oshirish"
},
"LockingMode": {
"displayText": "Tugmalarni qulflashni\nfaollashtirish",
"description": "Qulflash uchun paylash davomida ikkala tugmani bosib turing (B=faqat boost mode uchun | T=to'liq qulflash)"
},
"ProfilePhases": {
"displayText": "Profil\nbosqichlari",
"description": "Profil rejimlarida bosqichlar soni"
},
"ProfilePreheatTemp": {
"displayText": "Dastlabgi\nHarorat",
"description": "Profil rejimida dastlab ushbu haroratga qizdirish"
},
"ProfilePreheatSpeed": {
"displayText": "Qizdirish\nTezligi",
"description": "Ushbu tezlikda qizdirish (1 sekundda shuncha daraja)"
},
"ProfilePhase1Temp": {
"displayText": "1-faza\nHarorati",
"description": "Bu fazaning oxirida mo'ljallangan harorat"
},
"ProfilePhase1Duration": {
"displayText": "1-faza\nDavomiyligi",
"description": "Ushbu fazaning davomiyligi (sekund)"
},
"ProfilePhase2Temp": {
"displayText": "2-faza\nHarorati",
"description": ""
},
"ProfilePhase2Duration": {
"displayText": "2-faza\nDavomiyligi",
"description": ""
},
"ProfilePhase3Temp": {
"displayText": "3-faza\nHarorati",
"description": ""
},
"ProfilePhase3Duration": {
"displayText": "3-faza\nDavomiyligi",
"description": ""
},
"ProfilePhase4Temp": {
"displayText": "4-faza\nHarorati",
"description": ""
},
"ProfilePhase4Duration": {
"displayText": "4-faza\nDavomiyligi",
"description": ""
},
"ProfilePhase5Temp": {
"displayText": "5-faza\nHarorati",
"description": ""
},
"ProfilePhase5Duration": {
"displayText": "5-faza\nDavomiyligi",
"description": ""
},
"ProfileCooldownSpeed": {
"displayText": "Sovutish\ntezligi",
"description": "Profil rejimi oxirida bu tezlikda sovutish (1 sekundda shuncha daraja)"
},
"MotionSensitivity": {
"displayText": "Harakat\nsezgirligi",
"description": "1=quyi sezgirlik | ... | 9=eng yuqori sezgirlik"
},
"SleepTemperature": {
"displayText": "Uyqu\nharorati",
"description": "\"Uyqu holati\"dagi uch harorati"
},
"SleepTimeout": {
"displayText": "Uyquga ketish\nvaqti",
"description": "\"Uyqu holati\" boshlanishidan oldingi interval sleep mode (s=sekund | m=minut)"
},
"ShutdownTimeout": {
"displayText": "O'chish\nvaqti",
"description": "Temirni o'chirishdan oldingi interval (m=minut)"
},
"HallEffSensitivity": {
"displayText": "Hall sensori\nsezgirligi",
"description": "Magnitlarga nisbatan sezgirlik darajasi (1=quyi sezgirlik | ... | 9=eng yuqori sezgirlik)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": {
"displayText": "Harorat o'lchov\nbirligi",
"description": "C=°Selsiy | F=°Fahrenheit"
},
"DisplayRotation": {
"displayText": "Ekran\nyo'nalishi",
"description": "O=o'ng qo'l | C=chap qo'l | A=avtomatik"
},
"CooldownBlink": {
"displayText": "Sovutish\nindikatori",
"description": "Uchi qizigan bo'sh turgan holatida harorat o'lchovini yangilab turish"
},
"ScrollingSpeed": {
"displayText": "Matn aylanish\ntezligi",
"description": "Matn aylanish tezligini sozlash (S=sekin | T=tez)"
},
"ReverseButtonTempChange": {
"displayText": "(+) va (-) tugmalarni\nalmashtirish",
"description": "Harorat o'zgarishi uchun tugmachalarni vazifasini almashish"
},
"AnimSpeed": {
"displayText": "Anim.\ntezligi",
"description": "Menyudagi ikonka animatsiyalari tezligini sozlash (S=sekin | O=o'rtacha | T=tez)"
},
"AnimLoop": {
"displayText": "Anim.\nqaytarilishi",
"description": "Bosh menyudagi ikonka anim. qaytarilishi"
},
"Brightness": {
"displayText": "Ekran\nyorqinligi",
"description": "OLED ekran yorqinligini sozlash"
},
"ColourInversion": {
"displayText": "Ranglarni\ninvert qilish",
"description": "OLED ekran ranglarini teskari qilish"
},
"LOGOTime": {
"displayText": "Yuklanish logosi\ndavomiyligi",
"description": "Yuklanish logosi davomiyligini o'rnatish (s=sekund)"
},
"AdvancedIdle": {
"displayText": "Batafsil\nbo'sh turgandagi ekran",
"description": "B'sh turgandagi ekranda kichik shriftda batafsil malumotni ko'rsatish"
},
"AdvancedSoldering": {
"displayText": "Batafsil\npayvandlash ekrani",
"description": "Payvandlash ekrani uchun kichik shrift bilan batafsil malumotni ko'rsatish"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Faollashtirish BLE"
},
"PowerLimit": {
"displayText": "Quvvat\nchegarasi",
"description": "Temir foydalanishi mumkin bo'lgan o'rtacha maksimal quvvat (W=watt)"
},
"CalibrateCJC": {
"displayText": "Keyingi yuklashda\nCJC kalibrovkasi",
"description": "Keyingi yuklashda Sovuq Tugun Kompensatsiyasini (CJC) kalibrlash (Delta T < 5°C bo'lsa, talab qilinmaydi)"
},
"VoltageCalibration": {
"displayText": "Kirish kuchlanishini\nkalibrlash",
"description": "VIN kalibrovkasini boshlash (chiqish uchun uzoq bosib turing)"
},
"PowerPulsePower": {
"displayText": "Quvvat\npulsi",
"description": "Uxlashdan saqlash pulsining quvvat intensivligi (W=watt)"
},
"PowerPulseWait": {
"displayText": "Quvvat pulsi\nkechikishi",
"description": "Uxlashdan saqlash pulsi boshlanishigacha bo'lgan kechikish (x 2.5 soniya)"
},
"PowerPulseDuration": {
"displayText": "Quvvat pulsi\ndavomiyligi",
"description": "Uxlashdan saqlash pulsi davomiyligi (x 250ms)"
},
"SettingsReset": {
"displayText": "Sozlamalarni\nqayta tiklash",
"description": "Barcha sozlamalarni odatiy holatga qaytarish"
},
"LanguageSwitch": {
"displayText": "Til:\n UZ O'zbek tili",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Tieng Viet",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "Calibration\ndone!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "Nhiet\nTat gia nhiet"
},
"WarningTipShorted": {
"message": "!Tip Shorted!"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
@@ -51,12 +48,18 @@
"InputVoltageString": {
"message": "Đau vào V: \n"
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Đang ngu...\n"
},
"SleepingTipAdvancedString": {
"message": "Meo: \n"
},
"OffString": {
"message": "Tat"
},
"ProfilePreheatString": {
"message": "Preheat\n"
},
@@ -74,12 +77,15 @@
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "O",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "Z",
"SettingStartSleepOffChar": "R",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Nguon\nđien",
@@ -151,9 +128,9 @@
"displayText": "PD\nsau",
"description": "Thoi gian cho đàm phán PD trong các buoc 100ms đe tuong thích voi mot so bo sac QC"
},
"USBPDMode": {
"displayText": "PD\nMode",
"description": "No Dynamic disables EPR & PPS, Safe mode does not use padding resistance"
"PDVpdo": {
"displayText": "PD\nVPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "Tăng\nnhiet đo",
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "Nhiet đo\nđang tăng",
"description": "S=nhiet đo hàn | Z=cho o nhiet đo ngu đen khi cu đong | R=cho mà không gia nhiet đen khi cu đong"
"description": "- O=tat | S=nhiet đo hàn | Z=cho o nhiet đo ngu đen khi cu đong | R=cho mà không gia nhiet đen khi cu đong"
},
"TempChangeShortStep": {
"displayText": "Thay đoi n.đo\nan nút nhanh",
@@ -173,7 +150,7 @@
},
"LockingMode": {
"displayText": "Cho phép khóa\ncác nút",
"description": "Trong khi hàn, giu ca 2 nút đe khóa (B=chi che đo tăng cuong | F=khóa hoàn toàn)"
"description": "Trong khi hàn, giu ca 2 nút đe khóa(D=tat | B=chi che đo tăng cuong | F=khóa hoàn toàn)"
},
"ProfilePhases": {
"displayText": "Profile\nPhases",
@@ -233,7 +210,7 @@
},
"MotionSensitivity": {
"displayText": "Cam bien\ncu đong",
"description": "1=đo nhay thap nhat| ... | 9=đo nhay cao nhat"
"description": "- 0=tat | 1=đo nhay thap nhat| ... | 9=đo nhay cao nhat"
},
"SleepTemperature": {
"displayText": "Nhiet đo\nkhi ngu",
@@ -241,19 +218,15 @@
},
"SleepTimeout": {
"displayText": "Ngu\nsau",
"description": "thoi gian truoc khi \"Che đo ngu\" bat đau (s=giây | m=phút)"
"description": "- thoi gian truoc khi \"Che đo ngu\" bat đau (s=giây | m=phút)"
},
"ShutdownTimeout": {
"displayText": "Tat\nsau",
"description": "khoang thoi gian truoc khi tay hàn tat (m=phút)"
"description": "- khoang thoi gian truoc khi tay hàn tat (m=phút)"
},
"HallEffSensitivity": {
"displayText": "Hall\nđo nhay",
"description": "Đo nhay cam bien Hall đe phát hien che đo ngu (1=ít nhay nhat |...| 9=nhay nhat)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
"description": "Đo nhay cam bien Hall đe phát hien che đo ngu (0=tat | 1=ít nhay nhat |...| 9=nhay nhat)"
},
"TemperatureUnit": {
"displayText": "Đon vi\nnhiet đo",
@@ -261,11 +234,11 @@
},
"DisplayRotation": {
"displayText": "Huong\nhien thi",
"description": "R=huong tay phai | L=huong tay trái | A=tu đong"
"description": "- R=huong tay phai | L=huong tay trái | A=tu đong"
},
"CooldownBlink": {
"displayText": "Nguoi đi\nchop mat",
"description": "Nhap nháy nhiet đo sau khi viec gia nhiet tam dung trong khi mui hàn van nóng"
"description": "-Nhap nháy nhiet đo sau khi viec gia nhiet tam dung trong khi mui hàn van nóng"
},
"ScrollingSpeed": {
"displayText": "Toc đo\ncuon",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "Toc đo\nhoat anh",
"description": "Toc đo cua hoat anh menu (S=cham | M=trung bình | F=nhanh)"
"description": "-Toc đo cua hoat anh menu (O=tat | S=cham | M=trung bình | F=nhanh)"
},
"AnimLoop": {
"displayText": "Hoat anh\nlap lai",
@@ -285,11 +258,11 @@
},
"Brightness": {
"displayText": "Đo tuong phan\nmàn hình",
"description": "Đieu chinh đo sáng màn hình OLED"
"description": "-Đieu chinh đo sáng màn hình OLED"
},
"ColourInversion": {
"displayText": "Đao nguoc màu\nmàn hình",
"description": "Đao nguoc màu màn hình OLED"
"description": "-Đao nguoc màu màn hình OLED"
},
"LOGOTime": {
"displayText": "Boot logo\nduration",
@@ -297,11 +270,11 @@
},
"AdvancedIdle": {
"displayText": "Chi tiet\nmàn hình cho",
"description": "hien thi thông tin chi tiet bang phông chu nho hon trên màn hình cho"
"description": "- hien thi thông tin chi tiet bang phông chu nho hon trên màn hình cho"
},
"AdvancedSoldering": {
"displayText": "Chi tiet\nmàn hình hàn",
"description": "Hien thi thông tin bang phông chu nho hon trên màn hình hàn"
"description": "-Hien thi thông tin bang phông chu nho hon trên màn hình hàn"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
@@ -309,19 +282,19 @@
},
"PowerLimit": {
"displayText": "Công suat\ngioi han",
"description": "Công suat toi đa mà tay hàn có the su dung (W=watt)"
"description": "-Công suat toi đa mà tay hàn có the su dung (W=watt)"
},
"CalibrateCJC": {
"displayText": "Calibrate CJC\nat next boot",
"description": "Calbrate Cold Junction Compensation at next boot (not required if Delta T is < 5°C)"
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)"
},
"VoltageCalibration": {
"displayText": "Hieu chinh\nđien áp đau vào?",
"description": "bat đau hieu chuan VIN (nhan và giu đe thoát)"
"description": "-bat đau hieu chuan VIN (nhan và giu đe thoát)"
},
"PowerPulsePower": {
"displayText": "Công suat\nkích nguon",
"description": "Cuong đo công suat kích nguon (watt)"
"description": "-Cuong đo công suat kích nguon (watt)"
},
"PowerPulseWait": {
"displayText": "Trì hoãn\nđien áp kích",
@@ -329,19 +302,15 @@
},
"PowerPulseDuration": {
"displayText": "Thoi luong\nkích nguon",
"description": "thoi luong kích nguon (x 250ms)"
"description": "-thoi luong kích nguon (x 250ms)"
},
"SettingsReset": {
"displayText": "Khôi phuc\ncài đat goc?",
"description": "đat lai tat ca cài đat ve mac đinh"
"description": "-đat lai tat ca cài đat ve mac đinh"
},
"LanguageSwitch": {
"displayText": "Ngôn ngu:\n VI Tieng Viet",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,7 +3,7 @@
"languageLocalName": "廣東話 (香港)",
"tempUnitFahrenheit": true,
"messagesWarn": {
"CalibrationDone": {
"CJCCalibrationDone": {
"message": "Calibration done!"
},
"ResetOKMessage": {
@@ -30,9 +30,6 @@
"WarningThermalRunaway": {
"message": "加熱失控"
},
"WarningTipShorted": {
"message": "!Tip Shorted!"
},
"SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
@@ -51,12 +48,18 @@
"InputVoltageString": {
"message": "Input V: "
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Sleeping..."
},
"SleepingTipAdvancedString": {
"message": "Tip: "
},
"OffString": {
"message": "關"
},
"ProfilePreheatString": {
"message": "Preheat"
},
@@ -74,12 +77,15 @@
"SettingRightChar": "右",
"SettingLeftChar": "左",
"SettingAutoChar": "自",
"SettingOffChar": "關",
"SettingSlowChar": "慢",
"SettingMediumChar": "中",
"SettingFastChar": "快",
"SettingStartNoneChar": "無",
"SettingStartSolderingChar": "焊",
"SettingStartSleepChar": "待",
"SettingStartSleepOffChar": "室",
"SettingLockDisableChar": "無",
"SettingLockBoostChar": "增",
"SettingLockFullChar": "全"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "電源",
@@ -151,9 +128,9 @@
"displayText": "PD逾時",
"description": "設定USB PD協定交涉嘅逾時時限為兼容某啲QC電源而設 <x100ms亳秒>"
},
"USBPDMode": {
"PDVpdo": {
"displayText": "PD VPDO",
"description": "No Dynamic disables EPR & PPS, Safe mode does not use padding resistance"
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "增熱温度",
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "自動啓用",
"description": "開機時自動啓用 <焊=焊接模式 | 待=待機模式 | 室=室温待機>"
"description": "開機時自動啓用 <無=停用 | 焊=焊接模式 | 待=待機模式 | 室=室温待機>"
},
"TempChangeShortStep": {
"displayText": "温度調整 短",
@@ -173,7 +150,7 @@
},
"LockingMode": {
"displayText": "撳掣鎖定",
"description": "喺焊接模式時,同時長撳兩粒掣啓用撳掣鎖定 <增=淨係容許增熱模式 | 全=鎖定全部>"
"description": "喺焊接模式時,同時長撳兩粒掣啓用撳掣鎖定 <無=停用 | 增=淨係容許增熱模式 | 全=鎖定全部>"
},
"ProfilePhases": {
"displayText": "Profile Phases",
@@ -233,7 +210,7 @@
},
"MotionSensitivity": {
"displayText": "動作敏感度",
"description": "1=最低敏感度 | ... | 9=最高敏感度"
"description": "0=停用 | 1=最低敏感度 | ... | 9=最高敏感度"
},
"SleepTemperature": {
"displayText": "待機温度",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "磁場敏感度",
"description": "磁場感應器用嚟啓動待機模式嘅敏感度 <1=最低敏感度 | ... | 9=最高敏感度>"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
"description": "磁場感應器用嚟啓動待機模式嘅敏感度 <0=停用 | 1=最低敏感度 | ... | 9=最高敏感度>"
},
"TemperatureUnit": {
"displayText": "温度單位",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "動畫速度",
"description": "功能表圖示動畫嘅速度 <慢=慢速 | 中=中速 | 快=快速>"
"description": "功能表圖示動畫嘅速度 <關=不顯示動畫 | 慢=慢速 | 中=中速 | 快=快速>"
},
"AnimLoop": {
"displayText": "動畫循環",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "語言: 廣東話",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -3,8 +3,8 @@
"languageLocalName": "简体中文",
"tempUnitFahrenheit": true,
"messagesWarn": {
"CalibrationDone": {
"message": "校正完成!"
"CJCCalibrationDone": {
"message": "Calibration done!"
},
"ResetOKMessage": {
"message": "已重置!"
@@ -30,14 +30,11 @@
"WarningThermalRunaway": {
"message": "加热失控"
},
"WarningTipShorted": {
"message": "!烙铁头短路!"
},
"SettingsCalibrationWarning": {
"message": "在重启前请确认烙铁头及本体已完全冷却!"
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "校正中"
"message": "calibrating"
},
"SettingsResetWarning": {
"message": "你是否确定要将全部设定重置为默认值?"
@@ -46,10 +43,13 @@
"message": "电压过低"
},
"UndervoltageString": {
"message": "欠压"
"message": "Undervoltage"
},
"InputVoltageString": {
"message": "VIN: \n"
"message": "VIN: "
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Zzzz..."
@@ -57,29 +57,35 @@
"SleepingTipAdvancedString": {
"message": "<--- "
},
"OffString": {
"message": "关"
},
"ProfilePreheatString": {
"message": "预热中"
"message": "Preheat"
},
"ProfileCooldownString": {
"message": "冷却"
"message": "Cooldown"
},
"DeviceFailedValidationWarning": {
"message": "这支电烙铁很有可能是冒牌货!"
},
"TooHotToStartProfileWarning": {
"message": "设备过热"
"message": "Too hot to start profile"
}
},
"characters": {
"SettingRightChar": "右",
"SettingLeftChar": "左",
"SettingAutoChar": "自",
"SettingOffChar": "关",
"SettingSlowChar": "慢",
"SettingMediumChar": "中",
"SettingFastChar": "快",
"SettingStartNoneChar": "无",
"SettingStartSolderingChar": "焊",
"SettingStartSleepChar": "待",
"SettingStartSleepOffChar": "室",
"SettingLockDisableChar": "无",
"SettingLockBoostChar": "增",
"SettingLockFullChar": "全"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "默认模式"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "安全模式"
},
"TipTypeAuto": {
"displayText": "自动检测"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "下限电压",
@@ -151,9 +128,9 @@
"displayText": "PD超时",
"description": "设定USB-PD协议交涉的超时时限为兼容某些QC电源而设 <x100ms亳秒>"
},
"USBPDMode": {
"displayText": "PD\nVPDO",
"description": "启用PPS和EPR快充支持"
"PDVpdo": {
"displayText": "PD VPDO",
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "增热温度",
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "自动启动",
"description": "开机时自动启动 <焊=焊接模式 | 待=待机模式 | 室=室温待机>"
"description": "开机时自动启动 <无=禁用 | 焊=焊接模式 | 待=待机模式 | 室=室温待机>"
},
"TempChangeShortStep": {
"displayText": "短按温度调整",
@@ -173,67 +150,67 @@
},
"LockingMode": {
"displayText": "按键锁定",
"description": "焊接模式时,同时长按两个按键启用按键锁定 <增=只容许增热模式 | 全=完全锁定>"
"description": "焊接模式时,同时长按两个按键启用按键锁定 <无=禁用 | 增=只容许增热模式 | 全=完全锁定>"
},
"ProfilePhases": {
"displayText": "配置阶数",
"description": "配置模式下的阶段数量"
"displayText": "Profile Phases",
"description": "Number of phases in profile mode"
},
"ProfilePreheatTemp": {
"displayText": "预热温度",
"description": "配置开始时的目标温度"
"displayText": "Preheat Temp",
"description": "Preheat to this temperature at the start of profile mode"
},
"ProfilePreheatSpeed": {
"displayText": "预热速度",
"description": "将以此速度进行预热 (度/秒)"
"displayText": "Preheat Speed",
"description": "Preheat at this rate (degrees per second)"
},
"ProfilePhase1Temp": {
"displayText": "阶段1温度",
"description": "此阶段结束时的目标温度"
"displayText": "Phase 1 Temp",
"description": "Target temperature for the end of this phase"
},
"ProfilePhase1Duration": {
"displayText": "阶段1时间",
"description": "此阶段的目标持续时间(秒)"
"displayText": "Phase 1 Duration",
"description": "Target duration of this phase (seconds)"
},
"ProfilePhase2Temp": {
"displayText": "阶段2温度",
"description": "此阶段结束时的目标温度"
"displayText": "Phase 2 Temp",
"description": ""
},
"ProfilePhase2Duration": {
"displayText": "阶段2时间",
"description": "此阶段的目标持续时间(秒)"
"displayText": "Phase 2 Duration",
"description": ""
},
"ProfilePhase3Temp": {
"displayText": "阶段3温度",
"description": "此阶段结束时的目标温度"
"displayText": "Phase 3 Temp",
"description": ""
},
"ProfilePhase3Duration": {
"displayText": "阶段3时间",
"description": "此阶段的目标持续时间(秒)"
"displayText": "Phase 3 Duration",
"description": ""
},
"ProfilePhase4Temp": {
"displayText": "阶段4温度",
"description": "此阶段结束时的目标温度"
"displayText": "Phase 4 Temp",
"description": ""
},
"ProfilePhase4Duration": {
"displayText": "阶段4时间",
"description": "此阶段的目标持续时间(秒)"
"displayText": "Phase 4 Duration",
"description": ""
},
"ProfilePhase5Temp": {
"displayText": "阶段5温度",
"description": "此阶段结束时的目标温度"
"displayText": "Phase 5 Temp",
"description": ""
},
"ProfilePhase5Duration": {
"displayText": "阶段5时间",
"description": "此阶段的目标持续时间(秒)"
"displayText": "Phase 5 Duration",
"description": ""
},
"ProfileCooldownSpeed": {
"displayText": "冷却速度",
"description": "在配置模式结束时以此速度进行冷却(度/秒)"
"displayText": "Cooldown Speed",
"description": "Cooldown at this rate at the end of profile mode (degrees per second)"
},
"MotionSensitivity": {
"displayText": "动作灵敏度",
"description": "1=最低灵敏度 | ... | 9=最高灵敏度"
"description": "0=禁用 | 1=最低灵敏度 | ... | 9=最高灵敏度"
},
"SleepTemperature": {
"displayText": "待机温度",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "磁场灵敏度",
"description": "霍尔效应传感器用作启动待机模式的灵敏度 <1=最低灵敏度 | ... | 9=最高灵敏度>"
},
"HallEffSleepTimeout": {
"displayText": "霍尔传感器休眠时间",
"description": "当霍尔传感器检测值高于阈值时,进入“睡眠模式”前的间隔时间"
"description": "霍尔效应传感器用作启动待机模式的灵敏度 <0=禁用 | 1=最低灵敏度 | ... | 9=最高灵敏度>"
},
"TemperatureUnit": {
"displayText": "温度单位",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "动画速度",
"description": "主菜单中功能图标动画的播放速度 <慢=慢速 | 中=中速 | 快=快速>"
"description": "主菜单中功能图标动画的播放速度 <关=不显示动画 | 慢=慢速 | 中=中速 | 快=快速>"
},
"AnimLoop": {
"displayText": "动画循环",
@@ -304,8 +277,8 @@
"description": "焊接模式画面以英语小字体显示详请"
},
"BluetoothLE": {
"displayText": "蓝牙",
"description": "启用蓝牙支持"
"displayText": "Bluetooth",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "功率限制",
@@ -313,10 +286,10 @@
},
"CalibrateCJC": {
"displayText": "校正CJC",
"description": "在下次重启时校正烙铁头热电偶冷接点补偿值CJC温差小于5摄氏度时无需校正"
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5 C)"
},
"VoltageCalibration": {
"displayText": "输入电压校正",
"displayText": "输入电压校正",
"description": "开始校正输入电压VIN<长按以退出>"
},
"PowerPulsePower": {
@@ -332,16 +305,12 @@
"description": "为保持电源处于唤醒状态,每次通电脉冲的时间长度 <x250ms亳秒>"
},
"SettingsReset": {
"displayText": "全部重置",
"displayText": "全部重置",
"description": "将所有设定重置为默认值"
},
"LanguageSwitch": {
"displayText": "语言:简体中文",
"description": ""
},
"SolderingTipType": {
"displayText": "焊接头类型",
"description": "选择安装合适的尖端类型"
}
}
}

View File

@@ -3,8 +3,8 @@
"languageLocalName": "正體中文",
"tempUnitFahrenheit": true,
"messagesWarn": {
"CalibrationDone": {
"message": "校正完成!"
"CJCCalibrationDone": {
"message": "Calibration done!"
},
"ResetOKMessage": {
"message": "已重設!"
@@ -30,14 +30,11 @@
"WarningThermalRunaway": {
"message": "加熱失控"
},
"WarningTipShorted": {
"message": "!烙鐵頭短路!"
},
"SettingsCalibrationWarning": {
"message": "在重啟前請確認烙鐵頭及本體已完全冷卻!"
"message": "Before rebooting, make sure tip & handle are at room temperature!"
},
"CJCCalibrating": {
"message": "校正中"
"message": "calibrating"
},
"SettingsResetWarning": {
"message": "你是否確定要將全部設定重設到預設值?"
@@ -51,12 +48,18 @@
"InputVoltageString": {
"message": "Input V: "
},
"SleepingSimpleString": {
"message": "Zzzz"
},
"SleepingAdvancedString": {
"message": "Sleeping..."
},
"SleepingTipAdvancedString": {
"message": "Tip: "
},
"OffString": {
"message": "關"
},
"ProfilePreheatString": {
"message": "Preheat"
},
@@ -74,12 +77,15 @@
"SettingRightChar": "右",
"SettingLeftChar": "左",
"SettingAutoChar": "自",
"SettingOffChar": "關",
"SettingSlowChar": "慢",
"SettingMediumChar": "中",
"SettingFastChar": "快",
"SettingStartNoneChar": "無",
"SettingStartSolderingChar": "焊",
"SettingStartSleepChar": "待",
"SettingStartSleepOffChar": "室",
"SettingLockDisableChar": "無",
"SettingLockBoostChar": "增",
"SettingLockFullChar": "全"
},
@@ -105,35 +111,6 @@
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "電源",
@@ -151,9 +128,9 @@
"displayText": "PD逾時",
"description": "設定USB PD協定交涉的逾時時限為兼容某些QC電源而設 <x100ms亳秒>"
},
"USBPDMode": {
"PDVpdo": {
"displayText": "PD VPDO",
"description": "開啟PPS及EPR支援"
"description": "Enables PPS & EPR modes"
},
"BoostTemperature": {
"displayText": "增熱溫度",
@@ -161,7 +138,7 @@
},
"AutoStart": {
"displayText": "自動啟用",
"description": "開機時自動啟用 <焊=焊接模式 | 待=待機模式 | 室=室溫待機>"
"description": "開機時自動啟用 <無=停用 | 焊=焊接模式 | 待=待機模式 | 室=室溫待機>"
},
"TempChangeShortStep": {
"displayText": "溫度調整 短",
@@ -173,7 +150,7 @@
},
"LockingMode": {
"displayText": "按鍵鎖定",
"description": "於焊接模式時,同時長按兩個按鍵啟用按鍵鎖定 <增=只容許增熱模式 | 全=鎖定全部>"
"description": "於焊接模式時,同時長按兩個按鍵啟用按鍵鎖定 <無=停用 | 增=只容許增熱模式 | 全=鎖定全部>"
},
"ProfilePhases": {
"displayText": "Profile Phases",
@@ -233,7 +210,7 @@
},
"MotionSensitivity": {
"displayText": "動作敏感度",
"description": "1=最低敏感度 | ... | 9=最高敏感度"
"description": "0=停用 | 1=最低敏感度 | ... | 9=最高敏感度"
},
"SleepTemperature": {
"displayText": "待機溫度",
@@ -249,11 +226,7 @@
},
"HallEffSensitivity": {
"displayText": "磁場敏感度",
"description": "磁場感應器用作啟動待機模式的敏感度 <1=最低敏感度 | ... | 9=最高敏感度>"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
"description": "磁場感應器用作啟動待機模式的敏感度 <0=停用 | 1=最低敏感度 | ... | 9=最高敏感度>"
},
"TemperatureUnit": {
"displayText": "溫標",
@@ -277,7 +250,7 @@
},
"AnimSpeed": {
"displayText": "動畫速度",
"description": "功能表圖示動畫的速度 <慢=慢速 | 中=中速 | 快=快速>"
"description": "功能表圖示動畫的速度 <關=不顯示動畫 | 慢=慢速 | 中=中速 | 快=快速>"
},
"AnimLoop": {
"displayText": "動畫循環",
@@ -304,8 +277,8 @@
"description": "於焊接模式畫面以英文小字型顯示詳細資料"
},
"BluetoothLE": {
"displayText": "藍牙",
"description": "開啟藍牙支援"
"displayText": "Bluetooth",
"description": "Enables BLE"
},
"PowerLimit": {
"displayText": "功率限制",
@@ -313,7 +286,7 @@
},
"CalibrateCJC": {
"displayText": "校正CJC",
"description": "在下次重啟時校正烙鐵頭熱電偶冷接點補償值CJC溫差小於5攝氏度時無需校正"
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5 C)"
},
"VoltageCalibration": {
"displayText": "輸入電壓校正?",
@@ -338,10 +311,6 @@
"LanguageSwitch": {
"displayText": "語言:正體中文",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -1,8 +1,7 @@
{
"messagesWarn": [
{
"id": "CalibrationDone",
"description": "Confirmation message indicating calibration is complete."
"messagesWarn": [{
"id": "CJCCalibrationDone",
"description": "Confirmation message indicating CJC calibration is complete."
},
{
"id": "ResetOKMessage",
@@ -36,12 +35,7 @@
{
"id": "WarningThermalRunaway",
"description": "Warning text shown when the software has disabled the heater as a safety precaution as the temperature reading didn't react as expected."
},
{
"id": "WarningTipShorted",
"description": "Warning text shown when the software has detected that the users tip is likely shorted."
},
{
}, {
"id": "SettingsCalibrationWarning",
"description": "Confirmation message shown before performing an offset calibration. Should warn the user to make sure tip and handle are at the same temperature."
},
@@ -84,6 +78,12 @@
"include": ["PROFILE_SUPPORT"],
"description": "Shown in profile mode while cooling down"
},
{
"id": "SleepingSimpleString",
"maxLen": 4,
"exclude": ["NO_SLEEP_MODE"],
"description": "The text shown to indicate the unit is in sleep mode when the advanced view is NOT on."
},
{
"id": "SleepingAdvancedString",
"maxLen": 15,
@@ -96,6 +96,11 @@
"exclude": ["NO_SLEEP_MODE"],
"description": "The prefix text shown before tip temperature when the unit is sleeping with advanced view on."
},
{
"id": "OffString",
"maxLen": 3,
"description": "Shown when a setting is turned off."
},
{
"id": "DeviceFailedValidationWarning",
"default": "Device may be\ncounterfeit",
@@ -108,8 +113,7 @@
"description": "Shown when profile mode is started while the device is too hot."
}
],
"characters": [
{
"characters": [{
"id": "SettingRightChar",
"len": 1,
"description": "Shown for fixed Right-handed display rotation."
@@ -124,6 +128,11 @@
"len": 1,
"description": "Shown for automatic display rotation."
},
{
"id": "SettingOffChar",
"len": 1,
"description": "Shown when a setting is turned off"
},
{
"id": "SettingSlowChar",
"len": 1,
@@ -139,6 +148,11 @@
"len": 1,
"description": "Shown when a setting is set to a fast value i.e. animation speed"
},
{
"id": "SettingStartNoneChar",
"len": 1,
"description": "Shown when autostart state is to do nothing and go to a normal boot"
},
{
"id": "SettingStartSolderingChar",
"len": 1,
@@ -154,6 +168,12 @@
"len": 1,
"description": "Shown when the auto start state is set to go to an off state, but on movement wake into soldering mode."
},
{
"id": "SettingLockDisableChar",
"len": 1,
"default": "D",
"description": "Shown when locking mode is turned off."
},
{
"id": "SettingLockBoostChar",
"len": 1,
@@ -167,8 +187,7 @@
"description": "Shown when the locking mode is set to lock all buttons."
}
],
"menuGroups": [
{
"menuGroups": [{
"id": "PowerMenu",
"maxLen": 5,
"maxLen2": 11,
@@ -200,46 +219,7 @@
"description": "Advanced settings. Misc catchall for settings that don't fit anywhere else or settings that require some thought before use."
}
],
"menuValues": [
{
"id": "USBPDModeDefault",
"description": "When in this mode we enable all PD features, and we pad resistance slightly to account for cable and PCB trace loss"
},
{
"id": "USBPDModeNoDynamic",
"description": "When in this mode we only enable fixed voltage USB-PD options, and we pad resistance slightly to account for cable and PCB trace loss"
},
{
"id": "USBPDModeSafe",
"description": "When in this mode we enable all PD features, but we don't pad resistance slightly to account for cable and PCB trace loss"
},
{
"id": "TipTypeAuto",
"description": "This is for automatic best-effort tip selection based on resistance"
},
{
"id": "TipTypeT12Long",
"description": "Hakko T12 or older (long) TS100 tips"
},
{
"id": "TipTypeT12Short",
"description": "Pine 6.2 ohm short TS100 style tips"
},
{
"id": "TipTypeT12PTS",
"description": "PTS200 4 ohm short TS100 style tips"
},
{
"id": "TipTypeTS80",
"description": "Miniware TS80(P) tips"
},
{
"id": "TipTypeJBCC210",
"description": "JBC (or clone) tips"
}
],
"menuOptions": [
{
"menuOptions": [{
"id": "DCInCutoff",
"maxLen": 5,
"maxLen2": 11,
@@ -268,11 +248,11 @@
"description": "How long until firmware stops trying to negotiate for USB-PD and tries QC instead. Longer times may help dodgy / old PD adapters, faster times move onto PD quickly. Units of 100ms. Recommended to keep small values."
},
{
"id": "USBPDMode",
"id": "PDVpdo",
"maxLen": 7,
"maxLen2": 15,
"include": ["POW_PD"],
"description": "No Dynamic disables EPR & PPS, Safe mode does not use padding resistance"
"description": "Enabled PPS & EPR modes."
},
{
"id": "BoostTemperature",
@@ -435,13 +415,6 @@
"include": ["HALL_SENSOR"],
"description": "If the unit has a hall effect sensor (Pinecil), this adjusts how sensitive it is at detecting a magnet to put the device into sleep mode."
},
{
"id": "HallEffSleepTimeout",
"maxLen": 10,
"maxLen2": 10,
"include": ["HALL_SENSOR"],
"description": "If the unit has a hall effect sensor (Pinecil), this adjusts how long the device takes before it drops down to the sleep temperature when hall sensor is over threshold."
},
{
"id": "TemperatureUnit",
"maxLen": 6,
@@ -569,12 +542,6 @@
"maxLen": 7,
"maxLen2": 15,
"description": "Changes the device language on multi-lingual builds."
},
{
"id": "SolderingTipType",
"maxLen": 7,
"maxLen2": 15,
"description": "For manually selecting the type of tip fitted"
}
]
}

View File

@@ -3,10 +3,9 @@ site_name: IronOS
site_url: https://ralim.github.io/IronOS/
site_description: "IronOS Open Source Soldering Iron firmware for Miniware and Pinecil"
# Repo config
# repo config
repo_url: https://github.com/ralim/IronOS/
# Dir & location config
docs_dir: ../Documentation
edit_uri: edit/dev/Documentation/
@@ -17,7 +16,6 @@ theme:
hljs_languages:
- yaml
# Navigation structure
nav:
- Home: index.md
- Getting Started: GettingStarted.md
@@ -36,15 +34,11 @@ 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
- Power sources: PowerSources.md
- New Hardware Requirements: PortingToNewDevice.md
- Translations: Translation.md
- Development: Development.md
- Changelog: History.md
# Plugins
plugins:
@@ -53,6 +47,7 @@ plugins:
- awesome-pages
- git-revision-date
# Markdown Extensions
markdown_extensions:
- attr_list

View File

@@ -1,36 +1,29 @@
# Default Reference Distro for development env & deploy:
# * Alpine Linux, version 3.19 *
FROM alpine:3.19
FROM alpine:3.16
LABEL maintainer="Ben V. Brown <ralim@ralimtek.com>"
# Default current dir when container starts
WORKDIR /build/ironos
# Installing the two compilers (ARM & RISCV), python3 & pip, clang tools, etc.:
## - compilers: gcc-*, newlib-*
## - python3: py*, black (required to check Python code formatting)
## - misc: findutils, make, git, diffutils, zip
## - musl-dev (required for the multi lang firmwares)
## - clang (required for clang-format to check C++ code formatting)
## - shellcheck (to check sh scripts)
ARG APK_COMPS="gcc-riscv-none-elf g++-riscv-none-elf gcc-arm-none-eabi g++-arm-none-eabi newlib-riscv-none-elf newlib-arm-none-eabi"
WORKDIR /build
# Installing the two compilers, python3, python3 pip, clang format
# Compilders ->gcc-* newlib-*
# Python3 -> py*
# Misc -> findutils make git
# musl-dev is required for the multi lang firmwares
# clang is required for clang-format (for dev)
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"
ARG APK_MISC="findutils make git"
ARG APK_DEV="musl-dev clang bash clang-extra-tools"
# 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'
# PIP packages
ARG PIP_PKGS='bdflib'
# Install system packages using alpine package manager
RUN apk add --no-cache ${APK_COMPS} ${APK_PYTHON} ${APK_MISC} ${APK_DEV}
# Install Python3 packages as modules using pip, yes we dont care if packages break
RUN python3 -m pip install --break-system-packages ${PIP_PKGS}
# Install Python3 packages
# Git trust to avoid related warning
RUN git config --global --add safe.directory /build/ironos
RUN python3 -m pip install ${PIP_PKGS}
# Git trust
RUN git config --global --add safe.directory /build/source
# Copy the whole source tree working dir into container
COPY . /build/ironos
COPY . /build/source
COPY ./scripts/ci /build/ci

13
scripts/ci/buildAll.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/sh
set -e
set -u
mkdir -p /build/ci/artefacts
# Build STM code
cd /build/source/source/
bash ./build.sh || exit 1
echo "All Firmware built"
# Copy out all the final resulting files we would like to store for the next op
cp -r /build/source/source/Hexfile/*.hex /build/ci/artefacts/
cp -r /build/source/source/Hexfile/*.bin /build/ci/artefacts/

View File

@@ -0,0 +1 @@
8312c4c91799885f222f663fc81f9a31 gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2

View File

@@ -0,0 +1 @@
add5b6a9b12987d0e72f55a4d2cd0f3b nuclei_riscv_newlibc_prebuilt_linux64_2020.08.tar.bz2

View File

@@ -3,183 +3,65 @@
# little helper for docker deployment to:
# - start development environment for IronOS ("shell" sub-command)
# - generate full set of builds ("build" sub-command)
# - probably doing some other routines (check source briefly before running undocumented commands!)
#set -x
#set -e
### helper functions
# brief help (some supported commands may be missing!)
usage()
{
echo -e "\nUsage: ${0} [CMD]\n"
echo "CMD (docker related):"
echo "CMD:"
echo -e "\tshell - start docker container with shell inside to work on IronOS with all tools needed"
echo -e "\tbuild - compile builds of IronOS inside docker container for supported hardware"
echo -e "\tclean - delete created docker image for IronOS & its build cache objects\n"
echo "CMD (helper routines):"
echo -e "\tdocs - high level target to run docs_readme and docs_history (see below)\n"
echo -e "\tdocs_readme - generate & OVERWRITE(!) README.md inside Documentation/ based on nav section from mkdocs.yml if it changed\n"
echo -e "\tdocs_history - check if History.md has the changelog for the latest stable release\n"
echo -e "\tcheck_style_file SRC - run code style checks based on clang-format & custom parsers for source code file SRC\n"
echo -e "\tcheck_style_log - run clang-format using source/Makefile and generate gcc-compatible error log in source/check-style.log\n"
echo -e "\tclean - delete created docker container (but not pre-downloaded data for it)\n"
echo -e "STORAGE NOTICE: for \"shell\" and \"build\" commands extra files will be downloaded so make sure that you have ~5GB of free space.\n"
}
# Documentation/README.md automagical generation routine
docs_readme()
{
# WARNING: ON RUN Documentaion/README.md MAY BE OVERWRITTEN WITHOUT ANY WARNINGS / CONFIRMATIONS !!!
# Returns:
## 0 to the environment & silence - if there are no any changes in README.md nor updates in mkdocs.yml
## 1 to the environment (as error) & note message - if the update of README.md in repo is required
yml="scripts/IronOS-mkdocs.yml"
md_old="Documentation/README.md"
md_new="Documentation/README"
# ^^^^ hardcoded paths relative to IronOS/ to make this func very trivial
# file overwritten section looks out of style but hoping to make shellcheck happy
cat << EOF > "${md_new}"
<!-- THIS FILE IS AUTOGENERATED by "scripts/deploy.sh docs_readme" based on nav section in ${yml} config -->
<!-- THIS FILE IS NOT SUPPOSED TO BE EDITED MANUALLY -->
#### This is autogenerated README for brief navigation through github over official documentation for IronOS project
#### This documentation is also available [here online](https://ralim.github.io/IronOS)
EOF
# it probably will become unexplainable in a few months but so far it works:
sed '1,/^nav/d; /^ *$/,$d; s,- ,- [,; s,: ,](../Documentation/,; s,.md,.md),; s,:$,],; s,/Pinecil ,/Pinecil%20,; /^ - \[.*\]$/ s,\[,,; s,]$,,' "${yml}" >> "${md_new}"
ret=0
if [ -z "$(diff -q "${md_old}" "${md_new}")" ]; then
rm "${md_new}"
ret=0
else
mv "${md_new}" "${md_old}"
echo ""
echo "${yml} seems to be updated..."
echo "... while ${md_old} is out-of-date!"
echo ""
echo "Please, update ${md_old} in your local working copy by command:"
echo ""
echo " $ ./scripts/deploy.sh docs_readme"
echo ""
echo "And then commit & push changes to update ${md_old} in the repo:"
echo ""
echo " $ git commit ${md_old} -m \"${md_old}: update autogenerated file\" && git push"
echo ""
ret=1
fi;
return "${ret}"
}
# Documentation/History.md automagical changelog routine
docs_history()
{
md="Documentation/History.md"
ver_md="$(sed -ne 's/^## //1p' "${md}" | head -1)"
echo "Latest changelog: ${ver_md}"
ver_git="$(git tag -l | sort | grep -e "^v" | grep -v "rc" | tail -1)"
echo "Latest release tag: ${ver_git}"
ret=0
if [ "${ver_md}" != "${ver_git}" ]; then
ret=1
echo "It seems there is no changelog information for ${ver_git} in ${md} yet."
echo "Please, update changelog information in ${md}."
fi;
return "${ret}"
}
# Check for links to release builds in README.md
docs_links()
{
ver_git="$(git tag -l | sort | grep -e "^v" | grep -v "rc" | tail -1)"
md="README.md"
test -f "${md}" || (echo "deploy.sh: docs_links: ERROR with the project directory structure!" && exit 1)
ver_md="$(grep -c "${ver_git}" "${md}")"
ret=0
if [ "${ver_md}" -eq 0 ]; then
ret=1
echo "Please, update mention & links in ${md} inside Builds section for release builds with version ${ver_git}."
fi;
return "${ret}"
}
# source/Makefile:ALL_LANGUAGES & Translations/*.json automagical routine
build_langs()
{
mk="../source/Makefile"
cd Translations/ || (echo "deploy.sh: build_langs: ERROR with the project directory structure!" && exit 1)
langs="$(echo "$(find ./*.json | sed -ne 's,^\./translation_,,; s,\.json$,,; /[A-Z]/p' ; sed -ne 's/^ALL_LANGUAGES=//p;' "${mk}")" | sed 's, ,\n,g; s,\r,,g' | sort | uniq -u)"
if [ -n "${langs}" ]; then
echo "It seems there is mismatch between supported languages and enabled builds."
echo "Please, check files in Translations/ and ALL_LANGUAGES variable in source/Makefile for:"
echo "${langs}"
return 1
fi;
cd ..
echo -ne "\n"
grep -nH $'\11' Translations/translation*.json
ret="${?}"
if [ "${ret}" -eq 0 ]; then
echo -ne "\t^^^^\t^^^^\n"
echo "Please, remove any tabs as indention from json file(s) in Translations/ directory (see the exact files & lines in the list above)."
echo "Use spaces only to indent in the future, please."
echo -ne "\n"
return 1
fi;
grep -nEH -e "^( {1}| {3}| {5}| {7}| {9}| {11})[^ ]" Translations/translation*.json
ret="${?}"
if [ "${ret}" -eq 0 ]; then
echo -ne "\t^^^^\t^^^^\n"
echo "Please, remove any odd amount of extra spaces as indention from json file(s) in Translations/ directory (see the exact files & lines in the list above)."
echo "Use even amount of spaces to indent in the future, please (two actual spaces per one indent, not tab)."
echo -ne "\n"
return 1
fi;
return 0
}
# Helper function to check code style using clang-format & grep/sed custom parsers:
# - basic logic moved from source/Makefile : `check-style` target for better maintainance since a lot of sh script involved;
# - output goes in gcc-like error compatible format for IDEs/editors.
check_style_file()
{
ret=0
src="${1}"
test ! -f "${src}" && echo "ERROR!!! Provided file ${src} is not available to check/read!!!" && exit 1
# count lines using diff between beauty-fied file & original file to detect format issue
var="$(clang-format "$src" | diff "$src" - | wc -l)"
if [ "${var}" -ne 0 ]; then
# show full log error or, if LIST=anything provided, then show only filename of interest (implemented for debug purposes mainly)
if [ -z "${LIST}" ]; then
# sed is here only for pretty logging
clang-format "${src}" | diff "${src}" - | sed 's/^---/-------------------------------------------------------------------------------/; s/^< /--- /; s/^> /+++ /; /^[0-9].*/ s/[acd,].*$/ERROR1/; /^[0-9].*/ s,^,\n\n\n\n'"${src}"':,; /ERROR1$/ s,ERROR1$,:1: error: clang-format code style mismatch:,; '
else
echo "${src}"
fi;
ret=1
fi;
return "${ret}"
}
# check_style routine for those who too lazy to do it everytime manually
check_style_log()
{
log="source/check-style.log"
make -C source check-style 2>&1 | tee "${log}"
chmod 0666 "${log}"
sed -i -e 's,\r,,g' "${log}"
return 0
}
### main
docker_conf="Env.yml"
# allow providing custom path to docker tool using DOCKER_BIN external env. var.
# (compose sub-command must be included, i.e. DOCKER_BIN="/usr/local/bin/docker compose" ./deploy.sh)
if [ -z "${DOCKER_BIN}" ]; then
docker_bin=""
else
docker_bin="${DOCKER_BIN}"
fi;
# detect availability of docker
docker_compose="$(command -v docker-compose)"
if [ -n "${docker_compose}" ] && [ -z "${docker_bin}" ]; then
docker_bin="${docker_compose}"
fi;
docker_tool="$(command -v docker)"
if [ -n "${docker_tool}" ] && [ -z "${docker_bin}" ]; then
docker_bin="${docker_tool} compose"
fi;
if [ -z "${docker_bin}" ]; then
echo "ERROR: Can't find docker-compose nor docker tool. Please, install docker and try again."
exit 1
fi;
# construct command to run
cmd="${1}"
if [ -z "${cmd}" ] || [ "${cmd}" = "shell" ]; then
docker_cmd="run --rm builder"
elif [ "${cmd}" = "build" ]; then
docker_cmd="run --rm builder /bin/bash /build/ci/buildAll.sh"
elif [ "${cmd}" = "clean" ]; then
docker rmi ironos-builder:latest
exit "${?}"
else
usage
exit 1
fi;
# get absolute location of project root dir to make docker happy with config(s)
# (successfully tested on relatively POSIX-compliant Dash shell)
@@ -194,106 +76,6 @@ root_dir="${script_dir}/.."
# IronOS/Env.yml
docker_file="-f ${root_dir}/${docker_conf}"
# allow providing custom path to docker tool using DOCKER_BIN external env. var.
# (compose sub-command must be included, i.e. DOCKER_BIN="/usr/local/bin/docker compose" ./deploy.sh)
if [ -z "${DOCKER_BIN}" ]; then
docker_app=""
else
docker_app="${DOCKER_BIN}"
fi;
# detect availability of docker
docker_compose="$(command -v docker-compose)"
if [ -n "${docker_compose}" ] && [ -z "${docker_app}" ]; then
docker_app="${docker_compose}"
fi;
docker_tool="$(command -v docker)"
if [ -n "${docker_tool}" ] && [ -z "${docker_app}" ]; then
docker_app="${docker_tool} compose"
fi;
# give function argument a name
cmd="${1}"
# meta target to verify markdown documents
if [ "docs" = "${cmd}" ]; then
docs_readme
readme="${?}"
docs_history
hist="${?}"
build_langs
langs="${?}"
docs_links
links="${?}"
if [ "${readme}" -eq 0 ] && [ "${hist}" -eq 0 ] && [ "${langs}" -eq 0 ] && [ "${links}" -eq 0 ]; then
ret=0
else
ret=1
fi;
exit ${ret}
fi;
# if only README.md for Documentation update is required then run it & exit
if [ "docs_readme" = "${cmd}" ]; then
docs_readme
exit "${?}"
fi;
# if only History.md for Documentation update is required then run it & exit
if [ "docs_history" = "${cmd}" ]; then
docs_history
exit "${?}"
fi;
if [ "build_langs" = "${cmd}" ]; then
build_langs
exit "${?}"
fi;
if [ "docs_links" = "${cmd}" ]; then
docs_links
exit "${?}"
fi;
if [ "check_style_file" = "${cmd}" ]; then
check_style_file "${2}"
exit "${?}"
fi;
if [ "check_style_log" = "${cmd}" ]; then
check_style_log
exit "${?}"
fi;
# if docker is not presented in any way show warning & exit
if [ -z "${docker_app}" ]; then
echo "ERROR: Can't find docker-compose nor docker tool. Please, install docker and try again."
exit 1
fi;
# construct command to run
if [ -z "${cmd}" ] || [ "${cmd}" = "shell" ]; then
docker_cmd="run --rm builder"
elif [ "${cmd}" = "build" ]; then
docker_cmd="run --rm builder make build-all OUT=${OUT}"
elif [ "${cmd}" = "clean" ]; then
docker rmi ironos-builder:latest
docker system prune --filter label=ironos-builder:latest --force
exit "${?}"
else
usage
exit 1
fi;
# change dir to project root dir & run constructed command
cd "${root_dir}" || exit 1
@@ -302,6 +84,7 @@ if [ "${cmd}" = "shell" ]; then
echo -e "\t* type \"exit\" to end the session when done;"
fi;
echo -e "\t* type \"${0} clean\" to delete created container (but not cached data)"
echo -e "\n====>>>> ${docker_app} ${docker_file} ${docker_cmd}\n"
eval "${docker_app} ${docker_file} ${docker_cmd}"
echo -e "\n====>>>> ${docker_bin} ${docker_file} ${docker_cmd}\n"
eval "${docker_bin} ${docker_file} ${docker_cmd}"
exit "${?}"

View File

@@ -75,7 +75,7 @@ umount_ts100() {
echo "Failed to unmount $DIR_TMP"
exit 1
fi
sudo rmdir "$DIR_TMP"
rmdir "$DIR_TMP"
}
check_flash() {
@@ -126,13 +126,14 @@ echo "Found TS100 config disk device on $DEVICE"
mount_ts100
echo "Mounted config disk drive, flashing..."
dd if="$1" of="$HEX_FIRMWARE" oflag=direct
umount_ts100
cp -v "$1" "$HEX_FIRMWARE"
sync
echo "Waiting for TS100 to flash"
sleep 5
echo "Remounting config disk drive"
umount_ts100
wait_for_ts100
mount_ts100
check_flash

View File

@@ -1,236 +1,138 @@
# Roughly based on LLVM, tweaked a tad for readability on wide screens
---
Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -2
AlignAfterOpenBracket: Align
AlignArrayOfStructures: Right
AlignConsecutiveAssignments:
Enabled: true
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
PadOperators: true
AlignConsecutiveBitFields:
Enabled: true
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
PadOperators: false
AlignConsecutiveDeclarations:
Enabled: true
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
PadOperators: false
AlignConsecutiveMacros:
Enabled: true
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
PadOperators: false
AlignConsecutiveShortCaseStatements:
Enabled: true
AcrossEmptyLines: false
AcrossComments: false
AlignCaseColons: false
AlignEscapedNewlines: Right
AlignOperands: Align
AlignTrailingComments:
Kind: Always
OverEmptyLines: 0
AlignConsecutiveMacros: true
AlignConsecutiveAssignments: true
AlignConsecutiveDeclarations: true
AlignEscapedNewlines: Left
AlignOperands: true
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: true
AllowAllConstructorInitializersOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: Never
AllowShortBlocksOnASingleLine: Empty
AllowShortCaseLabelsOnASingleLine: false
AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: All
AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: MultiLine
AttributeMacros:
- __capability
BinPackArguments: true
BinPackParameters: true
BitFieldColonSpacing: Both
BraceWrapping:
AfterCaseLabel: false
AfterClass: false
AfterControlStatement: Never
AfterControlStatement: false
AfterEnum: false
AfterExternBlock: false
AfterFunction: false
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
BeforeLambdaBody: false
BeforeWhile: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakAfterAttributes: Never
BreakAfterJavaFieldAnnotations: false
BreakArrays: true
BreakBeforeBinaryOperators: None
BreakBeforeConceptDeclarations: Always
BreakBeforeBinaryOperators: true
BreakBeforeBraces: Attach
BreakBeforeInlineASMColon: OnlyMultiline
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeColon
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 200
CommentPragmas: "^ IWYU pragma:"
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DeriveLineEnding: true
DerivePointerAlignment: false
DisableFormat: false
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: LogicalBlock
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IfMacros:
- KJ_IF_MAYBE
IncludeBlocks: Preserve
IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 2
SortPriority: 0
CaseSensitive: false
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
Priority: 3
SortPriority: 0
CaseSensitive: false
- Regex: ".*"
- Regex: '.*'
Priority: 1
SortPriority: 0
CaseSensitive: false
IncludeIsMainRegex: "(Test)?$"
IncludeIsMainSourceRegex: ""
IndentAccessModifiers: false
IndentCaseBlocks: false
IncludeIsMainRegex: '(Test)?$'
IncludeIsMainSourceRegex: ''
IndentCaseLabels: false
IndentExternBlock: AfterExternBlock
IndentGotoLabels: true
IndentPPDirectives: None
IndentRequiresClause: true
IndentWidth: 2
IndentWrappedFunctionNames: false
InsertBraces: false
InsertNewlineAtEOF: false
InsertTrailingCommas: None
IntegerLiteralSeparator:
Binary: 0
BinaryMinDigits: 0
Decimal: 0
DecimalMinDigits: 0
Hex: 0
HexMinDigits: 0
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
KeepEmptyLinesAtEOF: false
LambdaBodyIndentation: Signature
LineEnding: DeriveLF
MacroBlockBegin: ""
MacroBlockEnd: ""
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Auto
ObjCBlockIndentWidth: 2
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PackConstructorInitializers: BinPack
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakOpenParenthesis: 0
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyIndentedWhitespace: 0
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Right
PPIndentWidth: -1
QualifierAlignment: Leave
ReferenceAlignment: Pointer
ReflowComments: true
RemoveBracesLLVM: false
RemoveParentheses: Leave
RemoveSemicolon: false
RequiresClausePosition: OwnLine
RequiresExpressionIndentation: OuterScope
SeparateDefinitionBlocks: Leave
ShortNamespaceLines: 1
SortIncludes: CaseSensitive
SortJavaStaticImport: Before
SortUsingDeclarations: LexicographicNumeric
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceAroundPointerQualifiers: Default
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeJsonColon: false
SpaceBeforeParens: ControlStatements
SpaceBeforeParensOptions:
AfterControlStatements: true
AfterForeachMacros: true
AfterFunctionDefinitionName: false
AfterFunctionDeclarationName: false
AfterIfMacros: true
AfterOverloadedOperator: false
AfterRequiresInClause: false
AfterRequiresInExpression: false
BeforeNonEmptyParentheses: false
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: Never
SpacesInAngles: false
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInLineCommentPrefix:
Minimum: 1
Maximum: -1
SpacesInParens: Never
SpacesInParensOptions:
InCStyleCasts: false
InConditionalStatements: false
InEmptyParentheses: false
Other: false
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
SpaceBeforeSquareBrackets: false
Standard: Latest
StatementAttributeLikeMacros:
- Q_EMIT
StatementMacros:
- Q_UNUSED
- QT_REQUIRE_VERSION
TabWidth: 8
UseCRLF: false
UseTab: Never
VerilogBreakBetweenInstancePorts: true
WhitespaceSensitiveMacros:
- BOOST_PP_STRINGIZE
- CF_SWIFT_NAME
- NS_SWIFT_NAME
- PP_STRINGIZE
- STRINGIZE
---
...

View File

@@ -3,11 +3,9 @@
#include "BSP_Power.h"
#include "BSP_QC.h"
#include "Defines.h"
#include "Types.h"
#include "configuration.h"
#include <stdbool.h>
#include <stdint.h>
/*
* BSP.h -- Board Support
*
@@ -103,11 +101,6 @@ void setBuzzer(bool on);
// For example, on the MHP30 this is used to figure out the resistance of the hotplate
uint8_t preStartChecks();
uint8_t preStartChecksDone();
// Check if the tip or output mosfet is shorted (if possible)
bool isTipShorted();
// Show the boot logo
void showBootLogo(void);
#ifdef __cplusplus
}
#endif

View File

@@ -8,8 +8,6 @@
#ifndef BSP_POWER_H_
#define BSP_POWER_H_
#include "Types.h"
#ifdef __cplusplus
extern "C" {
#endif
@@ -21,10 +19,9 @@ void power_check();
// Returns the tip resistance in x10 ohms, so 7.5 = 75; 14=140 etc
uint8_t getTipResistanceX10();
uint16_t getTipThermalMass();
uint16_t getTipInertia();
uint8_t getTipThermalMass();
uint8_t getTipInertia();
TemperatureType_t getCustomTipMaxInC();
#ifdef __cplusplus
}

View File

@@ -1,12 +1,11 @@
// BSP mapping functions
#include "BSP.h"
#include "BootLogo.h"
#include "I2C_Wrapper.hpp"
#include "Pins.h"
#include "Setup.h"
#include "TipThermoModel.h"
#include "Utils.hpp"
#include "Utils.h"
#include "WS2812.h"
#include "configuration.h"
#include "history.hpp"
@@ -230,9 +229,8 @@ uint16_t getInputVoltageX10(uint16_t divisor, uint8_t sample) {
static uint32_t samples[BATTFILTERDEPTH];
static uint8_t index = 0;
if (preFillneeded) {
for (uint8_t i = 0; i < BATTFILTERDEPTH; i++) {
for (uint8_t i = 0; i < BATTFILTERDEPTH; i++)
samples[i] = getADC(1);
}
preFillneeded--;
}
if (sample) {
@@ -241,9 +239,8 @@ uint16_t getInputVoltageX10(uint16_t divisor, uint8_t sample) {
}
uint32_t sum = 0;
for (uint8_t i = 0; i < BATTFILTERDEPTH; i++) {
for (uint8_t i = 0; i < BATTFILTERDEPTH; i++)
sum += samples[i];
}
sum /= BATTFILTERDEPTH;
if (divisor == 0) {
@@ -265,6 +262,25 @@ void unstick_I2C() {
int timeout = 100;
int timeout_cnt = 0;
// 1. Clear PE bit.
hi2c1.Instance->CR1 &= ~(0x0001);
/**I2C1 GPIO Configuration
PB6 ------> I2C1_SCL
PB7 ------> I2C1_SDA
*/
// 2. Configure the SCL and SDA I/Os as General Purpose Output Open-Drain, High level (Write 1 to GPIOx_ODR).
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Pin = SCL_Pin;
HAL_GPIO_Init(SCL_GPIO_Port, &GPIO_InitStruct);
HAL_GPIO_WritePin(SCL_GPIO_Port, SCL_Pin, GPIO_PIN_SET);
GPIO_InitStruct.Pin = SDA_Pin;
HAL_GPIO_Init(SDA_GPIO_Port, &GPIO_InitStruct);
HAL_GPIO_WritePin(SDA_GPIO_Port, SDA_Pin, GPIO_PIN_SET);
while (GPIO_PIN_SET != HAL_GPIO_ReadPin(SDA_GPIO_Port, SDA_Pin)) {
// Move clock to release I2C
HAL_GPIO_WritePin(SCL_GPIO_Port, SCL_Pin, GPIO_PIN_RESET);
@@ -275,10 +291,39 @@ void unstick_I2C() {
HAL_GPIO_WritePin(SCL_GPIO_Port, SCL_Pin, GPIO_PIN_SET);
timeout_cnt++;
if (timeout_cnt > timeout) {
if (timeout_cnt > timeout)
return;
}
}
// 12. Configure the SCL and SDA I/Os as Alternate function Open-Drain.
GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Pin = SCL_Pin;
HAL_GPIO_Init(SCL_GPIO_Port, &GPIO_InitStruct);
GPIO_InitStruct.Pin = SDA_Pin;
HAL_GPIO_Init(SDA_GPIO_Port, &GPIO_InitStruct);
HAL_GPIO_WritePin(SCL_GPIO_Port, SCL_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(SDA_GPIO_Port, SDA_Pin, GPIO_PIN_SET);
// 13. Set SWRST bit in I2Cx_CR1 register.
hi2c1.Instance->CR1 |= 0x8000;
asm("nop");
// 14. Clear SWRST bit in I2Cx_CR1 register.
hi2c1.Instance->CR1 &= ~0x8000;
asm("nop");
// 15. Enable the I2C peripheral by setting the PE bit in I2Cx_CR1 register
hi2c1.Instance->CR1 |= 0x0001;
// Call initialization function.
HAL_I2C_Init(&hi2c1);
}
uint8_t getButtonA() { return HAL_GPIO_ReadPin(KEY_A_GPIO_Port, KEY_A_Pin) == GPIO_PIN_RESET ? 1 : 0; }
@@ -295,9 +340,15 @@ void setPlatePullup(bool pullingUp) {
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Pin = PLATE_SENSOR_PULLUP_Pin;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Mode = pullingUp ? GPIO_MODE_OUTPUT_PP : GPIO_MODE_INPUT;
if (pullingUp) {
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
HAL_GPIO_WritePin(PLATE_SENSOR_PULLUP_GPIO_Port, PLATE_SENSOR_PULLUP_Pin, GPIO_PIN_SET);
} else {
// Hi-z
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
HAL_GPIO_WritePin(PLATE_SENSOR_PULLUP_GPIO_Port, PLATE_SENSOR_PULLUP_Pin, GPIO_PIN_RESET);
}
HAL_GPIO_Init(PLATE_SENSOR_PULLUP_GPIO_Port, &GPIO_InitStruct);
HAL_GPIO_WritePin(PLATE_SENSOR_PULLUP_GPIO_Port, PLATE_SENSOR_PULLUP_Pin, pullingUp ? GPIO_PIN_SET : GPIO_PIN_RESET);
}
void performTipMeasurementStep(bool start) {
@@ -420,7 +471,5 @@ uint64_t getDeviceID() {
uint8_t preStartChecksDone() { return 1; }
uint16_t getTipThermalMass() { return TIP_THERMAL_MASS; }
uint16_t getTipInertia() { return TIP_THERMAL_MASS; }
void showBootLogo(void) { BootLogo::handleShowingLogo((uint8_t *)FLASH_LOGOADDR); }
uint8_t getTipThermalMass() { return TIP_THERMAL_MASS; }
uint8_t getTipInertia() { return TIP_THERMAL_MASS; }

View File

@@ -0,0 +1,91 @@
/*
* FRToSI2C.cpp
*
* Created on: 14Apr.,2018
* Author: Ralim
*/
#include "BSP.h"
#include "Setup.h"
#include <I2C_Wrapper.hpp>
SemaphoreHandle_t FRToSI2C::I2CSemaphore = nullptr;
StaticSemaphore_t FRToSI2C::xSemaphoreBuffer;
void FRToSI2C::CpltCallback() {
hi2c1.State = HAL_I2C_STATE_READY; // Force state reset (even if tx error)
if (I2CSemaphore) {
xSemaphoreGiveFromISR(I2CSemaphore, NULL);
}
}
bool FRToSI2C::Mem_Read(uint16_t DevAddress, uint16_t MemAddress, uint8_t *pData, uint16_t Size) {
if (!lock())
return false;
if (HAL_I2C_Mem_Read(&hi2c1, DevAddress, MemAddress, I2C_MEMADD_SIZE_8BIT, pData, Size, 500) != HAL_OK) {
I2C_Unstick();
unlock();
return false;
}
unlock();
return true;
}
bool FRToSI2C::I2C_RegisterWrite(uint8_t address, uint8_t reg, uint8_t data) { return Mem_Write(address, reg, &data, 1); }
uint8_t FRToSI2C::I2C_RegisterRead(uint8_t add, uint8_t reg) {
uint8_t tx_data[1];
Mem_Read(add, reg, tx_data, 1);
return tx_data[0];
}
bool FRToSI2C::Mem_Write(uint16_t DevAddress, uint16_t MemAddress, uint8_t *pData, uint16_t Size) {
if (!lock())
return false;
if (HAL_I2C_Mem_Write(&hi2c1, DevAddress, MemAddress, I2C_MEMADD_SIZE_8BIT, pData, Size, 500) != HAL_OK) {
I2C_Unstick();
unlock();
return false;
}
unlock();
return true;
}
bool FRToSI2C::Transmit(uint16_t DevAddress, uint8_t *pData, uint16_t Size) {
if (!lock())
return false;
if (HAL_I2C_Master_Transmit_DMA(&hi2c1, DevAddress, pData, Size) != HAL_OK) {
I2C_Unstick();
unlock();
return false;
}
return true;
}
bool FRToSI2C::probe(uint16_t DevAddress) {
if (!lock())
return false;
uint8_t buffer[1];
bool worked = HAL_I2C_Mem_Read(&hi2c1, DevAddress, 0x0F, I2C_MEMADD_SIZE_8BIT, buffer, 1, 1000) == HAL_OK;
unlock();
return worked;
}
void FRToSI2C::I2C_Unstick() { unstick_I2C(); }
void FRToSI2C::unlock() { xSemaphoreGive(I2CSemaphore); }
bool FRToSI2C::lock() { return xSemaphoreTake(I2CSemaphore, (TickType_t)50) == pdTRUE; }
bool FRToSI2C::writeRegistersBulk(const uint8_t address, const I2C_REG *registers, const uint8_t registersLength) {
for (int index = 0; index < registersLength; index++) {
if (!I2C_RegisterWrite(address, registers[index].reg, registers[index].val)) {
return false;
}
if (registers[index].pause_ms)
delay_ms(registers[index].pause_ms);
}
return true;
}

View File

@@ -27,6 +27,12 @@ void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc) {
}
}
}
void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c __unused) { FRToSI2C::CpltCallback(); }
void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c __unused) { FRToSI2C::CpltCallback(); }
void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c __unused) { FRToSI2C::CpltCallback(); }
void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c __unused) { FRToSI2C::CpltCallback(); }
void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c __unused) { FRToSI2C::CpltCallback(); }
void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c __unused) { FRToSI2C::CpltCallback(); }
extern osThreadId POWTaskHandle;
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {

View File

@@ -18,6 +18,12 @@
extern "C" {
#endif
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc);
void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_GPIO_EXTI_Callback(uint16_t);
#ifdef __cplusplus

View File

@@ -19,4 +19,3 @@ void power_check() {
bool getIsPoweredByDCIN() { return false; }
uint8_t getTipResistanceX10() { return TIP_RESISTANCE; }
bool isTipShorted() { return false; }

View File

@@ -11,6 +11,10 @@ ADC_HandleTypeDef hadc1;
ADC_HandleTypeDef hadc2;
DMA_HandleTypeDef hdma_adc1;
I2C_HandleTypeDef hi2c1;
DMA_HandleTypeDef hdma_i2c1_rx;
DMA_HandleTypeDef hdma_i2c1_tx;
IWDG_HandleTypeDef hiwdg;
TIM_HandleTypeDef htim2;
TIM_HandleTypeDef htim3;
@@ -21,7 +25,7 @@ uint32_t ADCReadings[ADC_SAMPLES * ADC_CHANNELS]; // room for 32 lots of the pai
// Functions
static void SystemClock_Config(void);
static void MX_ADC1_Init(void);
static void MX_I2C1_Init(void);
static void MX_IWDG_Init(void);
static void MX_TIM3_Init(void);
static void MX_TIM2_Init(void);
@@ -35,7 +39,7 @@ void Setup_HAL() {
MX_GPIO_Init();
MX_DMA_Init();
MX_I2C1_Init();
MX_ADC1_Init();
MX_ADC2_Init();
MX_TIM3_Init();
@@ -150,9 +154,8 @@ static void MX_ADC1_Init(void) {
SET_BIT(hadc1.Instance->CR1, (ADC_CR1_EOSIE)); // Enable end of Normal
// Run ADC internal calibration
while (HAL_ADCEx_Calibration_Start(&hadc1) != HAL_OK) {
while (HAL_ADCEx_Calibration_Start(&hadc1) != HAL_OK)
;
}
}
/* ADC2 init function */
@@ -188,9 +191,21 @@ static void MX_ADC2_Init(void) {
HAL_ADC_ConfigChannel(&hadc2, &sConfig);
// Run ADC internal calibration
while (HAL_ADCEx_Calibration_Start(&hadc2) != HAL_OK) {
while (HAL_ADCEx_Calibration_Start(&hadc2) != HAL_OK)
;
}
}
/* I2C1 init function */
static void MX_I2C1_Init(void) {
hi2c1.Instance = I2C1;
hi2c1.Init.ClockSpeed = 300000;
hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
hi2c1.Init.OwnAddress1 = 0;
hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
hi2c1.Init.OwnAddress2 = 0;
hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
HAL_I2C_Init(&hi2c1);
}
/* IWDG init function */
@@ -336,8 +351,8 @@ static void MX_GPIO_Init(void) {
GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_10 | GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 |
GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15;
GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12
| GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/*Configure GPIO pins : KEY_B_Pin KEY_A_Pin */

View File

@@ -20,6 +20,7 @@ extern DMA_HandleTypeDef hdma_adc1;
extern DMA_HandleTypeDef hdma_i2c1_rx;
extern DMA_HandleTypeDef hdma_i2c1_tx;
extern I2C_HandleTypeDef hi2c1;
extern IWDG_HandleTypeDef hiwdg;

View File

@@ -18,26 +18,13 @@
#define SOFT_SDA2_LOW() HAL_GPIO_WritePin(SDA2_GPIO_Port, SDA2_Pin, GPIO_PIN_RESET)
#define SOFT_SDA2_READ() (HAL_GPIO_ReadPin(SDA2_GPIO_Port, SDA2_Pin) == GPIO_PIN_SET ? 1 : 0)
#define SOFT_SCL2_READ() (HAL_GPIO_ReadPin(SCL2_GPIO_Port, SCL2_Pin) == GPIO_PIN_SET ? 1 : 0)
#endif
#ifdef I2C_SOFT_BUS_1
#define SOFT_SCL1_HIGH() HAL_GPIO_WritePin(SCL_GPIO_Port, SCL_Pin, GPIO_PIN_SET)
#define SOFT_SCL1_LOW() HAL_GPIO_WritePin(SCL_GPIO_Port, SCL_Pin, GPIO_PIN_RESET)
#define SOFT_SDA1_HIGH() HAL_GPIO_WritePin(SDA_GPIO_Port, SDA_Pin, GPIO_PIN_SET)
#define SOFT_SDA1_LOW() HAL_GPIO_WritePin(SDA_GPIO_Port, SDA_Pin, GPIO_PIN_RESET)
#define SOFT_SDA1_READ() (HAL_GPIO_ReadPin(SDA_GPIO_Port, SDA_Pin) == GPIO_PIN_SET ? 1 : 0)
#define SOFT_SCL1_READ() (HAL_GPIO_ReadPin(SCL_GPIO_Port, SCL_Pin) == GPIO_PIN_SET ? 1 : 0)
#endif
#define SOFT_I2C_DELAY() \
{ \
for (int xx = 0; xx < 15; xx++) { \
for (int xx = 0; xx < 20; xx++) { \
asm("nop"); \
} \
}
// 40 ~= 100kHz; 15 gives around 250kHz or so which is fast _and_ stable
#endif
#endif /* BSP_MINIWARE_SOFTWARE_I2C_H_ */

View File

@@ -6,12 +6,10 @@
*/
#include "Setup.h"
#include "TipThermoModel.h"
#include "Types.h"
#include "Utils.hpp"
#include "Utils.h"
#include "configuration.h"
extern uint16_t tipSenseResistancex10Ohms;
TemperatureType_t TipThermoModel::convertuVToDegC(uint32_t tipuVDelta) {
uint32_t TipThermoModel::convertuVToDegC(uint32_t tipuVDelta) {
// For the MHP30, we are mimicing the original code and using the resistor fitted to the base of the heater head,
// this is measured at boot in pid task and in the disconnected tip check if tip is removed
if (tipSenseResistancex10Ohms > 900 && tipSenseResistancex10Ohms <= 1100) {

View File

@@ -0,0 +1,728 @@
/**
******************************************************************************
* @file stm32f1xx_hal_i2c.h
* @author MCD Application Team
* @brief Header file of I2C HAL module.
******************************************************************************
* @attention
*
* <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
* All rights reserved.</center></h2>
*
* This software component is licensed by ST under BSD 3-Clause license,
* the "License"; You may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
* opensource.org/licenses/BSD-3-Clause
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32F1xx_HAL_I2C_H
#define __STM32F1xx_HAL_I2C_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "stm32f1xx_hal_def.h"
/** @addtogroup STM32F1xx_HAL_Driver
* @{
*/
/** @addtogroup I2C
* @{
*/
/* Exported types ------------------------------------------------------------*/
/** @defgroup I2C_Exported_Types I2C Exported Types
* @{
*/
/** @defgroup I2C_Configuration_Structure_definition I2C Configuration Structure definition
* @brief I2C Configuration Structure definition
* @{
*/
typedef struct {
uint32_t ClockSpeed; /*!< Specifies the clock frequency.
This parameter must be set to a value lower than 400kHz */
uint32_t DutyCycle; /*!< Specifies the I2C fast mode duty cycle.
This parameter can be a value of @ref I2C_duty_cycle_in_fast_mode */
uint32_t OwnAddress1; /*!< Specifies the first device own address.
This parameter can be a 7-bit or 10-bit address. */
uint32_t AddressingMode; /*!< Specifies if 7-bit or 10-bit addressing mode is selected.
This parameter can be a value of @ref I2C_addressing_mode */
uint32_t DualAddressMode; /*!< Specifies if dual addressing mode is selected.
This parameter can be a value of @ref I2C_dual_addressing_mode */
uint32_t OwnAddress2; /*!< Specifies the second device own address if dual addressing mode is selected
This parameter can be a 7-bit address. */
uint32_t GeneralCallMode; /*!< Specifies if general call mode is selected.
This parameter can be a value of @ref I2C_general_call_addressing_mode */
uint32_t NoStretchMode; /*!< Specifies if nostretch mode is selected.
This parameter can be a value of @ref I2C_nostretch_mode */
} I2C_InitTypeDef;
/**
* @}
*/
/** @defgroup HAL_state_structure_definition HAL state structure definition
* @brief HAL State structure definition
* @note HAL I2C State value coding follow below described bitmap :
* b7-b6 Error information
* 00 : No Error
* 01 : Abort (Abort user request on going)
* 10 : Timeout
* 11 : Error
* b5 Peripheral initilisation status
* 0 : Reset (Peripheral not initialized)
* 1 : Init done (Peripheral initialized and ready to use. HAL I2C Init function called)
* b4 (not used)
* x : Should be set to 0
* b3
* 0 : Ready or Busy (No Listen mode ongoing)
* 1 : Listen (Peripheral in Address Listen Mode)
* b2 Intrinsic process state
* 0 : Ready
* 1 : Busy (Peripheral busy with some configuration or internal operations)
* b1 Rx state
* 0 : Ready (no Rx operation ongoing)
* 1 : Busy (Rx operation ongoing)
* b0 Tx state
* 0 : Ready (no Tx operation ongoing)
* 1 : Busy (Tx operation ongoing)
* @{
*/
typedef enum {
HAL_I2C_STATE_RESET = 0x00U, /*!< Peripheral is not yet Initialized */
HAL_I2C_STATE_READY = 0x20U, /*!< Peripheral Initialized and ready for use */
HAL_I2C_STATE_BUSY = 0x24U, /*!< An internal process is ongoing */
HAL_I2C_STATE_BUSY_TX = 0x21U, /*!< Data Transmission process is ongoing */
HAL_I2C_STATE_BUSY_RX = 0x22U, /*!< Data Reception process is ongoing */
HAL_I2C_STATE_LISTEN = 0x28U, /*!< Address Listen Mode is ongoing */
HAL_I2C_STATE_BUSY_TX_LISTEN = 0x29U, /*!< Address Listen Mode and Data Transmission
process is ongoing */
HAL_I2C_STATE_BUSY_RX_LISTEN = 0x2AU, /*!< Address Listen Mode and Data Reception
process is ongoing */
HAL_I2C_STATE_ABORT = 0x60U, /*!< Abort user request ongoing */
HAL_I2C_STATE_TIMEOUT = 0xA0U, /*!< Timeout state */
HAL_I2C_STATE_ERROR = 0xE0U /*!< Error */
} HAL_I2C_StateTypeDef;
/**
* @}
*/
/** @defgroup HAL_mode_structure_definition HAL mode structure definition
* @brief HAL Mode structure definition
* @note HAL I2C Mode value coding follow below described bitmap :\n
* b7 (not used)\n
* x : Should be set to 0\n
* b6\n
* 0 : None\n
* 1 : Memory (HAL I2C communication is in Memory Mode)\n
* b5\n
* 0 : None\n
* 1 : Slave (HAL I2C communication is in Slave Mode)\n
* b4\n
* 0 : None\n
* 1 : Master (HAL I2C communication is in Master Mode)\n
* b3-b2-b1-b0 (not used)\n
* xxxx : Should be set to 0000
* @{
*/
typedef enum {
HAL_I2C_MODE_NONE = 0x00U, /*!< No I2C communication on going */
HAL_I2C_MODE_MASTER = 0x10U, /*!< I2C communication is in Master Mode */
HAL_I2C_MODE_SLAVE = 0x20U, /*!< I2C communication is in Slave Mode */
HAL_I2C_MODE_MEM = 0x40U /*!< I2C communication is in Memory Mode */
} HAL_I2C_ModeTypeDef;
/**
* @}
*/
/** @defgroup I2C_Error_Code_definition I2C Error Code definition
* @brief I2C Error Code definition
* @{
*/
#define HAL_I2C_ERROR_NONE 0x00000000U /*!< No error */
#define HAL_I2C_ERROR_BERR 0x00000001U /*!< BERR error */
#define HAL_I2C_ERROR_ARLO 0x00000002U /*!< ARLO error */
#define HAL_I2C_ERROR_AF 0x00000004U /*!< AF error */
#define HAL_I2C_ERROR_OVR 0x00000008U /*!< OVR error */
#define HAL_I2C_ERROR_DMA 0x00000010U /*!< DMA transfer error */
#define HAL_I2C_ERROR_TIMEOUT 0x00000020U /*!< Timeout Error */
#define HAL_I2C_ERROR_SIZE 0x00000040U /*!< Size Management error */
#define HAL_I2C_ERROR_DMA_PARAM 0x00000080U /*!< DMA Parameter Error */
#define HAL_I2C_WRONG_START 0x00000200U /*!< Wrong start Error */
#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
#define HAL_I2C_ERROR_INVALID_CALLBACK 0x00000100U /*!< Invalid Callback error */
#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
/**
* @}
*/
/** @defgroup I2C_handle_Structure_definition I2C handle Structure definition
* @brief I2C handle Structure definition
* @{
*/
#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
typedef struct __I2C_HandleTypeDef
#else
typedef struct
#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
{
I2C_TypeDef *Instance; /*!< I2C registers base address */
I2C_InitTypeDef Init; /*!< I2C communication parameters */
uint8_t *pBuffPtr; /*!< Pointer to I2C transfer buffer */
uint16_t XferSize; /*!< I2C transfer size */
__IO uint16_t XferCount; /*!< I2C transfer counter */
__IO uint32_t XferOptions; /*!< I2C transfer options */
__IO uint32_t PreviousState; /*!< I2C communication Previous state and mode
context for internal usage */
DMA_HandleTypeDef *hdmatx; /*!< I2C Tx DMA handle parameters */
DMA_HandleTypeDef *hdmarx; /*!< I2C Rx DMA handle parameters */
HAL_LockTypeDef Lock; /*!< I2C locking object */
__IO HAL_I2C_StateTypeDef State; /*!< I2C communication state */
__IO HAL_I2C_ModeTypeDef Mode; /*!< I2C communication mode */
__IO uint32_t ErrorCode; /*!< I2C Error code */
__IO uint32_t Devaddress; /*!< I2C Target device address */
__IO uint32_t Memaddress; /*!< I2C Target memory address */
__IO uint32_t MemaddSize; /*!< I2C Target memory address size */
__IO uint32_t EventCount; /*!< I2C Event counter */
#ifndef USE_HAL_I2C_REGISTER_CALLBACKS
#define USE_HAL_I2C_REGISTER_CALLBACKS 0
#endif
#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
void (*MasterTxCpltCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Master Tx Transfer completed callback */
void (*MasterRxCpltCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Master Rx Transfer completed callback */
void (*SlaveTxCpltCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Slave Tx Transfer completed callback */
void (*SlaveRxCpltCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Slave Rx Transfer completed callback */
void (*ListenCpltCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Listen Complete callback */
void (*MemTxCpltCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Memory Tx Transfer completed callback */
void (*MemRxCpltCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Memory Rx Transfer completed callback */
void (*ErrorCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Error callback */
void (*AbortCpltCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Abort callback */
void (*AddrCallback)(struct __I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrMatchCode); /*!< I2C Slave Address Match callback */
void (*MspInitCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Msp Init callback */
void (*MspDeInitCallback)(struct __I2C_HandleTypeDef *hi2c); /*!< I2C Msp DeInit callback */
#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
} I2C_HandleTypeDef;
#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
/**
* @brief HAL I2C Callback ID enumeration definition
*/
typedef enum {
HAL_I2C_MASTER_TX_COMPLETE_CB_ID = 0x00U, /*!< I2C Master Tx Transfer completed callback ID */
HAL_I2C_MASTER_RX_COMPLETE_CB_ID = 0x01U, /*!< I2C Master Rx Transfer completed callback ID */
HAL_I2C_SLAVE_TX_COMPLETE_CB_ID = 0x02U, /*!< I2C Slave Tx Transfer completed callback ID */
HAL_I2C_SLAVE_RX_COMPLETE_CB_ID = 0x03U, /*!< I2C Slave Rx Transfer completed callback ID */
HAL_I2C_LISTEN_COMPLETE_CB_ID = 0x04U, /*!< I2C Listen Complete callback ID */
HAL_I2C_MEM_TX_COMPLETE_CB_ID = 0x05U, /*!< I2C Memory Tx Transfer callback ID */
HAL_I2C_MEM_RX_COMPLETE_CB_ID = 0x06U, /*!< I2C Memory Rx Transfer completed callback ID */
HAL_I2C_ERROR_CB_ID = 0x07U, /*!< I2C Error callback ID */
HAL_I2C_ABORT_CB_ID = 0x08U, /*!< I2C Abort callback ID */
HAL_I2C_MSPINIT_CB_ID = 0x09U, /*!< I2C Msp Init callback ID */
HAL_I2C_MSPDEINIT_CB_ID = 0x0AU /*!< I2C Msp DeInit callback ID */
} HAL_I2C_CallbackIDTypeDef;
/**
* @brief HAL I2C Callback pointer definition
*/
typedef void (*pI2C_CallbackTypeDef)(I2C_HandleTypeDef *hi2c); /*!< pointer to an I2C callback function */
typedef void (*pI2C_AddrCallbackTypeDef)(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrMatchCode); /*!< pointer to an I2C Address Match callback function */
#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
/**
* @}
*/
/**
* @}
*/
/* Exported constants --------------------------------------------------------*/
/** @defgroup I2C_Exported_Constants I2C Exported Constants
* @{
*/
/** @defgroup I2C_duty_cycle_in_fast_mode I2C duty cycle in fast mode
* @{
*/
#define I2C_DUTYCYCLE_2 0x00000000U
#define I2C_DUTYCYCLE_16_9 I2C_CCR_DUTY
/**
* @}
*/
/** @defgroup I2C_addressing_mode I2C addressing mode
* @{
*/
#define I2C_ADDRESSINGMODE_7BIT 0x00004000U
#define I2C_ADDRESSINGMODE_10BIT (I2C_OAR1_ADDMODE | 0x00004000U)
/**
* @}
*/
/** @defgroup I2C_dual_addressing_mode I2C dual addressing mode
* @{
*/
#define I2C_DUALADDRESS_DISABLE 0x00000000U
#define I2C_DUALADDRESS_ENABLE I2C_OAR2_ENDUAL
/**
* @}
*/
/** @defgroup I2C_general_call_addressing_mode I2C general call addressing mode
* @{
*/
#define I2C_GENERALCALL_DISABLE 0x00000000U
#define I2C_GENERALCALL_ENABLE I2C_CR1_ENGC
/**
* @}
*/
/** @defgroup I2C_nostretch_mode I2C nostretch mode
* @{
*/
#define I2C_NOSTRETCH_DISABLE 0x00000000U
#define I2C_NOSTRETCH_ENABLE I2C_CR1_NOSTRETCH
/**
* @}
*/
/** @defgroup I2C_Memory_Address_Size I2C Memory Address Size
* @{
*/
#define I2C_MEMADD_SIZE_8BIT 0x00000001U
#define I2C_MEMADD_SIZE_16BIT 0x00000010U
/**
* @}
*/
/** @defgroup I2C_XferDirection_definition I2C XferDirection definition
* @{
*/
#define I2C_DIRECTION_RECEIVE 0x00000000U
#define I2C_DIRECTION_TRANSMIT 0x00000001U
/**
* @}
*/
/** @defgroup I2C_XferOptions_definition I2C XferOptions definition
* @{
*/
#define I2C_FIRST_FRAME 0x00000001U
#define I2C_FIRST_AND_NEXT_FRAME 0x00000002U
#define I2C_NEXT_FRAME 0x00000004U
#define I2C_FIRST_AND_LAST_FRAME 0x00000008U
#define I2C_LAST_FRAME_NO_STOP 0x00000010U
#define I2C_LAST_FRAME 0x00000020U
/* List of XferOptions in usage of :
* 1- Restart condition in all use cases (direction change or not)
*/
#define I2C_OTHER_FRAME (0x00AA0000U)
#define I2C_OTHER_AND_LAST_FRAME (0xAA000000U)
/**
* @}
*/
/** @defgroup I2C_Interrupt_configuration_definition I2C Interrupt configuration definition
* @brief I2C Interrupt definition
* Elements values convention: 0xXXXXXXXX
* - XXXXXXXX : Interrupt control mask
* @{
*/
#define I2C_IT_BUF I2C_CR2_ITBUFEN
#define I2C_IT_EVT I2C_CR2_ITEVTEN
#define I2C_IT_ERR I2C_CR2_ITERREN
/**
* @}
*/
/** @defgroup I2C_Flag_definition I2C Flag definition
* @{
*/
#define I2C_FLAG_OVR 0x00010800U
#define I2C_FLAG_AF 0x00010400U
#define I2C_FLAG_ARLO 0x00010200U
#define I2C_FLAG_BERR 0x00010100U
#define I2C_FLAG_TXE 0x00010080U
#define I2C_FLAG_RXNE 0x00010040U
#define I2C_FLAG_STOPF 0x00010010U
#define I2C_FLAG_ADD10 0x00010008U
#define I2C_FLAG_BTF 0x00010004U
#define I2C_FLAG_ADDR 0x00010002U
#define I2C_FLAG_SB 0x00010001U
#define I2C_FLAG_DUALF 0x00100080U
#define I2C_FLAG_GENCALL 0x00100010U
#define I2C_FLAG_TRA 0x00100004U
#define I2C_FLAG_BUSY 0x00100002U
#define I2C_FLAG_MSL 0x00100001U
/**
* @}
*/
/**
* @}
*/
/* Exported macros -----------------------------------------------------------*/
/** @defgroup I2C_Exported_Macros I2C Exported Macros
* @{
*/
/** @brief Reset I2C handle state.
* @param __HANDLE__ specifies the I2C Handle.
* @retval None
*/
#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
#define __HAL_I2C_RESET_HANDLE_STATE(__HANDLE__) \
do { \
(__HANDLE__)->State = HAL_I2C_STATE_RESET; \
(__HANDLE__)->MspInitCallback = NULL; \
(__HANDLE__)->MspDeInitCallback = NULL; \
} while (0)
#else
#define __HAL_I2C_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_I2C_STATE_RESET)
#endif
/** @brief Enable or disable the specified I2C interrupts.
* @param __HANDLE__ specifies the I2C Handle.
* @param __INTERRUPT__ specifies the interrupt source to enable or disable.
* This parameter can be one of the following values:
* @arg I2C_IT_BUF: Buffer interrupt enable
* @arg I2C_IT_EVT: Event interrupt enable
* @arg I2C_IT_ERR: Error interrupt enable
* @retval None
*/
#define __HAL_I2C_ENABLE_IT(__HANDLE__, __INTERRUPT__) SET_BIT((__HANDLE__)->Instance->CR2, (__INTERRUPT__))
#define __HAL_I2C_DISABLE_IT(__HANDLE__, __INTERRUPT__) CLEAR_BIT((__HANDLE__)->Instance->CR2, (__INTERRUPT__))
/** @brief Checks if the specified I2C interrupt source is enabled or disabled.
* @param __HANDLE__ specifies the I2C Handle.
* @param __INTERRUPT__ specifies the I2C interrupt source to check.
* This parameter can be one of the following values:
* @arg I2C_IT_BUF: Buffer interrupt enable
* @arg I2C_IT_EVT: Event interrupt enable
* @arg I2C_IT_ERR: Error interrupt enable
* @retval The new state of __INTERRUPT__ (TRUE or FALSE).
*/
#define __HAL_I2C_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->CR2 & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
/** @brief Checks whether the specified I2C flag is set or not.
* @param __HANDLE__ specifies the I2C Handle.
* @param __FLAG__ specifies the flag to check.
* This parameter can be one of the following values:
* @arg I2C_FLAG_OVR: Overrun/Underrun flag
* @arg I2C_FLAG_AF: Acknowledge failure flag
* @arg I2C_FLAG_ARLO: Arbitration lost flag
* @arg I2C_FLAG_BERR: Bus error flag
* @arg I2C_FLAG_TXE: Data register empty flag
* @arg I2C_FLAG_RXNE: Data register not empty flag
* @arg I2C_FLAG_STOPF: Stop detection flag
* @arg I2C_FLAG_ADD10: 10-bit header sent flag
* @arg I2C_FLAG_BTF: Byte transfer finished flag
* @arg I2C_FLAG_ADDR: Address sent flag
* Address matched flag
* @arg I2C_FLAG_SB: Start bit flag
* @arg I2C_FLAG_DUALF: Dual flag
* @arg I2C_FLAG_GENCALL: General call header flag
* @arg I2C_FLAG_TRA: Transmitter/Receiver flag
* @arg I2C_FLAG_BUSY: Bus busy flag
* @arg I2C_FLAG_MSL: Master/Slave flag
* @retval The new state of __FLAG__ (TRUE or FALSE).
*/
#define __HAL_I2C_GET_FLAG(__HANDLE__, __FLAG__) \
((((uint8_t)((__FLAG__) >> 16U)) == 0x01U) ? (((((__HANDLE__)->Instance->SR1) & ((__FLAG__)&I2C_FLAG_MASK)) == ((__FLAG__)&I2C_FLAG_MASK)) ? SET : RESET) \
: (((((__HANDLE__)->Instance->SR2) & ((__FLAG__)&I2C_FLAG_MASK)) == ((__FLAG__)&I2C_FLAG_MASK)) ? SET : RESET))
/** @brief Clears the I2C pending flags which are cleared by writing 0 in a specific bit.
* @param __HANDLE__ specifies the I2C Handle.
* @param __FLAG__ specifies the flag to clear.
* This parameter can be any combination of the following values:
* @arg I2C_FLAG_OVR: Overrun/Underrun flag (Slave mode)
* @arg I2C_FLAG_AF: Acknowledge failure flag
* @arg I2C_FLAG_ARLO: Arbitration lost flag (Master mode)
* @arg I2C_FLAG_BERR: Bus error flag
* @retval None
*/
#define __HAL_I2C_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR1 = ~((__FLAG__)&I2C_FLAG_MASK))
/** @brief Clears the I2C ADDR pending flag.
* @param __HANDLE__ specifies the I2C Handle.
* This parameter can be I2C where x: 1, 2, or 3 to select the I2C peripheral.
* @retval None
*/
#define __HAL_I2C_CLEAR_ADDRFLAG(__HANDLE__) \
do { \
__IO uint32_t tmpreg = 0x00U; \
tmpreg = (__HANDLE__)->Instance->SR1; \
tmpreg = (__HANDLE__)->Instance->SR2; \
UNUSED(tmpreg); \
} while (0)
/** @brief Clears the I2C STOPF pending flag.
* @param __HANDLE__ specifies the I2C Handle.
* @retval None
*/
#define __HAL_I2C_CLEAR_STOPFLAG(__HANDLE__) \
do { \
__IO uint32_t tmpreg = 0x00U; \
tmpreg = (__HANDLE__)->Instance->SR1; \
SET_BIT((__HANDLE__)->Instance->CR1, I2C_CR1_PE); \
UNUSED(tmpreg); \
} while (0)
/** @brief Enable the specified I2C peripheral.
* @param __HANDLE__ specifies the I2C Handle.
* @retval None
*/
#define __HAL_I2C_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR1, I2C_CR1_PE)
/** @brief Disable the specified I2C peripheral.
* @param __HANDLE__ specifies the I2C Handle.
* @retval None
*/
#define __HAL_I2C_DISABLE(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CR1, I2C_CR1_PE)
/**
* @}
*/
/* Exported functions --------------------------------------------------------*/
/** @addtogroup I2C_Exported_Functions
* @{
*/
/** @addtogroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions
* @{
*/
/* Initialization and de-initialization functions******************************/
HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c);
HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c);
void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c);
void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c);
/* Callbacks Register/UnRegister functions ***********************************/
#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef CallbackID, pI2C_CallbackTypeDef pCallback);
HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef CallbackID);
HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pCallback);
HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c);
#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
/**
* @}
*/
/** @addtogroup I2C_Exported_Functions_Group2 Input and Output operation functions
* @{
*/
/* IO operation functions ****************************************************/
/******* Blocking mode: Polling */
HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Trials, uint32_t Timeout);
/******* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t XferOptions);
HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t XferOptions);
HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions);
HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions);
HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c);
HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c);
HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress);
/******* Non-Blocking mode: DMA */
HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t XferOptions);
HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t XferOptions);
HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions);
HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions);
/**
* @}
*/
/** @addtogroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks
* @{
*/
/******* I2C IRQHandler and Callbacks used in non blocking modes (Interrupt and DMA) */
void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c);
void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c);
void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrMatchCode);
void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c);
/**
* @}
*/
/** @addtogroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions
* @{
*/
/* Peripheral State, Mode and Error functions *********************************/
HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c);
HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c);
uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c);
/**
* @}
*/
/**
* @}
*/
/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/** @defgroup I2C_Private_Constants I2C Private Constants
* @{
*/
#define I2C_FLAG_MASK 0x0000FFFFU
#define I2C_MIN_PCLK_FREQ_STANDARD 2000000U /*!< 2 MHz */
#define I2C_MIN_PCLK_FREQ_FAST 4000000U /*!< 4 MHz */
/**
* @}
*/
/* Private macros ------------------------------------------------------------*/
/** @defgroup I2C_Private_Macros I2C Private Macros
* @{
*/
#define I2C_MIN_PCLK_FREQ(__PCLK__, __SPEED__) (((__SPEED__) <= 100000U) ? ((__PCLK__) < I2C_MIN_PCLK_FREQ_STANDARD) : ((__PCLK__) < I2C_MIN_PCLK_FREQ_FAST))
#define I2C_CCR_CALCULATION(__PCLK__, __SPEED__, __COEFF__) (((((__PCLK__)-1U) / ((__SPEED__) * (__COEFF__))) + 1U) & I2C_CCR_CCR)
#define I2C_FREQRANGE(__PCLK__) ((__PCLK__) / 1000000U)
#define I2C_RISE_TIME(__FREQRANGE__, __SPEED__) (((__SPEED__) <= 100000U) ? ((__FREQRANGE__) + 1U) : ((((__FREQRANGE__)*300U) / 1000U) + 1U))
#define I2C_SPEED_STANDARD(__PCLK__, __SPEED__) ((I2C_CCR_CALCULATION((__PCLK__), (__SPEED__), 2U) < 4U) ? 4U : I2C_CCR_CALCULATION((__PCLK__), (__SPEED__), 2U))
#define I2C_SPEED_FAST(__PCLK__, __SPEED__, __DUTYCYCLE__) \
(((__DUTYCYCLE__) == I2C_DUTYCYCLE_2) ? I2C_CCR_CALCULATION((__PCLK__), (__SPEED__), 3U) : (I2C_CCR_CALCULATION((__PCLK__), (__SPEED__), 25U) | I2C_DUTYCYCLE_16_9))
#define I2C_SPEED(__PCLK__, __SPEED__, __DUTYCYCLE__) \
(((__SPEED__) <= 100000U) ? (I2C_SPEED_STANDARD((__PCLK__), (__SPEED__))) \
: ((I2C_SPEED_FAST((__PCLK__), (__SPEED__), (__DUTYCYCLE__)) & I2C_CCR_CCR) == 0U) ? 1U \
: ((I2C_SPEED_FAST((__PCLK__), (__SPEED__), (__DUTYCYCLE__))) | I2C_CCR_FS))
#define I2C_7BIT_ADD_WRITE(__ADDRESS__) ((uint8_t)((__ADDRESS__) & (uint8_t)(~I2C_OAR1_ADD0)))
#define I2C_7BIT_ADD_READ(__ADDRESS__) ((uint8_t)((__ADDRESS__) | I2C_OAR1_ADD0))
#define I2C_10BIT_ADDRESS(__ADDRESS__) ((uint8_t)((uint16_t)((__ADDRESS__) & (uint16_t)0x00FF)))
#define I2C_10BIT_HEADER_WRITE(__ADDRESS__) ((uint8_t)((uint16_t)((uint16_t)(((uint16_t)((__ADDRESS__) & (uint16_t)0x0300)) >> 7) | (uint16_t)0x00F0)))
#define I2C_10BIT_HEADER_READ(__ADDRESS__) ((uint8_t)((uint16_t)((uint16_t)(((uint16_t)((__ADDRESS__) & (uint16_t)0x0300)) >> 7) | (uint16_t)(0x00F1))))
#define I2C_MEM_ADD_MSB(__ADDRESS__) ((uint8_t)((uint16_t)(((uint16_t)((__ADDRESS__) & (uint16_t)0xFF00)) >> 8)))
#define I2C_MEM_ADD_LSB(__ADDRESS__) ((uint8_t)((uint16_t)((__ADDRESS__) & (uint16_t)0x00FF)))
/** @defgroup I2C_IS_RTC_Definitions I2C Private macros to check input parameters
* @{
*/
#define IS_I2C_DUTY_CYCLE(CYCLE) (((CYCLE) == I2C_DUTYCYCLE_2) || ((CYCLE) == I2C_DUTYCYCLE_16_9))
#define IS_I2C_ADDRESSING_MODE(ADDRESS) (((ADDRESS) == I2C_ADDRESSINGMODE_7BIT) || ((ADDRESS) == I2C_ADDRESSINGMODE_10BIT))
#define IS_I2C_DUAL_ADDRESS(ADDRESS) (((ADDRESS) == I2C_DUALADDRESS_DISABLE) || ((ADDRESS) == I2C_DUALADDRESS_ENABLE))
#define IS_I2C_GENERAL_CALL(CALL) (((CALL) == I2C_GENERALCALL_DISABLE) || ((CALL) == I2C_GENERALCALL_ENABLE))
#define IS_I2C_NO_STRETCH(STRETCH) (((STRETCH) == I2C_NOSTRETCH_DISABLE) || ((STRETCH) == I2C_NOSTRETCH_ENABLE))
#define IS_I2C_MEMADD_SIZE(SIZE) (((SIZE) == I2C_MEMADD_SIZE_8BIT) || ((SIZE) == I2C_MEMADD_SIZE_16BIT))
#define IS_I2C_CLOCK_SPEED(SPEED) (((SPEED) > 0U) && ((SPEED) <= 400000U))
#define IS_I2C_OWN_ADDRESS1(ADDRESS1) (((ADDRESS1)&0xFFFFFC00U) == 0U)
#define IS_I2C_OWN_ADDRESS2(ADDRESS2) (((ADDRESS2)&0xFFFFFF01U) == 0U)
#define IS_I2C_TRANSFER_OPTIONS_REQUEST(REQUEST) \
(((REQUEST) == I2C_FIRST_FRAME) || ((REQUEST) == I2C_FIRST_AND_NEXT_FRAME) || ((REQUEST) == I2C_NEXT_FRAME) || ((REQUEST) == I2C_FIRST_AND_LAST_FRAME) || ((REQUEST) == I2C_LAST_FRAME) \
|| ((REQUEST) == I2C_LAST_FRAME_NO_STOP) || IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(REQUEST))
#define IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(REQUEST) (((REQUEST) == I2C_OTHER_FRAME) || ((REQUEST) == I2C_OTHER_AND_LAST_FRAME))
#define I2C_CHECK_FLAG(__ISR__, __FLAG__) ((((__ISR__) & ((__FLAG__)&I2C_FLAG_MASK)) == ((__FLAG__)&I2C_FLAG_MASK)) ? SET : RESET)
#define I2C_CHECK_IT_SOURCE(__CR1__, __IT__) ((((__CR1__) & (__IT__)) == (__IT__)) ? SET : RESET)
/**
* @}
*/
/**
* @}
*/
/* Private functions ---------------------------------------------------------*/
/** @defgroup I2C_Private_Functions I2C Private Functions
* @{
*/
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif /* __STM32F1xx_HAL_I2C_H */
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

View File

@@ -139,8 +139,8 @@ HAL_TickFreqTypeDef uwTickFreq = HAL_TICK_FREQ_DEFAULT; /* 1KHz */
HAL_StatusTypeDef HAL_Init(void) {
/* Configure Flash prefetch */
#if (PREFETCH_ENABLE != 0)
#if defined(STM32F101x6) || defined(STM32F101xB) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F102x6) || defined(STM32F102xB) || defined(STM32F103x6) || defined(STM32F103xB) || \
defined(STM32F103xE) || defined(STM32F103xG) || defined(STM32F105xC) || defined(STM32F107xC)
#if defined(STM32F101x6) || defined(STM32F101xB) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F102x6) || defined(STM32F102xB) || defined(STM32F103x6) || defined(STM32F103xB) \
|| defined(STM32F103xE) || defined(STM32F103xG) || defined(STM32F105xC) || defined(STM32F107xC)
/* Prefetch buffer is not available on value line devices */
__HAL_FLASH_PREFETCH_BUFFER_ENABLE();
@@ -347,8 +347,7 @@ __weak void HAL_Delay(uint32_t Delay) {
wait += (uint32_t)(uwTickFreq);
}
while ((HAL_GetTick() - tickstart) < wait) {
}
while ((HAL_GetTick() - tickstart) < wait) {}
}
/**

View File

@@ -620,12 +620,12 @@ HAL_StatusTypeDef HAL_ADC_DeInit(ADC_HandleTypeDef *hadc) {
__HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_AWD | ADC_FLAG_JEOC | ADC_FLAG_EOC | ADC_FLAG_JSTRT | ADC_FLAG_STRT));
/* Reset register CR1 */
CLEAR_BIT(hadc->Instance->CR1, (ADC_CR1_AWDEN | ADC_CR1_JAWDEN | ADC_CR1_DISCNUM | ADC_CR1_JDISCEN | ADC_CR1_DISCEN | ADC_CR1_JAUTO | ADC_CR1_AWDSGL | ADC_CR1_SCAN | ADC_CR1_JEOCIE |
ADC_CR1_AWDIE | ADC_CR1_EOCIE | ADC_CR1_AWDCH));
CLEAR_BIT(hadc->Instance->CR1, (ADC_CR1_AWDEN | ADC_CR1_JAWDEN | ADC_CR1_DISCNUM | ADC_CR1_JDISCEN | ADC_CR1_DISCEN | ADC_CR1_JAUTO | ADC_CR1_AWDSGL | ADC_CR1_SCAN | ADC_CR1_JEOCIE | ADC_CR1_AWDIE
| ADC_CR1_EOCIE | ADC_CR1_AWDCH));
/* Reset register CR2 */
CLEAR_BIT(hadc->Instance->CR2, (ADC_CR2_TSVREFE | ADC_CR2_SWSTART | ADC_CR2_JSWSTART | ADC_CR2_EXTTRIG | ADC_CR2_EXTSEL | ADC_CR2_JEXTTRIG | ADC_CR2_JEXTSEL | ADC_CR2_ALIGN | ADC_CR2_DMA |
ADC_CR2_RSTCAL | ADC_CR2_CAL | ADC_CR2_CONT | ADC_CR2_ADON));
CLEAR_BIT(hadc->Instance->CR2, (ADC_CR2_TSVREFE | ADC_CR2_SWSTART | ADC_CR2_JSWSTART | ADC_CR2_EXTTRIG | ADC_CR2_EXTSEL | ADC_CR2_JEXTTRIG | ADC_CR2_JEXTSEL | ADC_CR2_ALIGN | ADC_CR2_DMA
| ADC_CR2_RSTCAL | ADC_CR2_CAL | ADC_CR2_CONT | ADC_CR2_ADON));
/* Reset register SMPR1 */
CLEAR_BIT(hadc->Instance->SMPR1, (ADC_SMPR1_SMP17 | ADC_SMPR1_SMP16 | ADC_SMPR1_SMP15 | ADC_SMPR1_SMP14 | ADC_SMPR1_SMP13 | ADC_SMPR1_SMP12 | ADC_SMPR1_SMP11 | ADC_SMPR1_SMP10));
@@ -1874,8 +1874,8 @@ HAL_StatusTypeDef HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef *hadc, ADC_AnalogWDG
assert_param(IS_ADC_RANGE(AnalogWDGConfig->HighThreshold));
assert_param(IS_ADC_RANGE(AnalogWDGConfig->LowThreshold));
if ((AnalogWDGConfig->WatchdogMode == ADC_ANALOGWATCHDOG_SINGLE_REG) || (AnalogWDGConfig->WatchdogMode == ADC_ANALOGWATCHDOG_SINGLE_INJEC) ||
(AnalogWDGConfig->WatchdogMode == ADC_ANALOGWATCHDOG_SINGLE_REGINJEC)) {
if ((AnalogWDGConfig->WatchdogMode == ADC_ANALOGWATCHDOG_SINGLE_REG) || (AnalogWDGConfig->WatchdogMode == ADC_ANALOGWATCHDOG_SINGLE_INJEC)
|| (AnalogWDGConfig->WatchdogMode == ADC_ANALOGWATCHDOG_SINGLE_REGINJEC)) {
assert_param(IS_ADC_CHANNEL(AnalogWDGConfig->Channel));
}

View File

@@ -941,8 +941,8 @@ HAL_StatusTypeDef HAL_ADCEx_InjectedConfigChannel(ADC_HandleTypeDef *hadc, ADC_I
ADC_JSQR_JL | ADC_JSQR_RK_JL(ADC_JSQR_JSQ1, sConfigInjected->InjectedRank, sConfigInjected->InjectedNbrOfConversion),
ADC_JSQR_JL_SHIFT(sConfigInjected->InjectedNbrOfConversion) |
ADC_JSQR_RK_JL(sConfigInjected->InjectedChannel, sConfigInjected->InjectedRank, sConfigInjected->InjectedNbrOfConversion));
ADC_JSQR_JL_SHIFT(sConfigInjected->InjectedNbrOfConversion)
| ADC_JSQR_RK_JL(sConfigInjected->InjectedChannel, sConfigInjected->InjectedRank, sConfigInjected->InjectedNbrOfConversion));
} else {
/* Clear the old SQx bits for the selected rank */
MODIFY_REG(hadc->Instance->JSQR,

View File

@@ -305,9 +305,9 @@ void HAL_MPU_ConfigRegion(MPU_Region_InitTypeDef *MPU_Init) {
assert_param(IS_MPU_REGION_SIZE(MPU_Init->Size));
MPU->RBAR = MPU_Init->BaseAddress;
MPU->RASR = ((uint32_t)MPU_Init->DisableExec << MPU_RASR_XN_Pos) | ((uint32_t)MPU_Init->AccessPermission << MPU_RASR_AP_Pos) | ((uint32_t)MPU_Init->TypeExtField << MPU_RASR_TEX_Pos) |
((uint32_t)MPU_Init->IsShareable << MPU_RASR_S_Pos) | ((uint32_t)MPU_Init->IsCacheable << MPU_RASR_C_Pos) | ((uint32_t)MPU_Init->IsBufferable << MPU_RASR_B_Pos) |
((uint32_t)MPU_Init->SubRegionDisable << MPU_RASR_SRD_Pos) | ((uint32_t)MPU_Init->Size << MPU_RASR_SIZE_Pos) | ((uint32_t)MPU_Init->Enable << MPU_RASR_ENABLE_Pos);
MPU->RASR = ((uint32_t)MPU_Init->DisableExec << MPU_RASR_XN_Pos) | ((uint32_t)MPU_Init->AccessPermission << MPU_RASR_AP_Pos) | ((uint32_t)MPU_Init->TypeExtField << MPU_RASR_TEX_Pos)
| ((uint32_t)MPU_Init->IsShareable << MPU_RASR_S_Pos) | ((uint32_t)MPU_Init->IsCacheable << MPU_RASR_C_Pos) | ((uint32_t)MPU_Init->IsBufferable << MPU_RASR_B_Pos)
| ((uint32_t)MPU_Init->SubRegionDisable << MPU_RASR_SRD_Pos) | ((uint32_t)MPU_Init->Size << MPU_RASR_SIZE_Pos) | ((uint32_t)MPU_Init->Enable << MPU_RASR_ENABLE_Pos);
} else {
MPU->RBAR = 0x00U;
MPU->RASR = 0x00U;

File diff suppressed because it is too large Load Diff

View File

@@ -387,8 +387,8 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) {
assert_param(IS_RCC_CALIBRATION_VALUE(RCC_OscInitStruct->HSICalibrationValue));
/* Check if HSI is used as system clock or as PLL source when PLL is selected as system clock */
if ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSI) ||
((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSI_DIV2))) {
if ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSI)
|| ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSI_DIV2))) {
/* When HSI is used as system clock it will not disabled */
if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) {
return HAL_ERROR;
@@ -535,8 +535,8 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) {
if ((RCC_OscInitStruct->PLL2.PLL2State) != RCC_PLL2_NONE) {
/* This bit can not be cleared if the PLL2 clock is used indirectly as system
clock (i.e. it is used as PLL clock entry that is used as system clock). */
if ((__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE) && (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) &&
((READ_BIT(RCC->CFGR2, RCC_CFGR2_PREDIV1SRC)) == RCC_CFGR2_PREDIV1SRC_PLL2)) {
if ((__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE) && (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK)
&& ((READ_BIT(RCC->CFGR2, RCC_CFGR2_PREDIV1SRC)) == RCC_CFGR2_PREDIV1SRC_PLL2)) {
return HAL_ERROR;
} else {
if ((RCC_OscInitStruct->PLL2.PLL2State) == RCC_PLL2_ON) {

View File

@@ -654,8 +654,8 @@ HAL_StatusTypeDef HAL_RCCEx_EnablePLL2(RCC_PLL2InitTypeDef *PLL2Init) {
/* This bit can not be cleared if the PLL2 clock is used indirectly as system
clock (i.e. it is used as PLL clock entry that is used as system clock). */
if ((__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE) && (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) &&
((READ_BIT(RCC->CFGR2, RCC_CFGR2_PREDIV1SRC)) == RCC_CFGR2_PREDIV1SRC_PLL2)) {
if ((__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE) && (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK)
&& ((READ_BIT(RCC->CFGR2, RCC_CFGR2_PREDIV1SRC)) == RCC_CFGR2_PREDIV1SRC_PLL2)) {
return HAL_ERROR;
} else {
/* Check the parameters */
@@ -714,8 +714,8 @@ HAL_StatusTypeDef HAL_RCCEx_DisablePLL2(void) {
/* This bit can not be cleared if the PLL2 clock is used indirectly as system
clock (i.e. it is used as PLL clock entry that is used as system clock). */
if ((__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE) && (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) &&
((READ_BIT(RCC->CFGR2, RCC_CFGR2_PREDIV1SRC)) == RCC_CFGR2_PREDIV1SRC_PLL2)) {
if ((__HAL_RCC_GET_PLL_OSCSOURCE() == RCC_PLLSOURCE_HSE) && (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK)
&& ((READ_BIT(RCC->CFGR2, RCC_CFGR2_PREDIV1SRC)) == RCC_CFGR2_PREDIV1SRC_PLL2)) {
return HAL_ERROR;
} else {
/* Disable the main PLL2. */

View File

@@ -2450,8 +2450,8 @@ HAL_StatusTypeDef HAL_TIM_OnePulse_Start(TIM_HandleTypeDef *htim, uint32_t Outpu
UNUSED(OutputChannel);
/* Check the TIM channels state */
if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) ||
(complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) {
if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY)
|| (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) {
return HAL_ERROR;
}
@@ -2541,8 +2541,8 @@ HAL_StatusTypeDef HAL_TIM_OnePulse_Start_IT(TIM_HandleTypeDef *htim, uint32_t Ou
UNUSED(OutputChannel);
/* Check the TIM channels state */
if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) ||
(complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) {
if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY)
|| (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) {
return HAL_ERROR;
}
@@ -2874,8 +2874,8 @@ HAL_StatusTypeDef HAL_TIM_Encoder_Start(TIM_HandleTypeDef *htim, uint32_t Channe
TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY);
}
} else {
if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) ||
(complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) {
if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY)
|| (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) {
return HAL_ERROR;
} else {
TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY);
@@ -2997,8 +2997,8 @@ HAL_StatusTypeDef HAL_TIM_Encoder_Start_IT(TIM_HandleTypeDef *htim, uint32_t Cha
TIM_CHANNEL_N_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_BUSY);
}
} else {
if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) ||
(complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) {
if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY)
|| (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) {
return HAL_ERROR;
} else {
TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_BUSY);
@@ -3142,11 +3142,11 @@ HAL_StatusTypeDef HAL_TIM_Encoder_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Ch
return HAL_ERROR;
}
} else {
if ((channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY) || (channel_2_state == HAL_TIM_CHANNEL_STATE_BUSY) || (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY) ||
(complementary_channel_2_state == HAL_TIM_CHANNEL_STATE_BUSY)) {
if ((channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY) || (channel_2_state == HAL_TIM_CHANNEL_STATE_BUSY) || (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY)
|| (complementary_channel_2_state == HAL_TIM_CHANNEL_STATE_BUSY)) {
return HAL_BUSY;
} else if ((channel_1_state == HAL_TIM_CHANNEL_STATE_READY) && (channel_2_state == HAL_TIM_CHANNEL_STATE_READY) && (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_READY) &&
(complementary_channel_2_state == HAL_TIM_CHANNEL_STATE_READY)) {
} else if ((channel_1_state == HAL_TIM_CHANNEL_STATE_READY) && (channel_2_state == HAL_TIM_CHANNEL_STATE_READY) && (complementary_channel_1_state == HAL_TIM_CHANNEL_STATE_READY)
&& (complementary_channel_2_state == HAL_TIM_CHANNEL_STATE_READY)) {
if ((((pData1 == NULL) || (pData2 == NULL))) && (Length > 0U)) {
return HAL_ERROR;
} else {

View File

@@ -311,8 +311,8 @@ HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start(TIM_HandleTypeDef *htim) {
assert_param(IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE(htim->Instance));
/* Check the TIM channels state */
if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) ||
(complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) {
if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY)
|| (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) {
return HAL_ERROR;
}
@@ -382,8 +382,8 @@ HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start_IT(TIM_HandleTypeDef *htim) {
assert_param(IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE(htim->Instance));
/* Check the TIM channels state */
if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY) ||
(complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) {
if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY) || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY) || (complementary_channel_1_state != HAL_TIM_CHANNEL_STATE_READY)
|| (complementary_channel_2_state != HAL_TIM_CHANNEL_STATE_READY)) {
return HAL_ERROR;
}

View File

@@ -1,5 +1,6 @@
#ifndef CONFIGURATION_H_
#define CONFIGURATION_H_
#include "Settings.h"
#include <stdint.h>
/**
* Configuration.h
@@ -29,7 +30,7 @@
* Values -> SLEEP_TIME * 10; i.e. 5*10 = 50 Seconds!
*/
#define SLEEP_TIME 5 // x10 Seconds
#define SHUTDOWN_TIME 0 // Minutes -- Default shutdown to being off
#define SHUTDOWN_TIME 10 // Minutes
/**
* Auto start off for safety.
@@ -56,7 +57,6 @@
*
*/
#define ORIENTATION_MODE 0 // 0: Right 1:Left 2:Automatic - Default right
#define MAX_ORIENTATION_MODE 1 // Unlikely to ever change
#define REVERSE_BUTTON_TEMP_CHANGE 0 // 0:Default 1:Reverse - Reverse the plus and minus button assigment for temperature change
/**
@@ -103,8 +103,8 @@
#define DETAILED_IDLE 0 // 0: Disable 1: Enable - Default 0
// Due to large thermal mass of the PCB being heated we need to pull this back a bit
#define THERMAL_RUNAWAY_TIME_SEC 20
#define THERMAL_RUNAWAY_TEMP_C 2
#define THERMAL_RUNAWAY_TIME_SEC 45
#define THERMAL_RUNAWAY_TEMP_C 3
#define CUT_OUT_SETTING 0 // default to no cut-off voltage
#define RECOM_VOL_CELL 33 // Minimum voltage per cell (Recommended 3.3V (33))
@@ -146,20 +146,16 @@
#define MIN_BOOST_TEMP_F 300 // The min settable temp for boost mode °F
#define NO_DISPLAY_ROTATE // Disable OLED rotation by accel
#define SLEW_LIMIT 50 // Limit to 3.0 Watts per 64ms pid loop update rate slew rate
#define TIPTYPE_MHP30 1 // It's own special tip
#define ACCEL_SC7
#define ACCEL_MSA
#define PROFILE_SUPPORT
#define OLED_96x16 1
#define POW_PD 1
#define POW_PD_EXT 0
#define USB_PD_EPR_WATTAGE 0 /*No EPR*/
#define TEMP_NTC
#define I2C_SOFT_BUS_2 1
#define I2C_SOFT_BUS_1 1
#define OLED_I2CBB1 1
#define ACCEL_I2CBB1 1
#define I2C_SOFT_BUS_2
#define BATTFILTERDEPTH 8
#define OLED_I2CBB2
#define ACCEL_EXITS_ON_MOVEMENT
@@ -174,7 +170,7 @@
#define NO_SLEEP_MODE
#endif
#define FLASH_LOGOADDR (0x08000000 + (126 * 1024))
#define FLASH_LOGOADDR (0x08000000 + (62 * 1024))
#define SETTINGS_START_PAGE (0x08000000 + (127 * 1024))
#endif /* CONFIGURATION_H_ */

View File

@@ -30,9 +30,9 @@ void flash_save_buffer(const uint8_t *buffer, const uint16_t length) {
HAL_FLASH_Unlock();
for (uint16_t i = 0; i < (length / 2); i++) {
resetWatchdog();
HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, SETTINGS_START_PAGE + (i * sizeof(uint16_t)), data[i]);
HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, SETTINGS_START_PAGE+ (i*sizeof(uint16_t)), data[i]);
}
HAL_FLASH_Lock();
}
void flash_read_buffer(uint8_t *buffer, const uint16_t length) { memcpy(buffer, (uint8_t *)SETTINGS_START_PAGE, length); }
void flash_read_buffer(uint8_t *buffer, const uint16_t length) { memcpy(buffer, (uint8_t*)SETTINGS_START_PAGE, length); }

View File

@@ -1,13 +1,13 @@
#include "configuration.h"
#ifdef POW_PD
#include "BSP.h"
#include "I2CBB1.hpp"
#include "I2C_Wrapper.hpp"
#include "Pins.h"
#include "Setup.h"
#include "USBPD.h"
bool fusb_read_buf(const uint8_t deviceAddr, const uint8_t registerAdd, const uint8_t size, uint8_t *buf) { return I2CBB1::Mem_Read(deviceAddr, registerAdd, buf, size); }
bool fusb_read_buf(const uint8_t deviceAddr, const uint8_t registerAdd, const uint8_t size, uint8_t *buf) { return FRToSI2C::Mem_Read(deviceAddr, registerAdd, buf, size); }
bool fusb_write_buf(const uint8_t deviceAddr, const uint8_t registerAdd, const uint8_t size, uint8_t *buf) { return I2CBB1::Mem_Write(deviceAddr, registerAdd, (uint8_t *)buf, size); }
bool fusb_write_buf(const uint8_t deviceAddr, const uint8_t registerAdd, const uint8_t size, uint8_t *buf) { return FRToSI2C::Mem_Write(deviceAddr, registerAdd, (uint8_t *)buf, size); }
void setupFUSBIRQ() {
GPIO_InitTypeDef GPIO_InitStruct;

View File

@@ -6,7 +6,6 @@
*/
#include "BSP.h"
#include "I2CBB1.hpp"
#include "I2CBB2.hpp"
#include "Pins.h"
#include "Setup.h"
@@ -19,5 +18,6 @@ void preRToSInit() {
Setup_HAL(); // Setup all the HAL objects
BSPInit();
I2CBB2::init();
I2CBB1::init();
/* Init the IPC objects */
FRToSI2C::FRToSInit();
}

View File

@@ -60,7 +60,7 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc) {
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
HAL_GPIO_Init(TIP_TEMP_GPIO_Port, &GPIO_InitStruct);
GPIO_InitStruct.Pin = TMP36_INPUT_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
HAL_GPIO_Init(TMP36_INPUT_GPIO_Port, &GPIO_InitStruct);
GPIO_InitStruct.Pin = VIN_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
@@ -75,6 +75,55 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc) {
}
}
void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c) {
GPIO_InitTypeDef GPIO_InitStruct;
/**I2C1 GPIO Configuration
PB6 ------> I2C1_SCL
PB7 ------> I2C1_SDA
*/
GPIO_InitStruct.Pin = SCL_Pin | SDA_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* Peripheral clock enable */
__HAL_RCC_I2C1_CLK_ENABLE();
/* I2C1 DMA Init */
/* I2C1_RX Init */
hdma_i2c1_rx.Instance = DMA1_Channel7;
hdma_i2c1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
hdma_i2c1_rx.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_i2c1_rx.Init.MemInc = DMA_MINC_ENABLE;
hdma_i2c1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_i2c1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_i2c1_rx.Init.Mode = DMA_NORMAL;
hdma_i2c1_rx.Init.Priority = DMA_PRIORITY_LOW;
HAL_DMA_Init(&hdma_i2c1_rx);
__HAL_LINKDMA(hi2c, hdmarx, hdma_i2c1_rx);
/* I2C1_TX Init */
hdma_i2c1_tx.Instance = DMA1_Channel6;
hdma_i2c1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
hdma_i2c1_tx.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_i2c1_tx.Init.MemInc = DMA_MINC_ENABLE;
hdma_i2c1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_i2c1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_i2c1_tx.Init.Mode = DMA_NORMAL;
hdma_i2c1_tx.Init.Priority = DMA_PRIORITY_MEDIUM;
HAL_DMA_Init(&hdma_i2c1_tx);
__HAL_LINKDMA(hi2c, hdmatx, hdma_i2c1_tx);
/* I2C1 interrupt Init */
HAL_NVIC_SetPriority(I2C1_EV_IRQn, 15, 0);
HAL_NVIC_EnableIRQ(I2C1_EV_IRQn);
HAL_NVIC_SetPriority(I2C1_ER_IRQn, 15, 0);
HAL_NVIC_EnableIRQ(I2C1_ER_IRQn);
}
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim_base) {
if (htim_base->Instance == TIM3) {

View File

@@ -44,5 +44,10 @@ void ADC1_2_IRQHandler(void) { HAL_ADC_IRQHandler(&hadc1); }
// used for hal ticks
void TIM4_IRQHandler(void) { HAL_TIM_IRQHandler(&htim4); }
void I2C1_EV_IRQHandler(void) { HAL_I2C_EV_IRQHandler(&hi2c1); }
void I2C1_ER_IRQHandler(void) { HAL_I2C_ER_IRQHandler(&hi2c1); }
void DMA1_Channel6_IRQHandler(void) { HAL_DMA_IRQHandler(&hdma_i2c1_tx); }
void DMA1_Channel7_IRQHandler(void) { HAL_DMA_IRQHandler(&hdma_i2c1_rx); }
void EXTI9_5_IRQHandler(void) { HAL_GPIO_EXTI_IRQHandler(INT_PD_Pin); }

Some files were not shown because too many files have changed in this diff Show More