Merge branch 'dev' into dev

This commit is contained in:
discip
2024-08-24 13:04:38 +02:00
committed by GitHub
48 changed files with 244 additions and 84 deletions

View File

@@ -38,7 +38,7 @@ The model should be replaced by one of the following options:
- `miniware` for older Miniware Irons -> TS100, TS80, TS80P - `miniware` for older Miniware Irons -> TS100, TS80, TS80P
- `pinecilv1` for the Pinecil V1 - `pinecilv1` for the Pinecil V1
- `pinecilv2` for the Pinecil V2 - `pinecilv2` for the Pinecil V2
- `ts101` for the Miniware TS101 [^1] - `ts101` for the Miniware TS101 [^1] [^2]
- `s60` for the Squire S60 [^1] - `s60` for the Squire S60 [^1]
- `mhp30` for the Miniware MHP30 - `mhp30` for the Miniware MHP30
@@ -50,6 +50,28 @@ After processing its expected to have a `.hex` and `.dfu` file created to be use
Note: make sure your image file is in the same folder as script files (img2logo.py, output_dfu.py, output_hex.py). Note: make sure your image file is in the same folder as script files (img2logo.py, output_dfu.py, output_hex.py).
[^1] Note that these devices have larger resolution screens that the logo system supports right now. Fixes are coming for this soon, roughly scheduled for 2.23. [^1] Note that these devices have larger resolution screens that the logo system supports right now. Fixes are coming for this soon, roughly scheduled for 2.23.
[^2] The TS101 requires extra steps, see below.
### TS101 Quirks
When Miniware designed the TS101 they cut cost by using an STM32 clone with some odd quirks. They also re-wrote their USB bootloader, which has introduced new bugs for us to deal with.
Their bootloader appears to have kept the existing limit of not being able to flash small hex files, but they no longer fall for the older "just repeat the content" trick and instead reject the file.
Additionally, while the MCU in use has 128K of flash, their bootloader (at least for me) fails to write to anything above 99K. It _looks_ like a watchdog reset or hard crash. Unsure.
This has flow on effects, where the settings can still be located in the upper ~28K of flash, but it cant be used for anything we flash over USB.
Of that 100K we can use, they waste 32K of it for their bootloader (Old bootloaders were 16K).
This means the main "app" of IronOS is limited to around 67K (100K-32K for bootloader, -1K for logo).
For this device the Logo is not located at the end of flash but instead at the last writable page (99K).
Additionally, as we need to do a large write, to avoid having to waste more flash space; the logo is merged with the normal firmware. This means that the firmware and logo are flashed together once.
Future updates can be done without merging as it will leave the logo data there as normal firmware doesnt touch that area of flash.
To do this, download the latest version of IronOS and merge it with the logo using the `--merge` command line argument.
To create the logo file for a TS101 the full command looks like `python3 img2logo.py <image file path> <output folder path> -m ts101 --merge <Path to main firmware>`.
For this reason, there are no TS101 logo's generated by the IronOS-Meta repo.
## Flashing the Logo ## Flashing the Logo

View File

@@ -233,6 +233,8 @@
"displayText": "Эфект Хола\nадчувальнасць", "displayText": "Эфект Хола\nадчувальнасць",
"description": "Узровень адчувальнасці датчыка хола ў рэжыме сну (1=Мін. | ... | 9=Макс.)" "description": "Узровень адчувальнасці датчыка хола ў рэжыме сну (1=Мін. | ... | 9=Макс.)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Адзінкі\nтэмпературы", "displayText": "Адзінкі\nтэмпературы",
"description": "Адзінкі вымярэння тэмпературы (C=Цэльcія | F=Фарэнгейта)" "description": "Адзінкі вымярэння тэмпературы (C=Цэльcія | F=Фарэнгейта)"

View File

@@ -233,6 +233,8 @@
"displayText": "Датчик\nна Хол", "displayText": "Датчик\nна Хол",
"description": "Чувствителност на сензора към магнитно поле (1=Слабо | ... | 9=Силно)" "description": "Чувствителност на сензора към магнитно поле (1=Слабо | ... | 9=Силно)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Единици за\nтемпературата", "displayText": "Единици за\nтемпературата",
"description": "Единици за температурата (C=Целзии | F=Фаренхайт)" "description": "Единици за температурата (C=Целзии | F=Фаренхайт)"

View File

@@ -233,6 +233,8 @@
"displayText": "Citlivost\nHall. čidla", "displayText": "Citlivost\nHall. čidla",
"description": "Citlivost Hallova čidla pro detekci spánku (1=nejméně citlivé | ... | 9=nejvíce citlivé)" "description": "Citlivost Hallova čidla pro detekci spánku (1=nejméně citlivé | ... | 9=nejvíce citlivé)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Jednotka\nteploty", "displayText": "Jednotka\nteploty",
"description": "C=Celsius | F=Fahrenheit" "description": "C=Celsius | F=Fahrenheit"

View File

@@ -233,6 +233,8 @@
"displayText": "Hall sensor\nfølsomhed", "displayText": "Hall sensor\nfølsomhed",
"description": "følsomhed overfor magneten (1=Mindst følsom | ... | 9=Mest følsom)" "description": "følsomhed overfor magneten (1=Mindst følsom | ... | 9=Mest følsom)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Temperatur\nEnhed", "displayText": "Temperatur\nEnhed",
"description": "Temperatur Enhed (C=Celsius | F=Fahrenheit)" "description": "Temperatur Enhed (C=Celsius | F=Fahrenheit)"

View File

@@ -233,6 +233,8 @@
"displayText": "Empfindlichkeit\nder Hall-Sonde", "displayText": "Empfindlichkeit\nder Hall-Sonde",
"description": "Empfindlichkeit der Hall-Sonde um den Ruhemodus auszulösen (1=minimal | ... | 9=maximal)" "description": "Empfindlichkeit der Hall-Sonde um den Ruhemodus auszulösen (1=minimal | ... | 9=maximal)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Temperatur-\neinheit", "displayText": "Temperatur-\neinheit",
"description": "C=°Celsius | F=°Fahrenheit" "description": "C=°Celsius | F=°Fahrenheit"

View File

@@ -233,6 +233,8 @@
"displayText": "Ευαισθ. αισθ. \nφαιν. Hall", "displayText": "Ευαισθ. αισθ. \nφαιν. Hall",
"description": "Ευαισθησία του αισθητήρα φαινομένου Hall για εντοπισμό αδράνειας (1=λιγότερο ευαίσθητο | ... | 9=περισσότερο ευαίσθητο)" "description": "Ευαισθησία του αισθητήρα φαινομένου Hall για εντοπισμό αδράνειας (1=λιγότερο ευαίσθητο | ... | 9=περισσότερο ευαίσθητο)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Μονάδες\nθερμοκρασίας", "displayText": "Μονάδες\nθερμοκρασίας",
"description": "C=Κελσίου | F=Φαρενάιτ" "description": "C=Κελσίου | F=Φαρενάιτ"

