1
0
forked from me/IronOS

Compare commits

...

374 Commits

Author SHA1 Message Date
Ben V. Brown
70565de2e5 Update push for git permissions
https://github.com/actions/checkout/issues/760
2022-04-19 09:24:40 +10:00
Ben V. Brown
1b562c6466 Update version.h 2022-04-19 09:20:53 +10:00
Ben V. Brown
1fcee45146 Merge pull request #1275 from Ralim/dependabot/github_actions/actions/upload-artifact-3
chore(deps): bump actions/upload-artifact from 2 to 3
2022-04-11 22:35:36 +10:00
dependabot[bot]
55903020e9 chore(deps): bump actions/upload-artifact from 2 to 3
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-11 12:09:38 +00:00
Ben V. Brown
d1d403376f Fix typo in PD info screen 2022-04-04 13:07:48 +10:00
Federico Di Lorenzo
943d6bf0bd Symbols change (#1274)
* Costants change

Changing to lowercase for two reasons:
- Disambiguation with LiPos options
- In the SI the symbol for seconds is s (while for minutes is min but doesn't really matter)

* Update translation_BE.json

* Update translation_BG.json

* Update translation_CS.json

* Update translation_DA.json

* Update translation_DE.json

* Update translation_EL.json

* Update translation_EN.json

* Update translation_ES.json

* Update translation_FI.json

* Update translation_FR.json

* Update translation_HR.json

* Update translation_HU.json

* Update translation_IT.json

* Update translation_JA_JP.json

* Update translation_LT.json

* Update translation_NL.json

* Update translation_NL_BE.json

* Update translation_NO.json

* Update translation_PL.json

* Update translation_PT.json

* Update translation_RO.json

* Update translation_RU.json

* Update translation_SK.json

* Update translation_SL.json

* Update translation_SR_CYRL.json

* Update translation_SR_LATN.json

* Update translation_SV.json

* Update translation_TR.json

* Update translation_UK.json

* Update translation_VI.json

* Update translation_YUE_HK.json

* Update translation_ZH_CN.json

* Update translation_ZH_TW.json
2022-04-03 20:04:59 +10:00
Ben V. Brown
a73f634cff Pinecil pd tweaking (#1272)
* Raise PD max to 21V

* gui -> settingsGUI

* VBus probe cache

* Rough pass PD capabilities display

* Cleanup build errors

* PD Debug menu working

* Update make_translation.py

* settingsGUI

* Update GUIThread.cpp

* Nicer debug prints

* Show VBus in PD debug

* Update GUIThread.cpp

* Update make_translation.py

* Add docs

* Build tweaks for TS80P 😢

* Show PPS ranges
2022-04-03 12:58:07 +10:00
Ben V. Brown
787bc46bdc SC7A20 tweaks (#1251)
* Clean up handling of addresses

* Update SC7A20.hpp

* Try remapped Accel readings

* Fake LIS setup?

* Refining build options
2022-04-03 12:37:27 +10:00
discip
0b8192b690 Bootup logo settings (#1241)
Adds ability to adjust the time shown for the bootup logo.
2022-04-02 12:39:14 +11:00
federicodilo
62dd2abf12 Fixing units of measurement (#1259)
* Fix units of measurement

* Update HallSensor.md

* Update DebugMenu.md

* Update Troubleshooting.md

* Update Temperature.md

* Update Temperature.md

* Update Power.md

* Update Temperature.md

* Update Temperature.md

* Update DebugMenu.md

* Update DebugMenu.md

* Update Temperature.md

* Update README.md

* Update DebugMenu.md

* Update Flashing.md

* Update Menu.md

Co-authored-by: Ben V. Brown <5425387+Ralim@users.noreply.github.com>
2022-03-20 08:50:37 +11:00
Jim Tittsler
923915ca90 fix typo (#1266) 2022-03-16 20:30:52 +11:00
Ben V. Brown
232009bf54 Logo rework (#1232)
!Allows for new logo format that supports animation!
Also moves logos out of repo into their own repo for ease of management.


Changes:
* Remove deprecated logos
* Draft new Bootloader decoder
* Use new logo handler
* Simplify logo code further
* Fix time bug on static images
* Fix exit at end of animation
* Docs
* Interframe delay in 5ms increments
* Quick pass handling empty updates
* Exit at the end _after_ the frame delay
* One final delay
* Fix for overrun of logo data
* Fixes https://github.com/Ralim/IronOS-Meta/issues/7
2022-03-14 09:08:05 +11:00
River B
fd4d93db64 Updated Flashing doc (#1258)
* Update Flashing.md
2022-03-13 13:34:13 +11:00
Ben V. Brown
2c04f2ba2e Merge pull request #1255 from River-b/master
Added new Documentation file & edited existing documentation for clarity
2022-03-13 10:54:51 +11:00
River B
5e35029689 Update Flashing.md 2022-03-12 04:03:50 -08:00
River B
e5d68391de Update Flashing.md 2022-03-12 03:21:16 -08:00
River B
a5caac5587 Update Flashing.md 2022-03-12 03:06:31 -08:00
River B
47789e1af6 Update Flashing.md 2022-03-12 03:04:54 -08:00
River B
c920f5accf Update Flashing.md 2022-03-12 03:01:06 -08:00
River B
79efa3624a Update Flashing.md 2022-03-12 02:52:09 -08:00
River B
d0382cb256 Update Flashing.md 2022-03-12 02:42:02 -08:00
River B
0b7b17fc34 Update Flashing.md 2022-03-12 02:34:39 -08:00
River B
622760104d Update Flashing.md 2022-03-12 02:33:05 -08:00
River B
4161b752d7 Update Flashing.md 2022-03-12 02:28:30 -08:00
River B
1fbc3be223 Update Flashing.md 2022-03-12 02:22:05 -08:00
River B
6612efda75 Update Flashing.md 2022-03-12 02:18:41 -08:00
River B
823a8a2e11 Update Flashing.md 2022-03-12 02:15:46 -08:00
River B
7404f9dc36 Update Flashing.md 2022-03-12 01:23:07 -08:00
River B
1b146ca3c0 Update Flashing.md 2022-03-12 01:19:12 -08:00
River B
3b409d5dae Update Flashing.md 2022-03-12 01:16:12 -08:00
River B
7cb83850a8 Update Flashing.md 2022-03-12 01:13:28 -08:00
River B
ae96806676 Update Flashing.md 2022-03-12 00:55:20 -08:00
River B
1fbf48bbfe Update Flashing.md 2022-03-12 00:37:19 -08:00
River B
ff240d9b25 Update Flashing.md 2022-03-12 00:25:41 -08:00
River B
8f213bd26a Update Flashing.md 2022-03-12 00:23:21 -08:00
River B
4107e18d27 Update Flashing.md 2022-03-12 00:09:28 -08:00
River B
32553ef44e Update Flashing.md 2022-03-11 23:58:26 -08:00
River B
c484e383ce Update Flashing.md 2022-03-11 23:52:29 -08:00
River B
1a039e065e Update Flashing.md 2022-03-11 23:38:53 -08:00
River B
4ed42c733f Update Flashing.md 2022-03-11 23:18:36 -08:00
River B
792234250a Update Flashing.md 2022-03-11 23:15:42 -08:00
River B
733c7dcd4d Update Flashing.md 2022-03-11 23:07:57 -08:00
River B
4b5fdbeaf8 Update Flashing.md 2022-03-11 23:02:19 -08:00
River B
236dbfb6d3 Update Flashing.md 2022-03-11 22:56:03 -08:00
River B
35db18f549 Update Flashing.md 2022-03-11 22:52:14 -08:00
River B
2b2ecbfb54 Update Flashing.md 2022-03-11 22:16:08 -08:00
River B
723b6874f4 Update Flashing.md 2022-03-11 22:14:03 -08:00
River B
59b36c2831 Update Flashing.md 2022-03-11 22:10:14 -08:00
River B
71c4a8760e Update Flashing.md 2022-03-11 22:05:54 -08:00
River B
f9f5aa49cb Update Flashing.md 2022-03-11 22:03:50 -08:00
River B
e9bcd165fa Update Flashing.md 2022-03-11 21:53:41 -08:00
River B
d4920d2039 Update GettingStarted.md 2022-03-11 21:48:48 -08:00
River B
e87c7dfc51 Update GettingStarted.md 2022-03-11 21:47:03 -08:00
River B
645324af83 Update Flashing.md 2022-03-11 21:43:11 -08:00
River B
d3fd506156 Update DebugMenu.md 2022-03-11 19:54:02 -08:00
River B
652c2147a0 Update HallSensor.md 2022-03-11 18:45:53 -08:00
River B
7307c1a228 Merge branch 'Ralim:master' into master 2022-03-11 18:38:18 -08:00
River B
72441921c2 Update HallSensor.md 2022-03-11 17:44:10 -08:00
River B
a9a6bcbc99 Update GettingStarted.md 2022-03-11 17:42:17 -08:00
River B
6ba40cef3d Update GettingStarted.md 2022-03-11 17:39:00 -08:00
River B
ee9998ee64 Update GettingStarted.md 2022-03-11 17:37:12 -08:00
River B
a0e621630a Update GettingStarted.md 2022-03-11 17:34:49 -08:00
River B
4b2df71394 Update GettingStarted.md 2022-03-11 17:32:10 -08:00
River B
90e369d9ca Update HallSensor.md 2022-03-11 17:24:23 -08:00
River B
c238acc267 Update HallSensor.md 2022-03-11 17:24:02 -08:00
River B
e1279957a2 Update HallSensor.md 2022-03-11 17:23:52 -08:00
River B
3b3fd0fc87 Update HallSensor.md 2022-03-11 17:23:41 -08:00
River B
0a066d58ce Update HallSensor.md 2022-03-11 17:23:30 -08:00
River B
9b27da57f0 Update HallSensor.md 2022-03-11 17:22:52 -08:00
River B
7899b3aee1 Update HallSensor.md 2022-03-11 13:07:13 -08:00
River B
da56233b37 Update HallSensor.md 2022-03-11 13:02:06 -08:00
River B
b333768166 Rename Hall Sensor.md to HallSensor.md 2022-03-11 12:53:48 -08:00
River B
1a115a520c Create Hall Sensor.md 2022-03-11 12:53:22 -08:00
River B
4d5cc80d10 Update Logo.md 2022-03-11 12:51:40 -08:00
River B
ec094e7720 Update GettingStarted.md 2022-03-11 12:42:51 -08:00
River B
4277758db7 Update GettingStarted.md 2022-03-11 12:42:26 -08:00
River B
1ecac417b0 Update GettingStarted.md 2022-03-11 12:39:35 -08:00
River B
d4cefa3952 Update GettingStarted.md 2022-03-11 12:34:07 -08:00
River B
c52862b153 Update GettingStarted.md 2022-03-11 12:17:31 -08:00
River B
4bb1afc0a5 Update GettingStarted.md 2022-03-11 12:16:56 -08:00
River B
be2407d792 Update GettingStarted.md 2022-03-11 12:16:06 -08:00
River B
ae65374205 Update GettingStarted.md 2022-03-11 12:13:04 -08:00
River B
74a177338f Update GettingStarted.md 2022-03-11 12:10:09 -08:00
River B
21d586153a Update GettingStarted.md 2022-03-11 12:06:50 -08:00
River B
37e87f826d Update GettingStarted.md 2022-03-11 12:06:23 -08:00
River B
fe6dfaa40b Update GettingStarted.md 2022-03-11 12:00:21 -08:00
River B
41ae8e9cbe Update GettingStarted.md 2022-03-11 11:58:10 -08:00
River B
cf3f1c9e5a Update GettingStarted.md 2022-03-11 11:57:23 -08:00
River B
71c450729e Update GettingStarted.md 2022-03-11 11:55:48 -08:00
River B
005856023d Update GettingStarted.md 2022-03-11 10:30:24 -08:00
River B
638cce8b1b Update GettingStarted.md 2022-03-11 10:29:32 -08:00
River B
82ed8beac2 Update Flashing.md 2022-03-11 10:27:16 -08:00
River B
86dce76cab Update Flashing.md 2022-03-11 10:12:28 -08:00
River B
51d2fbb433 Update DebugMenu.md 2022-03-11 10:07:00 -08:00
River B
07fd93af8f Update DebugMenu.md 2022-03-11 10:06:27 -08:00
River B
66fe4061df update debugging details 2022-03-11 10:05:16 -08:00
Ben V. Brown
f442c0518f Merge pull request #1250 from River-b/master
Adding Vietnamese translation
2022-03-10 19:09:40 +11:00
River B
2b5f356bb5 Update translation_VI.json 2022-03-09 20:10:32 -08:00
River B
65e96502c4 Merge pull request #2 from prokrypt/patch-3
Create translation_VI.json
2022-03-09 19:50:46 -08:00
prokrypt
1e8465b1c0 Create translation_VI.json 2022-03-09 19:40:15 -08:00
River B
c8d8ff31e8 added VI langage
added VI to language list
2022-03-09 19:35:21 -08:00
Ben V. Brown
4de393ada1 Merge pull request #1247 from Ralim/dependabot/github_actions/actions/checkout-3
chore(deps): bump actions/checkout from 2 to 3
2022-03-07 23:26:45 +11:00
dependabot[bot]
ccdc2376cd chore(deps): bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 12:04:48 +00:00
Ben V. Brown
42c1a071a8 Merge pull request #1246 from discip/patch-2
fixed a typo
2022-03-04 08:21:24 +11:00
discip
638a2a8025 fixed a typo 2022-03-03 18:19:01 +01:00
Ben V. Brown
3fb1dd5f63 Merge pull request #1245 from balika011/master
Fix translation_HU.json
2022-03-02 09:38:01 +11:00
Balázs Triszka
0c40012d5e Update translation_HU.json 2022-03-01 23:24:43 +01:00
Ben V. Brown
7706aaa651 Merge pull request #1244 from dchauran/patch-2
Update pinecil flashing instructions
2022-03-01 14:38:40 +11:00
Derek Chauran
fa3443dafb Update pinecil flashing instructions
The PINE64 Updater tool does support the latest releases. I almost did not try it because of the statement in this doc, but it flashed 2.17 to my pinecil just fine.
2022-02-28 19:04:22 -08:00
Ben V. Brown
4576b81301 Merge pull request #1240 from jvitkauskas/update-lt
Update Lithuanian translation
2022-02-22 08:15:49 +11:00
Julius Vitkauskas
c6e47cc65b Update Lithuanian translation 2022-02-21 23:11:05 +02:00
Ben V. Brown
14cc6cd3e8 Merge pull request #1239 from prokrypt/patch-3
Update TranslationEditor.html
2022-02-21 13:52:08 +11:00
prokrypt
ba3e5760f4 Update TranslationEditor.html
Remove toLowerCase() from languageCode.
2022-02-20 13:49:01 -08:00
Ben V. Brown
324921a8c3 Merge pull request #1236 from Ralim/doc
Starting troubleshooting list
2022-02-17 22:43:18 +11:00
Ben V. Brown
b6a75bf8f9 Merge branch 'master' into doc 2022-02-17 22:37:38 +11:00
Ben V. Brown
c46c9ff94a Add RMA note 2022-02-17 22:23:54 +11:00
Ben V. Brown
ca5af38ffc Merge pull request #1235 from johan-m-o/patch-1
Update Pincecil flashing instructions
2022-02-17 22:17:17 +11:00
Johan
633b639cab More clarifications on using old dfu-util 2022-02-17 12:16:28 +01:00
Ben V. Brown
14414b9675 Starting troubleshooting list 2022-02-17 22:14:47 +11:00
Johan
b9fcf044a9 Clarification about old dfu-util version 2022-02-17 12:03:20 +01:00
Johan
79bdb29fa7 Update Pincecil instructions to cover an issue
where more than one DFU interface is detected.
2022-02-17 11:29:07 +01:00
Ben V. Brown
d86cb18515 Merge pull request #1231 from Ralim/new-pixel-editor
Enhanced to have PNG download and scaling
2022-02-15 18:37:13 +11:00
Ben V. Brown
340403656c Enhanced to have PNG download and scaling
Original updates started by @ Pikapoo on the Pinecil community chat
Further improvements and png work by Robert Lipe <robertlipe@gmail.com>
2022-02-15 18:29:21 +11:00
Ben V. Brown
feffc3025c Merge pull request #1230 from JugglerLKR/master
Update translation_RU.json
2022-02-14 08:19:01 +11:00
JugglerLKR
58ab43cd09 Update translation_RU.json
Updated QC max voltage
Typo in 4S-6S cells
2022-02-13 22:22:29 +03:00
Ben V. Brown
e065be37d9 Force SC7 to probe last 2022-02-12 18:25:52 +11:00
Ben V. Brown
5fd255969c Merge pull request #1225 from Ralim/ts80-accel
TS80P Accelerometer version detection again
2022-02-12 12:24:37 +11:00
Ben V. Brown
8568cd0909 Merge branch 'master' into ts80-accel 2022-02-12 12:21:45 +11:00
Ben V. Brown
43a176796d Update version.h 2022-02-12 12:03:55 +11:00
Ben V. Brown
d6f4e1ee92 Merge branch 'master' into ts80-accel 2022-02-12 11:58:52 +11:00
Ben V. Brown
3747d22773 Flip SC7 2022-02-12 11:30:03 +11:00
Ben V. Brown
6ecf6302c4 Merge pull request #1224 from Ralim/only-vbus-test-on-pinecil
Only vbus mod check on pinecil
2022-02-12 11:15:15 +11:00
Ben V. Brown
730f7cf415 SC7A20 handle address 2022-02-12 11:13:41 +11:00
Ben V. Brown
ba119007ff Step 1: make LIS2DH12 driver stricter 2022-02-12 11:04:28 +11:00
Ben V. Brown
16882fee61 only vbus mod check on pinecil
If a TS80P has it connected, other things blow up first at 20V
2022-02-12 10:34:22 +11:00
Ben V. Brown
3869003cf4 Merge pull request #1223 from discip/logo-update
logo update
2022-02-12 09:57:49 +11:00
Ben V. Brown
2d93f048a4 Merge pull request #1216 from Ralim/Hall-sensor-tune
Update Hall sensor tuning
2022-02-12 09:56:53 +11:00
discip
e358c02f1f Merge branch 'master' into logo-update 2022-02-11 23:56:21 +01:00
Ben V. Brown
20d39b6627 Update push.yml 2022-02-12 09:56:09 +11:00
discip
e07c787b0f Merge branch 'master' into logo-update 2022-02-11 23:37:35 +01:00
Ben V. Brown
a1cee2012b Merge branch 'master' into Hall-sensor-tune 2022-02-12 09:34:55 +11:00
Ben V. Brown
204231b24f Merge pull request #1219 from Ralim/TS80-SC7
Enable all accelerometer models for miniware
2022-02-12 09:32:44 +11:00
Ben V. Brown
e604f4c8a2 Merge branch 'master' into Hall-sensor-tune 2022-02-12 09:30:24 +11:00
Ben V. Brown
86ef716a92 Merge branch 'master' into TS80-SC7 2022-02-12 09:30:18 +11:00
discip
a0e8757dd1 logo update_IX 2022-02-10 19:22:15 +01:00
discip
9907009af6 logo update_VIII 2022-02-10 02:02:57 +01:00
discip
60fc7ccd1d logo update_VII 2022-02-10 01:44:48 +01:00
discip
4678f71799 logo update_VI 2022-02-10 01:25:22 +01:00
discip
74503e9e0c logo update_V 2022-02-10 01:16:40 +01:00
discip
18314d09f9 logo update_IV 2022-02-10 01:14:24 +01:00
discip
7ab5804682 logo update_III 2022-02-10 00:42:16 +01:00
discip
69639c8ad2 logo update_II 2022-02-10 00:40:15 +01:00
discip
a9a71d182d IronOS logo update 2022-02-10 00:37:25 +01:00
Ben V. Brown
a84bf967e1 Toggle on all known accelerometers 2022-02-09 22:00:54 +11:00
Ben V. Brown
eee879eed4 Update Settings.cpp 2022-02-09 21:49:15 +11:00
Ben V. Brown
a6547d63ac Update allll the translation files for Hall effect sensitivity 2022-02-09 21:40:15 +11:00
Ben V. Brown
afa20b57a4 Merge pull request #1222 from Ralim/ci
Merge json metadata into one file
2022-02-09 21:19:21 +11:00
Ben V. Brown
7fcac3aaf1 making hall effect 0-9 scale 2022-02-09 21:18:15 +11:00
Ben V. Brown
6c058f93d5 Update push.yml 2022-02-09 21:11:47 +11:00
Ben V. Brown
0b894ffaf3 merged metadata? 2022-02-09 21:09:18 +11:00
Ben V. Brown
641fc76e49 Update configuration.h 2022-02-08 20:55:07 +11:00
Ben V. Brown
02d065778c Update Settings.cpp 2022-02-08 18:28:33 +11:00
Ben V. Brown
3f26bc0103 Update Settings.cpp 2022-02-08 18:26:23 +11:00
Ben V. Brown
811089868d Merge pull request #1218 from Ralim/create-json-meta
Create json meta
2022-02-08 12:55:24 +11:00
Ben V. Brown
d8e0d86084 Update metadata.py 2022-02-07 21:48:57 +11:00
Ben V. Brown
ee0eeec08f Update push.yml 2022-02-07 21:37:59 +11:00
Ben V. Brown
8c5c166109 Update metadata.py 2022-02-07 21:34:01 +11:00
Ben V. Brown
5e777a97d2 Draft ci 2022-02-07 21:31:33 +11:00
Ben V. Brown
91c9c73d4a First pass of metadata generator 2022-02-07 21:22:13 +11:00
Ben V. Brown
42609ad9fc Delete setup.sh 2022-02-06 19:49:27 +11:00
Ben V. Brown
3967525190 Update DebugMenu.md 2022-02-06 19:26:33 +11:00
Ben V. Brown
ebcb16a572 Update DebugMenu.md 2022-02-06 19:24:36 +11:00
Ben V. Brown
5f8fe9ae56 Update Hall sensor tuning 2022-02-06 17:34:34 +11:00
Ben V. Brown
5750afb4f6 Merge pull request #1215 from Ralim/pinecil-mod-detect
Pinecil mod detection
2022-02-06 16:04:50 +11:00
Ben V. Brown
78344279d3 Merge branch 'master' into pinecil-mod-detect 2022-02-06 15:56:57 +11:00
Ben V. Brown
f715f77848 fix oled layout _again_ 2022-02-06 15:56:41 +11:00
Ben V. Brown
fb297704b3 Update make_translation.py 2022-02-06 14:45:40 +11:00
Ben V. Brown
0735d4f704 Update GUIThread.cpp 2022-02-06 14:42:01 +11:00
Ben V. Brown
1969d860c7 Update USBPD.cpp 2022-02-06 14:41:52 +11:00
Ben V. Brown
a2918ae8a4 Update usb-pd 2022-02-06 14:41:49 +11:00
Ben V. Brown
265e152c18 Add to debug menu 2022-02-06 13:15:01 +11:00
Ben V. Brown
3c83b59b53 Expose Vbus 2022-02-06 13:14:53 +11:00
Ben V. Brown
a3cecb852c Update make_translation.py 2022-02-06 12:33:22 +11:00
Ben V. Brown
2f28e6b487 Merge pull request #1211 from Ralim/format-to-alpine
Format to alpine
2022-02-05 13:54:10 +11:00
Ben V. Brown
ab6b07e422 Alpine for compression testing 2022-02-05 13:49:38 +11:00
Ben V. Brown
6b3ba37243 Use alpine image for clang-format 2022-02-05 13:34:04 +11:00
Ben V. Brown
0462597876 Merge pull request #1208 from Ralim/rework
Fix lefty mode again
2022-02-05 13:18:36 +11:00
Ben V. Brown
0fcde2806d Update GUIThread.cpp 2022-02-05 13:11:15 +11:00
Ben V. Brown
471c4513bb Merge pull request #1207 from Ralim/rework
Cleanup OLED_FLIP logic
2022-02-05 12:46:48 +11:00
Ben V. Brown
cdf8d29fb7 Update Flashing.md 2022-02-05 12:46:23 +11:00
Ben V. Brown
1122d18526 Merge branch 'master' into rework 2022-02-05 12:43:53 +11:00
Ben V. Brown
49c80d2d3f Update OLED.hpp 2022-02-05 12:39:40 +11:00
Ben V. Brown
80acf58b43 Update OLED.hpp 2022-02-05 12:37:41 +11:00
Ben V. Brown
1bdf9654d1 Merge pull request #1206 from Ralim/ts100-runaway
TS100 warning fix (#1192)
2022-02-05 12:34:19 +11:00
Ben V. Brown
513a2d66bb Always set cursor back to (0,0) 2022-02-05 12:34:08 +11:00
Ben V. Brown
89070e1f40 Merge branch 'master' into ts100-runaway 2022-02-05 12:32:33 +11:00
Ben V. Brown
15763dd55b Cleanup OLED_FLIP logic
Update OLED.hpp

Update OLED.hpp

Update OLED.hpp
2022-02-05 12:23:51 +11:00
Ben V. Brown
3a32e88d5c Merge pull request #1205 from discip/HALL-only-on-Pinecil
Show Hall effect readout in debug only on enabled devices
2022-02-05 12:04:38 +11:00
discip
31c424bd72 Update make_translation.py 2022-02-05 01:55:54 +01:00
Ben V. Brown
4f38236a00 Bugfix: Only change speed of pwm at end of cycle interrupt 2022-02-05 10:23:56 +11:00
Ben V. Brown
a461577ee2 Update PIDThread.cpp
Should use osDelay to be scheduler safe
2022-02-05 10:23:42 +11:00
Ben V. Brown
c38dfb6007 Dont wrap negative deltas 2022-02-05 09:59:45 +11:00
discip
eba52bfd5b removing HALL from unsupported devices _2 2022-02-04 23:43:13 +01:00
discip
c74bc36178 removing HALL from unsupported devices 2022-02-04 23:42:20 +01:00
Ben V. Brown
4f2179287e Merge pull request #1196 from ritkit/master
Add raw hall effect output to the debug menu.
2022-02-05 09:08:37 +11:00
Ben V. Brown
a19b33c85e Take absolute value of hall sensor for debug menu 2022-02-05 09:05:15 +11:00
Ben V. Brown
73266054d1 Merge branch 'master' into master 2022-02-05 08:55:50 +11:00
Ben V. Brown
7b8240d9b5 Fix: Only show hall sensor settings if hall sensor is fitted 2022-02-05 08:51:40 +11:00
Ben V. Brown
e861ab55a5 Merge pull request #1204 from discip/patch-1
fixed a typo
2022-02-05 08:29:37 +11:00
Ben V. Brown
401ffa4ea9 Merge pull request #1202 from Ralim/ts100-gd32
TS100 GD32
2022-02-05 08:29:28 +11:00
discip
f5ef025ecf fixed a typo 2022-02-03 23:39:34 +01:00
Ben V. Brown
1dfeeca01e Merge branch 'master' into master 2022-02-02 22:49:56 +11:00
Ben V. Brown
6b25e603e0 use IRQ mode 2022-01-30 13:30:44 +11:00
Ben V. Brown
d6b65490f4 Testing hacky DMA workaround
Revert "Testing hacky DMA workaround"

This reverts commit 5c78958d77679d706b2a922468bfdd978418b937.
2022-01-30 12:37:49 +11:00
Ben V. Brown
969611cf79 Turn DMA back on 2022-01-30 11:42:41 +11:00
Ben V. Brown
6ba5bab3ff Merge branch 'master' into ts100-gd32 2022-01-30 10:37:00 +11:00
Ben V. Brown
6054928fa4 Merge pull request #1190 from cybernesto/dfulogo
Convert logos directly into DFU format
2022-01-25 08:32:15 +11:00
cybernesto
cfbcf7e9b8 Merge branch 'dfulogo' of https://github.com/cybernesto/IronOS into dfulogo 2022-01-24 17:23:38 +01:00
cybernesto
b9faa443bb Added IronOS in DFU format 2022-01-24 17:23:26 +01:00
cybernesto
5c3b9a2555 Merge branch 'master' into dfulogo 2022-01-24 17:18:28 +01:00
cybernesto
40c2e8636c Merge branch 'master' into dfulogo 2022-01-24 17:14:53 +01:00
Ben V. Brown
07586f5d82 Merge pull request #1197 from JugglerLKR/patch-1
Update translation_RU.json
2022-01-24 09:01:31 +11:00
JugglerLKR
f3863b73ce Update translation_RU.json
Some obsolete strings were deleted.
ThermalRunaway is not translated intentionally. It can be translated as physical term "Тепловой разгон", but it is better to leave at as it is for searching purposes for users having troubles with their soldering irons.
2022-01-23 17:31:18 +03:00
Christian Rahl
6a9c648b62 < the place where 2 spaces should have been. 2022-01-22 22:58:46 -05:00
Christian Rahl
9eaa66f063 Tomato tomatoo, tabss or spacess 2022-01-22 22:53:32 -05:00
Christian Rahl
d91253a95b Clang 2.0 2022-01-22 22:51:19 -05:00
Christian Rahl
bf7909123c CLANG HATES ME 2022-01-22 22:45:00 -05:00
Kit
bf739a9e9a Merge pull request #1 from ritkit/Halleffect 2022-01-22 22:37:31 -05:00
Christian Rahl
7bb5b6adb7 Added Ifdef to check against if the hall sensor is available to read. If not, read back OFF. 2022-01-22 22:30:15 -05:00
Christian Rahl
05f38b096c Add new debug menu item to view raw hall effect sensor output. 2022-01-22 19:33:24 -05:00
Ben V. Brown
294f9c2ff6 Merge pull request #1183 from Ralim/updating-translation-editor
Updating translation editor + new Settings.md docs that are auto generated
2022-01-21 09:38:56 +11:00
Ben V. Brown
f71ec30ed0 new settings 2022-01-21 09:20:56 +11:00
Ben V. Brown
4a5afc6301 Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 09:09:18 +11:00
Ben V. Brown
eb75a96671 Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 09:09:10 +11:00
Ben V. Brown
1757ad442f Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 09:09:04 +11:00
Ben V. Brown
7ced8531c5 Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 09:00:52 +11:00
Ben V. Brown
021eb1a7e6 Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 09:00:30 +11:00
Ben V. Brown
5f52141a42 Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 09:00:19 +11:00
Ben V. Brown
ca21c4859d Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 09:00:12 +11:00
Ben V. Brown
d375c088b1 Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 08:59:59 +11:00
Ben V. Brown
59ef869c33 Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 08:57:12 +11:00
Ben V. Brown
da5d3ca42b Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 08:56:49 +11:00
Ben V. Brown
7286ff4db8 Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 08:56:37 +11:00
Ben V. Brown
c0808e8c9c Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 08:56:19 +11:00
Ben V. Brown
2289034e45 Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 08:56:11 +11:00
Ben V. Brown
6da9bae3eb Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 08:56:02 +11:00
Ben V. Brown
58bac37ed7 Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 08:55:54 +11:00
Ben V. Brown
d2723ddf61 Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 08:55:45 +11:00
Ben V. Brown
59a75bb8d0 Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 08:55:32 +11:00
Ben V. Brown
dbb2605042 Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 08:47:58 +11:00
Ben V. Brown
98f4ab79bd Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 08:47:49 +11:00
Ben V. Brown
c06b40fd51 Update Translations/translations_def.js
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2022-01-21 08:41:03 +11:00
cybernesto
9028ef7f5a Documentation and Logos updated
Adapted the instructions for DFU file usage.
Removed .bin and .hex Pinecil logos.
2022-01-20 18:12:06 +01:00
cybernesto
83655d5532 Removed unnecessary variables
Optimized build function.
Increased version string.
Set target name.
2022-01-20 18:00:33 +01:00
cybernesto
6fc81424a0 Convert logo to DFU
Works but still has some unnecessary parts of dfuse-pack.
2022-01-20 17:31:23 +01:00
Ben V. Brown
ae34b0095d Merge branch 'master' into updating-translation-editor 2022-01-20 20:38:13 +11:00
Ben V. Brown
c691e4f9b3 Update Settings.md 2022-01-20 20:37:57 +11:00
Ben V. Brown
b36f84ea08 Update translations_def.js 2022-01-20 20:37:54 +11:00
Ben V. Brown
2762593952 Merge pull request #1188 from discip/idlescreenBG-->-buttonA-&-buttonB
idlescreenBG  -> buttonA & buttonB
2022-01-20 14:17:25 +11:00
discip
7ceb2ddd71 Merge branch 'master' into idlescreenBG-->-buttonA-&-buttonB 2022-01-20 02:17:33 +01:00
Ben V. Brown
f55e8c100a Merge pull request #1189 from discip/patch-1
Update Flashing.md
2022-01-20 12:06:46 +11:00
discip
dcbf357111 Update Flashing.md 2022-01-20 01:42:32 +01:00
discip
c02628f5bf Update Font.h 2022-01-19 23:51:46 +01:00
discip
2fe86b748e Update Font.h 2022-01-19 23:11:09 +01:00
discip
1c5361613c Update Font.h 2022-01-19 23:09:16 +01:00
discip
f1addbf9a0 Update GUIThread.cpp 2022-01-19 22:40:39 +01:00
discip
af413a1b4b Update Font.h 2022-01-19 22:39:40 +01:00
Ben V. Brown
6d2bb71b86 Merge branch 'master' into updating-translation-editor 2022-01-19 20:54:08 +11:00
Ben V. Brown
a9f8d88a2f Update Settings.md 2022-01-19 20:53:58 +11:00
Ben V. Brown
900957a9ff Update translations_def.js 2022-01-19 20:53:49 +11:00
Ben V. Brown
649d6a330b More grammer touchups 2022-01-19 20:52:54 +11:00
Ben V. Brown
8c29347c26 Update definitions and regenerate output 2022-01-19 20:49:04 +11:00
discip
4feb68923b Update Font.h 2022-01-19 02:16:31 +01:00
discip
cb7756d381 Update GUIThread.cpp 2022-01-19 02:08:03 +01:00
discip
385bcfa59e Update Font.h 2022-01-19 02:07:38 +01:00
Ben V. Brown
28e097e001 Merge pull request #1185 from hippi-viking/master
Hungarian translateion update v2
2022-01-19 08:39:43 +11:00
Hippi Viking
8a1740bc38 Hungarian translation update v2
should be good now (hopefully) :)
2022-01-18 18:14:38 +00:00
Hippi Viking
a9e47a578d Hungarian translation update 2022-01-18 18:00:08 +00:00
Ben V. Brown
8479991b6c Fix typo 2022-01-18 23:11:25 +11:00
Ben V. Brown
996821ff69 Update gen_menu_docs.py 2022-01-18 23:10:45 +11:00
Ben V. Brown
415f9dfcf3 Update gen_menu_docs.py 2022-01-18 23:09:51 +11:00
Ben V. Brown
cf70c65a95 Create Settings.md 2022-01-18 23:06:38 +11:00
Ben V. Brown
3ed6b52a1e Create script to automatically generate a settings menu help file 2022-01-18 23:06:36 +11:00
Ben V. Brown
b0dfeec6f2 Update translations_def.js 2022-01-18 23:04:24 +11:00
Ben V. Brown
d7b21c213e Update Translation.h 2022-01-18 21:44:33 +11:00
Ben V. Brown
1e065f0868 Update header file to remove the unused settings 2022-01-18 21:15:47 +11:00
Ben V. Brown
b64c4f3d53 Show descriptions for all fields 2022-01-18 21:06:06 +11:00
Ben V. Brown
686657a418 Adding descriptions to all fields 2022-01-18 21:00:33 +11:00
Ben V. Brown
3826c2d2fe Use the nicer settings reset message in menu 2022-01-18 20:58:32 +11:00
Ben V. Brown
992706e954 Update translation_EN.json 2022-01-18 20:58:03 +11:00
Ben V. Brown
ee5216ce3b Update translation editor to show descriptions and add said descriptions to settings
Working on #1092
2022-01-18 20:33:57 +11:00
Ben V. Brown
825ac54a4c Merge pull request #1180 from discip/logos
Sdded preview for the logos & an animated logo + hex-files + update TS80 idle screen
2022-01-16 17:22:27 +11:00
Ben V. Brown
6054236213 Merge branch 'master' into logos 2022-01-16 17:19:43 +11:00
Ben V. Brown
96e30aa483 Merge pull request #1181 from Ralim/ralim/settings-patch
Patch settings decrement to honour increment size and not skip max
2022-01-16 17:19:22 +11:00
discip
429aca55cf logo preview update 2022-01-15 00:48:29 +01:00
discip
f6b7a3a1f1 updated logos 2022-01-15 00:23:19 +01:00
discip
59c7c7245a updated idle screen & missing tip for TS80P 2022-01-14 23:36:15 +01:00
discip
0515652f78 TS80 logo update 2022-01-14 23:15:39 +01:00
Ben V. Brown
d59db82ead Update Settings.cpp 2022-01-15 08:52:27 +11:00
discip
89c6d69b39 Merge branch 'master' into logos 2022-01-13 22:13:05 +01:00
discip
15834577d3 added corresponding hex-files
**10 fps** is what I consider looking good for this one
2022-01-13 22:12:17 +01:00
Ben V. Brown
77fe3f3f7e Merge pull request #1178 from cybernesto/binlogo
Add capability of writing logos in binary format
2022-01-14 07:51:18 +11:00
discip
67c4552504 added preview for the logos & an animated logo 2022-01-13 21:24:14 +01:00
cybernesto
7156bee58b Merge branch 'binlogo' of https://github.com/cybernesto/IronOS into binlogo 2022-01-12 18:47:28 +01:00
cybernesto
b46949ae09 Renamed logo. Added Pinecil_L.bin
Changed name of Pinecil logos to match current naming.
2022-01-12 18:47:18 +01:00
cybernesto
2fbfb16017 Merge branch 'master' into binlogo 2022-01-12 17:51:34 +01:00
cybernesto
1564f881f4 Add capability of writing logos in binary format
Extended python script to support writing .bin files directly. This avoids the additional step of using objcopy.

Updated the 001_PINECIL.bin file to match the PNG.
2022-01-12 17:45:22 +01:00
Ben V. Brown
aea4a01d81 Update I2C_Wrapper.cpp 2022-01-12 20:03:58 +11:00
Ben V. Brown
f79dec5ee3 TEMP: Disable DMA I2C 2022-01-12 20:03:44 +11:00
Ben V. Brown
397c7a2406 Update stm32f1xx_hal_msp.c 2022-01-12 19:32:21 +11:00
Ben V. Brown
f15069b97b Merge pull request #1176 from HoroTW/patch-1
Update Logo.md - simplify the objcopy command
2022-01-12 08:22:19 +11:00
Ben V. Brown
c0eac7e217 Merge pull request #1175 from discip/patch-1
updated some entries
2022-01-12 08:21:57 +11:00
Horo
3d15e35f6c Update Logo.md - simplify the objcopy command
Not all people will have the knowledge to understand what it means to use any objcopy command.
Therefore, the default should be an objcopy, which is easy to obtain on Linux.
2022-01-11 18:17:17 +01:00
discip
581f59c8e5 updated some entries 2022-01-11 16:48:09 +01:00
discip
e8fc7cc7f8 updated and added logos (#1174)
Updated logos
2022-01-11 17:42:17 +11:00
Ben V. Brown
5058e18138 Merge pull request #1172 from discip/test
updated HomeScreen.png
2022-01-10 09:43:32 +11:00
discip
9ddb2466ff updated HomeScreen.png 2022-01-09 23:39:04 +01:00
Ben V. Brown
fbf83fa71e Merge pull request #1169 from Ralim/alpine
Migrating to Alpine build environment for CI and Dockerfile
2022-01-09 11:59:52 +11:00
Ben V. Brown
42a62ba874 Merge branch 'master' into alpine 2022-01-09 11:51:53 +11:00
Ben V. Brown
1a4ff29297 Merge pull request #1171 from discip/master
changed the source of the DisconnectedTip Icon to reduce code 😊
2022-01-09 11:51:41 +11:00
discip
7db7a11787 even a bit less code 2022-01-08 17:38:38 +01:00
discip
4989a030d5 flipped DisconnecetedTip Icon gets now generated 2022-01-08 16:56:52 +01:00
discip
c0095bd98f removed flipped DisconnecetedTip hex code 2022-01-08 16:55:40 +01:00
Ben V. Brown
12e8e01ca7 Update Makefile 2022-01-08 12:28:55 +11:00
Ben V. Brown
18c376deff Cleanup Makefile 2022-01-08 12:25:08 +11:00
Ben V. Brown
e52da0088d Update Dockerfile 2022-01-08 12:25:03 +11:00
Ben V. Brown
3483c4736c Merge branch 'master' into alpine 2022-01-08 11:52:32 +11:00
Ben V. Brown
26493c0104 Merge pull request #1168 from discip/master
Changed default orientation to Auto for TS100, TS80(P) & Pinecil
2022-01-08 11:51:23 +11:00
discip
21eba602c3 cleaning up 2022-01-07 23:31:06 +01:00
discip
5e5f1b8d99 reverted swap II 2022-01-07 23:26:44 +01:00
discip
83f0949690 reverted swap I 2022-01-07 23:25:56 +01:00
discip
a23ac27fba follow up on detailed mode 2022-01-07 22:32:46 +01:00
discip
6bfe915614 revert removing inverted screen V. 2022-01-07 22:04:09 +01:00
discip
5b00e95255 revert removing inverted screen IV. 2022-01-07 22:02:54 +01:00
discip
055b70d45b revert removing inverted screen III. 2022-01-07 21:57:56 +01:00
discip
4061bfb182 revert removing inverted screen II. 2022-01-07 21:57:04 +01:00
discip
566e27d698 revert removing inverted screen I. 2022-01-07 21:56:03 +01:00
Ben V. Brown
ef57dea866 Merge branch 'master' into alpine 2022-01-07 22:05:07 +11:00
Ben V. Brown
cd86c34b90 Add musl headers for multi-lang 2022-01-07 21:57:42 +11:00
Ben V. Brown
d712f6875b Update Makefile 2022-01-07 21:28:25 +11:00
discip
f3808e0ba4 part 5 of removed invert screen via commenting 2022-01-07 03:03:27 +01:00
discip
12dfcd76aa part 4 of removed invert screen via commenting
and some cleanup
2022-01-07 03:02:38 +01:00
discip
0e4319ff2e part 3 of removed invert screen via commenting 2022-01-07 03:01:16 +01:00
discip
250199d996 part 2 of removed invert screen via commenting 2022-01-07 03:00:33 +01:00
discip
585fe5dec9 part 1 of removed invert screen via commenting 2022-01-07 02:57:55 +01:00
discip
9a05a392c1 changed default orientation to auto for Pinecil 2022-01-07 02:54:36 +01:00
discip
4e890dd569 changed default orientation to auto for TS100/80(P) 2022-01-07 02:53:21 +01:00
Ben V. Brown
fd7354d930 Merge pull request #1164 from Ralim/settings
Settings
2022-01-07 08:40:40 +11:00
Ben V. Brown
f85c62c878 Merge pull request #1167 from ysard/fix_flash_ts100_linux
Fix flash ts100 linux
2022-01-07 08:40:27 +11:00
Ben V. Brown
15d4da9b81 Update Makefile 2022-01-07 08:38:27 +11:00
Ben V. Brown
724b0c4936 Update ci specs 2022-01-07 00:16:11 +11:00
Ben V. Brown
37418047a0 Merge branch 'master' into settings 2022-01-07 00:14:32 +11:00
Ben V. Brown
93de082b06 Make patch specs to not use nano math
Since Alpine isnt shipping it
2022-01-06 23:51:32 +11:00
Ben V. Brown
3335298250 Update Dockerfile 2022-01-06 23:50:48 +11:00
Ben V. Brown
b6d2846ead test 2022-01-06 18:58:58 +11:00
ysard
1ddd15306d update flash_ts100_linux.sh
* Add a clean method to check if the flash is done correctly or not.
* Note that this partially reverts 48b9097 due to the bash shell use instead of legacy sh shell
(this is for the use of colors in the check report)
2022-01-06 04:57:36 +01:00
ysard
2505e30f86 sh_ts100_linux.sh: Fix 'Device or resource busy' errors due to rmdir without umounting 2022-01-06 04:57:17 +01:00
Ben V. Brown
a23c147125 Merge pull request #1166 from discip/patch-1
Update translation_DE.json
2022-01-06 14:05:36 +11:00
discip
ca6ff84ddb Update translation_DE.json 2022-01-06 03:22:54 +01:00
Ben V. Brown
d3da956401 Merge pull request #1165 from discip/patch-1
fixed detailed view for lefties
2022-01-06 12:45:58 +11:00
discip
d7b759c534 fixed detailed view for lefties 2022-01-06 02:30:45 +01:00
discip
761bafad83 fixed detailed view for lefties 2022-01-06 02:13:38 +01:00
Ben V. Brown
2cac11fdda Adding a few more notes to the Flashing page 2022-01-05 21:24:12 +11:00
Ben V. Brown
52f0d5242a Update GUIThread.cpp 2022-01-05 21:04:33 +11:00
Ben V. Brown
827308f691 Add some rounding 2022-01-05 21:00:14 +11:00
Ben V. Brown
ee9a7c7ddb Merge pull request #1163 from HanaO00/patch-3
Update translation_FR.json
2022-01-05 20:59:45 +11:00
HanaO00
26ed7c3356 Update translation_FR.json 2022-01-05 10:55:17 +01:00
Ben V. Brown
26c7d0f2cb Clean up soldering temp adjust button handling 2022-01-05 20:41:38 +11:00
Ben V. Brown
8c25937f20 Merge pull request #1158 from Ralim/shellcheck
Adding Shellcheck to CI
2022-01-04 19:56:52 +11:00
Ben V. Brown
528d2cb071 Merge branch 'master' into shellcheck 2022-01-04 19:51:25 +11:00
Ben V. Brown
9eb486f6e1 Merge pull request #1161 from evils/patch-1
bug_report.md: minor cleanup
2022-01-03 22:22:55 +11:00
evils
da34ad6023 bug_report.md: minor cleanup 2022-01-03 11:47:26 +01:00
Ben V. Brown
af012c773c Update shellcheck.yml 2022-01-03 20:59:51 +11:00
Ben V. Brown
ed029dbd89 Create shellcheck.yml 2022-01-03 20:58:30 +11:00
108 changed files with 6363 additions and 7286 deletions

View File

@@ -13,20 +13,20 @@ assignees: Ralim
**To Reproduce**
<!-- Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
2. Click on '...'
3. Scroll down to '...'
4. See error -->
**Expected behavior**
<!-- A clear and concise description of what you expected to happen. -->
**Details on your device:**
<!-- You can get these from the debug menu by holding the rear button down and then using the front one to cycle through-->
**Details of your device:**
<!-- You can get these from the debug menu by holding the rear button down and then using the front one to cycle through -->
- Device: [e.g. TS80/Pinecil etc]
- Release: [eg 2.15.40087E6]
- Power adapter being used:
- If this is an acceleromter related issue, please include its model number here:
- If this is an accelerometer related issue, please include its model number here:
**Additional context**
<!-- Add any other context about the problem here. -->

View File

@@ -5,31 +5,26 @@ on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-20.04
container:
image: alpine:3.15
strategy:
matrix:
model: ["TS100", "TS80", "TS80P", "Pinecil", "MHP30"]
fail-fast: true
steps:
- uses: actions/checkout@v2
- name: Install dependencies (apk)
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 bdflib
- uses: actions/checkout@v3
with:
submodules: true
- name: chmod
run: chmod +x setup.sh && chmod +x source/build.sh && sudo mkdir -p /build/cache && sudo chmod -R 777 /build
- name: Cached compiler source files
uses: actions/cache@v2.1.7
env:
cache-name: cache-compilers
with:
path: /build/cache
key: ${{ runner.os }}-build-${{ env.cache-name }}
restore-keys: |
${{ runner.os }}-
- name: setup
run: ./setup.sh
- name: Git ownership exception
run: git config --global --add safe.directory /__w/IronOS/IronOS && git config --global safe.directory "$GITHUB_WORKSPACE"
- name: build ${{ matrix.model }}
run: cd source && ./build.sh -m ${{ matrix.model }}
@@ -40,7 +35,7 @@ jobs:
cp LICENSE_RELEASE.md source/Hexfile/LICENSE_RELEASE.md
- name: Archive ${{ matrix.model }} artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.model }}
path: |
@@ -50,34 +45,37 @@ jobs:
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-20.04
container:
image: alpine:3.15
strategy:
matrix:
model: ["Pinecil"]
fail-fast: true
steps:
- uses: actions/checkout@v2
- name: Install dependencies (apk)
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 musl-dev
- name: Install dependencies (python)
run: python3 -m pip install bdflib
- uses: actions/checkout@v3
with:
submodules: true
- name: chmod
run: chmod +x setup.sh && chmod +x source/build.sh && sudo mkdir -p /build/cache && sudo chmod -R 777 /build
- name: Cached compiler source files
uses: actions/cache@v2.1.7
env:
cache-name: cache-compilers
with:
path: /build/cache
key: ${{ runner.os }}-build-${{ env.cache-name }}
restore-keys: |
${{ runner.os }}-
- name: setup
run: ./setup.sh
- name: Git ownership exception
run: git config --global --add safe.directory /__w/IronOS/IronOS && git config --global safe.directory "$GITHUB_WORKSPACE"
- 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
@@ -87,7 +85,7 @@ jobs:
cp LICENSE_RELEASE.md source/Hexfile/LICENSE_RELEASE.md
- name: Archive ${{ matrix.model }} artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.model }}_multi-lang
path: |
@@ -97,15 +95,30 @@ jobs:
source/Hexfile/LICENSE_RELEASE.md
if-no-files-found: error
- name: Generate json index file
run: cd source && python3 metadata.py Pinecil_multi-lang.json
- name: Archive ${{ matrix.model }} index file
uses: actions/upload-artifact@v3
with:
name: metadata
path: source/Hexfile/Pinecil_multi-lang.json
tests:
runs-on: ubuntu-20.04
container:
image: alpine:3.15
steps:
- uses: actions/checkout@v2
- name: deps
run: apk add --no-cache python3 py3-pip make git bash findutils gcc musl-dev
- uses: actions/checkout@v3
with:
submodules: true
- name: Setup
run: sudo apt-get update && sudo apt-get install -y python3 && pip3 install bdflib
- name: install black
run: python3 -m pip install bdflib
- name: Run python tests
run: cd Translations && chmod +x make_translation_test.py && ./make_translation_test.py
@@ -120,28 +133,20 @@ jobs:
check_formatting:
runs-on: ubuntu-20.04
container:
image: alpine:3.15
steps:
- uses: actions/checkout@v2
- name: deps
run: apk add --no-cache python3 py3-pip make git
- uses: actions/checkout@v3
with:
submodules: true
- name: chmod
run: chmod +x setup.sh && chmod +x source/build.sh && sudo mkdir -p /build/cache && sudo chmod -R 777 /build
- name: install black
run: python3 -m pip install bdflib black flake8
- name: Cached compiler source files
uses: actions/cache@v2.1.7
env:
cache-name: cache-compilers
with:
# we deliberately persist a cache folder forwards
path: /build/cache
key: ${{ runner.os }}-build-${{ env.cache-name }}
restore-keys: |
${{ runner.os }}-
- name: setup
run: sudo apt-get update && sudo apt-get install -y make clang git python3 python3-pip && python3 -m pip install bdflib black flake8
- name: Check formatting with clang-format
run: cd source && make clean && make check-style
@@ -150,3 +155,16 @@ jobs:
- name: Check python with flake8
run: flake8 Translations
shellcheck:
name: runner / shellcheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: shellcheck
uses: reviewdog/action-shellcheck@v1
with:
github_token: ${{ secrets.github_token }}
reporter: github-pr-review # Change reporter.
exclude: "./.git/*" # Optional.
check_all_files_with_shebangs: "false" # Optional.

1
.gitignore vendored
View File

@@ -176,3 +176,4 @@ fabric.properties
CoreCompileInputs.cache
.vscode/settings.json
source/compile_commands.json

Binary file not shown.

View File

@@ -1,258 +0,0 @@
:020000040800F2
:10F8000055AA0DF080002A540215808180808080E6
:10F810008080808080808080008000000000000068
:10F82000408040C020C03030905010F010101010B8
:10F830001010101010101010F010101010101010E8
:10F8400010101010D09050D0505050505050505078
:10F8500050505050D0D0D0D0D0D0109010101010A8
:10F86000101000E002000502050508080808080855
:10F87000080808080808080805080505050507051B
:10F880001008101F201F62604850407F40404040D9
:10F8900040404040404040407F4047404747424012
:10F8A000424747405F4F505F50505050505050506B
:10F8B000505050505F5F58585F58474F4740424044
:10F8C0004040003F00000000000000000000000079
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:10F8000055AA0DF080002A540215808180808080E6
:10F810008080808080808080008000000000000068
:10F82000408040C020C03030905010F010101010B8
:10F830001010101010101010F010101010101010E8
:10F8400010101010D09050D0505050505050505078
:10F8500050505050D0D0D0D0D0D0109010101010A8
:10F86000101000E002000502050508080808080855
:10F87000080808080808080805080505050507051B
:10F880001008101F201F62604850407F40404040D9
:10F8900040404040404040407F4047404747424012
:10F8A000424747405F4F505F50505050505050506B
:10F8B000505050505F5F58585F58474F4740424044
:10F8C0004040003F00000000000000000000000079
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:10F8000055AA0DF080002A540215808180808080E6
:10F810008080808080808080008000000000000068
:10F82000408040C020C03030905010F010101010B8
:10F830001010101010101010F010101010101010E8
:10F8400010101010D09050D0505050505050505078
:10F8500050505050D0D0D0D0D0D0109010101010A8
:10F86000101000E002000502050508080808080855
:10F87000080808080808080805080505050507051B
:10F880001008101F201F62604850407F40404040D9
:10F8900040404040404040407F4047404747424012
:10F8A000424747405F4F505F50505050505050506B
:10F8B000505050505F5F58585F58474F4740424044
:10F8C0004040003F00000000000000000000000079
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:10F8000055AA0DF080002A540215808180808080E6
:10F810008080808080808080008000000000000068
:10F82000408040C020C03030905010F010101010B8
:10F830001010101010101010F010101010101010E8
:10F8400010101010D09050D0505050505050505078
:10F8500050505050D0D0D0D0D0D0109010101010A8
:10F86000101000E002000502050508080808080855
:10F87000080808080808080805080505050507051B
:10F880001008101F201F62604850407F40404040D9
:10F8900040404040404040407F4047404747424012
:10F8A000424747405F4F505F50505050505050506B
:10F8B000505050505F5F58585F58474F4740424044
:10F8C0004040003F00000000000000000000000079
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:00000001FF

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -1,258 +0,0 @@
:020000040800F2
:10F8000055AA0DF080002A54821580818080808066
:10F8100080808080808080808080808000000000E8
:10F82000000000004080402020C020201010080868
:10F8300008080C080C0C0C0C080808080C0C0C0C24
:10F84000E80CA8A8A828E8A8C808A828A8A848A834
:10F850008808284808E828C828A80CCC28CC28A85C
:10F8600008C800F80200050208050808080808088A
:10F8700008080A080A090A090A0908090505050508
:10F880000505050510081020201F4040404020407D
:10F890002020202020202020202020202020202068
:10F8A00020202F202F28202025202A2A2A2A2728F6
:10F8B0002120282F202F2827282B20272827282BD6
:10F8C0002027001F000000000000000000000000D2
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:10F8000055AA0DF080002A54821580818080808066
:10F8100080808080808080808080808000000000E8
:10F82000000000004080402020C020201010080868
:10F8300008080C080C0C0C0C080808080C0C0C0C24
:10F84000E80CA8A8A828E8A8C808A828A8A848A834
:10F850008808284808E828C828A80CCC28CC28A85C
:10F8600008C800F80200050208050808080808088A
:10F8700008080A080A090A090A0908090505050508
:10F880000505050510081020201F4040404020407D
:10F890002020202020202020202020202020202068
:10F8A00020202F202F28202025202A2A2A2A2728F6
:10F8B0002120282F202F2827282B20272827282BD6
:10F8C0002027001F000000000000000000000000D2
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:10F8000055AA0DF080002A54821580818080808066
:10F8100080808080808080808080808000000000E8
:10F82000000000004080402020C020201010080868
:10F8300008080C080C0C0C0C080808080C0C0C0C24
:10F84000E80CA8A8A828E8A8C808A828A8A848A834
:10F850008808284808E828C828A80CCC28CC28A85C
:10F8600008C800F80200050208050808080808088A
:10F8700008080A080A090A090A0908090505050508
:10F880000505050510081020201F4040404020407D
:10F890002020202020202020202020202020202068
:10F8A00020202F202F28202025202A2A2A2A2728F6
:10F8B0002120282F202F2827282B20272827282BD6
:10F8C0002027001F000000000000000000000000D2
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:10F8000055AA0DF080002A54821580818080808066
:10F8100080808080808080808080808000000000E8
:10F82000000000004080402020C020201010080868
:10F8300008080C080C0C0C0C080808080C0C0C0C24
:10F84000E80CA8A8A828E8A8C808A828A8A848A834
:10F850008808284808E828C828A80CCC28CC28A85C
:10F8600008C800F80200050208050808080808088A
:10F8700008080A080A090A090A0908090505050508
:10F880000505050510081020201F4040404020407D
:10F890002020202020202020202020202020202068
:10F8A00020202F202F28202025202A2A2A2A2728F6
:10F8B0002120282F202F2827282B20272827282BD6
:10F8C0002027001F000000000000000000000000D2
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:00000001FF

Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 B

View File

@@ -1,258 +0,0 @@
:020000040800F2
:10F8000055AA0DF0F800E808A8A8AC28ECACC80888
:10F81000A828A8A848A88808284808E828C828A828
:10F8200008C828C828A80CC80C0C0C0C0808080824
:10F830000C0C0C0C080C0808080810102020C02024
:10F840002040804000000000000000008080808098
:10F850008080808080808080808080808180158210
:10F86000542A00801F0020202F202F282020252010
:10F870002A2A2A2A27282120282F202F2827282B08
:10F8800020272827282B2027202020202020202048
:10F8900020202020202020204020404040401F20C9
:10F8A0002010081005050505050505050908090AC4
:10F8B000090A090A080A08080808080808080508C3
:10F8C000020500020000000000000000000000002F
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:10F8000055AA0DF0F800E808A8A8AC28ECACC80888
:10F81000A828A8A848A88808284808E828C828A828
:10F8200008C828C828A80CC80C0C0C0C0808080824
:10F830000C0C0C0C080C0808080810102020C02024
:10F840002040804000000000000000008080808098
:10F850008080808080808080808080808180158210
:10F86000542A00801F0020202F202F282020252010
:10F870002A2A2A2A27282120282F202F2827282B08
:10F8800020272827282B2027202020202020202048
:10F8900020202020202020204020404040401F20C9
:10F8A0002010081005050505050505050908090AC4
:10F8B000090A090A080A08080808080808080508C3
:10F8C000020500020000000000000000000000002F
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:10F8000055AA0DF0F800E808A8A8AC28ECACC80888
:10F81000A828A8A848A88808284808E828C828A828
:10F8200008C828C828A80CC80C0C0C0C0808080824
:10F830000C0C0C0C080C0808080810102020C02024
:10F840002040804000000000000000008080808098
:10F850008080808080808080808080808180158210
:10F86000542A00801F0020202F202F282020252010
:10F870002A2A2A2A27282120282F202F2827282B08
:10F8800020272827282B2027202020202020202048
:10F8900020202020202020204020404040401F20C9
:10F8A0002010081005050505050505050908090AC4
:10F8B000090A090A080A08080808080808080508C3
:10F8C000020500020000000000000000000000002F
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:10F8000055AA0DF0F800E808A8A8AC28ECACC80888
:10F81000A828A8A848A88808284808E828C828A828
:10F8200008C828C828A80CC80C0C0C0C0808080824
:10F830000C0C0C0C080C0808080810102020C02024
:10F840002040804000000000000000008080808098
:10F850008080808080808080808080808180158210
:10F86000542A00801F0020202F202F282020252010
:10F870002A2A2A2A27282120282F202F2827282B08
:10F8800020272827282B2027202020202020202048
:10F8900020202020202020204020404040401F20C9
:10F8A0002010081005050505050505050908090AC4
:10F8B000090A090A080A08080808080808080508C3
:10F8C000020500020000000000000000000000002F
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:00000001FF

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1,258 +0,0 @@
:020000040800F2
:10F8000055AA0DF07FFFD5AB7DEA7F7E7F7FFF7F1E
:10F81000FFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFF78
:10F820007F7FBFBFDFBFEFDF0FEFEF0FAFAFAFAF38
:10F83000EFEFAFAFAFAFAFAF0FEF6FEFAFAFAFAFB8
:10F84000AFAF2FAFAFAFAFAFAFAF6FAF6FEFAFAF88
:10F85000AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFB8
:10F86000EF6FFF1FFDFFFAFDF7FAF7F7F7F7FAF76B
:10F87000FAFAFAFAFAFAFAFAFAFAFAFAFAFAF0FAF2
:10F88000F7F7EFEFDFEFBFDF80BFBF80AAAAAAAA1A
:10F89000BFBFAAAAAAAAAAAA80BFB0BFADAFAAAA90
:10F8A000ADAFA2AAADAAAAAFADAAB0AFB0BFAFAF7D
:10F8B000AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF58
:10F8C000BFB0FFC00000000000000000000000000A
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:10F8000055AA0DF07FFFD5AB7DEA7F7E7F7FFF7F1E
:10F81000FFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFF78
:10F820007F7FBFBFDFBFEFDF0FEFEF0FAFAFAFAF38
:10F83000EFEFAFAFAFAFAFAF0FEF6FEFAFAFAFAFB8
:10F84000AFAF2FAFAFAFAFAFAFAF6FAF6FEFAFAF88
:10F85000AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFB8
:10F86000EF6FFF1FFDFFFAFDF7FAF7F7F7F7FAF76B
:10F87000FAFAFAFAFAFAFAFAFAFAFAFAFAFAF0FAF2
:10F88000F7F7EFEFDFEFBFDF80BFBF80AAAAAAAA1A
:10F89000BFBFAAAAAAAAAAAA80BFB0BFADAFAAAA90
:10F8A000ADAFA2AAADAAAAAFADAAB0AFB0BFAFAF7D
:10F8B000AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF58
:10F8C000BFB0FFC00000000000000000000000000A
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:10F8000055AA0DF07FFFD5AB7DEA7F7E7F7FFF7F1E
:10F81000FFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFF78
:10F820007F7FBFBFDFBFEFDF0FEFEF0FAFAFAFAF38
:10F83000EFEFAFAFAFAFAFAF0FEF6FEFAFAFAFAFB8
:10F84000AFAF2FAFAFAFAFAFAFAF6FAF6FEFAFAF88
:10F85000AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFB8
:10F86000EF6FFF1FFDFFFAFDF7FAF7F7F7F7FAF76B
:10F87000FAFAFAFAFAFAFAFAFAFAFAFAFAFAF0FAF2
:10F88000F7F7EFEFDFEFBFDF80BFBF80AAAAAAAA1A
:10F89000BFBFAAAAAAAAAAAA80BFB0BFADAFAAAA90
:10F8A000ADAFA2AAADAAAAAFADAAB0AFB0BFAFAF7D
:10F8B000AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF58
:10F8C000BFB0FFC00000000000000000000000000A
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:10F8000055AA0DF07FFFD5AB7DEA7F7E7F7FFF7F1E
:10F81000FFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFF78
:10F820007F7FBFBFDFBFEFDF0FEFEF0FAFAFAFAF38
:10F83000EFEFAFAFAFAFAFAF0FEF6FEFAFAFAFAFB8
:10F84000AFAF2FAFAFAFAFAFAFAF6FAF6FEFAFAF88
:10F85000AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFB8
:10F86000EF6FFF1FFDFFFAFDF7FAF7F7F7F7FAF76B
:10F87000FAFAFAFAFAFAFAFAFAFAFAFAFAFAF0FAF2
:10F88000F7F7EFEFDFEFBFDF80BFBF80AAAAAAAA1A
:10F89000BFBFAAAAAAAAAAAA80BFB0BFADAFAAAA90
:10F8A000ADAFA2AAADAAAAAFADAAB0AFB0BFAFAF7D
:10F8B000AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF58
:10F8C000BFB0FFC00000000000000000000000000A
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:00000001FF

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 B

View File

@@ -1,258 +0,0 @@
:020000040800F2
:10F8000000000000000000000000000000000000F8
:10F8100000000000000000000000000000000000E8
:10F8200000000000000000000000000000000000D8
:10F8300000000000000000000000000000000000C8
:10F8400000000000000000000000000000000000B8
:10F8500000000000000000000000000000000000A8
:10F860000000000000000000000000000000000098
:10F870000000000000000000000000000000000088
:10F880000000000000000000000000000000000078
:10F890000000000000000000000000000000000068
:10F8A0000000000000000000000000000000000058
:10F8B0000000000000000000000000000000000048
:10F8C0000000000000000000000000000000000038
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:10F8000000000000000000000000000000000000F8
:10F8100000000000000000000000000000000000E8
:10F8200000000000000000000000000000000000D8
:10F8300000000000000000000000000000000000C8
:10F8400000000000000000000000000000000000B8
:10F8500000000000000000000000000000000000A8
:10F860000000000000000000000000000000000098
:10F870000000000000000000000000000000000088
:10F880000000000000000000000000000000000078
:10F890000000000000000000000000000000000068
:10F8A0000000000000000000000000000000000058
:10F8B0000000000000000000000000000000000048
:10F8C0000000000000000000000000000000000038
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:10F8000000000000000000000000000000000000F8
:10F8100000000000000000000000000000000000E8
:10F8200000000000000000000000000000000000D8
:10F8300000000000000000000000000000000000C8
:10F8400000000000000000000000000000000000B8
:10F8500000000000000000000000000000000000A8
:10F860000000000000000000000000000000000098
:10F870000000000000000000000000000000000088
:10F880000000000000000000000000000000000078
:10F890000000000000000000000000000000000068
:10F8A0000000000000000000000000000000000058
:10F8B0000000000000000000000000000000000048
:10F8C0000000000000000000000000000000000038
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:10F8000000000000000000000000000000000000F8
:10F8100000000000000000000000000000000000E8
:10F8200000000000000000000000000000000000D8
:10F8300000000000000000000000000000000000C8
:10F8400000000000000000000000000000000000B8
:10F8500000000000000000000000000000000000A8
:10F860000000000000000000000000000000000098
:10F870000000000000000000000000000000000088
:10F880000000000000000000000000000000000078
:10F890000000000000000000000000000000000068
:10F8A0000000000000000000000000000000000058
:10F8B0000000000000000000000000000000000048
:10F8C0000000000000000000000000000000000038
:10F8D0000000000000000000000000000000000028
:10F8E0000000000000000000000000000000000018
:10F8F0000000000000000000000000000000000008
:10F9000000000000000000000000000000000000F7
:10F9100000000000000000000000000000000000E7
:10F9200000000000000000000000000000000000D7
:10F9300000000000000000000000000000000000C7
:10F9400000000000000000000000000000000000B7
:10F9500000000000000000000000000000000000A7
:10F960000000000000000000000000000000000097
:10F970000000000000000000000000000000000087
:10F980000000000000000000000000000000000077
:10F990000000000000000000000000000000000067
:10F9A0000000000000000000000000000000000057
:10F9B0000000000000000000000000000000000047
:10F9C0000000000000000000000000000000000037
:10F9D0000000000000000000000000000000000027
:10F9E0000000000000000000000000000000000017
:10F9F0000000000000000000000000000000000007
:10FA000000000000000000000000000000000000F6
:10FA100000000000000000000000000000000000E6
:10FA200000000000000000000000000000000000D6
:10FA300000000000000000000000000000000000C6
:10FA400000000000000000000000000000000000B6
:10FA500000000000000000000000000000000000A6
:10FA60000000000000000000000000000000000096
:10FA70000000000000000000000000000000000086
:10FA80000000000000000000000000000000000076
:10FA90000000000000000000000000000000000066
:10FAA0000000000000000000000000000000000056
:10FAB0000000000000000000000000000000000046
:10FAC0000000000000000000000000000000000036
:10FAD0000000000000000000000000000000000026
:10FAE0000000000000000000000000000000000016
:10FAF0000000000000000000000000000000000006
:10FB000000000000000000000000000000000000F5
:10FB100000000000000000000000000000000000E5
:10FB200000000000000000000000000000000000D5
:10FB300000000000000000000000000000000000C5
:10FB400000000000000000000000000000000000B5
:10FB500000000000000000000000000000000000A5
:10FB60000000000000000000000000000000000095
:10FB70000000000000000000000000000000000085
:10FB80000000000000000000000000000000000075
:10FB90000000000000000000000000000000000065
:10FBA0000000000000000000000000000000000055
:10FBB0000000000000000000000000000000000045
:10FBC0000000000000000000000000000000000035
:10FBD0000000000000000000000000000000000025
:10FBE0000000000000000000000000000000000015
:10FBF0000000000000000000000000000000000005
:00000001FF

7
Bootup Logo/README.md Normal file
View File

@@ -0,0 +1,7 @@
# Bootup logo's
IronOS supports both a bootup logo _AND_ bootup animations.
However, they are no longer included in this repo.
(Please read the docs)[../Documentation/Logo.md]

View File

@@ -1,241 +0,0 @@
#!/usr/bin/env python
# coding=utf-8
from __future__ import division
import os
import sys
try:
from PIL import Image, ImageOps
except ImportError as error:
raise ImportError("{}: {} requres Python Imaging Library (PIL). "
"Install with `pip` or OS-specific package "
"management tool."
.format(error, sys.argv[0]))
VERSION_STRING = '0.01'
LCD_WIDTH = 96
LCD_HEIGHT = 16
LCD_NUM_BYTES = LCD_WIDTH * LCD_HEIGHT // 8
LCD_PADDED_SIZE = 1024
INTELHEX_DATA_RECORD = 0x00
INTELHEX_END_OF_FILE_RECORD = 0x01
INTELHEX_EXTENDED_LINEAR_ADDRESS_RECORD = 0x04
INTELHEX_BYTES_PER_LINE = 16
INTELHEX_MINIMUM_SIZE = 4096
def split16(word):
"""return high and low byte of 16-bit word value as tuple"""
return (word >> 8) & 0xff, word & 0xff
def intel_hex_line(record_type, offset, data):
"""generate a line of data in Intel hex format"""
# length, address offset, record type
record_length = len(data)
yield ':{:02X}{:04X}{:02X}'.format(record_length, offset, record_type)
# data
for byte in data:
yield "{:02X}".format(byte)
# compute and write checksum (now using unix style line endings for DFU3.45 compatibility
yield "{:02X}\n".format((((sum(data, # sum data ...
record_length # ... and other ...
+ sum(split16(offset)) # ... fields ...
+ record_type) # ... on line
& 0xff) # low 8 bits
^ 0xff) # two's ...
+ 1) # ... complement
& 0xff) # low 8 bits
def intel_hex(file, bytes_, start_address=0x0):
"""write block of data in Intel hex format"""
def write(generator):
file.write(''.join(generator))
if len(bytes_) % INTELHEX_BYTES_PER_LINE != 0:
raise ValueError("Program error: Size of LCD data is not evenly divisible by {}"
.format(INTELHEX_BYTES_PER_LINE))
address_lo = start_address & 0xffff
address_hi = (start_address >> 16) & 0xffff
write(intel_hex_line(INTELHEX_EXTENDED_LINEAR_ADDRESS_RECORD, 0,
split16(address_hi)))
size_written = 0
while size_written < INTELHEX_MINIMUM_SIZE:
offset = address_lo
for line_start in range(0, len(bytes_), INTELHEX_BYTES_PER_LINE):
write(intel_hex_line(INTELHEX_DATA_RECORD, offset,
bytes_[line_start:line_start + INTELHEX_BYTES_PER_LINE]))
size_written += INTELHEX_BYTES_PER_LINE
if size_written >= INTELHEX_MINIMUM_SIZE:
break
offset += INTELHEX_BYTES_PER_LINE
write(intel_hex_line(INTELHEX_END_OF_FILE_RECORD, 0, ()))
def img2hex(input_filename,
output_file,
preview_filename=None,
threshold=128,
dither=False,
negative=False):
"""
Convert 'input_filename' image file into Intel hex format with data
formatted for display on TS100 LCD and file object.
Input image is converted from color or grayscale to black-and-white,
and resized to fit TS100 LCD screen as necessary.
Optionally write resized/thresholded/black-and-white preview image
to file specified by name.
Optional `threshold' argument 8 bit value; grayscale pixels greater than
this become 1 (white) in output, less than become 0 (black).
Unless optional `dither', in which case PIL grayscale-to-black/white
dithering algorithm used.
Optional `negative' inverts black/white regardless of input image type
or other options.
"""
try:
image = Image.open(input_filename)
except BaseException as e:
raise IOError("error reading image file \"{}\": {}".format(input_filename, e))
# convert to luminance
# do even if already black/white because PIL can't invert 1-bit so
# can't just pass thru in case --negative flag
# also resizing works better in luminance than black/white
# also no information loss converting black/white to grayscale
if image.mode != 'L':
image = image.convert('L')
if image.size != (LCD_WIDTH, LCD_HEIGHT):
image = image.resize((LCD_WIDTH, LCD_HEIGHT), Image.BICUBIC)
if negative:
image = ImageOps.invert(image)
threshold = 255 - threshold # have to invert threshold
if dither:
image = image.convert('1')
else:
image = image.point(lambda pixel: 0 if pixel < threshold else 1, '1')
if preview_filename:
image.save(preview_filename)
''' DEBUG
for row in range(LCD_HEIGHT):
for column in range(LCD_WIDTH):
if image.getpixel((column, row)): sys.stderr.write('1')
else: sys.stderr.write('0')
sys.stderr.write('\n')
'''
# pad to this size (also will be repeated in output Intel hex file)
data = [0] * LCD_PADDED_SIZE
# magic/undocumented/required header in endian-reverse byte order
data[0] = 0x55
data[1] = 0xAA
data[2] = 0x0D
data[3] = 0xF0
# convert to TS100 LCD format
for ndx in range(LCD_WIDTH * 16 // 8):
bottom_half_offset = 0 if ndx < LCD_WIDTH else 8
byte = 0
for y in range(8):
if image.getpixel((ndx % LCD_WIDTH, y + bottom_half_offset)):
byte |= 1 << y
# store in endian-reversed byte order
data[4 + ndx + (1 if ndx % 2 == 0 else -1)] = byte
intel_hex(output_file, data, 0x0800F800)
def parse_commandline():
parser = argparse.ArgumentParser(
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
description="Convert image file for display on TS100 LCD "
"at startup")
def zero_to_255(text):
value = int(text)
if not 0 <= value <= 255:
raise argparse.ArgumentTypeError("must be integer from 0 to 255 ")
return value
parser.add_argument('input_filename',
help="input image file")
parser.add_argument('output_filename',
help="output Intel hex file")
parser.add_argument('-p', '--preview',
help="filename of image preview (same data as "
"Intel hex file, as will appear on TS100 LCD)")
parser.add_argument('-n', '--negative',
action='store_true',
help="photo negative: exchange black and white "
"in output")
parser.add_argument('-t', '--threshold',
type=zero_to_255,
default=128,
help="0 to 255: gray (or color converted to gray) "
"above this becomes white, below becomes black; "
"ignored if using --dither")
parser.add_argument('-d', '--dither',
action='store_true',
help="use dithering (speckling) to convert gray or "
"color to black and white")
parser.add_argument('-f', '--force',
action='store_true',
help="force overwriting of existing files")
parser.add_argument('-v', '--version',
action='version',
version="%(prog)s version " + VERSION_STRING,
help="print version info")
return parser.parse_args()
if __name__ == "__main__":
import argparse
args = parse_commandline()
if os.path.exists(args.output_filename) and not args.force:
sys.stderr.write("Won't overwrite existing file \"{}\" (use --force "
"option to override)\n"
.format(args.output_filename))
sys.exit(1)
if args.preview and os.path.exists(args.preview) and not args.force:
sys.stderr.write("Won't overwrite existing file \"{}\" (use --force "
"option to override)\n"
.format(args.preview))
sys.exit(1)
try:
with open(args.output_filename, 'w', newline='\r\n') as output:
img2hex(args.input_filename,
output,
args.preview,
args.threshold,
args.dither,
args.negative)
except BaseException as error:
sys.stderr.write("Error converting file: {}\n".format(error))
sys.exit(1)

View File

@@ -1,31 +1,19 @@
FROM ubuntu:20.04
FROM alpine:3.15
LABEL maintainer="Ben V. Brown <ralim@ralimtek.com>"
WORKDIR /build
# Add extra mirrors for options
RUN echo "deb mirror://mirrors.ubuntu.com/mirrors.txt focal main restricted universe multiverse" > /etc/apt/sources.list && \
echo "deb mirror://mirrors.ubuntu.com/mirrors.txt focal-updates main restricted universe multiverse" >> /etc/apt/sources.list && \
echo "deb mirror://mirrors.ubuntu.com/mirrors.txt focal-security main restricted universe multiverse" >> /etc/apt/sources.list && \
DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y ca-certificates
# Install dependencies to build the firmware
RUN apt-get install -y \
make \
bzip2 \
git \
python3 \
python3-pip \
clang-format \
dfu-util \
wget --no-install-recommends && \
apt-get clean
RUN python3 -m pip install bdflib
# Download the two compilers
RUN wget -qO- "https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2" | tar -xj
# This is the same as the one from Nuclei, just mirrored on Github as their download server is horrifically slow
RUN wget -qO- "https://github.com/Ralim/nuclei-compiler/releases/download/2020.08/nuclei_riscv_newlibc_prebuilt_linux64_2020.08.tar.bz2" | tar -xj
# 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)
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 musl-dev clang bash clang-extra-tools
# Install Python3 packages
RUN python3 -m pip install bdflib black
# Add compiler to the path
ENV PATH "/build/gcc-arm-none-eabi-10-2020-q4-major/bin:$PATH"
ENV PATH "/build/gcc/bin/:$PATH"
COPY . /build/source
COPY ./ci /build/ci

View File

@@ -1,12 +1,12 @@
# Debugging Menu
In this firmware there is extra debugging information hidden under an extra menu.
This is accessed by holding the rear (B) button on the iron while it is on the home screen.
This is accessed by holding the rear (-/B) button on the iron while it is on the home screen.
This menu is meant to be simple, so it has no fancy GUI animations.
To move through the menu use the front (A) button.
To exit, use the rear (B) button again.
To move through the menu use the front (+/A) button.
To exit, use the rear (-/B) button again.
## Menu items
@@ -14,16 +14,16 @@ Items are shown in the menu on a single line, so they use short codes
### HW G
This indicates the High Water mark for the stack for the GUI thread. The smaller this number is, the less headroom we have in the stack.
As this is a Highwater mater, you should only trust this once you have walked through all GUI options to "hit" the worst one.
This indicates the high water mark for the stack for the GUI thread. The smaller this number is, the less headroom we have in the stack.
As this is a high-water mater, you should only trust this once you have walked through all GUI options to "hit" the worst one.
### HW M
This indicates the High Water mark for the stack for the movement detection thread. The smaller this number is, the less headroom we have in the stack.
This indicates the high water mark for the stack for the movement detection thread. The smaller this number is, the less headroom we have in the stack.
### HW P
This indicates the High Water mark for the stack for the PID thread. The smaller this number is, the less headroom we have in the stack.
This indicates the high water mark for the stack for the PID thread. The smaller this number is, the less headroom we have in the stack.
### Time
@@ -31,28 +31,28 @@ This just shows how many deciseconds the unit has been powered for.
### Move
This is the last timestamp of movement. When the iron is moved this should update to match the Time field (one before in the menu).
This is the last timestamp of movement. When the iron is moved this should update to match the time field (one before in the menu).
This can be used for checking performance of the movement dection code.
### RTip
This is the raw tip reading in uV. This can be used when assessing the calibration routines for example.
This is the raw tip reading in μV. This can be used when assessing the calibration routines for example.
### CTip
This is the tip temperature in deg C.
This is the tip temperature in degrees Celsius.
This can be used with RTip for assessing temperature processing performance.
### CHan
This is the handle temperature in C. This is used for cold junction compensation of the tip temp.
This is shown in degrees C x10, so 200 == 20.0C
This is the handle temperature in °C. This is used for cold junction compensation of the tip temperature.
This is shown in degrees Celsius x10, so 200 == 20.0 °C
### Vin
### Vin
The input voltage as read by the internal ADC. Can be used to sanity check its being read correctly.
### ACC
### ACC
This indicates the accelerometer that is fitted inside the unit.
@@ -64,16 +64,35 @@ This indicates the accelerometer that is fitted inside the unit.
- None detected -> running in fallback without movement detection
- Scanning -> Still searching I2C for one
### PWR
### PWR
This indicates the current power source for the iron.
This may change during power up as the sources are negotiated in turn.
- **DC** input (dumb)
- **QC** input (We used QC2/3 negotiation for current supply)
- **PD** input (We used the PD subsystem to negotiate for the current supply)
- **PD W. VBus** input (We used the PD subsystem to negotiate for the current supply); and VBus is connected to your input power source
- **PD No VBus** input (We used the PD subsystem to negotiate for the current supply); and VBus is **NOT** connected to your input power source
- If you successfully modified the Pinecil to support 24 V by cutting the trace line to Vbus, then 'PD No VBus' displays on screen.
- Connect to any PD USB power to check Vbus status. It will not show any PD message when Pinecil is powered by DC port, QC, or USB 5 V (non PD).
### Max
### Max
This indicates the max temp in C that the system estimates it can measure the tip reliably to.
This indicates the max temperature in degrees Celsius that the system estimates it can measure the tip reliably to.
This is dependant on a few factors including the handle temperature so it can move around during use.
### Hall
This appears if your device is capable of having a magnetic hall effect sensor installed (Pinecil).
This shows the current field strength reading from the sensor. It can be used to check if the sensor is operational, and measure how strong the magnetic field is for diagnostics and optimal placement of magnets on a stand.
# PD Debug menu
On the Pinecil; if the iron is booted up while holding the front button (+); it will show an extra menu for inspecting USB-PD power adapters.
The menu navigates like the debug menu, where pressing (+) cycles through elements, and (-) will exit the menu.
First page shows the PD negotiation stage number; which can be used for diagnosing if PD is not working.
After a few seconds or after PD negotiates (state above 5) it will show "No VBus" if the VBus mod is performed or "VBus" if the mod has not been done.
Once negotiation is complete; the other screens will show the advertised readings for voltage and current of the proposals.

View File

@@ -20,54 +20,71 @@ Use the following steps to set up a build environment for IronOS on the command
1. [Follow steps 1 3 here to install the toolchain](https://github.com/glegrain/STM32-with-macOS#0---installing-the-toolchain) needed to compile for STM32 microcontrollers.
2. Install `python`:
```
brew install python
```
3. (Optional) Update `pip` so it doesn't warn you about being out-of-date:
```
python3 -m pip install --upgrade pip
```
4. Change to the `source` directory:
```
cd source
```
5. Create a Python virtual environment for IronOS named `ironos-venv` to keep your Python installation clean:
```
python3 -m venv ironos-venv
```
6. Activate the Python virtual environment:
```
source ironos-venv/bin/activate
```
7. Install the dependencies required to run `make-translation.py`:
```
pip install bdflib
```
8. All done! See some examples below for how you can build your own IronOS.
### Examples
To build a single language Simplified Chinese firmware for the TS80P with 8 simultaneous jobs:
To build a single language Simplified Chinese firmware for the TS80P with 8 simultaneous jobs:
```
make -j8 model=TS80P firmware-ZH_CN
```
To build a European multi-language firmware for the Pinecil with as many simultaneous jobs as there are logical processors on Linux:
To build a European multi-language firmware for the Pinecil with as many simultaneous jobs as there are logical processors on Linux:
```
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:
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_Bulgarian+Russian+Serbian+Ukrainian
```
To build a custom multi-language firmware including English and Simplified Chinese for the TS80:
To build a custom multi-language firmware including English and Simplified Chinese for the TS80:
```
make -j8 model=TS80 custom_multi_langs="EN ZH_CN" firmware-multi_Custom
```
To build a custom compressed multi-language firmware including German, Spanish, and French for the TS100 (note if `model` is unspecified, it will default to `TS100`):
To build a custom compressed multi-language firmware including German, Spanish, and French for the TS100 (note if `model` is unspecified, it will default to `TS100`):
```
make -j8 custom_multi_langs="DE ES FR" firmware-multi_compressed_Custom
```
@@ -77,6 +94,7 @@ To build a release instead, run the `build.sh` script. This will update translat
## Updating languages
To update the language translation files and their associated font maps, execute the `make_translation.py` code from the `Translations` directory.
If you edit the translation definitions or the english translation, please also run `gen_menu_docs.py` to update the settings menu documentation automatically.
## Building Pinecil

View File

@@ -2,11 +2,17 @@
## Downloading source file
In the development of this firmware, there are three _types_ of firmware released.
These are the "Main" stable releases, which generally have high confidence in being bug free.
Release candidates are released slightly more often, and these are generally perfectly fine for everyday use. These are released early to allow for translation checking and for wonderful people to help spot bugs and regressions.
Finally, there are the "mainline" builds, which are built from the main git branch.
These are built on every change and can be found on the Actions tab (see below).
### Main release
Main releases are made to the [releases page](https://github.com/Ralim/IronOS/releases).
Download the zip file that matches your model of soldering iron, and extract it.
You then need to use the appropriate file type for your unit, in general Miniware irons are `.hex` and Pinecil is `.bin`.
Select the appropriate file type for your unit, in general Miniware devices need `.hex` and Pinecil needs `.dfu`.
Flash according to details below
### Bleeding edge / latest
@@ -18,20 +24,20 @@ In general you probably want `master`.
Once you click on a run, scroll down to the "Artifacts" section and then click on your model to download a zip file.
Then this works the same as a production release (use the correct file).
## Miniware irons (TS100, TS80, TS80P)
# Miniware devices (TS100, TS80, TS80P & MHP30)
This is completely safe, but if it goes wrong just put the .hex file from the [official website](http://www.miniware.com.cn/product-category/soldering-pen/electric-soldering-kit/) onto the unit and you're back to the old firmware. Downloads for the hex files to flash are available on the [releases page.](https://github.com/Ralim/IronOS/releases) The file you want is called _(MODEL)\_EN.hex_ unless you want the translations, they are (MODEL)\__language short name_.hex. Where (MODEL) is either TS100 or TS80.
This is completely safe, but if it goes wrong just put the `.hex` file from the official website ([TS100](https://www.minidso.com/forum.php?mod=viewthread&tid=868&extra=page%3D1), [TS80](https://www.minidso.com/forum.php?mod=viewthread&tid=3202&extra=page%3D1), [TS80P](https://www.minidso.com/forum.php?mod=viewthread&tid=4070&extra=page%3D1) & [MHP30](https://www.minidso.com/forum.php?mod=viewthread&tid=4385&extra=page%3D1)) onto the unit and you're back to the old firmware. Downloads for the `.hex` files to flash are available on the [releases page.](https://github.com/Ralim/IronOS/releases) The file you want is called _(MODEL)\_EN.hex_ unless you want the translations, they are (MODEL)\__language short name_.hex. Where (MODEL) is either TS100 or TS80.
Officially the bootloader on the iron only works under Windows (use the built-in File Explorer, as alternative file managers or copy handlers like Teracopy will fail). However, users have reported that it does work under Mac, and can be made to work under Linux _sometimes_. Details over on the [wiki page](https://github.com/Ralim/ts100/wiki/Upgrading-Firmware).
Officially the bootloader on the devices only works under Windows (use the built-in File Explorer, as alternative file managers or copy handlers like Teracopy will fail). However, users have reported that it does work under Mac, and can be made to work under Linux _sometimes_. Details over on the [wiki page](https://github.com/Ralim/ts100/wiki/Upgrading-Firmware).
1. Hold the button closest to the tip, and plug in the USB to the computer.
1. Hold the button closest to the tip (MHP30 the left button on the back), and plug in the USB to the computer.
2. The unit will appear as a USB drive. ( Screen will say `DFU` on it.)
3. Drag the .hex file onto the USB drive.
3. Drag the `.hex` file onto the USB drive.
4. The unit will disconnect and reconnect.
5. The filename will have changed to end in .RDY or .ERR
6. If it ends with .RDY you're done! Otherwise, something went wrong.
7. If it didn't work the first time, try copying the file again without disconnecting the iron, often it will work on the second shot.
8. Disconnect the USB and power up the iron. You're good to go.
5. The filename will have changed to end in *.RDY* or *.ERR*
6. If it ends with *.RDY* you're done! Otherwise, something went wrong.
7. If it didn't work the first time, try copying the file again without disconnecting the device, often it will work on the second shot.
8. Disconnect the USB and power up the device. You're good to go.
For the more adventurous out there, you can also load this firmware onto the device using an SWD programmer.
@@ -41,15 +47,15 @@ There is a complete device flash backup included in this repository. (Note this
For the TS80 the SWD pins are used for the QC negotiation, so you can actually connect to the SWD power via the USB connector.
# Mac
## Mac
sgr1ff1n (Shane) commented in [issue 11](https://github.com/Ralim/ts100/issues/11) that upgrading worked on their Mac as per normal:
> I just wanted to say that I was able to update the firmware on my ts100 from the stock version to 1.08 found in this repository using my Mac. I simply followed the same steps however through Finder. I have a MacBook Pro (13-inch, Mid 2012) running Sierra 10.12.4 (16E195).
# Linux
## Linux
While in past there were reports of unreliable upgrades, the consensus in [issue 11](https://github.com/Ralim/ts100/issues/11) is that things work mostly as expected in Linux.
While in the past there were reports of unreliable upgrades, the consensus in [issue 11](https://github.com/Ralim/ts100/issues/11) is that things work mostly as expected in Linux.
@awigen has contributed a script [flash_ts100_linux.sh](https://raw.githubusercontent.com/Ralim/ts100/master/Flashing/flash_ts100_linux.sh) that works on Ubuntu 16.04 as well as other distros.
@@ -80,66 +86,142 @@ rmdir /tmp/mntdfu
Device will reboot and automount will rerun if not disabled.
Check the extension of your firmware, it should be `.RDY` now.
## Pinecil (Pine64)
The MCU used in the Pinecil supports usb-dfu.
# Pinecil (Pine64)
To enter DFU mode, hold the button at the back of the iron while connecting to usb over usb-c.
Generally all usb controllers work, but some hubs have issues so avoiding hubs may be best.
- The MCU used in Pinecil supports usb-dfu. Reference [Pinecil Wiki](https://wiki.pine64.org/wiki/Pinecil).
- Recommended Updater: the [Pine64 Updater](https://github.com/pine64/pinecil-firmware-updater/releases), is an easy-to-use GUI app. It is fast and works in several types of OS, i.e. Windows/Mac. It will automatically fetch the newest stable version of IronOS from Github.
- Troubleshooting: if you have issues using the Pine64 Updater or your install fails, please go to troubleshooting tips below.
- Community chat: if troubleshooting doesn't work, then join the Pine64 > Pinecil channel. There are knowledgeable members in Discord/Telegram/Matrix. Discord has a bridge bot connection to Telegram and Matrix so that all pine volunteers/members can see advice for Pinecil and related items or just get tips on which Power supply to purchase.
- One advantage of Pinecil is that you can not permanently damage it doing a firmware update (because DFU is in ROM); an update could render Pinecil temporarily inoperable if you flash an invalid firmware. But no worries, simply re-flashing with a working firmware copy will fix everything.
- USB-C cable is required to do an update. Generally, all USB controllers work, but some hubs have issues so it is preferred to avoid USB hubs for updates.
- Alternate Update Methods: if your OS is not currently supported by the [Updater](https://github.com/pine64/pinecil-firmware-updater/releases) or it does not meet your needs, i.e., you want to install a beta version, the below manual methods may be used.
Once the device is connected while holding the button, the screen will stay **off**.
## Linux and Mac
This is normal, and then you can use the appropriate tool to load the .hex or .bin file as per your OS.
### Steps
You can also refer to the Pine64 [Wiki](https://wiki.pine64.org/wiki/Pinecil).
⛔ Do not use the DC power jack while updating firmware or you may destroy your PC. ⛔
### Linux and Mac
Using `dfu-util` you can flash the firmware using a command line as such:
1. Download and extract the firmware package from Github [IronOS Releases](https://github.com/Ralim/IronOS/releases).
2. Highly recommend updating `dfu-util` to the newest version.
3. Enter DFU mode: press and hold (-) button at the back of the iron (do not release).
4. Connect USB to PC, and USB-C to back of Pinecil, keep holding (-) button down.
5. The screen will stay **black/off** to indicate the Pinecil is in DFU mode. This is normal.
6. Once the USB cable is connected at two ends, wait 10 seconds more, then release the (-) button.
7. Using `dfu-util` you can flash the firmware using a command line like this:
```
dfu-util -D Pinecil_EN.dfu
```
### Windows
Choose the file name from the folder with the appropriate 2-letter country code for your chosen language (i.e, EN = English).
For windows the easiest tool to use is the vendors gui tool from [here](http://www.gd32mcu.com/download/down/document_id/176/path_type/1).
### Troubleshooting:
- If you get a message stating that `More than one DFU capable USB device found!` when running the above command you probably have an old version of `dfu-util` installed. Might be worth updating. You can still install on the old version, but you will have to specify which DFU interface to flash to. Running the command `dfu-util -l` will show you if there are several DFU devices detected. Example:
```
Found DFU: [28e9:0189] ver=0100, devnum=48, cfg=1, intf=0, path="1-1", alt=1, name="@Option Bytes /0x1FFFF800/01*016Be", serial="??"
Found DFU: [28e9:0189] ver=0100, devnum=48, cfg=1, intf=0, path="1-1", alt=0, name="@Internal Flash /0x08000000/128*001Kg", serial="??"
```
In this example we see that more than one part of the Pinecil is detected as a DFU interface and we need to specify which one we want to flash to. We want the `Internal Flash` so in this case we can use `alt=0` to identify which interface to target. The command would then look like this:
```
dfu-util -D Pinecil_EN.dfu -a 0
```
- Note: if you use an older release of `dfu-util` and do not see `alt=0, name="@Internal Flash /0x08000000/128*001Kg"` when running `dfu-util -l` you likely will not be able to update without first updating 'dfu-util'.
- If your update is crashing part-way into the update, there is sometimes an issue with older/fussy USB controllers (they can show up/disappear/then show up again)
- Try a direct connection to the USB port, do not use a USB hub, and use shorter cable. If possible pick a port connected to the main board.
- Switch to a different PC/Laptop and use different ports. USB-C ports are recommended but some have also reported having a fussy C port.
- Hold down the (-) button for the entire firmware update, do not release until near the end.
- `DC Low` message: a pc/laptop can not fully power pinecil, it generally can only get 5 V (non-PD) to communicate for firmware updates and Pinecil will report 'DC Low'. This is normal.
Should the link break, its called "GD32 MCU Dfu Tool" and can be grabbed from http://www.gd32mcu.com/en/download/.
You will also need the matching drivers from [here](http://www.gd32mcu.com/download/down/document_id/244/path_type/1) installed if you have not used gigadevice parts before.
## Windows
These are called "GD32 Dfu Drivers" if the link breaks.
Two Options for Windows
You can also use dfu-util if you wish to set it up, but that is better documented by others
### Option 1: use command line
### FAQ
### Steps
⛔ Do not use the DC power jack while updating firmware or you may destroy your PC. ⛔
1. Using command line `dfu-util` is similar to above for Linux / Mac.
2. Highly recommend updating `dfu-util` to the newest version.
3. Download and extract the firmware package from Github [IronOS Releases](https://github.com/Ralim/IronOS/releases).
4. Enter DFU mode: press and hold (-) button at the back of the iron (do not release).
5. Connect USB to PC, and USB-C to the back of Pinecil, keep holding (-) button down.
6. Screen will stay **black/off** to indicate the Pinecil is in DFU mode. This is normal.
7. After the USB cable is connected at both ends, wait ~10 seconds more, then release the (-) button.
8. Open PowerShell or Command window.
9. Change to the directory of the unzipped firmware files
10. Using `dfu-util,` flash the firmware using a command like this:
```
dfu-util -D Pinecil_EN.dfu
```
- If you have errors, see Troubleshooting [above](/Documentation/Flashing.md#troubleshooting).
### Option 2: use the gui tool from chip vendor
### Steps
⛔ Do not use the DC power jack while updating firmware or you may destroy your PC. ⛔
1. If you are uncomfortable with the command line, then this chip vendor supplied gui tool/drivers is an option.
2. Download and extract the firmware package from Github [IronOS Releases](https://github.com/Ralim/IronOS/releases).
3. Download both the `GD32 MCU DFU TOOL` and the `GD32 Dfu Drivers`.
- GD32 DFU Tool [here](http://www.gd32mcu.com/en/download?kw=GD32+MCU+Dfu+Tool&lan=en). If the link breaks, search for "GD32 MCU Dfu Tool" at this [link](http://www.gd32mcu.com/en/download/).
- GD32 DFU Drivers [here](http://www.gd32mcu.com/en/download?kw=GD32+Dfu+Drivers&lan=en). If the link breaks, search for "GD32 Dfu Drivers" at this [link](http://www.gd32mcu.com/en/download/).
- Check properties of both downloads, tick Unblock if needed, then Unzip
4. Install the drivers and the GD32 DFU tool (ignore prompts to update the tool).
5. Enter DFU mode: press and hold (-) button at the back of Pinecil (do not release).
6. Connect Pinecil to a PC via USB cable (do not release the (-) yet).
7. Screen will stay **black/off** to indicate the Pinecil is in DFU mode. This is normal.
8. You may hear a beep from Windows as it connects to Pinecil in DFU mode.
9. If you see windows notification that it `does not recognize Usb device`, then you didn't connect, repeat step 3-8.
10. Open the GD32 DFU Tool (ignore prompts to update tool).
11. At the top of the DFU tool, you should see `GD DFU DEVICE 1` appear if you successfully connected Pinecil.
12. If DFU Device box at top is blank, then Pinecil is not connected in DFU mode, repeat steps 3-11.
13. If it has been more than 10 seconds since you connected the USB cable, Release the (-) button. (don't use Upload from Device section)
14. Select `Download to device` > Open > Browse to folder dyou unziped in step 2.
15. Select the `hex` file for language. English is Pinecil_EN.hex , tick `Verify after download`.
16. Click `OK` at bottom. After a few minutes you will see 0-100%, Download successfully! Click `Leave DFU` at the top.
17. Disconnect pinecil cable from PC, plug it into a power supply.
18. Do not need to press any buttons, a new screen should appear.
19. To confirm upgrade, hold the minus (-) button down for a few seconds, it then shows new firmware version v2.xx.x....date
- If you have errors, see Troubleshooting [above](/Documentation/Flashing.md#troubleshooting).
## FAQ
#### [Miniware] The file is showing up with the extension `.ERR`
This can occur during the programming process if any of the checks in the bootloader fail. This is often triggered by anti-virus software or using a non-windows host OS.
This can occur during the programming process if any of the checks in the bootloader fail. This is often triggered by anti-virus software or using a non-Windows host OS.
First, try just copying the file a second time.
1. Attach the iron in DFU mode
2. Copy the hex file to the device
3. The device disconnects and connects with the `.ERR` file
4. Copy the same hex file again **DO NOT TRY AND DELETE THE OLD ONE**
5. The device will disconnect and reconnect again
6. The device _should_ now have the `.RDY` file
1. Attach the iron in DFU mode.
2. Copy the `.hex` file to the device.
3. The device disconnects and connects with the `.ERR` file.
4. Copy the same `.hex` file again **DO NOT TRY AND DELETE THE OLD ONE**.
5. The device will disconnect and reconnect again.
6. The device _should_ now have the `.RDY` file.
7. You're done.
If this fails and you are on Mac or Linux reading the wiki page about programming can help. There is also a very long issue thread going through all of the different attempts around this too.
If you are on windows, it's often best to try another computer (friends, work, partners etc).
If you are on Windows, it's often best to try another computer (friends, work, partners etc).
#### [Miniware] Device randomly disconnects or does not show up in DFU mode
First, check the USB cable you are using has the data pins; test it on another device. There are a surprisingly large number of usb-micro cables that are power _only_.
1. Check if the USB cable you are using has the data pins; test it on another device. There are a surprisingly large number of usb-micro cables that are power _only_.
Secondly, try other USB ports. Often different USB controllers will interact with the units differently due to design quirks in the miniware design.
2. Try other USB ports. Often different USB controllers will interact with the units differently due to design quirks in the miniware design.
## [Miniware] Alternative bootloader
### [Miniware] Alternative bootloader
If you are an advanced user, and you have used `usb-dfu` tools before, or you would like to learn; there is an alternative bootloader for these irons.
This will **NOT** show up as a USB storage drive, but instead show up using a standard DFU protocol device. You can then use dfu tools or GUI's to upgrade the iron using the `.bin` files that are posted to the releases page.

View File

@@ -1,7 +1,7 @@
# Getting Started
Getting started with Iron OS on your Pinecil/TS80/TS80P/TS100.
If your device did not come with Iron OS already installed, or if you need to update to the latest version; please see the [Flashing Guide](/Documentation/Flashing.md).
Getting started with IronOS on your Pinecil/TS80/TS80P/TS100.
If your device did not come with IronOS already installed, or if you need to update to the latest version; please see the [Flashing Guide](/Documentation/Flashing.md). It is recommended to update to the newest stable release.
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.
@@ -18,7 +18,7 @@ By default this will show a screen similar to the one below:
Note that this may be drawn mirrored depending on the orientation of your screen.
The soldering iron symbol on the screen will appear near the tip. This is here to indicate that pressing the button closest to the front of the soldering iron will enter soldering mode.
The soldering iron symbol on the screen will appear near the tip. This is here to indicate that pressing the button closest to the front of the iron will enter soldering mode.
And naturally, the spanner like icon represents that pressing the button near the rear of the soldering iron will enter the settings menu.
@@ -40,40 +40,43 @@ If you press and hold the button near the rear of the iron it will take you into
## Soldering Mode
When you press the button to enter into the soldering mode, the iron will instantly start to heat up the tip.
When you press the button to enter the soldering mode, the iron will instantly start to heat up the tip.
The firmware defaults to 320C as the set point for the soldering mode, however on this screen you can enter into the adjustment screen by pressing either button.
The firmware defaults to 320 °C as the set point for the soldering mode, however on this screen you can enter into the adjustment screen by pressing either button.
Pressing and holding the button near the tip will enter **boost** mode. This allows temporarily overriding the set temperature to a higher (or lower) value. This can be useful as a way to force the tip to a higher temperature to drive more wattage into a large joint when the thermal connection is not ideal.
Pressing and holding the button near the tip will enter **Boost** mode. This allows a temporary override of the set temperature to a higher (or lower) value. This can be useful as a way to force the tip to a higher temperature to drive more wattage into a large joint when the thermal connection is not ideal.
Pressing and holding the rear button will exit soldering mode and land you back at the home screen. You can also do this by pressing both buttons at once and this will also work, this is a bit harder to do but is kept for compatibility with the Miniware firmware.
Pressing and holding **both** buttons at once will enter locked mode, which will prevent the buttons from doing anything. You can in the settings allow boost mode in locked mode optionally. This can be useful if you find yourself hitting the buttons and entering into the temperature adjustment screen by accident.
### Idle sleep
### Idle Sleep
If the iron detects a period of time without any significant movement, it will enter into a sleep mode. This is indicated with a graphic on the screen similar to ZZzz (or text in detailed mode).
If the iron detects a period of time without any significant movement, it will enter sleep mode. This is indicated with a screen graphic similar to Zzzz (or text in detailed mode).
In this mode, the temperature of the iron will automatically reduce down to a temperature just below the melting point of the solder. This helps reduce the rate of oxidation and damage to the iron tip.
In Sleep mode, the temperature of the iron automatically lowers to 150 °C (default), which is just below the melting point of the solder. This helps reduce rate of oxidation and damage to the iron tip. 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 picking up or moving the iron will wake it back up into soldering mode. You can also press any button and this will also wake the iron up.
The Pinecil has a footprint (unpopulated) on the PCB for a hall effect sensor (Si7210). If you fit this then iron will additionally force sleep when it detects a strong magnetic field near the tip of the plastic body. This allows attaching a strong magnet near your iron holder to ensure it always enters sleep.
Optional Hall Effect Feature (Pinecil only):
Pinecil has an unpopulated footprint (U14) for a hall effect sensor (Si7210). Adding the sensor and placing a strong magnet on the holder stand will trigger Pinecil to sleep after it enters the stand, and Zzzz will appear on the screen. The magnet is positioned on the stand in proximity to the sensor which then activates one of 10 user defined settings (0=off, 1=lowest sensitivity, 9=highest sensitivity). Read the Hall Sensor document for details on [installation](/Documentation/HallSensor.md).
### Idle shutdown
If, after entering sleep mode the iron still does not see movement for a much longer time; it will shut down and return to the home screen.
### Idle Shutdown
If, after entering sleep mode, the iron still does not see movement for a much longer time (default=10 minutes); it will shut down and return to the home screen.
## Settings Menu
The settings menu is the most often evolving aspect of the firmware, so each option is not documented here. However, do not panic, as every menu option has a description so that you don't _need_ to come back here to figure them all out.
The settings menu is the most often evolving aspect of the firmware, so each option is not documented here. However, do not panic, as every menu option has an on-screen description so you don't _need_ to come back here to figure them all out.
To navigate the menu, the two buttons act separately.
The button that you pressed to enter the menu (rear) cycles down the options, and the other button (front) will change the current option.
The button that you pressed to enter the menu (rear) scrolls down the options, and the other button (front) will enter and change the current option.
To see a description of an option, just pause and wait and after a little bit, it will scroll across the screen.
To see a description of an option, just wait and after a little time, it will scroll across the screen.
The menu is comprised of a "main menu" of categories and then sub-items that allows you to adjust parameters.
The menu is comprised of a 'main menu' of categories and then sub-items that allows you to adjust parameters.
You can long hold buttons to change through options faster, and there is some acceleration when holding the buttons.
@@ -81,4 +84,4 @@ There is a small scrollbar that will be shown along the edge of the screen to in
Additionally, this scrollbar will blink rapidly when you are on the last item in a menu choice.
I highly recommend taking a few minutes to go through all of the options in the menu to get a feel for what you can change, almost every aspect of the internal system is adjustable to suit you.
I highly recommend taking a few minutes to go through all of the options in the menu to get a feel for what you can change, almost every aspect of the internal system is adjustable to suit your needs.

View File

@@ -0,0 +1,20 @@
# Hall Effect Sensor
## Sleep Mode Menu
In Sleep mode, the temperature of the iron automatically lowers to 150 °C (default), which is just below the melting point of the solder. This helps reduce rate of oxidation and damage to the iron tip. 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 will wake it back up into soldering mode. You can also press any button and this will also wake-up the iron.
### Optional Hall Effect Feature (Pinecil only):
Inside the Sleep Menu is an additional type of sleep setting. Pinecil has an unpopulated footprint (U14) for a hall effect sensor (Si7210). It is possible with the hall sensor to trigger Pinecil to go to sleep after it enters the stand, and Zzzz will appear on the screen. After installing the hall sensor, a magnet is positioned on the stand close enough to the sensor to activate one of ten user selectable settings.
- 0=off, 1=1000, 2=750, 3=500, 4=250, 5=150, 6=100, 7=75, 8=50, 9=25 (9 has the highest sensitivity to magnets)
- Setting of 1 might be used if you solder on PCBs with magnets and do not wish Pinecil to auto-sleep constantly. And a very strong/large magnet would be required on the stand to activate the sensor sleep mode.
- Setting of 9 would be useful if you only had a small magnet and are not concerned about Pinecil falsely triggering sleep mode near magnetized items/tools.
- Neodymium magnets are recommended. If using small magnets, 2-3 may be required, but too many can also be detrimental.
- Actively watch the hall number change (in [debug menu](/Documentation/DebugMenu.md)) while you slowly move the magnet around to seek the best locations & whether you have too many or too few magnets. Positioning the magnet where you have the highest hall number will ensure consistent sleep mode when you place the iron in the stand. This requires some experimenting.
- Sensor is physically located near the copper contacts for the tip at the front of the handle. Reference [Schematics U14](https://files.pine64.org/doc/Pinecil/Pinecil_schematic_v1.0a_20201120.pdf).
- Positioning/type/quantity of magnets is important for best results. Sometimes [too many magnets](https://www.youtube.com/shorts/afkqKwCX00I) breaks the effect by distorting the magnetic field.
- Orientation of North and South faces of magnets is important to increase reaction of the hall sensor [SI7210-B-00-IV](https://www.silabs.com/documents/public/application-notes/an1018-si72xx-sensors.pdf).

View File

@@ -5,19 +5,22 @@ By default there is _not_ one included in the firmware, as this means that once
## Generating the Logo files
The [Python script](https://github.com/Ralim/ts100/blob/master/Bootup%20Logo/python_logo_converter/img2ts100.py) converts an image passed into it on the command line to a HEX file to be uploaded to the iron in DFU mode (similar to the process described above). 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 in an image editor and color the pixels black or white manually.
The [Python script](https://github.com/Ralim/IronOS-Meta/blob/main/Bootup%20Logos/img2logo.py) converts an image passed into it on the command line to a `.hex` file or a `.dfu` to be uploaded to the iron in DFU mode (similar to the process described above). 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 in an image editor and color the pixels black or white manually.
There are community logo's already converted available for download in the releases in [IronOS-Meta](https://github.com/Ralim/IronOS-Meta/).
The converter requires at least Python 3 and Pillow (if you don't have it, it will tell you to install PIL, which is an old version of the same thing). See [this page](https://stackoverflow.com/a/20061019/6705343) on StackOverflow about installing it.
What works can vary, but this command may work:
`python3 -m pip install Pillow`
`python3 -m pip install pillow`
Then, to convert an image:
`python3 img2ts100.py infile.png outfile.hex`
- `python3 img2logo.py infile.png out -m` for Miniware
- `python3 img2logo.py infile.png out -p` for Pinecil
Run `python3 img2ts100.py --help` to see available options.
Run `python3 img2logo.py --help` to see available options.
## Flashing the Logo
@@ -26,15 +29,11 @@ Run `python3 img2ts100.py --help` to see available options.
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 of the existing notes around this apply.
If you have flashed the `IronOS-dfu` alternative bootloader, you should use the `.dfu` files instead
### Pinecil
For the Pinecil, we require to flash the logo using dfu-util instead, which will only take `.bin` files rather than `.hex`.
To flash the logo, use the following steps:
For Pinecil, we require using dfu-util instead to flash the logo art (Pinecil does not use hex).
Please see the [Meta repo](https://github.com/Ralim/IronOS-Meta) for the tooling for converting logo's as well as automatically generated logo's
- `python3 img2ts100.py input.png logo.hex`
- `riscv-nuclei-elf-objcopy -I ihex -O binary logo.hex logo.bin`
- `dfu-util -d 28e9:0189 -a 0 -D logo.bin -s 0x0801F800`
This will use the objcopy tool to convert the hex to a binary file, and then use dfu-util to flash it in the right location.
If you do not have `riscv-nuclei-elf-objcopy` installed, you can generally use any objcopy tool from any toolchain you do have.
- `dfu-util -D logo_file.dfu`

View File

@@ -22,7 +22,7 @@ Scrolling through the submenu will return you back to its entry location after y
### Calibrating input voltage
Due to the tolerance on the resistors used for the input voltage divider, some irons can be up to 0.6V out on the voltage measurement.
Due to the tolerance on the resistors used for the input voltage divider, some irons can be up to 0.6 V out on the voltage measurement.
Please calibrate your iron if you have any issues with the cutoff voltage.
Note that cutoff messages can also be triggered by using a power supply that is too weak and fails under the load of the iron.

View File

@@ -13,7 +13,7 @@ Combining these two gives the common equation, power is `Volts (V) squared / Res
The resistance of the tip is fixed, ~7.5 ohms for the TS100/Pinecil and ~4.5 ohms for the TS80(P).
This means that for both irons, the power delivered to the soldering tip is proportional to the voltage used, squared.
This is why the TS100 performs poorly when run off 12V power supplies.
This is why the TS100 performs poorly when run off 12 V power supplies.
## Output Control & Regulation

314
Documentation/Settings.md Normal file
View File

@@ -0,0 +1,314 @@
<!-- This is an automatically generated file. DO NOT EDIT. Edit gen_menu_docs.py instead -->
# IronOS Settings Menu
The below breaks down the menu's and what each setting means.
## Menu Categories
In the menu there are a few main categories that are used to keep the list manageable.
### Category: Power settings
Menu for settings related to power. Main settings to do with the input voltage.
### Category: Soldering settings
Settings for soldering mode, such as boost temps, the increment used when pressing buttons and if button locking is enabled.
### Category: Sleep mode
Settings to do with power saving, such as sleep mode, sleep temps, and shutdown modes.
### Category: User interface
User interface related settings, such as units.
### Category: Advanced settings
Advanced settings. Misc catchall for settings that don't fit anywhere else or settings that require some thought before use.
## Settings
These are all of the settings possible in the menu.
**Not all settings are visible for all devices.**
For example, the TS100 does not have USB-PD settings.
When using the device, if unsure you can pause (press nothing) on a setting and after a short delay help text will scroll across the screen.
This is the "on device help text".
### Setting: Power source
When the device is powered by a battery, this adjusts the low voltage threshold for when the unit should turn off the heater to protect the battery.
On device help text:
Power source. Sets cutoff voltage. (DC 10V) (S 3.3V per cell, disable power limit)
### Setting: Sleep temp
Temperature the device will drop down to while asleep. Typically around halfway between off and soldering temperature.
On device help text:
Tip temperature while in "sleep mode"
### Setting: Sleep timeout
How long of a period without movement / button-pressing is required before the device drops down to the sleep temperature.
On device help text:
Interval before "sleep mode" kicks in (S=seconds | M=minutes)
### Setting: Shutdown timeout
How long of a period without movement / button-pressing is required before the device turns off the tip heater completely and returns to the main idle screen.
On device help text:
Interval before the iron shuts down (M=minutes)
### Setting: Motion sensitivity
Scale of how sensitive the device is to movement. Higher numbers == more sensitive. 0 == motion detection turned off.
On device help text:
0=off | 1=least sensitive | ... | 9=most sensitive
### Setting: Temperature unit
If the device shows temperatures in °C or °F.
On device help text:
C=Celsius | F=Fahrenheit
### Setting: Detailed idle screen
Should the device show an 'advanced' view on the idle screen. The advanced view uses text to show more details than the typical icons.
On device help text:
Display detailed information in a smaller font on the idle screen
### Setting: Display orientation
If the display should rotate automatically or if it should be fixed for left- or right-handed mode.
On device help text:
R=right-handed | L=left-handed | A=automatic
### Setting: Boost temp
When the unit is in soldering mode. You can hold down the button at the front of the device to temporarily override the soldering temperature to this value. This SETS the temperature, it does not ADD to it.
On device help text:
Temperature used in "boost mode"
### Setting: Start-up behavior
When the device powers up, should it enter into a special mode. These settings set it to either start into soldering mode, sleeping mode or auto mode (Enters into soldering mode on the first movement).
On device help text:
O=off | S=soldering temp | Z=standby at sleep temp until moved | R=standby without heating until moved
### Setting: Cooldown flashing
If the idle screen should blink the tip temperature for attention while the tip is over 50°C. Intended as a 'tip is still hot' warning.
On device help text:
Flash the temperature reading after heating was halted while the tip is still hot
### Setting: Calibrate temperature?
Used to calibrate the ADC+Op-amp offsets for the tip. This calibration must be performed when the tip temperature and the handle temperature are equal. Generally not required unless your device is reading more than 5°C off target.
On device help text:
Start tip temperature offset calibration
### Setting: Restore factory settings?
Resets all settings and calibrations to factory defaults. Does NOT erase custom user boot up logo's.
On device help text:
Reset all settings to default
### Setting: Calibrate input voltage?
Enters an adjustment mode where you can gradually adjust the measured voltage to compensate for any unit-to-unit variance in the voltage sense resistors.
On device help text:
Start VIN calibration (long press to exit)
### Setting: Detailed solder screen
Should the device show an 'advanced' soldering view. This is a text-based view that shows more information at the cost of no nice graphics.
On device help text:
Display detailed information in a smaller font on soldering screen
### Setting: Scrolling speed
How fast the description text scrolls when hovering on a menu. Faster speeds may induce tearing, but allow reading the whole description faster.
On device help text:
Speed info text scrolls past at (S=slow | F=fast)
### Setting: QC voltage
This adjusts the maximum voltage the QC negotiation will adjust to. Does NOT affect USB-PD. Should be set safely based on the current rating of your power supply.
On device help text:
Max QC voltage the iron should negotiate for
### Setting: PD timeout
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.
On device help text:
PD negotiation timeout in 100ms steps for compatibility with some QC chargers
### Setting: Power limit
Allows setting a custom wattage for the device to aim to keep the AVERAGE power below. The unit can't control its peak power no matter how you set this. (Except for MHP30 which will regulate nicely to this). If USB-PD is in use, the limit will be set to the lower of this and the supplies advertised wattage.
On device help text:
Maximum power the iron can use (W=watt)
### Setting: Swap + - keys
Swaps which button increments and decrements on temperature change screens.
On device help text:
Reverse assignment of buttons for temperature adjustment
### Setting: Temp change short
Factor by which the temperature is changed with a quick press of the buttons.
On device help text:
Temperature-change-increment on short button press
### Setting: Temp change long
Factor by which the temperature is changed with a hold of the buttons.
On device help text:
Temperature-change-increment on long button press
### Setting: Power pulse
Enables and sets the wattage of the power pulse. Power pulse causes the device to briefly turn on the heater to draw power to avoid power banks going to sleep.
On device help text:
Intensity of power of keep-awake-pulse (watt)
### Setting: Hall sensor sensitivity
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.
On device help text:
Sensitivity of the Hall effect sensor to detect sleep (O=off | L=low | M=medium | H=high)
### Setting: Allow locking buttons
If locking the buttons against accidental presses is enabled.
On device help text:
While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)
### Setting: Minimum voltage
When powered by a battery, this adjusts the minimum voltage per cell before shutdown. (This is multiplied by the cell count.)
On device help text:
Minimum allowed voltage per cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)
### Setting: Anim. loop
Should the menu animations loop. Only visible if the animation speed is not set to "Off"
On device help text:
Loop icon animations in main menu
### Setting: Anim. speed
How fast should the menu animations loop, or if they should not loop at all.
On device help text:
Pace of icon animations in menu (O=off | S=slow | M=medium | F=fast)
### Setting: Power pulse delay
Adjusts the time interval between power pulses. Longer gaps reduce undesired heating of the tip, but needs to be fast enough to keep your power bank awake.
On device help text:
Delay before keep-awake-pulse is triggered (x 2.5s)
### Setting: Power pulse duration
How long should the power pulse go for. Some power banks require seeing the power draw be sustained for a certain duration to keep awake. Should be kept as short as possible to avoid wasting power / undesired heating of the tip.
On device help text:
Keep-awake-pulse duration (x 250ms)
### Setting: Language: EN English
Changes the device language on multi-lingual builds.
On device help text:
Current firmware language
### Setting: Screen brightness
Display brightness. Higher values age the OLED faster due to burn-in. (However, it is notable that most of these screens die from other causes first.)
On device help text:
Adjust the brightness of the OLED screen
### Setting: Invert screen
Inverts the entire OLED.
On device help text:
Invert the colours of the OLED screen
### Setting: Boot logo duration
Sets the duration of the boot logo from 1 second to 4 seconds.
- For static images this sets the time the logo is displayed for.
- For animations this sets the time the last frame is displayed for after the animation has been played.
The infinity icon sets a logo or the last frame of an animation to be displayed until a button is pressed.
On device help text:
Sets the duration for the boot logo (S=seconds)

View File

@@ -15,7 +15,7 @@ This has some fairly large limitations, but it also has the benefit of being ext
Conventionally a thermocouple is created using two dissimilar metals that join, and then the other ends of these metals are terminated to copper contacts. These copper contacts are also part of the construction of the thermocouple and are referred to as the cold junction.
As there are these extra two joins between the thermocouple wires and the copper; these also have properties of their own in their reactions with temperature.
If the cold junction is held at 0 degree's C, then their effect is considered to be null, and so they can be ignored. However, in the real world the joins to copper are often at room temperature, and as such the measured voltage from the thermocouple must be compensated to remove the influence of these joints. This process is often called cold junction compensation.
If the cold junction is held at 0 degrees Celsius, then their effect is considered to be null, and so they can be ignored. However, in the real world the joins to copper are often at room temperature, and as such the measured voltage from the thermocouple must be compensated to remove the influence of these joints. This process is often called cold junction compensation.
Every time in the circuit there is a join between two different metals, there is a small thermocouple created, this means that _every_ soldered connection is also one.
@@ -25,9 +25,9 @@ Every time in the circuit there is a join between two different metals, there is
If you analyse one of the open circuit schematics (Pinecil, TS100, TS80) they all use the same approximate formula.
This consists of an op-amp that is connected directly across the heating connections to the tip, and a separate handle temperature sensor.
When the iron is **not** heating the tip, the microcontroller uses the ADC to read the output from the op-amp. This produces a voltage that _should_ be linear to the temperature of (tip-handle). This value is then offset compensated (to remove ADC+op-amp offsets), and then converted into a temperature delta in C/K. This temperature delta can then be added to the handle temperature to derive the tip temperature in C.
When the iron is **not** heating the tip, the microcontroller uses the ADC to read the output from the op-amp. This produces a voltage that _should_ be linear to the temperature of (tip-handle). This value is then offset compensated (to remove ADC+op-amp offsets), and then converted into a temperature delta in °C/K. This temperature delta can then be added to the handle temperature to derive the tip temperature in degrees Celsius.
Depending on the construction of the tip, the lookup values used for converting the tip reading in uV into degrees C/K varies. It is worth noting, however, that TS100 and Pinecil tips are approximately the same as the Hakko T12 tips. (In @Ralim's testing, to within measurement error). This makes sense as these tips are cheap and would have made an excellent design for Miniware to have cloned in making the TS100 in the first place.
Depending on the construction of the tip, the lookup values used for converting the tip reading in µV into °C/K varies. It is worth noting, however, that TS100 and Pinecil tips are approximately the same as the Hakko T12 tips. (In @Ralim's testing, to within measurement error). This makes sense as these tips are cheap and would have made an excellent design for Miniware to have cloned in making the TS100 in the first place.
## Implications of this
@@ -43,7 +43,7 @@ The PID controller in the firmware is tuned to be slightly underdamped and thus
This is why sometimes the temperature may flick around a little during use but the tip temperature itself is quite stable. The thermal mass of the tip smooths these small amounts out nicely for the user. Though seeing larger jumps on some tips than others _may_ indicate that the tip does not have optimal internal thermal bonding between the heater coil and the tip itself.
The firmware uses the theory that these irons are more towards the power users territory than most, so it tries to not hide the actual temperature. What some soldering iron controllers do is that they hide the actual measurement once you are within a certain tolerance of this. For example, on a digital Weller unit Ralim has to hand, if set to 350C, it will regulate to within around +-3 C but not indicate you are outside of this bad until you exceed +-5C. This gives the illusion that it's holding the temperature perfectly when in actuality it's moving around as well.
The firmware uses the theory that these irons are more towards the power users territory than most, so it tries to not hide the actual temperature. What some soldering iron controllers do is that they hide the actual measurement once you are within a certain tolerance of this. For example, on a digital Weller unit Ralim has to hand, if set to 350 °C, it will regulate to within around +-3 °C but not indicate you are outside of this bad until you exceed +-5 °C. This gives the illusion that it's holding the temperature perfectly when in actuality it's moving around as well.
Given enough time (3-5 seconds) with no external cooling, the inside and outside temperatures of the tip will be equal. When testing the tip temperature accuracy try to allow time for the system to stabilise.
@@ -53,6 +53,6 @@ The firmware in these irons does a best-effort of calculating an accurate temper
The firmware only accounts for cold junction compensation and then treats the remaining error as being a constant offset.
While the error is small, it is actually composed of both a constant offset as well as an offset that is linear to the handle temperature.
This offset that is linear to handle temperature is as of current not modelled into the firmware and there is assumed to be constant. This is generally "close enough" as once the unit is in use, the handle temperature is usually within 10C as the components inside warm-up from use. This means that this error is "relatively" constant once the unit is being used. However, this can cause odd behaviour when the tip temperature ~= room temperature. And can cause some jumping and movement in the readings when attempting to control the tip to sub 100C.
This offset that is linear to handle temperature is as of current not modelled into the firmware and there is assumed to be constant. This is generally "close enough" as once the unit is in use, the handle temperature is usually within 10 °C as the components inside warm-up from use. This means that this error is "relatively" constant once the unit is being used. However, this can cause odd behaviour when the tip temperature ~= room temperature. And can cause some jumping and movement in the readings when attempting to control the tip to sub 100 °C.
This is a known tradeoff that is made as the irons intended use case means that it will spend most of its time above 150C, at which point these errors are no longer the dominant error sources in the system.
This is a known tradeoff that is made as the irons intended use case means that it will spend most of its time above 150 °C, at which point these errors are no longer the dominant error sources in the system.

View File

@@ -0,0 +1,77 @@
# Troubleshooting
If your device is not operating as expected; and you are within the manufacturer support window, please first contact your manufacturer and RMA / warranty your device.
If your iron is not working as expected, [the Debug menu](DebugMenu.md) exposes internal measurements to help you narrow down the root cause of the issue.
Alongside all of these, issues with the soldering of the main MCU could cause all of these as well; and should always be checked.
The tip is important for the operation of your iron. T100 and Pinecil tips are around 8 ohms, and TS80(P) tips are around 4.5 ohms.
You are welcome to open discussions about issues as well, or if you bought your Pinecil from an official store; use the Pinecil community chat for support.
But it is helpful to do some basic diagnostics first just in case the issue is easily fixed.
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, can fix most issues.
## 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`.
- `RTip` is the raw tip reading in μV; at cool this should be around 700-1000 for Larger tips and ~1500 for smaller tips (TS80's)
- `CHan` is the temperature of the temperature sensor on the PCB in degrees Celsius \* 10. So 29 °C ambient should read as 290
### RTip is out of spec
`RTip` will over-read on bad contacts or no tip inserted.
If `RTip` is overreading, you may have one of the following:
- Partially stuck on main MOSFET
- Slow reacting main MOSFET driver transistor
- Damaged op-amp
- Poor soldering on the op-amp circuitry
- No tip inserted or tip that is not connecting correctly
If `RTip` is under-reading you most likely have issues with the op-amp or the tip. The signal should be pulled high by hardware (reading hot), so this often means the MCU is not reading the signal correctly. Check MCU soldering.
### CHan is out of spec
CHan reading comes directly from the cold junction compensation temperature sensor.
This is usually a TMP36, or an NTC thermistor (MHP30, TS80P).
If `CHan` is reading low:
- Check the connection from the MCU to the handle temperature sensor.
- Check the power pin connection on the TMP36
- Check pullup resistor on the NTC thermistor
- Check no bridged pins or weak shorts on the signal to nearby pins on MCU or temp sensor
If `CHan` is reading higher
- Check ground connections on the sensors
- Check no bridged pins or weak shorts on the signal to nearby pins on MCU or temp sensor
## No display OR dots on the display
If when you power up your iron you get no display, the first test is to (carefully) attempt to heat the tip.
Press the front button on your device and check if the tip heads up.
If the tip does not heat up, it is worth trying to reflash the firmware first in case it is corrupted.
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.
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.
## Tip heats when not in heating mode
** DISCONNECT YOUR TIP **
Most likely you have either a blown MOSFET or shorted pin.
Check the MOSFET and also its driver transistor.
The firmware will not enable the tip until you are in soldering mode.
## Accelerometer not detected
This could be that your Iron has a new accelerometer that is not supported yet (happens every year or so) OR there is a soldering issue with the accelerometer

Binary file not shown.

Before

Width:  |  Height:  |  Size: 554 B

After

Width:  |  Height:  |  Size: 696 B

View File

@@ -1,7 +1,9 @@
#!/bin/sh
#!/bin/bash
# TS100 Flasher for Linux by Alex Wigen (https://github.com/awigen)
# Jan 2021 - Update by Ysard (https://github.com/ysard)
DIR_TMP="/tmp/ts100"
HEX_FIRMWARE="$DIR_TMP/ts100.hex"
usage() {
echo
@@ -69,13 +71,28 @@ mount_ts100() {
}
umount_ts100() {
if ! mountpoint "$DIR_TMP" > /dev/null && sudo umount "$DIR_TMP"; then
if ! (mountpoint "$DIR_TMP" > /dev/null && sudo umount "$DIR_TMP"); then
echo "Failed to unmount $DIR_TMP"
exit 1
fi
rmdir "$DIR_TMP"
}
check_flash() {
RDY_FIRMWARE="${HEX_FIRMWARE%.*}.rdy"
ERR_FIRMWARE="${HEX_FIRMWARE%.*}.err"
if [ -f "$RDY_FIRMWARE" ]; then
echo -e "\e[92mFlash is done\e[0m"
echo "Disconnect the USB and power up the iron. You're good to go."
elif [ -f "$ERR_FIRMWARE" ]; then
echo -e "\e[91mFlash error; Please retry!\e[0m"
else
echo -e "\e[91mUNKNOWN error\e[0m"
echo "Flash result: "
ls "$DIR_TMP"/ts100*
fi
}
cleanup() {
enable_gautomount
if [ -d "$DIR_TMP" ]; then
@@ -109,7 +126,7 @@ echo "Found TS100 config disk device on $DEVICE"
mount_ts100
echo "Mounted config disk drive, flashing..."
cp -v "$1" "$DIR_TMP/ts100.hex"
cp -v "$1" "$HEX_FIRMWARE"
sync
echo "Waiting for TS100 to flash"
@@ -119,6 +136,5 @@ echo "Remounting config disk drive"
umount_ts100
wait_for_ts100
mount_ts100
check_flash
echo "Flash result: "
ls "$DIR_TMP"/ts100*

View File

@@ -4,7 +4,7 @@
# IronOS - Flexible Soldering iron control Firmware
_This repository was formerly known as TS100, it's the same great code. Just with more supported devices_
_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 iron control firmware.
@@ -12,15 +12,21 @@ The firmware implements all of the standard features of a "smart" soldering iron
I highly recommend reading the installation guide fully when installing on your iron. And after install just explore the settings menu.
For soldering irons that are designed to be powered by "smart" power sources (QC and PD), the firmware supports settings around the negotiated power and voltage.
For soldering irons that are designed to be powered by batteries (TS100), settings for a cutoff voltage for battery protection are supported.
For soldering irons that are designed to be powered by batteries (TS100 & Pinecil), settings for a cutoff voltage for battery protection are supported.
There are 25 languages currently supported as of present. When downloading the firmware for your soldering iron take note of the language code in the file name.
There are 30 languages currently supported as of present. When downloading the firmware for your soldering iron take note of the language code in the file name.
This project is considered feature complete for use as a soldering iron, _so please suggest any feature improvements you would like!_
_This firmware does **NOT** support the USB port while running for changing settings. This is done through the onscreen menu only. Logos are edited using the tool or python script and uploaded in DFU mode._
To get started with this firmware, please jump over to [here](Documentation/GettingStarted.md)
To get started with this firmware, please jump over to [here](Documentation/GettingStarted.md).
But the [TL;DR](https://www.merriam-webster.com/dictionary/TL%3BDR) is to press the button near the front of the iron to heat up. Use the button near the back of the iron to enter the settings menu.
Long hold the rear button in soldering mode to exit back to the start screen.
## Installation
For notes on installation for your device, please refer to the [Flashing Guide](Documentation/Flashing.md).
## Key Features
@@ -29,7 +35,7 @@ To get started with this firmware, please jump over to [here](Documentation/Gett
- 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
- (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).
- Improved readability Fonts, supporting multiple languages
@@ -41,21 +47,17 @@ To get started with this firmware, please jump over to [here](Documentation/Gett
- [Custom boot up logo support](Documentation/Logo.md)
- Automatic LCD rotation based on the orientation
## Installation
For notes on installation for your device, please refer to the [Flashing Guide](Documentation/Flashing.md).
## Menu System
This new firmware uses a new menu system to allow access to the settings on the device.
When on the main screen, the unit shows a pair of prompts for the two most common operations.
When on the main screen and having the tip plugged in, the unit shows a pair of prompts for the two most common operations.
- Pressing the button near the tip enters the soldering mode
- Pressing the button near the USB enters the settings menu
- Holding the button near the tip will enter soldering temperature adjust mode (This is the same as the one in the soldering menu, just to let you edit before heating up)
- Holding the button near the USB end will show the [debug menu](Documentation/DebugMenu.md)
- Pressing the button near the tip enters the *soldering mode*
- Pressing the button near the USB end enters the *settings menu*
- When not in *soldering mode*, holding down the button near the tip will enter *soldering temperature adjust mode* (This is the same as the one in the *soldering mode*, but allows to adjust the temperature before heating up), in *soldering mode* however this will activate *boost mode* as long as you hold down the button.
- Holding down the button near the USB end will show the *[debug menu](Documentation/DebugMenu.md).* In *soldering mode* this ends the heating.
Detailed operation details are over in the [Menu information.](Documentation/Menu.md)
Operation details are over in the [Menu information.](Documentation/Menu.md)
## Thanks

View File

@@ -1,282 +1,491 @@
<!doctype html>
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="translations_commons.js"></script>
<title>TS100 Bitmap Editor</title>
<style>
.matrix {
display: inline-block;
padding: 0px 0px 1px 1px ;
background-color: #666;
margin-top: 1em;
margin-bottom: 1em;
}
.matrix * {
font-size:0;
}
.c {
margin:1px 1px 0px 0px;
display: inline-block;
background-color: #fff;
height:10px;
width: 10px;
}
.x {
background-color: #000;
}
.header {
}
.data input, .data textarea {
margin-top: 1em;
width: 100%;
}
.actions {
}
</style>
<script>
var ink, pressed, ev;
function mousedown(e) {
c = window.event.target;
classes = c.className.split(" ");
if (classes.indexOf("c")<0) {
return;
}
ink = classes.indexOf("x")<0;
pressed = true;
ev = e;
enter(e);
}
function mouseup(e) {
ev = e;
pressed = false;
}
function enter(e) {
if (!pressed) {
return;
}
ev = e;
c = window.event.target;
paint(c, ink);
stringFromMatrix();
}
<head>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="translations_commons.js"></script>
<title>TS100 Bitmap Editor</title>
<style id="styles">
.matrix {
display: inline-block;
padding: 0px 0px 1px 1px;
background-color: #666;
margin-top: 1em;
margin-bottom: 1em;
}
function paint(c, ink) {
var cellInk = isInk(c);
if (ink) {
if (!cellInk) {
c.className += " x";
}
} else {
if (cellInk) {
c.className = "c";
}
}
}
.matrix * {
font-size: 0;
}
.r {
white-space: nowrap;
}
.c {
margin: 1px 1px 0px 0px;
display: inline-block;
background-color: #fff;
height: 10px;
width: 10px;
}
function isInk(c) {
try {
var classes = c.className.split(" ");
return classes.indexOf("x") >= 0;
} catch(e) {
return false;
}
}
function getMatrix() {
return document.getElementById("matrix");
}
function getCoordinatesFromId(str) {
i = str.indexOf('_');
return {
row: parseInt(str.substring(1, i)),
col: parseInt(str.substring(i+1))
}
}
.x {
background-color: #000;
}
function clearMatrix() {
for (var r = 0; r < app.matrix.rows; r++) {
for (var c = 0; c < app.matrix.cols; c++) {
paint(getCell(r, c), false);
}
}
}
function getCell(row, col) {
return document.getElementById("C"+row+"_"+col);
}
function toMatrix(str) {
app.encodedData = str;
clearMatrix();
var strs = str.split(/[ ,]/);
var pair = false;
var c = 0;
var rs = 7;
for (var i = 0; i<strs.length; i++) {
var d = strs[i];
if (d.length > 0) {
if (startsWith(d, "0x")) {
v = parseInt(d.substring(2), 16);
} else {
v = parseInt(d);
}
sv = padLeft(v.toString(2), "0", 8);
for (r = 0; r < 8; r++) {
paint(getCell(rs - r, c), sv.charAt(r) == '1');
}
c++;
if (c >= app.matrix.cols) {
c = 0;
rs += 8;
}
}
}
stringFromMatrix(true, false);
}
function escapedToMatrix(str) {
app.encodedEscapeSequence = str;
clearMatrix();
var strs = str.split("\\x");
var c = 0;
var rs = 7;
for (var i = 0; i<strs.length; i++) {
var d = strs[i];
if (d.length > 0) {
v = parseInt(d, 16);
sv = padLeft(v.toString(2), "0", 8);
for (r = 0; r < 8; r++) {
paint(getCell(rs - r, c), sv.charAt(r) == '1');
}
c++;
if (c >= app.matrix.cols) {
c = 0;
rs += 8;
}
}
}
stringFromMatrix(false, true);
}
.header {
}
function stringFromMatrix(skipEncodedData, skipEncodedEscapeSequence) {
var str = "";
var strEscaped = "";
var delim = "";
var blocks = app.matrix.rows / 8;
var rs = 7;
for (var block = 0; block < blocks; block++) {
for (var c = 0; c < app.matrix.cols; c++) {
var b = 0;
for (var r = 0; r < 8; r++) {
var cell = document.getElementById("C"+(rs-r)+"_"+c);
if (isInk(cell)) {
b |= (1 << (7-r));
}
}
str += delim + "0x" + padLeft(b.toString(16).toUpperCase(), "0", 2);
strEscaped += "\\x" + padLeft(b.toString(16).toUpperCase(), "0", 2);
delim = ",";
}
rs += 8;
}
if (!skipEncodedData) {
app.encodedData = str;
}
if (!skipEncodedEscapeSequence) {
app.encodedEscapeSequence = strEscaped;
}
return str;
}
function start() {
app = new Vue({
el : '#app',
data : {
matrix: {
cols: 12,
rows: 16
},
type: "big",
encodedData: "",
encodedEscapeSequence: "",
},
methods : {
VtoMatrix : function(val) {
toMatrix(val);
},
escapedToMatrix : function(val) {
escapedToMatrix(val);
},
VchangeSize : function() {
if (app.type == "big") {
app.matrix.cols = 12;
app.matrix.rows = 16;
} else if (app.type == "small") {
app.matrix.cols = 6;
app.matrix.rows = 8;
} else if (app.type == "icon") {
app.matrix.cols = 16;
app.matrix.rows = 16;
} else if (app.type == "icon24") {
app.matrix.cols = 24;
app.matrix.rows = 16;
} else if (app.type == "screen") {
app.matrix.cols = 84;
app.matrix.rows = 16;
} else if (app.type == "fullscreen") {
app.matrix.cols = 96;
app.matrix.rows = 16;
}
stringFromMatrix();
}
}
});
toMatrix("0x00,0xF0,0x08,0x0E,0x02,0x02,0x02,0x02,0x0E,0x08,0xF0,0x00,0x00,0x3F,0x40,0x5C,0x5C,0x5C,0x5C,0x5C,0x5C,0x40,0x3F,0x00");
}
.data input,
.data textarea {
margin-top: 1em;
width: 100%;
}
window.onload=start;
</script>
.actions {
}
</style>
<script>
var ink, pressed, ev;
function mousedown(e) {
c = window.event.target;
classes = c.className.split(" ");
if (classes.indexOf("c") < 0) {
return;
}
ink = classes.indexOf("x") < 0;
pressed = true;
ev = e;
enter(e);
}
</head>
<body>
<div id="app">
<div class="header">
<select v-model="type" v-on:change="VchangeSize()">
<option value="small">Small Font (6x8)</option>
<option value="big">Big Font (12x16)</option>
<option value="icon">Icon (16x16)</option>
<option value="icon24">Icon (24x16)</option>
<option value="screen">Screen (84x16)</option>
<option value="fullscreen">Full Screen (96x16)</option>
</select>
</div>
<div id="matrix" class="matrix" onmousedown="mousedown(this)" onmouseup="mouseup(this)" ondragstart="return false">
<div :id="'R'+(r-1)" class="r" v-for="r in matrix.rows">
<div :id="'C'+(r-1)+'_'+(c-1)" class="c" onmouseenter="enter(this)" v-for="c in matrix.cols"></div>
</div>
</div>
<div class="actions">
<input type="button" value="Clear" onclick="clearMatrix();stringFromMatrix()">
</div>
<div class="data">
<textarea v-model="encodedData" style="width:100%" v-on:change="VtoMatrix(encodedData)" rows=5></textarea>
<textarea v-model="encodedEscapeSequence" style="width:100%" v-on:change="escapedToMatrix(encodedEscapeSequence)" rows=5></textarea>
</div>
</div>
</body>
function mouseup(e) {
ev = e;
pressed = false;
}
function enter(e) {
if (!pressed) {
return;
}
ev = e;
c = window.event.target;
paint(c, ink);
stringFromMatrix();
}
function paint(c, ink) {
var cellInk = isInk(c);
if (ink) {
if (!cellInk) {
c.className += " x";
}
} else {
if (cellInk) {
c.className = "c";
}
}
}
function isInk(c) {
try {
var classes = c.className.split(" ");
return classes.indexOf("x") >= 0;
} catch (e) {
return false;
}
}
function getMatrix() {
return document.getElementById("matrix");
}
function getCoordinatesFromId(str) {
i = str.indexOf("_");
return {
row: parseInt(str.substring(1, i)),
col: parseInt(str.substring(i + 1)),
};
}
function clearMatrix() {
for (var r = 0; r < app.matrix.rows; r++) {
for (var c = 0; c < app.matrix.cols; c++) {
paint(getCell(r, c), false);
}
}
}
function invertMatrix() {
for (var r = 0; r < app.matrix.rows; r++) {
for (var c = 0; c < app.matrix.cols; c++) {
cell = getCell(r, c);
if (isInk(cell) == true) paint(cell, false);
else paint(cell, true);
}
}
stringFromMatrix();
}
function getCell(row, col) {
return document.getElementById("C" + row + "_" + col);
}
function toMatrix(str) {
app.encodedData = str;
clearMatrix();
var strs = str.split(/[ ,]/);
var pair = false;
var c = 0;
var rs = 7;
for (var i = 0; i < strs.length; i++) {
var d = strs[i];
if (d.length > 0) {
if (startsWith(d, "0x")) {
v = parseInt(d.substring(2), 16);
} else {
v = parseInt(d);
}
sv = padLeft(v.toString(2), "0", 8);
for (r = 0; r < 8; r++) {
paint(getCell(rs - r, c), sv.charAt(r) == "1");
}
c++;
if (c >= app.matrix.cols) {
c = 0;
rs += 8;
}
}
}
stringFromMatrix(true, false);
}
function escapedToMatrix(str) {
app.encodedEscapeSequence = str;
clearMatrix();
var strs = str.split("\\x");
var c = 0;
var rs = 7;
for (var i = 0; i < strs.length; i++) {
var d = strs[i];
if (d.length > 0) {
v = parseInt(d, 16);
sv = padLeft(v.toString(2), "0", 8);
for (r = 0; r < 8; r++) {
paint(getCell(rs - r, c), sv.charAt(r) == "1");
}
c++;
if (c >= app.matrix.cols) {
c = 0;
rs += 8;
}
}
}
stringFromMatrix(false, true);
}
// Rather than trying to figure these crazy cells/matrix, we just
// slurp up the encoded string at the end. It's updated on every
// pixl change, redraw, and load so just slipping into
// stringFromMatrix is tacky, but seemss to catch all our refreshes.
//
// The string is CSV hex, with the first byte being the first column,
// and bit zero being the UL corner. Second byte is second column, etc.
// app.matrix.{cols,rows} is set by the drawing code to size the
// image for a character, an icon, or the full screen image. This
// code adapts resizing from that.
// INVERT is handled by the code above us, our fill/clearRect handles
// that.
function updateCanvas(buf) {
// Number of squared canvas pixels to image pixels;
var scale = 1;
var c = document.getElementById("myCanvas");
var context = c.getContext("2d");
context.fillRect(0, 0, c.width, c.height);
if (c.width != app.matrix.cols || c.height != app.matrix.rows) {
c.width = app.matrix.cols * scale;
c.height = app.matrix.rows * scale;
}
context.clearRect(0, 0, c.width, c.height);
var a = buf.split(",");
var x = 0;
var y = 0;
for (var e = 0; e < a.length; e++) {
byte = parseInt(a[e], 16);
for (var bit = 0; bit < 8; bit++) {
// debug.innerHTML+= e + ": " + x + "/" + y + " " + a.length + "</br>";
// debug.innerHTML+= app.matrix.cols + "</br>";
if (x > c.cols) {
throw "write past right of canvas";
}
if (x > c.rows) {
throw "write past bottom of canvas";
}
if (byte & (1 << bit)) {
// FillRect give better B&W image
if (scale > 1) {
context.moveTo(x, y);
context.lineWidth = scale;
context.lineTo(x + scale, y);
} else {
context.beginPath();
context.fillRect(x, y, 1, 1);
context.fill();
}
}
y += scale;
}
y -= 8 * scale;
x += scale;
if (x == app.matrix.cols * scale) {
x = 0;
y = 8 * scale;
}
// debug.innerHTML+= x + " " + x/app.matrix.cols + " " + y + "</br>";
// debug.innerHTML+=byte + "</br>";
}
context.strokeStyle = "black";
context.stroke();
return c;
}
function makePNG() {
var canvas = document.getElementById("myCanvas");
//var context = c.getContext("2d");
//window.location = canvas.toDataURL("image/png");
///var image = canvas.toDataURL("image/png");
// document.write('<img src="'+image+'"/>');
var image = canvas
.toDataURL("image/png")
.replace("image/png", "image/octet-stream");
window.location.href = image;
}
function stringFromMatrix(skipEncodedData, skipEncodedEscapeSequence) {
var str = "";
var strEscaped = "";
var delim = "";
var blocks = app.matrix.rows / 8;
var rs = 7;
for (var block = 0; block < blocks; block++) {
for (var c = 0; c < app.matrix.cols; c++) {
var b = 0;
for (var r = 0; r < 8; r++) {
var cell = document.getElementById("C" + (rs - r) + "_" + c);
if (isInk(cell)) {
b |= 1 << (7 - r);
}
}
str += delim + "0x" + padLeft(b.toString(16).toUpperCase(), "0", 2);
strEscaped += "\\x" + padLeft(b.toString(16).toUpperCase(), "0", 2);
delim = ",";
}
rs += 8;
}
if (!skipEncodedData) {
app.encodedData = str;
}
if (!skipEncodedEscapeSequence) {
app.encodedEscapeSequence = strEscaped;
}
updateCanvas(str);
return str;
}
function start() {
app = new Vue({
el: "#app",
data: {
matrix: {
cols: 12,
rows: 16,
},
type: "big",
encodedData: "",
encodedEscapeSequence: "",
},
methods: {
VtoMatrix: function (val) {
toMatrix(val);
},
escapedToMatrix: function (val) {
escapedToMatrix(val);
},
VchangeSize: function () {
if (app.type == "big") {
app.matrix.cols = 12;
app.matrix.rows = 16;
} else if (app.type == "small") {
app.matrix.cols = 6;
app.matrix.rows = 8;
} else if (app.type == "icon") {
app.matrix.cols = 16;
app.matrix.rows = 16;
} else if (app.type == "icon24") {
app.matrix.cols = 24;
app.matrix.rows = 16;
} else if (app.type == "screen") {
app.matrix.cols = 84;
app.matrix.rows = 16;
} else if (app.type == "fullscreen") {
app.matrix.cols = 96;
app.matrix.rows = 16;
}
stringFromMatrix();
},
},
});
toMatrix(
"0x00,0xF0,0x08,0x0E,0x02,0x02,0x02,0x02,0x0E,0x08,0xF0,0x00,0x00,0x3F,0x40,0x5C,0x5C,0x5C,0x5C,0x5C,0x5C,0x40,0x3F,0x00"
);
}
var margins = 1;
function changesize(x) {
var cursize = x;
var mg;
if (x < 6) mg = 0;
else mg = 1;
// var elements = document.getElementsByClassName('c');
// for (var i=0; i<elements.length;i++){
// elements.item(i).style="height: "+x+"px; width: "+x+"px;"+mg;
// }
styles.sheet.rules[3].style.height = x + "px";
styles.sheet.rules[3].style.width = x + "px";
styles.sheet.rules[3].style.marginRight = mg + "px";
styles.sheet.rules[3].style.marginTop = mg + "px";
styles.sheet.rules[0].style.paddingLeft = mg + "px";
styles.sheet.rules[0].style.paddingBottom = mg + "px";
}
function importFile() {
var input, file, fr;
input = document.getElementById("fileinput");
if (input.files[0]) {
file = input.files[0];
fr = new FileReader();
fr.onload = processData;
fr.readAsBinaryString(file);
}
function processData() {
var pushy, data, aB, bS;
pushy = [];
// bodyAppend("p","processing data");
data = fr.result;
for (i = 297; i < 297 + 192; i += 2) {
aB = data.charCodeAt(i + 1);
bS = aB.toString(16);
if (bS.length < 2) bS = "0" + bS;
pushy.push(bS);
aB = data.charCodeAt(i);
bS = aB.toString(16);
if (bS.length < 2) bS = "0" + bS;
pushy.push(bS);
}
escapedToMatrix("\\x" + pushy.join("\\x"));
// bodyAppend("p","\\x"+pushy.join("\\x"));
}
}
function bodyAppend(tagName, innerHTML) {
var elm;
elm = document.createElement(tagName);
elm.innerHTML = innerHTML;
document.body.appendChild(elm);
}
window.onload = start;
</script>
</head>
<body>
<div id="app">
<div class="header">
<select v-model="type" v-on:change="VchangeSize()">
<option value="small">Small Font (6x8)</option>
<option value="big">Big Font (12x16)</option>
<option value="icon">Icon (16x16)</option>
<option value="icon24">Icon (24x16)</option>
<option value="screen">Screen (84x16)</option>
<option value="fullscreen">Full Screen (96x16)</option>
</select>
<a href="#" onclick="changesize(1);">1x</a>
<a href="#" onclick="changesize(2);">2x</a>
<a href="#" onclick="changesize(4);">4x</a>
<a href="#" onclick="changesize(8);">8x</a>
<a href="#" onclick="changesize(10);">10x</a>
<a href="#" onclick="changesize(12);">12x</a>
<a href="#" onclick="changesize(16);">16x</a>
<a href="#" onclick="changesize(32);">32x</a>
<a href="#" onclick="invertMatrix();">INVERT!</a>
</div>
<div
id="matrix"
class="matrix"
onmousedown="mousedown(this)"
onmouseup="mouseup(this)"
ondragstart="return false"
>
<div :id="'R'+(r-1)" class="r" v-for="r in matrix.rows">
<div
:id="'C'+(r-1)+'_'+(c-1)"
class="c"
onmouseenter="enter(this)"
v-for="c in matrix.cols"
></div>
</div>
</div>
<div class="actions">
<input
type="button"
value="Clear"
onclick="clearMatrix();stringFromMatrix()"
/>
</div>
<div class="data">
<textarea
v-model="encodedData"
style="width: 100%"
v-on:change="VtoMatrix(encodedData)"
rows="5"
></textarea>
<textarea
v-model="encodedEscapeSequence"
style="width: 100%"
v-on:change="escapedToMatrix(encodedEscapeSequence)"
rows="5"
></textarea>
</div>
<form action="#" onsubmit="return false;">
<input type="file" id="fileinput" />
<input
type="button"
id="btnLoad"
value="Import"
onclick="importFile();"
/>
(Remember to set correct canvas size before importing)
</form>
<br />
<canvas
id="myCanvas"
width="96"
height="16"
style="border: 1px dotted #000000; padding: 10px"
>
</canvas>
<form>
<input type="button" value="Make PNG" onclick="makePNG();" />
</form>
<div id="debug"></div>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

115
Translations/gen_menu_docs.py Executable file
View File

@@ -0,0 +1,115 @@
#!/usr/bin/env python3
import argparse
import functools
import hashlib
import json
import logging
import os
import sys
from dataclasses import dataclass
from pathlib import Path
from typing import Dict, List
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
HERE = Path(__file__).resolve().parent
TRANSLATION_DEFS_PATH = os.path.join(HERE, "translations_def.js")
ENGLISH_TRANSLATION_PATH = os.path.join(HERE, "translation_EN.json")
MENU_DOCS_FILE_PATH = os.path.join(HERE.parent, "Documentation/Settings.md")
# Loading a single JSON file
def load_json(filename: str, skip_first_line: bool) -> dict:
with open(filename) as f:
if skip_first_line:
f.readline()
return json.loads(f.read())
def write_header(filep):
"""
Writes the markdown constant header area out
"""
constant_header = """<!-- This is an automatically generated file. DO NOT EDIT. Edit gen_menu_docs.py instead -->
# IronOS Settings Menu
The below breaks down the menu's and what each setting means.
"""
filep.write(constant_header)
def write_menu_categories(filep, defs, translation_data):
"""
Writes the menu categories section out
"""
menu_cat_pretense = """
## Menu Categories
In the menu there are a few main categories that are used to keep the list manageable.
"""
filep.write(menu_cat_pretense)
for menu in defs.get("menuGroups", {}):
menu_id = menu.get("id", "")
entry = translation_data.get("menuGroups", {}).get(menu_id, "")
name = " ".join(entry.get("text2", []))
desc = menu.get("description", "")
section = f"""
### Category: {name}
{desc}
"""
filep.write(section)
def write_menu_entries(filep, defs, translation_data):
"""
Writes the menu entries section out
"""
menu_entries_pretense = """
## Settings
These are all of the settings possible in the menu.
**Not all settings are visible for all devices.**
For example, the TS100 does not have USB-PD settings.
When using the device, if unsure you can pause (press nothing) on a setting and after a short delay help text will scroll across the screen.
This is the "on device help text".
"""
filep.write(menu_entries_pretense)
for menu in defs.get("menuOptions", {}):
menu_id = menu.get("id", "")
entry = translation_data.get("menuOptions", {}).get(menu_id, "")
name = " ".join(entry.get("text2", []))
desc = menu.get("description", "")
on_device_desc = entry.get("desc", "")
section = f"""
### Setting: {name}
{desc}
On device help text:
{on_device_desc}
"""
filep.write(section)
def main() -> None:
json_dir = HERE
print(json_dir)
logging.info("Loading translation definitions")
defs = load_json(TRANSLATION_DEFS_PATH, True)
eng_translation = load_json(ENGLISH_TRANSLATION_PATH, False)
with open(MENU_DOCS_FILE_PATH, "w") as outputf:
write_header(outputf)
write_menu_categories(outputf, defs, eng_translation)
write_menu_entries(outputf, defs, eng_translation)
logging.info("Done")
if __name__ == "__main__":
main()

View File

@@ -102,13 +102,18 @@ def get_constants(build_version: str) -> List[Tuple[str, str]]:
("SymbolDot", "."),
("SymbolDegC", "C"),
("SymbolDegF", "F"),
("SymbolMinutes", "M"),
("SymbolSeconds", "S"),
("SymbolMinutes", "m"),
("SymbolSeconds", "s"),
("SymbolWatts", "W"),
("SymbolVolts", "V"),
("SymbolAmps", "A"),
("SymbolDC", "DC"),
("SymbolCellCount", "S"),
("SymbolVersionNumber", build_version),
("SymbolPDDebug", "PD Debug"),
("SymbolState", "State"),
("SymbolNoVBus", "No VBus"),
("SymbolVBus", "VBus"),
]
@@ -127,6 +132,7 @@ def get_debug_menu() -> List[str]:
"ACC ",
"PWR ",
"Max ",
"Hall ",
]
@@ -146,7 +152,8 @@ def get_power_source_list() -> List[str]:
return [
"DC",
"QC",
"PD",
"PD W. VBus",
"PD No VBus",
]

View File

@@ -2,26 +2,17 @@
"languageCode": "BE",
"languageLocalName": "Беларуская",
"fonts": ["ascii_basic", "latin_extended", "cyrillic"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Каліброўка закончана!",
"SettingsCalibrationWarning": "Перад тым, як працягнуць, каліласка, упэўнецеся, што джала мае комнатную тэмпературу!",
"SettingsResetWarning": "Вы ўпэннены, што жадаеце зкінуць налады да першапачатковых значэнняў?",
"UVLOWarningString": "НАПРУГА--",
"UndervoltageString": "Нізкая напруга",
"InputVoltageString": "Сілкаванне В: ",
"WarningTipTempString": "Тэмп. джала: ",
"BadTipString": "ДЖАЛА--",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Чаканне...",
"WarningSimpleString": "ГОРАЧА!",
"WarningAdvancedString": "!!! ГАРАЧАЕ !!!\n!!! ДЖАЛА !!!",
"SleepingTipAdvancedString": "Джала:",
"IdleTipString": "Джала:",
"IdleSetString": " ->",
"TipDisconnectedString": "ДЖАЛА АДЛУЧАНА",
"SolderingAdvancedPowerPrompt": "Сілкаванне: ",
"OffString": "Выкл.",
"YourGainMessage": "Прырост:"
"OffString": "Выкл."
},
"messagesWarn": {
"ResetOKMessage": "Скід OK",
@@ -51,8 +42,7 @@
"SettingSensitivityHigh": "В",
"SettingLockDisableChar": "А",
"SettingLockBoostChar": "Т",
"SettingLockFullChar": "П",
"SettingNAChar": "Н/Д"
"SettingLockFullChar": "П"
},
"menuGroups": {
"PowerMenu": {
@@ -171,7 +161,7 @@
},
"HallEffSensitivity": {
"text2": ["Эфект Хола", "адчувальнасць"],
"desc": "Узровень адчувальнасці датчыка хола ў рэжыме сну (А=Адключана | Н=Нізкі | С=Сярэдні | В=Высокі)"
"desc": "Узровень адчувальнасці датчыка хола ў рэжыме сну (0=Выкл. | 1=Мін. | ... | 9=Макс.)"
},
"LockingMode": {
"text2": ["Дазволіць", "блок. кнопак"],
@@ -208,6 +198,10 @@
"ColourInversion": {
"text2": ["Экран", "Інвертаваць"],
"desc": "Інвертаваць колеры OLED-экрана"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,33 +2,24 @@
"languageCode": "BG",
"languageLocalName": "Български",
"fonts": ["ascii_basic", "cyrillic"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Калибрацията завършена!",
"SettingsCalibrationWarning": "Уверете се, че върха на поялника е със стайна температура преди да продължите!",
"SettingsResetWarning": "Сигурни ли сте, че искате да върнете фабричните настройки?",
"UVLOWarningString": "Ниско DC Напрежение",
"UndervoltageString": "Ниско Напрежение",
"InputVoltageString": "Входно V: ",
"WarningTipTempString": "Темп.: ",
"BadTipString": "ЛОШ ВРЪХ",
"SleepingSimpleString": "Сън",
"SleepingAdvancedString": "Хър Хър Хър...",
"WarningSimpleString": "ОХ!",
"WarningAdvancedString": "ВНИМАНИЕ! ТОПЛО!",
"SleepingTipAdvancedString": "Връх:",
"IdleTipString": "Връх:",
"IdleSetString": " Настройка:",
"TipDisconnectedString": "ПРЕКЪСНАТ ВРЪХ",
"SolderingAdvancedPowerPrompt": "Захранване: ",
"OffString": "Изкл.",
"YourGainMessage": "Усилване:"
"OffString": "Изкл."
},
"messagesWarn": {
"ResetOKMessage": "Нулиране",
"SettingsResetMessage": ["Настройките бяха", "нулирани!"],
"NoAccelerometerMessage": ["No accelerometer", "detected!"],
"NoPowerDeliveryMessage": ["No USB-PD IC", "detected!"],
"LockingKeysString": " LOCKED",
"LockingKeysString": "LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!",
"WarningThermalRunaway": ["Thermal", "Runaway"]
@@ -45,15 +36,13 @@
"SettingStartSolderingChar": "Р",
"SettingStartSleepChar": "С",
"SettingStartSleepOffChar": "П",
"SettingStartNoneChar": "F",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F",
"SettingNAChar": "N/A"
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
@@ -148,7 +137,7 @@
},
"PDNegTimeout": {
"text2": ["PD", "timeout"],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers (0: disabled)"
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"PowerLimit": {
"text2": ["Лимит на", "мощност"],
@@ -171,12 +160,12 @@
"desc": "Поддържане на интензивност на захранващия импулс"
},
"HallEffSensitivity": {
"text2": ["Hall Eff", "Sensitivity"],
"desc": "Sensitivity of the Hall effect sensor in detecting sleep (O=Off | L=Low | M=Medium | H=High)"
"text2": ["Hall sensor", "sensitivity"],
"desc": "Sensitivity of the Hall effect sensor to detect sleep (0=Изключено | 1=Слабо | ... | 9=Силно)"
},
"LockingMode": {
"text2": ["Allow buttons", "locking"],
"desc": "When soldering, long press on both buttons lock them (D=Disable | B=Boost only | F=Full locking)"
"text2": ["Allow locking", "buttons"],
"desc": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MinVolCell": {
"text2": ["Minimum", "voltage"],
@@ -184,15 +173,15 @@
},
"AnimLoop": {
"text2": ["Anim.", "loop"],
"desc": "Loop icon animations in root menu"
"desc": "Loop icon animations in main menu"
},
"AnimSpeed": {
"text2": ["Anim.", "speed"],
"desc": "Speed of icon animations in menu (O=off | L=low | M=medium | H=high)"
"desc": "Pace of icon animations in menu (O=off | S=slow | M=medium | F=fast)"
},
"PowerPulseWait": {
"text2": ["Power pulse", "wait time"],
"desc": "Time to wait before triggering every keep-awake pulse (x 2,5с)"
"text2": ["Power pulse", "delay"],
"desc": "Delay before keep-awake-pulse is triggered (x 2,5с)"
},
"PowerPulseDuration": {
"text2": ["Power pulse", "duration"],
@@ -203,12 +192,16 @@
"desc": ""
},
"Brightness": {
"text2": ["Screen", "Brightness"],
"desc": "Adjust the contrast/brightness of the OLED screen"
"text2": ["Screen", "brightness"],
"desc": "Adjust the brightness of the OLED screen"
},
"ColourInversion": {
"text2": ["Screen", "Invert"],
"text2": ["Invert", "screen"],
"desc": "Invert the colours of the OLED screen"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,33 +2,24 @@
"languageCode": "CS",
"languageLocalName": "Český",
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Kalibrace dokončena!",
"SettingsCalibrationWarning": "Ujistěte se, že hrot má pokojovou teplotu!",
"SettingsResetWarning": "Opravdu chcete resetovat zařízení do továrního nastavení?",
"UVLOWarningString": "Nízké DC",
"UndervoltageString": "! Nízké napětí !",
"InputVoltageString": "Napětí: ",
"WarningTipTempString": "Teplota: ",
"BadTipString": "ŠP. HROT",
"SleepingSimpleString": "Zzz ",
"SleepingAdvancedString": "Režim spánku...",
"WarningSimpleString": "PÁLÍ",
"WarningAdvancedString": "!! HORKÝ HROT !!",
"SleepingTipAdvancedString": "Hrot:",
"IdleTipString": "Hrot:",
"IdleSetString": " Cíl:",
"TipDisconnectedString": "HROT NEPŘIPOJEN",
"SolderingAdvancedPowerPrompt": "Ohřev: ",
"OffString": "Vyp",
"YourGainMessage": "Zisk:"
"OffString": "Vyp"
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": ["Tov. nas. obnov.", ""],
"NoAccelerometerMessage": ["No accelerometer", "detected!"],
"NoPowerDeliveryMessage": ["No USB-PD IC", "detected!"],
"LockingKeysString": " LOCKED",
"LockingKeysString": "LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!",
"WarningThermalRunaway": ["Thermal", "Runaway"]
@@ -51,8 +42,7 @@
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F",
"SettingNAChar": "N/A"
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
@@ -170,12 +160,12 @@
"desc": "Puls pro udržení zařízení v chodu (kvůli power bankám)."
},
"HallEffSensitivity": {
"text2": ["Hall Eff", "Sensitivity"],
"desc": "Sensitivity of the Hall effect sensor in detecting sleep (O=Off | L=Low | M=Medium | H=High)"
"text2": ["Hall sensor", "sensitivity"],
"desc": "Sensitivity of the Hall effect sensor to detect sleep (0=Vyp | 1=Min | ... | 9=Max)"
},
"LockingMode": {
"text2": ["Allow buttons", "locking"],
"desc": "When soldering, long press on both buttons lock them (D=Disable | B=Boost only | F=Full locking)"
"text2": ["Allow locking", "buttons"],
"desc": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MinVolCell": {
"text2": ["Minimum", "voltage"],
@@ -183,15 +173,15 @@
},
"AnimLoop": {
"text2": ["Anim.", "loop"],
"desc": "Loop icon animations in root menu"
"desc": "Loop icon animations in main menu"
},
"AnimSpeed": {
"text2": ["Anim.", "speed"],
"desc": "Speed of icon animations in menu (O=off | L=low | M=medium | H=high)"
"desc": "Pace of icon animations in menu (O=off | P=slow | M=medium | R=fast)"
},
"PowerPulseWait": {
"text2": ["Power pulse", "wait time"],
"desc": "Time to wait before triggering every keep-awake pulse (x 2,5s)"
"text2": ["Power pulse", "delay"],
"desc": "Delay before keep-awake-pulse is triggered (x 2,5s)"
},
"PowerPulseDuration": {
"text2": ["Power pulse", "duration"],
@@ -202,12 +192,16 @@
"desc": ""
},
"Brightness": {
"text2": ["Screen", "Brightness"],
"desc": "Adjust the contrast/brightness of the OLED screen"
"text2": ["Screen", "brightness"],
"desc": "Adjust the brightness of the OLED screen"
},
"ColourInversion": {
"text2": ["Screen", "Invert"],
"text2": ["Invert", "screen"],
"desc": "Invert the colours of the OLED screen"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,33 +2,24 @@
"languageCode": "DA",
"languageLocalName": "Dansk",
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Calibration done!",
"SettingsCalibrationWarning": "Sørg for at loddespidsen er ved stuetemperatur, inden du fortsætter!",
"SettingsResetWarning": "Are you sure to reset settings to default values?",
"UVLOWarningString": "Lav Volt",
"UndervoltageString": "Undervoltage",
"InputVoltageString": "Input V: ",
"WarningTipTempString": "Tip Temp: ",
"BadTipString": "BAD TIP",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Dvale...",
"WarningSimpleString": "Varm",
"WarningAdvancedString": "VARM LODDESPIDS!",
"SleepingTipAdvancedString": "Tip:",
"IdleTipString": "Tip:",
"IdleSetString": " Set:",
"TipDisconnectedString": "TIP DISCONNECTED",
"SolderingAdvancedPowerPrompt": "Power: ",
"OffString": "Off",
"YourGainMessage": "Your gain:"
"OffString": "Off"
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": ["Settings were", "reset!"],
"SettingsResetMessage": ["Certain settings", "were changed!"],
"NoAccelerometerMessage": ["No accelerometer", "detected!"],
"NoPowerDeliveryMessage": ["No USB-PD IC", "detected!"],
"LockingKeysString": " LOCKED",
"LockingKeysString": "LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!",
"WarningThermalRunaway": ["Thermal", "Runaway"]
@@ -51,8 +42,7 @@
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F",
"SettingNAChar": "N/A"
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
@@ -60,20 +50,20 @@
"desc": "Power settings"
},
"SolderingMenu": {
"text2": ["Soldering", "Settings"],
"text2": ["Soldering", "settings"],
"desc": "Soldering settings"
},
"PowerSavingMenu": {
"text2": ["Sleep", "Modes"],
"desc": "Power Saving Settings"
"text2": ["Sleep", "mode"],
"desc": "Power saving settings"
},
"UIMenu": {
"text2": ["User", "Interface"],
"desc": "User Interface settings"
"text2": ["User", "interface"],
"desc": "User interface settings"
},
"AdvancedMenu": {
"text2": ["Advanced", "Options"],
"desc": "Advanced options"
"text2": ["Advanced", "settings"],
"desc": "Advanced settings"
}
},
"menuOptions": {
@@ -114,11 +104,11 @@
"desc": "Temperatur i \"boost\" mode"
},
"AutoStart": {
"text2": ["Auto", "start"],
"text2": ["Start-up", "behavior"],
"desc": "Start automatisk med lodning når strøm sættes til. (S=Slukket | L=Lodning | D=Dvale tilstand | R=Dvale tilstand rumtemperatur)"
},
"CooldownBlink": {
"text2": ["Cooldown", "blink"],
"text2": ["Cooldown", "flashing"],
"desc": "Blink temperaturen på skærmen, mens spidsen stadig er varm."
},
"TemperatureCalibration": {
@@ -126,7 +116,7 @@
"desc": "kalibrere spids temperatur."
},
"SettingsReset": {
"text2": ["Factory", "Reset?"],
"text2": ["Restore factory", "settings?"],
"desc": "Gendan alle indstillinger"
},
"VoltageCalibration": {
@@ -139,43 +129,43 @@
},
"ScrollingSpeed": {
"text2": ["Scrolling", "speed"],
"desc": "Speed this text scrolls past at"
"desc": "Speed info text scrolls past at (S=slow | F=fast)"
},
"QCMaxVoltage": {
"text2": ["Power", "Wattage"],
"desc": "Power Wattage of the power adapter used"
"text2": ["QC", "voltage"],
"desc": "Max QC voltage the iron should negotiate for"
},
"PDNegTimeout": {
"text2": ["PD", "timeout"],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers (0: disabled)"
},
"PowerLimit": {
"text2": ["Power", "Limit"],
"desc": "Maximum power the iron can use (Watts)"
"text2": ["Power", "limit"],
"desc": "Maximum power the iron can use (W=watt)"
},
"ReverseButtonTempChange": {
"text2": ["Key +-", "reverse?"],
"desc": "Reverse the tip temperature change buttons plus minus assignment."
"text2": ["Swap", "+ - keys"],
"desc": "Reverse assignment of buttons for temperature adjustment"
},
"TempChangeShortStep": {
"text2": ["Temp change", "short?"],
"desc": "Temperature change steps on short button press!"
"text2": ["Temp change", "short"],
"desc": "Temperature-change-increment on short button press"
},
"TempChangeLongStep": {
"text2": ["Temp change", "long?"],
"desc": "Temperature change steps on long button press!"
"text2": ["Temp change", "long"],
"desc": "Temperature-change-increment on long button press"
},
"PowerPulsePower": {
"text2": ["Power", "Pulse W"],
"desc": "Keep awake pulse power intensity"
"text2": ["Power", "pulse"],
"desc": "Intensity of power of keep-awake-pulse (watt)"
},
"HallEffSensitivity": {
"text2": ["Hall Eff", "Sensitivity"],
"desc": "Sensitivity of the Hall effect sensor in detecting sleep (O=Off | L=Low | M=Medium | H=High)"
"text2": ["Hall sensor", "sensitivity"],
"desc": "Sensitivity of the Hall effect sensor to detect sleep (0=Slukket | 1=Mindst følsom | ... | 9=Mest følsom)"
},
"LockingMode": {
"text2": ["Allow buttons", "locking"],
"desc": "When soldering, long press on both buttons lock them (D=Disable | B=Boost only | F=Full locking)"
"text2": ["Allow locking", "buttons"],
"desc": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MinVolCell": {
"text2": ["Minimum", "voltage"],
@@ -183,15 +173,15 @@
},
"AnimLoop": {
"text2": ["Anim.", "loop"],
"desc": "Loop icon animations in root menu"
"desc": "Loop icon animations in main menu"
},
"AnimSpeed": {
"text2": ["Anim.", "speed"],
"desc": "Speed of icon animations in menu (O=off | L=low | M=medium | H=high)"
"desc": "Pace of icon animations in menu (O=off | S=slow | M=medium | F=fast)"
},
"PowerPulseWait": {
"text2": ["Power pulse", "wait time"],
"desc": "Time to wait before triggering every keep-awake pulse (x 2,5s)"
"text2": ["Power pulse", "delay"],
"desc": "Delay before keep-awake-pulse is triggered (x 2,5s)"
},
"PowerPulseDuration": {
"text2": ["Power pulse", "duration"],
@@ -202,12 +192,16 @@
"desc": ""
},
"Brightness": {
"text2": ["Screen", "Brightness"],
"desc": "Adjust the contrast/brightness of the OLED screen"
"text2": ["Screen", "brightness"],
"desc": "Adjust the brightness of the OLED screen"
},
"ColourInversion": {
"text2": ["Screen", "Invert"],
"text2": ["Invert", "screen"],
"desc": "Invert the colours of the OLED screen"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -12,10 +12,6 @@
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Ruhemodus...",
"SleepingTipAdvancedString": "Temp:",
"IdleTipString": "Ist:",
"IdleSetString": " Soll:",
"TipDisconnectedString": "Spitze fehlt",
"SolderingAdvancedPowerPrompt": "Leistung: ",
"OffString": "Aus"
},
"messagesWarn": {
@@ -46,8 +42,7 @@
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "A",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "V",
"SettingNAChar": "-"
"SettingLockFullChar": "V"
},
"menuGroups": {
"PowerMenu": {
@@ -82,11 +77,11 @@
},
"SleepTimeout": {
"text2": ["Ruhever-", "zögerung"],
"desc": "Dauer vor Übergang in den Ruhemodus (S=Sekunden | M=Minuten)"
"desc": "Dauer vor Übergang in den Ruhemodus (s=Sekunden | m=Minuten)"
},
"ShutdownTimeout": {
"text2": ["Abschalt-", "verzög."],
"desc": "Dauer vor automatischer Abschaltung (M=Minuten)"
"desc": "Dauer vor automatischer Abschaltung (m=Minuten)"
},
"MotionSensitivity": {
"text2": ["Bewegungs-", "empfindlichk."],
@@ -166,7 +161,7 @@
},
"HallEffSensitivity": {
"text2": ["Empfindlichkeit", "der Hall-Sonde"],
"desc": "Empfindlichkeit der Hall-Sonde beim Erkennen des Ruhemodus (A=aus | N=niedrig | M=mittel | H=hoch)"
"desc": "Empfindlichkeit der Hall-Sonde beim Erkennen des Ruhemodus (0=aus | 1=minimal | ... | 9=maximal)"
},
"LockingMode": {
"text2": ["Tasten-", "sperre"],
@@ -194,7 +189,7 @@
},
"LanguageSwitch": {
"text2": ["Sprache:", " DE Deutsch"],
"desc": ""
"desc": "Sprache der Firmware ändern"
},
"Brightness": {
"text2": ["Bildschirm-", "kontrast"],
@@ -203,6 +198,10 @@
"ColourInversion": {
"text2": ["Farben", "umkehren"],
"desc": "Invertiert die Farben des OLED-Displays"
},
"LOGOTime": {
"text2": ["Startlogo-", "dauer"],
"desc": "Legt die Dauer der Anzeige des Startlogos fest (s=Sekunden)"
}
}
}

View File

@@ -1,340 +1,207 @@
{
"languageCode": "EL",
"languageLocalName": "Greek",
"fonts": [
"ascii_basic",
"greek"
],
"tempUnitFahrenheit": true,
"messages": {
"SettingsCalibrationWarning": "Πριν προχωρήσετε, παρακαλώ σιγουρευτείτε πως η μύτη βρίσκεται σε θερμοκρασία δωματίου!",
"SettingsResetWarning": "Σίγουρα θέλετε επαναφορά αρχικών ρυθμίσεων;",
"UVLOWarningString": "Χαμηλ DC",
"UndervoltageString": "Υπόταση",
"InputVoltageString": "Είσοδος V: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Υπνος...",
"SleepingTipAdvancedString": "Μύτη:",
"IdleTipString": "Μύτη:",
"IdleSetString": " Set:",
"TipDisconnectedString": "ΧΩΡΙΣ ΜΥΤΗ",
"SolderingAdvancedPowerPrompt": "Ενέργεια: ",
"OffString": "Απ."
},
"messagesWarn": {
"ResetOKMessage": "Επαν. OK",
"SettingsResetMessage": [
"Κάποιες ρυθμ.",
"άλλαξαν"
],
"NoAccelerometerMessage": [
"Δεν εντοπίστηκε",
"επιταχυνσιόμετρο"
],
"NoPowerDeliveryMessage": [
"Δεν εντοπίστηκε",
"κύκλωμα USB-PD"
],
"LockingKeysString": "ΚΛΕΙΔ.",
"UnlockingKeysString": "ΞΕΚΛΕΙΔ.",
"WarningKeysLockedString": [
"ΚΛΕΙΔΩΜΕΝΑ",
"ΠΛΗΚΤΡΑ!"
],
"WarningThermalRunaway": [
"Θερμική",
"Φυγή"
]
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "Α",
"SettingOffChar": "0",
"SettingSlowChar": "Α",
"SettingMediumChar": "Μ",
"SettingFastChar": "Γ",
"SettingStartNoneChar": "0",
"SettingStartSolderingChar": "Κ",
"SettingStartSleepChar": "Ζ",
"SettingStartSleepOffChar": "Υ",
"SettingSensitivityOff": "0",
"SettingSensitivityLow": "Χ",
"SettingSensitivityMedium": "Μ",
"SettingSensitivityHigh": "Υ",
"SettingLockDisableChar": "Α",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "Π",
"SettingNAChar": "Δ/Δ"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Ρυθμίσεις",
"ενέργειας"
],
"desc": "Ρυθμίσεις ενέργειας"
},
"SolderingMenu": {
"text2": [
"Ρυθμίσεις",
"κόλλησης"
],
"desc": "Ρυθμίσεις κόλλησης"
},
"PowerSavingMenu": {
"text2": [
"Λειτουργία",
"ύπνου"
],
"desc": "Ρυθμίσεις εξοικ. ενέργ."
},
"UIMenu": {
"text2": [
"Διεπαφή",
"χρήστη"
],
"desc": "Ρυθμίσεις διεπαφής χρήστη"
},
"AdvancedMenu": {
"text2": [
"Προηγμένες",
"ρυθμίσεις"
],
"desc": "Προηγμένες ρυθμίσεις"
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Πηγή",
"ενέργειας"
],
"desc": "Πηγή ενέργειας. Oρισμός τάσης απενεργοποίησης. (DC 10V) (S 3.3V ανα κυψέλη, απενεργοποίηση ενεργειακού ορίου)"
},
"SleepTemperature": {
"text2": [
"Θερμοκρ.",
"ύπνου"
],
"desc": "Θερμοκρασία μύτης σε λειτ. ύπνου"
},
"SleepTimeout": {
"text2": [
"Έναρξη",
"ύπνου"
],
"desc": "Χρονικό διάστημα πρίν την ενεργοποίηση λειτουργίας ύπνου (Δ=δευτ. | Λ=λεπτά)"
},
"ShutdownTimeout": {
"text2": [
"Έναρξη",
"απενεργ."
],
"desc": "Χρονικό διάστημα πρίν την απενεργοποίηση του κολλητηριού (Λ=λεπτά)"
},
"MotionSensitivity": {
"text2": [
"Ευαισθησία",
"κίνησης"
],
"desc": "0=off | 1=λιγότερο ευαίσθητο | ... | 9=περισσότερο ευαίσθητο"
},
"TemperatureUnit": {
"text2": [
"Μονάδες",
"θερμοκρασίας"
],
"desc": "C=Κελσίου | F=Φαρενάιτ"
},
"AdvancedIdle": {
"text2": [
"Λεπτομερής",
"οθ. αδράνειας"
],
"desc": "Προβολή λεπτομερών πληροφοριών σε μικρότερη γραμματοσειρά στην οθόνη αδράνειας"
},
"DisplayRotation": {
"text2": [
"Διάταξη",
"οθόνης"
],
"desc": "R=δεξιόχειρες | L=αριστερόχειρες | Α=αυτόματο"
},
"BoostTemperature": {
"text2": [
"Θερμοκ.",
"boost"
],
"desc": "Θερμοκρασία στη \"λειτουργία boost\""
},
"AutoStart": {
"text2": [
"Ζέσταμα",
"κατά την εν."
],
"desc": "0=off | Κ=θερμ. κόλλησης | Z=αναμονή σε θερμοκρασία ύπνου μέχρι την κίνηση | Υ=αναμονή χωρίς ζέσταμα μέχρι την κίνηση"
},
"CooldownBlink": {
"text2": [
"Αναβοσβήσιμο",
"ψύξης"
],
"desc": "Αναβοσβήσιμο της ενδειξης θερμοκρασίας κατά την παύση θέρμανσης όταν η μύτη είναι ακόμα καυτή"
},
"TemperatureCalibration": {
"text2": [
"Βαθμονόμηση",
"θερμοκρασίας;"
],
"desc": "Βαθμονόμηση αρχικής θερμοκρασίας μύτης"
},
"SettingsReset": {
"text2": [
"Επαναφορά",
"εργ. ρυθμίσεων;"
],
"desc": "Επαναφορά στις προεπιλεγμένες ρυθμίσεις"
},
"VoltageCalibration": {
"text2": [
"Βαθμονόμηση",
"τάσης εισόδου;"
],
"desc": "Έναρξη βαθμονόμησης τάσης εισόδου (κράτημα για έξοδο)"
},
"AdvancedSoldering": {
"text2": [
"Λεπτομερής",
"οθ. κόλλησης"
],
"desc": "Προβολή λεπτομερών πληροφοριών σε μικρότερη γραμματοσειρά στην οθόνη κόλλησης"
},
"ScrollingSpeed": {
"text2": [
"Ταχύτητα",
"κύλισης"
],
"desc": "Ταχύτητα κύλισης κειμένου (Α=αργά | Γ=γρήγορα)"
},
"QCMaxVoltage": {
"text2": [
"Τάση",
"QC"
],
"desc": "Μέγιστη τάση QC που να ζητά το κολλητήρι από το τροφοδοτικό"
},
"PDNegTimeout": {
"text2": [
"χρονικό όριο",
"PD"
],
"desc": "Χρονικό όριο διαπραγμάτευσης PD σε βήματα 100ms για συμβατότητα με κάποιους φορτιστές QC"
},
"PowerLimit": {
"text2": [
"Ενεργειακό",
"όριο"
],
"desc": "Μέγιστη ενέργεια που μπορεί να χρησιμοποιεί το κολλητήρι (W=watt)"
},
"ReverseButtonTempChange": {
"text2": [
"Αντιστροφή",
"πλήκτρων + -"
],
"desc": "Αντιστροφή διάταξης πλήκτρων στη ρύθμιση θερμοκρασίας"
},
"TempChangeShortStep": {
"text2": [
"Αλλαγή θερμοκ.",
"στιγμιαίο"
],
"desc": "Βήμα αλλαγής θερμοκρασίας σε στιγμιαίο πάτημα πλήκτρου"
},
"TempChangeLongStep": {
"text2": [
"Αλλαγή θερμοκ.",
"παρατεταμένο"
],
"desc": "Βήμα αλλαγής θερμοκρασίας σε παρατεταμένο πάτημα πλήκτρου"
},
"PowerPulsePower": {
"text2": [
"Παλμός",
"ενέργειας"
],
"desc": "Ένταση ενέργειας παλμού διατήρησης λειτουργίας (watt)"
},
"HallEffSensitivity": {
"text2": [
"Ευαισθ. αισθ. ",
"φαιν. Hall"
],
"desc": "Ευαισθησία του αισθητήρα φαινομένου Hall για εντοπισμό αδράνειας (0=off | Χ=χαμηλή | Μ=μέτρια | Υ=υψηλή)"
},
"LockingMode": {
"text2": [
"Κλείδωμα",
"πλήκτρων"
],
"desc": "Κατά την κόλληση, κρατήστε και τα δύο πλήκτρα για κλείδωμα (A=απενεργοποίηση | B=μόνο λειτ. boost | Π=πλήρες κλείδωμα)"
},
"MinVolCell": {
"text2": [
"Ελάχιστη",
"τάση"
],
"desc": "Ελάχιστη επιτρεπτή τάση ανα κυψέλη (3 σε σειρά: 3 - 3.7V | 4-6 σε σειρά: 2.4 - 3.7V)"
},
"AnimLoop": {
"text2": [
"Επανάληψη",
"κιν. εικονιδ."
],
"desc": "Επανάληψη κίνησης εικονιδίων στο αρχικό μενού"
},
"AnimSpeed": {
"text2": [
"Ταχύτητα",
"κιν. εικονιδ."
],
"desc": "Ρυθμός κίνησης εικονιδίων στο μενού (0=off | Α=αργός | Μ=μέτριος | Γ=γρήγορος"
},
"PowerPulseWait": {
"text2": [
"Καθυστέρηση",
"παλμού ενέργ."
],
"desc": "Καθυστέρηση πριν την ενεργοποίση παλμού διατήρησης λειτουργίας (x 2.5s)"
},
"PowerPulseDuration": {
"text2": [
"Διάρκεια",
"παλμού ενέργ."
],
"desc": "Διάρκεια παλμού διατήρησης ενέργειας (x 250ms)"
},
"LanguageSwitch": {
"text2": [
"Γλώσσα",
" GR Ελληνικά"
],
"desc": "Τρέχουσα γλώσσα λογισμικού"
},
"Brightness": {
"text2": [
"Αντίθεση",
"οθόνης"
],
"desc": "Ρύθμιση φωτεινότητας οθόνης OLED"
},
"ColourInversion": {
"text2": [
"Αντιστροφή",
"χρωμάτων"
],
"desc": "Αντιστροφή χρωμάτων οθόνης OLED"
}
}
}
"languageCode": "EL",
"languageLocalName": "Greek",
"fonts": ["ascii_basic", "greek"],
"tempUnitFahrenheit": true,
"messages": {
"SettingsCalibrationWarning": "Πριν προχωρήσετε, παρακαλώ σιγουρευτείτε πως η μύτη βρίσκεται σε θερμοκρασία δωματίου!",
"SettingsResetWarning": "Σίγουρα θέλετε επαναφορά αρχικών ρυθμίσεων;",
"UVLOWarningString": "Χαμηλ DC",
"UndervoltageString": "Υπόταση",
"InputVoltageString": "Είσοδος V: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Υπνος...",
"SleepingTipAdvancedString": "Μύτη:",
"OffString": "Απ."
},
"messagesWarn": {
"ResetOKMessage": "Επαν. OK",
"SettingsResetMessage": ["Κάποιες ρυθμ.", "άλλαξαν"],
"NoAccelerometerMessage": ["Δεν εντοπίστηκε", "επιταχυνσιόμετρο"],
"NoPowerDeliveryMessage": ["Δεν εντοπίστηκε", "κύκλωμα USB-PD"],
"LockingKeysString": "ΚΛΕΙΔ.",
"UnlockingKeysString": "ΞΕΚΛΕΙΔ.",
"WarningKeysLockedString": ["ΚΛΕΙΔΩΜΕΝΑ", "ΠΛΗΚΤΡΑ!"],
"WarningThermalRunaway": ["Θερμική", "Φυγή"]
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "Α",
"SettingOffChar": "0",
"SettingSlowChar": "Α",
"SettingMediumChar": "Μ",
"SettingFastChar": "Γ",
"SettingStartNoneChar": "0",
"SettingStartSolderingChar": "Κ",
"SettingStartSleepChar": "Ζ",
"SettingStartSleepOffChar": "Υ",
"SettingSensitivityOff": "0",
"SettingSensitivityLow": "Χ",
"SettingSensitivityMedium": "Μ",
"SettingSensitivityHigh": "Υ",
"SettingLockDisableChar": "Α",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "Π"
},
"menuGroups": {
"PowerMenu": {
"text2": ["Ρυθμίσεις", "ενέργειας"],
"desc": "Ρυθμίσεις ενέργειας"
},
"SolderingMenu": {
"text2": ["Ρυθμίσεις", "κόλλησης"],
"desc": "Ρυθμίσεις κόλλησης"
},
"PowerSavingMenu": {
"text2": ["Λειτουργία", "ύπνου"],
"desc": "Ρυθμίσεις εξοικ. ενέργ."
},
"UIMenu": {
"text2": ["Διεπαφή", "χρήστη"],
"desc": "Ρυθμίσεις διεπαφής χρήστη"
},
"AdvancedMenu": {
"text2": ["Προηγμένες", "ρυθμίσεις"],
"desc": "Προηγμένες ρυθμίσεις"
}
},
"menuOptions": {
"DCInCutoff": {
"text2": ["Πηγή", "ενέργειας"],
"desc": "Πηγή ενέργειας. Oρισμός τάσης απενεργοποίησης. (DC 10V) (S 3.3V ανα κυψέλη, απενεργοποίηση ενεργειακού ορίου)"
},
"SleepTemperature": {
"text2": ["Θερμοκρ.", "ύπνου"],
"desc": "Θερμοκρασία μύτης σε λειτ. ύπνου"
},
"SleepTimeout": {
"text2": ["Έναρξη", "ύπνου"],
"desc": "Χρονικό διάστημα πρίν την ενεργοποίηση λειτουργίας ύπνου (Δ=δευτ. | Λ=λεπτά)"
},
"ShutdownTimeout": {
"text2": ["Έναρξη", "απενεργ."],
"desc": "Χρονικό διάστημα πρίν την απενεργοποίηση του κολλητηριού (Λ=λεπτά)"
},
"MotionSensitivity": {
"text2": ["Ευαισθησία", "κίνησης"],
"desc": "0=off | 1=λιγότερο ευαίσθητο | ... | 9=περισσότερο ευαίσθητο"
},
"TemperatureUnit": {
"text2": ["Μονάδες", "θερμοκρασίας"],
"desc": "C=Κελσίου | F=Φαρενάιτ"
},
"AdvancedIdle": {
"text2": ["Λεπτομερής", "οθ. αδράνειας"],
"desc": "Προβολή λεπτομερών πληροφοριών σε μικρότερη γραμματοσειρά στην οθόνη αδράνειας"
},
"DisplayRotation": {
"text2": ["Διάταξη", "οθόνης"],
"desc": "R=δεξιόχειρες | L=αριστερόχειρες | Α=αυτόματο"
},
"BoostTemperature": {
"text2": ["Θερμοκ.", "boost"],
"desc": "Θερμοκρασία στη \"λειτουργία boost\""
},
"AutoStart": {
"text2": ["Ζέσταμα", "κατά την εν."],
"desc": "0=off | Κ=θερμ. κόλλησης | Z=αναμονή σε θερμοκρασία ύπνου μέχρι την κίνηση | Υ=αναμονή χωρίς ζέσταμα μέχρι την κίνηση"
},
"CooldownBlink": {
"text2": ["Αναβοσβήσιμο", "ψύξης"],
"desc": "Αναβοσβήσιμο της ενδειξης θερμοκρασίας κατά την παύση θέρμανσης όταν η μύτη είναι ακόμα καυτή"
},
"TemperatureCalibration": {
"text2": ["Βαθμονόμηση", "θερμοκρασίας;"],
"desc": "Βαθμονόμηση αρχικής θερμοκρασίας μύτης"
},
"SettingsReset": {
"text2": ["Επαναφορά", "εργ. ρυθμίσεων;"],
"desc": "Επαναφορά στις προεπιλεγμένες ρυθμίσεις"
},
"VoltageCalibration": {
"text2": ["Βαθμονόμηση", "τάσης εισόδου;"],
"desc": "Έναρξη βαθμονόμησης τάσης εισόδου (κράτημα για έξοδο)"
},
"AdvancedSoldering": {
"text2": ["Λεπτομερής", "οθ. κόλλησης"],
"desc": "Προβολή λεπτομερών πληροφοριών σε μικρότερη γραμματοσειρά στην οθόνη κόλλησης"
},
"ScrollingSpeed": {
"text2": ["Ταχύτητα", "κύλισης"],
"desc": "Ταχύτητα κύλισης κειμένου (Α=αργά | Γ=γρήγορα)"
},
"QCMaxVoltage": {
"text2": ["Τάση", "QC"],
"desc": "Μέγιστη τάση QC που να ζητά το κολλητήρι από το τροφοδοτικό"
},
"PDNegTimeout": {
"text2": ["χρονικό όριο", "PD"],
"desc": "Χρονικό όριο διαπραγμάτευσης PD σε βήματα 100ms για συμβατότητα με κάποιους φορτιστές QC"
},
"PowerLimit": {
"text2": ["Ενεργειακό", "όριο"],
"desc": "Μέγιστη ενέργεια που μπορεί να χρησιμοποιεί το κολλητήρι (W=watt)"
},
"ReverseButtonTempChange": {
"text2": ["Αντιστροφή", "πλήκτρων + -"],
"desc": "Αντιστροφή διάταξης πλήκτρων στη ρύθμιση θερμοκρασίας"
},
"TempChangeShortStep": {
"text2": ["Αλλαγή θερμοκ.", "στιγμιαίο"],
"desc": "Βήμα αλλαγής θερμοκρασίας σε στιγμιαίο πάτημα πλήκτρου"
},
"TempChangeLongStep": {
"text2": ["Αλλαγή θερμοκ.", "παρατεταμένο"],
"desc": "Βήμα αλλαγής θερμοκρασίας σε παρατεταμένο πάτημα πλήκτρου"
},
"PowerPulsePower": {
"text2": ["Παλμός", "ενέργειας"],
"desc": "Ένταση ενέργειας παλμού διατήρησης λειτουργίας (watt)"
},
"HallEffSensitivity": {
"text2": ["Ευαισθ. αισθ. ", "φαιν. Hall"],
"desc": "Ευαισθησία του αισθητήρα φαινομένου Hall για εντοπισμό αδράνειας (0=off | 1=λιγότερο ευαίσθητο | ... | 9=περισσότερο ευαίσθητο)"
},
"LockingMode": {
"text2": ["Κλείδωμα", "πλήκτρων"],
"desc": "Κατά την κόλληση, κρατήστε και τα δύο πλήκτρα για κλείδωμα (A=απενεργοποίηση | B=μόνο λειτ. boost | Π=πλήρες κλείδωμα)"
},
"MinVolCell": {
"text2": ["Ελάχιστη", "τάση"],
"desc": "Ελάχιστη επιτρεπτή τάση ανα κυψέλη (3 σε σειρά: 3 - 3.7V | 4-6 σε σειρά: 2.4 - 3.7V)"
},
"AnimLoop": {
"text2": ["Επανάληψη", "κιν. εικονιδ."],
"desc": "Επανάληψη κίνησης εικονιδίων στο αρχικό μενού"
},
"AnimSpeed": {
"text2": ["Ταχύτητα", "κιν. εικονιδ."],
"desc": "Ρυθμός κίνησης εικονιδίων στο μενού (0=off | Α=αργός | Μ=μέτριος | Γ=γρήγορος"
},
"PowerPulseWait": {
"text2": ["Καθυστέρηση", "παλμού ενέργ."],
"desc": "Καθυστέρηση πριν την ενεργοποίση παλμού διατήρησης λειτουργίας (x 2.5s)"
},
"PowerPulseDuration": {
"text2": ["Διάρκεια", "παλμού ενέργ."],
"desc": "Διάρκεια παλμού διατήρησης ενέργειας (x 250ms)"
},
"LanguageSwitch": {
"text2": ["Γλώσσα", " GR Ελληνικά"],
"desc": "Τρέχουσα γλώσσα λογισμικού"
},
"Brightness": {
"text2": ["Αντίθεση", "οθόνης"],
"desc": "Ρύθμιση φωτεινότητας οθόνης OLED"
},
"ColourInversion": {
"text2": ["Αντιστροφή", "χρωμάτων"],
"desc": "Αντιστροφή χρωμάτων οθόνης OLED"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -5,22 +5,18 @@
"tempUnitFahrenheit": true,
"messages": {
"SettingsCalibrationWarning": "Please ensure the tip is at room temperature, before proceeding!",
"SettingsResetWarning": "Sure you want to restore default settings?",
"SettingsResetWarning": "Are you sure you want to restore default settings?",
"UVLOWarningString": "DC LOW",
"UndervoltageString": "Undervoltage",
"InputVoltageString": "Input V: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Sleeping...",
"SleepingTipAdvancedString": "Tip:",
"IdleTipString": "Tip:",
"IdleSetString": " Set:",
"TipDisconnectedString": "NO TIP",
"SolderingAdvancedPowerPrompt": "Power: ",
"OffString": "Off"
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": ["Some settings", "changed"],
"SettingsResetMessage": ["Certain settings", "were changed!"],
"NoAccelerometerMessage": ["No accelerometer", "detected!"],
"NoPowerDeliveryMessage": ["No USB-PD IC", "detected!"],
"LockingKeysString": "LOCKED",
@@ -46,8 +42,7 @@
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F",
"SettingNAChar": "N/A"
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
@@ -82,11 +77,11 @@
},
"SleepTimeout": {
"text2": ["Sleep", "timeout"],
"desc": "Interval before \"sleep mode\" kicks in (S=seconds | M=minutes)"
"desc": "Interval before \"sleep mode\" kicks in (s=seconds | m=minutes)"
},
"ShutdownTimeout": {
"text2": ["Shutdown", "timeout"],
"desc": "Interval before the iron shuts down (M=minutes)"
"desc": "Interval before the iron shuts down (m=minutes)"
},
"MotionSensitivity": {
"text2": ["Motion", "sensitivity"],
@@ -106,14 +101,14 @@
},
"BoostTemperature": {
"text2": ["Boost", "temp"],
"desc": "Temperature used in \"boost mode\""
"desc": "Tip temperature used in \"boost mode\""
},
"AutoStart": {
"text2": ["Heat", "on power up"],
"desc": "O=off | S=soldering temp | Z=standby at sleep temp until moved | R=standby without heating until moved"
"text2": ["Start-up", "behavior"],
"desc": "O=off | S=heat up to soldering temp | Z=standby at sleep temp until moved | R=standby without heating until moved"
},
"CooldownBlink": {
"text2": ["Cooldown", "blink"],
"text2": ["Cooldown", "flashing"],
"desc": "Flash the temperature reading after heating was halted while the tip is still hot"
},
"TemperatureCalibration": {
@@ -121,8 +116,8 @@
"desc": "Start tip temperature offset calibration"
},
"SettingsReset": {
"text2": ["Factory", "reset?"],
"desc": "Reset settings to default"
"text2": ["Restore factory", "settings?"],
"desc": "Reset all settings to default"
},
"VoltageCalibration": {
"text2": ["Calibrate", "input voltage?"],
@@ -149,7 +144,7 @@
"desc": "Maximum power the iron can use (W=watt)"
},
"ReverseButtonTempChange": {
"text2": ["Reverse", "+ - keys"],
"text2": ["Swap", "+ - keys"],
"desc": "Reverse assignment of buttons for temperature adjustment"
},
"TempChangeShortStep": {
@@ -166,7 +161,7 @@
},
"HallEffSensitivity": {
"text2": ["Hall sensor", "sensitivity"],
"desc": "Sensitivity of the Hall effect sensor to detect sleep (O=off | L=low | M=medium | H=high)"
"desc": "Sensitivity of the Hall effect sensor to detect sleep (0=off | 1=least sensitive | ... | 9=most sensitive)"
},
"LockingMode": {
"text2": ["Allow locking", "buttons"],
@@ -197,12 +192,16 @@
"desc": "Current firmware language"
},
"Brightness": {
"text2": ["Screen", "contrast"],
"text2": ["Screen", "brightness"],
"desc": "Adjust the brightness of the OLED screen"
},
"ColourInversion": {
"text2": ["Invert", "screen"],
"desc": "Invert the colours of the OLED screen"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,27 +2,17 @@
"languageCode": "ES",
"languageLocalName": "Castellano",
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "¡Calibrada!",
"SettingsCalibrationWarning": "¡Asegúrate que la punta esté a temperatura ambiente antes de empezar!",
"SettingsResetWarning": "¿Quieres restablecer los ajustes?",
"UVLOWarningString": "CC BAJA",
"UndervoltageString": "Voltaje bajo",
"InputVoltageString": "Voltaje: ",
"WarningTipTempString": "Temp punta: ",
"BadTipString": "PT. ROTA",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "En reposo...",
"WarningSimpleString": "QUEMA",
"WarningAdvancedString": "¡LA PUNTA QUEMA!",
"SleepingTipAdvancedString": "Punta:",
"IdleTipString": "Punta:",
"IdleSetString": " Aj:",
"TipDisconnectedString": "NO HAY PUNTA",
"SolderingAdvancedPowerPrompt": "Potencia: ",
"OffString": " No",
"YourGainMessage": "Gananc.:",
"SettingsResetMessage": "Ajustes borrados"
"OffString": " No"
},
"messagesWarn": {
"ResetOKMessage": "Hecho.",
@@ -52,8 +42,7 @@
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F",
"SettingNAChar": "N/A"
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
@@ -172,7 +161,7 @@
},
"HallEffSensitivity": {
"text2": ["Hall Eff", "Sensibilidad"],
"desc": "Sensibilidad del sensor de efecto Hall en la detección de reposo (O=Off | L=Low | M=Medium | H=High)"
"desc": "Sensibilidad del sensor de efecto Hall en la detección de reposo (0=no | 1=menos sensible | ... | 9=más sensible)"
},
"LockingMode": {
"text2": ["Permitir botones", "bloqueo"],
@@ -188,7 +177,7 @@
},
"AnimSpeed": {
"text2": ["Anim.", "velocidad"],
"desc": "Velocidad de las animaciones de los iconos en el menú (O=off | L=low | M=medium | H=high)"
"desc": "Velocidad de las animaciones de los iconos en el menú (O=off | L=low | M=medium | R=high)"
},
"PowerPulseWait": {
"text2": ["Impulso de potencia", "tiempo de espera"],
@@ -203,12 +192,16 @@
"desc": ""
},
"Brightness": {
"text2": ["Screen", "Brightness"],
"desc": "Adjust the contrast/brightness of the OLED screen"
"text2": ["Screen", "brightness"],
"desc": "Adjust the brightness of the OLED screen"
},
"ColourInversion": {
"text2": ["Screen", "Invert"],
"text2": ["Invert", "screen"],
"desc": "Invert the colours of the OLED screen"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,24 +2,16 @@
"languageCode": "FI",
"languageLocalName": "Suomi",
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Kalibrointi tehty!",
"SettingsCalibrationWarning": "Varmista että kärki on huoneenlämpöinen ennen jatkamista!",
"SettingsResetWarning": "Haluatko varmasti palauttaa oletusarvot?",
"UVLOWarningString": "DC ALH.",
"UndervoltageString": "Alijännite",
"InputVoltageString": "Jännite: ",
"WarningTipTempString": "Kärjet lämpö: ",
"BadTipString": "PAHA KÄRJET",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Lepotila...",
"WarningSimpleString": "KUUMA!",
"WarningAdvancedString": "!!! KUUMA KÄRJET !!!",
"SleepingTipAdvancedString": "Kärki:",
"IdleTipString": "Pää:",
"IdleSetString": "Aseta:",
"TipDisconnectedString": "KÄRKI PUUTTUU",
"SolderingAdvancedPowerPrompt": "Teho: ",
"OffString": "Off"
},
"messagesWarn": {
@@ -37,9 +29,9 @@
"SettingLeftChar": "V",
"SettingAutoChar": "A",
"SettingOffChar": "P",
"SettingSlowChar": "H",
"SettingSlowChar": "A",
"SettingMediumChar": "M",
"SettingFastChar": "N",
"SettingFastChar": "S",
"SettingStartNoneChar": "E",
"SettingStartSolderingChar": "J",
"SettingStartSleepChar": "L",
@@ -50,8 +42,7 @@
"SettingSensitivityHigh": "S",
"SettingLockDisableChar": "P",
"SettingLockBoostChar": "V",
"SettingLockFullChar": "K",
"SettingNAChar": "N/A"
"SettingLockFullChar": "K"
},
"menuGroups": {
"PowerMenu": {
@@ -86,11 +77,11 @@
},
"SleepTimeout": {
"text2": ["Lepotilan", "viive"],
"desc": "\"Lepotilan\" ajastus (S=sekuntia | M=minuuttia)"
"desc": "\"Lepotilan\" ajastus (s=sekuntia | m=minuuttia)"
},
"ShutdownTimeout": {
"text2": ["Sammutus", "viive"],
"desc": "Automaattisen sammutuksen ajastus (M=minuuttia)"
"desc": "Automaattisen sammutuksen ajastus (m=minuuttia)"
},
"MotionSensitivity": {
"text2": ["Liikkeen", "herkkyys"],
@@ -170,7 +161,7 @@
},
"HallEffSensitivity": {
"text2": ["Hall-", "herk."],
"desc": "Hall-efektianturin herkkyys lepotilan tunnistuksessa (P=pois | A=alhainen | K=keskiverto | S=suuri)"
"desc": "Hall-efektianturin herkkyys lepotilan tunnistuksessa (0=pois päältä | 1=vähäinen herkkyys | ... | 9=suurin herkkyys)"
},
"LockingMode": {
"text2": ["Salli nappien", "lukitus"],
@@ -201,12 +192,16 @@
"desc": ""
},
"Brightness": {
"text2": ["Screen", "Brightness"],
"desc": "Adjust the contrast/brightness of the OLED screen"
"text2": ["Screen", "brightness"],
"desc": "Adjust the brightness of the OLED screen"
},
"ColourInversion": {
"text2": ["Screen", "Invert"],
"text2": ["Invert", "screen"],
"desc": "Invert the colours of the OLED screen"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,26 +2,17 @@
"languageCode": "FR",
"languageLocalName": "Français",
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Calibration effectuée !",
"SettingsCalibrationWarning": "Assurez-vous que la panne soit à température ambiante avant de continuer !",
"SettingsResetWarning": "Voulez-vous vraiment réinitialiser les paramètres aux valeurs par défaut ?",
"UVLOWarningString": "DC FAIBL",
"UndervoltageString": "Sous-tension",
"InputVoltageString": "V d'entrée: ",
"WarningTipTempString": "Temp. Panne : ",
"BadTipString": "PANNE HS",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "En veille...",
"WarningSimpleString": "CHAUD !",
"WarningAdvancedString": "ATTENTION ! CHAUD !",
"SleepingTipAdvancedString": "Panne:",
"IdleTipString": "Act:",
"IdleSetString": " Reg:",
"TipDisconnectedString": "PANNE DÉBRANCHÉE",
"SolderingAdvancedPowerPrompt": "Puiss.:",
"OffString": "Off",
"YourGainMessage": "Gain : "
"OffString": "Off"
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
@@ -51,8 +42,7 @@
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "V",
"SettingNAChar": "N/A"
"SettingLockFullChar": "V"
},
"menuGroups": {
"PowerMenu": {
@@ -87,11 +77,11 @@
},
"SleepTimeout": {
"text2": ["Délai", "veille"],
"desc": "Délai avant mise en veille (S=secondes | M=minutes)"
"desc": "Délai avant mise en veille (s=secondes | m=minutes)"
},
"ShutdownTimeout": {
"text2": ["Délai", "extinction"],
"desc": "Délai avant extinction (M=minutes)"
"desc": "Délai avant extinction (m=minutes)"
},
"MotionSensitivity": {
"text2": ["Sensibilité", "au mouvement"],
@@ -147,7 +137,7 @@
},
"PDNegTimeout": {
"text2": ["Délai", "expiration PD"],
"desc": "Délai de la negociation PD par étapes de 100ms pour la compatiblité avec certains chargeurs QC (0: désactivé)"
"desc": "Délai de la negociation PD par étapes de 100ms pour la compatiblité avec certains chargeurs QC"
},
"PowerLimit": {
"text2": ["Limite de", "puissance"],
@@ -175,7 +165,7 @@
},
"HallEffSensitivity": {
"text2": ["Sensibilité", "capteur effet hall"],
"desc": "Sensibilité du capteur à effet Hall pour la mise en veille (D=désactivé | B=basse | M=moyenne | H=haute)"
"desc": "Sensibilité du capteur à effet Hall pour la mise en veille (0=désactivé | 1=peu sensible | ... | 9=très sensible)"
},
"MinVolCell": {
"text2": ["Tension", "minimale"],
@@ -199,7 +189,7 @@
},
"LanguageSwitch": {
"text2": ["Langue :", " FR Français"],
"desc": ""
"desc": "Langue du firmware"
},
"Brightness": {
"text2": ["Luminosité", "de l'écran"],
@@ -208,6 +198,10 @@
"ColourInversion": {
"text2": ["Inverser", "les couleurs"],
"desc": "Inverser les couleurs de l'écran OLED"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,33 +2,24 @@
"languageCode": "HR",
"languageLocalName": "Hrvatski",
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Kalibracija gotova!",
"SettingsCalibrationWarning": "Provjerite da je vršak ohlađen na sobnu temperaturu prije nego što nastavite!",
"SettingsResetWarning": "Jeste li sigurni da želite sve postavke vratiti na tvorničke vrijednosti?",
"UVLOWarningString": "BATERIJA",
"UndervoltageString": "PRENIZAK NAPON",
"InputVoltageString": "Napajanje: ",
"WarningTipTempString": "Temp vrha: ",
"BadTipString": "LOŠ VRH",
"SleepingSimpleString": "Zzz ",
"SleepingAdvancedString": "SPAVANJE...",
"WarningSimpleString": "VRUĆ",
"WarningAdvancedString": "OPREZ, VRUĆE!",
"SleepingTipAdvancedString": "Vrh: ",
"IdleTipString": "Vrh: ",
"IdleSetString": " / ",
"TipDisconnectedString": "VRH NIJE SPOJEN!",
"SolderingAdvancedPowerPrompt": "Snaga: ",
"OffString": "Off",
"YourGainMessage": "Your gain:"
"OffString": "Off"
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": ["Settings were", "reset!"],
"SettingsResetMessage": ["Certain settings", "were changed!"],
"NoAccelerometerMessage": ["No accelerometer", "detected!"],
"NoPowerDeliveryMessage": ["No USB-PD IC", "detected!"],
"LockingKeysString": " LOCKED",
"LockingKeysString": "LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!",
"WarningThermalRunaway": ["Thermal", "Runaway"]
@@ -51,8 +42,7 @@
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F",
"SettingNAChar": "N/A"
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
@@ -147,51 +137,51 @@
},
"PDNegTimeout": {
"text2": ["PD", "timeout"],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers (0: disabled)"
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"PowerLimit": {
"text2": ["Power", "Limit"],
"desc": "Maximum power the iron can use (Watts)"
"text2": ["Power", "limit"],
"desc": "Maximum power the iron can use (W=watt)"
},
"ReverseButtonTempChange": {
"text2": ["Key +-", "reverse?"],
"desc": "Reverse the tip temperature change buttons plus minus assignment."
"text2": ["Swap", "+ - keys"],
"desc": "Reverse assignment of buttons for temperature adjustment"
},
"TempChangeShortStep": {
"text2": ["Temp change", "short?"],
"desc": "Temperature change steps on short button press!"
"text2": ["Temp change", "short"],
"desc": "Temperature-change-increment on short button press"
},
"TempChangeLongStep": {
"text2": ["Temp change", "long?"],
"desc": "Temperature change steps on long button press!"
"text2": ["Temp change", "long"],
"desc": "Temperature-change-increment on long button press"
},
"PowerPulsePower": {
"text2": ["Power", "Pulse W"],
"desc": "Keep awake pulse power intensity"
"text2": ["Power", "pulse"],
"desc": "Intensity of power of keep-awake-pulse (watt)"
},
"HallEffSensitivity": {
"text2": ["Hall Eff", "Sensitivity"],
"desc": "Sensitivity of the Hall effect sensor in detecting sleep (O=Off | L=Low | M=Medium | H=High)"
"text2": ["Hall sensor", "sensitivity"],
"desc": "Sensitivity of the Hall effect sensor to detect sleep (0=Ugašeno | 1=Najmanje osjetljivo | ... | 9=Najosjetljivije)"
},
"LockingMode": {
"text2": ["Allow buttons", "locking"],
"desc": "When soldering, long press on both buttons lock them (D=Disable | B=Boost only | F=Full locking)"
"text2": ["Allow locking", "buttons"],
"desc": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MinVolCell": {
"text2": ["Minimum", "voltage"],
"desc": "Minimum allowed voltage per cell (3S: 3 - 3.7V, 4-6S: 2.4 - 3.7V)"
"desc": "Minimum allowed voltage per cell (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"AnimLoop": {
"text2": ["Anim.", "loop"],
"desc": "Loop icon animations in root menu"
"desc": "Loop icon animations in main menu"
},
"AnimSpeed": {
"text2": ["Anim.", "speed"],
"desc": "Speed of icon animations in menu (O=off | L=low | M=medium | H=high)"
"desc": "Pace of icon animations in menu (O=off | S=slow | M=medium | B=fast)"
},
"PowerPulseWait": {
"text2": ["Power pulse", "wait time"],
"desc": "Time to wait before triggering every keep-awake pulse (x 2.5s)"
"text2": ["Power pulse", "delay"],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"text2": ["Power pulse", "duration"],
@@ -202,12 +192,16 @@
"desc": ""
},
"Brightness": {
"text2": ["Screen", "Brightness"],
"desc": "Adjust the contrast/brightness of the OLED screen"
"text2": ["Screen", "brightness"],
"desc": "Adjust the brightness of the OLED screen"
},
"ColourInversion": {
"text2": ["Screen", "Invert"],
"text2": ["Invert", "screen"],
"desc": "Invert the colours of the OLED screen"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,36 +2,27 @@
"languageCode": "HU",
"languageLocalName": "Magyar",
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Kalibráció befejezve!",
"SettingsCalibrationWarning": "Folytatás előtt győződjön meg róla, hogy a páka szobahőmérsékletű!",
"SettingsResetWarning": "Biztosan visszaállítja a beállításokat az alapértelmezett értékekre?",
"UVLOWarningString": "DC KEVÉS",
"SettingsCalibrationWarning": "Folytatás előtt győződjön meg róla, hogy a forrasztó hegy szobahőmérsékletű!",
"SettingsResetWarning": "Biztos visszaállítja a beállításokat alapértékekre?",
"UVLOWarningString": "DC TÚL KEVÉS",
"UndervoltageString": "Alulfeszültség",
"InputVoltageString": "Bemenet V: ",
"WarningTipTempString": "Hegy hő: ",
"BadTipString": "PÁKAHIBA",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Alvás...",
"WarningSimpleString": "FORRÓ!",
"WarningAdvancedString": "!! FORRÓ PÁKA !!",
"SleepingTipAdvancedString": "Páka:",
"IdleTipString": "Páka:",
"IdleSetString": " Cél:",
"TipDisconnectedString": "PÁKA LEVÉVE",
"SolderingAdvancedPowerPrompt": "Telj: ",
"OffString": "Ki",
"YourGainMessage": "Erősítés:"
"SleepingTipAdvancedString": "Hegy:",
"OffString": "Ki"
},
"messagesWarn": {
"ResetOKMessage": ["Törlés OK", ""],
"SettingsResetMessage": ["Beállítások", "törölve!"],
"ResetOKMessage": "Törlés OK",
"SettingsResetMessage": ["Beállítások", "visszaállítva!"],
"NoAccelerometerMessage": ["Nincs", "gyorsulásmérő!"],
"NoPowerDeliveryMessage": ["Nincs USB-PD IC!", ""],
"NoPowerDeliveryMessage": ["Nincs", "USB-PD IC!"],
"LockingKeysString": "LEZÁRVA",
"UnlockingKeysString": "FELOLDVA",
"WarningKeysLockedString": "!LEZÁRVA!",
"WarningThermalRunaway": ["Thermal", "Runaway"]
"WarningThermalRunaway": ["Kontrollálatlan", "hőmérséklet!"]
},
"characters": {
"SettingRightChar": "J",
@@ -40,19 +31,18 @@
"SettingOffChar": "0",
"SettingSlowChar": "L",
"SettingMediumChar": "K",
"SettingFastChar": "G",
"SettingFastChar": "Gy",
"SettingStartNoneChar": "K",
"SettingStartSolderingChar": "F",
"SettingStartSleepChar": "A",
"SettingStartSleepOffChar": "S",
"SettingStartSleepOffChar": "Sz",
"SettingSensitivityOff": "0",
"SettingSensitivityLow": "A",
"SettingSensitivityMedium": "K",
"SettingSensitivityHigh": "M",
"SettingLockDisableChar": "K",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "T",
"SettingNAChar": "N/A"
"SettingLockFullChar": "T"
},
"menuGroups": {
"PowerMenu": {
@@ -79,7 +69,7 @@
"menuOptions": {
"DCInCutoff": {
"text2": ["Áram", "forrás"],
"desc": "Kikapcsolási feszültség beállítása (DC:10V | S:3.3V/LiPo cella)"
"desc": "Kikapcsolási feszültség beállítása (DC:10V | S:3.3V/LiPo cella | ki)"
},
"SleepTemperature": {
"text2": ["Alvási", "hőmérséklet"],
@@ -115,15 +105,15 @@
},
"AutoStart": {
"text2": ["Automatikus", "indítás"],
"desc": "Bekapcsolás után automatikusan lépjen forrasztás módba (K=ki | F=forrasztás | A=alvó mód | S=szobahőmérséklet)"
"desc": "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)"
},
"CooldownBlink": {
"text2": ["Villogás", "hűléskor"],
"desc": "Villogjon a hőmérséklet hűlés közben, amíg a páka forró"
"desc": "Villogjon a hőmérséklet kijelzése hűlés közben, amíg a forrasztó hegy forró"
},
"TemperatureCalibration": {
"text2": ["Hőmérséklet", "kalibrálása?"],
"desc": "Páka hőmérséklet-érzékelőjének kalibrálása"
"desc": "Forrasztó hegy hőmérséklet-érzékelőjének kalibrálása"
},
"SettingsReset": {
"text2": ["Gyári", "beállítások?"],
@@ -131,10 +121,10 @@
},
"VoltageCalibration": {
"text2": ["Bemeneti fesz.", "kalibrálása?"],
"desc": "Bemeneti feszültség kalibrálása (röviden megnyomva módosítás, hosszan megnyomva kilépés)"
"desc": "Bemeneti feszültség kalibrálása (hosszan nyomva kilép)"
},
"AdvancedSoldering": {
"text2": ["Részletes", "forrasztás"],
"text2": ["Részletes", "forrasztás infó"],
"desc": "Részletes információk megjelenítése forrasztás közben"
},
"ScrollingSpeed": {
@@ -147,23 +137,23 @@
},
"PDNegTimeout": {
"text2": ["PD", "időtúllépés"],
"desc": "PD egyeztetési leidőzítés 100ms lépésekben megadva néhány QC töltővel való kompatibilitás érdekében (0: kikapcsolva)"
"desc": "PD egyeztetés időkerete (kompatibilitás QC töltőkkel) (x 100ms)"
},
"PowerLimit": {
"text2": ["Teljesítmény", "maximum"],
"desc": "Maximális felvett teljesitmény beállitása"
},
"ReverseButtonTempChange": {
"text2": ["+/- gomb", "fordítva"],
"desc": "Páka hőmérséklet növelés/csökkentés gombok felcserélése"
"text2": ["+/- gomb", "megfordítása"],
"desc": "Forrasztó hegy hőmérsékletállító gombok felcserélése"
},
"TempChangeShortStep": {
"text2": ["Hőm. váltás", "rövid"],
"desc": "Hőmérséklet váltás rövid gombnyomásra (C | F)"
"text2": ["Hőm. áltás", "rövid"],
"desc": "Hőmérséklet áltás rövid gombnyomásra (C | F)"
},
"TempChangeLongStep": {
"text2": ["Hőm. váltás", "hosszú"],
"desc": "Hőmérséklet váltás hosszú gombnyomásra (C | F)"
"text2": ["Hőm. áltás", "hosszú"],
"desc": "Hőmérséklet áltás hosszú gombnyomásra (C | F)"
},
"PowerPulsePower": {
"text2": ["Ébr. pulzus", "nagysága"],
@@ -171,11 +161,11 @@
},
"HallEffSensitivity": {
"text2": ["Alvásérzékelő", "érzékenység"],
"desc": "Alvásérzékelő gyorsulásmérő érzékenysége (0=ki | A=alacsony | K=közepes | M=magas)"
"desc": "Alvásérzékelő gyorsulásmérő érzékenysége (0=kikapcsolva | 1=legkevésbé érzékeny | ... | 9=legérzékenyebb)"
},
"LockingMode": {
"text2": ["Lezárás", "engedélyezés"],
"desc": "Forrasztás közben mindkét gombot hosszan lenyomva rögzíti a hőmérsékletet (K=ki | B=csak \"boost\" mód | T=teljes lezárás)"
"desc": "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)"
},
"MinVolCell": {
"text2": ["Minimum", "feszültség"],
@@ -187,27 +177,31 @@
},
"AnimSpeed": {
"text2": ["Animáció", "sebessége"],
"desc": "Menüikonok animációjának sebessége (0=ki | L=lassú | K=közepes | G=gyors)"
"desc": "Menüikonok animációjának sebessége (0=ki | L=lassú | K=közepes | Gy=gyors)"
},
"PowerPulseWait": {
"text2": ["Ébr. pulzus", "időköze"],
"desc": "Powerbankot ébrentartó áramfelvételi pulzusok időköze (x2.5s)"
"desc": "Powerbankot ébrentartó áramfelvételi pulzusok időköze (x 2.5s)"
},
"PowerPulseDuration": {
"text2": ["Ébr. pulzus", "időtartama"],
"desc": "Powerbankot ébrentartó áramfelvételi pulzusok időtartama (x250ms)"
"desc": "Powerbankot ébrentartó áramfelvételi pulzusok időtartama (x 250ms)"
},
"LanguageSwitch": {
"text2": ["Nyelv:", " HU Magyar"],
"desc": ""
"desc": "Firmware nyelve"
},
"Brightness": {
"text2": ["Screen", "Brightness"],
"desc": "Adjust the contrast/brightness of the OLED screen"
"text2": ["Képernyő", "kontraszt"],
"desc": "Képernyő kontrasztjának állítása"
},
"ColourInversion": {
"text2": ["Screen", "Invert"],
"desc": "Invert the colours of the OLED screen"
"text2": ["Képernyő", "invertálás"],
"desc": "Képernyő színeinek invertálása"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -1,336 +1,207 @@
{
"languageCode": "IT",
"languageLocalName": "Italiano",
"fonts": [
"ascii_basic",
"latin_extended"
],
"messages": {
"SettingsCalibrationWarning": "Assicurarsi che la punta si trovi a temperatura ambiente prima di continuare!",
"SettingsResetWarning": "Ripristinare le impostazioni iniziali?",
"UVLOWarningString": "DC BASSA",
"UndervoltageString": "DC INSUFFICIENTE",
"InputVoltageString": "V in:",
"SleepingSimpleString": "Zzz ",
"SleepingAdvancedString": "Riposo",
"SleepingTipAdvancedString": "Punta:",
"IdleTipString": "T punta:",
"IdleSetString": "/",
"TipDisconnectedString": "PUNTA ASSENTE",
"SolderingAdvancedPowerPrompt": "Potenz:",
"OffString": "OFF"
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Impostazioni",
"ripristinate"
],
"NoAccelerometerMessage": [
"Accelerometro",
"non rilevato"
],
"NoPowerDeliveryMessage": [
"USB PD",
"non rilevato"
],
"LockingKeysString": "Blocc.",
"UnlockingKeysString": "Sblocc.",
"WarningKeysLockedString": "BLOCCATO",
"WarningThermalRunaway": [
"Temperatura",
"fuori controllo"
]
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "S",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "L",
"SettingMediumChar": "M",
"SettingFastChar": "V",
"SettingStartNoneChar": "D",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "R",
"SettingStartSleepOffChar": "A",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "B",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "A",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "T",
"SettingLockFullChar": "C",
"SettingNAChar": " NA"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Opzioni",
"alimentaz"
],
"desc": "Menù d'impostazioni per l'alimentazione"
},
"SolderingMenu": {
"text2": [
"Opzioni",
"saldatura"
],
"desc": "Menù d'impostazioni della modalità Saldatura"
},
"PowerSavingMenu": {
"text2": [
"Risparmio",
"energetico"
],
"desc": "Menù d'impostazioni per il risparmio energetico"
},
"UIMenu": {
"text2": [
"Interfaccia",
"utente"
],
"desc": "Menù d'impostazioni dell'interfaccia utente"
},
"AdvancedMenu": {
"text2": [
"Opzioni",
"avanzate"
],
"desc": "Menù d'impostazioni avanzate"
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Sorgente",
"alimentaz"
],
"desc": "Imposta una tensione minima di alimentazione attraverso la selezione di una sorgente [DC: 10 V; 3S/4S/5S/6S: 3,3 V per cella]"
},
"SleepTemperature": {
"text2": [
"Temp",
"riposo"
],
"desc": "Imposta la temperatura da mantenere in modalità Riposo [°C/°F]"
},
"SleepTimeout": {
"text2": [
"Timer",
"riposo"
],
"desc": "Imposta il timer per entrare in modalità Riposo [minuti/secondi]"
},
"ShutdownTimeout": {
"text2": [
"Timer",
"spegnimento"
],
"desc": "Imposta il timer per lo spegnimento [minuti]"
},
"MotionSensitivity": {
"text2": [
"Sensibilità",
"al movimento"
],
"desc": "Imposta la sensibilità al movimento per uscire dalla modalità Riposo [0: nessuna; 1: minima; 9: massima]"
},
"TemperatureUnit": {
"text2": [
"Unità di",
"temperatura"
],
"desc": "Scegli l'unità di misura per la temperatura [C: grado Celsius; F: grado Farenheit]"
},
"AdvancedIdle": {
"text2": [
"Interfaccia",
"testuale"
],
"desc": "Mostra informazioni dettagliate all'interno della schermata principale"
},
"DisplayRotation": {
"text2": [
"Orientamento",
"schermo"
],
"desc": "Imposta l'orientamento dello schermo [D: mano destra; S: mano sinistra; A: automatico]"
},
"BoostTemperature": {
"text2": [
"Temp",
"Turbo"
],
"desc": "Imposta la temperatura della funzione Turbo [°C/°F]"
},
"AutoStart": {
"text2": [
"Avvio",
"automatico"
],
"desc": "Attiva automaticamente il saldatore quando viene alimentato [D: disattiva; S: saldatura; R: riposo; A: temperatura ambiente]"
},
"CooldownBlink": {
"text2": [
"Avviso",
"punta calda"
],
"desc": "Evidenzia il valore di temperatura durante il raffreddamento se la punta è ancora calda"
},
"TemperatureCalibration": {
"text2": [
"Calibrazione",
"temperatura"
],
"desc": "Calibra le rilevazioni di temperatura"
},
"SettingsReset": {
"text2": [
"Ripristino",
"impostazioni"
],
"desc": "Ripristina le impostazioni allo stato iniziale"
},
"VoltageCalibration": {
"text2": [
"Calibrazione",
"tensione"
],
"desc": "Calibra la tensione in ingresso; regola con entrambi i tasti, tieni premuto il tasto superiore per uscire"
},
"AdvancedSoldering": {
"text2": [
"Dettagli",
"saldatura"
],
"desc": "Mostra informazioni dettagliate durante la modalità Saldatura"
},
"ScrollingSpeed": {
"text2": [
"Velocità",
"testo"
],
"desc": "Imposta la velocità di scorrimento del testo [L: lenta; V: veloce]"
},
"QCMaxVoltage": {
"text2": [
"Voltaggio",
"QC"
],
"desc": "Imposta il massimo voltaggio negoziabile con un alimentatore Quick Charge [volt]"
},
"PDNegTimeout": {
"text2": [
"Abilitazione",
"USB PD"
],
"desc": "Regola il massimo tempo utile per la negoziazione del protocollo USB Power Delivery con alimentatori compatibili [0: disattiva; multipli di 100 ms]"
},
"PowerLimit": {
"text2": [
"Limite",
"potenza"
],
"desc": "Imposta il valore di potenza massima erogabile al saldatore [watt]"
},
"ReverseButtonTempChange": {
"text2": [
"Inversione",
"tasti"
],
"desc": "Inverti i tasti per aumentare o diminuire la temperatura della punta"
},
"TempChangeShortStep": {
"text2": [
"Temp passo",
"breve"
],
"desc": "Imposta il passo dei valori di temperatura per una breve pressione dei tasti"
},
"TempChangeLongStep": {
"text2": [
"Temp passo",
"lungo"
],
"desc": "Imposta il passo dei valori di temperatura per una lunga pressione dei tasti"
},
"PowerPulsePower": {
"text2": [
"Potenza",
"impulso"
],
"desc": "Regola la potenza di un \"impulso sveglia\" atto a prevenire lo standby eventuale dell'alimentatore [watt]"
},
"HallEffSensitivity": {
"text2": [
"Sensore",
"Hall"
],
"desc": "Regola la sensibilità del sensore ad effetto Hall per entrare in modalità Riposo [O: OFF; B: bassa; M: media; A: alta]"
},
"LockingMode": {
"text2": [
"Blocco",
"tasti"
],
"desc": "Blocca i tasti durante la modalità Saldatura; tieni premuto entrambi per bloccare o sbloccare [D: disattiva; T: consenti Turbo; C: blocco completo]"
},
"MinVolCell": {
"text2": [
"Tensione",
"min celle"
],
"desc": "Modifica la tensione di minima carica delle celle di una batteria Li-Po [3S: 3,0-3,7 V; 4S/5S/6S: 2,4-3,7 V]"
},
"AnimLoop": {
"text2": [
"Ciclo",
"animazioni"
],
"desc": "Abilita la riproduzione ciclica delle animazioni del menù principale"
},
"AnimSpeed": {
"text2": [
"Velocità",
"animazioni"
],
"desc": "Imposta la velocità di riproduzione delle animazioni del menù principale [O: OFF; L: lenta; M: media; V: veloce]"
},
"PowerPulseWait": {
"text2": [
"Distanza",
"impulsi"
],
"desc": "Imposta il tempo che deve intercorrere tra due \"impulsi sveglia\" [multipli di 2,5 s]"
},
"PowerPulseDuration": {
"text2": [
"Durata",
"impulso"
],
"desc": "Regola la durata dell'«impulso sveglia» [multipli di 250 ms]"
},
"LanguageSwitch": {
"text2": [
"Lingua:",
" IT Italiano"
],
"desc": "Imposta la lingua del dispositivo"
},
"Brightness": {
"text2": [
"Luminosità",
"schermo"
],
"desc": "Regola la luminosità dello schermo [1: minimo; 10: massimo]"
},
"ColourInversion": {
"text2": [
"Inverti",
"colori"
],
"desc": "Inverti i colori dello schermo"
}
}
"languageCode": "IT",
"languageLocalName": "Italiano",
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Assicurarsi che la punta si trovi a temperatura ambiente prima di continuare!",
"SettingsResetWarning": "Ripristinare le impostazioni iniziali?",
"UVLOWarningString": "DC BASSA",
"UndervoltageString": "DC INSUFFICIENTE",
"InputVoltageString": "V in:",
"SleepingSimpleString": "Zzz ",
"SleepingAdvancedString": "Riposo",
"SleepingTipAdvancedString": "Punta:",
"OffString": "OFF"
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": ["Impostazioni", "ripristinate"],
"NoAccelerometerMessage": ["Accelerometro", "non rilevato"],
"NoPowerDeliveryMessage": ["USB PD", "non rilevato"],
"LockingKeysString": "Blocc.",
"UnlockingKeysString": "Sblocc.",
"WarningKeysLockedString": "BLOCCATO",
"WarningThermalRunaway": ["Temperatura", "fuori controllo"]
},
"characters": {
"SettingRightChar": "D",
"SettingLeftChar": "S",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "L",
"SettingMediumChar": "M",
"SettingFastChar": "V",
"SettingStartNoneChar": "D",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "R",
"SettingStartSleepOffChar": "A",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "B",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "A",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "T",
"SettingLockFullChar": "C"
},
"menuGroups": {
"PowerMenu": {
"text2": ["Opzioni", "alimentaz"],
"desc": "Menù d'impostazioni per l'alimentazione"
},
"SolderingMenu": {
"text2": ["Opzioni", "saldatura"],
"desc": "Menù d'impostazioni della modalità Saldatura"
},
"PowerSavingMenu": {
"text2": ["Risparmio", "energetico"],
"desc": "Menù d'impostazioni per il risparmio energetico"
},
"UIMenu": {
"text2": ["Interfaccia", "utente"],
"desc": "Menù d'impostazioni dell'interfaccia utente"
},
"AdvancedMenu": {
"text2": ["Opzioni", "avanzate"],
"desc": "Menù d'impostazioni avanzate"
}
},
"menuOptions": {
"DCInCutoff": {
"text2": ["Sorgente", "alimentaz"],
"desc": "Imposta una tensione minima di alimentazione attraverso la selezione di una sorgente [DC: 10 V; 3S/4S/5S/6S: 3,3 V per cella]"
},
"SleepTemperature": {
"text2": ["Temp", "riposo"],
"desc": "Imposta la temperatura da mantenere in modalità Riposo [°C/°F]"
},
"SleepTimeout": {
"text2": ["Timer", "riposo"],
"desc": "Imposta il timer per entrare in modalità Riposo [secondi/minuti]"
},
"ShutdownTimeout": {
"text2": ["Timer", "spegnimento"],
"desc": "Imposta il timer per lo spegnimento [minuti]"
},
"MotionSensitivity": {
"text2": ["Sensibilità", "al movimento"],
"desc": "Imposta la sensibilità al movimento per uscire dalla modalità Riposo [0: nessuna; 1: minima; 9: massima]"
},
"TemperatureUnit": {
"text2": ["Unità di", "temperatura"],
"desc": "Scegli l'unità di misura per la temperatura [C: grado Celsius; F: grado Farenheit]"
},
"AdvancedIdle": {
"text2": ["Interfaccia", "testuale"],
"desc": "Mostra informazioni dettagliate all'interno della schermata principale"
},
"DisplayRotation": {
"text2": ["Orientamento", "schermo"],
"desc": "Imposta l'orientamento dello schermo [D: mano destra; S: mano sinistra; A: automatico]"
},
"BoostTemperature": {
"text2": ["Temp", "Turbo"],
"desc": "Imposta la temperatura della funzione Turbo [°C/°F]"
},
"AutoStart": {
"text2": ["Avvio", "automatico"],
"desc": "Attiva automaticamente il saldatore quando viene alimentato [D: disattiva; S: saldatura; R: riposo; A: temperatura ambiente]"
},
"CooldownBlink": {
"text2": ["Avviso", "punta calda"],
"desc": "Evidenzia il valore di temperatura durante il raffreddamento se la punta è ancora calda"
},
"TemperatureCalibration": {
"text2": ["Calibrazione", "temperatura"],
"desc": "Calibra le rilevazioni di temperatura"
},
"SettingsReset": {
"text2": ["Ripristino", "impostazioni"],
"desc": "Ripristina le impostazioni allo stato iniziale"
},
"VoltageCalibration": {
"text2": ["Calibrazione", "tensione"],
"desc": "Calibra la tensione in ingresso; regola con entrambi i tasti, tieni premuto il tasto superiore per uscire"
},
"AdvancedSoldering": {
"text2": ["Dettagli", "saldatura"],
"desc": "Mostra informazioni dettagliate durante la modalità Saldatura"
},
"ScrollingSpeed": {
"text2": ["Velocità", "testo"],
"desc": "Imposta la velocità di scorrimento del testo [L: lenta; V: veloce]"
},
"QCMaxVoltage": {
"text2": ["Voltaggio", "QC"],
"desc": "Imposta il massimo voltaggio negoziabile con un alimentatore Quick Charge [volt]"
},
"PDNegTimeout": {
"text2": ["Abilitazione", "USB PD"],
"desc": "Regola il massimo tempo utile per la negoziazione del protocollo USB Power Delivery con alimentatori compatibili [0: disattiva; multipli di 100 ms]"
},
"PowerLimit": {
"text2": ["Limite", "potenza"],
"desc": "Imposta il valore di potenza massima erogabile al saldatore [watt]"
},
"ReverseButtonTempChange": {
"text2": ["Inversione", "tasti"],
"desc": "Inverti i tasti per aumentare o diminuire la temperatura della punta"
},
"TempChangeShortStep": {
"text2": ["Temp passo", "breve"],
"desc": "Imposta il passo dei valori di temperatura per una breve pressione dei tasti"
},
"TempChangeLongStep": {
"text2": ["Temp passo", "lungo"],
"desc": "Imposta il passo dei valori di temperatura per una lunga pressione dei tasti"
},
"PowerPulsePower": {
"text2": ["Potenza", "impulso"],
"desc": "Regola la potenza di un \"impulso sveglia\" atto a prevenire lo standby eventuale dell'alimentatore [watt]"
},
"HallEffSensitivity": {
"text2": ["Sensore", "Hall"],
"desc": "Regola la sensibilità del sensore ad effetto Hall per entrare in modalità Riposo [0: nessuna; 1: minima; 9: massima]"
},
"LockingMode": {
"text2": ["Blocco", "tasti"],
"desc": "Blocca i tasti durante la modalità Saldatura; tieni premuto entrambi per bloccare o sbloccare [D: disattiva; T: consenti Turbo; C: blocco completo]"
},
"MinVolCell": {
"text2": ["Tensione", "min celle"],
"desc": "Modifica la tensione di minima carica delle celle di una batteria Li-Po [3S: 3,0-3,7 V; 4S/5S/6S: 2,4-3,7 V]"
},
"AnimLoop": {
"text2": ["Ciclo", "animazioni"],
"desc": "Abilita la riproduzione ciclica delle animazioni del menù principale"
},
"AnimSpeed": {
"text2": ["Velocità", "animazioni"],
"desc": "Imposta la velocità di riproduzione delle animazioni del menù principale [O: OFF; L: lenta; M: media; V: veloce]"
},
"PowerPulseWait": {
"text2": ["Distanza", "impulsi"],
"desc": "Imposta il tempo che deve intercorrere tra due \"impulsi sveglia\" [multipli di 2,5 s]"
},
"PowerPulseDuration": {
"text2": ["Durata", "impulso"],
"desc": "Regola la durata dell'«impulso sveglia» [multipli di 250 ms]"
},
"LanguageSwitch": {
"text2": ["Lingua:", " IT Italiano"],
"desc": "Imposta la lingua del dispositivo"
},
"Brightness": {
"text2": ["Luminosità", "schermo"],
"desc": "Regola la luminosità dello schermo [1: minimo; 10: massimo]"
},
"ColourInversion": {
"text2": ["Inverti", "colori"],
"desc": "Inverti i colori dello schermo"
},
"LOGOTime": {
"text2": ["Durata", "logo"],
"desc": "Imposta la permanenza sullo schermo del logo iniziale [secondi]"
}
}
}

View File

@@ -12,10 +12,6 @@
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Sleeping...",
"SleepingTipAdvancedString": "Tip:",
"IdleTipString": "Tip:",
"IdleSetString": " Set:",
"TipDisconnectedString": "NO TIP",
"SolderingAdvancedPowerPrompt": "Power: ",
"OffString": "オフ"
},
"messagesWarn": {
@@ -46,8 +42,7 @@
"SettingSensitivityHigh": "高",
"SettingLockDisableChar": "×",
"SettingLockBoostChar": "ブ",
"SettingLockFullChar": "全",
"SettingNAChar": "非適用"
"SettingLockFullChar": "全"
},
"menuGroups": {
"PowerMenu": {
@@ -82,11 +77,11 @@
},
"SleepTimeout": {
"text2": "待機遅延",
"desc": "スタンバイモードに入るまでの待機時間 <S=秒 | M=分>"
"desc": "スタンバイモードに入るまでの待機時間 <s=秒 | m=分>"
},
"ShutdownTimeout": {
"text2": "自動オフ",
"desc": "自動電源オフまでの待機時間 <M=分>"
"desc": "自動電源オフまでの待機時間 <m=分>"
},
"MotionSensitivity": {
"text2": "動きの感度",
@@ -166,7 +161,7 @@
},
"HallEffSensitivity": {
"text2": "磁界感度",
"desc": "スタンバイモードに入るのに使用される磁場センサーの感度 <×=オフ | =最低感度 | 中=中程度の感度 | =最高感度>"
"desc": "スタンバイモードに入るのに使用される磁場センサーの感度 <0=オフ | 1=最低感度 | ... | 9=最高感度>"
},
"LockingMode": {
"text2": "ボタンロック",
@@ -203,6 +198,10 @@
"ColourInversion": {
"text2": "色反転",
"desc": "画面の色を反転する"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}
}

View File

@@ -2,33 +2,24 @@
"languageCode": "LT",
"languageLocalName": "Lietuvių",
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Kalibravimas atliktas!",
"SettingsCalibrationWarning": "Prieš tęsdami įsitikinkite, kad antgalis yra kambario temperatūros!",
"SettingsResetWarning": "Ar norite atstatyti nustatymus į numatytas reikšmes?",
"UVLOWarningString": "MAŽ VOLT",
"UndervoltageString": "Žema įtampa",
"InputVoltageString": "Įvestis V: ",
"WarningTipTempString": "Angal Temp: ",
"BadTipString": "BLOG ANT",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Miegu...",
"WarningSimpleString": "KRŠ!",
"WarningAdvancedString": "ANTGALIS KARŠTAS",
"SleepingTipAdvancedString": "Antg: ",
"IdleTipString": "Ant:",
"IdleSetString": " Nust:",
"TipDisconnectedString": "NĖRA ANTGALIO",
"SolderingAdvancedPowerPrompt": "Galia: ",
"OffString": "Išj",
"YourGainMessage": "Greitis:"
"SleepingTipAdvancedString": "Antg:",
"OffString": "Išj"
},
"messagesWarn": {
"ResetOKMessage": "Atstatytas OK",
"ResetOKMessage": "Atstatyta",
"SettingsResetMessage": ["Nust. atstatyti!", ""],
"NoAccelerometerMessage": ["Nerastas", "akselerometras!"],
"NoPowerDeliveryMessage": ["Nerastas", "USB-PD IC !"],
"LockingKeysString": " UŽRAKIN",
"NoPowerDeliveryMessage": ["Nerastas", "USB-PD IC!"],
"LockingKeysString": "UŽRAKIN",
"UnlockingKeysString": "ATRAKIN",
"WarningKeysLockedString": "!UŽRAK!",
"WarningThermalRunaway": ["Perkaitimo", "pavojus"]
@@ -51,8 +42,7 @@
"SettingSensitivityHigh": "A",
"SettingLockDisableChar": "I",
"SettingLockBoostChar": "T",
"SettingLockFullChar": "V",
"SettingNAChar": "N/A"
"SettingLockFullChar": "V"
},
"menuGroups": {
"PowerMenu": {
@@ -83,7 +73,7 @@
},
"SleepTemperature": {
"text2": ["Miego", "temperat."],
"desc": "Miego temperatūra"
"desc": "Antgalio temperatūra miego režimu"
},
"SleepTimeout": {
"text2": ["Miego", "laikas"],
@@ -146,8 +136,8 @@
"desc": "Maksimali QC maitinimo bloko įtampa"
},
"PDNegTimeout": {
"text2": ["PD", "timeout"],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers (0: disabled)"
"text2": ["PD", "laikas"],
"desc": "PD suderinimo laikas žingsniais po 100ms suderinamumui su kai kuriais QC įkrovikliais"
},
"PowerLimit": {
"text2": ["Galios", "riba"],
@@ -155,15 +145,15 @@
},
"ReverseButtonTempChange": {
"text2": ["Sukeisti + -", "mygtukus?"],
"desc": "Sukeisti + - temperatūros keitimo mygtukus vietomis."
"desc": "Sukeisti + - temperatūros keitimo mygtukus vietomis"
},
"TempChangeShortStep": {
"text2": ["Temp.keitim.", "trump.spust."],
"desc": "Temperatūros keitimo žingsnis trumpai spustėlėjus mygtuką!"
"desc": "Temperatūros keitimo žingsnis trumpai spustėlėjus mygtuką"
},
"TempChangeLongStep": {
"text2": ["Temp.keitim.", "ilgas pasp."],
"desc": "Temperatūros keitimo žingsnis ilgai paspaudus mygtuką!"
"desc": "Temperatūros keitimo žingsnis ilgai paspaudus mygtuką"
},
"PowerPulsePower": {
"text2": ["Galios", "pulso W"],
@@ -171,7 +161,7 @@
},
"HallEffSensitivity": {
"text2": ["Holo", "jutiklis"],
"desc": "Holo jutiklio jautrumas nustatant miegą (I=Išjungtas | Ž=Žemas | V=Vidutinis | A=Aukštas)"
"desc": "Holo jutiklio jautrumas nustatant miegą (0=Išjungta | 1=Mažiausias | ... | 9=Didžiausias)"
},
"LockingMode": {
"text2": ["Mygtukų", "užraktas"],
@@ -183,7 +173,7 @@
},
"AnimLoop": {
"text2": ["Animacijų", "pakartojimas"],
"desc": "Leidžia kartoti animacijas be sustojimo pagrindiniame meniu."
"desc": "Leidžia kartoti animacijas be sustojimo pagrindiniame meniu"
},
"AnimSpeed": {
"text2": ["Animacijų", "greitis"],
@@ -191,7 +181,7 @@
},
"PowerPulseWait": {
"text2": ["Galios pulso", "dažnumas"],
"desc": "Pasikartojantis laiko intervalas (x 2.5s), ties kuriuo kartojamas galios pulsas maitinblokiui, neleidžiantis jam užmigti."
"desc": "Pasikartojantis laiko intervalas (x 2.5s), ties kuriuo kartojamas galios pulsas maitinblokiui, neleidžiantis jam užmigti"
},
"PowerPulseDuration": {
"text2": ["Galios pulso", "trukmė"],
@@ -199,7 +189,7 @@
},
"LanguageSwitch": {
"text2": ["Kalba:", " LT Lietuvių"],
"desc": ""
"desc": "Dabartinė programinės įrangos kalba"
},
"Brightness": {
"text2": ["Ekrano", "šviesumas"],
@@ -207,7 +197,11 @@
},
"ColourInversion": {
"text2": ["Ekrano", "invertavimas"],
"desc": "Invertuoja OLED ekrano spalvas."
"desc": "Invertuoja OLED ekrano spalvas"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,26 +2,17 @@
"languageCode": "NL",
"languageLocalName": "Nederlands",
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Calibratie klaar!",
"SettingsCalibrationWarning": "Zorg ervoor dat te punt op kamertemperatuur is voor je verder gaat!",
"SettingsResetWarning": "Weet je zeker dat je de fabrieksinstellingen terug wil zetten?",
"UVLOWarningString": "DC Laag",
"UndervoltageString": "Onderspanning",
"InputVoltageString": "Input V: ",
"WarningTipTempString": "Punt temp: ",
"BadTipString": "DEFECTE PUNT",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Slaapstand...",
"WarningSimpleString": "HEET!",
"WarningAdvancedString": "!!! PUNT HOT !!!",
"SleepingTipAdvancedString": "Punt:",
"IdleTipString": "Punt:",
"IdleSetString": " Zet:",
"TipDisconnectedString": "PUNT LOSGEKOPPELT",
"SolderingAdvancedPowerPrompt": "Vermogen: ",
"OffString": "Uit",
"YourGainMessage": "Niveau:"
"OffString": "Uit"
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
@@ -51,8 +42,7 @@
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "U",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "V",
"SettingNAChar": "N/A"
"SettingLockFullChar": "V"
},
"menuGroups": {
"PowerMenu": {
@@ -170,8 +160,8 @@
"desc": "Vermogen van puls om soldeerbout aan te houden"
},
"HallEffSensitivity": {
"text2": ["Hall Eff", "Sensitivity"],
"desc": "Sensitivity of the Hall effect sensor in detecting sleep (O=Off | L=Low | M=Medium | H=High)"
"text2": ["Hall sensor", "sensitivity"],
"desc": "Sensitivity of the Hall effect sensor to detect sleep (0=uit | 1=minst gevoelig | ... | 9=meest gevoelig)"
},
"LockingMode": {
"text2": ["Blokkeer", "knoppen"],
@@ -183,15 +173,15 @@
},
"AnimLoop": {
"text2": ["Anim.", "loop"],
"desc": "Loop icon animations in root menu"
"desc": "Loop icon animations in main menu"
},
"AnimSpeed": {
"text2": ["Anim.", "speed"],
"desc": "Speed of icon animations in menu (O=off | L=low | M=medium | H=high)"
"desc": "Pace of icon animations in menu (O=off | S=slow | M=medium | F=fast)"
},
"PowerPulseWait": {
"text2": ["Power pulse", "wait time"],
"desc": "Time to wait before triggering every keep-awake pulse (x 2.5s)"
"text2": ["Power pulse", "delay"],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"text2": ["Power pulse", "duration"],
@@ -202,12 +192,16 @@
"desc": ""
},
"Brightness": {
"text2": ["Screen", "Brightness"],
"desc": "Adjust the contrast/brightness of the OLED screen"
"text2": ["Screen", "brightness"],
"desc": "Adjust the brightness of the OLED screen"
},
"ColourInversion": {
"text2": ["Screen", "Invert"],
"text2": ["Invert", "screen"],
"desc": "Invert the colours of the OLED screen"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,33 +2,24 @@
"languageCode": "NL_BE",
"languageLocalName": "Vlaams",
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Gecalibreerd!",
"SettingsCalibrationWarning": "Zorg vooraf dat de punt op kamertemperatuur is!",
"SettingsResetWarning": "Ben je zeker dat je alle standaardwaarden wil resetten?",
"UVLOWarningString": "Voedingsspanning LAAG",
"UndervoltageString": "Onderspanning",
"InputVoltageString": "Voedingsspanning: ",
"WarningTipTempString": "Punt Temp: ",
"BadTipString": "DEFECT",
"SleepingSimpleString": "Zzz ",
"SleepingAdvancedString": "Slaapstand...",
"WarningSimpleString": "HEET",
"WarningAdvancedString": "!!! PUNT HEET !!!",
"SleepingTipAdvancedString": "Punt:",
"IdleTipString": "Punt:",
"IdleSetString": "Stel in:",
"TipDisconnectedString": "Punt ONTKOPPELD",
"SolderingAdvancedPowerPrompt": "Vermogen: ",
"OffString": "Uit",
"YourGainMessage": "Your gain:"
"OffString": "Uit"
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": ["Settings were", "reset!"],
"NoAccelerometerMessage": ["No accelerometer", "detected!"],
"NoPowerDeliveryMessage": ["No USB-PD IC", "detected!"],
"LockingKeysString": " LOCKED",
"LockingKeysString": "LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!",
"WarningThermalRunaway": ["Thermal", "Runaway"]
@@ -51,8 +42,7 @@
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F",
"SettingNAChar": "N/A"
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
@@ -147,35 +137,35 @@
},
"PDNegTimeout": {
"text2": ["PD", "timeout"],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers (0: disabled)"
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"PowerLimit": {
"text2": ["Power", "Limit"],
"desc": "Maximum power the iron can use (Watts)"
"text2": ["Power", "limit"],
"desc": "Maximum power the iron can use (W=watt)"
},
"ReverseButtonTempChange": {
"text2": ["Key +-", "reverse?"],
"desc": "Reverse the tip temperature change buttons plus minus assignment."
"text2": ["Swap", "+ - keys"],
"desc": "Reverse assignment of buttons for temperature adjustment"
},
"TempChangeShortStep": {
"text2": ["Temp change", "short?"],
"desc": "Temperature change steps on short button press!"
"text2": ["Temp change", "short"],
"desc": "Temperature-change-increment on short button press"
},
"TempChangeLongStep": {
"text2": ["Temp change", "long?"],
"desc": "Temperature change steps on long button press!"
"text2": ["Temp change", "long"],
"desc": "Temperature-change-increment on long button press"
},
"PowerPulsePower": {
"text2": ["Power", "Pulse W"],
"desc": "Keep awake pulse power intensity"
"text2": ["Power", "pulse"],
"desc": "Intensity of power of keep-awake-pulse (watt)"
},
"HallEffSensitivity": {
"text2": ["Hall Eff", "Sensitivity"],
"desc": "Sensitivity of the Hall effect sensor in detecting sleep (O=Off | L=Low | M=Medium | H=High)"
"text2": ["Hall sensor", "sensitivity"],
"desc": "Sensitivity of the Hall effect sensor to detect sleep (0=uit | 1=minst gevoelig | ... | 9=meest gevoelig)"
},
"LockingMode": {
"text2": ["Allow buttons", "locking"],
"desc": "When soldering, long press on both buttons lock them (D=Disable | B=Boost only | F=Full locking)"
"text2": ["Allow locking", "buttons"],
"desc": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MinVolCell": {
"text2": ["Minimum", "voltage"],
@@ -183,15 +173,15 @@
},
"AnimLoop": {
"text2": ["Anim.", "loop"],
"desc": "Loop icon animations in root menu"
"desc": "Loop icon animations in main menu"
},
"AnimSpeed": {
"text2": ["Anim.", "speed"],
"desc": "Speed of icon animations in menu (O=off | L=low | M=medium | H=high)"
"desc": "Pace of icon animations in menu (O=off | T=slow | M=medium | S=fast)"
},
"PowerPulseWait": {
"text2": ["Power pulse", "wait time"],
"desc": "Time to wait before triggering every keep-awake pulse (x 2.5s)"
"text2": ["Power pulse", "delay"],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"text2": ["Power pulse", "duration"],
@@ -202,12 +192,16 @@
"desc": ""
},
"Brightness": {
"text2": ["Screen", "Brightness"],
"desc": "Adjust the contrast/brightness of the OLED screen"
"text2": ["Screen", "brightness"],
"desc": "Adjust the brightness of the OLED screen"
},
"ColourInversion": {
"text2": ["Screen", "Invert"],
"text2": ["Invert", "screen"],
"desc": "Invert the colours of the OLED screen"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,33 +2,24 @@
"languageCode": "NO",
"languageLocalName": "Norsk",
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Calibration done!",
"SettingsCalibrationWarning": "Sørg for at loddespissen har romtemperatur før du fortsetter!",
"SettingsResetWarning": "Er du sikker på at du vil tilbakestille til standardinnstillinger?",
"UVLOWarningString": "Lavspenn",
"UndervoltageString": "Underspenning",
"InputVoltageString": "Innspenn.: ",
"WarningTipTempString": "Spisstemp: ",
"BadTipString": "BAD TIP",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Dvale...",
"WarningSimpleString": "Varm",
"WarningAdvancedString": "VARM SPISS!",
"SleepingTipAdvancedString": "Spiss:",
"IdleTipString": "Spiss:",
"IdleSetString": "Set:",
"TipDisconnectedString": "SPISS FRAKOBLET",
"SolderingAdvancedPowerPrompt": "Effekt: ",
"OffString": "Av",
"YourGainMessage": "Your gain:"
"OffString": "Av"
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": ["Settings were", "reset!"],
"SettingsResetMessage": ["Certain settings", "were changed!"],
"NoAccelerometerMessage": ["No accelerometer", "detected!"],
"NoPowerDeliveryMessage": ["No USB-PD IC", "detected!"],
"LockingKeysString": " LOCKED",
"LockingKeysString": "LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!",
"WarningThermalRunaway": ["Thermal", "Runaway"]
@@ -38,9 +29,9 @@
"SettingLeftChar": "V",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "L",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "H",
"SettingFastChar": "F",
"SettingStartNoneChar": "I",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "D",
@@ -51,8 +42,7 @@
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F",
"SettingNAChar": "N/A"
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
@@ -142,40 +132,40 @@
"desc": "Hastigheten på rulletekst"
},
"QCMaxVoltage": {
"text2": ["Power", "Wattage"],
"desc": "Power Wattage of the power adapter used"
"text2": ["QC", "voltage"],
"desc": "Max QC voltage the iron should negotiate for"
},
"PDNegTimeout": {
"text2": ["PD", "timeout"],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers (0: disabled)"
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"PowerLimit": {
"text2": ["Power", "Limit"],
"desc": "Maximum power the iron can use (Watts)"
"text2": ["Power", "limit"],
"desc": "Maximum power the iron can use (W=watt)"
},
"ReverseButtonTempChange": {
"text2": ["Key +-", "reverse?"],
"desc": "Reverse the tip temperature change buttons plus minus assignment."
"text2": ["Swap", "+ - keys"],
"desc": "Reverse assignment of buttons for temperature adjustment"
},
"TempChangeShortStep": {
"text2": ["Temp change", "short?"],
"desc": "Temperature change steps on short button press!"
"text2": ["Temp change", "short"],
"desc": "Temperature-change-increment on short button press"
},
"TempChangeLongStep": {
"text2": ["Temp change", "long?"],
"desc": "Temperature change steps on long button press!"
"text2": ["Temp change", "long"],
"desc": "Temperature-change-increment on long button press"
},
"PowerPulsePower": {
"text2": ["Power", "Pulse W"],
"desc": "Keep awake pulse power intensity"
"text2": ["Power", "pulse"],
"desc": "Intensity of power of keep-awake-pulse (watt)"
},
"HallEffSensitivity": {
"text2": ["Hall Eff", "Sensitivity"],
"desc": "Sensitivity of the Hall effect sensor in detecting sleep (O=Off | L=Low | M=Medium | H=High)"
"text2": ["Hall sensor", "sensitivity"],
"desc": "Sensitivity of the Hall effect sensor to detect sleep (0=Inaktiv | 1=Minst følsom | ... | 9=Mest følsom)"
},
"LockingMode": {
"text2": ["Allow buttons", "locking"],
"desc": "When soldering, long press on both buttons lock them (D=Disable | B=Boost only | F=Full locking)"
"text2": ["Allow locking", "buttons"],
"desc": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MinVolCell": {
"text2": ["Minimum", "voltage"],
@@ -183,15 +173,15 @@
},
"AnimLoop": {
"text2": ["Anim.", "loop"],
"desc": "Loop icon animations in root menu"
"desc": "Loop icon animations in main menu"
},
"AnimSpeed": {
"text2": ["Anim.", "speed"],
"desc": "Speed of icon animations in menu (O=off | L=low | M=medium | H=high)"
"desc": "Pace of icon animations in menu (O=off | S=slow | M=medium | F=fast)"
},
"PowerPulseWait": {
"text2": ["Power pulse", "wait time"],
"desc": "Time to wait before triggering every keep-awake pulse (x 2.5s)"
"text2": ["Power pulse", "delay"],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"text2": ["Power pulse", "duration"],
@@ -202,12 +192,16 @@
"desc": ""
},
"Brightness": {
"text2": ["Screen", "Brightness"],
"desc": "Adjust the contrast/brightness of the OLED screen"
"text2": ["Screen", "brightness"],
"desc": "Adjust the brightness of the OLED screen"
},
"ColourInversion": {
"text2": ["Screen", "Invert"],
"text2": ["Invert", "screen"],
"desc": "Invert the colours of the OLED screen"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -4,25 +4,15 @@
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Kalibracja udana!",
"SettingsCalibrationWarning": "Przed kontynuowaniem upewnij się, że końcówka osiągnęła temperaturę pokojową!",
"SettingsResetWarning": "Czy na pewno chcesz przywrócić ustawienia fabryczne?",
"UVLOWarningString": "NIS. NAP",
"UndervoltageString": "Zbyt niskie nap.",
"InputVoltageString": "Nap. wej.:",
"WarningTipTempString": "Temp. grotu:",
"BadTipString": "ZŁY GROT",
"SleepingSimpleString": "Zzz!",
"SleepingAdvancedString": "Tr. uśpienia",
"WarningSimpleString": "HOT!",
"WarningAdvancedString": "GORĄCA KOŃCÓWKA!",
"SleepingTipAdvancedString": "Grot:",
"IdleTipString": "Grot:",
"IdleSetString": " Ust:",
"TipDisconnectedString": "GROT ODŁĄCZONY",
"SolderingAdvancedPowerPrompt": "Moc: ",
"OffString": "Wył",
"YourGainMessage": "Us.zysk:"
"OffString": "Wył"
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
@@ -52,8 +42,7 @@
"SettingSensitivityHigh": "W",
"SettingLockDisableChar": "W",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "P",
"SettingNAChar": "N/D"
"SettingLockFullChar": "P"
},
"menuGroups": {
"PowerMenu": {
@@ -172,7 +161,7 @@
},
"HallEffSensitivity": {
"text2": ["Czułość", "cz. Halla"],
"desc": "Czułość czujnika Halla, używanego do przechodznia w tryb uśpienia (O=Wył | N=Niska | Ś=Średnia | W=Wysoka)"
"desc": "Czułość czujnika Halla, używanego do przechodznia w tryb uśpienia (0: Wyłączona | 1: Minimalna | ... | 9: Maksymalna)"
},
"LockingMode": {
"text2": ["Blokada", "przycisków"],
@@ -188,7 +177,7 @@
},
"AnimSpeed": {
"text2": ["Prędkosć", "animacji"],
"desc": "Prędkość animacji ikon w menu (O: wył. | L: mała | M: średnia | H: duża)"
"desc": "Prędkość animacji ikon w menu (O: wył. | W: mała | M: średnia | S: duża)"
},
"PowerPulseWait": {
"text2": ["Czas między", "imp. mocy"],
@@ -209,6 +198,10 @@
"ColourInversion": {
"text2": ["Odwrócenie", "kolorów"],
"desc": "Odwrócenie kolorów wyświetlacza OLED"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,30 +2,21 @@
"languageCode": "PT",
"languageLocalName": "Português",
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Calibração terminada!",
"SettingsCalibrationWarning": "A ponta deve estar à temperatura ambiente antes de continuar!",
"SettingsResetWarning": "Definições de fábrica?",
"UVLOWarningString": "DC BAIXO",
"UndervoltageString": "Subtensão",
"InputVoltageString": "Tensão ",
"WarningTipTempString": "Temperatura ",
"BadTipString": "ER PONTA",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Repouso...",
"WarningSimpleString": "TEMP",
"WarningAdvancedString": "TEMP ELEVADA!",
"SleepingTipAdvancedString": "Ponta:",
"IdleTipString": "Ponta:",
"IdleSetString": " Aj:",
"TipDisconnectedString": "SEM PONTA",
"SolderingAdvancedPowerPrompt": "Power: ",
"OffString": "Off",
"YourGainMessage": "Your gain:"
"OffString": "Off"
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": ["Settings were", "reset!"],
"SettingsResetMessage": ["Certain settings", "were changed!"],
"NoAccelerometerMessage": ["No accelerometer", "detected!"],
"NoPowerDeliveryMessage": ["No USB-PD IC", "detected!"],
"LockingKeysString": "LOCKED",
@@ -38,9 +29,9 @@
"SettingLeftChar": "C",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "L",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "R",
"SettingFastChar": "F",
"SettingStartNoneChar": "D",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "H",
@@ -51,8 +42,7 @@
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F",
"SettingNAChar": "N/A"
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
@@ -150,7 +140,7 @@
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers (0: disabled)"
},
"PowerLimit": {
"text2": ["Power", "Limit"],
"text2": ["Power", "limit"],
"desc": "Maximum power the iron can use (Watts)"
},
"ReverseButtonTempChange": {
@@ -171,7 +161,7 @@
},
"HallEffSensitivity": {
"text2": ["Hall Eff", "Sensitivity"],
"desc": "Sensitivity of the Hall effect sensor in detecting sleep (O=Off | L=Low | M=Medium | H=High)"
"desc": "Sensitivity of the Hall effect sensor in detecting sleep (0=Desligado | 1=Menor | ... | 9=Maior)"
},
"LockingMode": {
"text2": ["Allow buttons", "locking"],
@@ -187,11 +177,11 @@
},
"AnimSpeed": {
"text2": ["Anim.", "speed"],
"desc": "Speed of icon animations in menu (O=off | L=low | M=medium | H=high)"
"desc": "Pace of icon animations in menu (O=off | S=slow | M=medium | F=fast)"
},
"PowerPulseWait": {
"text2": ["Power pulse", "wait time"],
"desc": "Time to wait before triggering every keep-awake pulse (x 2.5s)"
"text2": ["Power pulse", "delay"],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"text2": ["Power pulse", "duration"],
@@ -202,12 +192,16 @@
"desc": ""
},
"Brightness": {
"text2": ["Screen", "Brightness"],
"desc": "Adjust the contrast/brightness of the OLED screen"
"text2": ["Screen", "brightness"],
"desc": "Adjust the brightness of the OLED screen"
},
"ColourInversion": {
"text2": ["Screen", "Invert"],
"text2": ["Invert", "screen"],
"desc": "Invert the colours of the OLED screen"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -4,25 +4,15 @@
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": true,
"messages": {
"SettingsCalibrationDone": "Calibrare completa!",
"SettingsCalibrationWarning": "Vă rugăm să vă asigurati că vârful este la temperatura camerei, înainte de a continua!",
"SettingsResetWarning": "Sigur doriti să restaurati la setările implicite?",
"UVLOWarningString": "DC LOW",
"UndervoltageString": "Sub tensiune",
"InputVoltageString": "Intrare V: ",
"WarningTipTempString": "Temp. varf: ",
"BadTipString": "VARF DEFECT",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Adormit...",
"WarningSimpleString": "FIERBINTE!",
"WarningAdvancedString": "!!! VARF FIERBINTE !!!",
"SleepingTipAdvancedString": "Tip:",
"IdleTipString": "Tip:",
"IdleSetString": " Set:",
"TipDisconnectedString": "FĂRĂ VARF",
"SolderingAdvancedPowerPrompt": "Putere: ",
"OffString": "Nu",
"YourGainMessage": "Coeficient:"
"OffString": "Nu"
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
@@ -52,8 +42,7 @@
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F",
"SettingNAChar": "N/A"
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
@@ -88,11 +77,11 @@
},
"SleepTimeout": {
"text2": ["Expirare", "repaus"],
"desc": "Interval înainte de lansarea \"modului de repaus\" în (S=secunde | M=minute)"
"desc": "Interval înainte de lansarea \"modului de repaus\" în (s=secunde | m=minute)"
},
"ShutdownTimeout": {
"text2": ["Expirare", "oprire"],
"desc": "Interval înainte ca letconul să se oprească (M=minute)"
"desc": "Interval înainte ca letconul să se oprească (m=minute)"
},
"MotionSensitivity": {
"text2": ["Sensibilitate", "la mişcare"],
@@ -172,7 +161,7 @@
},
"HallEffSensitivity": {
"text2": ["Sensibilitate", "senzor Hall"],
"desc": "Sensibilitate senzor cu efect Hall pentru a detecta repausul (O=oprit | L=scăzut | M=mediu | H=înalt)"
"desc": "Sensibilitate senzor cu efect Hall pentru a detecta repausul (0=oprit | 1=putin sensibil | ... | 9=cel mai sensibil)"
},
"LockingMode": {
"text2": ["Blocare", "butoane"],
@@ -188,7 +177,7 @@
},
"AnimSpeed": {
"text2": ["Animatii", "viteză"],
"desc": "Ritmul animatiilor pictogramei din meniu (O=oprit | S=încet | M=mediu | F=rapid)"
"desc": "Ritmul animatiilor pictogramei din meniu (O=oprit | Î=încet | M=mediu | R=rapid)"
},
"PowerPulseWait": {
"text2": ["Întârziere", "puls putere"],
@@ -203,12 +192,16 @@
"desc": "Limba curenta"
},
"Brightness": {
"text2": ["Ecranului", "luminozitatea"],
"desc": "Ajusteaza luminozitatea ecranului"
"text2": ["Ecranului", "luminozitatea"],
"desc": "Ajusteaza luminozitatea ecranului"
},
"ColourInversion": {
"text2": ["Inverseaza", "culoarea"],
"desc": "Inverseaza culoarea ecranului"
"text2": ["Inverseaza", "culoarea"],
"desc": "Inverseaza culoarea ecranului"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,44 +2,35 @@
"languageCode": "RU",
"languageLocalName": "Русский",
"fonts": ["ascii_basic", "latin_extended", "cyrillic"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Калибровка завершена!",
"SettingsCalibrationWarning": "Прежде чем продолжить, пожалуйста, убедитесь, что жало имеет комнатную температуру!",
"SettingsResetWarning": "Вы уверены, что хотите сбросить настройки к значениям по умолчанию?",
"UVLOWarningString": "НАПРЯЖ--",
"UndervoltageString": "Низкое напряжение",
"UndervoltageString": "Низ. напряжение",
"InputVoltageString": "Питание В: ",
"WarningTipTempString": "Темп. жала: ",
"BadTipString": "ЖАЛО--",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Ожидание...",
"WarningSimpleString": "ГОРЯЧО!",
"WarningAdvancedString": "!!! ГОРЯЧЕЕ !!!\n!!! ЖАЛО !!!",
"SleepingTipAdvancedString": "Жало:",
"IdleTipString": "Жало:",
"IdleSetString": " ->",
"TipDisconnectedString": "ЖАЛО ОТСОЕДИНЕНО",
"SolderingAdvancedPowerPrompt": "Питание: ",
"OffString": "Выкл.",
"YourGainMessage": "Прирост:"
"OffString": "Вык"
},
"messagesWarn": {
"ResetOKMessage": "Сброс OK",
"SettingsResetMessage": ["Настройки", "сброшены!"],
"NoAccelerometerMessage": ["Не определен", "акселерометр!"],
"NoPowerDeliveryMessage": ["No USB-PD IC", "detected!"],
"LockingKeysString": "LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!",
"NoPowerDeliveryMessage": ["USB-PD питание", "не обнаружено"],
"LockingKeysString": "ЗАБЛОК",
"UnlockingKeysString": "РАЗБЛОК",
"WarningKeysLockedString": "!ЗАБЛОК!",
"WarningThermalRunaway": ["Thermal", "Runaway"]
},
"characters": {
"SettingRightChar": "П",
"SettingLeftChar": "Л",
"SettingAutoChar": "А",
"SettingOffChar": "O",
"SettingOffChar": "О",
"SettingSlowChar": "М",
"SettingMediumChar": "M",
"SettingMediumChar": "С",
"SettingFastChar": "Б",
"SettingStartNoneChar": "В",
"SettingStartSolderingChar": "П",
@@ -51,8 +42,7 @@
"SettingSensitivityHigh": "В",
"SettingLockDisableChar": "О",
"SettingLockBoostChar": "Т",
"SettingLockFullChar": "П",
"SettingNAChar": "Н/Д"
"SettingLockFullChar": "П"
},
"menuGroups": {
"PowerMenu": {
@@ -131,7 +121,7 @@
},
"VoltageCalibration": {
"text2": ["Калибровка", "напряжения"],
"desc": "Калибровка входного напряжения (длинное нажатие для выхода)"
"desc": "Калибровка входного напряжения (долгое нажатие для выхода)"
},
"AdvancedSoldering": {
"text2": ["Подробный", "экран пайки"],
@@ -142,8 +132,8 @@
"desc": "Скорость прокрутки текста (М=медленно | Б=быстро)"
},
"QCMaxVoltage": {
"text2": ["Мощность", "питания"],
"desc": "Мощность используемого источника питания"
"text2": ["Максимальный", "вольтаж для QC"],
"desc": "Максимальный поддерживаемый QC вольтаж используемого источника питания"
},
"PDNegTimeout": {
"text2": ["PD", "тайм-аут"],
@@ -170,8 +160,8 @@
"desc": "Сила импульса удерживающего от сна повербанк или другой источник питания"
},
"HallEffSensitivity": {
"text2": ["Эффект Холла", "чувствительность"],
"desc": "Уровень чувствительности датчика холла в режиме сна (О=Отключено | Н=Низкий | С=Средний | В=Высокий)"
"text2": ["Датчик", "Холла"],
"desc": "Уровень чувствительности датчика холла в режиме сна (0=Выкл. | 1=Мин. | ... | 9=Макс.)"
},
"LockingMode": {
"text2": ["Разрешить", "блок. кнопок"],
@@ -179,7 +169,7 @@
},
"MinVolCell": {
"text2": ["Мин.", "напр."],
"desc": "Минимальное разрешенное напряжение на ячейку (3S: 3 - 3,7V | 4-S: 2,4 - 3,7V)"
"desc": "Минимальное разрешенное напряжение на ячейку (3S: 3 - 3,7V | 4S-6S: 2,4 - 3,7V)"
},
"AnimLoop": {
"text2": ["Зацикленная", "анимация"],
@@ -199,7 +189,7 @@
},
"LanguageSwitch": {
"text2": ["Язык:", " RU Русский"],
"desc": ""
"desc": "Язык прошивки"
},
"Brightness": {
"text2": ["Яркость", "экрана"],
@@ -208,6 +198,10 @@
"ColourInversion": {
"text2": ["Инверт", "экрана"],
"desc": "Инвертировать цвета на OLED экране"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -1,336 +1,207 @@
{
"languageCode": "SK",
"languageLocalName": "Slovenčina",
"fonts": [
"ascii_basic",
"latin_extended"
],
"messages": {
"SettingsCalibrationWarning": "Najprv sa prosím uistite, že hrot má izbovú teplotu!",
"SettingsResetWarning": "Naozaj chcete obnoviť továrenské nastavenia?",
"UVLOWarningString": "Nízke U!",
"UndervoltageString": "Nízke napätie",
"InputVoltageString": "Vstupné U: ",
"SleepingSimpleString": "Chrr",
"SleepingAdvancedString": "Pokojový režim..",
"SleepingTipAdvancedString": "Hrot:",
"IdleTipString": "Hrot:",
"IdleSetString": "Cieľ:",
"TipDisconnectedString": "HROT ODPOJENÝ",
"SolderingAdvancedPowerPrompt": "Výkon: ",
"OffString": "Vyp"
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": [
"Nastavenia",
"resetované"
],
"NoAccelerometerMessage": [
"Bez pohybového",
"senzora!"
],
"NoPowerDeliveryMessage": [
"Chýba čip",
"USB-PD!"
],
"LockingKeysString": "ZABLOK.",
"UnlockingKeysString": "ODBLOK.",
"WarningKeysLockedString": "!ZABLOK!",
"WarningThermalRunaway": [
"Únik",
"Tepla"
]
},
"characters": {
"SettingRightChar": "P",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "Z",
"SettingSlowChar": "P",
"SettingMediumChar": "S",
"SettingFastChar": "R",
"SettingStartNoneChar": "V",
"SettingStartSolderingChar": "Z",
"SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "I",
"SettingSensitivityOff": "Z",
"SettingSensitivityLow": "N",
"SettingSensitivityMedium": "S",
"SettingSensitivityHigh": "V",
"SettingLockDisableChar": "Z",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "P",
"SettingNAChar": "N/A"
},
"menuGroups": {
"PowerMenu": {
"text2": [
"Nastavenie",
"výkonu"
],
"desc": "Nastavenie výkonu"
},
"SolderingMenu": {
"text2": [
"Nastavenie",
"spájkovania"
],
"desc": "Nastavenie spájkovania"
},
"PowerSavingMenu": {
"text2": [
"Úsporný",
"režim"
],
"desc": "Nastavenia režimov úspory energie"
},
"UIMenu": {
"text2": [
"Nastavenie",
"zobrazenia"
],
"desc": "Nastavenie zobrazenia"
},
"AdvancedMenu": {
"text2": [
"Pokročilé",
"nastavenia"
],
"desc": "Pokročilé nastavenia"
}
},
"menuOptions": {
"DCInCutoff": {
"text2": [
"Zdroj",
"napätia"
],
"desc": "Zdroj napätia. Nastavenie napätia pre vypnutie (cutoff) (DC=10V | nS=n*3.3V pre LiIon články)"
},
"SleepTemperature": {
"text2": [
"Pokojová",
"teplota"
],
"desc": "Pokojová teplota (v nastavených jednotkách)"
},
"SleepTimeout": {
"text2": [
"Pokojový",
"režim po"
],
"desc": "Pokojový režim po (S=sekundách | M=minútach)"
},
"ShutdownTimeout": {
"text2": [
"Vypnutie",
"po"
],
"desc": "Čas na vypnutie (minúty)"
},
"MotionSensitivity": {
"text2": [
"Citlivosť",
"pohybu"
],
"desc": "Citlivosť detekcie pohybu (0=Vyp | 1=Min | ... | 9=Max)"
},
"TemperatureUnit": {
"text2": [
"Jednotka",
"teploty"
],
"desc": "Jednotky merania teploty (C=stupne Celzia | F=stupne Fahrenheita)"
},
"AdvancedIdle": {
"text2": [
"Detaily v",
"pokoj. režime"
],
"desc": "Zobraziť detailné informácie v pokojovom režime (T=Zap | F=Vyp)"
},
"DisplayRotation": {
"text2": [
"Orientácia",
"displeja"
],
"desc": "Orientácia displeja (P=Pravák | L=Ľavák | A=Auto)"
},
"BoostTemperature": {
"text2": [
"Boost",
"teplota"
],
"desc": "Cieľová teplota pre prudký náhrev (v nastavených jednotkách)"
},
"AutoStart": {
"text2": [
"Automatické",
"spustenie"
],
"desc": "Pri štarte spustiť režim spájkovania (V=Vyp | Z=Spájkovanie | S=Spanok | I=Spanok izbová teplota)"
},
"CooldownBlink": {
"text2": [
"Blikanie pri",
"chladnutí"
],
"desc": "Blikanie ukazovateľa teploty počas chladnutia hrotu"
},
"TemperatureCalibration": {
"text2": [
"Kalibrácia",
"teploty"
],
"desc": "Kalibrácia posunu teploty hrotu"
},
"SettingsReset": {
"text2": [
"Obnovenie",
"nastavení"
],
"desc": "Obnovenie nastavení na pôvodné hodnoty"
},
"VoltageCalibration": {
"text2": [
"Kalibrácia",
"nap. napätia"
],
"desc": "Kalibrácia napájacieho napätia. Krátke stlačenie mení nastavenie, dlhé stlačenie pre návrat"
},
"AdvancedSoldering": {
"text2": [
"Detaily počas",
"spájkovania"
],
"desc": "Zobrazenie detailov počas spájkovania"
},
"ScrollingSpeed": {
"text2": [
"Rýchlosť",
"skrolovania"
],
"desc": "Rýchlosť pohybu tohto textu"
},
"QCMaxVoltage": {
"text2": [
"Obmedzenie QC",
"napätia"
],
"desc": "Maximálne QC napätie ktoré si má systém vyžiadať"
},
"PDNegTimeout": {
"text2": [
"Čas vypršania",
"Power Delivery"
],
"desc": "Čas vyjednávania Power Delivery v 100ms krokoch pre kompatibilitu s niektorými QC nabíjačkami (0: vypnuté)"
},
"PowerLimit": {
"text2": [
"Obmedzenie",
"výkonu"
],
"desc": "Obmedzenie výkonu podľa použitého zdroja (watt)"
},
"ReverseButtonTempChange": {
"text2": [
"Otočenie",
"tlačidiel +/-"
],
"desc": "Prehodenie tlačidiel na nastavovanie teploty"
},
"TempChangeShortStep": {
"text2": [
"Malý krok",
"teploty"
],
"desc": "Zmena teploty pri krátkom stlačení tlačidla"
},
"TempChangeLongStep": {
"text2": [
"Veľký krok",
"teploty"
],
"desc": "Zmena teploty pri držaní tlačidla"
},
"PowerPulsePower": {
"text2": [
"Intenzita",
"impulzu"
],
"desc": "Impulz udržujúci napájací zdroj zapnutý (power banky) (watt)"
},
"HallEffSensitivity": {
"text2": [
"Citliv.",
"Hall"
],
"desc": "Citlivosť Hallovho senzora pre detekciu spánku (Z=Zakázať | N=Nízka | S=Stredná | V=Vysoká)"
},
"LockingMode": {
"text2": [
"Povoliť zámok",
"tlačidiel"
],
"desc": "Zamknutie tlačidiel - dlhé stlačenie oboch naraz počas spájkovania (Z=Zakázať | B=Okrem boost | P=Plné zamknutie)"
},
"MinVolCell": {
"text2": [
"Minimálne",
"napätie"
],
"desc": "Minimálne napätie povolené na jeden článok (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"AnimLoop": {
"text2": [
"Opakovanie",
"animácií"
],
"desc": "Opakovanie animácií ikoniek v hlavnom menu"
},
"AnimSpeed": {
"text2": [
"Rýchlosť",
"animácií"
],
"desc": "Rýchlosť animácií ikoniek v menu (O=off | P=pomaly | S=stredne | R=rýchlo)"
},
"PowerPulseWait": {
"text2": [
"Interval",
"impulzu"
],
"desc": "Interval medzi impulzami udržujúcimi napájací zdroj zapnutý (x 2.5s)"
},
"PowerPulseDuration": {
"text2": [
"Dĺžka impulzu",
""
],
"desc": "Dĺžka impulzu udržujúci napájací zdroj zapnutý (x 250ms)"
},
"LanguageSwitch": {
"text2": [
"Jazyk:",
" SK Slovenčina"
],
"desc": "Aktuálny jazyk"
},
"Brightness": {
"text2": [
"Jas",
"obrazovky"
],
"desc": "Mení jas/kontrast OLED displeja"
},
"ColourInversion": {
"text2": [
"Invertovať",
"obrazovku"
],
"desc": "Invertovať farby OLED displeja"
}
}
"languageCode": "SK",
"languageLocalName": "Slovenčina",
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Najprv sa prosím uistite, že hrot má izbovú teplotu!",
"SettingsResetWarning": "Naozaj chcete obnoviť továrenské nastavenia?",
"UVLOWarningString": "Nízke U!",
"UndervoltageString": "Nízke napätie",
"InputVoltageString": "Vstupné U: ",
"SleepingSimpleString": "Chrr",
"SleepingAdvancedString": "Pokojový režim..",
"SleepingTipAdvancedString": "Hrot:",
"OffString": "Vyp"
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": ["Nastavenia", "resetované"],
"NoAccelerometerMessage": ["Bez pohybového", "senzora!"],
"NoPowerDeliveryMessage": ["Chýba čip", "USB-PD!"],
"LockingKeysString": "ZABLOK.",
"UnlockingKeysString": "ODBLOK.",
"WarningKeysLockedString": "!ZABLOK!",
"WarningThermalRunaway": ["Únik", "Tepla"]
},
"characters": {
"SettingRightChar": "P",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "Z",
"SettingSlowChar": "P",
"SettingMediumChar": "S",
"SettingFastChar": "R",
"SettingStartNoneChar": "V",
"SettingStartSolderingChar": "Z",
"SettingStartSleepChar": "S",
"SettingStartSleepOffChar": "I",
"SettingSensitivityOff": "Z",
"SettingSensitivityLow": "N",
"SettingSensitivityMedium": "S",
"SettingSensitivityHigh": "V",
"SettingLockDisableChar": "Z",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "P"
},
"menuGroups": {
"PowerMenu": {
"text2": ["Nastavenie", "výkonu"],
"desc": "Nastavenie výkonu"
},
"SolderingMenu": {
"text2": ["Nastavenie", "spájkovania"],
"desc": "Nastavenie spájkovania"
},
"PowerSavingMenu": {
"text2": ["Úsporný", "režim"],
"desc": "Nastavenia režimov úspory energie"
},
"UIMenu": {
"text2": ["Nastavenie", "zobrazenia"],
"desc": "Nastavenie zobrazenia"
},
"AdvancedMenu": {
"text2": ["Pokročilé", "nastavenia"],
"desc": "Pokročilé nastavenia"
}
},
"menuOptions": {
"DCInCutoff": {
"text2": ["Zdroj", "napätia"],
"desc": "Zdroj napätia. Nastavenie napätia pre vypnutie (cutoff) (DC=10V | nS=n*3.3V pre LiIon články)"
},
"SleepTemperature": {
"text2": ["Pokojová", "teplota"],
"desc": "Pokojová teplota (v nastavených jednotkách)"
},
"SleepTimeout": {
"text2": ["Pokojový", "režim po"],
"desc": "Pokojový režim po (s=sekundách | m=minútach)"
},
"ShutdownTimeout": {
"text2": ["Vypnutie", "po"],
"desc": "Čas na vypnutie (minúty)"
},
"MotionSensitivity": {
"text2": ["Citlivosť", "pohybu"],
"desc": "Citlivosť detekcie pohybu (0=Vyp | 1=Min | ... | 9=Max)"
},
"TemperatureUnit": {
"text2": ["Jednotka", "teploty"],
"desc": "Jednotky merania teploty (C=stupne Celzia | F=stupne Fahrenheita)"
},
"AdvancedIdle": {
"text2": ["Detaily v", "pokoj. režime"],
"desc": "Zobraziť detailné informácie v pokojovom režime (T=Zap | F=Vyp)"
},
"DisplayRotation": {
"text2": ["Orientácia", "displeja"],
"desc": "Orientácia displeja (P=Pravák | L=Ľavák | A=Auto)"
},
"BoostTemperature": {
"text2": ["Boost", "teplota"],
"desc": "Cieľová teplota pre prudký náhrev (v nastavených jednotkách)"
},
"AutoStart": {
"text2": ["Automatické", "spustenie"],
"desc": "Pri štarte spustiť režim spájkovania (V=Vyp | Z=Spájkovanie | S=Spanok | I=Spanok izbová teplota)"
},
"CooldownBlink": {
"text2": ["Blikanie pri", "chladnutí"],
"desc": "Blikanie ukazovateľa teploty počas chladnutia hrotu"
},
"TemperatureCalibration": {
"text2": ["Kalibrácia", "teploty"],
"desc": "Kalibrácia posunu teploty hrotu"
},
"SettingsReset": {
"text2": ["Obnovenie", "nastavení"],
"desc": "Obnovenie nastavení na pôvodné hodnoty"
},
"VoltageCalibration": {
"text2": ["Kalibrácia", "nap. napätia"],
"desc": "Kalibrácia napájacieho napätia. Krátke stlačenie mení nastavenie, dlhé stlačenie pre návrat"
},
"AdvancedSoldering": {
"text2": ["Detaily počas", "spájkovania"],
"desc": "Zobrazenie detailov počas spájkovania"
},
"ScrollingSpeed": {
"text2": ["Rýchlosť", "skrolovania"],
"desc": "Rýchlosť pohybu tohto textu"
},
"QCMaxVoltage": {
"text2": ["Obmedzenie QC", "napätia"],
"desc": "Maximálne QC napätie ktoré si má systém vyžiadať"
},
"PDNegTimeout": {
"text2": ["Čas vypršania", "Power Delivery"],
"desc": "Čas vyjednávania Power Delivery v 100ms krokoch pre kompatibilitu s niektorými QC nabíjačkami (0: vypnuté)"
},
"PowerLimit": {
"text2": ["Obmedzenie", "výkonu"],
"desc": "Obmedzenie výkonu podľa použitého zdroja (watt)"
},
"ReverseButtonTempChange": {
"text2": ["Otočenie", "tlačidiel +/-"],
"desc": "Prehodenie tlačidiel na nastavovanie teploty"
},
"TempChangeShortStep": {
"text2": ["Malý krok", "teploty"],
"desc": "Zmena teploty pri krátkom stlačení tlačidla"
},
"TempChangeLongStep": {
"text2": ["Veľký krok", "teploty"],
"desc": "Zmena teploty pri držaní tlačidla"
},
"PowerPulsePower": {
"text2": ["Intenzita", "impulzu"],
"desc": "Impulz udržujúci napájací zdroj zapnutý (power banky) (watt)"
},
"HallEffSensitivity": {
"text2": ["Citliv.", "Hall"],
"desc": "Citlivosť Hallovho senzora pre detekciu spánku (0=Vyp | 1=Min | ... | 9=Max)"
},
"LockingMode": {
"text2": ["Povoliť zámok", "tlačidiel"],
"desc": "Zamknutie tlačidiel - dlhé stlačenie oboch naraz počas spájkovania (Z=Zakázať | B=Okrem boost | P=Plné zamknutie)"
},
"MinVolCell": {
"text2": ["Minimálne", "napätie"],
"desc": "Minimálne napätie povolené na jeden článok (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"AnimLoop": {
"text2": ["Opakovanie", "animácií"],
"desc": "Opakovanie animácií ikoniek v hlavnom menu"
},
"AnimSpeed": {
"text2": ["Rýchlosť", "animácií"],
"desc": "Rýchlosť animácií ikoniek v menu (O=off | P=pomaly | S=stredne | R=rýchlo)"
},
"PowerPulseWait": {
"text2": ["Interval", "impulzu"],
"desc": "Interval medzi impulzami udržujúcimi napájací zdroj zapnutý (x 2.5s)"
},
"PowerPulseDuration": {
"text2": ["Dĺžka impulzu", ""],
"desc": "Dĺžka impulzu udržujúci napájací zdroj zapnutý (x 250ms)"
},
"LanguageSwitch": {
"text2": ["Jazyk:", " SK Slovenčina"],
"desc": "Aktuálny jazyk"
},
"Brightness": {
"text2": ["Jas", "obrazovky"],
"desc": "Mení jas/kontrast OLED displeja"
},
"ColourInversion": {
"text2": ["Invertovať", "obrazovku"],
"desc": "Invertovať farby OLED displeja"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,26 +2,17 @@
"languageCode": "SL",
"languageLocalName": "Slovenščina",
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Kalibracija opravljena!",
"SettingsCalibrationWarning": "Pred nadaljevanjem mora biti konica segreta na sobno temperaturo!",
"SettingsResetWarning": "Res želite ponastaviti na privzete nastavitve?",
"UVLOWarningString": "NIZKA U",
"UndervoltageString": "Nizka napetost",
"InputVoltageString": "Vhodna U: ",
"WarningTipTempString": "Temp. kon.: ",
"BadTipString": "KONICA?",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Spim...",
"WarningSimpleString": "VROČ",
"WarningAdvancedString": "!!VROČA KONICA!!",
"SleepingTipAdvancedString": "Konica",
"IdleTipString": "Kon:",
"IdleSetString": " temp:",
"TipDisconnectedString": "NI KONICE",
"SolderingAdvancedPowerPrompt": "Moč: ",
"OffString": "Off",
"YourGainMessage": "Ojačenje"
"OffString": "Off"
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
@@ -51,8 +42,7 @@
"SettingSensitivityHigh": "V",
"SettingLockDisableChar": "O",
"SettingLockBoostChar": "L",
"SettingLockFullChar": "P",
"SettingNAChar": "N/A"
"SettingLockFullChar": "P"
},
"menuGroups": {
"PowerMenu": {
@@ -87,11 +77,11 @@
},
"SleepTimeout": {
"text2": ["Čas do", "spanja"],
"desc": "Čas pred spanjem (S=sekunde | M=minute)"
"desc": "Čas pred spanjem (s=sekunde | m=minute)"
},
"ShutdownTimeout": {
"text2": ["Čas do", "izklopa"],
"desc": "Čas do izklopa (M=minute)"
"desc": "Čas do izklopa (m=minute)"
},
"MotionSensitivity": {
"text2": ["Občutljivost", "premikanja"],
@@ -171,7 +161,7 @@
},
"HallEffSensitivity": {
"text2": ["Občut.", "Hall son"],
"desc": "Občutljivost Hallove sonde za zaznavanje spanja (U=ugasnjen | N=nizka | S=srednja | V=visoka)"
"desc": "Občutljivost Hallove sonde za zaznavanje spanja (0=izklopljeno | 1=najmanjša | ... | 9=največja)"
},
"LockingMode": {
"text2": ["Omogoči", "zaklep gumbov"],
@@ -183,15 +173,15 @@
},
"AnimLoop": {
"text2": ["Anim.", "loop"],
"desc": "Loop icon animations in root menu"
"desc": "Loop icon animations in main menu"
},
"AnimSpeed": {
"text2": ["Anim.", "speed"],
"desc": "Speed of icon animations in menu (O=off | L=low | M=medium | H=high)"
"desc": "Pace of icon animations in menu (O=off | P=slow | M=medium | H=fast)"
},
"PowerPulseWait": {
"text2": ["Power pulse", "wait time"],
"desc": "Time to wait before triggering every keep-awake pulse (x 2.5s)"
"text2": ["Power pulse", "delay"],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"text2": ["Power pulse", "duration"],
@@ -202,12 +192,16 @@
"desc": ""
},
"Brightness": {
"text2": ["Screen", "Brightness"],
"desc": "Adjust the contrast/brightness of the OLED screen"
"text2": ["Screen", "brightness"],
"desc": "Adjust the brightness of the OLED screen"
},
"ColourInversion": {
"text2": ["Screen", "Invert"],
"text2": ["Invert", "screen"],
"desc": "Invert the colours of the OLED screen"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,30 +2,21 @@
"languageCode": "SR_CYRL",
"languageLocalName": "Српски",
"fonts": ["ascii_basic", "cyrillic"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Калибрација готова",
"SettingsCalibrationWarning": "Проверите да ли је врх охлађен на собну температуру пре него што наставите",
"SettingsResetWarning": "Да ли заиста желите да вратите поставке на фабричке вредности?",
"UVLOWarningString": "НИЗ.НАП.",
"UndervoltageString": "ПРЕНИЗАК НАПОН",
"InputVoltageString": "Ул. напон: ",
"WarningTipTempString": "Темп. врха: ",
"BadTipString": "ЛОШ ВРХ",
"SleepingSimpleString": "Сан",
"SleepingAdvancedString": "Спавање...",
"WarningSimpleString": "ВРУЋ",
"WarningAdvancedString": "! ОПРЕЗ, ВРУЋЕ !",
"SleepingTipAdvancedString": "Врх:",
"IdleTipString": "Врх:",
"IdleSetString": " / ",
"TipDisconnectedString": "ВРХ НИЈЕ СПОЈЕН",
"SolderingAdvancedPowerPrompt": "Снага: ",
"OffString": "Иск",
"YourGainMessage": "Your gain:"
"OffString": "Иск"
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": ["Settings were", "reset!"],
"SettingsResetMessage": ["Certain settings", "were changed!"],
"NoAccelerometerMessage": ["No accelerometer", "detected!"],
"NoPowerDeliveryMessage": ["No USB-PD IC", "detected!"],
"LockingKeysString": "LOCKED",
@@ -51,8 +42,7 @@
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F",
"SettingNAChar": "N/A"
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
@@ -87,11 +77,11 @@
},
"SleepTimeout": {
"text2": ["Време до", "спавања"],
"desc": "Време мировања након кога лемилица спушта температуру. (M=минути | S=секунде)"
"desc": "Време мировања након кога лемилица спушта температуру. (m=минути | s=секунде)"
},
"ShutdownTimeout": {
"text2": ["Време до", "гашења"],
"desc": "Време мировања након кога се лемилица гаси. (M=минути)"
"desc": "Време мировања након кога се лемилица гаси. (m=минути)"
},
"MotionSensitivity": {
"text2": ["Осетљивост", "на покрет"],
@@ -147,35 +137,35 @@
},
"PDNegTimeout": {
"text2": ["PD", "timeout"],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers (0: disabled)"
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"PowerLimit": {
"text2": ["Power", "Limit"],
"desc": "Maximum power the iron can use (Watts)"
"text2": ["Power", "limit"],
"desc": "Maximum power the iron can use (W=watt)"
},
"ReverseButtonTempChange": {
"text2": ["Key +-", "reverse?"],
"desc": "Reverse the tip temperature change buttons plus minus assignment."
"text2": ["Swap", "+ - keys"],
"desc": "Reverse assignment of buttons for temperature adjustment"
},
"TempChangeShortStep": {
"text2": ["Temp change", "short?"],
"desc": "Temperature change steps on short button press!"
"text2": ["Temp change", "short"],
"desc": "Temperature-change-increment on short button press"
},
"TempChangeLongStep": {
"text2": ["Temp change", "long?"],
"desc": "Temperature change steps on long button press!"
"text2": ["Temp change", "long"],
"desc": "Temperature-change-increment on long button press"
},
"PowerPulsePower": {
"text2": ["Power", "Pulse W"],
"desc": "Keep awake pulse power intensity"
"text2": ["Power", "pulse"],
"desc": "Intensity of power of keep-awake-pulse (watt)"
},
"HallEffSensitivity": {
"text2": ["Hall Eff", "Sensitivity"],
"desc": "Sensitivity of the Hall effect sensor in detecting sleep (O=Off | L=Low | M=Medium | H=High)"
"text2": ["Hall sensor", "sensitivity"],
"desc": "Sensitivity of the Hall effect sensor to detect sleep (0=искључено | 1=најмање осетљиво | ... | 9=најосетљивије)"
},
"LockingMode": {
"text2": ["Allow buttons", "locking"],
"desc": "When soldering, long press on both buttons lock them (D=Disable | B=Boost only | F=Full locking)"
"text2": ["Allow locking", "buttons"],
"desc": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MinVolCell": {
"text2": ["Minimum", "voltage"],
@@ -183,15 +173,15 @@
},
"AnimLoop": {
"text2": ["Anim.", "loop"],
"desc": "Loop icon animations in root menu"
"desc": "Loop icon animations in main menu"
},
"AnimSpeed": {
"text2": ["Anim.", "speed"],
"desc": "Speed of icon animations in menu (O=off | L=low | M=medium | H=high)"
"desc": "Pace of icon animations in menu (O=off | С=slow | M=medium | Б=fast)"
},
"PowerPulseWait": {
"text2": ["Power pulse", "wait time"],
"desc": "Time to wait before triggering every keep-awake pulse (x 2.5с)"
"text2": ["Power pulse", "delay"],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5с)"
},
"PowerPulseDuration": {
"text2": ["Power pulse", "duration"],
@@ -202,12 +192,16 @@
"desc": ""
},
"Brightness": {
"text2": ["Screen", "Brightness"],
"desc": "Adjust the contrast/brightness of the OLED screen"
"text2": ["Screen", "brightness"],
"desc": "Adjust the brightness of the OLED screen"
},
"ColourInversion": {
"text2": ["Screen", "Invert"],
"text2": ["Invert", "screen"],
"desc": "Invert the colours of the OLED screen"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,30 +2,21 @@
"languageCode": "SR_LATN",
"languageLocalName": "Srpski",
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Kalibracija gotova",
"SettingsCalibrationWarning": "Proverite da li je vrh ohlađen na sobnu temperaturu pre nego što nastavite",
"SettingsResetWarning": "Da li zaista želite da vratite postavke na fabričke vrednosti?",
"UVLOWarningString": "NIZ.NAP.",
"UndervoltageString": "PRENIZAK NAPON",
"InputVoltageString": "Ul. napon: ",
"WarningTipTempString": "Temp. vrha: ",
"BadTipString": "LOŠ VRH",
"SleepingSimpleString": "Zzz",
"SleepingAdvancedString": "Spavanje...",
"WarningSimpleString": "VRUĆ",
"WarningAdvancedString": "! OPREZ, VRUĆE !",
"SleepingTipAdvancedString": "Vrh:",
"IdleTipString": "Vrh:",
"IdleSetString": " / ",
"TipDisconnectedString": "VRH NIJE SPOJEN",
"SolderingAdvancedPowerPrompt": "Snaga: ",
"OffString": "Isk",
"YourGainMessage": "Your gain:"
"OffString": "Isk"
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": ["Settings were", "reset!"],
"SettingsResetMessage": ["Certain settings", "were changed!"],
"NoAccelerometerMessage": ["No accelerometer", "detected!"],
"NoPowerDeliveryMessage": ["No USB-PD IC", "detected!"],
"LockingKeysString": "LOCKED",
@@ -51,8 +42,7 @@
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F",
"SettingNAChar": "N/A"
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
@@ -87,11 +77,11 @@
},
"SleepTimeout": {
"text2": ["Vreme do", "spavanja"],
"desc": "Vreme mirovanja nakon koga lemilica spušta temperaturu. (M=minuti | S=sekunde)"
"desc": "Vreme mirovanja nakon koga lemilica spušta temperaturu. (m=minuti | s=sekunde)"
},
"ShutdownTimeout": {
"text2": ["Vreme do", "gašenja"],
"desc": "Vreme mirovanja nakon koga se lemilica gasi. (M=minuti)"
"desc": "Vreme mirovanja nakon koga se lemilica gasi. (m=minuti)"
},
"MotionSensitivity": {
"text2": ["Osetljivost", "na pokret"],
@@ -147,35 +137,35 @@
},
"PDNegTimeout": {
"text2": ["PD", "timeout"],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers (0: disabled)"
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"PowerLimit": {
"text2": ["Power", "Limit"],
"desc": "Maximum power the iron can use (Watts)"
"text2": ["Power", "limit"],
"desc": "Maximum power the iron can use (W=watt)"
},
"ReverseButtonTempChange": {
"text2": ["Key +-", "reverse?"],
"desc": "Reverse the tip temperature change buttons plus minus assignment."
"text2": ["Swap", "+ - keys"],
"desc": "Reverse assignment of buttons for temperature adjustment"
},
"TempChangeShortStep": {
"text2": ["Temp change", "short?"],
"desc": "Temperature change steps on short button press!"
"text2": ["Temp change", "short"],
"desc": "Temperature-change-increment on short button press"
},
"TempChangeLongStep": {
"text2": ["Temp change", "long?"],
"desc": "Temperature change steps on long button press!"
"text2": ["Temp change", "long"],
"desc": "Temperature-change-increment on long button press"
},
"PowerPulsePower": {
"text2": ["Power", "Pulse W"],
"desc": "Keep awake pulse power intensity"
"text2": ["Power", "pulse"],
"desc": "Intensity of power of keep-awake-pulse (watt)"
},
"HallEffSensitivity": {
"text2": ["Hall Eff", "Sensitivity"],
"desc": "Sensitivity of the Hall effect sensor in detecting sleep (O=Off | L=Low | M=Medium | H=High)"
"text2": ["Hall sensor", "sensitivity"],
"desc": "Sensitivity of the Hall effect sensor to detect sleep (0=isključeno | 1=najmanje osetljivo | ... | 9=najosetljivije)"
},
"LockingMode": {
"text2": ["Allow buttons", "locking"],
"desc": "When soldering, long press on both buttons lock them (D=Disable | B=Boost only | F=Full locking)"
"text2": ["Allow locking", "buttons"],
"desc": "While soldering, hold down both buttons to toggle locking them (D=disable | B=boost mode only | F=full locking)"
},
"MinVolCell": {
"text2": ["Minimum", "voltage"],
@@ -183,15 +173,15 @@
},
"AnimLoop": {
"text2": ["Anim.", "loop"],
"desc": "Loop icon animations in root menu"
"desc": "Loop icon animations in main menu"
},
"AnimSpeed": {
"text2": ["Anim.", "speed"],
"desc": "Speed of icon animations in menu (O=off | L=low | M=medium | H=high)"
"desc": "Pace of icon animations in menu (O=off | S=slow | M=medium | B=fast)"
},
"PowerPulseWait": {
"text2": ["Power pulse", "wait time"],
"desc": "Time to wait before triggering every keep-awake pulse (x 2.5s)"
"text2": ["Power pulse", "delay"],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"text2": ["Power pulse", "duration"],
@@ -202,12 +192,16 @@
"desc": ""
},
"Brightness": {
"text2": ["Screen", "Brightness"],
"desc": "Adjust the contrast/brightness of the OLED screen"
"text2": ["Screen", "brightness"],
"desc": "Adjust the brightness of the OLED screen"
},
"ColourInversion": {
"text2": ["Screen", "Invert"],
"text2": ["Invert", "screen"],
"desc": "Invert the colours of the OLED screen"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,6 +2,7 @@
"languageCode": "SV",
"languageLocalName": "Svenska",
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Se till att spetsen är rumstemererad innan du fortsätter!",
"SettingsResetWarning": "Är du säker på att du vill återställa inställningarna?",
@@ -11,10 +12,6 @@
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Viloläge...",
"SleepingTipAdvancedString": "Spets:",
"IdleTipString": "Spts:",
"IdleSetString": " Ang:",
"TipDisconnectedString": "SPETS URTAGEN",
"SolderingAdvancedPowerPrompt": "Ström: ",
"OffString": "Av"
},
"messagesWarn": {
@@ -45,8 +42,7 @@
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "A",
"SettingLockBoostChar": "T",
"SettingLockFullChar": "F",
"SettingNAChar": "N/A"
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
@@ -81,7 +77,7 @@
},
"SleepTimeout": {
"text2": ["Vilo-", "timeout"],
"desc": "Vilo-timeout (M=Minuter | S=Sekunder)"
"desc": "Vilo-timeout (m=Minuter | s=Sekunder)"
},
"ShutdownTimeout": {
"text2": ["Avstängn.", "timeout"],
@@ -165,7 +161,7 @@
},
"HallEffSensitivity": {
"text2": ["Sensor-", "känslght"],
"desc": "Känslighet för halleffekt-sensorn för viloläges-detektering (A=Av | L=Låg | M=Medium | H=Hög)"
"desc": "Känslighet för halleffekt-sensorn för viloläges-detektering (0=Av | 1=minst känslig | ... | 9=mest känslig)"
},
"LockingMode": {
"text2": ["Tillåt lås", "via knappar"],
@@ -184,8 +180,8 @@
"desc": "Animationshastighet för ikoner i menyer (A=av | L=långsam | M=medel | S=snabb)"
},
"PowerPulseWait": {
"text2": ["Power pulse", "wait time"],
"desc": "Time to wait before triggering every keep-awake pulse (x 2.5s)"
"text2": ["Power pulse", "delay"],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"text2": ["Power pulse", "duration"],
@@ -196,12 +192,16 @@
"desc": ""
},
"Brightness": {
"text2": ["Screen", "Brightness"],
"desc": "Adjust the contrast/brightness of the OLED screen"
"text2": ["Screen", "brightness"],
"desc": "Adjust the brightness of the OLED screen"
},
"ColourInversion": {
"text2": ["Screen", "Invert"],
"text2": ["Invert", "screen"],
"desc": "Invert the colours of the OLED screen"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,26 +2,17 @@
"languageCode": "TR",
"languageLocalName": "Türkçe",
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Kalibrasyon tamamlandı!",
"SettingsCalibrationWarning": "Lütfen devam etmeden önce ucun oda sıcaklığında olduğunu garantiye alın!",
"SettingsResetWarning": "Ayarları varsayılan değerlere sıfırlamak istediğinizden emin misiniz?",
"UVLOWarningString": "Güç Az",
"UndervoltageString": "Düşük Voltaj",
"InputVoltageString": "Giriş V: ",
"WarningTipTempString": "Uç Sıcaklığı: ",
"BadTipString": "KÖTÜ UÇ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Bekleme Modu ...",
"WarningSimpleString": "SICAK!",
"WarningAdvancedString": "UYARI! UÇ SICAK!",
"SleepingTipAdvancedString": "Uç:",
"IdleTipString": "Uç:",
"IdleSetString": " Ayarla:",
"TipDisconnectedString": "UÇ ÇIKARILDI",
"SolderingAdvancedPowerPrompt": "Güç: ",
"OffString": "Kapalı",
"YourGainMessage": "Kazancınız:"
"OffString": "Kapalı"
},
"messagesWarn": {
"ResetOKMessage": ["Sıfırlama Tamam", ""],
@@ -36,23 +27,22 @@
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingAutoChar": "O",
"SettingOffChar": "K",
"SettingSlowChar": "Y",
"SettingMediumChar": "O",
"SettingFastChar": "H",
"SettingStartNoneChar": "K",
"SettingStartSolderingChar": "L",
"SettingStartSleepChar": "U",
"SettingStartSleepOffChar": "O",
"SettingSensitivityOff": "O",
"SettingStartSleepOffChar": "S",
"SettingSensitivityOff": "K",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M",
"SettingSensitivityMedium": "O",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockDisableChar": "K",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F",
"SettingNAChar": "N/A"
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
@@ -107,11 +97,7 @@
},
"DisplayRotation": {
"text2": ["GRNYÖN", ""],
"desc": "Görüntü Yönlendirme (R=Sağlak | L=Solak | A=Otomatik)"
},
"BoostEnabled": {
"text2": ["YÜKPER", ""],
"desc": "Lehimleme yaparken ön tuşa basmak anlık sıcaklık yükselişi sağlar. (450C)"
"desc": "Görüntü Yönlendirme (R=Sağlak | L=Solak | O=Otomatik)"
},
"BoostTemperature": {
"text2": ["YKSC", ""],
@@ -119,7 +105,7 @@
},
"AutoStart": {
"text2": ["OTOBAŞ", ""],
"desc": "Güç verildiğinde otomatik olarak lehimleme modunda başlat. (K=Kapalı | L=Lehimleme Modu | U=Uyku Modu | O=Uyku Modu Oda Sıcaklığı)"
"desc": "Güç verildiğinde otomatik olarak lehimleme modunda başlat. (K=Kapalı | L=Lehimleme Modu | U=Uyku Modu | S=Uyku Modu Oda Sıcaklığı)"
},
"CooldownBlink": {
"text2": ["SĞGÖST", ""],
@@ -143,51 +129,43 @@
},
"ScrollingSpeed": {
"text2": ["YZKYHZ", ""],
"desc": "Bu yazının kayma hızı (S=Yavaş | F=Hızlı)"
"desc": "Bu yazının kayma hızı (Y=Yavaş | H=Hızlı)"
},
"QCMaxVoltage": {
"text2": ["QC", "Voltage"],
"desc": "Desired max QC Voltage negotiated for"
"text2": ["QC", "voltage"],
"desc": "Max QC voltage the iron should negotiate for"
},
"PDNegTimeout": {
"text2": ["PD", "timeout"],
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers (0: disabled)"
},
"PowerInput": {
"text2": ["Güç", "Miktarı(W)"],
"desc": "Kullanılan adaptörün watt biriminden güç miktarı"
},
"PowerLimitEnable": {
"text2": ["P Limit", "Enable"],
"desc": "Güç sınırlamayı aç"
"desc": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"PowerLimit": {
"text2": ["Power", "Limit"],
"text2": ["Power", "limit"],
"desc": "Havyanın kullanacağı en yüksek güç (Watts)"
},
"ReverseButtonTempChange": {
"text2": ["Key +-", "reverse?"],
"text2": ["Swap", "+ - keys"],
"desc": "\"Düğme Yerleri Rotasyonu\" Sıcaklık ayar düğmelerinin yerini değiştirin"
},
"TempChangeShortStep": {
"text2": ["Temp change", "short?"],
"text2": ["Temp change", "short"],
"desc": "Kısa basışlardaki sıcaklık derecesi atlama oranı"
},
"TempChangeLongStep": {
"text2": ["Temp change", "long?"],
"text2": ["Temp change", "long"],
"desc": "Uzun başışlardaki sıcaklık derecesi atlama oranı"
},
"PowerPulsePower": {
"text2": ["Power", "Pulse W"],
"text2": ["Power", "pulse"],
"desc": "Güç girişi voltajı ölçüm yoğunluğunu sık tut."
},
"HallEffSensitivity": {
"text2": ["Hall Eff", "Sensitivity"],
"desc": "Sensitivity of the Hall effect sensor in detecting sleep (O=Off | L=Low | M=Medium | H=High)"
"text2": ["Hall sensor", "sensitivity"],
"desc": "Sensitivity of the Hall effect sensor to detect sleep (0=Kapalı | 1=En az duyarlı | ... | 9=En duyarlı)"
},
"LockingMode": {
"text2": ["Allow buttons", "locking"],
"desc": "When soldering, long press on both buttons lock them (D=Disable | B=Boost only | F=Full locking)"
"text2": ["Allow locking", "buttons"],
"desc": "While soldering, hold down both buttons to toggle locking them (K=Kapalı | B=boost mode only | F=full locking)"
},
"MinVolCell": {
"text2": ["Minimum", "voltage"],
@@ -195,15 +173,15 @@
},
"AnimLoop": {
"text2": ["Anim.", "loop"],
"desc": "Loop icon animations in root menu"
"desc": "Loop icon animations in main menu"
},
"AnimSpeed": {
"text2": ["Anim.", "speed"],
"desc": "Speed of icon animations in menu (O=off | L=low | M=medium | H=high)"
"desc": "Pace of icon animations in menu (K=Kapalı | Y=Yavaş | O=Orta | H=Hızlı)"
},
"PowerPulseWait": {
"text2": ["Power pulse", "wait time"],
"desc": "Time to wait before triggering every keep-awake pulse (x 2.5s)"
"text2": ["Power pulse", "delay"],
"desc": "Delay before keep-awake-pulse is triggered (x 2.5s)"
},
"PowerPulseDuration": {
"text2": ["Power pulse", "duration"],
@@ -214,12 +192,16 @@
"desc": ""
},
"Brightness": {
"text2": ["Screen", "Brightness"],
"desc": "Adjust the contrast/brightness of the OLED screen"
"text2": ["Screen", "brightness"],
"desc": "Adjust the brightness of the OLED screen"
},
"ColourInversion": {
"text2": ["Screen", "Invert"],
"text2": ["Invert", "screen"],
"desc": "Invert the colours of the OLED screen"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,26 +2,17 @@
"languageCode": "UK",
"languageLocalName": "Українська",
"fonts": ["ascii_basic", "latin_extended", "cyrillic"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationDone": "Калібрування виконане!",
"SettingsCalibrationWarning": "Переконайтеся, що жало охололо до кімнатної температури, перш ніж продовжувати!",
"SettingsResetWarning": "Ви дійсно хочете скинути налаштування до значень за замовчуванням? (A=Так, В=Ні)",
"UVLOWarningString": "АККУМ--",
"UndervoltageString": "Низька напруга",
"InputVoltageString": "Жив.(B): ",
"WarningTipTempString": "Жало t°: ",
"BadTipString": "ЖАЛО--",
"SleepingSimpleString": "ZzZzz",
"SleepingAdvancedString": "Очікування...",
"WarningSimpleString": "ГАРЯЧЕ!",
"WarningAdvancedString": "!!! ГАРЯЧЕ !!!\n!!! ЖАЛО !!!",
"SleepingTipAdvancedString": "Жало:",
"IdleTipString": "Жало:",
"IdleSetString": " ->",
"TipDisconnectedString": "Жало вимкнено!",
"SolderingAdvancedPowerPrompt": "Живлення: ",
"OffString": "Вимк",
"YourGainMessage": "Приріст:"
"OffString": "Вимк"
},
"messagesWarn": {
"ResetOKMessage": "Скид. OK",
@@ -38,9 +29,9 @@
"SettingLeftChar": "Л",
"SettingAutoChar": "A",
"SettingOffChar": "B",
"SettingSlowChar": "П",
"SettingSlowChar": "Н",
"SettingMediumChar": "M",
"SettingFastChar": "Ш",
"SettingFastChar": "М",
"SettingStartNoneChar": "В",
"SettingStartSolderingChar": "П",
"SettingStartSleepChar": "О",
@@ -51,8 +42,7 @@
"SettingSensitivityHigh": "М",
"SettingLockDisableChar": "В",
"SettingLockBoostChar": "Т",
"SettingLockFullChar": "П",
"SettingNAChar": "Н/Д"
"SettingLockFullChar": "П"
},
"menuGroups": {
"PowerMenu": {
@@ -171,7 +161,7 @@
},
"HallEffSensitivity": {
"text2": ["Чутливість", "Ефекту Холла"],
"desc": "Чутливість датчика ефекту Холла при виявленні сну (В=Вимк | Н=Низький | С=Середній | М=Макс)"
"desc": "Чутливість датчика ефекту Холла при виявленні сну (0=Вимк. | 1=мін. чутливості | ... | 9=макс. чутливості)"
},
"LockingMode": {
"text2": ["Дозволити", "блок. кнопок"],
@@ -208,6 +198,10 @@
"ColourInversion": {
"text2": ["Інверт", "екрану"],
"desc": "Налаштування контрасту/яскравості OLED екрану"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -0,0 +1,207 @@
{
"languageCode": "VI",
"languageLocalName": "Tieng Viet",
"fonts": ["ascii_basic", "latin_extended"],
"tempUnitFahrenheit": false,
"messages": {
"SettingsCalibrationWarning": "Chac chan mui hàn o nhiet đo phòng truoc khi tiep tuc!",
"SettingsResetWarning": "Ban chac chan muon khôi phuc tat ca cài đat ve mac đinh?",
"UVLOWarningString": "DC thap",
"UndervoltageString": "Đien áp thap",
"InputVoltageString": "Đau vào V: ",
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Đang ngu...",
"SleepingTipAdvancedString": "Meo:",
"OffString": "Tat"
},
"messagesWarn": {
"ResetOKMessage": "Reset OK",
"SettingsResetMessage": ["Mot so cài đat", "đã thay đoi"],
"NoAccelerometerMessage": ["Không phát hien", "gia toc ke!"],
"NoPowerDeliveryMessage": ["Không phát hien", "USB-PD IC!"],
"LockingKeysString": "Đã khóa",
"UnlockingKeysString": "Mo khóa",
"WarningKeysLockedString": "Đã khóa!",
"WarningThermalRunaway": ["Nhiet", "Tat gia nhiet"]
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
"SettingOffChar": "O",
"SettingSlowChar": "S",
"SettingMediumChar": "M",
"SettingFastChar": "F",
"SettingStartNoneChar": "O",
"SettingStartSolderingChar": "S",
"SettingStartSleepChar": "Z",
"SettingStartSleepOffChar": "R",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "F"
},
"menuGroups": {
"PowerMenu": {
"text2": ["Cài đat", "nguon đien"],
"desc": "Cài đat nguon đien"
},
"SolderingMenu": {
"text2": ["Cài đat", "tay hàn"],
"desc": "Cài đat tay hàn"
},
"PowerSavingMenu": {
"text2": ["Che đo", "ngu"],
"desc": "Cài đat che đo tiet kiem đien"
},
"UIMenu": {
"text2": ["Giao dien", "nguoi dùng"],
"desc": "Cài đat giao dien nguoi dùng"
},
"AdvancedMenu": {
"text2": ["Cài đat", "nâng cao"],
"desc": "Cài đat nâng cao"
}
},
"menuOptions": {
"DCInCutoff": {
"text2": ["Nguon", "đien"],
"desc": "Nguon đien, đat đien áp giam. (DC 10V) (S 3.3V moi cell, tat gioi han công suat)"
},
"SleepTemperature": {
"text2": ["Nhiet đo", "khi ngu"],
"desc": "Giam nhiet đo khi o \"Che đo ngu\""
},
"SleepTimeout": {
"text2": ["Ngu", "sau"],
"desc": "- thoi gian truoc khi \"Che đo ngu\" bat đau (s=giây | m=phút)"
},
"ShutdownTimeout": {
"text2": ["Tat", "sau"],
"desc": "- khoang thoi gian truoc khi tay hàn tat (m=phút)"
},
"MotionSensitivity": {
"text2": ["Cam bien", "cu đong"],
"desc": "- 0=tat | 1=đo nhay thap nhat| ... | 9=đo nhay cao nhat"
},
"TemperatureUnit": {
"text2": ["Đon vi", "nhiet đo"],
"desc": "C= Đo C | F= Đo F"
},
"AdvancedIdle": {
"text2": ["Chi tiet", "màn hình cho"],
"desc": "- hien thi thông tin chi tiet bang phông chu nho hon trên màn hình cho"
},
"DisplayRotation": {
"text2": ["Huong", "hien thi"],
"desc": "- R=huong tay phai | L=huong tay trái | A=tu đong"
},
"BoostTemperature": {
"text2": ["Tăng", "nhiet đo"],
"desc": "Nhiet đo dùng trong che đo \"tăng cuong\""
},
"AutoStart": {
"text2": ["Nhiet đo", "đang tăng"],
"desc": "- 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"
},
"CooldownBlink": {
"text2": ["Nguoi đi", "chop mat"],
"desc": "-Nhap nháy nhiet đo sau khi viec gia nhiet tam dung trong khi mui hàn van nóng"
},
"TemperatureCalibration": {
"text2": ["Hieu chuan", "nhiet đo?"],
"desc": "-Bat đau hieu chuan bù nhiet cho mui hàn"
},
"SettingsReset": {
"text2": ["Khôi phuc", "cài đat goc?"],
"desc": "-đat lai tat ca cài đat ve mac đinh"
},
"VoltageCalibration": {
"text2": ["Hieu chinh", "đien áp đau vào?"],
"desc": "-bat đau hieu chuan VIN (nhan và giu đe thoát)"
},
"AdvancedSoldering": {
"text2": ["Chi tiet", "màn hình hàn"],
"desc": "-Hien thi thông tin bang phông chu nho hon trên màn hình hàn"
},
"ScrollingSpeed": {
"text2": ["Toc đo", "cuon"],
"desc": "Toc đo cuon văn ban(S=cham | F=nhanh)"
},
"QCMaxVoltage": {
"text2": ["QC", "Voltage"],
"desc": "Đien áp QC toi đa mà tay hàn yêu cau"
},
"PDNegTimeout": {
"text2": ["PD", "sau"],
"desc": "Thoi gian cho đàm phán PD trong các buoc 100ms đe tuong thích voi mot so bo sac QC"
},
"PowerLimit": {
"text2": ["Công suat", "gioi han"],
"desc": "-Công suat toi đa mà tay hàn có the su dung (W=watt)"
},
"ReverseButtonTempChange": {
"text2": ["Đao nguoc", "nút + -"],
"desc": "Đao nguoc chuc năng các nút đieu chinh nhiet đo"
},
"TempChangeShortStep": {
"text2": ["Thay đoi n.đo", "an nút nhanh"],
"desc": "Biên đo tăng/giam nhiet đo khi an nút nhanh"
},
"TempChangeLongStep": {
"text2": ["Thay đoi n.đo", "an nút lâu"],
"desc": "Biên đo tăng/giam nhiet đo khi an nút lâu"
},
"PowerPulsePower": {
"text2": ["Công suat", "kích nguon"],
"desc": "-Cuong đo công suat kích nguon (watt)"
},
"HallEffSensitivity": {
"text2": ["Hall", "đo nhay"],
"desc": "Đo nhay cam bien Hall đe phát hien che đo ngu (0=tat | 1=ít nhay nhat |...| 9=nhay nhat)"
},
"LockingMode": {
"text2": ["Cho phép khóa", "các nút"],
"desc": "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)"
},
"MinVolCell": {
"text2": ["Voltage", "toi thieu"],
"desc": "Đien áp toi thieu cho phép trên moi cell (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
},
"AnimLoop": {
"text2": ["Hoat anh", "lap lai"],
"desc": "Lap lai các hoat anh trong màn hình chính"
},
"AnimSpeed": {
"text2": ["Toc đo", "hoat anh"],
"desc": "-Toc đo cua hoat anh menu (O=tat | S=cham | M=trung bình | F=nhanh)"
},
"PowerPulseWait": {
"text2": ["Trì hoãn", "đien áp kích"],
"desc": "Trì hoãn truoc khi kích hoat kích nguon(x 2,5 giây)"
},
"PowerPulseDuration": {
"text2": ["Thoi luong", "kích nguon"],
"desc": "-thoi luong kích nguon (x 250ms)"
},
"LanguageSwitch": {
"text2": ["Ngôn ngu:", "VI Tieng Viet"],
"desc": "-Ngôn ngu firmware hien tai"
},
"Brightness": {
"text2": ["Đo tuong phan", "màn hình"],
"desc": "-Đieu chinh đo sáng màn hình OLED"
},
"ColourInversion": {
"text2": ["Đao nguoc màu", "màn hình"],
"desc": "-Đao nguoc màu màn hình OLED"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -12,10 +12,6 @@
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Sleeping...",
"SleepingTipAdvancedString": "Tip:",
"IdleTipString": "Tip:",
"IdleSetString": " Set:",
"TipDisconnectedString": "NO TIP",
"SolderingAdvancedPowerPrompt": "Power: ",
"OffString": "關"
},
"messagesWarn": {
@@ -46,8 +42,7 @@
"SettingSensitivityHigh": "高",
"SettingLockDisableChar": "無",
"SettingLockBoostChar": "增",
"SettingLockFullChar": "全",
"SettingNAChar": "不適用"
"SettingLockFullChar": "全"
},
"menuGroups": {
"PowerMenu": {
@@ -82,11 +77,11 @@
},
"SleepTimeout": {
"text2": "待機延時",
"desc": "自動進入待機模式前嘅閒置等候時間 <S=秒 | M=分鐘>"
"desc": "自動進入待機模式前嘅閒置等候時間 <s=秒 | m=分鐘>"
},
"ShutdownTimeout": {
"text2": "自動熄機",
"desc": "自動熄機前嘅閒置等候時間 <M=分鐘>"
"desc": "自動熄機前嘅閒置等候時間 <m=分鐘>"
},
"MotionSensitivity": {
"text2": "動作敏感度",
@@ -166,7 +161,7 @@
},
"HallEffSensitivity": {
"text2": "磁場敏感度",
"desc": "磁場感應器用嚟啓動待機模式嘅敏感度 <=停用 | =最低敏感度 | 中=中等敏感度 | =最高敏感度>"
"desc": "磁場感應器用嚟啓動待機模式嘅敏感度 <0=停用 | 1=最低敏感度 | ... | 9=最高敏感度>"
},
"LockingMode": {
"text2": "撳掣鎖定",
@@ -203,6 +198,10 @@
"ColourInversion": {
"text2": "熒幕反轉色",
"desc": "反轉OLED熒幕嘅黑白色"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -12,10 +12,6 @@
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Zzzz...",
"SleepingTipAdvancedString": "--->",
"IdleTipString": "--->",
"IdleSetString": " /",
"TipDisconnectedString": "<-X-",
"SolderingAdvancedPowerPrompt": "Power: ",
"OffString": "关"
},
"messagesWarn": {
@@ -46,8 +42,7 @@
"SettingSensitivityHigh": "高",
"SettingLockDisableChar": "无",
"SettingLockBoostChar": "增",
"SettingLockFullChar": "全",
"SettingNAChar": "不适用"
"SettingLockFullChar": "全"
},
"menuGroups": {
"PowerMenu": {
@@ -82,11 +77,11 @@
},
"SleepTimeout": {
"text2": "待机超时",
"desc": "自动进入待机模式前的等候时间 <S=秒 | M=分钟>"
"desc": "自动进入待机模式前的等候时间 <s=秒 | m=分钟>"
},
"ShutdownTimeout": {
"text2": "自动关机",
"desc": "自动关机前的等候时间 <M=分钟>"
"desc": "自动关机前的等候时间 <m=分钟>"
},
"MotionSensitivity": {
"text2": "动作灵敏度",
@@ -166,7 +161,7 @@
},
"HallEffSensitivity": {
"text2": "磁场灵敏度",
"desc": "霍尔效应传感器用作启动待机模式的灵敏度 <=禁用 | 低=低灵敏度 | 中=中灵敏度 | 高=高灵敏度>"
"desc": "霍尔效应传感器用作启动待机模式的灵敏度 <0=禁用 | 1=最低灵敏度 | ... | 9=最高灵敏度>"
},
"LockingMode": {
"text2": "按键锁定",
@@ -203,6 +198,10 @@
"ColourInversion": {
"text2": "反转屏幕颜色",
"desc": "反转OLED黑/白屏幕"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -12,10 +12,6 @@
"SleepingSimpleString": "Zzzz",
"SleepingAdvancedString": "Sleeping...",
"SleepingTipAdvancedString": "Tip:",
"IdleTipString": "Tip:",
"IdleSetString": " Set:",
"TipDisconnectedString": "NO TIP",
"SolderingAdvancedPowerPrompt": "Power: ",
"OffString": "關"
},
"messagesWarn": {
@@ -46,8 +42,7 @@
"SettingSensitivityHigh": "高",
"SettingLockDisableChar": "無",
"SettingLockBoostChar": "增",
"SettingLockFullChar": "全",
"SettingNAChar": "不適用"
"SettingLockFullChar": "全"
},
"menuGroups": {
"PowerMenu": {
@@ -82,11 +77,11 @@
},
"SleepTimeout": {
"text2": "待機延時",
"desc": "自動進入待機模式前的閒置等候時間 <S=秒 | M=分鐘>"
"desc": "自動進入待機模式前的閒置等候時間 <s=秒 | m=分鐘>"
},
"ShutdownTimeout": {
"text2": "自動關機",
"desc": "自動關機前的閒置等候時間 <M=分鐘>"
"desc": "自動關機前的閒置等候時間 <m=分鐘>"
},
"MotionSensitivity": {
"text2": "動作敏感度",
@@ -166,7 +161,7 @@
},
"HallEffSensitivity": {
"text2": "磁場敏感度",
"desc": "磁場感應器用作啟動待機模式的敏感度 <=停用 | =最低敏感度 | 中=中等敏感度 | =最高敏感度>"
"desc": "磁場感應器用作啟動待機模式的敏感度 <0=停用 | 1=最低敏感度 | ... | 9=最高敏感度>"
},
"LockingMode": {
"text2": "按鍵鎖定",
@@ -203,6 +198,10 @@
"ColourInversion": {
"text2": "螢幕反轉色",
"desc": "反轉OLED螢幕的黑白色彩"
},
"LOGOTime": {
"text2": ["Boot logo", "duration"],
"desc": "Sets the duration for the boot logo (s=seconds)"
}
}
}

View File

@@ -2,367 +2,432 @@ var def =
{
"messages": [
{
"id": "SettingsCalibrationWarning"
"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."
},
{
"id": "SettingsResetWarning"
"id": "SettingsResetWarning",
"description": "Confirmation message shown before confirming a settings reset."
},
{
"id": "UVLOWarningString",
"maxLen": 8
"maxLen": 8,
"description": "Warning text shown when the unit turns off due to undervoltage in simple mode."
},
{
"id": "UndervoltageString",
"maxLen": 16
"maxLen": 15,
"description": "Warning text shown when the unit turns off due to undervoltage in advanced mode."
},
{
"id": "InputVoltageString",
"maxLen": 11,
"note": "Preferably end with a space"
"note": "Preferably end with a space",
"description": "Prefix text for 'Input Voltage' shown before showing the input voltage reading."
},
{
"id": "SleepingSimpleString",
"maxLen": 4
"maxLen": 4,
"description": "The text shown to indicate the unit is in sleep mode when the advanced view is NOT on."
},
{
"id": "SleepingAdvancedString",
"maxLen": 16
"maxLen": 15,
"description": "The text shown to indicate the unit is in sleep mode when the advanced view is turned on."
},
{
"id": "SleepingTipAdvancedString",
"maxLen": 6
},
{
"id": "IdleTipString",
"lenSum":
{
"fields": ["IdleTipString", "IdleSetString"],
"maxLen": 10
}
},
{
"id": "IdleSetString",
"lenSum":
{
"fields": ["IdleTipString", "IdleSetString"],
"maxLen": 10
},
"note": "Preferably start with a space"
},
{
"id": "TipDisconnectedString",
"maxLen": 16
},
{
"id": "SolderingAdvancedPowerPrompt",
"maxLen": null
"maxLen": 6,
"description": "The prefix text shown before tip temperature when the unit is sleeping with advanced view on."
},
{
"id": "OffString",
"maxLen": 3
"maxLen": 3,
"description": "Shown when a setting is turned off."
}
],
"messagesWarn": [
{
"id": "ResetOKMessage"
"id": "SettingsResetMessage",
"description": "Shown when the settings are reset to factory defaults either by the user or by incompatible firmware changes."
},
{
"id": "SettingsResetMessage"
"id": "NoAccelerometerMessage",
"description": "No accelerometer could be communicated with. This means that either the device's accelerometer is broken or unknown to IronOS. All motion-based settings are disabled and motion-based features will not work."
},
{
"id": "NoAccelerometerMessage"
"id": "NoPowerDeliveryMessage",
"description": "The IC required for USB-PD could not be communicated with. This is an error warning that USB-PD WILL NOT FUNCTION. Generally indicative of either a hardware or software issues."
},
{
"id": "NoPowerDeliveryMessage"
"id": "LockingKeysString",
"description": "Shown when keys are locked"
},
{
"id": "LockingKeysString"
"id": "UnlockingKeysString",
"description": "Shown when keys are unlocked"
},
{
"id": "UnlockingKeysString"
"id": "WarningKeysLockedString",
"description": "Warning that is shown when input is ignored due to the key lock being on"
},
{
"id": "WarningKeysLockedString"
},
{
"id": "WarningThermalRunaway"
"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."
}
],
"characters": [
{
"id": "SettingRightChar",
"len": 1
"len": 1,
"description": "Shown for fixed Right-handed display rotation."
},
{
"id": "SettingLeftChar",
"len": 1
"len": 1,
"description": "Shown for fixed Left-handed display rotation."
},
{
"id": "SettingAutoChar",
"len": 1
"len": 1,
"description": "Shown for automatic display rotation."
},
{
"id": "SettingFastChar",
"len": 1
"len": 1,
"description": "Shown when a setting is set to a fast value i.e. animation speed"
},
{
"id": "SettingSlowChar",
"len": 1
"len": 1,
"description": "Shown when a setting is set to a slow value i.e. animation speed"
},
{
"id": "SettingMediumChar",
"len": 1
"len": 1,
"description": "Shown when a setting is set to a medium value i.e. animation speed"
},
{
"id": "SettingOffChar",
"len": 1
"len": 1,
"description": "Shown when a setting is turned off"
},
{
"id": "SettingStartSolderingChar",
"len": 1
"len": 1,
"description": "Shown when the auto start mode is set to go straight to soldering."
},
{
"id": "SettingStartSleepChar",
"len": 1
"len": 1,
"description": "Shown when the auto start mode is set to start in sleep mode."
},
{
"id": "SettingStartSleepOffChar",
"len": 1
"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": "SettingStartNoneChar",
"len": 1
"len": 1,
"description": "Shown when autostart state is to do nothing and go to a normal boot"
},
{
"id": "SettingSensitivityOff",
"len": 1
"len": 1,
"description": "Shown when a sensitivity (hall effect sensor) is disabled. Turning off the sensor."
},
{
"id": "SettingSensitivityLow",
"len": 1
"len": 1,
"description": "Shown when a sensitivity (hall effect) is not very sensitive"
},
{
"id": "SettingSensitivityMedium",
"len": 1
"len": 1,
"description": "Shown when a sensitivity (hall effect) is average sensitive"
},
{
"id": "SettingSensitivityHigh",
"len": 1
"len": 1,
"description": "Shown when a sensitivity (hall effect) is highly sensitive"
},
{
"id": "SettingLockDisableChar",
"len": 1,
"default": "D"
"default": "D",
"description": "Shown when locking mode is turned off."
},
{
"id": "SettingLockBoostChar",
"len": 1,
"default": "B"
"default": "B",
"description": "Shown when the locking mode is set to lock all buttons except for boost mode."
},
{
"id": "SettingLockFullChar",
"len": 1,
"default": "F"
},
{
"id": "SettingNAChar",
"len": 3,
"default": "N/A"
"default": "F",
"description": "Shown when the locking mode is set to lock all buttons."
}
],
"menuGroups": [
{
"id": "PowerMenu",
"maxLen": 5,
"maxLen2": 11
"maxLen2": 11,
"description": "Menu for settings related to power. Main settings to do with the input voltage."
},
{
"id": "SolderingMenu",
"maxLen": 5,
"maxLen2": 11
"maxLen2": 11,
"description": "Settings for soldering mode, such as boost temps, the increment used when pressing buttons and if button locking is enabled."
},
{
"id": "PowerSavingMenu",
"maxLen": 5,
"maxLen2": 11
"maxLen2": 11,
"description": "Settings to do with power saving, such as sleep mode, sleep temps, and shutdown modes."
},
{
"id": "UIMenu",
"maxLen": 5,
"maxLen2": 11
"maxLen2": 11,
"description": "User interface related settings, such as units."
},
{
"id": "AdvancedMenu",
"maxLen": 5,
"maxLen2": 11
"maxLen2": 11,
"description": "Advanced settings. Misc catchall for settings that don't fit anywhere else or settings that require some thought before use."
}
],
"menuOptions": [
{
"id": "DCInCutoff",
"maxLen": 5,
"maxLen2": 11
"maxLen2": 11,
"description": "When the device is powered by a battery, this adjusts the low voltage threshold for when the unit should turn off the heater to protect the battery."
},
{
"id": "SleepTemperature",
"maxLen": 4,
"maxLen2": 9
"maxLen2": 9,
"description": "Temperature the device will drop down to while asleep. Typically around halfway between off and soldering temperature."
},
{
"id": "SleepTimeout",
"maxLen": 4,
"maxLen2": 9
"maxLen2": 9,
"description": "How long of a period without movement / button-pressing is required before the device drops down to the sleep temperature."
},
{
"id": "ShutdownTimeout",
"maxLen": 5,
"maxLen2": 11
"maxLen2": 11,
"description": "How long of a period without movement / button-pressing is required before the device turns off the tip heater completely and returns to the main idle screen."
},
{
"id": "MotionSensitivity",
"maxLen": 6,
"maxLen2": 13
"maxLen2": 13,
"description": "Scale of how sensitive the device is to movement. Higher numbers == more sensitive. 0 == motion detection turned off."
},
{
"id": "TemperatureUnit",
"maxLen": 6,
"maxLen2": 13
"maxLen2": 13,
"description": "If the device shows temperatures in °C or °F."
},
{
"id": "AdvancedIdle",
"maxLen": 6,
"maxLen2": 13
"maxLen2": 13,
"description": "Should the device show an 'advanced' view on the idle screen. The advanced view uses text to show more details than the typical icons."
},
{
"id": "DisplayRotation",
"maxLen": 6,
"maxLen2": 13
"maxLen2": 13,
"description": "If the display should rotate automatically or if it should be fixed for left- or right-handed mode."
},
{
"id": "BoostTemperature",
"maxLen": 4,
"maxLen2": 9
"maxLen2": 9,
"description": "When the unit is in soldering mode. You can hold down the button at the front of the device to temporarily override the soldering temperature to this value. This SETS the temperature, it does not ADD to it."
},
{
"id": "AutoStart",
"maxLen": 6,
"maxLen2": 13
"maxLen2": 13,
"description": "When the device powers up, should it enter into a special mode. These settings set it to either start into soldering mode, sleeping mode or auto mode (Enters into soldering mode on the first movement)."
},
{
"id": "CooldownBlink",
"maxLen": 6,
"maxLen2": 13
"maxLen2": 13,
"description": "If the idle screen should blink the tip temperature for attention while the tip is over 50°C. Intended as a 'tip is still hot' warning."
},
{
"id": "TemperatureCalibration",
"maxLen": 8,
"maxLen2": 16
"maxLen2": 15,
"description": "Used to calibrate the ADC+Op-amp offsets for the tip. This calibration must be performed when the tip temperature and the handle temperature are equal. Generally not required unless your device is reading more than 5°C off target."
},
{
"id": "SettingsReset",
"maxLen": 8,
"maxLen2": 16
"maxLen2": 15,
"description": "Resets all settings and calibrations to factory defaults. Does NOT erase custom user boot up logo's."
},
{
"id": "VoltageCalibration",
"maxLen": 8,
"maxLen2": 16
"maxLen2": 15,
"description": "Enters an adjustment mode where you can gradually adjust the measured voltage to compensate for any unit-to-unit variance in the voltage sense resistors."
},
{
"id": "AdvancedSoldering",
"maxLen": 6,
"maxLen2": 13
"maxLen2": 13,
"description": "Should the device show an 'advanced' soldering view. This is a text-based view that shows more information at the cost of no nice graphics."
},
{
"id": "ScrollingSpeed",
"maxLen": 6,
"maxLen2": 11
"maxLen2": 11,
"description": "How fast the description text scrolls when hovering on a menu. Faster speeds may induce tearing, but allow reading the whole description faster."
},
{
"id": "QCMaxVoltage",
"maxLen": 8,
"maxLen2": 16
"maxLen2": 15,
"description": "This adjusts the maximum voltage the QC negotiation will adjust to. Does NOT affect USB-PD. Should be set safely based on the current rating of your power supply."
},
{
"id": "PDNegTimeout",
"maxLen": 8,
"maxLen2": 16
"maxLen2": 15,
"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": "PowerLimit",
"maxLen": 5,
"maxLen2": 11
"maxLen2": 11,
"description": "Allows setting a custom wattage for the device to aim to keep the AVERAGE power below. The unit can't control its peak power no matter how you set this. (Except for MHP30 which will regulate nicely to this). If USB-PD is in use, the limit will be set to the lower of this and the supplies advertised wattage."
},
{
"id": "ReverseButtonTempChange",
"maxLen": 6,
"maxLen2": 16
"maxLen2": 15,
"description": "Swaps which button increments and decrements on temperature change screens."
},
{
"id": "TempChangeShortStep",
"maxLen": 8,
"maxLen2": 16
"maxLen2": 15,
"description": "Factor by which the temperature is changed with a quick press of the buttons."
},
{
"id": "TempChangeLongStep",
"maxLen": 6,
"maxLen2": 16
"maxLen2": 15,
"description": "Factor by which the temperature is changed with a hold of the buttons."
},
{
"id": "PowerPulsePower",
"maxLen": 6,
"maxLen2": 16
"maxLen2": 15,
"description": "Enables and sets the wattage of the power pulse. Power pulse causes the device to briefly turn on the heater to draw power to avoid power banks going to sleep."
},
{
"id": "HallEffSensitivity",
"maxLen": 6,
"maxLen2": 8
"maxLen2": 8,
"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": "LockingMode",
"maxLen": 6,
"maxLen2": 13
"maxLen2": 13,
"description": "If locking the buttons against accidental presses is enabled."
},
{
"id": "MinVolCell",
"maxLen": 4,
"maxLen2": 9
"maxLen2": 9,
"description": "When powered by a battery, this adjusts the minimum voltage per cell before shutdown. (This is multiplied by the cell count.)"
},
{
"id": "AnimLoop",
"maxLen": 6,
"maxLen2": 13
"maxLen2": 13,
"description": "Should the menu animations loop. Only visible if the animation speed is not set to \"Off\""
},
{
"id": "AnimSpeed",
"maxLen": 6,
"maxLen2": 13
"maxLen2": 13,
"description": "How fast should the menu animations loop, or if they should not loop at all."
},
{
"id": "PowerPulseWait",
"maxLen": 6,
"maxLen2": 13
"maxLen2": 13,
"description": "Adjusts the time interval between power pulses. Longer gaps reduce undesired heating of the tip, but needs to be fast enough to keep your power bank awake."
},
{
"id": "PowerPulseDuration",
"maxLen": 6,
"maxLen2": 13
"maxLen2": 13,
"description": "How long should the power pulse go for. Some power banks require seeing the power draw be sustained for a certain duration to keep awake. Should be kept as short as possible to avoid wasting power / undesired heating of the tip."
},
{
"id": "LanguageSwitch",
"maxLen": 7,
"maxLen2": 15
"maxLen2": 15,
"description": "Changes the device language on multi-lingual builds."
},
{
"id": "Brightness",
"maxLen": 7,
"maxLen2": 15
"maxLen2": 15,
"description": "Display brightness. Higher values age the OLED faster due to burn-in. (However, it is notable that most of these screens die from other causes first.)"
},
{
"id": "ColourInversion",
"maxLen": 7,
"maxLen2": 15
"maxLen2": 15,
"description": "Inverts the entire OLED."
},
{
"id": "LOGOTime",
"maxLen": 7,
"maxLen2": 15,
"description": "Sets the duration for the boot logo (S=seconds)."
}
]
}

View File

@@ -5,7 +5,7 @@ services:
tty: true
build:
context: .
command: /bin/bash
command: /bin/sh
volumes:
- ./ci:/build/ci:Z
- ./:/build/source:Z

View File

@@ -1,38 +0,0 @@
#!/bin/sh
set -e
# Setup shell file to setup the environment on an ubuntu machine
sudo apt-get update && sudo apt-get install -y make bzip2 git python3 python3-pip wget dfu-util
python3 -m pip install bdflib black flake8
sudo mkdir -p /build
cd /build
# Download source files to cache folder
# Remember if these are updated, you need to update the md5 file respectively
# Github checks out under $GITHUB_WORKSPACE
MDPATH=${GITHUB_WORKSPACE:-/build/source/}
sudo mkdir -p /build/cache
cd /build/cache/
if md5sum -c "$MDPATH"/ci/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2.md5; then
echo "Good MD5 ARM"
else
echo "ARM MD5 Mismatch, downloading fresh"
rm -rf /build/cache/gcc-arm*.bz2 || true
sudo wget -q "https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2" -O gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
fi
if md5sum -c "$MDPATH"/ci/nuclei_riscv_newlibc_prebuilt_linux64_2020.08.tar.bz2.md5; then
echo "Good MD5 RISCV"
else
echo "RISCV MD5 Mismatch, downloading fresh"
rm -rf /build/cache/nuclei*.bz2 || true
sudo wget -q "https://github.com/Ralim/nuclei-compiler/releases/download/2020.08/nuclei_riscv_newlibc_prebuilt_linux64_2020.08.tar.bz2" -O nuclei_riscv_newlibc_prebuilt_linux64_2020.08.tar.bz2
fi
echo "Extracting compilers"
sudo tar -xj -f gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 -C /build/
sudo tar -xj -f nuclei_riscv_newlibc_prebuilt_linux64_2020.08.tar.bz2 -C /build/
echo "Link into PATH"
sudo ln -s /build/gcc-arm-none-eabi-10-2020-q4-major/bin/* /usr/local/bin
sudo ln -s /build/gcc/bin/* /usr/local/bin

View File

@@ -56,7 +56,7 @@ void reboot();
// If the user has programmed in a bootup logo, draw it to the screen from flash
// Returns 1 if the logo was printed so that the unit waits for the timeout or button
uint8_t showBootLogoIfavailable();
void showBootLogoIfavailable();
// delay wrapper for delay using the hardware timer (used before RTOS)
void delay_ms(uint16_t count);
// Probe if the Hall sensor is fitted to the unit

View File

@@ -156,3 +156,5 @@
#define NO_SLEEP_MODE
#endif
#endif
#define FLASH_LOGOADDR (0x08000000 + (62 * 1024))

View File

@@ -1,25 +0,0 @@
/*
* logo.c
*
* Created on: 29 May 2020
* Author: Ralim
*/
#include "BSP.h"
#include "OLED.hpp"
static uint8_t logo_page[1024] __attribute__((section(".logo_page")));
// Logo header signature.
#define LOGO_HEADER_VALUE 0xF00DAA55
uint8_t showBootLogoIfavailable() {
// Do not show logo data if signature is not found.
if (LOGO_HEADER_VALUE != *(reinterpret_cast<const uint32_t *>(logo_page))) {
return 0;
}
OLED::drawAreaSwapped(0, 0, 96, 16, (uint8_t *)(logo_page + 4));
OLED::refresh();
return 1;
}

View File

@@ -20,6 +20,7 @@ static const uint8_t tempMeasureTicks = 14;
uint16_t totalPWM; // htim2.Init.Period, the full PWM cycle
static bool fastPWM;
static bool infastPWM;
void resetWatchdog() { HAL_IWDG_Refresh(&hiwdg); }
#ifdef TEMP_NTC
@@ -135,7 +136,7 @@ uint16_t getInputVoltageX10(uint16_t divisor, uint8_t sample) {
static void switchToFastPWM(void) {
// 10Hz
fastPWM = true;
infastPWM = true;
totalPWM = powerPWM + tempMeasureTicks + holdoffTicks;
htim2.Instance->ARR = totalPWM;
htim2.Instance->CCR1 = powerPWM + holdoffTicks;
@@ -144,7 +145,7 @@ static void switchToFastPWM(void) {
static void switchToSlowPWM(void) {
// 5Hz
fastPWM = false;
infastPWM = false;
totalPWM = powerPWM + tempMeasureTicks / 2 + holdoffTicks / 2;
htim2.Instance->ARR = totalPWM;
htim2.Instance->CCR1 = powerPWM + holdoffTicks / 2;
@@ -152,16 +153,10 @@ static void switchToSlowPWM(void) {
}
void setTipPWM(const uint8_t pulse, const bool shouldUseFastModePWM) {
PWMSafetyTimer = 10; // This is decremented in the handler for PWM so that the tip pwm is
PWMSafetyTimer = 20; // This is decremented in the handler for PWM so that the tip pwm is
// disabled if the PID task is not scheduled often enough.
fastPWM = shouldUseFastModePWM;
pendingPWM = pulse;
if (fastPWM != shouldUseFastModePWM) {
if (shouldUseFastModePWM) {
switchToFastPWM();
} else {
switchToSlowPWM();
}
}
}
// These are called by the HAL after the corresponding events from the system
// timers.
@@ -182,6 +177,14 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
} else {
HAL_TIM_PWM_Stop(&htim3, TIM_CHANNEL_1);
}
if (fastPWM != infastPWM) {
if (fastPWM) {
switchToFastPWM();
} else {
switchToSlowPWM();
}
}
} else if (htim->Instance == TIM1) {
// STM uses this for internal functions as a counter for timeouts
HAL_IncTick();

View File

@@ -56,7 +56,7 @@ bool FRToSI2C::Mem_Write(uint16_t DevAddress, uint16_t MemAddress, uint8_t *pDat
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) {
if (HAL_I2C_Master_Transmit_IT(&hi2c1, DevAddress, pData, Size) != HAL_OK) {
I2C_Unstick();
unlock();
return false;

View File

@@ -1321,10 +1321,10 @@ HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel) {
/* Enable the Capture compare channel */
TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE);
if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) {
/* Enable the main output */
__HAL_TIM_MOE_ENABLE(htim);
}
// if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET) {
// /* Enable the main output */
// __HAL_TIM_MOE_ENABLE(htim);
// }
/* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */
if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) {
@@ -3450,39 +3450,6 @@ void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim) {
htim->PeriodElapsedCallback(htim);
#else
HAL_TIM_PeriodElapsedCallback(htim);
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
/* TIM Break input event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK) != RESET) {
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET) {
__HAL_TIM_CLEAR_IT(htim, TIM_IT_BREAK);
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->BreakCallback(htim);
#else
HAL_TIMEx_BreakCallback(htim);
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
/* TIM Trigger detection event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_TRIGGER) != RESET) {
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_TRIGGER) != RESET) {
__HAL_TIM_CLEAR_IT(htim, TIM_IT_TRIGGER);
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->TriggerCallback(htim);
#else
HAL_TIM_TriggerCallback(htim);
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
/* TIM commutation event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_COM) != RESET) {
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_COM) != RESET) {
__HAL_TIM_CLEAR_IT(htim, TIM_FLAG_COM);
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->CommutationCallback(htim);
#else
HAL_TIMEx_CommutCallback(htim);
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}

View File

@@ -56,7 +56,7 @@
* OLED Orientation
*
*/
#define ORIENTATION_MODE 0 // 0: Right 1:Left 2:Automatic - Default right
#define ORIENTATION_MODE 2 // 0: Right 1:Left 2:Automatic - Default Automatic
#define REVERSE_BUTTON_TEMP_CHANGE 0 // 0:Default 1:Reverse - Reverse the plus and minus button assigment for temperature change
/**
@@ -95,7 +95,7 @@
#define DETAILED_IDLE 0 // 0: Disable 1: Enable - Default 0
#define THERMAL_RUNAWAY_TIME_SEC 20
#define THERMAL_RUNAWAY_TEMP_C 20
#define THERMAL_RUNAWAY_TEMP_C 10
#define CUT_OUT_SETTING 0 // default to no cut-off voltage
#define RECOM_VOL_CELL 33 // Minimum voltage per cell (Recommended 3.3V (33))
@@ -124,6 +124,14 @@
#error "No model defined!"
#endif
// Miniware is swapping IMU's around a bit now, so we turn them all on
#define ACCEL_MMA
#define ACCEL_LIS
#define ACCEL_SC7
#define ACCEL_MSA
#define ACCEL_BMA
#ifdef MODEL_TS100
#define SOLDERING_TEMP 320 // Default soldering temp is 320.0 °C
#define VOLTAGE_DIV 467 // 467 - Default divider from schematic
@@ -144,9 +152,9 @@
#define MIN_BOOST_TEMP_C 250 // The min settable temp for boost mode °C
#define MIN_BOOST_TEMP_F 480 // The min settable temp for boost mode °F
#define POW_DC
#define ACCEL_MMA
#define POW_PD 0
#define ACCEL_LIS
#define TEMP_TMP36
#endif
@@ -169,7 +177,7 @@
#define MIN_TEMP_F 60 // Min soldering temp selectable °F
#define MIN_BOOST_TEMP_C 250 // The min settable temp for boost mode °C
#define MIN_BOOST_TEMP_F 480 // The min settable temp for boost mode °F
#define ACCEL_LIS
#define POW_QC
#define POW_PD 0
#define TEMP_TMP36
@@ -196,13 +204,13 @@
#define MIN_TEMP_F 60 // Min soldering temp selectable °F
#define MIN_BOOST_TEMP_C 250 // The min settable temp for boost mode °C
#define MIN_BOOST_TEMP_F 480 // The min settable temp for boost mode °F
#define ACCEL_LIS
#define ACCEL_MSA
#define POW_PD 1
#define POW_QC 1
#define TEMP_NTC
#define I2C_SOFT
#define LIS_ORI_FLIP
#define SC7_ORI_FLIP
#define OLED_FLIP
#endif
@@ -224,3 +232,5 @@
#define TIP_RESISTANCE 45 // x10 ohms, 4.5 typical for ts80 tips
#endif
#endif
#define FLASH_LOGOADDR (0x08000000 + (62 * 1024))

View File

@@ -1,25 +0,0 @@
/*
* logo.c
*
* Created on: 29 May 2020
* Author: Ralim
*/
#include "BSP.h"
#include "OLED.hpp"
static uint8_t logo_page[1024] __attribute__((section(".logo_page")));
// Logo header signature.
#define LOGO_HEADER_VALUE 0xF00DAA55
uint8_t showBootLogoIfavailable() {
// Do not show logo data if signature is not found.
if (LOGO_HEADER_VALUE != *(reinterpret_cast<const uint32_t *>(logo_page))) {
return 0;
}
OLED::drawAreaSwapped(0, 0, 96, 16, (uint8_t *)(logo_page + 4));
OLED::refresh();
return 1;
}

View File

@@ -7,7 +7,7 @@
void HAL_MspInit(void) {
__HAL_RCC_AFIO_CLK_ENABLE();
HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
// HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
/* System interrupt init*/
/* MemoryManagement_IRQn interrupt configuration */
@@ -82,7 +82,7 @@ void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c) {
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;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* Peripheral clock enable */

View File

@@ -56,7 +56,7 @@
* OLED Orientation
*
*/
#define ORIENTATION_MODE 0 // 0: Right 1:Left 2:Automatic - Default right
#define ORIENTATION_MODE 2 // 0: Right 1:Left 2:Automatic - Default Automatic
#define REVERSE_BUTTON_TEMP_CHANGE 0 // 0:Default 1:Reverse - Reverse the plus and minus button assigment for temperature change
/**
@@ -124,7 +124,7 @@
#define POWER_LIMIT_STEPS 5 //
#define OP_AMP_GAIN_STAGE OP_AMP_GAIN_STAGE_PINECIL // Uses TS100 resistors
#define TEMP_uV_LOOKUP_HAKKO // Use Hakko lookup table
#define USB_PD_VMAX 20 // Maximum voltage for PD to negotiate
#define USB_PD_VMAX 21 // Maximum voltage for PD to negotiate
#define PID_TIM_HZ (8) // Tick rate of the PID loop
#define MAX_TEMP_C 450 // Max soldering temp selectable °C
#define MAX_TEMP_F 850 // Max soldering temp selectable °F
@@ -142,6 +142,7 @@
#define ACCEL_BMA
#define ACCEL_SC7
#define HALL_SENSOR
#define VBUS_MOD_TEST
#define HALL_SI7210
#define DEBUG_UART_OUTPUT
@@ -150,3 +151,7 @@
#define TIP_RESISTANCE 75 // x10 ohms, 7.5 typical for Pinecil tips
#endif
#endif
#define FLASH_LOGOADDR (0x08000000 + (126 * 1024))
#define HAS_POWER_DEBUG_MENU

View File

@@ -1,24 +0,0 @@
/*
* logo.c
*
* Created on: 29 May 2020
* Author: Ralim
*/
#include "BSP.h"
#include "OLED.hpp"
// Second last page of flash set aside for logo image.
#define FLASH_LOGOADDR (0x08000000 + (126 * 1024))
// Logo header signature.
#define LOGO_HEADER_VALUE 0xF00DAA55
uint8_t showBootLogoIfavailable() {
// Do not show logo data if signature is not found.
if (LOGO_HEADER_VALUE != *(reinterpret_cast<const uint32_t *>(FLASH_LOGOADDR))) {
return 0;
}
OLED::drawAreaSwapped(0, 0, 96, 16, (uint8_t *)(FLASH_LOGOADDR + 4));
OLED::refresh();
return 1;
}

View File

@@ -0,0 +1,79 @@
#include "BootLogo.h"
#include "BSP.h"
#include "Buttons.hpp"
#include "OLED.hpp"
#include "cmsis_os.h"
#define LOGO_PAGE_LENGTH 1024
void BootLogo::handleShowingLogo(const uint8_t *ptrLogoArea) {
// Read the first few bytes and figure out what format we are looking at
if (OLD_LOGO_HEADER_VALUE == *(reinterpret_cast<const uint32_t *>(ptrLogoArea))) {
showOldFormat(ptrLogoArea);
} else if (ptrLogoArea[0] == 0xAA) {
showNewFormat(ptrLogoArea + 1);
}
OLED::clearScreen();
OLED::refresh();
}
void BootLogo::showOldFormat(const uint8_t *ptrLogoArea) {
OLED::drawAreaSwapped(0, 0, 96, 16, (uint8_t *)(ptrLogoArea + 4));
OLED::refresh();
// Delay here until button is pressed or its been the amount of seconds set by the user
waitForButtonPressOrTimeout(TICKS_SECOND * getSettingValue(SettingsOptions::LOGOTime));
}
void BootLogo::showNewFormat(const uint8_t *ptrLogoArea) {
if (getSettingValue(SettingsOptions::LOGOTime) == 0) {
return;
}
// New logo format (a) fixes long standing byte swap quirk and (b) supports animation
uint8_t interFrameDelay = ptrLogoArea[0];
OLED::clearScreen();
ButtonState buttons = getButtonState();
// Now draw in the frames
int position = 1;
do {
int len = (showNewFrame(ptrLogoArea + position));
OLED::refresh();
position += len;
buttons = getButtonState();
if (interFrameDelay) {
osDelay(interFrameDelay * 5);
}
// 1024 less the header type byte and the inter-frame-delay
if (getSettingValue(SettingsOptions::LOGOTime) < 5 && (position == 1022 || len == 0)) {
// Delay here until button is pressed or its been the amount of seconds set by the user
waitForButtonPressOrTimeout(TICKS_SECOND * getSettingValue(SettingsOptions::LOGOTime));
return;
}
} while (buttons == BUTTON_NONE);
}
int BootLogo::showNewFrame(const uint8_t *ptrLogoArea) {
uint8_t length = ptrLogoArea[0];
if (length == 0xFF) {
// Full frame update
OLED::drawArea(0, 0, 96, 16, ptrLogoArea + 1);
length = 96;
} else if (length == 0xFE) {
return 1;
} else if (length == 0) {
return 0; // end
} else {
length /= 2;
// Draw length patches
for (int p = 0; p < length; p++) {
uint8_t index = ptrLogoArea[1 + (p * 2)];
uint8_t value = ptrLogoArea[2 + (p * 2)];
OLED::drawArea(index % 96, index >= 96 ? 8 : 0, 1, 8, &value);
}
}
OLED::refresh();
return (length * 2) + 1;
}

View File

@@ -0,0 +1,17 @@
#ifndef DRIVERS_BOOTLOGO_H_
#define DRIVERS_BOOTLOGO_H_
// Wrapper for handling showing a bootlogo
#include <stdint.h>
#define OLD_LOGO_HEADER_VALUE 0xF00DAA55
class BootLogo {
public:
static void handleShowingLogo(const uint8_t *ptrLogoArea);
private:
static void showOldFormat(const uint8_t *ptrLogoArea);
static void showNewFormat(const uint8_t *ptrLogoArea);
static int showNewFrame(const uint8_t *ptrLogoArea);
};
#endif // DRIVERS_BOOTLOGO_H_

View File

@@ -5,7 +5,7 @@
* Author: Ralim
*/
#include "FreeRTOS.h"
#include "gui.hpp"
#include "settingsGUI.hpp"
#include "task.h"
#include <Buttons.hpp>
uint32_t lastButtonTime = 0;

View File

@@ -125,97 +125,86 @@ const uint8_t WarningBlock24[] = {
0x00, 0x00, 0x00, 0xC0, 0xB0, 0x8C, 0x83, 0x80, 0x80, 0x80, 0x80, 0xB3, 0xB3, 0xB3, 0x80, 0x80, 0x80, 0x80, 0x83, 0x8C, 0xB0, 0xC0, 0x00, 0x00};
#if defined(MODEL_TS100) + defined(MODEL_Pinecil) >= 1
const uint8_t idleScreenBG[] = {
// width = 84
const uint8_t buttonA[] = {
// width = 42
// height = 16
0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x04, 0x02, 0x02, 0x01, 0x81, 0x49, 0x31, 0x01, 0xc1, 0x25, 0x19, 0x01, 0xc1, 0x25, 0x19, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x40, 0x80, 0x89, 0x8a, 0x88, 0x94,
0x8c, 0x94, 0xae, 0x80, 0xbe, 0x8e, 0xa6, 0x8e, 0xa6, 0x8e, 0xa6, 0x8e, 0xa6, 0x8a, 0xa6, 0x8a, 0xa6, 0x8a, 0xa6, 0x8a, 0x46, 0x4a, 0x22, 0x18, 0x07, 0x00, 0x00, 0x00};
const uint8_t disconnectedTip[] = {
// width = 42
// height = 16
0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x81, 0xbd, 0x81, 0x01, 0x01, 0xfd, 0x01, 0x01, 0x71, 0x55, 0x71,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x19, 0x25, 0xc1, 0x01, 0x19, 0x25, 0xc1, 0x01, 0x31, 0x49, 0x81, 0x01, 0x02, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x83, 0xba, 0x83, 0x80, 0x8e, 0xaa, 0x8e, 0x80, 0x80, 0xbf, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x22, 0x4a, 0x46, 0x8a, 0xa6, 0x8a, 0xa6, 0x8a, 0xa6,
0x8a, 0xa6, 0x8e, 0xa6, 0x8e, 0xa6, 0x8e, 0xa6, 0x8e, 0xbe, 0x80, 0xae, 0x94, 0x8c, 0x94, 0x88, 0x8a, 0x89, 0x80, 0x40, 0x40, 0x20, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00};
const uint8_t disconnectedTipIcon[] = {
//
// 41 x 16
0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xc0, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xcc, 0x9c, 0x38, 0x70, 0xe0, 0xc0, 0x80, 0x20, 0x70, 0x38, 0x1c, 0xcc, 0x40,
0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0x60, 0xe0, 0x01, 0x01, 0x01, 0x02, 0x01, 0x02, 0x05, 0x00, 0x07, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04,
0x31, 0x38, 0x1c, 0x0e, 0x04, 0x01, 0x03, 0x07, 0x0e, 0x1c, 0x39, 0x30, 0x01, 0x03, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x09, 0x0f};
const uint8_t disconnectedTipIconFlip[] = {
//
// 41 x 16
0xe0, 0x60, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x80, 0x40, 0xcc, 0x1c, 0x38, 0x70, 0x20, 0x80, 0xc0, 0xe0, 0x70, 0x38, 0x9c, 0xcc, 0xc0, 0xc0,
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x0f, 0x09, 0x04, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x03, 0x01, 0x30,
0x39, 0x1c, 0x0e, 0x07, 0x03, 0x01, 0x04, 0x0e, 0x1c, 0x38, 0x31, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x07, 0x00, 0x05, 0x02, 0x01, 0x02, 0x01, 0x01, 0x01};
0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0x60, 0xe0, 0x00, 0x01, 0x01, 0x01, 0x02, 0x01, 0x02, 0x05, 0x00, 0x07, 0x01, 0x04, 0x01, 0x04, 0x01,
0x04, 0x31, 0x38, 0x1c, 0x0e, 0x04, 0x01, 0x03, 0x07, 0x0e, 0x1c, 0x39, 0x30, 0x01, 0x03, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x09, 0x0f, 0x00};
#endif
#if defined(MODEL_TS80) + defined(MODEL_TS80P) >= 1
const uint8_t idleScreenBG[] = {
// width = 84
const uint8_t buttonA[] = {
// width = 42
// height = 16
0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x81, 0xbd, 0x81, 0x01, 0x01, 0xfd, 0x01, 0x01, 0x71, 0x55, 0x71,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x19, 0x25, 0xc1, 0x01, 0x19, 0x25, 0xc1, 0x01, 0x31, 0x49, 0x81, 0x01, 0x02, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x83, 0xba, 0x83, 0x80, 0x8e, 0xaa, 0x8e, 0x80, 0x80, 0xbf, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x44, 0x4c, 0x94, 0x8c, 0x94, 0x8c, 0x94, 0x8c,
0x94, 0x8c, 0x94, 0x80, 0x9c, 0x8a, 0xa6, 0x8a, 0xa6, 0x8e, 0xa6, 0x9c, 0x81, 0x94, 0x88, 0x88, 0x8a, 0x81, 0x80, 0x40, 0x40, 0x20, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00};
const uint8_t disconnectedTipIcon[] = {
//
// 41 x 16
0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0x40, 0xc0, 0x40, 0x80, 0x00, 0x80, 0x80, 0x8c, 0x9c, 0x38, 0x70, 0xe0, 0xc0, 0x80, 0x20, 0x70, 0x38, 0x9c, 0x8c,
0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0x40, 0xe0, 0x60, 0xe0, 0x01, 0x01, 0x01, 0x02, 0x00, 0x03, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x03, 0x00, 0x02,
0x01, 0x32, 0x39, 0x1c, 0x0e, 0x04, 0x01, 0x03, 0x07, 0x0e, 0x1c, 0x38, 0x31, 0x02, 0x01, 0x02, 0x00, 0x02, 0x01, 0x04, 0x01, 0x04, 0x01, 0x0a, 0x01, 0x0f};
const uint8_t disconnectedTipIconFlip[] = {
//
// 41 x 16
0xe0, 0x60, 0xe0, 0x40, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x8c, 0x9c, 0x38, 0x70, 0x20, 0x80, 0xc0, 0xe0, 0x70, 0x38, 0x9c, 0x8c, 0x80, 0x80, 0x00,
0x80, 0x40, 0xc0, 0x40, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x0f, 0x01, 0x0a, 0x01, 0x04, 0x01, 0x04, 0x01, 0x02, 0x00, 0x02, 0x01, 0x02, 0x31, 0x38,
0x1c, 0x0e, 0x07, 0x03, 0x01, 0x04, 0x0e, 0x1c, 0x39, 0x32, 0x01, 0x02, 0x00, 0x03, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x03, 0x00, 0x02, 0x01, 0x01, 0x01};
0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x04, 0x02, 0x02, 0x01, 0x81, 0x49, 0x31, 0x01, 0xc1, 0x25, 0x19, 0x01, 0xc1, 0x25, 0x19, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x40, 0x80, 0x81, 0x8a, 0x88, 0x88,
0x8c, 0x95, 0x80, 0x9c, 0xa6, 0x8e, 0xa6, 0x8c, 0x80, 0x94, 0x8c, 0x94, 0x8c, 0x94, 0x8c, 0x94, 0x80, 0x88, 0x88, 0x88, 0x48, 0x48, 0x20, 0x18, 0x07, 0x00, 0x00, 0x00};
const uint8_t disconnectedTip[] = {
// width = 42
// height = 16
0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x80, 0x80, 0x80, 0x8c, 0x9c, 0x38, 0x70, 0xe0, 0xc0, 0x80, 0x20, 0x70, 0x38, 0x1c, 0x0c, 0x00,
0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xa0, 0xe0, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x03, 0x04, 0x01, 0x04, 0x01, 0x00, 0x02, 0x01,
0x02, 0x31, 0x38, 0x1c, 0x0e, 0x04, 0x01, 0x03, 0x07, 0x0e, 0x1c, 0x39, 0x31, 0x01, 0x01, 0x00, 0x02, 0x01, 0x02, 0x01, 0x04, 0x01, 0x04, 0x01, 0x0a, 0x01, 0x0f, 0x00};
#endif
#ifdef MODEL_MHP30
const uint8_t idleScreenBG[] = {
// width = 84
const uint8_t buttonA[] = {
// width = 42
// height = 16
0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x81, 0xbd, 0x81, 0x01, 0x01, 0xfd, 0x01, 0x01, 0x71, 0x55, 0x71,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x81,
0x81, 0x99, 0xa5, 0x01, 0xc1, 0xd9, 0xe5, 0x21, 0xe1, 0xf1, 0x89, 0x41, 0xc1, 0x81, 0x81, 0x81, 0x81, 0x01, 0x01, 0x02, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x83, 0xba, 0x83, 0x80, 0x8e, 0xaa, 0x8e, 0x80, 0x80, 0xbf, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x40, 0x86, 0x89, 0x85, 0x91, 0x8b, 0x93,
0x8b, 0xa3, 0x97, 0xa7, 0x97, 0xa7, 0x8f, 0xaf, 0x87, 0x97, 0xa5, 0x86, 0x93, 0x8b, 0x93, 0x83, 0x89, 0xa5, 0x89, 0x46, 0x40, 0x20, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00};
const uint8_t disconnectedTipIcon[] = {
//
// 41 x 16
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0xa0, 0x30, 0x70, 0x70, 0x60, 0x4c, 0x9c, 0x38, 0x70, 0xe4, 0xcc, 0x88, 0x20, 0x70, 0x38, 0x9c, 0x4c, 0x60,
0x70, 0x60, 0x20, 0xa0, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x29, 0x10, 0x22, 0x01,
0x32, 0x38, 0x1c, 0x0e, 0x04, 0x01, 0x03, 0x07, 0x0e, 0x1c, 0x38, 0x30, 0x01, 0x12, 0x29, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
const uint8_t disconnectedTipIconFlip[] = {
//
// 41 x 16
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0xa0, 0x20, 0x60, 0x70, 0x60, 0x4c, 0x9c, 0x38, 0x70, 0x20, 0x88, 0xcc, 0xe4, 0x70, 0x38, 0x9c, 0x4c, 0x60, 0x70,
0x70, 0x30, 0xa0, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x29, 0x12, 0x01, 0x30,
0x38, 0x1c, 0x0e, 0x07, 0x03, 0x01, 0x04, 0x0e, 0x1c, 0x38, 0x32, 0x01, 0x22, 0x10, 0x29, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x04, 0x02, 0x02, 0x81, 0x81, 0x41, 0x41, 0x41, 0x41, 0x21, 0x01, 0xc1, 0x25, 0x19, 0x01, 0x81, 0x49, 0x31, 0x01, 0xc1, 0x25, 0x19,
0x01, 0xa1, 0xa1, 0x41, 0x41, 0x01, 0x02, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x40, 0x83, 0x87, 0x83, 0xab, 0x86,
0x96, 0x8e, 0xa6, 0x9c, 0xad, 0x8c, 0xb8, 0x89, 0xa4, 0x84, 0x84, 0x92, 0x82, 0x81, 0xa9, 0x80, 0x84, 0x80, 0x81, 0x80, 0x40, 0x40, 0x20, 0x18, 0x07, 0x00, 0x00, 0x00};
const uint8_t disconnectedTip[] = {
// width = 42
// height = 16
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0xd0, 0xc8, 0x08, 0x10, 0x10, 0x10, 0x10,
0x20, 0x20, 0x20, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x38, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x04, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
#endif
// 16 x 16
const uint8_t brightnessIcon[]
= {0x80, 0x86, 0x8E, 0x9C, 0x18, 0xC0, 0xE0, 0xEF, 0xEF, 0xE0, 0xC0, 0x18, 0x9C, 0x8E, 0x86, 0x80, 0x01, 0x61, 0x71, 0x39, 0x18, 0x03, 0x07, 0xF7, 0xF7, 0x07, 0x03, 0x18, 0x39, 0x71, 0x61, 0x01};
const uint8_t buttonB[] = {
// width = 42
// height = 16
0x00, 0x00, 0x00, 0xe0, 0x18, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x71, 0x55, 0x71, 0x01, 0x01, 0xfd, 0x01, 0x01, 0x81, 0xbd, 0x81, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x80, 0x80, 0xbf, 0x80, 0x80, 0x8e, 0xaa, 0x8e, 0x80, 0x83, 0xba, 0x83, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00};
// 24 x 16
const uint8_t invertDisplayIcon[] = {0xFE, 0x01, 0x79, 0x25, 0x79, 0x01, 0xFE, 0x00, 0x20, 0x20, 0x20, 0x20, 0xDF, 0x07, 0x8F, 0xDF, 0xFF, 0x01, 0xFE, 0x86, 0xDA, 0x86, 0xFE, 0x01,
0x7F, 0x80, 0xA4, 0xBE, 0xA0, 0x80, 0x7F, 0x00, 0x04, 0x0E, 0x1F, 0x04, 0xFB, 0xFB, 0xFB, 0xFB, 0xFF, 0x80, 0x7F, 0x5B, 0x41, 0x5F, 0x7F, 0x80};
const uint8_t brightnessIcon[] = {
// width = 16
// height = 16
0x80, 0x86, 0x8E, 0x9C, 0x18, 0xC0, 0xE0, 0xEF, 0xEF, 0xE0, 0xC0, 0x18, 0x9C, 0x8E, 0x86, 0x80, 0x01, 0x61, 0x71, 0x39, 0x18, 0x03, 0x07, 0xF7, 0xF7, 0x07, 0x03, 0x18, 0x39, 0x71, 0x61, 0x01};
const uint8_t invertDisplayIcon[] = {
// width = 24
// height = 16
0xFE, 0x01, 0x79, 0x25, 0x79, 0x01, 0xFE, 0x00, 0x20, 0x20, 0x20, 0x20, 0xDF, 0x07, 0x8F, 0xDF, 0xFF, 0x01, 0xFE, 0x86, 0xDA, 0x86, 0xFE, 0x01,
0x7F, 0x80, 0xA4, 0xBE, 0xA0, 0x80, 0x7F, 0x00, 0x04, 0x0E, 0x1F, 0x04, 0xFB, 0xFB, 0xFB, 0xFB, 0xFF, 0x80, 0x7F, 0x5B, 0x41, 0x5F, 0x7F, 0x80};
const uint8_t infinityIcon[] = {
// width = 24
// height = 16
0x00, 0xc0, 0x70, 0x18, 0x0c, 0x0c, 0x0c, 0x0c, 0x18, 0x10, 0x20, 0x80, 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x0c, 0x18, 0x70, 0xc0, 0x00,
0x00, 0x01, 0x07, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x02, 0x04, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x0c, 0x07, 0x01, 0x00};
/*
* 16x16 icons
* 32 * 3 = Frame size * Frame count
* */
const uint8_t SettingsMenuIcons[][32 * 3] = {
// Power
// 3 frames
// width = 16
// height = 16
{
// Power 1 frame
// Power 1st frame
// width = 16
// height = 16
0x00,
@@ -251,7 +240,7 @@ const uint8_t SettingsMenuIcons[][32 * 3] = {
0x00,
0x00,
// Power 2 frame
// Power 2nd frame
// width = 16
// height = 16
0x00,
@@ -326,10 +315,8 @@ const uint8_t SettingsMenuIcons[][32 * 3] = {
// Soldering
// 3 frames
// width = 16
// height = 16
{
// Soldering 1 frame
// Soldering 1st frame
// width = 16
// height = 16
0x00,
@@ -365,7 +352,7 @@ const uint8_t SettingsMenuIcons[][32 * 3] = {
0x00,
0x00,
// Soldering 2 frame
// Soldering 2nd frame
// width = 16
// height = 16
0x00,
@@ -440,10 +427,8 @@ const uint8_t SettingsMenuIcons[][32 * 3] = {
// Sleep
// 3 frames
// width = 16
// height = 16
{
// Sleep 1 frame
// Sleep 1st frame
// width = 16
// height = 16
0x00,
@@ -479,7 +464,7 @@ const uint8_t SettingsMenuIcons[][32 * 3] = {
0x00,
0x00,
// Sleep 2 frame
// Sleep 2nd frame
// width = 16
// height = 16
0x00,
@@ -554,10 +539,8 @@ const uint8_t SettingsMenuIcons[][32 * 3] = {
// UI
// 3 frames
// width = 16
// height = 16
{
// UI 1 frame
// UI 1st frame
// width = 16
// height = 16
0x00,
@@ -593,7 +576,7 @@ const uint8_t SettingsMenuIcons[][32 * 3] = {
0x61,
0x00,
// UI 2 frame
// UI 2nd frame
// width = 16
// height = 16
0x00,
@@ -668,11 +651,9 @@ const uint8_t SettingsMenuIcons[][32 * 3] = {
// Advanced
// 3 frames
/// width = 16
// height = 16
{
// Advanced 1 frame
/// width = 16
// Advanced 1st frame
// width = 16
// height = 16
0x00,
0xfe,
@@ -707,8 +688,8 @@ const uint8_t SettingsMenuIcons[][32 * 3] = {
0x22,
0x0c,
// Advanced 2 frame
/// width = 16
// Advanced 2nd frame
// width = 16
// height = 16
0xe0,
0xae,
@@ -744,7 +725,7 @@ const uint8_t SettingsMenuIcons[][32 * 3] = {
0x1c,
// Advanced final frame
/// width = 16
// width = 16
// height = 16
0x00,
0x7e,
@@ -783,10 +764,8 @@ const uint8_t SettingsMenuIcons[][32 * 3] = {
// Calibration (Not used, kept for future menu layouts)
// 3 frames
// width = 16
// height = 16
{
// Calibration 1 frame (Not used, kept for future menu layouts)
// Calibration 1st frame (Not used, kept for future menu layouts)
// width = 16
// height = 16
0x00,
@@ -822,7 +801,7 @@ const uint8_t SettingsMenuIcons[][32 * 3] = {
0x00,
0x00,
// Calibration 2 frame (Not used, kept for future menu layouts)
// Calibration 2nd frame (Not used, kept for future menu layouts)
// width = 16
// height = 16
0x00,

View File

@@ -36,4 +36,14 @@ void LIS2DH12::getAxisReadings(int16_t &x, int16_t &y, int16_t &z) {
z = sensorData[2];
}
bool LIS2DH12::detect() { return FRToSI2C::probe(LIS2DH_I2C_ADDRESS); }
bool LIS2DH12::detect() {
if (!FRToSI2C::probe(LIS2DH_I2C_ADDRESS)) {
return false;
}
// Read chip id to ensure its not an address collision
uint8_t id = 0;
if (FRToSI2C::Mem_Read(LIS2DH_I2C_ADDRESS, LIS2DH_WHOAMI_REG, &id, 1)) {
return id == LIS2DH_WHOAMI_ID;
}
return false; // cant read ID
}

View File

@@ -9,19 +9,20 @@
#define LIS2DH12_DEFINES_HPP_
#define LIS2DH_I2C_ADDRESS (25 << 1)
#define LIS_CTRL_REG1 0x20 | 0x80
#define LIS_CTRL_REG2 0x21 | 0x80
#define LIS_CTRL_REG3 0x22 | 0x80
#define LIS_CTRL_REG4 0x23 | 0x80
#define LIS_CTRL_REG5 0x24 | 0x80
#define LIS_CTRL_REG6 0x25 | 0x80
#define LIS_INT1_CFG 0xB0 | 0x80
#define LIS_INT2_CFG 0xB4 | 0x80
#define LIS_INT1_DURATION 0x33 | 0x80
#define LIS_INT1_THS 0x32 | 0x80
#define LIS_INT1_SRC 0x31 | 0x80
#define LIS_INT2_DURATION 0x37 | 0x80
#define LIS_INT2_THS 0x36 | 0x80
#define LIS_INT2_SRC 0x35 | 0x80
#define LIS2DH_WHOAMI_REG 0x0F
#define LIS2DH_WHOAMI_ID (0b00110011)
#define LIS_CTRL_REG1 0x20 | 0x80
#define LIS_CTRL_REG2 0x21 | 0x80
#define LIS_CTRL_REG3 0x22 | 0x80
#define LIS_CTRL_REG4 0x23 | 0x80
#define LIS_CTRL_REG5 0x24 | 0x80
#define LIS_CTRL_REG6 0x25 | 0x80
#define LIS_INT1_CFG 0xB0 | 0x80
#define LIS_INT2_CFG 0xB4 | 0x80
#define LIS_INT1_DURATION 0x33 | 0x80
#define LIS_INT1_THS 0x32 | 0x80
#define LIS_INT1_SRC 0x31 | 0x80
#define LIS_INT2_DURATION 0x37 | 0x80
#define LIS_INT2_THS 0x36 | 0x80
#define LIS_INT2_SRC 0x35 | 0x80
#endif /* LIS2DH12_DEFINES_HPP_ */

View File

@@ -61,7 +61,13 @@ public:
static void setRotation(bool leftHanded); // Set the rotation for the screen
// Get the current rotation of the LCD
static bool getRotation() { return inLeftHandedMode; }
static bool getRotation() {
#ifdef OLED_FLIP
return !inLeftHandedMode;
#else
return inLeftHandedMode;
#endif
}
static void setBrightness(uint8_t contrast);
static void setInverseDisplay(bool inverted);
static int16_t getCursorX() { return cursor_x; }

View File

@@ -5,19 +5,38 @@
* Author: Ralim
*/
#include "LIS2DH12_defines.hpp"
#include <SC7A20.hpp>
#include <SC7A20_defines.h>
#include <array>
bool SC7A20::isInImitationMode;
/*
- This little accelerometer seems to come in two forms, its "normal" setup, and then one where it imitates the LIS2DH12
- This can be detected by checking the whoami registers
*/
bool SC7A20::detect() {
if (FRToSI2C::probe(SC7A20_ADDRESS)) {
// Read chip id to ensure its not an address collision
uint8_t id = 0;
if (FRToSI2C::Mem_Read(SC7A20_ADDRESS, SC7A20_WHO_AMI_I, &id, 1)) {
return id == 0b00010001;
if (id == SC7A20_WHO_AM_I_VALUE) {
isInImitationMode = false;
return true;
}
}
}
if (FRToSI2C::probe(SC7A20_ADDRESS2)) {
// Read chip id to ensure its not an address collision
uint8_t id = 0;
if (FRToSI2C::Mem_Read(SC7A20_ADDRESS2, SC7A20_WHO_AMI_I, &id, 1)) {
if (id == SC7A20_WHO_AM_I_VALUE) {
isInImitationMode = true;
return true;
}
}
}
return false;
}
@@ -40,6 +59,20 @@ static const FRToSI2C::I2C_REG i2c_registers[] = {
//
};
static const FRToSI2C::I2C_REG i2c_registers_alt[] = {{LIS_CTRL_REG1, 0b00110111, 0}, // 200Hz XYZ
{LIS_CTRL_REG2, 0b00000000, 0}, //
{LIS_CTRL_REG3, 0b01100000, 0}, // Setup interrupt pins
{LIS_CTRL_REG4, 0b00001000, 0}, // Block update mode off, HR on
{LIS_CTRL_REG5, 0b00000010, 0}, //
{LIS_CTRL_REG6, 0b01100010, 0},
// Basically setup the unit to run, and enable 4D orientation detection
{LIS_INT2_CFG, 0b01111110, 0}, // setup for movement detection
{LIS_INT2_THS, 0x28, 0}, //
{LIS_INT2_DURATION, 64, 0}, //
{LIS_INT1_CFG, 0b01111110, 0}, //
{LIS_INT1_THS, 0x28, 0}, //
{LIS_INT1_DURATION, 64, 0}};
bool SC7A20::initalize() {
// Setup acceleration readings
// 2G range
@@ -49,15 +82,18 @@ bool SC7A20::initalize() {
// Orientation recognition in symmetrical mode
// Hysteresis is set to ~ 16 counts
// Theta blocking is set to 0b10
return FRToSI2C::writeRegistersBulk(SC7A20_ADDRESS, i2c_registers, sizeof(i2c_registers) / sizeof(i2c_registers[0]));
if (isInImitationMode) {
return FRToSI2C::writeRegistersBulk(SC7A20_ADDRESS2, i2c_registers_alt, sizeof(i2c_registers_alt) / sizeof(i2c_registers_alt[0]));
} else {
return FRToSI2C::writeRegistersBulk(SC7A20_ADDRESS, i2c_registers, sizeof(i2c_registers) / sizeof(i2c_registers[0]));
}
}
void SC7A20::getAxisReadings(int16_t &x, int16_t &y, int16_t &z) {
// We can tell the accelerometer to output in LE mode which makes this simple
uint16_t sensorData[3] = {0, 0, 0};
if (FRToSI2C::Mem_Read(SC7A20_ADDRESS, SC7A20_OUT_X_L, (uint8_t *)sensorData, 6) == false) {
if (FRToSI2C::Mem_Read(isInImitationMode ? SC7A20_ADDRESS2 : SC7A20_ADDRESS, isInImitationMode ? SC7A20_OUT_X_L_ALT : SC7A20_OUT_X_L, (uint8_t *)sensorData, 6) == false) {
x = y = z = 0;
return;
}

View File

@@ -17,17 +17,26 @@ public:
static bool initalize();
// 1 = rh, 2,=lh, 8=flat
static Orientation getOrientation() {
uint8_t val = ((FRToSI2C::I2C_RegisterRead(SC7A20_ADDRESS, SC7A20_INT2_SOURCE) >> 2) - 1);
if (val == 1)
return Orientation::ORIENTATION_LEFT_HAND;
else if (val == 4 || val == 0)
uint8_t val = ((FRToSI2C::I2C_RegisterRead(isInImitationMode ? SC7A20_ADDRESS2 : SC7A20_ADDRESS, SC7A20_INT2_SOURCE) >> 2) - 1);
if (val == 1) {
#ifdef SC7_ORI_FLIP
return Orientation::ORIENTATION_RIGHT_HAND;
else
#else
return Orientation::ORIENTATION_LEFT_HAND;
#endif
} else if (val == 4 || val == 0) {
#ifdef SC7_ORI_FLIP
return Orientation::ORIENTATION_LEFT_HAND;
#else
return Orientation::ORIENTATION_RIGHT_HAND;
#endif
} else
return Orientation::ORIENTATION_FLAT;
}
static void getAxisReadings(int16_t &x, int16_t &y, int16_t &z);
private:
static bool isInImitationMode;
};
#endif /* CORE_DRIVERS_BMA223_HPP_ */

View File

@@ -1,5 +1,5 @@
/*
* BMA223_defines.h
* SC7A20_defines.h
*
* Created on: 18 Sep. 2020
* Author: Ralim
@@ -8,39 +8,44 @@
#ifndef CORE_DRIVERS_SC7A20_DEFINES_H_
#define CORE_DRIVERS_SC7A20_DEFINES_H_
#define SC7A20_ADDRESS 0x18 << 1
#define SC7A20_WHO_AMI_I 0x0F
#define SC7A20_CTRL_REG1 0x20
#define SC7A20_CTRL_REG2 0x21
#define SC7A20_CTRL_REG3 0x22
#define SC7A20_CTRL_REG4 0x23
#define SC7A20_CTRL_REG5 0x24
#define SC7A20_CTRL_REG6 0x25
#define SC7A20_REFERENCE 0x26
#define SC7A20_STATUS_REG 0x27
#define SC7A20_OUT_X_L 0x28
#define SC7A20_OUT_X_H 0x29
#define SC7A20_OUT_Y_L 0x2A
#define SC7A20_OUT_Y_H 0x2B
#define SC7A20_OUT_Z_L 0x2C
#define SC7A20_OUT_Z_H 0x2D
#define SC7A20_FIFO_CTRL 0x2E
#define SC7A20_FIFO_SRC 0x2F
#define SC7A20_INT1_CFG 0x30
#define SC7A20_INT1_SOURCE 0x31
#define SC7A20_INT1_THS 0x32
#define SC7A20_INT1_DURATION 0x33
#define SC7A20_INT2_CFG 0x34
#define SC7A20_INT2_SOURCE 0x35
#define SC7A20_INT2_THS 0x36
#define SC7A20_INT2_DURATION 0x37
#define SC7A20_CLICK_CFG 0x38
#define SC7A20_CLICK_SRC 0x39
#define SC7A20_CLICK_THS 0x3A
#define SC7A20_TIME_LIMIT 0x3B
#define SC7A20_TIME_LATENCY 0x3C
#define SC7A20_TIME_WINDOW 0x3D
#define SC7A20_ACT_THS 0x3E
#define SC7A20_ACT_DURATION 0x3F
#define SC7A20_ADDRESS 0x18 << 1
// Sometimes the SC7A20 turns up programmed to impersonate the LIS2DH12
#define SC7A20_ADDRESS2 (25 << 1)
#define SC7A20_WHO_AM_I_VALUE (0b00010001)
#define SC7A20_WHO_AMI_I 0x0F
#define SC7A20_CTRL_REG1 0x20
#define SC7A20_CTRL_REG2 0x21
#define SC7A20_CTRL_REG3 0x22
#define SC7A20_CTRL_REG4 0x23
#define SC7A20_CTRL_REG5 0x24
#define SC7A20_CTRL_REG6 0x25
#define SC7A20_REFERENCE 0x26
#define SC7A20_STATUS_REG 0x27
#define SC7A20_OUT_X_L 0x28
#define SC7A20_OUT_X_L_ALT 0xA8
#define SC7A20_OUT_X_H 0x29
#define SC7A20_OUT_Y_L 0x2A
#define SC7A20_OUT_Y_H 0x2B
#define SC7A20_OUT_Z_L 0x2C
#define SC7A20_OUT_Z_H 0x2D
#define SC7A20_FIFO_CTRL 0x2E
#define SC7A20_FIFO_SRC 0x2F
#define SC7A20_INT1_CFG 0x30
#define SC7A20_INT1_SOURCE 0x31
#define SC7A20_INT1_THS 0x32
#define SC7A20_INT1_DURATION 0x33
#define SC7A20_INT2_CFG 0x34
#define SC7A20_INT2_SOURCE 0x35
#define SC7A20_INT2_THS 0x36
#define SC7A20_INT2_DURATION 0x37
#define SC7A20_CLICK_CFG 0x38
#define SC7A20_CLICK_SRC 0x39
#define SC7A20_CLICK_THS 0x3A
#define SC7A20_TIME_LIMIT 0x3B
#define SC7A20_TIME_LATENCY 0x3C
#define SC7A20_TIME_WINDOW 0x3D
#define SC7A20_ACT_THS 0x3E
#define SC7A20_ACT_DURATION 0x3F
#endif /* CORE_DRIVERS_BMA223_DEFINES_H_ */

View File

@@ -67,8 +67,24 @@ bool USBPowerDelivery::fusbPresent() {
return detectionState == 1;
}
bool pdbs_dpm_evaluate_capability(const pd_msg *capabilities, pd_msg *request) {
bool USBPowerDelivery::isVBUSConnected() {
static uint8_t state = 0;
if (state) {
return state == 1;
}
if (fusb.isVBUSConnected()) {
state = 1;
return true;
} else {
state = 2;
return false;
}
}
pd_msg lastCapabilities;
pd_msg *USBPowerDelivery::getLastSeenCapabilities() { return &lastCapabilities; }
bool pdbs_dpm_evaluate_capability(const pd_msg *capabilities, pd_msg *request) {
memcpy(&lastCapabilities, capabilities, sizeof(pd_msg));
/* Get the number of PDOs */
uint8_t numobj = PD_NUMOBJ_GET(capabilities);

View File

@@ -2,6 +2,7 @@
#ifndef DRIVERS_USBPD_H_
#define DRIVERS_USBPD_H_
#include "configuration.h"
#include "pdb_msg.h"
#include <stdbool.h>
#include <stdint.h>
@@ -9,16 +10,17 @@
#if POW_PD
class USBPowerDelivery {
public:
static bool start(); // Start the PD stack
static bool negotiationComplete(); // Has negotiation completed to a voltage > 5v
static bool negotiationInProgress(); // Is negotiation ongoing
static bool fusbPresent(); // Is the FUSB302 present on the bus
static void PPSTimerCallback(); // PPS Timer
static void IRQOccured(); // Thread callback that an irq occured
static void step(); // Iterate the step machine
static bool negotiationHasWorked(); //
static uint8_t getStateNumber(); //
static bool start(); // Start the PD stack
static bool negotiationComplete(); // Has negotiation completed to a voltage > 5v
static bool negotiationInProgress(); // Is negotiation ongoing
static bool fusbPresent(); // Is the FUSB302 present on the bus
static void PPSTimerCallback(); // PPS Timer
static void IRQOccured(); // Thread callback that an irq occured
static void step(); // Iterate the step machine
static bool negotiationHasWorked(); // Has PD negotiation worked (are we in a PD contract)
static uint8_t getStateNumber(); // Debugging - Get the internal state number
static bool isVBUSConnected(); // Is the VBus pin connected on the FUSB302
static pd_msg *getLastSeenCapabilities(); // returns pointer to the last seen capabilities from the powersource
private:
//
static int detectionState;

View File

@@ -49,9 +49,10 @@ enum SettingsOptions {
PDNegTimeout = 32, // PD timeout in 100ms steps
OLEDInversion = 33, // Invert the colours on the display
OLEDBrightness = 34, // Brightness for the OLED display
LOGOTime = 35, // Duration the logo will be displayed for
//
SettingsOptionsLength = 35, //
SettingsOptionsLength = 36, //
};
typedef enum {

View File

@@ -14,6 +14,7 @@ extern const bool HasFahrenheit;
extern const char *SymbolPlus;
extern const char *SymbolMinus;
extern const char *SymbolSpace;
extern const char *SymbolAmps;
extern const char *SymbolDot;
extern const char *SymbolDegC;
extern const char *SymbolDegF;
@@ -24,6 +25,10 @@ extern const char *SymbolVolts;
extern const char *SymbolDC;
extern const char *SymbolCellCount;
extern const char *SymbolVersionNumber;
extern const char *SymbolPDDebug;
extern const char *SymbolState;
extern const char *SymbolNoVBus;
extern const char *SymbolVBus;
extern const char *DebugMenu[];
extern const char *AccelTypeNames[];
@@ -63,6 +68,7 @@ enum class SettingsItemIndex : uint8_t {
LanguageSwitch,
Brightness,
ColourInversion,
LOGOTime,
NUM_ITEMS,
};
@@ -76,13 +82,8 @@ struct TranslationIndexTable {
uint16_t SleepingSimpleString;
uint16_t SleepingAdvancedString;
uint16_t SleepingTipAdvancedString;
uint16_t IdleTipString;
uint16_t IdleSetString;
uint16_t TipDisconnectedString;
uint16_t SolderingAdvancedPowerPrompt;
uint16_t OffString;
uint16_t ResetOKMessage;
uint16_t SettingsResetMessage;
uint16_t NoAccelerometerMessage;
uint16_t NoPowerDeliveryMessage;
@@ -109,7 +110,6 @@ struct TranslationIndexTable {
uint16_t SettingLockDisableChar;
uint16_t SettingLockBoostChar;
uint16_t SettingLockFullChar;
uint16_t SettingNAChar;
uint16_t SettingsDescriptions[static_cast<uint32_t>(SettingsItemIndex::NUM_ITEMS)];
uint16_t SettingsShortNames[static_cast<uint32_t>(SettingsItemIndex::NUM_ITEMS)];
@@ -118,7 +118,8 @@ struct TranslationIndexTable {
};
extern const TranslationIndexTable *Tr;
extern const char * TranslationStrings;
extern const char *TranslationStrings;
struct TranslationData {
TranslationIndexTable indices;

View File

@@ -1,5 +1,5 @@
/*
* gui.h
* settingsGUI.h
*
* Created on: 3Sep.,2017
* Author: Ben V. Brown

View File

@@ -3,10 +3,10 @@
#include "Translation_multi.h"
#include "brieflz.h"
#include "configuration.h"
#include "gui.hpp"
#include "settingsGUI.hpp"
const TranslationIndexTable *Tr = nullptr;
const char * TranslationStrings = nullptr;
const char *TranslationStrings = nullptr;
static uint8_t selectedLangIndex = 255;
@@ -38,7 +38,7 @@ void prepareTranslations() {
const TranslationData *translationData;
uint16_t buffer_remaining_size = translation_data_out_buffer_size;
uint8_t * buffer_next_ptr = translation_data_out_buffer;
uint8_t *buffer_next_ptr = translation_data_out_buffer;
if (langMeta.translation_is_compressed) {
unsigned int outsize;
outsize = blz_depack_srcsize(langMeta.translation_data, buffer_next_ptr, langMeta.translation_size);
@@ -55,7 +55,7 @@ void prepareTranslations() {
memset(DynamicFontSections, 0, FontSectionsCount * sizeof(DynamicFontSections[0]));
for (int i = 0; i < FontSectionDataCount; i++) {
const auto &fontSectionDataInfo = FontSectionDataInfos[i];
auto & fontSection = DynamicFontSections[i];
auto &fontSection = DynamicFontSections[i];
fontSection.symbol_start = fontSectionDataInfo.symbol_start;
fontSection.symbol_end = fontSection.symbol_start + fontSectionDataInfo.symbol_count;
const uint16_t font12_size = fontSectionDataInfo.symbol_count * (12 * 16 / 8);

View File

@@ -29,7 +29,7 @@ typedef struct {
uint16_t versionMarker;
uint16_t length; // Length of valid bytes following
uint16_t settingsValues[SettingsOptionsLength];
// used to make this nicely "good enough" aligned to 32 butes to make driver code trivial
// used to make this nicely "good enough" aligned to 32 bytes to make driver code trivial
uint32_t padding;
} systemSettingsType;
@@ -77,13 +77,14 @@ static const SettingConstants settingsConstants[(int)SettingsOptions::SettingsOp
{0, 1, 1, REVERSE_BUTTON_TEMP_CHANGE}, // ReverseButtonTempChangeEnabled
{5, TEMP_CHANGE_LONG_STEP_MAX, 5, TEMP_CHANGE_LONG_STEP}, // TempChangeLongStep
{1, TEMP_CHANGE_SHORT_STEP_MAX, 1, TEMP_CHANGE_SHORT_STEP}, // TempChangeShortStep
{0, 3, 1, 1}, // HallEffectSensitivity
{0, 9, 1, 7}, // HallEffectSensitivity
{0, 9, 1, 0}, // AccelMissingWarningCounter
{0, 9, 1, 0}, // PDMissingWarningCounter
{0, 0xFFFF, 0, 41431 /*EN*/}, // UILanguage
{0, 50, 1, 20}, // PDNegTimeout
{0, 1, 1, 0}, // OLEDInversion
{0, 99, 11, 33}, // OLEDBrightness
{0, 5, 1, 1}, // LOGOTime
};
static_assert((sizeof(settingsConstants) / sizeof(SettingConstants)) == ((int)SettingsOptions::SettingsOptionsLength));
@@ -172,25 +173,43 @@ bool nextSettingValue(const enum SettingsOptions option) {
// Return true if we are at the end (min)
bool prevSettingValue(const enum SettingsOptions option) {
const auto constants = settingsConstants[(int)option];
int value = systemSettings.settingsValues[(int)option];
if (value <= constants.min) {
value = constants.max;
if (systemSettings.settingsValues[(int)option] == (constants.min)) {
// Already at min, wrap to the max
systemSettings.settingsValues[(int)option] = constants.max;
} else if (systemSettings.settingsValues[(int)option] <= (constants.min + constants.increment)) {
// If within one increment of the start, constrain to the start
systemSettings.settingsValues[(int)option] = constants.min;
} else {
// Otherwise decrement
systemSettings.settingsValues[(int)option] -= constants.increment;
}
value -= constants.increment;
systemSettings.settingsValues[(int)option] = value;
return systemSettings.settingsValues[(int)option] == constants.min;
// Return if we are at the min
return constants.min == systemSettings.settingsValues[(int)option];
}
uint16_t lookupHallEffectThreshold() {
// Return the threshold above which the hall effect sensor is "activated"
// We want this to be roughly exponentially mapped from 0-1000
switch (getSettingValue(SettingsOptions::HallEffectSensitivity)) {
case 0:
return 0;
case 1: // Low
case 1:
return 1000;
case 2: // Medium
case 2:
return 750;
case 3:
return 500;
case 3: // High
case 4:
return 250;
case 5:
return 150;
case 6:
return 100;
case 7:
return 75;
case 8:
return 50;
case 9:
return 25;
default:
return 0; // Off
}

View File

@@ -1,11 +1,11 @@
/*
* gui.cpp
* settingsGUI.cpp
*
* Created on: 3Sep.,2017
* Author: Ben V. Brown
*/
#include "gui.hpp"
#include "settingsGUI.hpp"
#include "Buttons.hpp"
#include "ScrollMessage.hpp"
#include "TipThermoModel.h"
@@ -69,9 +69,11 @@ static bool settings_showPowerPulseOptions(void);
static void settings_displayPowerPulseDuration(void);
static void settings_displayBrightnessLevel(void);
static void settings_displayInvertColor(void);
static void settings_displayLogoTime(void);
#ifdef HALL_SENSOR
static void settings_displayHallEffect(void);
static bool settings_showHallEffect(void);
#endif
// Menu functions
@@ -92,39 +94,45 @@ static bool settings_enterAdvancedMenu(void);
*
* Power Menu
* Power Source
* -Minimum Voltage
* QC Voltage
* PD Timeout
*
* Soldering
* Boost Mode Enabled
* Boost Mode Temp
* Auto Start
* Temp change short step
* Temp change long step
* Locking Mode
*
* Power Saving
* Sleep Temp
* Sleep Time
* Shutdown Time
* Motion Sensitivity
* -Sleep Temp
* -Sleep Time
* -Shutdown Time
*
* UI
* // Language
* Scrolling Speed
* Temperature Unit
* Display orientation
* Cooldown blink
* Scrolling Speed
* Reverse Temp change buttons + -
*
* Advanced
* Enable Power Limit
* Power Limit
* Animation Speed
* -Animation Loop
* OLED Brightnes
* Invert Screen
* Detailed IDLE
* Detailed Soldering
* Logo Time
*
* Advanced
* Power Limit
* Factory Reset
* Calibrate Temperature
* Calibrate Input V
* Reset Settings
* Power Pulse
* -Power Pulse Delay
* -Power Pulse duration
*
*/
const menuitem rootSettingsMenu[] {
@@ -153,7 +161,10 @@ const menuitem rootSettingsMenu[] {
#if defined(POW_DC) || defined(POW_QC) || defined(POW_PD)
const menuitem powerMenu[] = {
/*
* Power Source
* Power Source
* -Minimum Voltage
* QC Voltage
* PD Timeout
*/
#ifdef POW_DC
{SETTINGS_DESC(SettingsItemIndex::DCInCutoff), nullptr, settings_displayInputVRange, nullptr, SettingsOptions::MinDCVoltageCells}, /*Voltage input*/
@@ -170,11 +181,11 @@ const menuitem powerMenu[] = {
#endif
const menuitem solderingMenu[] = {
/*
* Boost Mode Enabled
* Boost Mode Temp
* Boost Temp
* Auto Start
* Temp change short step
* Temp change long step
* Locking Mode
*/
{SETTINGS_DESC(SettingsItemIndex::BoostTemperature), settings_setBoostTemp, settings_displayBoostTemp, nullptr, SettingsOptions::SettingsOptionsLength}, /*Boost Temp*/
{SETTINGS_DESC(SettingsItemIndex::AutoStart), nullptr, settings_displayAutomaticStartMode, nullptr, SettingsOptions::AutoStartMode}, /*Auto start*/
@@ -183,14 +194,37 @@ const menuitem solderingMenu[] = {
{SETTINGS_DESC(SettingsItemIndex::LockingMode), nullptr, settings_displayLockingMode, nullptr, SettingsOptions::LockingMode}, /*Locking Mode*/
{0, nullptr, nullptr, nullptr, SettingsOptions::SettingsOptionsLength} // end of menu marker. DO NOT REMOVE
};
const menuitem PowerSavingMenu[] = {
/*
* Motion Sensitivity
* -Sleep Temp
* -Sleep Time
* -Shutdown Time
*/
#ifndef NO_SLEEP_MODE
{SETTINGS_DESC(SettingsItemIndex::MotionSensitivity), nullptr, settings_displaySensitivity, nullptr, SettingsOptions::Sensitivity}, /* Motion Sensitivity*/
{SETTINGS_DESC(SettingsItemIndex::SleepTemperature), settings_setSleepTemp, settings_displaySleepTemp, settings_showSleepOptions, SettingsOptions::SettingsOptionsLength}, /*Sleep Temp*/
{SETTINGS_DESC(SettingsItemIndex::SleepTimeout), nullptr, settings_displaySleepTime, settings_showSleepOptions, SettingsOptions::SleepTime}, /*Sleep Time*/
{SETTINGS_DESC(SettingsItemIndex::ShutdownTimeout), nullptr, settings_displayShutdownTime, settings_showSleepOptions, SettingsOptions::ShutdownTime}, /*Shutdown Time*/
#endif
#ifdef HALL_SENSOR
{SETTINGS_DESC(SettingsItemIndex::HallEffSensitivity), nullptr, settings_displayHallEffect, settings_showHallEffect, SettingsOptions::HallEffectSensitivity}, /* HallEffect Sensitivity*/
#endif
{0, nullptr, nullptr, nullptr, SettingsOptions::SettingsOptionsLength} // end of menu marker. DO NOT REMOVE
};
const menuitem UIMenu[] = {
/*
// Language
* Scrolling Speed
* // Language
* Temperature Unit
* Display orientation
* Cooldown blink
* Scrolling Speed
* Reverse Temp change buttons + -
* Animation Speed
* -Animation Loop
* OLED Brightnes
* Invert Screen
* Logo Timeout
* Detailed IDLE
* Detailed Soldering
*/
@@ -202,45 +236,26 @@ const menuitem UIMenu[] = {
{SETTINGS_DESC(SettingsItemIndex::CooldownBlink), nullptr, settings_displayCoolingBlinkEnabled, nullptr, SettingsOptions::CoolingTempBlink}, /*Cooling blink warning*/
{SETTINGS_DESC(SettingsItemIndex::ScrollingSpeed), nullptr, settings_displayScrollSpeed, nullptr, SettingsOptions::DescriptionScrollSpeed}, /*Scroll Speed for descriptions*/
{SETTINGS_DESC(SettingsItemIndex::ReverseButtonTempChange), nullptr, settings_displayReverseButtonTempChangeEnabled, nullptr,
SettingsOptions::ReverseButtonTempChangeEnabled}, /* Reverse Temp change buttons + - */
SettingsOptions::ReverseButtonTempChangeEnabled}, /*Reverse Temp change buttons + - */
{SETTINGS_DESC(SettingsItemIndex::AnimSpeed), nullptr, settings_displayAnimationSpeed, nullptr, SettingsOptions::AnimationSpeed}, /*Animation Speed adjustment */
{SETTINGS_DESC(SettingsItemIndex::AnimLoop), nullptr, settings_displayAnimationLoop, settings_displayAnimationOptions, SettingsOptions::AnimationLoop}, /*Animation Loop switch */
{SETTINGS_DESC(SettingsItemIndex::Brightness), nullptr, settings_displayBrightnessLevel, nullptr, SettingsOptions::OLEDBrightness}, /*Brightness Level*/
{SETTINGS_DESC(SettingsItemIndex::ColourInversion), nullptr, settings_displayInvertColor, nullptr, SettingsOptions::OLEDInversion}, /*Invert screen colour*/
{SETTINGS_DESC(SettingsItemIndex::AdvancedIdle), nullptr, settings_displayAdvancedIDLEScreens, nullptr, SettingsOptions::DetailedIDLE}, /* Advanced idle screen*/
{SETTINGS_DESC(SettingsItemIndex::AdvancedSoldering), nullptr, settings_displayAdvancedSolderingScreens, nullptr, SettingsOptions::DetailedSoldering}, /* Advanced soldering screen*/
{SETTINGS_DESC(SettingsItemIndex::LOGOTime), nullptr, settings_displayLogoTime, nullptr, SettingsOptions::LOGOTime}, /*Set logo duration*/
{SETTINGS_DESC(SettingsItemIndex::AdvancedIdle), nullptr, settings_displayAdvancedIDLEScreens, nullptr, SettingsOptions::DetailedIDLE}, /*Advanced idle screen*/
{SETTINGS_DESC(SettingsItemIndex::AdvancedSoldering), nullptr, settings_displayAdvancedSolderingScreens, nullptr, SettingsOptions::DetailedSoldering}, /*Advanced soldering screen*/
{0, nullptr, nullptr, nullptr, SettingsOptions::SettingsOptionsLength} // end of menu marker. DO NOT REMOVE
};
const menuitem PowerSavingMenu[] = {
/*
* Motion Sensitivity
* Sleep Temp
* Sleep Time
* Shutdown Time
*/
#ifndef NO_SLEEP_MODE
{SETTINGS_DESC(SettingsItemIndex::MotionSensitivity), nullptr, settings_displaySensitivity, nullptr, SettingsOptions::Sensitivity}, /* Motion Sensitivity*/
{SETTINGS_DESC(SettingsItemIndex::SleepTemperature), settings_setSleepTemp, settings_displaySleepTemp, settings_showSleepOptions, SettingsOptions::SettingsOptionsLength}, /*Sleep Temp*/
{SETTINGS_DESC(SettingsItemIndex::SleepTimeout), nullptr, settings_displaySleepTime, settings_showSleepOptions, SettingsOptions::SleepTime}, /*Sleep Time*/
{SETTINGS_DESC(SettingsItemIndex::ShutdownTimeout), nullptr, settings_displayShutdownTime, settings_showSleepOptions, SettingsOptions::ShutdownTime}, /*Shutdown Time*/
#endif
#ifdef HALL_SENSOR
{SETTINGS_DESC(SettingsItemIndex::HallEffSensitivity), nullptr, settings_displayHallEffect, nullptr, SettingsOptions::HallEffectSensitivity}, /* HallEffect Sensitivity*/
#endif
{0, nullptr, nullptr, nullptr, SettingsOptions::SettingsOptionsLength} // end of menu marker. DO NOT REMOVE
};
const menuitem advancedMenu[] = {
/*
* Power limit
* Power Limit
* Factory Reset
* Calibrate Temperature
* Calibrate Input V
* Reset Settings
* Power Pulse
* Animation Loop
* Animation Speed
* Power Pulse Wait
* Power Pulse Duration
* -Power Pulse Delay
* -Power Pulse duration
*/
{SETTINGS_DESC(SettingsItemIndex::PowerLimit), nullptr, settings_displayPowerLimit, nullptr, SettingsOptions::PowerLimit}, /*Power limit*/
{SETTINGS_DESC(SettingsItemIndex::SettingsReset), settings_setResetSettings, settings_displayResetSettings, nullptr, SettingsOptions::SettingsOptionsLength}, /*Resets settings*/
@@ -314,8 +329,8 @@ static void settings_displayInputVRange(void) {
static bool settings_showInputVOptions(void) { return getSettingValue(SettingsOptions::MinDCVoltageCells) > 0; }
static void settings_displayInputMinVRange(void) {
printShortDescription(SettingsItemIndex::MinVolCell, 4);
OLED::printNumber(getSettingValue(SettingsOptions::MinVoltageCells) / 10, 2, FontStyle::LARGE);
printShortDescription(SettingsItemIndex::MinVolCell, 5);
OLED::printNumber(getSettingValue(SettingsOptions::MinVoltageCells) / 10, 1, FontStyle::LARGE);
OLED::print(SymbolDot, FontStyle::LARGE);
OLED::printNumber(getSettingValue(SettingsOptions::MinVoltageCells) % 10, 1, FontStyle::LARGE);
}
@@ -437,7 +452,6 @@ static bool settings_setTempF(void) {
static void settings_displayTempF(void) {
printShortDescription(SettingsItemIndex::TemperatureUnit, 7);
OLED::print((getSettingValue(SettingsOptions::TemperatureInF)) ? SymbolDegF : SymbolDegC, FontStyle::LARGE);
}
@@ -448,7 +462,6 @@ static void settings_displayAdvancedSolderingScreens(void) {
static void settings_displayAdvancedIDLEScreens(void) {
printShortDescription(SettingsItemIndex::AdvancedIdle, 7);
OLED::drawCheckbox(getSettingValue(SettingsOptions::DetailedIDLE));
}
@@ -590,7 +603,7 @@ static void settings_displayCoolingBlinkEnabled(void) {
static bool settings_setResetSettings(void) {
if (userConfirmation(translatedString(Tr->SettingsResetWarning))) {
resetSettings();
warnUser(translatedString(Tr->ResetOKMessage), 2 * TICKS_SECOND);
warnUser(translatedString(Tr->SettingsResetMessage), 10 * TICKS_SECOND);
}
return false;
}
@@ -743,9 +756,9 @@ static void settings_displayPowerPulseDuration(void) {
static void settings_displayBrightnessLevel(void) {
OLED::drawArea(0, 0, 16, 16, brightnessIcon);
OLED::setCursor(5 * FONT_12_WIDTH - 2, 0);
OLED::setCursor(6 * FONT_12_WIDTH - 2, 0);
// printShortDescription(SettingsItemIndex::Brightness, 7);
OLED::printNumber((getSettingValue(SettingsOptions::OLEDBrightness) / 11 + 1), 3, FontStyle::LARGE);
OLED::printNumber((getSettingValue(SettingsOptions::OLEDBrightness) / 11 + 1), 2, FontStyle::LARGE);
// While not optimal to apply this here, it is _very_ convienient
OLED::setBrightness(getSettingValue(SettingsOptions::OLEDBrightness));
}
@@ -754,31 +767,29 @@ static void settings_displayInvertColor(void) {
OLED::drawArea(0, 0, 24, 16, invertDisplayIcon);
OLED::setCursor(7 * FONT_12_WIDTH - 2, 0);
// printShortDescription(SettingsItemIndex::ColourInversion, 7);
OLED::drawCheckbox(getSettingValue(SettingsOptions::OLEDInversion));
// While not optimal to apply this here, it is _very_ convienient
OLED::setInverseDisplay(getSettingValue(SettingsOptions::OLEDInversion));
}
static void settings_displayLogoTime(void) {
printShortDescription(SettingsItemIndex::LOGOTime, 5);
if (getSettingValue(SettingsOptions::LOGOTime) == 0) {
OLED::print(translatedString(Tr->OffString), FontStyle::LARGE);
} else if (getSettingValue(SettingsOptions::LOGOTime) == 5) {
OLED::drawArea(OLED_WIDTH - 24 - 2, 0, 24, 16, infinityIcon);
} else {
OLED::printNumber(getSettingValue(SettingsOptions::LOGOTime), 2, FontStyle::LARGE);
OLED::print(SymbolSeconds, FontStyle::LARGE);
}
}
#ifdef HALL_SENSOR
static void settings_displayHallEffect(void) {
printShortDescription(SettingsItemIndex::HallEffSensitivity, 7);
switch (getSettingValue(SettingsOptions::HallEffectSensitivity)) {
case 1:
OLED::print(translatedString(Tr->SettingSensitivityLow), FontStyle::LARGE);
break;
case 2:
OLED::print(translatedString(Tr->SettingSensitivityMedium), FontStyle::LARGE);
break;
case 3:
OLED::print(translatedString(Tr->SettingSensitivityHigh), FontStyle::LARGE);
break;
case 0:
default:
OLED::print(translatedString(Tr->SettingSensitivityOff), FontStyle::LARGE);
break;
}
OLED::printNumber(getSettingValue(SettingsOptions::HallEffectSensitivity), 1, FontStyle::LARGE, false);
}
static bool settings_showHallEffect(void) { return getHallSensorFitted(); }
#endif
// Indicates whether a menu transition is in progress, so that the menu icon

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