1
0
forked from me/IronOS

Merge branch 'master' into feat_add_MSA301

This commit is contained in:
Ben V. Brown
2021-01-04 21:03:45 +11:00
38 changed files with 329 additions and 258 deletions

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Нулиране завършено", "ResetOKMessage": "Нулиране завършено",
"YourGainMessage": "Усилване:", "YourGainMessage": "Усилване:",
"SettingsResetMessage": "Настройките бяха\nнулирани!", "SettingsResetMessage": "Настройките бяха\nнулирани!",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED", "LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED", "UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!" "WarningKeysLockedString": "!LOCKED!"

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK", "ResetOKMessage": "Reset OK",
"YourGainMessage": "Zisk:", "YourGainMessage": "Zisk:",
"SettingsResetMessage": "Tov. nas. obnov.", "SettingsResetMessage": "Tov. nas. obnov.",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED", "LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED", "UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!" "WarningKeysLockedString": "!LOCKED!"

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK", "ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:", "YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!", "SettingsResetMessage": "Settings were\nreset!",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED", "LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED", "UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!" "WarningKeysLockedString": "!LOCKED!"

View File

@@ -6,7 +6,7 @@
"messages": { "messages": {
"SettingsCalibrationDone": "Kalibrierung abgeschlossen!", "SettingsCalibrationDone": "Kalibrierung abgeschlossen!",
"SettingsCalibrationWarning": "Vor dem Fortfahren muss die Lötspitze vollständig abgekühlt sein!", "SettingsCalibrationWarning": "Vor dem Fortfahren muss die Lötspitze vollständig abgekühlt sein!",
"SettingsResetWarning": "Sind Sie sicher, dass Sie alle Werte zurücksetzen wollen?", "SettingsResetWarning": "Sicher, dass alle Werte zurückgesetzt werden sollen?",
"UVLOWarningString": "V niedr.", "UVLOWarningString": "V niedr.",
"UndervoltageString": "Unterspannung", "UndervoltageString": "Unterspannung",
"InputVoltageString": "V Eingang: ", "InputVoltageString": "V Eingang: ",
@@ -14,7 +14,7 @@
"BadTipString": "Spitze Defekt", "BadTipString": "Spitze Defekt",
"SleepingSimpleString": "Zzz ", "SleepingSimpleString": "Zzz ",
"SleepingAdvancedString": "Ruhemodus...", "SleepingAdvancedString": "Ruhemodus...",
"WarningSimpleString": "HEIß", "WarningSimpleString": "HEIß!",
"WarningAdvancedString": "! Achtung Heiß !", "WarningAdvancedString": "! Achtung Heiß !",
"SleepingTipAdvancedString": "Temp:", "SleepingTipAdvancedString": "Temp:",
"IdleTipString": "Ist:", "IdleTipString": "Ist:",
@@ -22,30 +22,32 @@
"TipDisconnectedString": "Spitze fehlt", "TipDisconnectedString": "Spitze fehlt",
"SolderingAdvancedPowerPrompt": "Leistung: ", "SolderingAdvancedPowerPrompt": "Leistung: ",
"OffString": "Aus", "OffString": "Aus",
"ResetOKMessage": "Reset OK", "NoAccelerometerMessage": "Kein Bewegungssensor\nerkannt!",
"YourGainMessage": "Your Gain:", "NoPowerDeliveryMessage": "Kein USB-PD IC\nerkannt!",
"SettingsResetMessage": "Einstellungen\nzurück gesetzt!", "ResetOKMessage": "Reset abgeschlossen!",
"LockingKeysString": " LOCKED", "YourGainMessage": "Dein Faktor:",
"UnlockingKeysString": "UNLOCKED", "SettingsResetMessage": "Einstellungen\nzurückgesetzt!",
"WarningKeysLockedString": "!LOCKED!" "LockingKeysString": "GESPERRT",
"UnlockingKeysString": "ENTSPERRT",
"WarningKeysLockedString": "!GESPERRT!"
}, },
"characters": { "characters": {
"SettingRightChar": "R", "SettingRightChar": "R",
"SettingLeftChar": "L", "SettingLeftChar": "L",
"SettingAutoChar": "A", "SettingAutoChar": "A",
"SettingFastChar": "F", "SettingFastChar": "S",
"SettingSlowChar": "S", "SettingSlowChar": "L",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "L",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "R",
"SettingStartSleepOffChar": "O", "SettingStartSleepOffChar": "O",
"SettingStartNoneChar": "F", "SettingStartNoneChar": "A",
"SettingSensitivityOff": "O", "SettingSensitivityOff": "A",
"SettingSensitivityLow": "L", "SettingSensitivityLow": "N",
"SettingSensitivityMedium": "M", "SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H", "SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D", "SettingLockDisableChar": "D",
"SettingLockBoostChar": "B", "SettingLockBoostChar": "B",
"SettingLockFullChar": "F" "SettingLockFullChar": "V"
}, },
"menuGroups": { "menuGroups": {
"SolderingMenu": { "SolderingMenu": {
@@ -57,7 +59,7 @@
}, },
"PowerSavingMenu": { "PowerSavingMenu": {
"text2": [ "text2": [
"Schlaf-", "Ruhe-",
"modus" "modus"
], ],
"desc": "Energiespareinstellungen" "desc": "Energiespareinstellungen"
@@ -87,10 +89,10 @@
}, },
"SleepTemperature": { "SleepTemperature": {
"text2": [ "text2": [
"Ruhetemp-", "Ruhe-",
"eratur" "temperatur"
], ],
"desc": "Ruhetemperatur" "desc": "Ruhetemperatur der Spitze"
}, },
"SleepTimeout": { "SleepTimeout": {
"text2": [ "text2": [
@@ -111,7 +113,7 @@
"Bewegungs-", "Bewegungs-",
"empfindlichk." "empfindlichk."
], ],
"desc": "Bewegungsempfindlichkeit <0=Aus, 1=Minimal ... 9=Maximal>" "desc": "Bewegungsempfindlichkeit <0=aus, 1=minimal ... 9=maximal>"
}, },
"TemperatureUnit": { "TemperatureUnit": {
"text2": [ "text2": [
@@ -132,28 +134,28 @@
"Anzeige-", "Anzeige-",
"ausrichtung" "ausrichtung"
], ],
"desc": "Ausrichtung der Anzeige <A=Automatisch, L=Linkshändig, R=Rechtshändig>" "desc": "Ausrichtung der Anzeige <A=automatisch, L=linkshändig, R=rechtshändig>"
}, },
"BoostTemperature": { "BoostTemperature": {
"text2": [ "text2": [
"Boosttemp-", "Boost-",
"eratur" "temperatur"
], ],
"desc": "Temperatur im Boostmodus (In der eingestellten Einheit)" "desc": "Temperatur im Boostmodus"
}, },
"AutoStart": { "AutoStart": {
"text2": [ "text2": [
"Start im", "Start im",
"Lötmodus?" "Lötmodus"
], ],
"desc": "Automatischer Start-Modus beim Einschalten der Spannungsversorgung. <T=Lötmodus S=Ruhezustand F=Aus>" "desc": "Bestimmt das Heizverhalten beim Einschalten der Spannungsversorgung. <L=Lötmodus R=Ruhemodus O=Ruhemodus bei Raumtemperatur A=aus>"
}, },
"CooldownBlink": { "CooldownBlink": {
"text2": [ "text2": [
"Abkühl-", "Abkühl-",
"blinken?" "blinken"
], ],
"desc": "Blinkende Temperaturanzeige beim Abkühlen, solange heiß ist." "desc": "Temperaturanzeige blinkt beim Abkühlen, solange Spitze heiß ist."
}, },
"TemperatureCalibration": { "TemperatureCalibration": {
"text2": [ "text2": [
@@ -167,7 +169,7 @@
"Einstellungen", "Einstellungen",
"zurücksetzen?" "zurücksetzen?"
], ],
"desc": "Einstellungen auf werkseinstellungen zurück setzen" "desc": "Werte werden auf Werkseinstellungen zurückgesetzt"
}, },
"VoltageCalibration": { "VoltageCalibration": {
"text2": [ "text2": [
@@ -188,7 +190,7 @@
"Scroll-", "Scroll-",
"geschw." "geschw."
], ],
"desc": "Scrollgeschwindigkeit der Texte <S=Langsam F=Schnell>" "desc": "Scrollgeschwindigkeit der Erläuterungen <L=langsam S=schnell>"
}, },
"TipModel": { "TipModel": {
"text2": [ "text2": [
@@ -202,7 +204,7 @@
"Einfache", "Einfache",
"Kalibrierung" "Kalibrierung"
], ],
"desc": "Einfache Kalibrierung mittels heißem Wasser" "desc": "Einfache Kalibrierung mittels heißen Wassers"
}, },
"AdvancedCalibrationMode": { "AdvancedCalibrationMode": {
"text2": [ "text2": [
@@ -221,58 +223,58 @@
"PowerLimit": { "PowerLimit": {
"text2": [ "text2": [
"Leistungs-", "Leistungs-",
"Limit" "limit"
], ],
"desc": "Maximale aufnahme der Lötspitze <Watt>" "desc": "Maximale Leistungsaufnahme des Lötkolbens <Watt>"
}, },
"ReverseButtonTempChange": { "ReverseButtonTempChange": {
"text2": [ "text2": [
"Taste +-", "+- Tasten",
"Umkehren?" "umkehren?"
], ],
"desc": "Temperaturnderungs-Tasten-Belegung Plus-Minus umkehren?" "desc": "Tastenbelegung zur Temperaturänderung umkehren"
}, },
"TempChangeShortStep": { "TempChangeShortStep": {
"text2": [ "text2": [
"T. Schritt", "Temp-Schritt",
"Taste kurz?" "kurzer Druck"
], ],
"desc": "Temperaturwechselschritte bei kurzem Tastendruck!" "desc": "Schrittweite für Temperaturwechsel bei kurzem Tastendruck"
}, },
"TempChangeLongStep": { "TempChangeLongStep": {
"text2": [ "text2": [
"T. Schritt", "Temp-Schritt",
"Taste Lang?" "langer Druck"
], ],
"desc": "Temperaturwechselschritte bei langem Tastendruck!" "desc": "Schrittweite für Temperaturwechsel bei langem Tastendruck"
}, },
"PowerPulsePower": { "PowerPulsePower": {
"text2": [ "text2": [
"Power", "Leistungs-",
"Pulse W" "impuls"
], ],
"desc": "Keep awake pulse power intensity" "desc": "Powerbank wird mittels eines Impulses wach gehalten <Watt>"
}, },
"TipGain": { "TipGain": {
"text2": [ "text2": [
"Modify", "Ändere",
"tip gain" "Spitzen Faktor"
], ],
"desc": "Tip gain" "desc": "Spitzen Faktor"
}, },
"HallEffSensitivity": { "HallEffSensitivity": {
"text2": [ "text2": [
"Hall Eff", "Hall Sensor",
"Sensitivity" "Empfindlichkeit"
], ],
"desc": "Sensitivity of the Hall effect sensor in detecting sleep <O=Off,L=Low,M=Medium,H=High>" "desc": "Empfindlichkeit des Hall Effekt Sensors beim Erkennen des Ruhemodus <A=aus,N=niedrig,M=mittel,H=hoch>"
}, },
"LockingMode": { "LockingMode": {
"text2": [ "text2": [
"Allow buttons", "Knopf-",
"locking" "sperre"
], ],
"desc": "When soldering, long press on both buttons lock them <D=Disable, B=Boost only, F=Full locking>" "desc": "Langes drücken beider Knöpfe im Lötmodus, sperrt diese <D=deaktiviert, B=nur Boost, V=vollständig gesperrt>"
} }
} }
} }

View File

@@ -25,6 +25,8 @@
"ResetOKMessage": "Reset done!", "ResetOKMessage": "Reset done!",
"YourGainMessage": "Your gain:", "YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!", "SettingsResetMessage": "Settings were\nreset!",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": "LOCKED", "LockingKeysString": "LOCKED",
"UnlockingKeysString": "UNLOCKED", "UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!" "WarningKeysLockedString": "!LOCKED!"
@@ -35,10 +37,10 @@
"SettingAutoChar": "A", "SettingAutoChar": "A",
"SettingFastChar": "F", "SettingFastChar": "F",
"SettingSlowChar": "S", "SettingSlowChar": "S",
"SettingStartSolderingChar": "T", "SettingStartSolderingChar": "S",
"SettingStartSleepChar": "S", "SettingStartSleepChar": "Z",
"SettingStartSleepOffChar": "O", "SettingStartSleepOffChar": "R",
"SettingStartNoneChar": "F", "SettingStartNoneChar": "O",
"SettingSensitivityOff": "O", "SettingSensitivityOff": "O",
"SettingSensitivityLow": "L", "SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M", "SettingSensitivityMedium": "M",
@@ -146,7 +148,7 @@
"Auto", "Auto",
"start" "start"
], ],
"desc": "Automatically starts the iron into soldering mode on power up <F=off T=soldering S=sleep O=sleep at room temperature>" "desc": "Starts the iron into soldering mode on power up <O=off S=soldering Z=sleep R=sleep at room temperature>"
}, },
"CooldownBlink": { "CooldownBlink": {
"text2": [ "text2": [
@@ -160,21 +162,21 @@
"Calibrate", "Calibrate",
"temperature?" "temperature?"
], ],
"desc": "Start tip offset calibrating procedure" "desc": "Start tip temperature offset calibration"
}, },
"SettingsReset": { "SettingsReset": {
"text2": [ "text2": [
"Factory", "Factory",
"reset?" "reset?"
], ],
"desc": "Reset settings to default!" "desc": "Reset settings to default"
}, },
"VoltageCalibration": { "VoltageCalibration": {
"text2": [ "text2": [
"Calibrate", "Calibrate",
"input voltage?" "input voltage?"
], ],
"desc": "VIN Calibration <long press to exit>" "desc": "Start VIN calibration <long press to exit>"
}, },
"AdvancedSoldering": { "AdvancedSoldering": {
"text2": [ "text2": [
@@ -237,21 +239,21 @@
"Temp change", "Temp change",
"short" "short"
], ],
"desc": "Temperature change steps on short button press" "desc": "Temperature change increment on short button press"
}, },
"TempChangeLongStep": { "TempChangeLongStep": {
"text2": [ "text2": [
"Temp change", "Temp change",
"long" "long"
], ],
"desc": "Temperature change steps on long button press" "desc": "Temperature change increment on long button press"
}, },
"PowerPulsePower": { "PowerPulsePower": {
"text2": [ "text2": [
"Power", "Power",
"pulse" "pulse"
], ],
"desc": "Intensity of power of keep-awake-pulse <W=watt>" "desc": "Intensity of power of keep-awake-pulse <watt>"
}, },
"TipGain": { "TipGain": {
"text2": [ "text2": [
@@ -265,7 +267,7 @@
"Hall sensor", "Hall sensor",
"sensitivity" "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 to detect sleep <O=off L=low M=medium H=high>"
}, },
"LockingMode": { "LockingMode": {
"text2": [ "text2": [

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Hecho. ", "ResetOKMessage": "Hecho. ",
"YourGainMessage": "Gananc.:", "YourGainMessage": "Gananc.:",
"SettingsResetMessage": "Ajustes borrados", "SettingsResetMessage": "Ajustes borrados",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED", "LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED", "UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!" "WarningKeysLockedString": "!LOCKED!"

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK", "ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:", "YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!", "SettingsResetMessage": "Settings were\nreset!",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED", "LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED", "UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!" "WarningKeysLockedString": "!LOCKED!"

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK", "ResetOKMessage": "Reset OK",
"YourGainMessage": "Gain :", "YourGainMessage": "Gain :",
"SettingsResetMessage": "Réglage réinit. !", "SettingsResetMessage": "Réglage réinit. !",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": "VERROUIL", "LockingKeysString": "VERROUIL",
"UnlockingKeysString": "DEVERROU", "UnlockingKeysString": "DEVERROU",
"WarningKeysLockedString": "! VERR. !" "WarningKeysLockedString": "! VERR. !"
@@ -274,4 +276,4 @@
"desc": "Sensibilité du capteur à effet Hall lors de la détection de mise en veille <O=Off,L=Low,M=Medium,H=High>" "desc": "Sensibilité du capteur à effet Hall lors de la détection de mise en veille <O=Off,L=Low,M=Medium,H=High>"
} }
} }
} }

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK", "ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:", "YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!", "SettingsResetMessage": "Settings were\nreset!",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED", "LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED", "UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!" "WarningKeysLockedString": "!LOCKED!"

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK", "ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:", "YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!", "SettingsResetMessage": "Settings were\nreset!",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED", "LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED", "UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!" "WarningKeysLockedString": "!LOCKED!"

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK", "ResetOKMessage": "Reset OK",
"YourGainMessage": "Guad.: ", "YourGainMessage": "Guad.: ",
"SettingsResetMessage": "Reset effettuato", "SettingsResetMessage": "Reset effettuato",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": "Blocc.", "LockingKeysString": "Blocc.",
"UnlockingKeysString": "Sblocc.", "UnlockingKeysString": "Sblocc.",
"WarningKeysLockedString": "BLOCCATO" "WarningKeysLockedString": "BLOCCATO"
@@ -274,4 +276,4 @@
"desc": "Blocca i tasti durante la modalità Saldatura; tieni premuto entrambi per bloccare/sbloccare <D: disattiva; T: blocca «Turbo»; C: blocco completo>" "desc": "Blocca i tasti durante la modalità Saldatura; tieni premuto entrambi per bloccare/sbloccare <D: disattiva; T: blocca «Turbo»; C: blocco completo>"
} }
} }
} }

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK", "ResetOKMessage": "Reset OK",
"YourGainMessage": "Gain:", "YourGainMessage": "Gain:",
"SettingsResetMessage": "Nust. atstatyti!", "SettingsResetMessage": "Nust. atstatyti!",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " UŽRAKIN", "LockingKeysString": " UŽRAKIN",
"UnlockingKeysString": "ATRAKIN", "UnlockingKeysString": "ATRAKIN",
"WarningKeysLockedString": "!UŽRAK!" "WarningKeysLockedString": "!UŽRAK!"
@@ -274,4 +276,4 @@
"desc": "Lituodami, ilgai paspauskite abu mygtukus, kad juos užrakintumėte <I=Išjungta, T=Tik turbo režimas, V=Visiškas užrakinimas>" "desc": "Lituodami, ilgai paspauskite abu mygtukus, kad juos užrakintumėte <I=Išjungta, T=Tik turbo režimas, V=Visiškas užrakinimas>"
} }
} }
} }

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK", "ResetOKMessage": "Reset OK",
"YourGainMessage": "Niveau:", "YourGainMessage": "Niveau:",
"SettingsResetMessage": "Instellingen zijn\ngereset!", "SettingsResetMessage": "Instellingen zijn\ngereset!",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " GEBLOKKEERD", "LockingKeysString": " GEBLOKKEERD",
"UnlockingKeysString": "GEDEBLOKKEERD", "UnlockingKeysString": "GEDEBLOKKEERD",
"WarningKeysLockedString": "!GEBLOKKEERD!" "WarningKeysLockedString": "!GEBLOKKEERD!"

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK", "ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:", "YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!", "SettingsResetMessage": "Settings were\nreset!",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED", "LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED", "UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!" "WarningKeysLockedString": "!LOCKED!"

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK", "ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:", "YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!", "SettingsResetMessage": "Settings were\nreset!",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED", "LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED", "UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!" "WarningKeysLockedString": "!LOCKED!"