View File

@@ -233,6 +233,10 @@
"displayText": "Hall sensor\nsensitivity", "displayText": "Hall sensor\nsensitivity",
"description": "Sensitivity to magnets (1=least sensitive | ... | 9=most sensitive)" "description": "Sensitivity to magnets (1=least sensitive | ... | 9=most sensitive)"
}, },
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Temperature\nunit", "displayText": "Temperature\nunit",
"description": "C=°Celsius | F=°Fahrenheit" "description": "C=°Celsius | F=°Fahrenheit"

View File

@@ -233,6 +233,8 @@
"displayText": "Hall Eff\nSensibilidad", "displayText": "Hall Eff\nSensibilidad",
"description": "Sensibilidad del sensor de efecto Hall en la detección de reposo (1=menos sensible | ... | 9=más sensible)" "description": "Sensibilidad del sensor de efecto Hall en la detección de reposo (1=menos sensible | ... | 9=más sensible)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Unidad de\ntemperatura", "displayText": "Unidad de\ntemperatura",
"description": "Unidad de temperatura (C=entígrados | F=Fahrenheit)" "description": "Unidad de temperatura (C=entígrados | F=Fahrenheit)"

View File

@@ -233,6 +233,8 @@
"displayText": "Halli anduri\ntundlikkus", "displayText": "Halli anduri\ntundlikkus",
"description": "Tundlikkus magnetite suhtes (1=vähetundlikum | ... | 9=kõige tundlikum)" "description": "Tundlikkus magnetite suhtes (1=vähetundlikum | ... | 9=kõige tundlikum)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Temperatuuri\nühik", "displayText": "Temperatuuri\nühik",
"description": "C=°Celsius | F=°Fahrenheit" "description": "C=°Celsius | F=°Fahrenheit"

View File

