diff --git a/Translation Editor/translation_bg.json b/Translation Editor/translation_bg.json
index 29830d24..3fb24b8e 100644
--- a/Translation Editor/translation_bg.json
+++ b/Translation Editor/translation_bg.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Нулиране завършено",
"YourGainMessage": "Усилване:",
"SettingsResetMessage": "Настройките бяха\nнулирани!",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!"
diff --git a/Translation Editor/translation_cs.json b/Translation Editor/translation_cs.json
index 98961268..af1103c9 100644
--- a/Translation Editor/translation_cs.json
+++ b/Translation Editor/translation_cs.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK",
"YourGainMessage": "Zisk:",
"SettingsResetMessage": "Tov. nas. obnov.",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!"
diff --git a/Translation Editor/translation_da.json b/Translation Editor/translation_da.json
index 8950c923..b98220a1 100644
--- a/Translation Editor/translation_da.json
+++ b/Translation Editor/translation_da.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!"
diff --git a/Translation Editor/translation_de.json b/Translation Editor/translation_de.json
index 0ba7c800..247e02d7 100644
--- a/Translation Editor/translation_de.json
+++ b/Translation Editor/translation_de.json
@@ -6,7 +6,7 @@
"messages": {
"SettingsCalibrationDone": "Kalibrierung abgeschlossen!",
"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.",
"UndervoltageString": "Unterspannung",
"InputVoltageString": "V Eingang: ",
@@ -14,7 +14,7 @@
"BadTipString": "Spitze Defekt",
"SleepingSimpleString": "Zzz ",
"SleepingAdvancedString": "Ruhemodus...",
- "WarningSimpleString": "HEIß",
+ "WarningSimpleString": "HEIß!",
"WarningAdvancedString": "! Achtung Heiß !",
"SleepingTipAdvancedString": "Temp:",
"IdleTipString": "Ist:",
@@ -22,30 +22,32 @@
"TipDisconnectedString": "Spitze fehlt",
"SolderingAdvancedPowerPrompt": "Leistung: ",
"OffString": "Aus",
- "ResetOKMessage": "Reset OK",
- "YourGainMessage": "Your Gain:",
- "SettingsResetMessage": "Einstellungen\nzurück gesetzt!",
- "LockingKeysString": " LOCKED",
- "UnlockingKeysString": "UNLOCKED",
- "WarningKeysLockedString": "!LOCKED!"
+ "NoAccelerometerMessage": "Kein Bewegungssensor\nerkannt!",
+ "NoPowerDeliveryMessage": "Kein USB-PD IC\nerkannt!",
+ "ResetOKMessage": "Reset abgeschlossen!",
+ "YourGainMessage": "Dein Faktor:",
+ "SettingsResetMessage": "Einstellungen\nzurückgesetzt!",
+ "LockingKeysString": "GESPERRT",
+ "UnlockingKeysString": "ENTSPERRT",
+ "WarningKeysLockedString": "!GESPERRT!"
},
"characters": {
"SettingRightChar": "R",
"SettingLeftChar": "L",
"SettingAutoChar": "A",
- "SettingFastChar": "F",
- "SettingSlowChar": "S",
- "SettingStartSolderingChar": "T",
- "SettingStartSleepChar": "S",
+ "SettingFastChar": "S",
+ "SettingSlowChar": "L",
+ "SettingStartSolderingChar": "L",
+ "SettingStartSleepChar": "R",
"SettingStartSleepOffChar": "O",
- "SettingStartNoneChar": "F",
- "SettingSensitivityOff": "O",
- "SettingSensitivityLow": "L",
+ "SettingStartNoneChar": "A",
+ "SettingSensitivityOff": "A",
+ "SettingSensitivityLow": "N",
"SettingSensitivityMedium": "M",
"SettingSensitivityHigh": "H",
"SettingLockDisableChar": "D",
"SettingLockBoostChar": "B",
- "SettingLockFullChar": "F"
+ "SettingLockFullChar": "V"
},
"menuGroups": {
"SolderingMenu": {
@@ -57,7 +59,7 @@
},
"PowerSavingMenu": {
"text2": [
- "Schlaf-",
+ "Ruhe-",
"modus"
],
"desc": "Energiespareinstellungen"
@@ -87,10 +89,10 @@
},
"SleepTemperature": {
"text2": [
- "Ruhetemp-",
- "eratur"
+ "Ruhe-",
+ "temperatur"
],
- "desc": "Ruhetemperatur"
+ "desc": "Ruhetemperatur der Spitze"
},
"SleepTimeout": {
"text2": [
@@ -111,7 +113,7 @@
"Bewegungs-",
"empfindlichk."
],
- "desc": "Bewegungsempfindlichkeit <0=Aus, 1=Minimal ... 9=Maximal>"
+ "desc": "Bewegungsempfindlichkeit <0=aus, 1=minimal ... 9=maximal>"
},
"TemperatureUnit": {
"text2": [
@@ -132,28 +134,28 @@
"Anzeige-",
"ausrichtung"
],
- "desc": "Ausrichtung der Anzeige "
+ "desc": "Ausrichtung der Anzeige "
},
"BoostTemperature": {
"text2": [
- "Boosttemp-",
- "eratur"
+ "Boost-",
+ "temperatur"
],
- "desc": "Temperatur im Boostmodus (In der eingestellten Einheit)"
+ "desc": "Temperatur im Boostmodus"
},
"AutoStart": {
"text2": [
"Start im",
- "Lötmodus?"
+ "Lötmodus"
],
- "desc": "Automatischer Start-Modus beim Einschalten der Spannungsversorgung. "
+ "desc": "Bestimmt das Heizverhalten beim Einschalten der Spannungsversorgung. "
},
"CooldownBlink": {
"text2": [
"Abkühl-",
- "blinken?"
+ "blinken"
],
- "desc": "Blinkende Temperaturanzeige beim Abkühlen, solange heiß ist."
+ "desc": "Temperaturanzeige blinkt beim Abkühlen, solange Spitze heiß ist."
},
"TemperatureCalibration": {
"text2": [
@@ -167,7 +169,7 @@
"Einstellungen",
"zurücksetzen?"
],
- "desc": "Einstellungen auf werkseinstellungen zurück setzen"
+ "desc": "Werte werden auf Werkseinstellungen zurückgesetzt"
},
"VoltageCalibration": {
"text2": [
@@ -188,7 +190,7 @@
"Scroll-",
"geschw."
],
- "desc": "Scrollgeschwindigkeit der Texte "
+ "desc": "Scrollgeschwindigkeit der Erläuterungen "
},
"TipModel": {
"text2": [
@@ -202,7 +204,7 @@
"Einfache",
"Kalibrierung"
],
- "desc": "Einfache Kalibrierung mittels heißem Wasser"
+ "desc": "Einfache Kalibrierung mittels heißen Wassers"
},
"AdvancedCalibrationMode": {
"text2": [
@@ -221,58 +223,58 @@
"PowerLimit": {
"text2": [
"Leistungs-",
- "Limit"
+ "limit"
],
- "desc": "Maximale aufnahme der Lötspitze "
+ "desc": "Maximale Leistungsaufnahme des Lötkolbens "
},
"ReverseButtonTempChange": {
"text2": [
- "Taste +-",
- "Umkehren?"
+ "+- Tasten",
+ "umkehren?"
],
- "desc": "Temperatur-Änderungs-Tasten-Belegung Plus-Minus umkehren?"
+ "desc": "Tastenbelegung zur Temperaturänderung umkehren"
},
"TempChangeShortStep": {
"text2": [
- "T. Schritt",
- "Taste kurz?"
+ "Temp-Schritt",
+ "kurzer Druck"
],
- "desc": "Temperaturwechselschritte bei kurzem Tastendruck!"
+ "desc": "Schrittweite für Temperaturwechsel bei kurzem Tastendruck"
},
"TempChangeLongStep": {
"text2": [
- "T. Schritt",
- "Taste Lang?"
+ "Temp-Schritt",
+ "langer Druck"
],
- "desc": "Temperaturwechselschritte bei langem Tastendruck!"
+ "desc": "Schrittweite für Temperaturwechsel bei langem Tastendruck"
},
"PowerPulsePower": {
"text2": [
- "Power",
- "Pulse W"
+ "Leistungs-",
+ "impuls"
],
- "desc": "Keep awake pulse power intensity"
+ "desc": "Powerbank wird mittels eines Impulses wach gehalten "
},
"TipGain": {
"text2": [
- "Modify",
- "tip gain"
+ "Ändere",
+ "Spitzen Faktor"
],
- "desc": "Tip gain"
+ "desc": "Spitzen Faktor"
},
"HallEffSensitivity": {
"text2": [
- "Hall Eff",
- "Sensitivity"
+ "Hall Sensor",
+ "Empfindlichkeit"
],
- "desc": "Sensitivity of the Hall effect sensor in detecting sleep "
+ "desc": "Empfindlichkeit des Hall Effekt Sensors beim Erkennen des Ruhemodus "
},
"LockingMode": {
"text2": [
- "Allow buttons",
- "locking"
+ "Knopf-",
+ "sperre"
],
- "desc": "When soldering, long press on both buttons lock them "
+ "desc": "Langes drücken beider Knöpfe im Lötmodus, sperrt diese "
}
}
-}
\ No newline at end of file
+}
diff --git a/Translation Editor/translation_en.json b/Translation Editor/translation_en.json
index 22873c8a..4e3c65e5 100644
--- a/Translation Editor/translation_en.json
+++ b/Translation Editor/translation_en.json
@@ -25,6 +25,8 @@
"ResetOKMessage": "Reset done!",
"YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": "LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!"
@@ -35,10 +37,10 @@
"SettingAutoChar": "A",
"SettingFastChar": "F",
"SettingSlowChar": "S",
- "SettingStartSolderingChar": "T",
- "SettingStartSleepChar": "S",
- "SettingStartSleepOffChar": "O",
- "SettingStartNoneChar": "F",
+ "SettingStartSolderingChar": "S",
+ "SettingStartSleepChar": "Z",
+ "SettingStartSleepOffChar": "R",
+ "SettingStartNoneChar": "O",
"SettingSensitivityOff": "O",
"SettingSensitivityLow": "L",
"SettingSensitivityMedium": "M",
@@ -146,7 +148,7 @@
"Auto",
"start"
],
- "desc": "Automatically starts the iron into soldering mode on power up "
+ "desc": "Starts the iron into soldering mode on power up "
},
"CooldownBlink": {
"text2": [
@@ -160,21 +162,21 @@
"Calibrate",
"temperature?"
],
- "desc": "Start tip offset calibrating procedure"
+ "desc": "Start tip temperature offset calibration"
},
"SettingsReset": {
"text2": [
"Factory",
"reset?"
],
- "desc": "Reset settings to default!"
+ "desc": "Reset settings to default"
},
"VoltageCalibration": {
"text2": [
"Calibrate",
"input voltage?"
],
- "desc": "VIN Calibration "
+ "desc": "Start VIN calibration "
},
"AdvancedSoldering": {
"text2": [
@@ -237,21 +239,21 @@
"Temp change",
"short"
],
- "desc": "Temperature change steps on short button press"
+ "desc": "Temperature change increment on short button press"
},
"TempChangeLongStep": {
"text2": [
"Temp change",
"long"
],
- "desc": "Temperature change steps on long button press"
+ "desc": "Temperature change increment on long button press"
},
"PowerPulsePower": {
"text2": [
"Power",
"pulse"
],
- "desc": "Intensity of power of keep-awake-pulse "
+ "desc": "Intensity of power of keep-awake-pulse "
},
"TipGain": {
"text2": [
@@ -265,7 +267,7 @@
"Hall sensor",
"sensitivity"
],
- "desc": "Sensitivity of the Hall effect sensor in detecting sleep "
+ "desc": "Sensitivity of the Hall effect sensor to detect sleep "
},
"LockingMode": {
"text2": [
diff --git a/Translation Editor/translation_es.json b/Translation Editor/translation_es.json
index b5986ff9..8adca0d9 100644
--- a/Translation Editor/translation_es.json
+++ b/Translation Editor/translation_es.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Hecho. ",
"YourGainMessage": "Gananc.:",
"SettingsResetMessage": "Ajustes borrados",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!"
diff --git a/Translation Editor/translation_fi.json b/Translation Editor/translation_fi.json
index 3da677f0..d2319978 100644
--- a/Translation Editor/translation_fi.json
+++ b/Translation Editor/translation_fi.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!"
diff --git a/Translation Editor/translation_fr.json b/Translation Editor/translation_fr.json
index 2bb56164..ce77f890 100644
--- a/Translation Editor/translation_fr.json
+++ b/Translation Editor/translation_fr.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK",
"YourGainMessage": "Gain :",
"SettingsResetMessage": "Réglage réinit. !",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": "VERROUIL",
"UnlockingKeysString": "DEVERROU",
"WarningKeysLockedString": "! VERR. !"
@@ -274,4 +276,4 @@
"desc": "Sensibilité du capteur à effet Hall lors de la détection de mise en veille "
}
}
-}
+}
\ No newline at end of file
diff --git a/Translation Editor/translation_hr.json b/Translation Editor/translation_hr.json
index f19e0d8f..11f6c884 100644
--- a/Translation Editor/translation_hr.json
+++ b/Translation Editor/translation_hr.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!"
diff --git a/Translation Editor/translation_hu.json b/Translation Editor/translation_hu.json
index 54c7a649..5941d22f 100644
--- a/Translation Editor/translation_hu.json
+++ b/Translation Editor/translation_hu.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!"
diff --git a/Translation Editor/translation_it.json b/Translation Editor/translation_it.json
index 6e1de23d..51845e80 100644
--- a/Translation Editor/translation_it.json
+++ b/Translation Editor/translation_it.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK",
"YourGainMessage": "Guad.: ",
"SettingsResetMessage": "Reset effettuato",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": "Blocc.",
"UnlockingKeysString": "Sblocc.",
"WarningKeysLockedString": "BLOCCATO"
@@ -274,4 +276,4 @@
"desc": "Blocca i tasti durante la modalità Saldatura; tieni premuto entrambi per bloccare/sbloccare "
}
}
-}
+}
\ No newline at end of file
diff --git a/Translation Editor/translation_lt.json b/Translation Editor/translation_lt.json
index 63dcffc2..7b4817a0 100644
--- a/Translation Editor/translation_lt.json
+++ b/Translation Editor/translation_lt.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK",
"YourGainMessage": "Gain:",
"SettingsResetMessage": "Nust. atstatyti!",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " UŽRAKIN",
"UnlockingKeysString": "ATRAKIN",
"WarningKeysLockedString": "!UŽRAK!"
@@ -274,4 +276,4 @@
"desc": "Lituodami, ilgai paspauskite abu mygtukus, kad juos užrakintumėte "
}
}
-}
+}
\ No newline at end of file
diff --git a/Translation Editor/translation_nl.json b/Translation Editor/translation_nl.json
index adf99708..d4abf365 100644
--- a/Translation Editor/translation_nl.json
+++ b/Translation Editor/translation_nl.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK",
"YourGainMessage": "Niveau:",
"SettingsResetMessage": "Instellingen zijn\ngereset!",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " GEBLOKKEERD",
"UnlockingKeysString": "GEDEBLOKKEERD",
"WarningKeysLockedString": "!GEBLOKKEERD!"
diff --git a/Translation Editor/translation_nl_be.json b/Translation Editor/translation_nl_be.json
index 9a168cb8..2713d418 100644
--- a/Translation Editor/translation_nl_be.json
+++ b/Translation Editor/translation_nl_be.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!"
diff --git a/Translation Editor/translation_no.json b/Translation Editor/translation_no.json
index 8df24c27..fa90ecf4 100644
--- a/Translation Editor/translation_no.json
+++ b/Translation Editor/translation_no.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!"
diff --git a/Translation Editor/translation_pl.json b/Translation Editor/translation_pl.json
index d4fc563f..320574d4 100644
--- a/Translation Editor/translation_pl.json
+++ b/Translation Editor/translation_pl.json
@@ -25,6 +25,8 @@
"ResetOKMessage": "Reset OK",
"YourGainMessage": "Us.zysk:",
"SettingsResetMessage": "Ust. zresetowane",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " ZABLOK.",
"UnlockingKeysString": "ODBLOK.",
"WarningKeysLockedString": "!ZABLOK!"
@@ -275,4 +277,4 @@
"desc": "W trybie lutowania, wciśnij oba przyciski aby je zablokować "
}
}
-}
+}
\ No newline at end of file
diff --git a/Translation Editor/translation_pt.json b/Translation Editor/translation_pt.json
index e8d62a23..4bf003d1 100644
--- a/Translation Editor/translation_pt.json
+++ b/Translation Editor/translation_pt.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!"
diff --git a/Translation Editor/translation_ru.json b/Translation Editor/translation_ru.json
index 35357108..ae2e4db5 100644
--- a/Translation Editor/translation_ru.json
+++ b/Translation Editor/translation_ru.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Сброс OK",
"YourGainMessage": "Прирост:",
"SettingsResetMessage": "Настройки сброшены!",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!"
@@ -274,4 +276,4 @@
"desc": "При работе длинное нажатие обеих кнопок блокирует их "
}
}
-}
+}
\ No newline at end of file
diff --git a/Translation Editor/translation_sk.json b/Translation Editor/translation_sk.json
index 4c47b721..05848f63 100644
--- a/Translation Editor/translation_sk.json
+++ b/Translation Editor/translation_sk.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK",
"YourGainMessage": "Zisk:",
"SettingsResetMessage": "Nast. Obnovené!",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!"
diff --git a/Translation Editor/translation_sl.json b/Translation Editor/translation_sl.json
index f6d99f15..9658a6f4 100644
--- a/Translation Editor/translation_sl.json
+++ b/Translation Editor/translation_sl.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK",
"YourGainMessage": "Ojačan.:",
"SettingsResetMessage": "Settings were\nreset!",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!"
diff --git a/Translation Editor/translation_sr_cyrl.json b/Translation Editor/translation_sr_cyrl.json
index 570df775..9fa61a14 100644
--- a/Translation Editor/translation_sr_cyrl.json
+++ b/Translation Editor/translation_sr_cyrl.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!"
diff --git a/Translation Editor/translation_sr_latn.json b/Translation Editor/translation_sr_latn.json
index a14cad93..43e64b7d 100644
--- a/Translation Editor/translation_sr_latn.json
+++ b/Translation Editor/translation_sr_latn.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!"
diff --git a/Translation Editor/translation_sv.json b/Translation Editor/translation_sv.json
index 1b6e039f..a3411b75 100644
--- a/Translation Editor/translation_sv.json
+++ b/Translation Editor/translation_sv.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Reset OK",
"YourGainMessage": "Your gain:",
"SettingsResetMessage": "Settings were\nreset!",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!"
diff --git a/Translation Editor/translation_tr.json b/Translation Editor/translation_tr.json
index aba6a920..8c0f3881 100644
--- a/Translation Editor/translation_tr.json
+++ b/Translation Editor/translation_tr.json
@@ -23,7 +23,9 @@
"OffString": "Kapalı",
"ResetOKMessage": "Sıfırlama Tamam",
"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": {
"SettingRightChar": "R",
diff --git a/Translation Editor/translation_uk.json b/Translation Editor/translation_uk.json
index ab83795f..4f1e2154 100644
--- a/Translation Editor/translation_uk.json
+++ b/Translation Editor/translation_uk.json
@@ -24,6 +24,8 @@
"ResetOKMessage": "Скидання OK",
"YourGainMessage": "Приріст:",
"SettingsResetMessage": "Налаштування скинуті!",
+ "NoAccelerometerMessage": "No accelerometer\ndetected!",
+ "NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
"LockingKeysString": " LOCKED",
"UnlockingKeysString": "UNLOCKED",
"WarningKeysLockedString": "!LOCKED!"
diff --git a/Translation Editor/translations_def.js b/Translation Editor/translations_def.js
index aae794a7..82cc9ff0 100644
--- a/Translation Editor/translations_def.js
+++ b/Translation Editor/translations_def.js
@@ -95,6 +95,16 @@ var def =
"maxLen": 16,
"default": "Settings were\nreset!"
},
+ {
+ "id": "NoAccelerometerMessage",
+ "maxLen": 16,
+ "default": "No accelerometer\ndetected!"
+ },
+ {
+ "id": "NoPowerDeliveryMessage",
+ "maxLen": 16,
+ "default": "No USB-PD IC\ndetected!"
+ },
{
"id": "LockingKeysString",
"maxLen": 8,
diff --git a/workspace/TS100/Core/Drivers/OLED.cpp b/workspace/TS100/Core/Drivers/OLED.cpp
index 84e20aa8..948c248e 100755
--- a/workspace/TS100/Core/Drivers/OLED.cpp
+++ b/workspace/TS100/Core/Drivers/OLED.cpp
@@ -22,6 +22,7 @@ bool OLED::inLeftHandedMode; // Whether the screen is in left or not (used for
OLED::DisplayState OLED::displayState;
uint8_t OLED::fontWidth, OLED::fontHeight;
int16_t OLED::cursor_x, OLED::cursor_y;
+bool OLED::initDone = false;
uint8_t OLED::displayOffset;
uint8_t OLED::screenBuffer[16 + (OLED_WIDTH * 2) + 10]; // The data buffer
uint8_t OLED::secondFrameBuffer[OLED_WIDTH * 2];
@@ -102,6 +103,7 @@ void OLED::initialize() {
}
}
setDisplayState(DisplayState::ON);
+ initDone = true;
}
void OLED::setFramebuffer(uint8_t *buffer) {
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) {
// 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 + 1] = ptr[xx];
}
}
if (y == 8 || height == 16) {
// 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 + 1] = ptr[xx + (height == 16 ? wide : 0)];
}
}
}
@@ -481,3 +481,7 @@ void OLED::drawHeatSymbol(uint8_t state) {
drawSymbol(14);
drawFilledRect(cursor_x_temp, 0, cursor_x_temp + 12, 2 + (8 - state), true);
}
+
+bool OLED::isInitDone() {
+ return initDone;
+}
diff --git a/workspace/TS100/Core/Drivers/OLED.hpp b/workspace/TS100/Core/Drivers/OLED.hpp
index 5e3238a7..db6a2c52 100755
--- a/workspace/TS100/Core/Drivers/OLED.hpp
+++ b/workspace/TS100/Core/Drivers/OLED.hpp
@@ -34,7 +34,7 @@ public:
};
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
static void refresh() {
FRToSI2C::Transmit( DEVICEADDR_OLED, screenBuffer,
@@ -56,7 +56,7 @@ public:
static int16_t getCursorX() {
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
static void setCursor(int16_t x, int16_t y) {
cursor_x = x;
@@ -73,8 +73,7 @@ public:
drawArea(x, 0, width, 16, buffer);
}
// 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,
- bool noLeaderZeros = true);
+ static void printNumber(uint16_t number, uint8_t places, bool noLeaderZeros = true);
// Draws a number at the current cursor location
// Clears the buffer
static void clearScreen() {
@@ -89,15 +88,11 @@ public:
drawSymbol((state) ? 16 : 17);
}
static void debugNumber(int32_t val);
- 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,
- 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 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 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, 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 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 drawScrollIndicator(uint8_t p, uint8_t h); // Draws a scrolling position indicator
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 *secondStripPtr; //Pointers to the strips
static bool inLeftHandedMode; // Whether the screen is in left or not (used for offsets in GRAM)
+ static bool initDone;
static DisplayState displayState;
static uint8_t fontWidth, fontHeight;
static int16_t cursor_x, cursor_y;
diff --git a/workspace/TS100/Core/Drivers/TipThermoModel.cpp b/workspace/TS100/Core/Drivers/TipThermoModel.cpp
index 5264130d..34d038c6 100755
--- a/workspace/TS100/Core/Drivers/TipThermoModel.cpp
+++ b/workspace/TS100/Core/Drivers/TipThermoModel.cpp
@@ -239,7 +239,7 @@ uint32_t TipThermoModel::getTipInF(bool sampleNow) {
#endif
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
return maximumTipTemp - 1;
}
diff --git a/workspace/TS100/Core/Inc/Settings.h b/workspace/TS100/Core/Inc/Settings.h
index 5cb56738..d18881db 100755
--- a/workspace/TS100/Core/Inc/Settings.h
+++ b/workspace/TS100/Core/Inc/Settings.h
@@ -11,7 +11,7 @@
#define SETTINGS_H_
#include
#include "unit.h"
-#define SETTINGSVERSION (0x23)
+#define SETTINGSVERSION (0x24)
/*Change this if you change the struct below to prevent people getting \
out of sync*/
@@ -38,7 +38,7 @@ typedef struct {
uint8_t detailedIDLE :1; // Detailed idle screen
uint8_t detailedSoldering :1; // Detailed soldering screens
#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
uint8_t descriptionScrollSpeed :1; // Description scroll speed
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 ReverseButtonTempChangeEnabled; // 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
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
// that nothing gets cut off
diff --git a/workspace/TS100/Core/Inc/Translation.h b/workspace/TS100/Core/Inc/Translation.h
index 1ee90e2a..b9a4421f 100755
--- a/workspace/TS100/Core/Inc/Translation.h
+++ b/workspace/TS100/Core/Inc/Translation.h
@@ -38,6 +38,8 @@ extern const char *OffString;
extern const char *ResetOKMessage;
extern const char *YourGainMessage;
extern const char *SettingsResetMessage;
+extern const char *NoAccelerometerMessage;
+extern const char *NoPowerDeliveryMessage;
extern const char *LockingKeysString;
extern const char *UnlockingKeysString;
extern const char *WarningKeysLockedString;
diff --git a/workspace/TS100/Core/Inc/main.hpp b/workspace/TS100/Core/Inc/main.hpp
index effe5a05..ede22bd5 100755
--- a/workspace/TS100/Core/Inc/main.hpp
+++ b/workspace/TS100/Core/Inc/main.hpp
@@ -3,7 +3,7 @@
#include "OLED.hpp"
#include "Setup.h"
-extern uint8_t PCBVersion;
+extern uint8_t DetectedAccelerometerVersion;
extern uint32_t currentTempTargetDegC;
extern bool settingsWereReset;
extern bool usb_pd_available;
@@ -14,6 +14,8 @@ extern "C" {
void vApplicationStackOverflowHook(TaskHandle_t *pxTask,
signed portCHAR *pcTaskName);
+#define NO_DETECTED_ACCELEROMETER 99
+#define ACCELEROMETERS_SCANNING 100
//Threads
void startGUITask(void const *argument);
void startPIDTask(void const *argument);
diff --git a/workspace/TS100/Core/Src/Settings.cpp b/workspace/TS100/Core/Src/Settings.cpp
index 3faa0ea3..9748d230 100755
--- a/workspace/TS100/Core/Src/Settings.cpp
+++ b/workspace/TS100/Core/Src/Settings.cpp
@@ -68,7 +68,7 @@ void resetSettings() {
systemSettings.lockingMode = LOCKING_MODE; // Disable locking for safety
systemSettings.coolingTempBlink = COOLING_TEMP_BLINK; // Blink the temperature on the cooling screen when its > 50C
#ifdef ENABLED_FAHRENHEIT_SUPPORT
- systemSettings.temperatureInF = TEMPERATURE_INF; // default to 0
+ systemSettings.temperatureInF = TEMPERATURE_INF; // default to 0
#endif
systemSettings.descriptionScrollSpeed = DESCRIPTION_SCROLL_SPEED; // default to slow
systemSettings.CalibrationOffset = CALIBRATION_OFFSET; // the adc offset in uV
@@ -78,6 +78,9 @@ void resetSettings() {
systemSettings.TempChangeLongStep = TEMP_CHANGE_LONG_STEP; //
systemSettings.KeepAwakePulse = POWER_PULSE_DEFAULT;
systemSettings.hallEffectSensitivity = 1;
+ systemSettings.accelMissingWarningCounter = 0;
+ systemSettings.pdMissingWarningCounter = 0;
+
saveSettings(); // Save defaults
}
diff --git a/workspace/TS100/Core/Src/gui.cpp b/workspace/TS100/Core/Src/gui.cpp
index 002f9ef1..86674071 100755
--- a/workspace/TS100/Core/Src/gui.cpp
+++ b/workspace/TS100/Core/Src/gui.cpp
@@ -371,7 +371,7 @@ static bool settings_setSleepTime(void) {
systemSettings.SleepTime = 0; // can't set time over 10 mins
}
// Remember that ^ is the time of no movement
- if (PCBVersion == 99)
+ if (DetectedAccelerometerVersion == NO_DETECTED_ACCELEROMETER)
systemSettings.SleepTime = 0; // Disable sleep on no accel
return systemSettings.SleepTime == 15;
}
@@ -394,7 +394,7 @@ static bool settings_setShutdownTime(void) {
if (systemSettings.ShutdownTime > 60) {
systemSettings.ShutdownTime = 0; // wrap to off
}
- if (PCBVersion == 99)
+ if (DetectedAccelerometerVersion == NO_DETECTED_ACCELEROMETER)
systemSettings.ShutdownTime = 0; // Disable shutdown on no accel
return systemSettings.ShutdownTime == 60;
}
@@ -722,7 +722,6 @@ static bool settings_setCalibrateVIN(void) {
// Jump to the voltage calibration subscreen
OLED::setFont(0);
OLED::clearScreen();
- OLED::setCursor(0, 0);
for (;;) {
OLED::setCursor(0, 0);
diff --git a/workspace/TS100/Core/Src/main.cpp b/workspace/TS100/Core/Src/main.cpp
index e9e3d62f..c638b0d8 100755
--- a/workspace/TS100/Core/Src/main.cpp
+++ b/workspace/TS100/Core/Src/main.cpp
@@ -11,7 +11,7 @@
#include
#include "Settings.h"
#include "cmsis_os.h"
-uint8_t PCBVersion = 0;
+uint8_t DetectedAccelerometerVersion = 0;
bool settingsWereReset = false;
// FreeRTOS variables
diff --git a/workspace/TS100/Core/Threads/GUIThread.cpp b/workspace/TS100/Core/Threads/GUIThread.cpp
index e6835495..644cd09f 100755
--- a/workspace/TS100/Core/Threads/GUIThread.cpp
+++ b/workspace/TS100/Core/Threads/GUIThread.cpp
@@ -34,6 +34,7 @@ extern osThreadId MOVTaskHandle;
extern osThreadId PIDTaskHandle;
static bool shouldBeSleeping(bool inAutoStart = false);
static bool shouldShutdown();
+void showWarnings();
#define MOVEMENT_INACTIVITY_TIME (60 * configTICK_RATE_HZ)
#define BUTTON_INACTIVITY_TIME (60 * configTICK_RATE_HZ)
static TickType_t lastHallEffectSleepStart = 0;
@@ -43,6 +44,14 @@ static uint16_t min(uint16_t a, uint16_t b) {
else
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() {
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
switch (buttons) {
case BUTTON_NONE:
- // stay
boostModeOn = false;
break;
case BUTTON_BOTH_LONG:
// Unlock buttons
buttonsLocked = false;
- OLED::setCursor(0, 0);
- OLED::clearScreen();
- OLED::setFont(0);
- OLED::print(UnlockingKeysString);
- OLED::refresh();
- waitForButtonPressOrTimeout(1000);
+ warnUser(UnlockingKeysString, 0, TICKS_SECOND);
break;
case BUTTON_F_LONG:
// if boost mode is enabled turn it on
if (systemSettings.BoostTemp && (systemSettings.lockingMode == 1)) {
boostModeOn = true;
- break;
}
- ;
+ break;
// fall through
case BUTTON_BOTH:
case BUTTON_B_LONG:
case BUTTON_F_SHORT:
case BUTTON_B_SHORT:
// Do nothing and display a lock warming
- OLED::setCursor(0, 0);
- OLED::clearScreen();
- OLED::setFont(0);
- OLED::print(WarningKeysLockedString);
- OLED::refresh();
- waitForButtonPressOrTimeout(500);
+ warnUser(WarningKeysLockedString, 0, TICKS_SECOND / 2);
break;
default:
break;
@@ -540,12 +537,7 @@ static void gui_solderingMode(uint8_t jumpToSleep) {
if (systemSettings.lockingMode != 0) {
// Lock buttons
buttonsLocked = true;
- OLED::setCursor(0, 0);
- OLED::clearScreen();
- OLED::setFont(0);
- OLED::print(LockingKeysString);
- OLED::refresh();
- waitForButtonPressOrTimeout(1000);
+ warnUser(LockingKeysString, 0, TICKS_SECOND);
}
break;
default:
@@ -706,7 +698,7 @@ void showDebugMenu(void) {
break;
case 10:
// Print PCB ID number
- OLED::printNumber(PCBVersion, 2);
+ OLED::printNumber(DetectedAccelerometerVersion, 2);
break;
case 11:
// Power negotiation status
@@ -752,6 +744,40 @@ void showDebugMenu(void) {
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)];
/* StartGUITask function */
void startGUITask(void const *argument __unused) {
@@ -783,15 +809,8 @@ void startGUITask(void const *argument __unused) {
GUIDelay();
}
- if (settingsWereReset) {
- // Display alert settings were reset
- OLED::clearScreen();
- OLED::setFont(1);
- OLED::setCursor(0, 0);
- OLED::print(SettingsResetMessage);
- OLED::refresh();
- waitForButtonPressOrTimeout(10000);
- }
+ showWarnings();
+
if (systemSettings.autoStartMode) {
// jump directly to the autostart mode
gui_solderingMode(systemSettings.autoStartMode - 1);
@@ -925,7 +944,7 @@ void startGUITask(void const *argument __unused) {
//Draw in missing tip symbol
#ifdef OLED_FLIP
- if (!OLED::getRotation()) {
+ if (!OLED::getRotation()) {
#else
if (OLED::getRotation()) {
#endif
diff --git a/workspace/TS100/Core/Threads/MOVThread.cpp b/workspace/TS100/Core/Threads/MOVThread.cpp
old mode 100755
new mode 100644
index 8ec58a92..f3405b28
--- a/workspace/TS100/Core/Threads/MOVThread.cpp
+++ b/workspace/TS100/Core/Threads/MOVThread.cpp
@@ -5,6 +5,7 @@
* Author: Ralim
*/
+#include "BMA223.hpp"
#include "BSP.h"
#include "FreeRTOS.h"
#include "I2C_Wrapper.hpp"
@@ -19,153 +20,142 @@
#include "main.hpp"
#include "power.hpp"
#include "stdlib.h"
-#include "BMA223.hpp"
#include "task.h"
#define MOVFilter 8
uint8_t accelInit = 0;
TickType_t lastMovementTime = 0;
void detectAccelerometerVersion() {
- PCBVersion = 99;
+ PCBVersion = 99;
#ifdef ACCEL_MMA
- if (MMA8652FC::detect()) {
+ if (MMA8652FC::detect()) {
- if (MMA8652FC::initalize()) {
- PCBVersion = 1;
- }
- } else
+ if (MMA8652FC::initalize()) {
+ PCBVersion = 1;
+ }
+ } else
#endif
#ifdef ACCEL_LIS
- if (LIS2DH12::detect()) {
- // Setup the ST Accelerometer
- if (LIS2DH12::initalize()) {
- PCBVersion = 2;
- }
- } else
+ if (LIS2DH12::detect()) {
+ // Setup the ST Accelerometer
+ if (LIS2DH12::initalize()) {
+ PCBVersion = 2;
+ }
+ } else
#endif
#ifdef ACCEL_BMA
- if (BMA223::detect()) {
- // Setup the ST Accelerometer
- if (BMA223::initalize()) {
- PCBVersion = 3;
- }
- } else
+ if (BMA223::detect()) {
+ // Setup the ST Accelerometer
+ if (BMA223::initalize()) {
+ PCBVersion = 3;
+ }
+ } else
#endif
#ifdef ACCEL_MSA
- if (MSA301::detect()) {
- // Setup the MSA301 Accelerometer
- if (MSA301::initalize()) {
- PCBVersion = 4;
- }
- } else
+ if (MSA301::detect()) {
+ // Setup the MSA301 Accelerometer
+ if (MSA301::initalize()) {
+ PCBVersion = 4;
+ }
+ } else
#endif
- {
- //disable imu sensitivity
- systemSettings.sensitivity = 0;
- }
-
+ {
+ // disable imu sensitivity
+ 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
- if (PCBVersion == 2) {
- LIS2DH12::getAxisReadings(tx, ty, tz);
- rotation = LIS2DH12::getOrientation();
- } else
+ if (DetectedAccelerometerVersion == 2) {
+ LIS2DH12::getAxisReadings(tx, ty, tz);
+ rotation = LIS2DH12::getOrientation();
+ } else
#endif
#ifdef ACCEL_MMA
- if (PCBVersion == 1) {
- MMA8652FC::getAxisReadings(tx, ty, tz);
- rotation = MMA8652FC::getOrientation();
- } else
+ if (DetectedAccelerometerVersion == 1) {
+ MMA8652FC::getAxisReadings(tx, ty, tz);
+ rotation = MMA8652FC::getOrientation();
+ } else
#endif
#ifdef ACCEL_BMA
- if (PCBVersion == 3) {
- BMA223::getAxisReadings(tx, ty, tz);
- rotation = BMA223::getOrientation();
- } else
+ if (DetectedAccelerometerVersion == 3) {
+ BMA223::getAxisReadings(tx, ty, tz);
+ rotation = BMA223::getOrientation();
+ } else
#endif
#ifdef ACCEL_MSA
- if (PCBVersion == 3) {
- MSA301::getAxisReadings(tx, ty, tz);
- rotation = MSA301::getOrientation();
- } else
+ if (PCBVersion == 3) {
+ MSA301::getAxisReadings(tx, ty, tz);
+ rotation = MSA301::getOrientation();
+ } else
#endif
- {
- //do nothing :(
- }
+ {
+ // do nothing :(
+ }
}
void startMOVTask(void const *argument __unused) {
- osDelay(1); //Make oled init happen first
- postRToSInit();
- OLED::setRotation(systemSettings.OrientationMode & 1);
- detectAccelerometerVersion();
- lastMovementTime = 0;
- if ((systemSettings.autoStartMode == 2 || systemSettings.autoStartMode == 3))
- osDelay(2 * TICKS_SECOND);
+ postRToSInit();
+ detectAccelerometerVersion();
+ osDelay(50); // wait ~50ms for setup of accel to finalise
+ lastMovementTime = 0;
+ // Mask 2 seconds if we are in autostart so that if user is plugging in and
+ // then putting in stand it doesnt wake instantly
+ if (systemSettings.autoStartMode)
+ osDelay(2 * TICKS_SECOND);
- lastMovementTime = 0;
- int16_t datax[MOVFilter] = { 0 };
- int16_t datay[MOVFilter] = { 0 };
- int16_t dataz[MOVFilter] = { 0 };
- uint8_t currentPointer = 0;
- int16_t tx = 0, ty = 0, tz = 0;
- int32_t avgx, avgy, avgz;
- if (systemSettings.sensitivity > 9)
- systemSettings.sensitivity = 9;
- Orientation rotation = ORIENTATION_FLAT;
-// OLED::setFont(1);
-// for (;;) {
-// OLED::clearScreen();
-// OLED::setCursor(0, 0);
-// readAccelerometer(tx, ty, tz, rotation);
-// OLED::printNumber(tx, 5, 0);
-// OLED::setCursor(0, 8);
-// OLED::printNumber(xTaskGetTickCount() / 10, 5, 1);
-// OLED::refresh();
-// osDelay(50);
-// }
- for (;;) {
- int32_t threshold = 1500 + (9 * 200);
- threshold -= systemSettings.sensitivity * 200; // 200 is the step size
- readAccelerometer(tx, ty, tz, rotation);
- if (systemSettings.OrientationMode == 2) {
- if (rotation != ORIENTATION_FLAT) {
- OLED::setRotation(rotation == ORIENTATION_LEFT_HAND); // link the data through
- }
- }
- datax[currentPointer] = (int32_t) tx;
- datay[currentPointer] = (int32_t) ty;
- dataz[currentPointer] = (int32_t) tz;
- if (!accelInit) {
- for (uint8_t i = currentPointer + 1; i < MOVFilter; i++) {
- datax[i] = (int32_t) tx;
- datay[i] = (int32_t) ty;
- dataz[i] = (int32_t) tz;
- }
- accelInit = 1;
- }
- 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;
+ int16_t datax[MOVFilter] = {0};
+ int16_t datay[MOVFilter] = {0};
+ int16_t dataz[MOVFilter] = {0};
+ uint8_t currentPointer = 0;
+ int16_t tx = 0, ty = 0, tz = 0;
+ int32_t avgx, avgy, avgz;
+ if (systemSettings.sensitivity > 9)
+ systemSettings.sensitivity = 9;
+ Orientation rotation = ORIENTATION_FLAT;
+ for (;;) {
+ int32_t threshold = 1500 + (9 * 200);
+ threshold -= systemSettings.sensitivity * 200; // 200 is the step size
+ readAccelerometer(tx, ty, tz, rotation);
+ if (systemSettings.OrientationMode == 2) {
+ if (rotation != ORIENTATION_FLAT) {
+ OLED::setRotation(rotation ==
+ ORIENTATION_LEFT_HAND); // link the data through
+ }
+ }
+ datax[currentPointer] = (int32_t)tx;
+ datay[currentPointer] = (int32_t)ty;
+ dataz[currentPointer] = (int32_t)tz;
+ if (!accelInit) {
+ for (uint8_t i = currentPointer + 1; i < MOVFilter; i++) {
+ datax[i] = (int32_t)tx;
+ datay[i] = (int32_t)ty;
+ dataz[i] = (int32_t)tz;
+ }
+ accelInit = 1;
+ }
+ 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
- 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
- // than the threshold
+ // Sum the deltas
+ 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
+ // than the threshold
- // If error has occurred then we update the tick timer
- if (error > threshold) {
- lastMovementTime = xTaskGetTickCount();
- }
+ // If movement has occurred then we update the tick timer
+ if (error > threshold) {
+ lastMovementTime = xTaskGetTickCount();
+ }
- osDelay(100); // Slow down update rate
- power_check();
- }
+ osDelay(100); // Slow down update rate
+ power_check();
+ }
}
diff --git a/workspace/TS100A/.gitignore b/workspace/TS100A/.gitignore
deleted file mode 100644
index 5221ec2e..00000000
--- a/workspace/TS100A/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-/Release/
-/TS100/
-/TS100_LOCAL/
-/ReleaseTS80/
-/ReleaseTS100/