View File

@@ -25,6 +25,8 @@
"ResetOKMessage": "Reset OK", "ResetOKMessage": "Reset OK",
"YourGainMessage": "Us.zysk:", "YourGainMessage": "Us.zysk:",
"SettingsResetMessage": "Ust. zresetowane", "SettingsResetMessage": "Ust. zresetowane",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " ZABLOK.", "LockingKeysString": " ZABLOK.",
"UnlockingKeysString": "ODBLOK.", "UnlockingKeysString": "ODBLOK.",
"WarningKeysLockedString": "!ZABLOK!" "WarningKeysLockedString": "!ZABLOK!"
@@ -275,4 +277,4 @@
"desc": "W trybie lutowania, wciśnij oba przyciski aby je zablokować <O-Wyłączona, B-tylko Boost, P-pełna blokada>" "desc": "W trybie lutowania, wciśnij oba przyciski aby je zablokować <O-Wyłączona, B-tylko Boost, P-pełna blokada>"
} }
} }
} }

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK", "ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:", "YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!", "SettingsResetMessage": "Settings were\nreset!",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED", "LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED", "UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!" "WarningKeysLockedString": "!LOCKED!"

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Сброс OK", "ResetOKMessage": "Сброс OK",
"YourGainMessage": "Прирост:", "YourGainMessage": "Прирост:",
"SettingsResetMessage": "Настройки сброшены!", "SettingsResetMessage": "Настройки сброшены!",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED", "LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED", "UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!" "WarningKeysLockedString": "!LOCKED!"
@@ -274,4 +276,4 @@
"desc": "При работе длинное нажатие обеих кнопок блокирует их <D=Отключено, B=Только турбо, F=Полная блокировка>" "desc": "При работе длинное нажатие обеих кнопок блокирует их <D=Отключено, B=Только турбо, F=Полная блокировка>"
} }
} }
} }

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK", "ResetOKMessage": "Reset OK",
"YourGainMessage": "Zisk:", "YourGainMessage": "Zisk:",
"SettingsResetMessage": "Nast. Obnovené!", "SettingsResetMessage": "Nast. Obnovené!",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED", "LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED", "UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!" "WarningKeysLockedString": "!LOCKED!"

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK", "ResetOKMessage": "Reset OK",
"YourGainMessage": "Ojačan.:", "YourGainMessage": "Ojačan.:",
"SettingsResetMessage": "Settings were\nreset!", "SettingsResetMessage": "Settings were\nreset!",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED", "LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED", "UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!" "WarningKeysLockedString": "!LOCKED!"

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK", "ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:", "YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!", "SettingsResetMessage": "Settings were\nreset!",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED", "LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED", "UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!" "WarningKeysLockedString": "!LOCKED!"

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK", "ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:", "YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!", "SettingsResetMessage": "Settings were\nreset!",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED", "LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED", "UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!" "WarningKeysLockedString": "!LOCKED!"

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK", "ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:", "YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!", "SettingsResetMessage": "Settings were\nreset!",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED", "LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED", "UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!" "WarningKeysLockedString": "!LOCKED!"