@@ -4,13 +4,13 @@
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CalibrationDone": { "CalibrationDone": {
"message": "Calibration\ndone!" "message": "Kalibrointi\nvalmis!"
}, },
"ResetOKMessage": { "ResetOKMessage": {
"message": "Palautus" "message": "Tehdasasetukset\npalautettu!"
}, },
"SettingsResetMessage": { "SettingsResetMessage": {
"message": "Asetukset\npalautettu!" "message": "Tehdasasetukset\npalautettu!"
}, },
"NoAccelerometerMessage": { "NoAccelerometerMessage": {
"message": "Kiihtyvyysanturi\npuuttuu!" "message": "Kiihtyvyysanturi\npuuttuu!"
@@ -19,34 +19,34 @@
"message": "USB-PD IC\npuuttuu!" "message": "USB-PD IC\npuuttuu!"
}, },
"LockingKeysString": { "LockingKeysString": {
"message": " LUKITTU" "message": "Näppäinlukko\nkäytössä."
}, },
"UnlockingKeysString": { "UnlockingKeysString": {
"message": "AUKI" "message": "Näppäimet\nkäytössä."
}, },
"WarningKeysLockedString": { "WarningKeysLockedString": {
"message": "!LUKKO!" "message": "!Näppäimet\nlukittu!"
}, },
"WarningThermalRunaway": { "WarningThermalRunaway": {
"message": "Thermal\nRunaway" "message": "!Lämmönsäätelyn\nhäiriö!"
}, },
"WarningTipShorted": { "WarningTipShorted": {
"message": "!Tip Shorted!" "message": "!Kärki\noikosulussa!"
}, },
"SettingsCalibrationWarning": { "SettingsCalibrationWarning": {
"message": "Before rebooting, make sure tip & handle are at room temperature!" "message": "Varmista laitteen ja kärjen huoneenlämpöisyys ennen uudelleenkäynnistystä!"
}, },
"CJCCalibrating": { "CJCCalibrating": {
"message": "calibrating\n" "message": "Kalibroidaan\n"
}, },
"SettingsResetWarning": { "SettingsResetWarning": {
"message": "Haluatko varmasti palauttaa oletusarvot?" "message": "Haluatko varmasti palauttaa oletusarvot?"
}, },
"UVLOWarningString": { "UVLOWarningString": {
"message": "DC ALH." "message": "DC jännite alhainen."
}, },
"UndervoltageString": { "UndervoltageString": {
"message": "Alijännite\n" "message": "Alijännite.\n"
}, },
"InputVoltageString": { "InputVoltageString": {
"message": "Jännite: \n" "message": "Jännite: \n"
@@ -58,16 +58,16 @@
"message": "Kärki: \n" "message": "Kärki: \n"
}, },
"ProfilePreheatString": { "ProfilePreheatString": {
"message": "Preheat\n" "message": "Esilämmitetään\n"
}, },
"ProfileCooldownString": { "ProfileCooldownString": {
"message": "Cooldown\n" "message": "Jäähtyy\n"
}, },
"DeviceFailedValidationWarning": { "DeviceFailedValidationWarning": {
"message": "Your device is most likely a counterfeit!" "message": "Laite saattaa olla väärennös!"
}, },
"TooHotToStartProfileWarning": { "TooHotToStartProfileWarning": {
"message": "Too hot to\nstart profile" "message": "Lämpötila liian korkea\nprofiilin aloitukseen!"
} }
}, },
"characters": { "characters": {
@@ -107,13 +107,13 @@
}, },
"menuValues": { "menuValues": {
"USBPDModeDefault": { "USBPDModeDefault": {
"displayText": "Default\nMode" "displayText": "USB-PD\noletus-t"
}, },
"USBPDModeNoDynamic": { "USBPDModeNoDynamic": {
"displayText": "No\nDynamic" "displayText": "USB-PD\nvakaa-ti"
}, },
"USBPDModeSafe": { "USBPDModeSafe": {
"displayText": "Safe\nMode" "displayText": "USB-PD\nturva-ti"
} }
}, },
"menuOptions": { "menuOptions": {
@@ -127,19 +127,19 @@
}, },
"QCMaxVoltage": { "QCMaxVoltage": {
"displayText": "QC\njännite", "displayText": "QC\njännite",
"description": "Ensisijainen maksimi QC jännite" "description": "Ensisijainen maksimi QC jännite."
}, },
"PDNegTimeout": { "PDNegTimeout": {
"displayText": "PD\ntimeout", "displayText": "PD\naikakatkais",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers" "description": "PD neuvottelun aikakatkaisu 100ms askelin joitakin QC-latureita varten."
}, },
"USBPDMode": { "USBPDMode": {
"displayText": "PD\nMode", "displayText": "PD\ntila",
"description": "No Dynamic disables EPR & PPS, Safe mode does not use padding resistance" "description": "Vakaa tila ei käytä EPR & PPS, turva-tila ei käytä vastuksen pehmustusta."
}, },
"BoostTemperature": { "BoostTemperature": {
"displayText": "Tehostus-\nlämpötila", "displayText": "Tehostus-\nlämpötila",
"description": "Tehostustilan lämpötila" "description": "Tehostustilan lämpötila."
}, },
"AutoStart": { "AutoStart": {
"displayText": "Autom.\nkäynnistys", "displayText": "Autom.\nkäynnistys",
@@ -147,71 +147,71 @@
}, },
"TempChangeShortStep": { "TempChangeShortStep": {
"displayText": "Lämmön muutos\nlyhyt painal.", "displayText": "Lämmön muutos\nlyhyt painal.",
"description": "Lämpötilan muutos lyhyellä painalluksella" "description": "Lämpötilan muutos lyhyellä painalluksella."
}, },
"TempChangeLongStep": { "TempChangeLongStep": {
"displayText": "Lämmön muutos\npitkä painal.", "displayText": "Lämmön muutos\npitkä painal.",
"description": "Lämpötilan muutos pitkällä painalluksella" "description": "Lämpötilan muutos pitkällä painalluksella."
}, },
"LockingMode": { "LockingMode": {
"displayText": "Salli nappien\nlukitus", "displayText": "Salli nappien\nlukitus",
"description": "Kolvatessa paina molempia näppäimiä lukitaksesi ne (V=vain tehostus | K=kaikki)" "description": "Kolvatessa paina molempia näppäimiä lukitaksesi ne (V=vain tehostus | K=kaikki)"
}, },
"ProfilePhases": { "ProfilePhases": {
"displayText": "Profile\nPhases", "displayText": "Profiili\nvaiheet",
"description": "Number of phases in profile mode" "description": "Vaiheiden määrä profiilitilassa."
}, },
"ProfilePreheatTemp": { "ProfilePreheatTemp": {
"displayText": "Preheat\nTemp", "displayText": "Esilämmityksen\nlämpötila",
"description": "Preheat to this temperature at the start of profile mode" "description": "Esilämmittää tähän lämpötilaan profiilitilan alussa."
}, },
"ProfilePreheatSpeed": { "ProfilePreheatSpeed": {
"displayText": "Preheat\nSpeed", "displayText": "Esilämmityksen\nnopeus",
"description": "Preheat at this rate (degrees per second)" "description": "Esilämmityksen nopeus (asteita/sekunti)"
}, },
"ProfilePhase1Temp": { "ProfilePhase1Temp": {
"displayText": "Phase 1\nTemp", "displayText": "Vaiheen 1\nTemp",
"description": "Target temperature for the end of this phase" "description": "Kohdelämpötila tämän vaiheen lopussa."
}, },
"ProfilePhase1Duration": { "ProfilePhase1Duration": {
"displayText": "Phase 1\nDuration", "displayText": "Vaiheen 1\nkesto",
"description": "Target duration of this phase (seconds)" "description": "Tämän vaiheen ajankäyttö (sekunteina) Saattaa kestää kauemmin jos lämmitys hitaampaa."
}, },
"ProfilePhase2Temp": { "ProfilePhase2Temp": {
"displayText": "Phase 2\nTemp", "displayText": "Vaiheen 2\nlämpötila",
"description": "" "description": "Kohdelämpötila tämän vaiheen lopussa."
}, },
"ProfilePhase2Duration": { "ProfilePhase2Duration": {
"displayText": "Phase 2\nDuration", "displayText": "Vaiheen 2\nkesto",
"description": "" "description": "Tämän vaiheen ajankäyttö (sekunteina) Saattaa kestää kauemmin jos lämmitys hitaampaa."
}, },
"ProfilePhase3Temp": { "ProfilePhase3Temp": {
"displayText": "Phase 3\nTemp", "displayText": "Vaiheen 3\nlämpötila",
"description": "" "description": "Kohdelämpötila tämän vaiheen lopussa."
}, },
"ProfilePhase3Duration": { "ProfilePhase3Duration": {
"displayText": "Phase 3\nDuration", "displayText": "Vaiheen 3\nkesto",
"description": "" "description": "Tämän vaiheen ajankäyttö (sekunteina) Saattaa kestää kauemmin jos lämmitys hitaampaa."
}, },
"ProfilePhase4Temp": { "ProfilePhase4Temp": {
"displayText": "Phase 4\nTemp", "displayText": "Vaiheen 4\nlämpötila",
"description": "" "description": "Kohdelämpötila tämän vaiheen lopussa."
}, },
"ProfilePhase4Duration": { "ProfilePhase4Duration": {
"displayText": "Phase 4\nDuration", "displayText": "Vaiheen 4\nkesto",
"description": "" "description": "Tämän vaiheen ajankäyttö (sekunteina) Saattaa kestää kauemmin jos lämmitys hitaampaa."
}, },
"ProfilePhase5Temp": { "ProfilePhase5Temp": {
"displayText": "Phase 5\nTemp", "displayText": "Vaiheen 5\nlämpötila",
"description": "" "description": "Kohdelämpötila tämän vaiheen lopussa."
}, },
"ProfilePhase5Duration": { "ProfilePhase5Duration": {
"displayText": "Phase 5\nDuration", "displayText": "Vaiheen 5\nkesto",
"description": "" "description": "Tämän vaiheen ajankäyttö (sekunteina) Saattaa kestää kauemmin jos lämmitys hitaampaa."
}, },
"ProfileCooldownSpeed": { "ProfileCooldownSpeed": {
"displayText": "Cooldown\nSpeed", "displayText": "Jäähtymis\nnopeus",
"description": "Cooldown at this rate at the end of profile mode (degrees per second)" "description": "Jäähtymisnopeus profiilitilan lopussa (asteita sekunnissa)"
}, },
"MotionSensitivity": { "MotionSensitivity": {
"displayText": "Liikkeen\nherkkyys", "displayText": "Liikkeen\nherkkyys",
@@ -233,6 +233,8 @@
"displayText": "Hall-\nherk.", "displayText": "Hall-\nherk.",
"description": "Hall-efektianturin herkkyys lepotilan tunnistuksessa (1=vähäinen herkkyys | ... | 9=suurin herkkyys)" "description": "Hall-efektianturin herkkyys lepotilan tunnistuksessa (1=vähäinen herkkyys | ... | 9=suurin herkkyys)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Lämpötilan\nyksikkö", "displayText": "Lämpötilan\nyksikkö",
"description": "C=celsius, F=fahrenheit" "description": "C=celsius, F=fahrenheit"
@@ -259,23 +261,23 @@
}, },
"AnimLoop": { "AnimLoop": {
"displayText": "Animaation\ntoistaminen", "displayText": "Animaation\ntoistaminen",
"description": "Toista animaatiot valikossa" "description": "Toista animaatiot valikossa."
}, },
"Brightness": { "Brightness": {
"displayText": "Screen\nbrightness", "displayText": "Näytön\nkirkkaus",
"description": "Adjust the OLED screen brightness" "description": "Säädä OLED-näytön kirkkautta."
}, },
"ColourInversion": { "ColourInversion": {
"displayText": "Invert\nscreen", "displayText": "Käänteiset\nvärit",
"description": "Invert the OLED screen colors" "description": "Asettaa käänteiset värit OLED-näyttöön."
}, },
"LOGOTime": { "LOGOTime": {
"displayText": "Boot logo\nduration", "displayText": "Käynnistysl\naika näytöllä",
"description": "Set boot logo duration (s=seconds)" "description": "Aseta käynnistyslogon aika näytöllä (s=sekunteja)"
}, },
"AdvancedIdle": { "AdvancedIdle": {
"displayText": "Tiedot\nlepotilassa", "displayText": "Tiedot\nlepotilassa",
"description": "Näyttää yksityiskohtaisemmat pienemmällä fontilla tiedot lepotilassa." "description": "Näyttää yksityiskohtaisemmat tiedot pienellä fontilla lepotilassa."
}, },
"AdvancedSoldering": { "AdvancedSoldering": {
"displayText": "Tarkempi\njuotosnäyttö", "displayText": "Tarkempi\njuotosnäyttö",
@@ -283,23 +285,23 @@
}, },
"BluetoothLE": { "BluetoothLE": {
"displayText": "Bluetooth\n", "displayText": "Bluetooth\n",
"description": "Enables BLE" "description": "BLE käyttöön."
}, },
"PowerLimit": { "PowerLimit": {
"displayText": "Tehon-\nrajoitus", "displayText": "Tehon-\nrajoitus",
"description": "Suurin sallittu teho (Watti)" "description": "Suurin sallittu teho (Watti)"
}, },
"CalibrateCJC": { "CalibrateCJC": {
"displayText": "Calibrate CJC\nat next boot", "displayText": "Kalibroi CJC\nensi käynnist",
"description": "At next boot tip Cold Junction Compensation will be calibrated (not required if Delta T is < 5°C)" "description": "Ensi käynnistyksessä kärjen Cold Junction Compensation kalibroidaan (ei tarpeellista jos Delta T on < 5°C)"
}, },
"VoltageCalibration": { "VoltageCalibration": {
"displayText": "Kalibroi\ntulojännite?", "displayText": "Kalibroi\ntulojännite?",
"description": "Tulojännitten kalibrointi (VIN) (paina pitkään poistuaksesi)" "description": "Tulojännitteen kalibrointi (VIN) (paina pitkään poistuaksesi)"
}, },
"PowerPulsePower": { "PowerPulsePower": {
"displayText": "Herätyspulssin\nvoimakkuus", "displayText": "Herätyspulssin\nvoimakkuus",
"description": "Herätyspulssin voimakkuus (Watti)" "description": "Herätyspulssin voimakkuus (Watteina)"
}, },
"PowerPulseWait": { "PowerPulseWait": {
"displayText": "Pulssin\nodotusaika", "displayText": "Pulssin\nodotusaika",

View File

@@ -233,6 +233,8 @@
"displayText": "Sensibilité\ncapteur effet hall", "displayText": "Sensibilité\ncapteur effet hall",
"description": "Sensibilité du capteur à effet Hall pour la mise en veille (1=peu sensible | ... | 9=très sensible)" "description": "Sensibilité du capteur à effet Hall pour la mise en veille (1=peu sensible | ... | 9=très sensible)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Unité de\ntempérature", "displayText": "Unité de\ntempérature",
"description": "C=Celsius | F=Fahrenheit" "description": "C=Celsius | F=Fahrenheit"

View File

@@ -233,6 +233,8 @@
"displayText": "Osjetljivost\nHall senzora", "displayText": "Osjetljivost\nHall senzora",
"description": "Osjetljivost senzora magnetskog polja za detekciju spavanja (N=Najmanja | S=Srednja | V=Visoka)" "description": "Osjetljivost senzora magnetskog polja za detekciju spavanja (N=Najmanja | S=Srednja | V=Visoka)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Jedinica\ntemperature", "displayText": "Jedinica\ntemperature",
"description": "Jedinica temperature (C=Celzij | F=Fahrenheit)" "description": "Jedinica temperature (C=Celzij | F=Fahrenheit)"

View File

@@ -233,6 +233,8 @@
"displayText": "Alvásérzékelő\nérzékenység", "displayText": "Alvásérzékelő\nérzékenység",
"description": "Alvásérzékelő gyorsulásmérő érzékenysége (1=legkevésbé érzékeny | ... | 9=legérzékenyebb)" "description": "Alvásérzékelő gyorsulásmérő érzékenysége (1=legkevésbé érzékeny | ... | 9=legérzékenyebb)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Hőmérséklet\nmértékegysége", "displayText": "Hőmérséklet\nmértékegysége",
"description": "Hőmérséklet mértékegysége (C=Celsius | F=Fahrenheit)" "description": "Hőmérséklet mértékegysége (C=Celsius | F=Fahrenheit)"

View File

@@ -233,6 +233,8 @@
"displayText": "Sensore\nHall", "displayText": "Sensore\nHall",
"description": "Regola la sensibilità del sensore ad effetto Hall per entrare in modalità riposo [1: minima; 9: massima]" "description": "Regola la sensibilità del sensore ad effetto Hall per entrare in modalità riposo [1: minima; 9: massima]"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Unità di\ntemperatura", "displayText": "Unità di\ntemperatura",
"description": "Scegli l'unità di misura per la temperatura [C: grado Celsius; F: grado Farenheit]" "description": "Scegli l'unità di misura per la temperatura [C: grado Celsius; F: grado Farenheit]"

View File

@@ -233,6 +233,8 @@
"displayText": "磁界感度", "displayText": "磁界感度",
"description": "スタンバイモードに入るのに使用される磁場センサーの感度 <1=最低感度 | ... | 9=最高感度>" "description": "スタンバイモードに入るのに使用される磁場センサーの感度 <1=最低感度 | ... | 9=最高感度>"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "温度単位", "displayText": "温度単位",
"description": "C=摂氏 | F=華氏" "description": "C=摂氏 | F=華氏"

View File

@@ -233,6 +233,8 @@
"displayText": "Holo\njutiklis", "displayText": "Holo\njutiklis",
"description": "Holo jutiklio jautrumas nustatant miegą (1=Mažiausias | ... | 9=Didžiausias)" "description": "Holo jutiklio jautrumas nustatant miegą (1=Mažiausias | ... | 9=Didžiausias)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Temperatūros\nvienetai", "displayText": "Temperatūros\nvienetai",
"description": "Temperatūros vienetai (C=Celsijus | F=Farenheitas)" "description": "Temperatūros vienetai (C=Celsijus | F=Farenheitas)"

View File

@@ -233,6 +233,8 @@
"displayText": "Hall-sensor\nfølsomhet", "displayText": "Hall-sensor\nfølsomhet",
"description": "Sensitiviteten til Hall-effekt-sensoren for å detektere inaktivitet (1=Minst følsom | ... | 9=Mest følsom)" "description": "Sensitiviteten til Hall-effekt-sensoren for å detektere inaktivitet (1=Minst følsom | ... | 9=Mest følsom)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "TmpEnh\n", "displayText": "TmpEnh\n",
"description": "Temperaturskala (C=Celsius | F=Fahrenheit)" "description": "Temperaturskala (C=Celsius | F=Fahrenheit)"

View File

@@ -233,6 +233,8 @@
"displayText": "Hall sensor\ngevoeligheid", "displayText": "Hall sensor\ngevoeligheid",
"description": "Gevoeligheid naar de magneten (1=minst gevoelig | ... | 9=meest gevoelig)" "description": "Gevoeligheid naar de magneten (1=minst gevoelig | ... | 9=meest gevoelig)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Temperatuur\neenheid", "displayText": "Temperatuur\neenheid",
"description": "C=°Celsius | F=°Fahrenheit" "description": "C=°Celsius | F=°Fahrenheit"

View File

@@ -233,6 +233,8 @@
"displayText": "Hall sensor\ngevoeligheid", "displayText": "Hall sensor\ngevoeligheid",
"description": "Gevoeligheid naar de magneten (1=minst gevoelig | ... | 9=meest gevoelig)" "description": "Gevoeligheid naar de magneten (1=minst gevoelig | ... | 9=meest gevoelig)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Temperatuur\nschaal", "displayText": "Temperatuur\nschaal",
"description": "Temperatuurschaal (°C=Celsius | °F=Fahrenheit)" "description": "Temperatuurschaal (°C=Celsius | °F=Fahrenheit)"

View File

@@ -233,6 +233,8 @@
"displayText": "Czułość\ncz. Halla", "displayText": "Czułość\ncz. Halla",
"description": "Czułość czujnika Halla, używanego do przechodznia w tryb uśpienia (1: Minimalna | ... | 9: Maksymalna)" "description": "Czułość czujnika Halla, używanego do przechodznia w tryb uśpienia (1: Minimalna | ... | 9: Maksymalna)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Jednostka\ntemperatury", "displayText": "Jednostka\ntemperatury",
"description": "Jednostka temperatury (C: Celciusz | F: Fahrenheit)" "description": "Jednostka temperatury (C: Celciusz | F: Fahrenheit)"

View File

@@ -233,6 +233,8 @@
"displayText": "Sensibilidade de\nmagnetismo", "displayText": "Sensibilidade de\nmagnetismo",
"description": "Sensibilidade de magnetismo (1=Menor | ... | 9=Maior)" "description": "Sensibilidade de magnetismo (1=Menor | ... | 9=Maior)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Unidade\ntemperatura", "displayText": "Unidade\ntemperatura",
"description": "Unidade de temperatura (C=Celsius | F=Fahrenheit)" "description": "Unidade de temperatura (C=Celsius | F=Fahrenheit)"

View File

@@ -233,6 +233,8 @@
"displayText": "Sensibilitate\nsenzor Hall", "displayText": "Sensibilitate\nsenzor Hall",
"description": "Sensibilitate senzor cu efect Hall pentru a detecta repausul (1=putin sensibil | ... | 9=cel mai sensibil)" "description": "Sensibilitate senzor cu efect Hall pentru a detecta repausul (1=putin sensibil | ... | 9=cel mai sensibil)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Unitate de\ntemperatură", "displayText": "Unitate de\ntemperatură",
"description": "C=Celsius | F=Fahrenheit" "description": "C=Celsius | F=Fahrenheit"

View File

@@ -233,6 +233,8 @@
"displayText": "Датчик\nХолла", "displayText": "Датчик\nХолла",
"description": "Чувствительность датчика Холла к магнитному полю (1=мин. | ... | 9=макс.)" "description": "Чувствительность датчика Холла к магнитному полю (1=мин. | ... | 9=макс.)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Единицы\nизмерения", "displayText": "Единицы\nизмерения",
"description": "Единицы измерения температуры (C=°Цельcия | F=°Фаренгейта)" "description": "Единицы измерения температуры (C=°Цельcия | F=°Фаренгейта)"

View File

@@ -233,6 +233,8 @@
"displayText": "Citliv.\nHall", "displayText": "Citliv.\nHall",
"description": "Citlivosť Hallovho senzora pre detekciu spánku (1=Min | ... | 9=Max)" "description": "Citlivosť Hallovho senzora pre detekciu spánku (1=Min | ... | 9=Max)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Jednotka\nteploty", "displayText": "Jednotka\nteploty",
"description": "Jednotky merania teploty (C=stupne Celzia | F=stupne Fahrenheita)" "description": "Jednotky merania teploty (C=stupne Celzia | F=stupne Fahrenheita)"

View File

@@ -233,6 +233,8 @@
"displayText": "Občut.\nHall son", "displayText": "Občut.\nHall son",
"description": "Občutljivost Hallove sonde za zaznavanje spanja (1=najmanjša | ... | 9=največja)" "description": "Občutljivost Hallove sonde za zaznavanje spanja (1=najmanjša | ... | 9=največja)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Enota za\ntemperaturo", "displayText": "Enota za\ntemperaturo",
"description": "Enota za temperaturo (C=celzij | F=fahrenheit)" "description": "Enota za temperaturo (C=celzij | F=fahrenheit)"

View File

@@ -233,6 +233,8 @@
"displayText": "Hall sensor\nsensitivity", "displayText": "Hall sensor\nsensitivity",
"description": "Sensitivity to magnets (1=најмање осетљиво | ... | 9=најосетљивије)" "description": "Sensitivity to magnets (1=најмање осетљиво | ... | 9=најосетљивије)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Јединица\nтемпературе", "displayText": "Јединица\nтемпературе",
"description": "Јединице у којима се приказује температура. (C=целзијус | F=фаренхајт)" "description": "Јединице у којима се приказује температура. (C=целзијус | F=фаренхајт)"

View File

@@ -233,6 +233,8 @@
"displayText": "Hall sensor\nsensitivity", "displayText": "Hall sensor\nsensitivity",
"description": "Sensitivity to magnets (1=najmanje osetljivo | ... | 9=najosetljivije)" "description": "Sensitivity to magnets (1=najmanje osetljivo | ... | 9=najosetljivije)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Jedinica\ntemperature", "displayText": "Jedinica\ntemperature",
"description": "Jedinice u kojima se prikazuje temperatura. (C=celzijus | F=farenhajt)" "description": "Jedinice u kojima se prikazuje temperatura. (C=celzijus | F=farenhajt)"

View File

@@ -233,6 +233,8 @@
"displayText": "Sensor-\nkänslght", "displayText": "Sensor-\nkänslght",
"description": "Känslighet för halleffekt-sensorn för viloläges-detektering (1=minst känslig | ... | 9=mest känslig)" "description": "Känslighet för halleffekt-sensorn för viloläges-detektering (1=minst känslig | ... | 9=mest känslig)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Temperatur-\nenheter", "displayText": "Temperatur-\nenheter",
"description": "Temperaturenhet (C=Celsius | F=Fahrenheit)" "description": "Temperaturenhet (C=Celsius | F=Fahrenheit)"

View File

@@ -233,6 +233,8 @@
"displayText": "Hall Sensör\nHassasiyeti", "displayText": "Hall Sensör\nHassasiyeti",
"description": "Mıknatıslara duyarlılık (1=En az duyarlı | ... | 9=En duyarlı)" "description": "Mıknatıslara duyarlılık (1=En az duyarlı | ... | 9=En duyarlı)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "SCKBRM\n", "displayText": "SCKBRM\n",
"description": "Sıcaklık Birimi (C=Celsius | F=Fahrenheit)" "description": "Sıcaklık Birimi (C=Celsius | F=Fahrenheit)"

View File

@@ -233,6 +233,8 @@
"displayText": "Чутливість\nЕфекту Холла", "displayText": "Чутливість\nЕфекту Холла",
"description": "Чутливість датчика ефекту Холла при виявленні сну (1=мін. чутливості | ... | 9=макс. чутливості)" "description": "Чутливість датчика ефекту Холла при виявленні сну (1=мін. чутливості | ... | 9=макс. чутливості)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Формат темпе-\nратури(C°/F°)", "displayText": "Формат темпе-\nратури(C°/F°)",
"description": "Одиниця виміру температури (C=Цельсій | F=Фаренгейт)" "description": "Одиниця виміру температури (C=Цельсій | F=Фаренгейт)"

View File

@@ -233,6 +233,8 @@
"displayText": "Hall\nđo nhay", "displayText": "Hall\nđo nhay",
"description": "Đo nhay cam bien Hall đe phát hien che đo ngu (1=ít nhay nhat |...| 9=nhay nhat)" "description": "Đo nhay cam bien Hall đe phát hien che đo ngu (1=ít nhay nhat |...| 9=nhay nhat)"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "Đon vi\nnhiet đo", "displayText": "Đon vi\nnhiet đo",
"description": "C= Đo C | F= Đo F" "description": "C= Đo C | F= Đo F"

View File

@@ -233,6 +233,8 @@
"displayText": "磁場敏感度", "displayText": "磁場敏感度",
"description": "磁場感應器用嚟啓動待機模式嘅敏感度 <1=最低敏感度 | ... | 9=最高敏感度>" "description": "磁場感應器用嚟啓動待機模式嘅敏感度 <1=最低敏感度 | ... | 9=最高敏感度>"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "温度單位", "displayText": "温度單位",
"description": "C=攝氏 | F=華氏" "description": "C=攝氏 | F=華氏"

View File

@@ -233,6 +233,8 @@
"displayText": "磁场灵敏度", "displayText": "磁场灵敏度",
"description": "霍尔效应传感器用作启动待机模式的灵敏度 <1=最低灵敏度 | ... | 9=最高灵敏度>" "description": "霍尔效应传感器用作启动待机模式的灵敏度 <1=最低灵敏度 | ... | 9=最高灵敏度>"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "温度单位", "displayText": "温度单位",
"description": "C=摄氏 | F=华氏" "description": "C=摄氏 | F=华氏"

View File

@@ -233,6 +233,8 @@
"displayText": "磁場敏感度", "displayText": "磁場敏感度",
"description": "磁場感應器用作啟動待機模式的敏感度 <1=最低敏感度 | ... | 9=最高敏感度>" "description": "磁場感應器用作啟動待機模式的敏感度 <1=最低敏感度 | ... | 9=最高敏感度>"
}, },
"HallEffSleepTimeout": { "displayText": "HallSensor\nSleepTime", "description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": { "TemperatureUnit": {
"displayText": "溫標", "displayText": "溫標",
"description": "C=攝氏 | F=華氏" "description": "C=攝氏 | F=華氏"

View File

@@ -411,6 +411,13 @@
"include": ["HALL_SENSOR"], "include": ["HALL_SENSOR"],
"description": "If the unit has a hall effect sensor (Pinecil), this adjusts how sensitive it is at detecting a magnet to put the device into sleep mode." "description": "If the unit has a hall effect sensor (Pinecil), this adjusts how sensitive it is at detecting a magnet to put the device into sleep mode."
}, },
{
"id": "HallEffSleepTimeout",
"maxLen": 10,
"maxLen2": 10,
"include": ["HALL_SENSOR"],
"description": "If the unit has a hall effect sensor (Pinecil), this adjusts how long the device takes before it drops down to the sleep temperature when hall sensor is over threshold."
},
{ {
"id": "TemperatureUnit", "id": "TemperatureUnit",
"maxLen": 6, "maxLen": 6,

View File

@@ -195,7 +195,7 @@
#define POWER_LIMIT_STEPS 5 #define POWER_LIMIT_STEPS 5
#define OP_AMP_GAIN_STAGE OP_AMP_GAIN_STAGE_TS100 #define OP_AMP_GAIN_STAGE OP_AMP_GAIN_STAGE_TS100
#define TEMP_uV_LOOKUP_HAKKO #define TEMP_uV_LOOKUP_HAKKO
#define ACCEL_LIS_CLONE 1 #define ACCEL_LIS_CLONE 1
#define HARDWARE_MAX_WATTAGE_X10 1000 #define HARDWARE_MAX_WATTAGE_X10 1000
#define TIP_THERMAL_MASS 65 // X10 watts to raise 1 deg C in 1 second #define TIP_THERMAL_MASS 65 // X10 watts to raise 1 deg C in 1 second
#define TIP_RESISTANCE 75 // x10 ohms, 7.5 typical for ts100 tips #define TIP_RESISTANCE 75 // x10 ohms, 7.5 typical for ts100 tips
@@ -273,7 +273,12 @@
#endif /* TS80P */ #endif /* TS80P */
#ifdef MODEL_TS101 #ifdef MODEL_TS101
#define FLASH_LOGOADDR (0x08000000 + (126 * 1024)) // For whatever reason, Miniware decided to not build a reliable DFU bootloader
// It can't appear to flash to some of the upper pages of flash,
// I'm slightly suspect a watchdog or something runs out
// as device resets before file finishes copying
// So logo has to be located on page 99 or else it cant be flashed on stock bootloader
#define FLASH_LOGOADDR (0x08000000 + (99 * 1024))
#define SETTINGS_START_PAGE (0x08000000 + (127 * 1024)) #define SETTINGS_START_PAGE (0x08000000 + (127 * 1024))
#else #else
#define FLASH_LOGOADDR (0x08000000 + (62 * 1024)) #define FLASH_LOGOADDR (0x08000000 + (62 * 1024))

View File

@@ -73,8 +73,9 @@ enum SettingsOptions {
ProfilePhase5Temp = 50, // Temperature to target for the end of phase 5 ProfilePhase5Temp = 50, // Temperature to target for the end of phase 5
ProfilePhase5Duration = 51, // Target duration for phase 5 ProfilePhase5Duration = 51, // Target duration for phase 5
ProfileCooldownSpeed = 52, // Maximum allowed cooldown speed in degrees per second ProfileCooldownSpeed = 52, // Maximum allowed cooldown speed in degrees per second
HallEffectSleepTime = 53, // Seconds (/5) timeout to sleep when hall effect over threshold
// //
SettingsOptionsLength = 53, // SettingsOptionsLength = 54, //
}; };
typedef enum { typedef enum {

View File

@@ -84,6 +84,7 @@ enum class SettingsItemIndex : uint8_t {
SleepTimeout, SleepTimeout,
ShutdownTimeout, ShutdownTimeout,
HallEffSensitivity, HallEffSensitivity,
HallEffSleepTimeout,
TemperatureUnit, TemperatureUnit,
DisplayRotation, DisplayRotation,
CooldownBlink, CooldownBlink,

View File

@@ -104,6 +104,7 @@ static const SettingConstants settingsConstants[(int)SettingsOptions::SettingsOp
{ MIN_TEMP_C, MAX_TEMP_F, 5, 90}, // ProfilePhase5Temp { MIN_TEMP_C, MAX_TEMP_F, 5, 90}, // ProfilePhase5Temp
{ 10, 180, 5, 30}, // ProfilePhase5Duration { 10, 180, 5, 30}, // ProfilePhase5Duration
{ 1, 10, 1, 2}, // ProfileCooldownSpeed { 1, 10, 1, 2}, // ProfileCooldownSpeed
{ 0, 12, 1, 0}, // HallEffectSleepTime
}; };
static_assert((sizeof(settingsConstants) / sizeof(SettingConstants)) == ((int)SettingsOptions::SettingsOptionsLength)); static_assert((sizeof(settingsConstants) / sizeof(SettingConstants)) == ((int)SettingsOptions::SettingsOptionsLength));

View File

@@ -111,6 +111,7 @@ static void displayLogoTime(void);
#ifdef HALL_SENSOR #ifdef HALL_SENSOR
static void displayHallEffect(void); static void displayHallEffect(void);
static void displayHallEffectSleepTime(void);
static bool showHallEffect(void); static bool showHallEffect(void);
#endif /* HALL_SENSOR */ #endif /* HALL_SENSOR */
@@ -162,6 +163,7 @@ static void displayAdvancedMenu(void);
* -Sleep Time * -Sleep Time
* -Shutdown Time * -Shutdown Time
* Hall Sensor Sensitivity * Hall Sensor Sensitivity
* Hall Sensor Sleep Time
* *
* UI * UI
* Temperature Unit * Temperature Unit
@@ -346,6 +348,8 @@ const menuitem PowerSavingMenu[] = {
#ifdef HALL_SENSOR #ifdef HALL_SENSOR
/* Hall Effect Sensitivity */ /* Hall Effect Sensitivity */
{SETTINGS_DESC(SettingsItemIndex::HallEffSensitivity), nullptr, displayHallEffect, showHallEffect, SettingsOptions::HallEffectSensitivity, SettingsItemIndex::HallEffSensitivity, 7}, {SETTINGS_DESC(SettingsItemIndex::HallEffSensitivity), nullptr, displayHallEffect, showHallEffect, SettingsOptions::HallEffectSensitivity, SettingsItemIndex::HallEffSensitivity, 7},
/* Hall Effect Sleep Time */
{SETTINGS_DESC(SettingsItemIndex::HallEffSleepTimeout), nullptr, displayHallEffectSleepTime, showHallEffect, SettingsOptions::HallEffectSleepTime, SettingsItemIndex::HallEffSleepTimeout, 5},
#endif /* HALL_SENSOR */ #endif /* HALL_SENSOR */
/* vvvv end of menu marker. DO NOT REMOVE vvvv */ /* vvvv end of menu marker. DO NOT REMOVE vvvv */
{0, nullptr, nullptr, nullptr, SettingsOptions::SettingsOptionsLength, SettingsItemIndex::NUM_ITEMS, 0} {0, nullptr, nullptr, nullptr, SettingsOptions::SettingsOptionsLength, SettingsItemIndex::NUM_ITEMS, 0}
@@ -740,6 +744,16 @@ static void displayHallEffect(void) {
} }
} }
static bool showHallEffect(void) { return getHallSensorFitted(); } static bool showHallEffect(void) { return getHallSensorFitted(); }
static void displayHallEffectSleepTime(void) {
if (getSettingValue(SettingsOptions::HallEffectSleepTime)) {
OLED::printNumber(getSettingValue(SettingsOptions::HallEffectSleepTime) * 5, 2, FontStyle::LARGE, false);
OLED::print(LargeSymbolSeconds, FontStyle::LARGE);
} else {
// When sleep time is set to zero, we sleep for 1 second anyways. This is the default.
OLED::printNumber(1, 2, FontStyle::LARGE, false);
OLED::print(LargeSymbolSeconds, FontStyle::LARGE);
}
}
#endif /* HALL_SENSOR */ #endif /* HALL_SENSOR */
static void setTempF(const enum SettingsOptions option) { static void setTempF(const enum SettingsOptions option) {

View File

@@ -11,4 +11,14 @@
/* Functions */ /* Functions */
void initialise_monitor_handles() {} void initialise_monitor_handles() {}
/* Syscalls (stub implementations to avoid compile warnings and possibe future problems) */
int _getpid(void) { return 1; } int _getpid(void) { return 1; }
#if defined(MODEL_Pinecil) || defined(MODEL_Pinecilv2)
// do nothing here because some stubs and real implementations added for Pinecils already
#else
off_t _lseek(int fd, off_t ptr, int dir) { return -1; }
ssize_t _read(int fd, void *ptr, size_t len) { return -1; }
ssize_t _write(int fd, const void *ptr, size_t len) { return -1; }
int _close(int fd) { return -1; }
#endif

View File

@@ -66,6 +66,7 @@ struct guiContext {
uint32_t state4; // 32 bit state scratch uint32_t state4; // 32 bit state scratch
uint16_t state5; // 16 bit state scratch uint16_t state5; // 16 bit state scratch
uint16_t state6; // 16 bit state scratch uint16_t state6; // 16 bit state scratch
uint32_t state7; // 32 bit state scratch
} scratch_state; } scratch_state;
}; };

View File

@@ -9,26 +9,39 @@
OperatingMode handleSolderingButtons(const ButtonState buttons, guiContext *cxt) { OperatingMode handleSolderingButtons(const ButtonState buttons, guiContext *cxt) {
if (cxt->scratch_state.state1 >= 2) { if (cxt->scratch_state.state1 >= 2) {
// Buttons are currently locked // Buttons are currently locked
switch (buttons) { if (buttons == BUTTON_BOTH_LONG) {
case BUTTON_F_LONG:
if (getSettingValue(SettingsOptions::BoostTemp) && (getSettingValue(SettingsOptions::LockingMode) == lockingMode_t::BOOST)) {
cxt->scratch_state.state2 = 1;
}
break;
case BUTTON_BOTH_LONG:
if (cxt->scratch_state.state1 == 3) { if (cxt->scratch_state.state1 == 3) {
// Unlocking // Unlocking
if (warnUser(translatedString(Tr->UnlockingKeysString), buttons)) { if (warnUser(translatedString(Tr->UnlockingKeysString), buttons)) {
cxt->scratch_state.state1 = 1; cxt->scratch_state.state1 = 1;
cxt->scratch_state.state7 = 0;
} }
} else { } else {
warnUser(translatedString(Tr->WarningKeysLockedString), buttons); warnUser(translatedString(Tr->LockingKeysString), buttons);
} }
break; return OperatingMode::Soldering;
}
if (cxt->scratch_state.state7 != 0) {
// show locked until timer is up
if (xTaskGetTickCount() >= cxt->scratch_state.state7) {
cxt->scratch_state.state7 = 0;
} else {
warnUser(translatedString(Tr->WarningKeysLockedString), buttons);
return OperatingMode::Soldering;
}
}
switch (buttons) {
case BUTTON_NONE: case BUTTON_NONE:
cxt->scratch_state.state1 = 3; cxt->scratch_state.state1 = 3;
break; break;
default: // Do nothing and display a lock warning case BUTTON_F_LONG:
if (getSettingValue(SettingsOptions::BoostTemp) && (getSettingValue(SettingsOptions::LockingMode) == lockingMode_t::BOOST)) {
cxt->scratch_state.state2 = 1;
break;
}
/*Fall through*/
default: // Set timer for and display a lock warning
cxt->scratch_state.state7 = xTaskGetTickCount() + TICKS_SECOND;
warnUser(translatedString(Tr->WarningKeysLockedString), buttons); warnUser(translatedString(Tr->WarningKeysLockedString), buttons);
break; break;
} }

View File

@@ -7,6 +7,7 @@
void GUIDelay(); // void GUIDelay(); //
bool checkForUnderVoltage(void); // bool checkForUnderVoltage(void); //
uint32_t getSleepTimeout(void); // uint32_t getSleepTimeout(void); //
uint32_t getHallEffectSleepTimeout(void); //
bool shouldBeSleeping(); // bool shouldBeSleeping(); //
bool shouldShutdown(void); // bool shouldShutdown(void); //
void printVoltage(void); // void printVoltage(void); //

View File

@@ -0,0 +1,13 @@
#include "OperatingModeUtilities.h"
#ifndef NO_SLEEP_MODE
#ifdef HALL_SENSOR
uint32_t getHallEffectSleepTimeout(void) {
if (getSettingValue(SettingsOptions::HallEffectSensitivity) && getSettingValue(SettingsOptions::HallEffectSleepTime)) {
uint32_t sleepThres = getSettingValue(SettingsOptions::HallEffectSleepTime) * 5 * TICKS_SECOND;
return sleepThres;
}
return TICKS_SECOND;
}
#endif
#endif

View File

@@ -32,7 +32,7 @@ bool shouldBeSleeping() {
if (lastHallEffectSleepStart == 0) { if (lastHallEffectSleepStart == 0) {
lastHallEffectSleepStart = xTaskGetTickCount(); lastHallEffectSleepStart = xTaskGetTickCount();
} }
if ((xTaskGetTickCount() - lastHallEffectSleepStart) > TICKS_SECOND) { if ((xTaskGetTickCount() - lastHallEffectSleepStart) > getHallEffectSleepTimeout()) {
return true; return true;
} }
} else { } else {

View File

@@ -84,7 +84,8 @@ DEVICE_BSP_DIR=./Core/BSP/Miniware
LDSCRIPT=./Core/BSP/Miniware/stm32f103.ld LDSCRIPT=./Core/BSP/Miniware/stm32f103.ld
ifeq ($(model),$(filter $(model),TS101)) ifeq ($(model),$(filter $(model),TS101))
flash_size=126k # 128K, but logo must be at 99K so their broken ass DFU can flash it
flash_size=98k
bootldr_size=0x8000 bootldr_size=0x8000
DEVICE_DFU_ADDRESS=0x08008000 DEVICE_DFU_ADDRESS=0x08008000
else else