View File

@@ -23,7 +23,9 @@
"OffString": "Kapalı", "OffString": "Kapalı",
"ResetOKMessage": "Sıfırlama Tamam", "ResetOKMessage": "Sıfırlama Tamam",
"YourGainMessage": "Kazancınız:", "YourGainMessage": "Kazancınız:",
"SettingsResetMessage": "Ayarlar Sıfırlandı" "SettingsResetMessage": "Ayarlar Sıfırlandı",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!"
}, },
"characters": { "characters": {
"SettingRightChar": "R", "SettingRightChar": "R",

View File

@@ -24,6 +24,8 @@
"ResetOKMessage": "Скидання OK", "ResetOKMessage": "Скидання OK",
"YourGainMessage": "Приріст:", "YourGainMessage": "Приріст:",
"SettingsResetMessage": "Налаштування скинуті!", "SettingsResetMessage": "Налаштування скинуті!",
"NoAccelerometerMessage": "No accelerometer\ndetected!",
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED", "LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED", "UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!" "WarningKeysLockedString": "!LOCKED!"

View File

@@ -95,6 +95,16 @@ var def =
"maxLen": 16, "maxLen": 16,
"default": "Settings were\nreset!" "default": "Settings were\nreset!"
}, },
{
"id": "NoAccelerometerMessage",
"maxLen": 16,
"default": "No accelerometer\ndetected!"
},
{
"id": "NoPowerDeliveryMessage",
"maxLen": 16,
"default": "No USB-PD IC\ndetected!"
},
{ {
"id": "LockingKeysString", "id": "LockingKeysString",
"maxLen": 8, "maxLen": 8,

View File

@@ -22,6 +22,7 @@ bool OLED::inLeftHandedMode; // Whether the screen is in left or not (used for
OLED::DisplayState OLED::displayState; OLED::DisplayState OLED::displayState;
uint8_t OLED::fontWidth, OLED::fontHeight; uint8_t OLED::fontWidth, OLED::fontHeight;
int16_t OLED::cursor_x, OLED::cursor_y; int16_t OLED::cursor_x, OLED::cursor_y;
bool OLED::initDone = false;
uint8_t OLED::displayOffset; uint8_t OLED::displayOffset;
uint8_t OLED::screenBuffer[16 + (OLED_WIDTH * 2) + 10]; // The data buffer uint8_t OLED::screenBuffer[16 + (OLED_WIDTH * 2) + 10]; // The data buffer
uint8_t OLED::secondFrameBuffer[OLED_WIDTH * 2]; uint8_t OLED::secondFrameBuffer[OLED_WIDTH * 2];
@@ -102,6 +103,7 @@ void OLED::initialize() {
} }
} }
setDisplayState(DisplayState::ON); setDisplayState(DisplayState::ON);
initDone = true;
} }
void OLED::setFramebuffer(uint8_t *buffer) { void OLED::setFramebuffer(uint8_t *buffer) {
if (buffer == NULL) { if (buffer == NULL) {
@@ -390,16 +392,14 @@ void OLED::drawAreaSwapped(int16_t x, int8_t y, uint8_t wide, uint8_t height, co
if (y == 0) { if (y == 0) {
// Splat first line of data // Splat first line of data
for (uint8_t xx = visibleStart; xx < visibleEnd; xx += 2) { for (uint8_t xx = visibleStart; xx < visibleEnd; xx ++) {
firstStripPtr[xx + x] = ptr[xx + 1]; firstStripPtr[xx + x] = ptr[xx + 1];
firstStripPtr[xx + x + 1] = ptr[xx];
} }
} }
if (y == 8 || height == 16) { if (y == 8 || height == 16) {
// Splat the second line // Splat the second line
for (uint8_t xx = visibleStart; xx < visibleEnd; xx += 2) { for (uint8_t xx = visibleStart; xx < visibleEnd; xx++) {
secondStripPtr[x + xx] = ptr[xx + 1 + (height == 16 ? wide : 0)]; secondStripPtr[x + xx] = ptr[xx + 1 + (height == 16 ? wide : 0)];
secondStripPtr[x + xx + 1] = ptr[xx + (height == 16 ? wide : 0)];
} }
} }
} }
@@ -481,3 +481,7 @@ void OLED::drawHeatSymbol(uint8_t state) {
drawSymbol(14); drawSymbol(14);
drawFilledRect(cursor_x_temp, 0, cursor_x_temp + 12, 2 + (8 - state), true); drawFilledRect(cursor_x_temp, 0, cursor_x_temp + 12, 2 + (8 - state), true);
} }
bool OLED::isInitDone() {
return initDone;
}

View File

@@ -34,7 +34,7 @@ public:
}; };
static void initialize(); // Startup the I2C coms (brings screen out of reset etc) static void initialize(); // Startup the I2C coms (brings screen out of reset etc)
static bool isInitDone();
// Draw the buffer out to the LCD using the DMA Channel // Draw the buffer out to the LCD using the DMA Channel
static void refresh() { static void refresh() {
FRToSI2C::Transmit( DEVICEADDR_OLED, screenBuffer, FRToSI2C::Transmit( DEVICEADDR_OLED, screenBuffer,
@@ -56,7 +56,7 @@ public:
static int16_t getCursorX() { static int16_t getCursorX() {
return cursor_x; return cursor_x;
} }
static void print(const char *string);// Draw a string to the current location, with current font static void print(const char *string); // Draw a string to the current location, with current font
// Set the cursor location by pixels // Set the cursor location by pixels
static void setCursor(int16_t x, int16_t y) { static void setCursor(int16_t x, int16_t y) {
cursor_x = x; cursor_x = x;
@@ -73,8 +73,7 @@ public:
drawArea(x, 0, width, 16, buffer); drawArea(x, 0, width, 16, buffer);
} }
// Draws an image to the buffer, at x offset from top to bottom (fixed height renders) // Draws an image to the buffer, at x offset from top to bottom (fixed height renders)
static void printNumber(uint16_t number, uint8_t places, static void printNumber(uint16_t number, uint8_t places, bool noLeaderZeros = true);
bool noLeaderZeros = true);
// Draws a number at the current cursor location // Draws a number at the current cursor location
// Clears the buffer // Clears the buffer
static void clearScreen() { static void clearScreen() {
@@ -89,15 +88,11 @@ public:
drawSymbol((state) ? 16 : 17); drawSymbol((state) ? 16 : 17);
} }
static void debugNumber(int32_t val); static void debugNumber(int32_t val);
static void drawSymbol(uint8_t symbolID);//Used for drawing symbols of a predictable width static void drawSymbol(uint8_t symbolID); //Used for drawing symbols of a predictable width
static void drawArea(int16_t x, int8_t y, uint8_t wide, uint8_t height, static void drawArea(int16_t x, int8_t y, uint8_t wide, uint8_t height, const uint8_t *ptr); //Draw an area, but y must be aligned on 0/8 offset
const uint8_t *ptr); //Draw an area, but y must be aligned on 0/8 offset static void drawAreaSwapped(int16_t x, int8_t y, uint8_t wide, uint8_t height, const uint8_t *ptr); //Draw an area, but y must be aligned on 0/8 offset
static void drawAreaSwapped(int16_t x, int8_t y, uint8_t wide, static void fillArea(int16_t x, int8_t y, uint8_t wide, uint8_t height, const uint8_t value); //Fill an area, but y must be aligned on 0/8 offset
uint8_t height, const uint8_t *ptr); //Draw an area, but y must be aligned on 0/8 offset static void drawFilledRect(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, bool clear);
static void fillArea(int16_t x, int8_t y, uint8_t wide, uint8_t height,
const uint8_t value); //Fill an area, but y must be aligned on 0/8 offset
static void drawFilledRect(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1,
bool clear);
static void drawHeatSymbol(uint8_t state); static void drawHeatSymbol(uint8_t state);
static void drawScrollIndicator(uint8_t p, uint8_t h); // Draws a scrolling position indicator static void drawScrollIndicator(uint8_t p, uint8_t h); // Draws a scrolling position indicator
static void transitionSecondaryFramebuffer(bool forwardNavigation); static void transitionSecondaryFramebuffer(bool forwardNavigation);
@@ -109,6 +104,7 @@ private:
static uint8_t *firstStripPtr; // Pointers to the strips to allow for buffer having extra content static uint8_t *firstStripPtr; // Pointers to the strips to allow for buffer having extra content
static uint8_t *secondStripPtr; //Pointers to the strips static uint8_t *secondStripPtr; //Pointers to the strips
static bool inLeftHandedMode; // Whether the screen is in left or not (used for offsets in GRAM) static bool inLeftHandedMode; // Whether the screen is in left or not (used for offsets in GRAM)
static bool initDone;
static DisplayState displayState; static DisplayState displayState;
static uint8_t fontWidth, fontHeight; static uint8_t fontWidth, fontHeight;
static int16_t cursor_x, cursor_y; static int16_t cursor_x, cursor_y;

View File

@@ -239,7 +239,7 @@ uint32_t TipThermoModel::getTipInF(bool sampleNow) {
#endif #endif
uint32_t TipThermoModel::getTipMaxInC() { uint32_t TipThermoModel::getTipMaxInC() {
uint32_t maximumTipTemp = TipThermoModel::convertTipRawADCToDegC(0x7FFF - (80 * 5)); //back off approx 5 deg c from ADC max uint32_t maximumTipTemp = TipThermoModel::convertTipRawADCToDegC(0x7FFF - (21 * 5)); //back off approx 5 deg c from ADC max
maximumTipTemp += getHandleTemperature() / 10; //Add handle offset maximumTipTemp += getHandleTemperature() / 10; //Add handle offset
return maximumTipTemp - 1; return maximumTipTemp - 1;
} }

View File

@@ -11,7 +11,7 @@
#define SETTINGS_H_ #define SETTINGS_H_
#include <stdint.h> #include <stdint.h>
#include "unit.h" #include "unit.h"
#define SETTINGSVERSION (0x23) #define SETTINGSVERSION (0x24)
/*Change this if you change the struct below to prevent people getting \ /*Change this if you change the struct below to prevent people getting \
out of sync*/ out of sync*/
@@ -38,7 +38,7 @@ typedef struct {
uint8_t detailedIDLE :1; // Detailed idle screen uint8_t detailedIDLE :1; // Detailed idle screen
uint8_t detailedSoldering :1; // Detailed soldering screens uint8_t detailedSoldering :1; // Detailed soldering screens
#ifdef ENABLED_FAHRENHEIT_SUPPORT #ifdef ENABLED_FAHRENHEIT_SUPPORT
uint8_t temperatureInF : 1; // Should the temp be in F or C (true is F) uint8_t temperatureInF :1; // Should the temp be in F or C (true is F)
#endif #endif
uint8_t descriptionScrollSpeed :1; // Description scroll speed uint8_t descriptionScrollSpeed :1; // Description scroll speed
uint8_t lockingMode :2; // Store the locking mode uint8_t lockingMode :2; // Store the locking mode
@@ -51,11 +51,12 @@ typedef struct {
uint8_t powerLimit; // Maximum power iron allowed to output uint8_t powerLimit; // Maximum power iron allowed to output
uint8_t ReverseButtonTempChangeEnabled; // Change the plus and minus button assigment uint8_t ReverseButtonTempChangeEnabled; // Change the plus and minus button assigment
uint16_t TempChangeLongStep; // Change the plus and minus button assigment uint16_t TempChangeLongStep; // Change the plus and minus button assigment
uint16_t TempChangeShortStep; // Change the plus and minus button assigment uint16_t TempChangeShortStep; // Change the plus and minus button assigment
uint8_t hallEffectSensitivity; //Operating mode of the hall effect sensor uint8_t hallEffectSensitivity; //Operating mode of the hall effect sensor
uint8_t accelMissingWarningCounter; // Counter of how many times we have warned we cannot detect the accelerometer
uint8_t pdMissingWarningCounter; // Counter of how many times we have warned we cannot detect the pd interface
uint32_t padding; // This is here for in case we are not an even divisor so uint32_t padding; // This is here for in case we are not an even divisor so
// that nothing gets cut off // that nothing gets cut off

View File

@@ -38,6 +38,8 @@ extern const char *OffString;
extern const char *ResetOKMessage; extern const char *ResetOKMessage;
extern const char *YourGainMessage; extern const char *YourGainMessage;
extern const char *SettingsResetMessage; extern const char *SettingsResetMessage;
extern const char *NoAccelerometerMessage;
extern const char *NoPowerDeliveryMessage;
extern const char *LockingKeysString; extern const char *LockingKeysString;
extern const char *UnlockingKeysString; extern const char *UnlockingKeysString;
extern const char *WarningKeysLockedString; extern const char *WarningKeysLockedString;

View File

@@ -3,7 +3,7 @@
#include "OLED.hpp" #include "OLED.hpp"
#include "Setup.h" #include "Setup.h"
extern uint8_t PCBVersion; extern uint8_t DetectedAccelerometerVersion;
extern uint32_t currentTempTargetDegC; extern uint32_t currentTempTargetDegC;
extern bool settingsWereReset; extern bool settingsWereReset;
extern bool usb_pd_available; extern bool usb_pd_available;
@@ -14,6 +14,8 @@ extern "C" {
void vApplicationStackOverflowHook(TaskHandle_t *pxTask, void vApplicationStackOverflowHook(TaskHandle_t *pxTask,
signed portCHAR *pcTaskName); signed portCHAR *pcTaskName);
#define NO_DETECTED_ACCELEROMETER 99
#define ACCELEROMETERS_SCANNING 100
//Threads //Threads
void startGUITask(void const *argument); void startGUITask(void const *argument);
void startPIDTask(void const *argument); void startPIDTask(void const *argument);

View File

@@ -68,7 +68,7 @@ void resetSettings() {
systemSettings.lockingMode = LOCKING_MODE; // Disable locking for safety systemSettings.lockingMode = LOCKING_MODE; // Disable locking for safety
systemSettings.coolingTempBlink = COOLING_TEMP_BLINK; // Blink the temperature on the cooling screen when its > 50C systemSettings.coolingTempBlink = COOLING_TEMP_BLINK; // Blink the temperature on the cooling screen when its > 50C
#ifdef ENABLED_FAHRENHEIT_SUPPORT #ifdef ENABLED_FAHRENHEIT_SUPPORT
systemSettings.temperatureInF = TEMPERATURE_INF; // default to 0 systemSettings.temperatureInF = TEMPERATURE_INF; // default to 0
#endif #endif
systemSettings.descriptionScrollSpeed = DESCRIPTION_SCROLL_SPEED; // default to slow systemSettings.descriptionScrollSpeed = DESCRIPTION_SCROLL_SPEED; // default to slow
systemSettings.CalibrationOffset = CALIBRATION_OFFSET; // the adc offset in uV systemSettings.CalibrationOffset = CALIBRATION_OFFSET; // the adc offset in uV
@@ -78,6 +78,9 @@ void resetSettings() {
systemSettings.TempChangeLongStep = TEMP_CHANGE_LONG_STEP; // systemSettings.TempChangeLongStep = TEMP_CHANGE_LONG_STEP; //
systemSettings.KeepAwakePulse = POWER_PULSE_DEFAULT; systemSettings.KeepAwakePulse = POWER_PULSE_DEFAULT;
systemSettings.hallEffectSensitivity = 1; systemSettings.hallEffectSensitivity = 1;
systemSettings.accelMissingWarningCounter = 0;
systemSettings.pdMissingWarningCounter = 0;
saveSettings(); // Save defaults saveSettings(); // Save defaults
} }

View File

@@ -371,7 +371,7 @@ static bool settings_setSleepTime(void) {
systemSettings.SleepTime = 0; // can't set time over 10 mins systemSettings.SleepTime = 0; // can't set time over 10 mins
} }
// Remember that ^ is the time of no movement // Remember that ^ is the time of no movement
if (PCBVersion == 99) if (DetectedAccelerometerVersion == NO_DETECTED_ACCELEROMETER)
systemSettings.SleepTime = 0; // Disable sleep on no accel systemSettings.SleepTime = 0; // Disable sleep on no accel
return systemSettings.SleepTime == 15; return systemSettings.SleepTime == 15;
} }
@@ -394,7 +394,7 @@ static bool settings_setShutdownTime(void) {
if (systemSettings.ShutdownTime > 60) { if (systemSettings.ShutdownTime > 60) {
systemSettings.ShutdownTime = 0; // wrap to off systemSettings.ShutdownTime = 0; // wrap to off
} }
if (PCBVersion == 99) if (DetectedAccelerometerVersion == NO_DETECTED_ACCELEROMETER)
systemSettings.ShutdownTime = 0; // Disable shutdown on no accel systemSettings.ShutdownTime = 0; // Disable shutdown on no accel
return systemSettings.ShutdownTime == 60; return systemSettings.ShutdownTime == 60;
} }
@@ -722,7 +722,6 @@ static bool settings_setCalibrateVIN(void) {
// Jump to the voltage calibration subscreen // Jump to the voltage calibration subscreen
OLED::setFont(0); OLED::setFont(0);
OLED::clearScreen(); OLED::clearScreen();
OLED::setCursor(0, 0);
for (;;) { for (;;) {
OLED::setCursor(0, 0); OLED::setCursor(0, 0);

View File

@@ -11,7 +11,7 @@
#include <power.hpp> #include <power.hpp>
#include "Settings.h" #include "Settings.h"
#include "cmsis_os.h" #include "cmsis_os.h"
uint8_t PCBVersion = 0; uint8_t DetectedAccelerometerVersion = 0;
bool settingsWereReset = false; bool settingsWereReset = false;
// FreeRTOS variables // FreeRTOS variables

View File

@@ -34,6 +34,7 @@ extern osThreadId MOVTaskHandle;
extern osThreadId PIDTaskHandle; extern osThreadId PIDTaskHandle;
static bool shouldBeSleeping(bool inAutoStart = false); static bool shouldBeSleeping(bool inAutoStart = false);
static bool shouldShutdown(); static bool shouldShutdown();
void showWarnings();
#define MOVEMENT_INACTIVITY_TIME (60 * configTICK_RATE_HZ) #define MOVEMENT_INACTIVITY_TIME (60 * configTICK_RATE_HZ)
#define BUTTON_INACTIVITY_TIME (60 * configTICK_RATE_HZ) #define BUTTON_INACTIVITY_TIME (60 * configTICK_RATE_HZ)
static TickType_t lastHallEffectSleepStart = 0; static TickType_t lastHallEffectSleepStart = 0;
@@ -43,6 +44,14 @@ static uint16_t min(uint16_t a, uint16_t b) {
else else
return a; return a;
} }
void warnUser(const char *warning, const int font, const int timeout) {
OLED::setFont(font);
OLED::clearScreen();
OLED::setCursor(0, 0);
OLED::print(warning);
OLED::refresh();
waitForButtonPressOrTimeout(timeout);
}
void printVoltage() { void printVoltage() {
uint32_t volt = getInputVoltageX10(systemSettings.voltageDiv, 0); uint32_t volt = getInputVoltageX10(systemSettings.voltageDiv, 0);
@@ -473,38 +482,26 @@ static void gui_solderingMode(uint8_t jumpToSleep) {
if (buttonsLocked && (systemSettings.lockingMode != 0)) { // If buttons locked if (buttonsLocked && (systemSettings.lockingMode != 0)) { // If buttons locked
switch (buttons) { switch (buttons) {
case BUTTON_NONE: case BUTTON_NONE:
// stay
boostModeOn = false; boostModeOn = false;
break; break;
case BUTTON_BOTH_LONG: case BUTTON_BOTH_LONG:
// Unlock buttons // Unlock buttons
buttonsLocked = false; buttonsLocked = false;
OLED::setCursor(0, 0); warnUser(UnlockingKeysString, 0, TICKS_SECOND);
OLED::clearScreen();
OLED::setFont(0);
OLED::print(UnlockingKeysString);
OLED::refresh();
waitForButtonPressOrTimeout(1000);
break; break;
case BUTTON_F_LONG: case BUTTON_F_LONG:
// if boost mode is enabled turn it on // if boost mode is enabled turn it on
if (systemSettings.BoostTemp && (systemSettings.lockingMode == 1)) { if (systemSettings.BoostTemp && (systemSettings.lockingMode == 1)) {
boostModeOn = true; boostModeOn = true;
break;
} }
; break;
// fall through // fall through
case BUTTON_BOTH: case BUTTON_BOTH:
case BUTTON_B_LONG: case BUTTON_B_LONG:
case BUTTON_F_SHORT: case BUTTON_F_SHORT:
case BUTTON_B_SHORT: case BUTTON_B_SHORT:
// Do nothing and display a lock warming // Do nothing and display a lock warming
OLED::setCursor(0, 0); warnUser(WarningKeysLockedString, 0, TICKS_SECOND / 2);
OLED::clearScreen();
OLED::setFont(0);
OLED::print(WarningKeysLockedString);
OLED::refresh();
waitForButtonPressOrTimeout(500);
break; break;
default: default:
break; break;
@@ -540,12 +537,7 @@ static void gui_solderingMode(uint8_t jumpToSleep) {
if (systemSettings.lockingMode != 0) { if (systemSettings.lockingMode != 0) {
// Lock buttons // Lock buttons
buttonsLocked = true; buttonsLocked = true;
OLED::setCursor(0, 0); warnUser(LockingKeysString, 0, TICKS_SECOND);
OLED::clearScreen();
OLED::setFont(0);
OLED::print(LockingKeysString);
OLED::refresh();
waitForButtonPressOrTimeout(1000);
} }
break; break;
default: default:
@@ -706,7 +698,7 @@ void showDebugMenu(void) {
break; break;
case 10: case 10:
// Print PCB ID number // Print PCB ID number
OLED::printNumber(PCBVersion, 2); OLED::printNumber(DetectedAccelerometerVersion, 2);
break; break;
case 11: case 11:
// Power negotiation status // Power negotiation status
@@ -752,6 +744,40 @@ void showDebugMenu(void) {
GUIDelay(); GUIDelay();
} }
} }
void showWarnings() {
// Display alert if settings were reset
if (settingsWereReset) {
warnUser(SettingsResetMessage, 1, 10 * TICKS_SECOND);
}
#ifndef NO_WARN_MISSING
//We also want to alert if accel or pd is not detected / not responding
// In this case though, we dont want to nag the user _too_ much
// So only show first 2 times
while (DetectedAccelerometerVersion == ACCELEROMETERS_SCANNING) {
osDelay(1);
}
// Display alert if accelerometer is not detected
if (DetectedAccelerometerVersion == NO_DETECTED_ACCELEROMETER) {
if (systemSettings.accelMissingWarningCounter < 2) {
systemSettings.accelMissingWarningCounter++;
saveSettings();
warnUser(NoAccelerometerMessage, 1, 10 * TICKS_SECOND);
}
}
#ifdef POW_PD
//We expect pd to be present
if (!usb_pd_detect()) {
if (systemSettings.pdMissingWarningCounter < 2) {
systemSettings.pdMissingWarningCounter++;
saveSettings();
warnUser(NoPowerDeliveryMessage, 1, 10 * TICKS_SECOND);
}
}
#endif
#endif
}
uint8_t idleScreenBGF[sizeof(idleScreenBG)]; uint8_t idleScreenBGF[sizeof(idleScreenBG)];
/* StartGUITask function */ /* StartGUITask function */
void startGUITask(void const *argument __unused) { void startGUITask(void const *argument __unused) {
@@ -783,15 +809,8 @@ void startGUITask(void const *argument __unused) {
GUIDelay(); GUIDelay();
} }
if (settingsWereReset) { showWarnings();
// Display alert settings were reset
OLED::clearScreen();
OLED::setFont(1);
OLED::setCursor(0, 0);
OLED::print(SettingsResetMessage);
OLED::refresh();
waitForButtonPressOrTimeout(10000);
}
if (systemSettings.autoStartMode) { if (systemSettings.autoStartMode) {
// jump directly to the autostart mode // jump directly to the autostart mode
gui_solderingMode(systemSettings.autoStartMode - 1); gui_solderingMode(systemSettings.autoStartMode - 1);
@@ -925,7 +944,7 @@ void startGUITask(void const *argument __unused) {
//Draw in missing tip symbol //Draw in missing tip symbol
#ifdef OLED_FLIP #ifdef OLED_FLIP
if (!OLED::getRotation()) { if (!OLED::getRotation()) {
#else #else
if (OLED::getRotation()) { if (OLED::getRotation()) {
#endif #endif

230
workspace/TS100/Core/Threads/MOVThread.cpp Executable file → Normal file
View File

@@ -5,6 +5,7 @@
* Author: Ralim * Author: Ralim
*/ */
#include "BMA223.hpp"
#include "BSP.h" #include "BSP.h"
#include "FreeRTOS.h" #include "FreeRTOS.h"
#include "I2C_Wrapper.hpp" #include "I2C_Wrapper.hpp"
@@ -19,153 +20,142 @@
#include "main.hpp" #include "main.hpp"
#include "power.hpp" #include "power.hpp"
#include "stdlib.h" #include "stdlib.h"
#include "BMA223.hpp"
#include "task.h" #include "task.h"
#define MOVFilter 8 #define MOVFilter 8
uint8_t accelInit = 0; uint8_t accelInit = 0;
TickType_t lastMovementTime = 0; TickType_t lastMovementTime = 0;
void detectAccelerometerVersion() { void detectAccelerometerVersion() {
PCBVersion = 99; PCBVersion = 99;
#ifdef ACCEL_MMA #ifdef ACCEL_MMA
if (MMA8652FC::detect()) { if (MMA8652FC::detect()) {
if (MMA8652FC::initalize()) { if (MMA8652FC::initalize()) {
PCBVersion = 1; PCBVersion = 1;
} }
} else } else
#endif #endif
#ifdef ACCEL_LIS #ifdef ACCEL_LIS
if (LIS2DH12::detect()) { if (LIS2DH12::detect()) {
// Setup the ST Accelerometer // Setup the ST Accelerometer
if (LIS2DH12::initalize()) { if (LIS2DH12::initalize()) {
PCBVersion = 2; PCBVersion = 2;
} }
} else } else
#endif #endif
#ifdef ACCEL_BMA #ifdef ACCEL_BMA
if (BMA223::detect()) { if (BMA223::detect()) {
// Setup the ST Accelerometer // Setup the ST Accelerometer
if (BMA223::initalize()) { if (BMA223::initalize()) {
PCBVersion = 3; PCBVersion = 3;
} }
} else } else
#endif #endif
#ifdef ACCEL_MSA #ifdef ACCEL_MSA
if (MSA301::detect()) { if (MSA301::detect()) {
// Setup the MSA301 Accelerometer // Setup the MSA301 Accelerometer
if (MSA301::initalize()) { if (MSA301::initalize()) {
PCBVersion = 4; PCBVersion = 4;
} }
} else } else
#endif #endif
{ {
//disable imu sensitivity // disable imu sensitivity
systemSettings.sensitivity = 0; systemSettings.sensitivity = 0;
} }
} }
inline void readAccelerometer(int16_t &tx, int16_t &ty, int16_t &tz, Orientation &rotation) { inline void readAccelerometer(int16_t &tx, int16_t &ty, int16_t &tz,
Orientation &rotation) {
#ifdef ACCEL_LIS #ifdef ACCEL_LIS
if (PCBVersion == 2) { if (DetectedAccelerometerVersion == 2) {
LIS2DH12::getAxisReadings(tx, ty, tz); LIS2DH12::getAxisReadings(tx, ty, tz);
rotation = LIS2DH12::getOrientation(); rotation = LIS2DH12::getOrientation();
} else } else
#endif #endif
#ifdef ACCEL_MMA #ifdef ACCEL_MMA
if (PCBVersion == 1) { if (DetectedAccelerometerVersion == 1) {
MMA8652FC::getAxisReadings(tx, ty, tz); MMA8652FC::getAxisReadings(tx, ty, tz);
rotation = MMA8652FC::getOrientation(); rotation = MMA8652FC::getOrientation();
} else } else
#endif #endif
#ifdef ACCEL_BMA #ifdef ACCEL_BMA
if (PCBVersion == 3) { if (DetectedAccelerometerVersion == 3) {
BMA223::getAxisReadings(tx, ty, tz); BMA223::getAxisReadings(tx, ty, tz);
rotation = BMA223::getOrientation(); rotation = BMA223::getOrientation();
} else } else
#endif #endif
#ifdef ACCEL_MSA #ifdef ACCEL_MSA
if (PCBVersion == 3) { if (PCBVersion == 3) {
MSA301::getAxisReadings(tx, ty, tz); MSA301::getAxisReadings(tx, ty, tz);
rotation = MSA301::getOrientation(); rotation = MSA301::getOrientation();
} else } else
#endif #endif
{ {
//do nothing :( // do nothing :(
} }
} }
void startMOVTask(void const *argument __unused) { void startMOVTask(void const *argument __unused) {
osDelay(1); //Make oled init happen first postRToSInit();
postRToSInit(); detectAccelerometerVersion();
OLED::setRotation(systemSettings.OrientationMode & 1); osDelay(50); // wait ~50ms for setup of accel to finalise
detectAccelerometerVersion(); lastMovementTime = 0;
lastMovementTime = 0; // Mask 2 seconds if we are in autostart so that if user is plugging in and
if ((systemSettings.autoStartMode == 2 || systemSettings.autoStartMode == 3)) // then putting in stand it doesnt wake instantly
osDelay(2 * TICKS_SECOND); if (systemSettings.autoStartMode)
osDelay(2 * TICKS_SECOND);
lastMovementTime = 0; int16_t datax[MOVFilter] = {0};
int16_t datax[MOVFilter] = { 0 }; int16_t datay[MOVFilter] = {0};
int16_t datay[MOVFilter] = { 0 }; int16_t dataz[MOVFilter] = {0};
int16_t dataz[MOVFilter] = { 0 }; uint8_t currentPointer = 0;
uint8_t currentPointer = 0; int16_t tx = 0, ty = 0, tz = 0;
int16_t tx = 0, ty = 0, tz = 0; int32_t avgx, avgy, avgz;
int32_t avgx, avgy, avgz; if (systemSettings.sensitivity > 9)
if (systemSettings.sensitivity > 9) systemSettings.sensitivity = 9;
systemSettings.sensitivity = 9; Orientation rotation = ORIENTATION_FLAT;
Orientation rotation = ORIENTATION_FLAT; for (;;) {
// OLED::setFont(1); int32_t threshold = 1500 + (9 * 200);
// for (;;) { threshold -= systemSettings.sensitivity * 200; // 200 is the step size
// OLED::clearScreen(); readAccelerometer(tx, ty, tz, rotation);
// OLED::setCursor(0, 0); if (systemSettings.OrientationMode == 2) {
// readAccelerometer(tx, ty, tz, rotation); if (rotation != ORIENTATION_FLAT) {
// OLED::printNumber(tx, 5, 0); OLED::setRotation(rotation ==
// OLED::setCursor(0, 8); ORIENTATION_LEFT_HAND); // link the data through
// OLED::printNumber(xTaskGetTickCount() / 10, 5, 1); }
// OLED::refresh(); }
// osDelay(50); datax[currentPointer] = (int32_t)tx;
// } datay[currentPointer] = (int32_t)ty;
for (;;) { dataz[currentPointer] = (int32_t)tz;
int32_t threshold = 1500 + (9 * 200); if (!accelInit) {
threshold -= systemSettings.sensitivity * 200; // 200 is the step size for (uint8_t i = currentPointer + 1; i < MOVFilter; i++) {
readAccelerometer(tx, ty, tz, rotation); datax[i] = (int32_t)tx;
if (systemSettings.OrientationMode == 2) { datay[i] = (int32_t)ty;
if (rotation != ORIENTATION_FLAT) { dataz[i] = (int32_t)tz;
OLED::setRotation(rotation == ORIENTATION_LEFT_HAND); // link the data through }
} accelInit = 1;
} }
datax[currentPointer] = (int32_t) tx; currentPointer = (currentPointer + 1) % MOVFilter;
datay[currentPointer] = (int32_t) ty; avgx = avgy = avgz = 0;
dataz[currentPointer] = (int32_t) tz; // calculate averages
if (!accelInit) { for (uint8_t i = 0; i < MOVFilter; i++) {
for (uint8_t i = currentPointer + 1; i < MOVFilter; i++) { avgx += datax[i];
datax[i] = (int32_t) tx; avgy += datay[i];
datay[i] = (int32_t) ty; avgz += dataz[i];
dataz[i] = (int32_t) tz; }
} avgx /= MOVFilter;
accelInit = 1; avgy /= MOVFilter;
} avgz /= MOVFilter;
currentPointer = (currentPointer + 1) % MOVFilter;
avgx = avgy = avgz = 0;
// calculate averages
for (uint8_t i = 0; i < MOVFilter; i++) {
avgx += datax[i];
avgy += datay[i];
avgz += dataz[i];
}
avgx /= MOVFilter;
avgy /= MOVFilter;
avgz /= MOVFilter;
// Sum the deltas // Sum the deltas
int32_t error = (abs(avgx - tx) + abs(avgy - ty) + abs(avgz - tz)); int32_t error = (abs(avgx - tx) + abs(avgy - ty) + abs(avgz - tz));
// So now we have averages, we want to look if these are different by more // So now we have averages, we want to look if these are different by more
// than the threshold // than the threshold
// If error has occurred then we update the tick timer // If movement has occurred then we update the tick timer
if (error > threshold) { if (error > threshold) {
lastMovementTime = xTaskGetTickCount(); lastMovementTime = xTaskGetTickCount();
} }
osDelay(100); // Slow down update rate osDelay(100); // Slow down update rate
power_check(); power_check();
} }
} }

View File

@@ -1,5 +0,0 @@
/Release/
/TS100/
/TS100_LOCAL/
/ReleaseTS80/
/ReleaseTS100/